[ksnctf] Math I
投稿日: 更新日:
問題
数値が与えらえました。m=??とあるのでmの値を求める問題です。
解法
これはRSA暗号なので求められていないdの値を求める問題です。RSAについては以下の記事に詳しく書いています。
https://www.ochappa.net/posts/rsa-calc
解答のPythonのコードです。pycryptodomeというライブラリを利用しています。
※数字は省略してます。
from math import lcm
from Crypto.Util.number import long_to_bytes
e = 65537
n = 15173.....
c = 22554.....
p = 34111....
q = 44481....
l = lcm(p-1, q-1)
d = pow(e, -1, l)
m = pow(c, d, n)
print( long_to_bytes(m).decode() )