第23卷第5期 2013年5月 计算机技术与发展 COMPU rER IECHNOLOGY AND DEVELOPMENT Vo1.23 No.5 Mav. 2013 离散对数问题攻击算法的改进 汤鹏志,何涛,李彪 (华东交通大学基础科学学院,江西南昌330013) 摘要:在求解离散对数问题上有袋鼠攻击、生日攻击、小步一大步攻击、指数积分攻击等多种方法,而小步一大步攻击算法 是比较通用且高效的。为了提高攻击算法的速度,改善算法的效率,提出的改进算法牺牲了适当的存储空间,但在运算之 前通过奇偶判断筛选过程减少了判断的次数甚至有数量级的减少。性能分析表明,改进的算法在性能上优于原算法。并 且预处理过程中产生的数据可以重复利用来求解同一群下不同生成元的离散对数问题,这又进一步减少了算法的运算复 杂度。 关键词:离散对数;小步一大步攻击算法;奇偶判断 中图分类号:TP309 文献标识码:A 文章编号:1673—629X(2013)05—0127—04 doi:10.3969/j.issn.1673—629X.2013.05.033 Improved Attack Algorithm for Discrete Logarithm Problem TANG Peng-zhi,HE Tao,LI Biao (School of Basic Science,East China Jiaotong University,Nanchang 330013,China) Abstract:There are kangaroo attack,birthday attack,baby-step—gint—satep attack,exponential integral attack and other methods in sol— ving the discrete logarihm prtoblem.The baby~step—giant—step attack algorihm its more versatile and eficifent.In order tO improve the speed ofthe attack algorihm tnd tahe eficifency of the algorihm,tthe algorithm proposed is improved at the expense of the appropriate storage space.By the parity operator before the judge selection process reduce the number fjudgment,even tohe eductrion of he magnit— tude.The performanceanalysis showsthattheimproved algorithm outperformsthe originalalgorithm.Andthe data generatedinthe pre— treatment process Can be reused to solve the problem of he genertator under he sanlte group of discrete logarithm.This further reduces the computational complexity of he atlgorithm. Key words:discrete logarihm;tbaby-sep-gitnta—step attack algorihm;partity judgment O 引 言 离散对数公钥加密算法是目前最为热门的加密算 法,其安全性远远高于RSA算法,Difife—Hellman密钥 协议、E1Gamal密码及其相关变种的签名方案都 是建立在离散对数问题之上。针对离散对数问题的攻 建了链表,执行过程中的查表操作大大降低了算法的 效率,增加了算法的执行时间。 同时由于基于离散对数问题的各种签名方案 的提出,如何有效地利用离散对数构造安全有效的方 案也是面临的难题,所以从离散对数问题的攻击方法 人手,可以更好地通过离散对数问题提出更有效的方 案。文中结合文献[8]提出的奇偶判断思想,提出了 种新的攻击离散对数的方法,与传统算法比较该算 一击方法,已知的指数积分攻击 、小步一大步攻击 、 袋鼠攻击 、生日攻击 等攻击算法,不同的攻击算法 针对基于不同群下的离散对数问题效率不一,Pollard— Hellman 算法针对群的阶只有小素因子时攻击特别 有效,而index—calculus 算法是亚指数攻击算法,只 法提高了执行效率并降低了时间复杂度。 对特定的群有效。传统的小步一大步攻击算法由于构 1 预备知识 给定一个元素y,且已知存在一个整数 ,对一个 收稿日期:2012—08—02:修回日期:2012一l1一O5 基金项目:国家自然科学基金资助项目(11061014);江西省教育青 固定的基b,有Y=b ,如何求解 ,就是一个离散对数 问题。 年科学基金项目(GJJ11675);江西省教育科研项目(GJJ11678) 作者简介:汤鹏志(1961一),男,江西九江人,硕士,教授,主要研究方 一定义1:给定一个素数P,Zp 的一个生成元a及 个元素口∈Zp ,寻找整数x(0≤ ≤P一2),使得 modp。 向为信息系统及其安全;何涛(1990一),男,江西丰城人,硕士研究 生,主要研究方向为信息安全。 上述给出的是离散对数问题的定义,直观上看该 ・128・ 计算机技术与发展 第23卷 问题的困难性取决于问题的规模以及参数的选择,根 据离散对数假设 可知在充分大的有限域中,对于所 有的情形,不存在求解离散对数问题的有效算法。然 而现实世界中事物是有界的,则一定存在多项式时间 解法。通过规定适当的下界使得多项式时间解法所运 行的时间是一个难以对付的大数,正因如此该问题的 难解性构成了包括Difife—Hellman密钥分配,ElGamal 公钥密码等在内的很多密码的安全性基础 ’ 。 定理1:设G=(o)是循环群,则有: (1)若G是无限循环群,则G只有两个生成元,即 n和0~。 (2)若G是n阶循环群,则G含有 (n)个生成 元,对于任何小于等于n且与/1,互质的正整数r,o 是 G的生成元。 证明(1):显然(n ) G,对于任何n ∈G,0 都可以表示成为a 的幂,则可以得到o =(a )一后, 从而得到G (n ),则C/, 是G的生成元。 假设b也是G的生成元,则G=(6),由口∈G可 知存在整数t,使得n:6 。又由b∈G=(。)知存在 整数m,使得b=o ,从而有口=b =(0 )『=n ,由消 去律得口一 =e,因为G是无限群,必有mt一1=0,从 而证明m=t=1或者m=t=一1,即6=口或者b=0一。 (2)只要证明:对于任何正整数r(r≤n),n 是 G的生成元当且仅当n与r互质。 充分性:设凡与r互质,且r≤n,那么存在整数 , 使得1/,F+n =1,根据拉格朗日定理的推论有。= n” ”=(0 )“(0 ) =(口 ) ,贝0可以推出V 0 ∈G,口 :(n )uk∈(0 ),即G (a ),显然可知(0 ) G, 从而有G:(o )。 必要性:设o 是G的生成元,则l o l=n,令r和n 的最大公约数为d,则存在正整数t使得r=dt,则有 (a ) =(o )-g=(0 )‘=e,根据群的性质可知 II是n/d的因子,即n整除n/d,从而证明了d=1。 命题1若6以=1too@,则log。b是偶数,否则是奇 数。 证明:设 =log bmodn,则6=a ̄modp。由 (n以) =口“=1moap,则0 :±lmodp。因0的阶为 n,有Ⅱ ≠lmodp,从而6以=0 =(一1) mo@,也 即6以=1modp时,log。b是偶数,否则是奇数。 2小步一大步攻击算法及分析 算法1 Step1 s 1,M 1,£t Null,m rn÷] Step2 forj*-43 to/7/,——1 Step2.1 s+_ Step3根据第二个坐标对有序对( ,o )进行排 序,得到链表 , Step4 for i 0 to m一1 Step4.1“ 6Ⅱ一 step5根据第二个坐标对有序对(i,ba-i)进行排 序,得到链表 : Step6通过查找 。和 两个链表中(,aw)和 . (i.6口 )中第二个坐标相同的有序对 step7 Log。b+_( 一 )modn结束 以群乘法为基本运算单位来分析该算法的时间和 空间复杂度。 在Stepl中为了快速计算首先要预先计算o 并缓 存,利用平方乘算法来进行高次幂运算,此步的时间复 杂度为D(1ogm)。 在Step2中空间复杂度为D(m),一共要计算m 次,时间开销为D(m)。 在Step3中要对生成的有序对进行排序,利用快 速排序算法,算法的时间复杂度为0(mlogm),空间 复杂度为0(m),同样Step5的时间复杂度和空间复 杂度和本步相同。 在Step4中空间复杂度为D(m),一共要计算m 次,并且由于增加了求逆的运算,求逆的算法时间复杂 度为O(1oga),Step4.1的开销为D(m)。 在step6中由于要查找两个生成的链表中第二坐 标相同的有序对,需要对两链表逐一比较,最大的比较 次数为D(n),平均比较次数为D(n/2)。 算法成功停机的充要条件是b∈(n),(n)为由 。生成的群。 必要性:成功停机说明算法1的Step6中的等式 n =),=ba 成立,则b=口‘ “ ,由于1≤i ≤m,有 0≤ + ,又0是生成元,所有6∈(o)。 充分性:因为b∈(n),0≤log 6≤n一1,m= r 卞],所以0≤log。b≤n一1≤m2—1。令1≤i≤ m且log 6:阿+i,则可知1≤i≤m。当i, 满足1≤ i,_『≤m时,10g。b可以写成log b= +i。口是生成元, 有b=口‘阿 ,即Ⅱ =ba~,则算法1的step6一定可 以成功,所以算法1可以成功停机。 3改进的算法 首先利用算法1的结束条件计算出满足条件的 (i,p对,把( , )对根据命题1的奇偶判断条件进行 奇偶性分组,然后通过命题1的判断结果得到log b的 奇偶性,再结合log。b和(i,f)对的奇偶性进行快速求 解离散对数问题。给出算法如下: 第5期 汤鹏志等:离散对数问题攻击算法的改进 ・129・ 算法2 Stepl预处理 Step1.1 for i+-1 to,n Step1.1.1 for 1 to m 4改进算法的性能分析 根据群乘法为基本运算单位,分析改进的算法的 时间空间复杂性。 在Stepl预处理中,算法根据结束条件计算出 (i,一对的奇偶分组,时间复杂度为D(n),空间复杂 度为D(n/2),相比算法1此步骤的复杂度上相对较 大,考虑到算法的效率问题,这一步可以在计算之前预 先做好,对于相同的n条件下,不同的生成元所产生的 奇偶链表是相同的,即在不改变n的情况下,得到的奇 Step1.1.2 if(mi— )i 1mod2n Step1.1.3 L1十一(i, )Ll存储奇数( , )对 Step1.1.4 else 2一(i, ) :存储偶数(iJ)对 Step2系统初始化 Step2.1 5+_-1,“ 1, l Null,L2+_-Null,L3+I Null,L4 Null Step2.2 m._-r 卞],m转换成具有较小海明权 重¨¨的表示形式 Step3判断奇偶性 Step3.1 for +_1 to m Step3.1.1 s s×口 Step3.1.2 L3(s) Step3.2 for i 1 to 171, Step3.2.1 M “X n Step3.2.2 L4(s) Step3.3 if 6 =1mo@then Step3.3.1 for(i√)in L2(i, ) Step3.3.2if( ( )) =b・ ( ),运用多精度平 方乘算法 计算(厶( )) Step3.3.2.1 Log。b (mj— )modn结束 Step3.3.3 else go to Step3.3.1 Step3.4 else Step3.4.1 for(iJ)in Ll(i Step3.4.2if(厶(.7)) =b・L4( ),运用多精度平 方乘算法计算(L,( )) Step3.4.2.1 Log b+-(mj'一 )modn结束 Step3.4.3 e]se go to Step3.4.1 算法成功停机的充要条件是6∈(o),(o)为由 。生成的群。 必要性:成功停机说明算法2的Step3.3.2.1或者 step3.4.2.1中的等式(厶(『)) =6・厶( )成立,也 .即等式0 =y=ba‘成立,则b=口‘ ,由于1≤iJ≤ m,有0≤阿一i,又0是生成元,所有b∈(口)。 充分性:因为b∈(Ⅱ),0≤log。6≤n一1,m= rn十],所以0≤log b≤n一1≤m 一1。令1≤i≤ m且log。b=耐一 ,则可知1≤i≤m。当 , 满足1≤ , ≤m时,log。b可以写成log。b=耐一i。口是生成元, 有b=0(mJ ’,即0 =ba‘,则算法2的Step3.3.2.1或 者Step3.4.2.1一定可以成功,所以算法2可以成功停 机。 偶链表可以提供给同一群的不同生成元求解离散对数 问题。 在Step2中把高阶的幂指数利用较小的海明权重 形式表示,在计算高阶幂运算中可以减少乘法的次数, 显著提高算法的运算速度,提高的效率在11%左右, 并且Step2.2中不需要计算Ⅱ ,提高了该算法的计算 效率和存储空间。 在Step3.1中,首先计算口的各次幂值,然后通过 Step3.3判断结果值log b的奇偶性,根据判断结果的 奇偶性,利用预处理中得到的奇偶(i, )对,只需遍历 ( . )对中的奇数对链表或者偶数对链表,利用 (i, )对直接验证得到结果,时间复杂度为D(n/4), 同时不需要利用哈希表来对结果进行处理,直接查表 即可,查表时间为D(1)。 在Step3.3和Step3.4中利用多精度平方乘算法 可以提高运算速度,同时利用事先计算的。的各次幂 值,直接查询即可参与多精度平方乘运算,查表时间为 D(1)。 随着计算机发展的不断提高,计算机的计算能力 和计算机硬件的配置已经有了很大的进步,随着计算 机的普及和性能上的提升,以前相对较复杂的算法已 经逐步得到了改善和优化,同时对于一个算法而言,空 间的消耗对于一个算法的权重越来越小,相对于空间 复杂度,算法的时间复杂度的提升显的更加重要。在 计算效率上的提升是一个好的算法的重要指标。 5算法对比分析 根据上面的算法分析,可以总结出以上两个算法 的不同之处。 1)预处理过程。算法1没有预处理过程,而算法 2在预处理过程中产生了2个根据判定条件得到的奇 偶链表,并且该奇偶链表在m值没有改变的情况下可 以重复使用,可以减少在m值相同时的重复计算过 程,提高了代码的重用性和计算结果的利用率,并利用 其来求解同群下不同生成元的离散对数问题。 2)求逆操作。算法1在计算中需要先计算a 并 ・130・ 计算机技术与发展 第23卷 缓存,而算法2中不需要求逆操作,因此算法2在计算 效率上更高。 都是相同的,根据定理1可知在求解同一群下其他生 成元的离散对数情况时,可以直接利用算法2中得到 的( , )对来进行计算,通过这一方法可以减少算法2 3)高次幂运算。算法1中在计算高次幂中利用平 方乘算法计算,而在算法2中的处理是首先利用较小 的海明权重表示法表示幂指数,减少了幂运算中的乘 的预处理过程,降低算法的运算量。 法次数,然后再利用多精度平方乘算法进行相应的高 次幂计算,该算法比平方乘算法计算效率更高,在高次 幂运算步骤中可以更快地计算得到相应的结果。 7结束语 文中针对小步大步算法与改进的算法进行了性能 上的分析,上述表明算法的改进是正确可行的。随着. 4)表元素的查找次数。算法1中的Step2和算法 2中的Step3.1的计算量是一样的,而算法1在比较过 程中需要进行查表比较,最大计算量在D(n),平均计 算量是0(n/2);而算法2利用预处理过程中得到的 范围,只需直接查找,最大计算量为D(n/4),平均下 来计算量仅有0(n/8)。在算法运算次数上有倍数的 降低。 5)链表的处理。算法1在对链表处理时使用哈希 函数来得到无碰撞的值,而在算法2中利用生成元的 性质可知在小于群的阶范围内,a‘是无碰撞的,所以 算法2不需要使用哈希函数。也就在查表过程中可以 提高效率,这在性能上也是一个提升。 表1为原算法与改进算法对比。 表1原算法与改进算法对比 6进一步的应用 通过求解某一群中的离散对数问题,利用在求解 过程中所得到的中间数据,可以加以分析和利用,对同 群下其他生成元的离散对数的求解问题进行分析。根 据算法2的中心思想,发现算法2中预处理过程中是 利用群的阶作为输入参数,和生成元的选取无关,利用 这个特征,可以利用算法2中预处理过程中的数据对 离散对数问题的求解简化处理。 考虑在同一群下其他生成元的离散对数的问题, 可以重复利用算法2中预处理过程中得到的( , 对 奇偶链表,针对同一群下的其他生成元,群的阶是不变 的,则根据算法2可知其他生成元所对应的(i, )对 硬件条件的日益强大,牺牲适当的存储空间来降低计 算的复杂度,提高算法的效率也是一种可行的方案。 加大代码的重用率、有效利用中间过程产生的数据来 简化计算过程也是在Et后密码系统的实现过程中需要 考虑和探讨的问题。 参考文献: [1] Johannes B,Damian W.Discrete logarithms:recent progress [C]//International Conference on Coding Theory,Cryptogra— phy and Related Areas.Berlin:Springer-Verlag,2000:42— 56. [2]Douglas R S.Cryptography theoyr and practice[M].2nd ed. 冯登国,译.北京:电子工业出版社,2003:193—227. [3]Mao Wenbo.现代密码学理论与实践[M].王继林,译.北 京:电子工业出版社,2004. [4] 周玉洁,冯登国.公开密钥密码算法及其快速实现[M].北 京:国防工业出版社,2002. [5]王晚,杜伟章.基于离散对数问题的多级代理盲签名方 案[J].计算机应用,2011,31(7):1904—1905. [6] 欧海文,叶顶峰,杨君辉,等.关于同时基于因子分解与离 散对数问题的签名[J].通信学报,2004,25(10):143 —147. [7] 李发根,辛向军,胡予濮.基于离散对数和因子分解签名方 案的改进[J].中国铁道科学,2006,27(5):132—135. [8] 张海波,王小非,夏学知,等.一个改进的离散对数问题攻 击算法[j].计算机应用,2007,72(4):843—845. [9] 胡进,何德彪,陈建华,等.基于椭圆曲线同源的公钥密 码[J].北京工业大学学报,2011,37(6):916—920. [10]阎军智,李凤华,马建峰.基于Diife—Hellman算法的分层 密钥分配方案[J].电子学报,2011,39(1):119-123. [11]Muir J A,Stinson D R.On the low hamming weight discrete logarithm problem for nonadjaeent representations[J]. AECC,2006,16(6):461—472. [12]Menezes A J,van Oorschot P C,Vanstone S A.Handbook of applied cyrptography[M].胡磊,王鹏,译.北京:电子 工业出版社,20o5.