多小秘密指数RSA变体的密码分析

具有多个小秘密指数的RSA变体的密码分析

摘要

在本文中,我们分析了两种使用公共模数的多组加密和解密指数 RSA公钥密码系统的安全性。对于最著名的变体CRT‐RSA,假设在同一个CRT‐RSA模数 N上使用了 n组加密和解密指数(el, dpl, dql),其中 l= 1, ···, n。通过采用基于闵可夫斯基和的格构造方法,并结合多个共享一个公共变量的模方程,我们证明当 dpl, dql < N^(8n+2)/(2n−3) 对所有l= 1,···, n成立时,可以分解 N。我们将此界进一步改进为 dpl(或 dql) < N^((9n−14)/(24n+8)),适用于所有 l= 1,···, n。此外,当使用多个指数时,我们的实验结果优于Jochemsz‐May(CRYPTO 2007)和Herrmann‐May(PKC 2010)之前的成果。对于高木RSA变体,假设有 n个密钥对(el, dl),其中 l= 1,···, n,可用于公共模数 N= p^r q,且 r ≥ 2。通过求解若干组同时模单变量线性方程,我们表明当 dl< N^((r−1)/(r+1)) * ((n+1)/n) 对所有l= 1,···, n成立时,可以分解公共模数 N。

关键词 :RSA · Cryptanalysis · Lattice · Coppersmith’s方法

1 引言

自发明以来[16], RSA公钥方案因其高效的加密和解密而被广泛使用。为了获得更高的效率,设计了一些原始RSA的变体。维纳[24]提出了一种在解密阶段利用中国剩余定理通过使用较小的指数来加速解密操作的算法 d_p 和 d_q 满足 ed_p ≡ 1 mod(p − 1) 和 ed_q ≡ 1 mod(q − 1) 的模数 N=pq以及一个加密指数 e。这种面向解密的RSA方案变体通常被称为CRT‐RSA。此外,为了实现快速解密,高木[21]提出了另一种模数形式为 N= p^r q的RSA变体,其中 r ≥ 2是一个整数。对于高木的变体,加密指数 e和解密指数 d满足 ed ≡ 1 (mod p^{r−1}(p −1)(q −1))。

在RSA方案及其变体的许多应用中,为了在解密过程中实现高效的模幂运算,通常选择 d较小,或选择 d_p和 d_q较小。然而,自从维纳[24]指出当 d 足够小时原始RSA方案不安全以来,沿着这一方向,许多研究人员已将大量注意力集中在小解密指数情况下的RSA模数及其变体的分解问题上。

小秘密指数攻击对RSA及其变体的影响

对于具有模数 N= pq的原始RSA,维纳[24]证明了当 d ≤ N^0.25时,可以通过连分数法在多项式时间内分解模数 N。随后,博内和杜尔菲[2]利用一种基于格的方法——通常称为科珀斯密斯技术[5],用于求解模方程的小根,将界改进至 N^0.292,并在若干合理假设下实现了这一结果。接着,赫尔曼和梅[6]采用线性化技术简化了相关格的构造过程,并获得了相同的界 N^0.292。迄今为止,N^0.292仍然是针对全尺寸 e的原始RSA方案进行小秘密指数攻击的最佳结果。

对于CRT‐RSA,约亨姆斯和梅 [10] 提出了一种针对小 d_p 和 d_q 的攻击,其中 p 和 q 是平衡的,且加密指数 e 为全尺寸,即大约与模数 N= pq 相当。通过求解一个整数方程,只要小的解密中国剩余定理指数 d_p 和 d_q 小于 N^0.073,他们就能够分解 N。类似地,赫尔曼和梅 [6] 使用线性化技术获得了相同的理论界,但在实验中取得了更好的结果。

对于模数为 N= p^r q的高木RSA变体,May [13] 应用了Coppersmith方法,证明了只要满足d ≤ N^((r−1)/(r+1))^2,就可以分解该模数。通过修改构造格时所使用的多项式集合r(r−1),Lu 等人 [12]将此界改进至 d ≤ N^(r(r−1)/(r+1)^2)。最近, Sarkar [17]从利用代数性质的新视角出发,在 r ≤ 5的情况下进一步改进了该界。特别是对于最实用的情形 r= 2,界已从 N^0.222显著改进至 N^0.395。下表列出了现有针对RSA及其变体的小解密指数攻击:

表1. 关于RSA及其变体的小秘密指数攻击的现有研究概述。最后一列中的条件允许有效分解模数 N。

