diff --git a/euklid.py b/euklid.py new file mode 100644 index 0000000..c386d4c --- /dev/null +++ b/euklid.py @@ -0,0 +1,8 @@ +def euklid(a, b): + if b == 0: + return (a, 1, 0) + else: + d, x, y = euklid(b, a % b) + return (d, y, x - (a // b) * y) + +print(euklid(128, 459)) diff --git a/rsa.py b/rsa.py new file mode 100644 index 0000000..1c02591 --- /dev/null +++ b/rsa.py @@ -0,0 +1,28 @@ +import math + +def euklid(a, b): + if b == 0: + return (a, 1, 0) + else: + d, x, y = euklid(b, a % b) + return (d, y, x - (a // b) * y) + +p = 685969 +q = 536101 + +n = p * q +phi_n = (p - 1) * (q - 1) + +# Find an e that fits, 5000 is arbitrary in this case +for i in range(5000, phi_n): + if math.gcd(i, phi_n) == 1: + e = i + break + +# Find the d +_, d, _ = euklid(e, phi_n) + +print("n = ", n) +print("phi(n) = ", phi_n) +print("e = ", e) +print("d = ", d)