Slide 54
Slide 54 text
[解答] #7 6つの素数 (50点)
問題: 素数p,q,r,s,t,uの積をNとして暗号化した。
平文を復号せよ。
from Crypto.Util.number import *
N =
916593639845747488972140759153098740345890250466970098886308987698
2301623127561014158785961307853313187221280505133
e = 65537
c =
278553848303245995625849073231526138113642915309431905166108091714
1979559102399773560510571346904537677487131456452
p = 14464334816788210139
q = 15769416010044301523
r = 16419082908446791451
s = 14138761265659705979
t = 16419082908446791451
u = 10542742753391853391
phi = (p - 1)*(q - 1)*(r - 1)*(s - 1)*t*(u - 1)
d = inverse(e, phi)
flag = pow(c, d, N)
print(long_to_bytes(flag))
平文: rsa{MakeSureYouUnderstandTheTheorems!!!}
54
● p = 14464334816788210139
● q = 15769416010044301523
● r = 16419082908446791451
● s = 14138761265659705979
● t = 16419082908446791451
● u = 10542742753391853391
与えられた素数を見るとrとtが等しいことが
わかる。Φの定義はNと互いに素な1以上N以
下の自然数なので
Φ=(p-1)*(q-1)*(r-1)*(s-1)*t*(u-1)となる。
あとは通常通りの計算で復号すればよい。