From ca57df0a079233c5a97e2666b1be330ac85deaf3 Mon Sep 17 00:00:00 2001 From: SombrAbsol Date: Tue, 23 Jan 2024 19:44:34 +0100 Subject: [PATCH] Etape 3 (partie 1) --- a.exe | Bin 30270 -> 30272 bytes a.exe.stackdump | 40 ++++++++++++++++++++++++++++++++++++++++ etape3.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 a.exe.stackdump diff --git a/a.exe b/a.exe index 2333f04fb8ae9fc847453b8a3688358f59e35669..435a29f304be749a7d69c1212cf70a5ac49a5b45 100644 GIT binary patch delta 4364 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 +#include +#include + +long long int calculmodulo(long long int nb, long long int d, long long int n) { + long long int resultat = 1; + + // Utilisation de l'algorithme d'exponentiation rapide pour gerer les grands nombres + while (d > 0) { + // Si le bit de droite de d est 1 (d est impair) + if (d % 2 == 1) { + resultat = (resultat * nb) % n; // Multiplier le resultat par nb et prendre le modulo n + } + + d = d / 2; // Diviser d par 2 (decalage d'octets vers la droite) + nb = (nb * nb) % n; // elever nb au carre et prendre le modulo n + + // Lignes ajoutées pour illustrer le processus + printf("d = %lld, nb = %lld, resultat = %lld\n", d, nb, resultat); + } + + return resultat; +} + +int main(void) { + /*Parametres RSA*/ + long long n = 6554179; + long long e = 689149; + long long d = 55621; + + FILE* stream = fopen("Etape4.bin","r"); + + /*Variable pour caracteres*/ + long long int nb; + /*Tant que la fin du fichier n'est pas atteinte, dechiffrer chaque caractere*/ + /*en calculant le modulo de la valeur numerique de chacun*/ + while (fread(&nb, sizeof(long long int), 1, stream) != 0) { + long long int dechiffre = calculmodulo(nb, d, n); + printf("%c", (char)dechiffre); + } + fclose(stream); +} \ No newline at end of file