diff --git a/a.exe b/a.exe new file mode 100644 index 0000000..4bd50b1 Binary files /dev/null and b/a.exe differ diff --git a/etape5.c b/etape5.c index 8308278..7817372 100644 --- a/etape5.c +++ b/etape5.c @@ -1,6 +1,5 @@ #include #include -#include /* n = p * q => p et q sont des nombres premiers e = pgcd(e,(p-1)(q-1)) @@ -58,6 +57,15 @@ premier findPq(unsigned long long int n) } } +unsigned long long int multiplicationCommeDHabitude(unsigned long long int e, unsigned long long int i, unsigned long long int phi) +{ + if (i < 1000 && e < 1000) + { + return i * e % phi; + } + return multiplicationRapide(e / 2, i / 2, phi) + multiplicationRapide(e / 2 ,i / 2, phi); +} + int main(void) { /*Parametres RSA*/ unsigned long long int n = 1028648100739351553; @@ -67,10 +75,13 @@ int main(void) { /* Recherche des nombres premiers p et q */ premier facteurs = findPq(n); phi = (facteurs.p - 1)*(facteurs.q - 1); + printf("phi = %llu\n", phi); /* Calcul de la cle privee d a partir de la formule : (e*d) mod phi = 1 */ for (unsigned long long int i = 1; i < phi; i++) { - if (e * i % phi == 1) { + unsigned long long int resultat = multiplicationRapide(e, i, phi); + printf("resultat = %llu\n", resultat); + if (resultat == 1) { d = i; break; }