Bonjour,

J'essaye de coder le chiffrement d'Elgamal (pour le moment en fixant le nombre premier et sa racine):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from random import *
 
 class Alice:
   def __init__(self, p, g):
     self.p = p
     self.g = g
 
     self.a = randint(0, p-2)
     print str(self.a)
     #Calcul de A:
     self.A = (self.g**self.a)%self.p
 
   def decrypt(self, C, B):
     self.M = B**(self.p-1-self.a)*C%self.p
     return self.M
 
 class Bob:
   def __init__(self, p, g, A):
     self.p = p
     self.g = g
     self.A = A
 
     self.b = randint(0, p-2)
     self.B = (self.g**self.b)%self.p
 
   def crypt(self, M):
     self.C = ((self.A**self.b)*M)%self.p
     return self.C
 
 
 
 
 #p et g sont connus (nombre premier et sa racine):
 #p = 13
 #g = 2
 
 
 alice = Alice(97, 5)
 bob = Bob(97, 5, alice.A)
 
 
 print str(bob.crypt(11))
 print str(alice.decrypt(bob.C, bob.b))
Le problème c'est que le déchiffrement ne me renvois pas ce qu'il est sensé renvoyer (11) et j'ai beau fixer les clefs, je ne vois pas où est l'erreur..

Merci d'avance
Seeme