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