Bootstrap

ctfshow RSA篇

无脑爆破的就不往上发了,虽然有绝大多数的题都可以无脑爆破

crypto easyrsa2

n1,n2不同,考虑模不互素的情况,由于n1,n2不互素,那么必然有一个公因数,由于n是由两个质数相乘得到的,所以只有两个因数,那他们的公因数设为p,则q1=n1//p, q2=n2//p,求解m就好了。

crypto easyrsa3

考虑共模攻击(前提是m和n相同,c和e不同),由于

c1 = m^e1 % n ……1

c2 = m^e2 % n ……2

由拓展欧几里得定理可以得到e1*s1+e2*s2=1

1式取s1次方得到c1^s1 = m^(e1*s1)%n

2式取s2次方得到c2^s2 = m^(e2^s2)%n

两式相乘得到c1^s1*c2^s2 = m^(e1*s1+e2*s2)%n=m%n

因为m<n,所以c1^s1*c2^s2=m,得到m

easyrsa 4

e很小,由于e*d=1%n,c=m^e%n,c也很小,说明m很小,m^3不一定比n大,猜测d=e^(-1)=1/3

所以m=c^(1/3),用gmpy2库的iroot函数求c的三次根,得到m

easyrsa 5

e和n都很大,由于e和d一般成负相关,d就会小很多,可以用owiener攻击,我们由现成的库,可以pip

;