Tags: crypto

Rating: 0

We are given the public key (n, e) and the cipher (list of numbers), taking a look at the cipher, we can assume that since is a list of decimal numbers, the letters were encrypted separatedly, which means we can use the public key to encrypt every printable character and see if it matches with each piece of the cipher. If it matches, we found the correct piece of the flag:


import string

cipher = [2193,1745,2164,970,1466,2495,1438,1412,1745,1745,2302,1163,2181,1613,1438,884,2495,2302,2164,2181,884,2302,1703,1924,2302,1801,1412,2495,53,1337,2217]
n = 2533
e = 569
flag = ''

for c in cipher:
for char in string.printable:
letter = pow(ord(char), e, n)
if letter == c:
flag += char

print(flag)


flag{sm4ll_pr1m3s_ar3_t0_e4sy}