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