begin process at 2012 05 28 10:08:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

Calcul de clés simples RSA


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Calcul de clés simples RSA

mercredi 7 novembre 2007 à 01:07:06 | Calcul de clés simples RSA

Adrien95

mercredi 7 novembre 2007 à 01:09:42 | Re : Calcul de clés simples RSA

Adrien95

Bizzare mon message est vide. Le voici :

--------------------------------------------------------------

Bonjour,

Je sollicite votre aide après plusieurs heures de pertes capillaires.

Je ne suis pas très très bon en maths, donc ça n'arrange rien, mais j'essaye de faire un effort :)

A des fins éducatives, il me faut dans un premier temps implémenter un cryptage pour le moins basique avec de petits chiffres.

Ci-dessous mon main :

[code]
int main()
{
    srand(time(NULL)) ; // Initialise la randomization pour la fonction rand()

    int p , q , e, n, d, i=0 , j=0 ,ok=0, euler;
  
    while(ok==0)
    {
        while(i!=1)
        {      
            p=gen_entier() ;          
            i=premier(p) ;        
        }

        while(j!=1)
        {      
            q=gen_entier() ;
            j=premier(q) ;        
        }

        n = (p*q) ;
        euler = ((p - 1) * (q - 1)) ;
      
        e=gen_entier() ;
        d=gen_entier() ;

        if ((pgcd(e, euler) == 1) && ((d * e)%n == 1))
        {
            ok=1;
        }      
        else
        {
            ok=0;
        }
    }

    printf("%d\n%d\n%d\n%d\n%d\n%d\n", p, q, n, euler, e, d) ;
    return 0 ;
}
[/code]

Jusqu'à l'indicatrice d'Euler, je ne dois pas être dans le faux. Pour "e" et "d" c'est une autre histoire.

Voici les fonctions liées :

[code]
int gen_entier()
{
    int alea = rand()%11 ;
    return alea ;
}

int premier (int n)
{
    int i, pas_premier = 0 ;
  
    // 0 et 1 ne peuvent pas être premiers  
    if (n < 2)
    {
        return 0 ;
    }  
    else
    {
        for(i = 2 ; i <= (n/2) ; i++)
        {

            if (n / i == ((n % i) + (n/i)) || n % 2 == 0)
            {
                pas_premier = 1 ;
                break ;
            }
        }

        if(pas_premier)
        {
            return 0 ;
        }
        else
        {
            return 1 ;
        }
    }
}

int pgcd(int m, int n)
{
    if (n == 0)
    {
        return m ;
    }
    else
    {
        return pgcd(n, m%n) ;
    }
}
[/code]

Dans les indications que l'on m'a fourni, "e" doit être premier avec l'indicatrice d'Euler, d'où mon PGCD.

Par ailleurs pour le "d", les tests que j'ai fait me laissent très perplexe. J'ai du passer quoi qu'il arrive à côté d'un truc.

Si vous pouviez m'éclairer !

Merci d'avance.



Cette discussion est classée dans : calcul, rsa, clés, simples


Répondre à ce message

Sujets en rapport avec ce message

Calcul du temps de chargement d'un prog... [ par MorZong ] Salut,Encore moi, je suis partout, là c'est pour me dire comment faire pour calculer le temps (en millisecondes si c'est possible) qu'a prit un progr Librairies mathématiques VS matlab [ par devilinside ] Devant coder une interface graphique en visual C++ pour un logiciel de calcul, je suis fort dépourvu.Le code original du coeur de calcul tourne sous m Probleme de duree de calcul [ par Stubbornman ] Je suis actuellement, et maintenant depuis presque deux mois (je suis un debutant alors c'est long!!) sur une source sencee resoudre les carres magiqu implicit declaration of function `int getchar(...)' [ par cognac ] À chaque fois que j'utilise getch(); j'obtien le message suivant:getch();Voici mon programme (en fait mon exercice):#include //bibliotheque d'entree Quelques questions simples [ par ajdev33 ] Bon dans les catégories qu'est ce que API et sinon comment fait on pour savoir si sa source appartient plutot au niveau 1, 2, ou 3.Merci d'avance Calcul d'une opération en millisecondes [ par Thanatos ] Bonjour,Comment peut-on estimer le temps d'un calcul en millisecondes sous Borland C++ ?Je fais un programme qui compare les différents tris et j'aime calcul d'un modulo [ par cabarrus ] Qui peu m'aidé s.v.p pour ce problème...Ecrire un prog qui demande 2 nbres à l'utilisateur et qui affiche le reste de la division du 1er par le second Les «class» pour débutant [ par cognac ] Voici un petit programme:|||||||||||||| constante.h||||||||||||#ifndef CONSTANTES#define CONSTANTES#include #include using namespace std;const int a=5 Key generator Source... [ par erasor ] Voila je cherche a faire un generateur de clés cd de 13 chiffres,bon j'en ai fai un mais il me donne bcp de clés invalide alors je c pas si il y a un Generateur De Clés ! :) [ par erasor ] Salu j'ai fait il y a pas longtemps un generateur de clés cd pour different jeux,mais voila il est est basé sur un aglghorithm HYPER HYPER simple ,c'e


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales