RSA
Description
Analysis
Solution
from sympy import mod_inverse, prime
def get_keys():
p, q = prime(50), prime(60)
n = p * q
phi = (p-1)*(q-1)
e = 47
return e, n, phi
def decrypt_msg(msg):
e, n, phi = get_keys()
d = mod_inverse(e, phi) # Private Exponent
# 1. Calculate decrypted value
# 2. Value into character
# 3. Concatenate
# 3 2 1
enc_msg = ''.join(map(chr, [pow(c, d, n) for c in msg]))
return enc_msg
msg = [5129, 10327, 42284, 57695, 5730, 64016, 31008, 40005,
63768, 46371, 7692, 48194, 9075, 32422, 35191, 63230]
print(decrypt_msg(msg))Last updated