Professional Documents
Culture Documents
# driver code
p = int(input("\nEnter 1st prime number: "))
q = int(input("\nEnter 2nd prime number: "))
n = p*q
t = (p-1)*(q-1)
# 1<e<t
e = 2
#public key
while(e<t):
if(gcd(e,t)==1):
break;
else:
e+=1
# private key
k = 1
while(k<e):
d = (1 + (k*t)) / e
if d.is_integer():
break;
else:
k+=1
# encrypt
M = int(input("\nEnter number to encrypt: "))
c = (M**e) % n
# decrypt
answer = (c**int(d)) % n
print("\np: {}".format(p))
print("\nq: {}".format(q))
print("\nn: {}".format(n))
print("\nTotient: {}".format(t))
print("\nd: {}".format(d))
print("\ne: {}".format(e))
print("\nMessage: {}".format(M))
print("\nEncrypted: {}".format(c))
print("\nDecrypted: {}".format(answer))
OUTPUT: -