Browse Source

ajout hello finish déchiffrement RSA et puissance modulaire rapide

master
corentin.bollet 6 months ago
parent
commit
eff2e82733
  1. 36
      InterfaceServeur.py

36
InterfaceServeur.py

@ -11,6 +11,42 @@ class InterfaceServeur(Interface):
self.e = 42205 self.e = 42205
self.d = 769020235650503533 self.d = 769020235650503533
# à compléter # à compléter
self.cle_symetrique = None
self.btn_hello = tk.Button("Serveur Hello", command=self.hello)
self.btn_finished = tk.Button("Finished", command=self.finish)
def hello(self):
"""attend la réception du message HELLO depuis le client, puis envoie en
clair sa clé publique"""
msg_recu = self.receive()
if msg_recu == "HELLO":
self.entree.set(self.n)
self.send()
def finish(self):
"""attend la réception de la clé symétrique, la déchiffre avec sa clé privée, la
mémorise et envoie le message Finished chiffré avec cette clé"""
msg_recu = self.receive()
self.cle_symetrique = self.dechiffre_RSA(msg)
self.send("Finished")
def dechiffre_RSA(self, msg):
"""déchiffre un message avec sa clé privée"""
return self.puissance_mod_rapide(msg , self.d, self.n)
def puissance_mod_rapide(self, a, b, n):
"""renvoie a**b mod n"""
if b == 1:
return a
elif b == 2:
a2 = (a**2)%n
elif b % 2 == 0:
return self.puissance_mod_rapide(a2, b // 2, n)
else:
return (a * self.puissance_mod_rapide(a2, b // 2, n)) % n
It = InterfaceServeur() It = InterfaceServeur()

Loading…
Cancel
Save