New Attacks on Prime Power $N=p^rq$ Using Good Approximation of $φ(N)$
一篇学长发的paper,简单复现一下
这篇论文总共介绍了三种RSA攻击方法。
攻击一
素数幂模:形式为$N=p^rq$,和RSA一样,安全性取决于整数分解的难度。
设$N=p^rq$是素数幂模,满足$q<p<2q$,有$ed-k\phi(N)=1$和$1<e<\phi(N)<N-2N^{\frac r{r+1}}+N^{\frac{r-1}{r+1}}$,我们定义$d=N^{\delta}$,如果有$\delta<\frac{1-\gamma}2$,满足:
这里的$\gamma\in (0.75,0.8)$。
根据之前了解过的legendre定理,那么对于$\frac kd$就在连分数$\frac e{N-2N^{\frac r{r+1}}+N^{\frac{r-1}{r+1}}}$展开的范围内。
知道了$d$之后,就可以把素数幂模在多项式时间内因式分解。
由于:
这两个参数进行求最大公因数,能分解出最大的因子$p^{r-1}$,$r$是已知的,所以可以得到$p$,相应的$q$也可以求解出来。
例题
1 | r = 3 |
根据上面的分析写脚本:
1 | import gmpy2 |
原理证明
根据公式$ed-k\phi(N)=1$,可以得到$ed-k(p^{r-1}(p-1)(q-1))=1$。进而变形:
可以得到:
因为根据原型公式可以推得:$ed-k(N-(N-\phi(N)))=1$,所以,即可求得:
继续变形:
等式两边同时除$d(N-2N^{\frac r{r+1}}+N^{\frac{r-1}{r+1}})$,可以得到:
能知道一般满足关系$\phi(N)>\frac 23 N$和$N>6d$(根据已知的$\gamma$和$\delta$关系),那么有:
论文提到了一个引理:当满足$N=p^r q$是素幂模且$q<p<2q$和$\phi(N)=N-(p^r+p^{r-1}q-p^{r-1})$,能得到:
这个可以根据已有满足的条件进行变形得到。
根据这个引理,对之前的式子进一步变换:
已知的关系中提出了$\delta<\frac{1-\gamma}2$,也就有$\gamma-1<-2\delta$,代入:
推出这个结论之后,根据legendre定理就可以知道$k,d$是前面分式的一个连分数展开。
攻击二
当存在多组公共模数和指数时,介绍另一种攻击方式:
对于$j\ge 2$和$r\ge 2$,有$N_i=p^r_iq_i,i=1,…,j$,让$N=\min N_i$,定义几个参数:
当$1<e_i<\phi(N_i)<N_i-\triangledown$,如果存在$d<N^\delta$和$k_i<N^\delta$满足:
那么就可以通过构造矩阵LLL进行这些模数的因式分解。
例题
这里的原理比较抽象,直接拿题目来说吧。
为了说明对$j$模的攻击,考虑下面三对素数幂和指数:
1 | N1 = 5245610482183600624272049202675113495636808362511373071 |
有$N=\min(N_i)=1982…6947$。
知道$j=3,r=3$,当$\gamma=0.75$有$\delta=\frac{j-\gamma j}{j+1}=0.1875$,$\varepsilon=\frac 14N^{\delta+\gamma-1}=0.000101009756$,定义:
构造格子:
通过LLL算法得到约减基记为$K$,计算$KM^{-1}$。
得到第一行的元素:
定义:
计算:
对于每一组数据,计算:
得到因式分解后的结果,此种RSA得以破解。
攻击三
第三种和第二种在整体思路上相似,不过第三种强调了一个当$d$和$k$都很小的情况。
第三种求解时使用了最大值的$N$,用$\gamma=0.8$和$\min e=N^\beta$,得到:
计算$C$的公式是相同的,然后造格:
后续的计算方式和第二种完全一致,计算得到$N_i$的因子,破解此种RSA。