参考:https://blog.csdn.net/huanghelouzi/article/details/82943615
公共模数攻击
给定两组密文和公钥和n
c1 = pow(m, e1, N)
c2 = pow(m, e2, N)
因为e1e2互质,所以可知若有xy满足pow(x,e1)+pow(y,e2)=1,则pow(pow(c1,-1),-x) * pow(c2,y) = p mod(n)
若p<n则可以直接计算。
小指数e攻击
e取很小且多个模数gcd!=1的时候容易求出pq
选择密文攻击
多个模数的情况
已知:加密算法、截获的部分密文、自己选择的密文消息以及相应的被解密的明文
如果两次加密的n1和n2具有相同的素因子,可以利用欧几里德算法直接分解n1和n2。通过欧几里德算法计算出两个n的最大公约数p
yafu、Pollard rho、Fermat
玄学黑箱
低加密指数广播攻击
如果选取的加密指数e比较低,并且使用了相同的加密指数e给若干个接收者发送相同的信息,可以利用低加密指数广播攻击得到明文。
选取相同的加密指数e(例如e=3),对相同的明文m进行了加密并进行了消息的发送。
e=3时,中国剩余定理可得c_x = pow(m, 3, n1 * n2 * n3)
Coppersmith定理攻击
Coppersmith定理指出在一个e阶的mod n多项式f(x)中,如果有一个根小于n^frac{1}{e} ,就可以运用一个O(log n)的算法求出这些根。
这个定理可以应用于RSA算法。如果e = 3并且在明文当中只有三分之二的比特是已知的,这种算法可以求出明文中所有的比特
给定p xor q的后一些位
第五空间的题,当时没搜出来,不知道哪里出了问题……
https://math.stackexchange.com/questions/2087588/integer-factorization-with-additional-knowledge-of-p-oplus-q/2087589#2087589