import random
p = next_prime(451643)
x = random.randint(1, p)
g = random_prime(p)
b = power_mod(g,x,p)
m = 12345
r = random.randint(1, p-1)
while gcd(r,p-1) != 1:
r = r +1
if r >= p-1:
r = random.randint(1, p-1)
y1 = power_mod(g,r,p)
y2 = mod((m * power(b,r)), p)
d = mod(y2 / power(y1, x), p)
print("orginal message is %d, decrypted message is %d" %(m, d) )