您的当前位置:首页针对离散私钥比特泄漏的RSA格攻击方法

针对离散私钥比特泄漏的RSA格攻击方法

2022-01-09 来源:小侦探旅游网
第40卷 第3期 V_01.40 NO.3 计算机工程 2014年3月 March 2014 Computer Engineering ・安全技术・ 文章鳙号:1000—3428(2014)03—0163.04 文献标识码:A 中田分类号:TN918 针对离散私钥比特泄漏的RSA格攻击方法 刘向辉 ,韩文报 ,王政 ,权建校 (1.解放军信息工程大学四院,郑州450002;2.数学工程与先进计算国家重点实验室,郑州450002; 3.江南计算技术研究所,江苏无锡214083) 摘要:RSA算法是目前应用最广泛的公钥密码体制之一,而格攻击是针对RSA体制的一类重要攻击方法。为此,将RSA算法 的部分私钥泄漏问题转化为多变元线性同余方程的求解问题,基于同余方程构造出特定的格,利用LLL格基约化算法进行约化, 从而以一定的概率求得同余方程的小根。以上述多变元线性同余方程的小根求解技术为基础,提出一种针对离散私钥比特泄漏的 RSA格攻击方法。在该方法下,如果RSA算法的公钥参数P= ≤N1 ,并且私钥d的未知部分N ̄<N1 ,则能以高概率恢复出 RSA算法的私钥d。通过NTL包对长度为1 024 bit的大整数进行实验,结果验证了该攻击方法的有效性。 关健词:RSA算法;格攻击;离散私钥比特泄漏;线性同余方程;小根;格基约化算法 RSA Lattice Attack Method for Discrete Private Key Bit Leakage LIU Xiang.huil'2,HAN、ven.bao ,.,wANG Zheng ’-,QUAN Jian-xiao (1.The Fou ̄h Institute,PLA Information Engineering University,Zhengzhou 450002,China; 2.State Key Laboratory of Mathematical Engineering and Advanced Computing,Zhengzhou 450002,China; 3.Jiangnan Institute ofComputing Technology,Wuxi 214083,China) [Abstractl RSA algorithm is one ofthe most widely used public key cyptrosystems at present and lattice atacks play an important role for the analysis of RSA system.The problem of partial discrete private key bit leakage is transformed into the solution of multivariate linear congruence equations and a special lattice is constructed.And then by the lattice reduction algorithms such as LLL algorithm,the small roots of multivariate linear congruence equations can be obtained with a high probability.Based on the above technology,this paper proposes a lattice attack method on RSA for discrete private key bit leakage.With this method.if the public parameter satisfies e= ’≤ N、 and the unknown part ofprivate key d satisfies/W ̄<N1 ~.it can recover the private key dwith a high probability.The experiment on 1 024 bit number is given with NTL package and the results verify the availability ofthe attack method. [Key wordsi RSA algorithm;lattice attack;discrete private key bit leakage;linear congruence equation;small root;lattice base reduction algorithm DoI:10.3969 ̄.issn.1000.3428.2014.03.033 1概述 自1 976年公钥密码的思想提出以来,各种公钥密码体 制不断涌现,但公认安全的且应用广泛的却并不多,其中 筛法,它是一个亚指数时间算法,在当前的计算能力下无 法对实际使用的RSA模数进行分解。也就是说,在不借助 其他条件下直接通过大数分解对RSA体制进行攻击是困 难的。 较著名的是RSA公钥密码体制、E1Gamal公钥密码体制和 椭圆曲线公钥密码体制。而RSA公钥密码体制由于具有简 单易用、明密文长度相同等优点,在各种秘密通信中得到 广泛应用,一直是公钥密码学研究的热点u J。一般来讲,公 钥密码体制往往利用数学中已经得到证明的难题或公认的 难题来设计方案,RSA算法就是建立在大数分解问题上的。 目前,针对大数分解问题最好的通用攻击算法是一般数域 然而,在实际使用过程中可能会泄漏RSA体制的部分 信息,例如泄漏私钥P或者d的若干比特信息。同时,由 于旁道攻击等手段的发展,攻击者往往能够获得部分密钥 信息。如何利用这些已知信息对RSA体制进行攻击成为密 码学的一个重要研究课题。文献[2-3】提出利用LLL算法求 解整系数同余方程及多项式方程小根的方法,此后该方法 被广泛应用于RSA算法的私钥泄漏攻击中,例如,在泄漏 基金项目:国家自然科学基金资助项目(61003291);数学工程与先进计算国家重点实验室开放基金资助项目(2013A03)。 作者简介:刘向辉(1984一),男,博士研究生,主研方向:密码学,信息安全;韩文报,教授、博士、博士生导师;王政,副教授、 博士;权建校,助理研究员、硕士。 收稿日期:2013—03—07 修回日期:2013・04-07 E—mail:lxhkz2002@163.tom 164 计算机工程 2014年3月15日 私钥d的低n/4比特,同时加密指数较小的条件下RSA的 私钥恢复 ;在加密指数较大情况下的RSA部分私钥泄漏 攻击等 ;私钥指数P的连续比特泄漏攻击等【6j。 早期的RSA私钥泄漏攻击都建立在文献【2—3】求解多变 元模方程或者求解多变元多项式方程小根的基础上,主要 集中在私钥d的高位连续比特或者低位连续比特泄漏的情 形。在实际环境中,攻击者获得的部分私钥信息通常是不 连续的,特别是旁道攻击 的存在使得RSA体制离散比特 私钥泄露攻击也显得更有意义。文献[8]通过构造多变元线 性模方程并利用格基约化算法进行求解,提出针对泄漏私 钥P部分离散比特的攻击方法,在泄漏私钥P的70%比特 信息的条件下该方法能够有效分解RSA的模数。文献[9】 利用变换多项式的格构造方法给出针对私钥指数d的离散 比特泄漏攻击,但该方法要求格的维数较高。 本文通过构造多变元线性模方程,并利用典型的格构 造方法,针对RSA算法私钥d部分离散比特泄漏的情况进 行分析。在公钥指数较小的条件下,如果泄漏私钥d的部 分离散比特,则可以有效恢复出RSA算法的私钥参数d。 2准备知识 本节给出RSA格攻击所用到的基础知识,包括格的基 本概念、Minkowski定理等格的基本理论以及LLL算法等 格基约化算法,具体细节可参考文献[1 0]。 定义1设 , ,…,bm∈ 为一组线性无关的向量,其 中, 为实数域上的,2维向量空间;I.(bl, ,…,6 )= m {Z=∑  l∈Z)称为以( ,b2,…,bm)为基的格,m称 i=1 为格的维数。若m=n,则格上称为满秩。如果R=Z,也 即格中元素取自整数环,则称其为整格。 定义2令 , ,一 为 , ,…, 进行Gram-Schmidt 正交化后所得的向量,则对以(bt,b2,…,6 )为基的m维格 ,称其行列式det(L)=1-IlI西 为格的范数。其中,l l6 Il表 i=1 示向量6的欧氏范数,又称为向量的长度,也即若 6=(bl,b2,…, ),则ll 6ll=( + +…+ )” 。 显然,一个格有多组基,在解决格上相关问题时,希 望能找到一组特定的基有利于问题的解决,寻找这组基的 过程就称为格基约化,这组基就称为约化基。拥有长度较 短向量的基往往具有一些良好的性质,如何寻找具有短向 量的基一直受到人们的关注。定理1给出了格中最短向量 长度的上界。 定理1设格三 是一个满秩格,那么必然存在非零 向量',满足l l忙√ aet(L)“”。 Minkowski定理说明格中最短向量的长度 ll<√ aet(L)“”,但如何寻找格中范数最小非零向量的最短向量 问题(the Shortest Vector Problem,SVP)是格上的著名难题, 格理论研究表明它是NP问题。1982年,著名的LLL算法 由Lenstra等人提出 ,可以在多项式时间求取格中长度为 ll<2( ) det(L) 的近似最短向量。实际上,LLL算 法所求得的向量长度比理论结果要好,往往能够求得需要 的短向量。 3一种离散私钥比特泄漏的RSA格攻击方法 本节根据RSA算法的已知信息建立多变元线性同余方 程,并利用格基约化算法对方程进行求解,从而给出离散 私钥比特泄漏的RSA格攻击方法。 设RSA算法的模数为N=Pq,公钥为co,私钥为d, 则满足ed=1rood (Ⅳ),其中, (Ⅳ)=(P—1)(q一 1)为 欧拉函数。假设私钥d有 个比特块未知,设其值分别为 ,X2,…,X ,于是得: d=a1x1+O2X2+…+anX"+a +1 其中,ak=2 表示第k个未知块 在第 比特的位置。 对于ed=1rood(p(N),显然存在正整数k使得P 一 1=尼 (Ⅳ)。将d代入可得: e(alxI+a2x2+…+a x )+ca"+1一I=: k(N一(p+q)+1) 将上述方程模Ⅳ可得 +1变元的线性同余方程如下: ea1x1+ca2x2+…+eanxn+ k(p+q一1)+ea +l一1=0roodN 将同余方程乘以e roodN可得: 1 +a2x2+…+a xn+ c-lk(p+q—1)+( +1一e一 )=0roodN 方程的解为: (Y1, 2,…, ,Y +1)=(X1,X2,…,Xn,k(p+q一1)) 下面对上述方程进行求解。为描述方便,令bl=a 一, :an, +1=C-1 +2=an+1一e- ,同时, +1=Ji}(p+g一1), 那么方程具有以下形式: (Xl,X2,…,X +1)= +b2x2+。・‘+bn+1X +1+ +2=0modN 对于一般的多变元线性同余方程,解的个数以及解的 结构是一个较困难的问题,但是在某些限定条件下,能够 得到上述同余方程的唯一解。定理2给出了一种求解情况, 能够在一些限定条件下完成对RSA算法私钥d的恢复。 定理2令Ⅳ是RSA模数,私钥d满足iN(Xl, 2,…, Xn+1)=blx1+ 2+…+ +1 +l+ +2=0modN是线性 同余方程,其中,方程的解Yl<N = ,…, <N = , + +…+ = 为私钥d未知的 个比特块,同时假 设8=Np。如果 + ≤1/2,那么可以恢复RSA算法的 私钥d的未知部分。 证明:对于方程厂Ⅳ( , ,…,Xn+1)=6l +bzx2+…+ +1 +1+ +2=0modN,首先假设bi和Ⅳ互素,也即 第40卷第3期 刘向辉,韩文报,王政,等:针对离散私钥比特泄漏的RSA格攻击方法 165 gcd(b/,N)=1,i=1,2,…,n+2,否则可以直接分解Ⅳ,从 而求出私钥d。 由已知条件Yl<Ⅳ :Xl,…, <N = ,k=(ed一1)/ Ⅳ)<P=Ⅳ ,Jtp+q一1 ̄<3N1 可得,Yn+1<3 +1。注释3定理2描述的攻击方法是一个概率算法。也就 是说,如果满足已知条件,该方法并不能保证一定可以恢 复出私钥d。但实际结果表明,该方法往往能够得到方程的 解并恢复出私钥。 0 0 0 = 对系数 +2,引入变元 +2满足Yn+2≤ +2=1, 根据上述描述及定理2的证明,给出如下针对离散私 0 0 0 也即将n+1变元的线性同余方程当作 +2变元方程: (Xl,X2,…,Xn+2)= blx1+ 2+…+ +2Xn+2:0modN 方程的解( , ,…, +2)满足Y/<Nz= ,i=1,2,…, ,Yn+l<3N =Xn+1,Yn+2=1。 将方程两边同乘以一 得新的线性同余方程X】+ c2x2+c3x ̄+…+ 2 +2=OrmdN,对方程的解(Yl,Y2,…, +2),必存在正整数Y满足c2y2+c3Y3+…+c +2Y +2= Y】一yN。令 =N/ ,考虑如下矩阵生成的格三: JV ・0 0 c2 ・0 0 L= : : : ● ● ● ・ +1 0 Y1Cn+2 ・0 +2 显然,它是一个 +2维的格,l,=(Y,Y2,…, +2)、 B=( 1,r2y2,…, +2 +2)是格三中的向量。由于 f= N≤N,从而可得ll',ll<4n+2N。如果向量 是格三中的短向量,那么可以通过格基约化算法将其求出, 从而得到方程的解,下面利用Minkowski定理说明V是格三 中的短向量。 易求格三的范数为: det(L N ):)=n兀兀 =+2 N nn+2 N:n了= :NN棚肿FI ÷ i=1 i=1^f i=1以f n+2,—..———.一 .......一 如果兀Xi≤N,那么向量ll_l,l14√ +2N≤√,z+2 i=1 det(L)“ +2),根据Minkowski定理可知向量 是格 中的 一个短向量,利用格基约化算法可以求出。由已知条件, ≤Ⅳ +。 斗 =Ⅳ 、Xn+1=3Nfl“ 、 +2=1, i=1 +2 省略小常数3,那么当 + ≤1/2,可得兀Xi≤N。结 i=1 论得证。 注释1在证明过程中,省略小常数3,这是因为常数3 相对于Ⅳ非常微小。如果Ⅳ是一个1 024 bit的大整数,小 常数影响Ⅳ的指数为0.00 1 55,而且它并不随着攻击算法 参数的改变而改变。于是为了计算方便,通常忽略这些小 常数,并且它基本不影响攻击算法的结果。 注释2格基约化算法通常采用LLL算法,它是一个多 项式时间算法,这样能够在多项式时间内完成攻击,而且 LLL算法往往能够得到需要的短向量。 钥比特泄漏的RSA格攻击算法。 算法离散私钥比特泄漏的RSA格攻击算法 输入RSA算法的模数为Ⅳ,公钥e=N ,私钥d未 " 知比特块的界满足Yl< ,Y2< ,…,Yn< ,兀Xi≤ i=1 N。 oI七8≤1|2 输出私钥dE知比特块的值Yl,Y2,…,Y (1)根据式ed=1mod (Ⅳ)列出,2+1元线性同余方程 厂Ⅳ( , ,…,Xn+1): (2)根据定理2的证明对方程进行变换并构造格三; (3)利用LLL算法求取格工中的短向量; (4)对短向量进行代入计算出原始方程的解; (5)输出私钥d未知比特块的值。 假设RSA算法的模数Ⅳ的长度为m,公钥参数为 e=Ⅳ∥,根据上述算法,如果私钥d的长度为(1/2一f1)m 比特块未知,那么可以将私钥d恢复出来。在实际使用中, 通常选取Ⅳ为1 024 bit的数,e=65 537,也就是说, =0.015 6 此时,如果私钥d长度为0.483m的比特块 未知,那么可以将d恢复出来。相对于单块连续比特泄漏 的情形,攻击算法需要泄漏更多的信息。例如,Boneh等人 只需要泄漏私钥d的低m/4比特,也即0.75m的比特块未 知,那么可以恢复出私钥d。但是,本文攻击算法是基于离 散比特的私钥泄漏攻击,未知的比特信息可以在任意位置, 在实际环境中具有更强的适应性。 4实验结果与分析 本文算法能够有效恢复出离散私钥比特泄漏情形的私 钥d,本节对攻击方法进行实现,给出了部分实验结果。 实验采用Intel Core2 Duo CPU E7500 2.93 GHz、2 GB 内存、Windows XP操作系统、c++编程语言、Visual Studio 2005编程环境。实验基本数据类型以及部分函数使用NTL 包5.5.2版本 。 随机产生1 024 bit的大整数如下: Ⅳ=89884656743115795386465259539451236680898848947115 3286367l504057886633790275048156635423866120376801 05600569399356966788293948844072084453245030147457 09298l51367448461125728029121649765323616136679383 490O7024304932238762308699491286658762896l57592200 92451208280035l85453770595398900240518477232773451 74851613 选择公钥参数e=65 537,并计算其私钥参数: 166 计算机工程 2014年3月15日 d=-7467598l3593720925l571265775674872110108l534514435 13455928499213326997522207238995261997934945485390 90738663696174498797458365910280251679361054083475 6517342422090696155733895844860O5303O3116223128214 l819947914630025043816l540557012117237375867381653 45168689223066934871895999212782857359079556872592 34560833 为描述方便,以下运算选择16进制表示。私钥参数d 的16进制表示为: 6a5795a86a5795a86a5795a86a5795a86a5795a86a5795a86a5 795a86a5795a86a5795a86a5795a86a5795a86a5795a86a5795 a86a5795a8dda37444610e8ebd0bd2f42d0bd2f42d0bd2f42d0 bd2f42d0bd2f42d0bd2f42d0bd2f42d0bd2f42d0bd2f42d0bd2 f42dObd2f42d0bd2f42dObd2f42d0bd2f44e5fc14d425cb6eb41 显然d是一个1 024bit的大整数。根据定理2,如果私 钥d的未知比特数小于490 bit,那么可以恢复私钥d。下文 分2种情况进行实验验证。 情况1私钥d单未知比特块未知。假设d的第101比 特~第580比特未知,也即: 6a5795a86a5795a86a5795a86a5795a86a5795a86a5795a86a5 795a86a5795a86a5795a86a5795a86a5795a86a5795a86a5795 a86a5795a半术 牛水冰术木木木冰木木木 丰丰木木木半半木木半半水术母水 术木木木木术水术半术 木木木木木术木木木术木卡枣木 半年木木 木木木木木木木木木 木枣半木半半 丰年 木木水木木木木丰 }} 料料料} } } d0bd2f44e5fc14d425cb6e b41 其中, 表示未知部分。那么可以建立一个双变元的方程, 然后构造3变元的格对其进行求解,运行LLL算法恢复出 私钥d的未知比特。 情况2私钥d多比特块未知。选取5个比特块未知, 假设d的第101比特~第180比特,第257比特~第356比 特,第457比特~第556比特,第657比特~第756比特, 第857比特~第956比特共480个比特信息未知,也即此时: 6a5795a86a5795a86 ¥ 料 } } 5795a86a57 95a86a5795a86a5木 木木木木木卑木丰 枣木 士 卡}幸 幸木95a86a5795a 86a5795a8dda37 }}} }} { }} { 2d0bd2f42d0b d2f42d0bd2f42}} } { } } 0bd2f42dObd2f 42d0bd }}}¥ 十料¨} }} d0bd2f44e5fc14d425cb6eb41 其中, 表示未知部分。那么可以建立一个6变元的方程, 然后构造7变元的格对其进行求解,运行LLL算法恢复出 私钥d的未知比特。 通过上述2个实验,本文算法能够有效恢复出RSA算 法的私钥d,并且由于算法使用的格非常小,整个攻击过程 在普通PC机上即可完成。 5结束语 随着旁道攻击等物理攻击手段的不断发展,RSA算法 的私钥泄漏攻击越来越受到人们的重视。但是,由于离散 比特的私钥泄漏攻击列方程及解方程的困难性,目前研究 大多集中于泄漏私钥的连续比特。本文对离散私钥比特泄 漏情形的RSA安全性进行了初步分析,利用多变元线性同 余方程的典型求解算法,给出一种针对离散私钥比特泄漏 的RSA格攻击方法。利用该方法攻击者可以有效恢复RSA 算法的私钥参数d。另一方面,本文分析结果还可以指导 RSA算法在使用时选取安全的参数。然而,本文结果要求 已知RSA算法有较多的私钥比特,同时利用基本的格构造 方法,虽然构造格的维数比较低,格基约化运算部分用时 较少,但是该方法是概率性的,可能会有不成功的情形存 在。因此,如何对本文方法进行改进是下一步研究的重点。 参考文献 [11 Rivest R,Shamir A,Adleman L.A Method for Obtaining Digital Signatures and Public Key Cryptosystems[J], Communications ofthe ACM,1978,21(2):120—126. [2]Coppersmith D.Finding a Small Root of a Univariate Modular Equation[C]//Proceedings of EUROCRYPT’96. Berlin, Germany:Springer-Verlag,1996:155—165. [3]Coppersmith D.Finding a Small Root of a Bivariate Integer Equation Factoring with High Bits Known[C]//Proceedings of EUROCRYPT’96.Berlin,Germany:Springer-Verlag,1996: 178—189. [4] Blomer J,May A.New Partial Key Exposure ARacks on RSA[C]//Proceedings of CRYPTO’03.Berlin,Germany: Springer-Verlag,2003:27—43. [5]Ernst M,Jochemsz E,May A.Partial Key Exposure Attacks on RSA up to Full Size Exponents[C]//Proceedings of EUROCRYPT’05.Berlin,Germany:Springer-Verlag,2005: 371.386. [6]Santanu S.Some Results on Cryptanalysis of RSA and Fac— torization[D].Kolkata,Indian:Indian Statistical Institute, 2011. [7]陈财森,王韬,郑嫒媛,等.RSA公钥密码算法的计时攻 击与防御【JJ.计算机工程,2009,35(2):123—125. [8]Herrman M.Solving Linear Equations Modulo Divisors:On Factoring Given Any Bits【C]//Proceedings ofASIACRYPT’08 Berlin,Germany:Springer-Verlag,2008:406—424. [9]刘向辉,韩文报,孙杰.基于离散比特的RSA私钥泄漏 攻击[JJ.信息工程大学学报,2012,13(4):385—388. [1 0]Nguyen P Q,Valle B.The LLL Algorithm:Survey and Applications[M].Berlin,Germany:Springer Publishing Company,2009. [11]Lenstra A K,Lenstra H wj Lovasz L.Factoring Polynomials with Rational Coeifcients[J].Mathematiche Annalen,1982, 261(4):515—534. [12]Shoup V Number Theory Library(NTL)for C++[EB/OL]. (2010—05—16).http://www.shoup.net/ntl/. 编辑陆燕菲 

因篇幅问题不能全部显示,请点此查看更多更全内容