diff --git a/diffie-hellman-ii.md b/diffie-hellman-ii.md index b6421de..d692d46 100644 --- a/diffie-hellman-ii.md +++ b/diffie-hellman-ii.md @@ -1,39 +1,40 @@ # Diffie-Hellman II Gegegen sind die Parameter für den Diffie-Hellman-Algorithmus: - - In [1]: a = 6 - ...: b = 4 - ...: g = 16 - ...: P = 19 - -Dabei kennt Alice die Zahlen a, g und P. -Bob kennt analog b, g, und P. +```python +In [1]: a = 6 + ...: b = 4 + ...: g = 16 + ...: P = 19 +``` +Dabei kennt Alice die Zahlen `a`, `g` und `P`. +Bob kennt analog `b`, `g`, und `P`. # Lösung -Alice und Bob gerechnen jeweils ihren -Zwichenexponenten und übertragen ihn. - - A = g^a mod P - B = g^b mod P - +Alice und Bob Berechnen jeweils ihren +Zwischenexponenten und übertragen ihn. +``` +A = g^a mod P +B = g^b mod P +``` Damit können beide den Schlüssel berechnen: +``` +K = A^b mod P + = (g^a)^b mod P + = g^(a*b) mod P + = g^(b*a) mod P + = (g^b)^a mod P + = B^a mod P +``` +Das gibt uns (siehe [Weak Hybrid Encryption](weak-hybrid-encryption) für Code): +```python +In [3]: A = modpow(g, a, P) - K = A^b mod P - = (g^a)^b mod P - = g^(a*b) mod P - = g^(b*a) mod P - = (g^b)^a mod P - = B^a mod P +In [4]: B = modpow(g, b, P) -Das gibt uns (siehe [modpow](modmath.py)): +In [5]: K = modpow(B, a, P) - In [3]: A = modpow(g, a, P) - - In [4]: B = modpow(g, b, P) - - In [5]: K = modpow(B, a, P) - - In [6]: A, B, K - Out[6]: (7, 5, 7) +In [6]: A, B, K +Out[6]: (7, 5, 7) +```