作者 密码系统 界限
维纳: 1990[24] RSA d< N^0.25
博内和杜尔菲: 1999[2] RSA d< N^0.292
约亨姆斯和梅: 2007[10] CRT‐RSA dp, dq< N^0.073
赫尔曼和梅: 2010[6] CRT‐RSA dp, dq< N^0.073
五月: 2004[13] 高木RSA变体 N= p^r q d ≤ N^((r−1)/(r+1))^2
Lu, Zhang, Peng and Lin: 2014[12] 高木RSA变体 N= p^r q d ≤ N^(r(r−1)/(r+1)^2)
萨卡尔: 2014[17] 高木RSA变体 N= p^2q d ≤ N^0.395

表2. 关于解密指数数量的先前理论界限比较。

n 1 2 5 10 20
霍格雷夫‐格雷厄姆和塞弗特的界[8] 0.2500 0.3125 0.4677 0.5397 0.6319 1.0000
萨卡尔和马itra的界 [18] 0.2500 0.4643 0.6250 0.6855 0.7172 0.7500
青野的界 [1] 0.2929 0.4655 0.6464 0.7460 0.8189 1.0000
高安和国広的界 [23]

(e1,···, en) 在公共模数 N 下存在,且对应的解密指数 (d1,···, dn) 较小。根据他们的结果,当所有 l= 1,···, n 满足 dl< N^δ 时,可以分解 N,其中
δ<
⎧ ⎪⎪⎪⎪⎪⎨ ⎪⎪⎪⎪⎪⎩
(2n+ 1)2n −(2n+ 1)(nn2) / (2n −1)2n+(4n+ 2)(nn2)
, if n is even, and
(2n+ 1)2n −4n(nn−1 2) / (2n −2)2n+ 8n(nn−1 2)
, if n is odd.
在 [18],中,Sarkar 和 Maitra 采用了 [9]的策略来求解整数方程的小根,并将界改进至 δ< (3n−1)/(4n+4) 。青野 [1]提出了一种方法,用于求解多个共享一个共同未知变量的同时同余方程。青野通过基于闵可夫斯基和的格构造将多个格合并为一个格,并得出当 δ< (9n−5)/(12n+4) 时,N 可以被分解。不久之后,高安和国広 [23]修改了每个格并收集了更多有用的多项式,将界进一步改进至1−√(2/(3n+1)) 。综上所述,先前工作的比较情况如表2所示。

模未知除数的同时单变量线性方程。2001年,霍格雷夫‐格雷厄姆首次考虑了求解模已知合数整数的未知除数的单变量线性方程的问题,
f(x)= x+ a(mod p),
其中 a是一个给定的整数, p N^β是已知 N的一个未知因子。根的大小被|x| < N^δ所界。霍格雷夫‐格雷厄姆证明了只要满足 δ< β^2,就可以在多项式时间内求解该根。
该问题的推广已被科恩和亨宁格 [4], 所研究
⎧ ⎪⎪⎪⎨ ⎪⎪⎪⎩
f(x1)= x1+ a1(mod p), f(x2)= x2+ a2(mod p),
···
f(xn)= xn+ an(mod p).
在上述同时模单变量线性方程中,a1,···, an为给定的整数,且 p N^β是 N的一个未知因子。根据他们的结果,如果满足以下条件,则可以分解 N
(γ1+ ···+ γn)/n < β^(n+1)/n and β 1/√logN
其中 |x1| < N^γ1,···, |xn| < N^γn。然后通过考虑未知变量的大小,并收集更多有助于构造格的多项式,高安和国広[22]进一步将界改进为
√(nγ1 ··· γn)< β^(n+1)/n and β 1/√logN .

我们的贡献

在本文中,我们分别对具有多个小解密指数的CRT‐RSA和Takagi提出的RSA变体进行了分析。对于CRT‐RSA,(e1,···, en) 是 n加密指数,而 (dp1 , dq1) ···,(dpn , dqn) 是对应于公共CRT‐RSA模数N的解密指数,其中 e1,···, en为全尺寸,即与 N相同量级。基于青野提出的基于闵可夫斯基和的格构造方法,[1],我们结合了若干共享公共变量的模方程,得到当 N时可以分解
d_pl , d_ql < N^((2n−3)/(8n+2))
对于所有 l= 1,···, n,其中 n 是解密指数的数量。

为了利用基于闵可夫斯基和的格构造来合并方程,这些方程应共享一个公共变量。因此,我们修改了在[10],中考虑的每一个方程,这导致当仅存在一对加密和解密指数时,界变得更差。

然而,需要注意的是模方程
k_pl( p −1)+ 1 ≡ 0(mod el) , for l= 1,···, n,
具有多个小秘密指数的RSA变体的密码分析 109
共享一个公共根 p。然后,我们可以通过基于闵可夫斯基和的格构造直接组合这些 n 个方程,并引入一个新的变量 q 以最小化组合格的行列式。我们可以得到一个改进的界,即当满足该界时可以分解 N
d_pl< N^((9n−14)/(24n+8))
对于所有 l= 1,···, n。

