data - python rsa encrypt




Auf Diffie-Hellman Schlüsselaustausch (2)

Roman hat Recht. Allerdings sollten Sie sich die Funktion pow () drei Argumente genauer ansehen. Viel schneller und drittes Argument ist der Modulus

Das Buch, das ich lese, erklärt den Algorithmus wie folgt:

  • 2 Personen denken an 2 öffentliche "n und g" Nummern, die beide kennen.
  • 2 Personen denken an 2 private "x" und "y" Nummern, die sie geheim halten.

Der Austausch geschieht wie abgebildet

Ich stelle den folgenden Python-Code zusammen, um zu sehen, wie das funktioniert und .... nicht. Bitte hilf mir zu verstehen was mir fehlt:

 #!/usr/bin/python

 n=22 # publicly known 
 g=42 # publicly known

 x=13 # only Alice knows this 
 y=53 # only Bob knows this

 aliceSends = (g**x)%n 
 bobComputes = aliceSends**y 
 bobSends = (g**y)%n
 aliceComputes = bobSends**x


 print "Alice sends    ", aliceSends 
 print "Bob computes   ", bobComputes 
 print "Bob sends      ", bobSends 
 print "Alice computes ", aliceComputes

 print "In theory both should have ", (g**(x*y))%n

 ---

 Alice sends     14  
 Bob computes    5556302616191343498765890791686005349041729624255239232159744 
 Bob sends       14 
 Alice computes  793714773254144 

 In theory both should have  16

Sie haben zwei weitere Module vergessen:

>>> 5556302616191343498765890791686005349041729624255239232159744 % 22
16L
>>> 793714773254144 % 22
16




encryption