引言
周一整天都想睡
上周末的任务还没完成
哎。。。
RSA5
附件给了 e = 65537 和一串的 n 和 c
猜想是广播攻击
但是这个 e… 是不是有点大?
参考 ctfwiki 的广播攻击
其中有一个条件:n 要互素
我寻思出题人不会蠢到给个漏洞吧
然后忽略了这个条件,直接莽
用 sagemath 封装好的 CRT(中国剩余定理),算出
m
e
m^{e}
me:
然后一开根:
结果:
我人傻了
开出来不是整数(我囸)
看了别人的解法,才知道其中有两个 n 是不互素的(啊这)
这波是聪明反被聪明误
代码如下:
from Crypto.Util.number import *
import gmpy2
e = 65537
list_n = []
list_c = []
with open('1.txt', 'r') as f:
l = f.readlines()
for line in l:
if line[0] == 'n':
list_n.append(int(line.replace('\n', '').replace(' ', '')[2:]))
elif line[0] == 'c':
list_c.append(int(line.replace('\n', '').replace(' ', '')[2:]))
print(list_n)
print(list_c)
for i in range(len(list_n)):
for j in range(i+1, len(list_n)):
if gmpy2.gcd(list_n[i], list_n[j]) != 1:
p = gmpy2.gcd(list_n[i], list_n[j])
k_p, k_q = i, j
print(i, j)
n = list_n[k_p]
q = n//p
print(p, q)
c = list_c[k_p]
phi = (p-1)*(q-1)
d = inverse(e, phi)
m = pow(c, d, n)
print(long_to_bytes(m))
结果:flag{abdcbe5fd94e23b3de429223ab9c2fdf}
传感器
之前吐槽过
见我 2021-4-1的博客
结语
又还有一堆事没干
感觉开始滚雪球了啊
希望继续坚持