注意,为了合并这些方程,我们修改了[10]中考虑的每个方程。当存在 n= 2个解密指数时,我们的界为N^0.071,该界小于 N^0.073中的界[10]。因此,在理论上,只有当一个公共的CRT‐RSA模数存在 n ≥ 3对加密和解密指数时,我们才改进了先前的界,并在 N^0.375中渐近地得到 n。然而,值得欣慰的是,在实际中使用3对指数时,我们成功分解了 N,其中d_pl< N^0.035,而原始的界分别为N^0.015在[10]中和 N^0.029在[6]中。

这些界限的明确描述如图1所示。

对于高木RSA变体,假设有 n加密和解密指数(el, dl),其中 l= 1,···, n具有公共模数 N= p^r q,这意味着存在 l组同时模单变量线性方程。到目前为止,这类模方程已在[4,22]中被研究。

通过应用他们的结果,我们得出当对所有 l= 1,···, n满足 dl ≤ N^δ时,模数可以被分解,其中
δ<(r −1 / r+ 1)^(n+1)/n
.

本文其余部分组织如下。第2节介绍格与CRT‐RSA变体的预备知识。在第 3节中,我们分析具有多个小解密指数的CRT‐RSA。第4节对具有多个小解密指数的高木变体RSA进行分析。最后,第5节是结论。

2 预备知识

设 w1, w2,···, wk是 R^n中的 k个线性无关向量。由{w1,···, wk}张成的格 L是指所有形如 c1w1+ ···+ ckwk的整数线性组合构成的集合,其中 c1,···, ck ∈ Z。这个 k维格 L是 R^n的一个离散加法子群。向量组 w1,···, wk称为格 L的一组基。

格基不唯一,可以通过乘以任意一个行列式为 ±1的矩阵来得到另一组基,这意味着任何维数大于1的格都有无限多组基[15]。因此,如何找到具有良好性质的格基一直是一个重要问题。

Lenstra 等人[11]提出了著名的 L3格基约简算法,该算法能在多项式时间内输出一个相对较短且近似正交的格基。该算法并不寻找格中的最短向量,而是寻找具有以下有用性质的 L3约化基。

引理1 (L3,[11]) 。设 L为一个维数为 k的格。对 L应用 L3算法,得到的约化基向量 v1,···, vk满足
‖vi‖ ≤ 2^(k(k−i))/(4(k+1−i)) det(L)^(1/(k+1−i)), for any 1 ≤ i ≤ k.

科珀史密斯 [5]应用 L3格基约减算法来寻找整数方程和模方程的小解。后来,约亨姆斯和梅 [9]扩展了该技术,并给出了求多元多项式根的一般性结果。

对于给定的多项式 g(x1,···, xk) = ∑ (i1,···,ik) ai1,···,ik xi1 1 ··· xi k
g的范数为
‖g(x1,···, xk)‖=( ∑ (i1 ,···,ik) a^2 i1 ,···,ik)^(1/2).

以下引理由霍格雷夫‐格雷厄姆 [7] 提出,给出了模方程可转化为整数方程的充分条件。

引理2 (霍格雷夫-格雷厄姆,[7]) 。设 g(x1,···, xk) ∈ Z[x1,···, xk]是一个最多含有 w项的整系数多项式。假设
g(y1,···, yk) ≡ 0(mod p^m) for |y1| ≤ X1,···, |yk| ≤ Xk, and
‖g(x1X1,···, xkXk)‖< p^m / √w.
则 g(y1,···, yk)= 0 在整数上成立。

假设我们有 w(> k) 个变量为 x1, . . . , xk 的多项式 b1,···, bw,使得 b1(y1, . . . , yk) = ···= bw(y1, . . . , yk) = 0 mod p^m,其中 |y1| ≤ X1, . . . , |yk| ≤Xk。现在我们构造一个格 L,其基由 b1(x1X1, . . . , xkXk), . . . , bw(x1X1, . . . , xkXk) 的系数向量构成。经过格约化后,我们得到 k 个多项式 v1(x1, . . . , xk) . . ., vk(x1, . . . , xk),满足
v1(y1,…, yk)= ···= vk(y1,…, yk)= 0 mod p^m
对应约化基的前 k个向量。此外,根据 L3算法的性质,我们有
||v1(x1X1,…, xkXk)|| ≤ ··· ≤ ||vk(x1X1,…, xkXk)|| ≤ 2^(w(w−1))/(4(w+1−k)) det(L)^(1/(w+1−k)).
因此根据引理 2,如果
2^(w(w−1))/(4(w+1−k)) det(L)^(1/(w+1−k)) < p^m / √w ,
那么我们有 v1(y1,…, yk) = ···= vk(y1,…, kk) = 0。接下来我们希望从 v1,…, vk 中求出 y1,…, yk。

