1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| printf("\tFonction RSA\n\n");
//pour tester la fonction
char *mess;
mess=(char*) calloc(4,sizeof(char));
strcpy(mess,"1999");
char *cle;
cle=(char*) calloc(4,sizeof(char));
strcpy(cle,"1999");
char *mod;
mod=(char*) calloc(4,sizeof(char));
strcpy(mod,"100");
//declare un grand nombre pour récupérer notre message
mpz_t message;
//convertie le string en grand nombre
//ici on a mis en base 10 mais cela dépend bien sur de ce que l'on aura en entrer
mpz_init_set_str (message,mess,10);
//vérification
gmp_printf("message =%Zd\n",message);
//declare un grand nombre pour récupérer notre clé
mpz_t key;
//convertie le string en grand nombre
mpz_init_set_str (key,cle,10);
//vérification
gmp_printf("keypriv =%Zd\n",key);
//declare un grand nombre pour récupérer notre modulo
mpz_t modulo;
//convertie le string en grand nombre
mpz_init_set_str (modulo,mod,10);
//vérification
gmp_printf("modulo =%Zd\n",modulo);
//declare notre resultat
mpz_t resultat;mpz_init(resultat);
//fonction qui combine l'exponetielle et le modulo
//ce qui va nous permettre de faire notre chiffrement
mpz_powm(resultat,message,key,modulo);
gmp_printf("\nResultat=> %Zd^%Zd mod(%Zd)=%Zd\n",message,key,modulo,resultat);
// convertie notre grand nombre en string
char *result=NULL;
mpz_get_str (result,2,resultat);
printf("\n\tfinie\n"); |
Partager