From 2ba5f6ec00f77e5fe8e2a8323b3758b3fc92dd21 Mon Sep 17 00:00:00 2001 From: Elena Biasi <elena.bs@eduge.ch> Date: Mon, 17 Jan 2022 16:28:49 +0100 Subject: [PATCH] ajout fonctions --- rsa.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/rsa.py b/rsa.py index 27cecf4..0da8342 100644 --- a/rsa.py +++ b/rsa.py @@ -123,14 +123,25 @@ def EuclideEtendu(a,b): return u1, v1 def inverseMod(x,b): - return (x % b + b) % b + return (x % b + b) % b + + +def lpowmod(x, y, n): + """puissance modulaire: (x**y)%n avec x, y et n entiers""" + result = 1 + while y>0: + if y&1>0: + result = (result*x)%n + y >>= 1 + x = (x*x)%n + return result p,q = EuclideEtendu2(n, e, 1, 0, 0, 1) nPrime = (p - 1)*(q - 1) -d = inverseMod(e, nPrime) +d = inverseMod(nPrime, e) +print(d) -d *= -1 for k in range(len(messages)): - tmp = inverseMod(int(pow(messages[k],d)),n) + tmp = inverseMod(n,lpowmod(messages[k],d,n)) print(tmp) -- GitLab