一旦我们通过 L3格约化算法得到若干整数上的多项式方程,就可以通过计算这些多项式的结式或Gr¨obner基来求解其在整数上的根,该过程基于以下启发式假设。在实际实验中,以下启发式假设通常成立。

假设1 . 我们基于格的构造生成代数独立的多项式。这些多项式的公共根可以通过计算结式或求Gr¨obner基等技术高效地计算。

与其他格约化工作类似 [1,9,10,23],尽管我们提供了支持攻击的实验结果,但我们还想指出,理论结果是渐近的,因为在攻击的某些计算中我们忽略了常数项。

基于闵可夫斯基和的格构造

在[1],青野提出了一种为科珀史密斯技术构建同时同余方程格的方法。为了使这一点更清晰,我们通过一个例子来说明。有两个模方程 f1 ≡ 0(mod W1) 和 f2 ≡ 0(mod W2)。

基于科珀斯密斯技术,为求解 f1的解,我们首先选择一些多项式 g1,···, gn,它们在模 W^m 1下具有相同的解。类似地,我们构造多项式 g1′,···, gn′,它们在模 W^m 2下具有相同的解。显然,任何形如 gi g′ j的多项式,其中 1 ≤ i, j ≤ n,都在模 W^m 1 W^m 2下具有所需的解。然后我们排列这些多项式,并构造一个新的格,其多项式在模 W^m 1 W^m 2下具有所需的解。通过整数线性组合,某些具有相同首项的多项式可以表示为∑ i ,j ai ,j gi g′ j。为了保持行列式的格较小时,整数ai,j被适当地选取。该格称为组合格,由两个格构成:其中一个由多项式 g1,···, gn构造而成,另一个由多项式 g1′,···, g′ n构造而成。青野证明了,若每个格具有三角基矩阵,则组合格是三角形的。上述结论可推广至任意数量的模方程。

CRT-RSA

自从RSA公钥密码系统被发明以来[16],,由于其简洁高效的加密和解密过程,该公钥方案得到了广泛应用。维纳[24]提出在解密阶段使用中国剩余定理。该方案通常称为CRT‐RSA。基于孙和吴的工作[20],,这种变体的一种版本可以描述如下:

算法1. CRT‐RSA的密钥生成
(n, δ1, δ2),其中 n, δ1n 和 δ2n 分别表示 N、 dp 和 dq 的比特长度。

RSA多种变体中多个小私钥指数的密码分析

CRT‐RSA实例 (N,p, q, e, dp, dq)
1: 随机选择两个 n/2 ‐比特素数 p= 2p1+ 1和 q= 2q1+ 1,使得 gcd(p1, q1) = 1。
2:随机生成 (δ1n) 位整数 dp 和 (δ2n) 位整数 dq ,使得 gcd(dp , p − 1) = 1 且 gcd(dq , q − 1) = 1。
3:计算 d¯ ≡(dq − d p)(p −1 1(mod q1))。
4:计算 d= d p + p1 · d¯。
5: 计算满足 ed ≡(mod (p − 1)(q − 1)) 的加密指数 e。
6: RSA模数为 N= pq,私钥为 (dp , d q , p, q),公钥为 (N, e)。

如CRT‐RSA密钥生成算法所述,可能存在多个有效的加密和解密指数对应同一个CRT‐RSA模数 N= pq的情况,即在完成选择一对(p, q)的第1步后,在后续步骤中生成多个不同的 d_p 和 d_q 。接下来,我们分析多组加密和解密指数共享一个公共CRT‐RSA模数情况下的安全性弱点。

3 CRT‐RSA的多组加密和解密指数攻击

在本节中,沿着[1,8,18,23]的思路,我们给出以下定理:当多组加密和解密指数用于同一个CRT‐RSA模数时。通过将我们的结果与Jochemsz和May的结果 [10],进行比较,当存在3组或更多组加密和解密指数用于同一个CRT‐RSA模数时,我们改进了界。并且我们还改进了实验结果 N^0.015在[10]和 N^0.029在[6]至 N^0.035使用3组指数的情况。

定理1 . 设(e1, e2,···, en)是具有公共模数 N= pq的 n CRT-RSA加密指数,其中 n ≥ 3和 e1, e2,···, en的位长度大致与 N相同。设 dpi, dqi ≤ N^δ对应于 i= 1, 2,···, n为相应的解密指数。则在假设 1下,当满足以下条件时,可以在多项式时间内分解N。
δ< (2n −3)/(8n+ 2).

证明 . 对于一对密钥 (el, dpl, dql),我们有
e_l d_pl −1= k_pl(p −1),
e_l d_ql −1= k_ql(q −1),
其中k_pl和 k_ql为某些整数。

