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