无脑爆破的就不往上发了,虽然有绝大多数的题都可以无脑爆破
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