此外,通过将这两个方程相乘,我们得到
e²_l d_pl d_ql − e_l(d_pl + d_ql) + 1= k_pl k_ql( N − s),
其中 s= p+ q −1。
则(k_pl k_ql , s, d_pl + d_ql) 是以下方程组的解
f_l(x_l, y, z_l)= x_l(N − y)+ e_l z_l −1(mod e²_l).

此外,考虑 n 模多项式
f_l(x_l, y, z_l)= x_l(N − y)+ e_l z_l −1(mod e²_l), for l= 1,···, n. (1)
这些多项式具有公共根 (x1,···, xn, y, z1,···, zn)=(k_p1 k_q1 , ···, k_pn k_qn , s, d_p1 + d_q1 ,···, d_pn + d_qn ),其系数的值大致有界为
k_pl k_ql X_l= N^(1+2δ), s Y= N^(1/2)和 d_pl + d_ql N^δ= Z,其中 l= 1,···, n。

为了解模方程的期望解 f_l(x_l, y, z_l)=0(mod e²_l),对于 l= 1,···, n,基于 Aono的思想 [1],,我们首先选择以下一组多项式来求解每个单一方程,
S_l={x_i^l_l z_j^l_l f_k^l 2_l)^(m−k_l) | 0 ≤ k_l ≤ m, 0 ≤ i_l ≤ m−k_l, 0 ≤ j_l ≤ m−i_l−k_l},
其中 l= 1,···, n 和 m 为正整数。

对于(1)中的每个方程,每种选择都会生成一个三角基矩阵。同样地,对于每个 l= 1、2、···、 n,我们都可以分别构造一个三角矩阵。基于闵可夫斯基和的格构造技术,这些对应于 n三角矩阵的格可以组合成一个新的格 L′,其基矩阵包含具有与模方程模(e²₁ ··· e²ₙ)^m的解相同根的多项式。由于每个基矩阵都是三角形的,因此组合后的格也是三角形的。组合基矩阵的对角元素为
X¹ᵢ¹ ··· Xⁿᵢⁿ Yᵏ Z¹ⱼ¹ ··· Zⁿⱼⁿ (e²₁)^(m−min(i₁,k))···(e²ₙ)^(m−min(iₙ,k)),
其中
0 ≤ i₁,···, iₙ ≤ m, 0 ≤ k ≤ i₁+ i₂+ ···+ iₙ, 0 ≤ j₁ ≤ i₁,···, 0 ≤ jₙ ≤ iₙ.

然后可以计算格的行列式为
det(L′)= ∏ {i₁=0}^m ··· ∏ {iₙ=0}^m ∏ {k=0}^{i₁+···+iₙ} ∏ {j₁=0}^{m−i₁} ··· ∏_{jₙ=0}^{m−iₙ} (X¹ᵢ¹ ···Xⁿᵢⁿ Yᵏ Z¹ⱼ¹ ···Zⁿⱼⁿ (e²₁)^(m−min(i₁,k))···(e²ₙ)^(m−min(iₙ,k)))
= X^{Sx₁}₁ ···X^{Sxₙ}ₙ Y^{Sy} Z^{Sz₁}₁ ···Z^{Szn}ₙ (e²₁)^{Se₁} ···(e²ₙ)^{Sen},
其中
Sx₁+ Sx₂+ ···+ Sxₙ=( n²/18+ n/36) m^(2n+2)/2^(n−1) + o(m^(2n+2)),
Sy=(n²/36+ n/72) m^(2n+2)/2^(n−1) + o(m^(2n+2)),
Sz₁+ Sz₂+ ···+ Szn =(n²/18 − n/72) m^(2n+2)/2^(n−1) + o(m^(2n+2)),
Se₁+ Se₂+ ···+ Sen =(n²/9 − n/72) m^(2n+2)/2^(n−1) + o(m^(2n+2)).

另一方面,维数是
dim(L′)= ∑ {i₁=0}^m ··· ∑ {iₙ=0}^m ∑ {k=0}^{i₁+···+iₙ} ∑ {j₁=0}^{m−i₁} ··· ∑_{jₙ=0}^{m−iₙ} 1= n/6 · 2^(n−1) m^(2n+1)+ o(m^(2n+1)).
请参见附录以查看详细计算。

由引理1和2,我们可以得到整数方程当
det(L′)^(1/dim(L′)) < (e²₁ ··· e²ₙ)^m. (2)

忽略 m的低阶项,并将X_l= N^(1+2δ)、 Y= N^(1/2)、 Z_l=N^δ和 e²_l N²代入上述不等式(2),必要条件可表示为
(1+ 2δ)(n²/18 + n/36)+ 1/2(n²/36 + n/72)+ δ(n²/18 − n/72)+ 2(n²/9 + n/72) ≤ n²/3,
即,
δ< (2n −3)/(8n+ 2).

然后我们得到 2n+ 1个多项式,它们具有公共根(x1,…, xn, y, z1,…, zn)。在假设1成立的条件下,我们可以从这些多项式中求出 x1,…, xn, y, z1,…, zn。至此,定理1的证明完成。

此外,除了使用基于闵可夫斯基和的格构造来组合多项式 e_l d_pl= k_pl(p−1) +1,对于 l= 1,···, n,我们还引入了一个额外的变量 q以减小格的行列式,最终改进定理1的界。

更准确地说,我们首先利用基于闵可夫斯基和的格构造方法,构建一个结合了多项式f_l(x_l, y) = x_l(y − 1) + 1(mod e_l),(其中 l= 1,···, n)的格。然后,通过观察出现在该格中的单项式,我们发现变量 y的所需根 p是N的一个因子。因此,为了减小所构造格的行列式,我们可以引入一个新的变量 z,它对应于 q。由于 pq= N,我们可以将 yz替换为N,然后乘以 N模 e₁ ··· eₙ的逆元。综上所述,我们可以得到以下定理。

定理2 。设(e1, e2,···, en)为具有公共模数 N= pq的 n CRT-RSA加密指数,其中 n ≥ 2且 e1, e2,···, en的比特长度与 N大致相同。考虑 d_pl, d_ql对应于 l= 1, 2, ···, n为相应的解密指数。假设 d_pl< N^δ对 l= 1, 2,···, n成立,则在假设1下,当满足一定条件时,可以在多项式时间内分解 N。
δ< (9n −14)/(24n+ 8).

证明 。 对于每一对密钥对(e_l, d_pl , d_ql),我们有
e_l d_pl = k_pl(p −1)+ 1,
其中 k_pl 是一个整数。

然后(k_pl ,p)是
f_l(x_l, y)= x_l(y −1)+ 1(mod e_l).

考虑 n模多项式
f_l(x_l, y)= x_l(y −1)+ 1(mod e_l), for l= 1,···, n.

显然,这些多项式具有公共根(x1,···, xn, y)=(k_p1 ,···,k_pn ,p),且其系数的大小大致可确定为 k_pl X_l=N^(1/2 +δ),对于 l= 1,···, n和 p Y= N^(1/2)。

为了求解所需的解,类似地,我们首先选择以下多项式集合来求解每个单独的模方程,
S_l={x_i^l_l f_k^l , y)(e_l)^(m−k_l) | 0 ≤ k_l ≤ m , 0 ≤ i_l ≤ m − k_l} ,
其中 l= 1,···, n 和 m 是一个正整数。

每次选择生成一个三角基矩阵。然后,对于 l= 1,···, n 我们分别构造一个三角矩阵。我们使用与模方程在模 (e₁ ··· eₙ)^m 下的解具有相同根的多项式来构造基矩阵。通过基于闵可夫斯基和的格构造将这 n 个格组合起来,所得到的组合格 L′₁ 对应的矩阵是三角形的,并且其对角元素为
X¹ᵢ¹ ··· Xⁿᵢⁿ Yᵏ e^(m−min(i₁,k)) ··· e^(m−min(iₙ,k))_n ,
其中
0 ≤ i₁,···, iₙ ≤ m, 0 ≤ k ≤ i₁+ i₂+ ···+ iₙ.

此外,注意到期望的小解包含素因子 p,它是模数 N= pq的一个因子。然后我们为另一个素因子 q引入一个新变量 z,并将对应于 L′₁中每个行向量的每个多项式乘以某个稍后将进行优化的 s次幂 z^s。接着,由于 N= pq,我们将每个单项式 yz的出现替换为 N。因此,与未改变的多项式相比,每个单项式
x¹ᵢ¹ ··· xⁿᵢⁿ yᵏ z^s k ≥ s ··· aᵢ₁…ᵢₙ,k x¹ᵢ¹ ··· xⁿᵢⁿ y^(k−s)
及其系数,,,被转换为具有系数aᵢ₁,···,ᵢₙ,k N^s的新单项式。类似地,当 k< s时,具有系数aᵢ₁,···,ᵢₙ,k的单项式 x¹ᵢ¹ ··· xⁿᵢⁿ yᵏ z^s被转换为具有系数aᵢ₁,···,ᵢₙ,k N^k的新单项式 x¹ᵢ¹ ··· xⁿᵢⁿ z^(s−k)。令 Z= N^(1/2)表示未知变量 z的上界。

为了使格的行列式尽可能小,我们尝试消除对角元素系数中 N^s和 N^k的因子。由于(N, e₁ ··· eₙ) = 1,我们只需将相应的多项式乘以 N^s或 N^k在模( e₁ ··· eₙ)^m下的逆元即可。

然后,格的行列式可以如下计算,
det(L′₁)= X^{Sx₁}₁ ···X^{Sxₙ}ₙ Y^{Sy} Z^{Sze} Se₁₁ ··· e^{Sen} n,
其中
Sx₁+ Sx₂+ ···+ Sxₙ = ∑
{i₁=0}^m ··· ∑ {iₙ=0}^m ∑ {k=0}^{i₁+···+iₙ} (i₁+ ··· iₙ),
Sy= ∑ {i₁=0}^m ··· ∑ {iₙ=0}^m ∑ {k=s}^{i₁+···+iₙ} (k − s),
Sz= ∑
{i₁=0}^m ··· ∑ {iₙ=0}^m ∑ {k=0}^{s−1} (s− k),
Se₁ + Se₂ + ···+ Seₙ = ∑ {i₁=0}^m ··· ∑ {iₙ=0}^m ∑_{k=0}^{i₁+···+iₙ} (nm− min(i₁, k)−··· − min(iₙ, k)).

由于以下公式对任意 0 ≤ a, b ≤ n 均成立,
{i₁=0}^m ··· ∑ {iₙ=0}^m i_a i_b =
⎧ ⎨

1/3 m^(n+2)+ o(m^(n+2)),(a= b),
1/4 m^(n+2)+ o(m^(n+2)),(a≠ b),

我们有
Sx₁+ Sx₂+ ···+ Sxₙ=(n²/4+ n/12)m^(n+2)+ o(m^(n+2)),
Sy=(σ²n²/2 − σn²/2+ n²/8+ n/24)m^(n+2)+ o(m^(n+2)),
Sz=(σ²n²/2)m^(n+2)+ o(m^(n+2)),
Se₁+ Se₂+ ···+ Sen=(n²/4+ n/12)m^(n+2)+ o(m^(n+2)).

其中 s= σnm 和 0 ≤ σ< 1。

另一方面,格的维数是
dim(L′₁)= ∑ {i₁=0}^m ··· ∑ {iₙ=0}^m ∑_{k=0}^{i₁+···+iₙ} 1= n/2 m^(n+1)+ o(m^(n+1)).

由引理1和2可知,当时可得到整数方程
det(L′₁)^(1/dim(L′₁)) < (e₁ ··· eₙ)^m. (3)

忽略 m的低阶项,并将X_l= N^(1/2+δ)、 Y= N^(1/2)、 Z= N^(1/2)和 e_l N代入上述不等式(3)中以表示 l= 1、···、 n,必要条件可写为
(1/2+ δ)(n²/4+ n/12)+ 1/2(σ²n²/2 − σn²/2+ n²/8+ n/24)+ 1/2(σ²n²/2)+(n²/4+ n/12) ≤ n²/2.

通过优化 σ= 1/4,我们最终得到关于 δ 的如下界
δ< (9n −14)/(24n+ 8).

那么在假设1下,可以在多项式时间内分解 N。定理2的证明到此结束。

我们的结果之所以优于以往文献中的工作,基于以下两点观察。首先,我们可以通过利用基于闵可夫斯基和格的构造方法来合并 n多项式。其次,根据 N= pq的知识,我们可以通过向每个多项式引入某个因子 z^s来优化格的行列式,其中 z是对应于 q的新变量,而 s是一个将在计算过程中进行优化的整数。

实验结果 。注意在定理2的计算中,我们假设 m趋于无穷。因此我们的结果是一个渐近界,因为我们忽略了 m的低阶项。如果 m和 n固定,则满足条件 (3)不等式的最大 δ很容易计算。在表3中,对于每个固定的 m和n,我们列出了满足(3)的最大 δ以及格的维数。极限一列表示渐近界。

表3. 固定 m时小 δ的理论界与格维数。

n= 2 m 5 6 7 8 9 10
s 2 3 3 4 4 5
δ 0.0081 0.0200 0.0244 0.0313 0.0340 0.0385 0.0714
dim(L′) 216 343 512 729 1000 1331
n= 3 m 2 3 4 5 6 7
s 1 1 2 3 4 4
δ 0.0357 0.0746 0.0938 0.1052 0.1127 0.1200 0.1625
dim(L′) 108 352 875 1836 3430 5888

我们已在配备英特尔酷睿双核处理器(2.53 GHz,1.9GB RAM, Windows 7)的个人计算机上,使用Magma 2.11计算机代数系统[3]实现了实验程序,并执行了 L3算法[14]。实验结果见表4。

表4. 实验结果。

N(比特) n理论上 的 δ实验上 的 δ格参数
1) = 108 39
时间(秒)
78.213
1000 3 0.0357 0.0350 m= 2, s= 1,dim(L′ 78.213

在实验中,当存在三个解密指数且所有指数均小于 N^0.035时,我们成功地在实际中分解了公共模数 N。对于这一给定的问题,即使用小解密指数分解 N,约亨姆斯和梅 [10]成功分解了 N,其界为 N^0.015,后来通过利用赫尔曼和梅 [6]提出的展开线性化技术,该界被改进至 N^0.029。换句话说,我们通过使用具有公共模数的更多解密指数,改进了理论和实验上的界。

请注意,在实验中,我们总是找到许多在整数上共享期望解的多项式方程。此外,我们还有另一个方程 yz= N。然后通过计算这些多项式的Gr¨obner基,我们能够在不到两个小时的时间内成功求出所需的解。

在我们为验证所提出的攻击而进行的所有实验中,确实成功地使用Gr¨obner基技术收集到了根,并且没有任何实验结果与假设1相矛盾。然而,另一方面,似乎很难证明或验证其正确性。

4 多组加密和解密指数对高木变体RSA的攻击

定理3 . 设 (e1, e2,···, en)是具有公共模数 N= p^r q的高木RSA变体的 n组加密指数。假定 d1, d2,···, dn是相应的解密指数。则在假设1成立的条件下,当N满足以下条件时,可以在多项式时间内分解
δ<(r −1 / r+ 1)^(n+1)/n,
其中 d_l ≤ N^δ,对于 l= 1,···, n。

证明 . 对于一个模数 N= p^r q,存在 n 组加密和解密指数 (e_l, d_l),因此我们有
e₁d₁= k₁p^(r−1)(p −1)(q −1)+ 1,
e₂d₂= k₂p^(r−1)(p −1)(q −1)+ 1,
···
e_n d_n= k_n p^(r−1)(p −1)(q −1)+ 1.

因此,对于未知数(d1,···, dn),我们有以下模方程,
f(x₁)= e₁x₁ −1(mod p^(r−1)),
f(x₂)= e₂x₂ −1(mod p^(r−1)),
···
f(x_n)= e_n x_n −1(mod p^(r−1)).

如所示,(d1, d2,···, dn) 是模一个未知除数的同时模单变量线性方程的根,且其大小有界为 d_l ≤ N^δ,对于l= 1,···, n。

使用[4,22],的技术可以证明,如果
δ<(r −1 / r+ 1)^(n+1)/n,
这些同时模单变量线性方程可以在假设1下求解,这意味着(d1,···, dn)可以被恢复。然后可以通过计算公因数轻松分解 N。

表5. 使用多个解密指数分解 N。

r log₂ N log₂ p n= 2 理论 n= 2 实验 n= 2 dim(L) n= 2 时间(秒) n= 3 理论 n= 3 实验 n= 3 dim(L) n= 3 时间(秒)
2 1500 500 0.272 0.230 66 2022.834 0.291 0.240 84 1537.078

实验结果 。我们已在Magma 2.11中实现了实验程序。在所有实验中,我们均成功求解出所需的解(d1, d2,···, dn)。类似地,没有任何实验结果与假设1表 5矛盾。

注意,前面的定理 3可应用于任意大小的加密指数 (e1,···, en)。然而,如果存在两个有效的密钥对 (e1, d1) 和 (e2, d2),其中 e1和 e2的大小大致与模数 N相同或某些更大的值如 N^α。假设 d1 d2 N^δ,则我们可以进行如下分析。

给定两个方程 e1d1= k1p^(r−1)(p −1)(q −1) + 1 和 e2d2= k2p^(r−1)(p −1)(q −1) + 1,我们消去 p^(r−1)(p −1)(q −1),得到以下等式, k2(e1d1 −1)= k1(e2d2 −1)
这表明我们应该寻找该多项式的小解
f(x, y)= e2x+ y(mod e1). (4)
由于(d2k1, k2−k1)是模 e1下 f(x, y)的根。 k1的界可以估计为 N^(α+δ−1),因此我们定义界限 |d2k1| X= N^(α+2δ−1)和 |k2 − k1| Y= N^(α+δ−1)。对于该线性模方程,在 N足够大 且满足 XY< e或 α+ 2δ −1+ α+ δ −1< α的条件下,我们可以恢复(d2k1, k2 − k1)。因此,要从这种基于格的方法中恢复 d2k1 和 k2 −k1,加密和解密指数的大小应满足
α+ 3δ< 2,
其中 α+ δ> 1。

5 结论

在本文中,我们提出了一些基于闵可夫斯基和的格构造的应用,并分析了多个加密和解密指数对使用公共CRT‐RSA模数 N的情况。我们证明了当 N中的两个 d_pi 、 d_qi ≤ N^((2l−3)/(8l+2))或其中一个 d_pi 或 d_qi 小于 N^((9l−14)/(24l+8))时,对于 i= 1,2,···,l,可以分解 N= p^r q。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值