维普资讯 http://www.cqvip.com 第27卷第4期 2007年4月 文章编号:1001—9081(2007)04—0843—03 一计算机应用 Computer Applications Vo1.27 No.4 Apr.2007 个改进的离散对数问题攻击算法 张海波 ,王小非 ,夏学知 ,黄友澎 (1.哈尔滨工程大学计算机科学与技术学院,黑龙江哈尔滨15000l; 2.武汉数字工程研究所,湖北武汉430074) (zhanghb412@yahoo.com.el1) 摘要:小步一大步攻击算法是一个求解离散对数问题通用且高效的算法,但较大的存贮开销是 它的一个明显不足。提出的改进算法使得存贮开销减少一半,并取消了求逆元操作,通过引入抗冲突 的哈希函数,省略了表排序过程,并使查表时间降到常数级。性能分析表明,改进算法的时间和空间 耗费明显降低,性能优于原算法。另外,还探讨了如何通过降低问题的规模来进一步缩短攻击算法的 计算过程,并给出了一个简单易行的对离散对数进行奇偶筛选的方法。 关键词:离散对数问题;小步一大步攻击算法;成功停机;平方乘算法 中图分类号:TP309 文献标识码:A An improved attack algorithm for discrete logarithm problem ZHANG Hai—bo ・ ,WANG Xiao—fei ' ,XIA Xue—zhi ,HUANG You—peng ’ (1.School ofComputer Science and Technology,Harbin Engineering University,Harbin Heilongfiang 150001,China; 2.Wuhan Digital Engieen ̄ng Instittue,Wuhan Hubei 430074,China) Abstract:Baby—step—giant—step attack algorithm is universally smtable to solve all discrete logarithm problems,but its relatively larger storage cost is an obvious defect.An improved attack algorithm which can.cut down half of space spending and cancel the inversing—computation on multiplicative group was presented.By using hash function,this new algorithm abolishes list—sorting process and drops the itme complexity of ilst—searching into O(1).The performance analysis shows that the new lgoraithm obto ̄ly reduces the time and space use. Furthermore,how to play down the input size to shorten computation journey f oattack algorihmst was isdcussed nd aIal easy way to parity sieve for discrete logairhtm Was given. Key words:Discrete Logaritm Prhoblem(DLP);baby—step—ignta—step attack algorihtm;successfully termination; square-mulfiplication algorihm t很多密码技术的安全性都建立在离散对数问题的困难性 题称为离散对数问题(Discrete ogarLihm Prtoblem,DLP)。 定义1 设(G,・)是乘法群,对于一个n阶元素a∈C和 元素口∈< >,存在唯一的整数a,0≤a≤n一1,满足: 上,如Difie—Hellman密钥协议…,E1Gamal密码及其签名 方案,以及它们的变种等。Dilfie—Hellman问题L2 ,模合数n乘 群 中的离散对数问题,以及n的因子分解问题,在密码学 =卢,称a为 与卢相关的离散对数,记为log 。 密码学领域内的离散对数问题是困难的 J,即计算上 不可行。这是许多密码技术的安全性之所在。下面的命题进一 步阐明了离散对数问题保持安全性的一个性质。 命题1 离散对数问题的困难性与其生成元的选取无 关。 上存在一定的关联,它们的困难性存在着内在的等价性…。 针对离散对数问题有许多攻击方法,目前已知的有穷举 攻击,Pohlig—HeUman攻击 J,指数积分攻击 J,Pollard概率攻 击 ,小步一大步攻击 ' ,袋鼠攻击 和生日攻击 ‘ 等。这 些攻击方法往往在某些特定场合尤其有效,如当P一1为形如 2的幂次方 J,P一1的因数都较小 或P的位数较短时。小 步一大步攻击算法则适合于包括椭圆曲线 。 在内的所有离 散对数问题,是本文进行研究并加以改进的对象。 对于小步一大步攻击算法,在忽略对数因子的情况下,其 时间复杂度为O( ),已接近于离散对数问题的任何通用算 法的复杂性下界 J,但仍留有值得优化的余地。另一方面, 空间复杂度较大一直是小步一大步算法的不足之处。 证明 设 和 是阶为n的乘法群G的两个不同生成 元,且设卢∈G。若 =log ,Y=log ,z=log y,则有 = 卢: =( ) 。从而有 =zy mod,l,log =l。g (1og y) mod no这表明任何计算以为 底的对数的算法,也可以用于 计算以G的其他生成元 为底的对数。 对于群论,密码学上应用最广泛的有两类,一类是有限域 上的乘群 。如模素数P的乘群 ,有限域 上的乘群 1 离散对数问题 在密码学系统中,一般将求解数论中某个数的对数的问 收稿日期:2006—09—30;修订日期:2o07一Ol—O5 .’.m,以及n为合数的乘群 。另一类是定义在有限域上的椭 圆曲线的点群。适用于乘群上的离散对数算法,只要稍作修改 均可直接应用到基于椭圆曲线的离散对数问题,故本文侧重 作者简介:张海波(1972一),男,湖北人,博士研究生,主要研究方向:密码学、信息安全;王小非(1957一),男,湖北人,研究员,博士生导 师,主要研究方向:网络、信息安全、并行计算;夏学知(1966一),男,湖北人,研究员,博士,主要研究方向:网络与信息栅格、并行计算;黄友 澎(1963一),男,福建人,博士研究生,主要研究方向:数据融合、信息安全. 维普资讯 http://www.cqvip.com 计算机应用 于讨论乘群上的离散对数。 离散对数的求解虽是困难的,但其逆运算即指数运算,可 2007生 3 改进算法 先给出改进后的算法描述,其中参数与算法1完全相同。 算法2 改进的小步一大步攻击算法Improved—Baby— Step—Giant—Step(n, , ) 1)系统初始化 (1.1)s+-.I,u+-.卢,£l+-.Null; 以应用平方乘的方法有效地计算。若将指数用有符号的二进 制数表示,使之具有较小的海明权重 ,则可以进一步减少 其中乘法的次数,从而提高运算速度。 2小步一大步攻击算法及分析 小步一大步(Baby—Step.Giant—Step)攻击算法有时也称为 Shanks算法 ],具体实现如下面的算法1所示。其中参数/7,, (1.2)m—r同,m转换成具有较小海明权重[ 的表示形 式; (1.3)运用多精度平方乘[I_算法计算a ,t—a ; Ot,/3的意义与定义1中的定义相同。 算法1小步一大步攻击算法 Baby—Step・Giant—Step(n,a,13) 1)m—r佩 21 forj+_.0 to m一1 (2.1)计算a 3)对m个有序对( ,(n/t)关于第二个坐标排序,得到一个列表 l 4、for i+_.0 to,n一1 (4.1)计算 5)对m个有序对( a )关于第二个坐标排序,得到一个列表 6)找到( ,y)∈L。和(i,y)∈/-2(即找到两个具有相同第二坐标 的有序对) 7)log ̄e+-.(耐+ )rood n 下面以群乘法为基本运算单位来分析该算法的时间和空 间复杂性。 在第2)步,为了(2.1)步计算的快速,要先预计算Ot 并 缓存,平方乘算法是比较通用且非常有效的方法,比单纯的连 乘算法提速显著,采用平方乘算法也需要0(1ogm);另外,第 (2.1)步需执行m次,时间开销是0(m)。 在第3)步,若用快速排序算法,也得0(mlogm)。同样,第 5)步的时间复杂度也为0(mlogm)。在这两步中,分别需 0(m)的空间复杂度。 在第4)步,为了(4.1)步的快速计算,需先计算Ot一1并 缓存,采用扩展的Euclidean算法,时间复杂度为0(1o )一 0(1ogm);另外,第(4.1)步需执行m次,时间开销是O(m)。 由于列表£。和厶已经排好序,第6)步的查找时间为 0(m)。 综上所述,算法1的总的时间复杂度为0(mlogm),空间 复杂度为0(m)。若忽略对数因子,时间和空间复杂度均为 0(m)=o(,/n)。 进一步研究算法1可发现,小步一大步攻击算法能否正 确地返回所求解的离散对数,关键在于第6步能否成功。通过 下面的命题作进一步的阐述。 命题2 小步一大步攻击算法成功停机的充要条件是 < >o 证明 1)必要性。算法1成功停机,表明第6)步有 =Y= 触~,则 = ㈣“’, 是生成元,故卢∈< >。 2)充分性 ∈< >,可令卢= ,则 =log.B,因 ∈ G的阶为n,且m=r√n],有0≤log ≤n一1,故可令i=log m0d m,从而可令log = + ,又log ≤n一1≤m2—1= m(m一1)+m一1,故有0≤i,_,≤m一1。由log =州+i, 是生成元,有 = ‘阿“’,即 =触一,故第6)步必会成功,从 而算法会成功停机。 2)forj._.1 to,n (2.1)s+_.s×f; (2.2)L (h(s))一(j,s),其中h()是抗冲突的哈希函数 3)fori+_.1tom (3.1) +_. ・口; (3.2)若Ll(h(u))=( ,Y)≠NULL,log 一( 一i)rood n,结束。 ‘ 命题3算法2成功停机的充要条件是 ∈< >。 证明 1)必要性。算法2成功停机,表明第(3.2)步有 =Y= ,则卢= ‘ ’,因1≤iJ≤m,有 一 ≥0,又 是生成 元,故 ∈< >。 2)充分性。卢∈< >,0≤log ≤n一1,m=r√n],故 0≤log ≤n一1≤m 一1。令1≤’『≤m且logj ̄= 一i, 则易知 满足:1≤i≤m。也即当i,J满足1≤i,J≤m时, log 可写成l0g = 一io 是生成元,有卢= ㈣ ,即 ‘= ,故算法2第(3.2)步必会成功,从而算法2会成功 停机。 从命题3的证明过程可知,改进后的算法2是一个能返 回正确结果的有效算法。 4 改进算法的性能分析 同样以群乘法为基本运算单位,分析改进算法的时间和 空间复杂性。 与算法1一样,在第1)步,要先预计算 并缓存。虽时 间复杂度仍为0(1ogm),但在(1.2)步中将指数m采取具有 较小海明权重 的表示方式,可以显著减少其中乘法的次 数,从而可以平均提高大致11%的运算速度 。由于平方运 算最快可以比两个不同整数的乘法运算快两倍 ,所以这项 措施的好处是非常明显的;同时在(1.3)步中采用多精度平 方乘算法 J,可进一步提高运算速度。 在第(2.2)步,无须排序操作,只需通过抗冲突的哈希函 数快速建立索引表,且仅需一张表Ll,省略了第二张表L2,也 即存贮空间减少了一半。 在第(3.2)步,哈希函数的引人使得查表时间降为 0(1)。 随着计算能力的不断提升,目前要求素数P的取值一般 都在1024 bit或更长,故一次快速哈希函数的时间相对于一 次两个1024 bit大整数相乘的时间来说微不足道,可以近似 不计。同时P的取值要求(1 024 bit或更长)也表明改进算法 的时间和空间优势是比较显著的。 5 两算法的对比 由上面的分析,可归纳出两个算法的主要不同之处在于: 1)存贮表的数目。算法1需要两个表,而算法2则只需 1个,从而存贮器开销不同。 2)表元素的比较时机。算法1是两组数据(两张表)都 维普资讯 http://www.cqvip.com 第4期 张海波等:一个改进的离散对数问题攻击算法 一845 计算完成后再进行比较,而算法2则是只需在第一张表完成 的基础上即可开展比较工作。 3)求解成功时的条件和结果的计算公式。算法1求解成 功时有 =Y= 一,0≤i, ≤m一1,结果为logfl=( =Y= ‘,1≤i√≤ + )rood 。而算法2求解成功时则是 m,结果为logfl=( 一 )rood n。 个较易快速实现的措施就是对将要计算的log 卢先进 行奇偶筛选,这样可以将问题的规模降低约一半。该措施的有 效性和奇偶筛选的实现方法由下面的命题4给出。其中n, , 的意义同定义1,且定义在模P的乘群z 上。 命题4若卢 =1 roodP,则log 是偶数,否则是奇数。 证明 设 =log rood n,则 = roodP。有( =1 rood P,则 =±1 roodP。因 的阶为n,有 ) = ≠1 4)是否需要求解逆元。算法1需要求解逆元,而算法2则 无需求解任何逆元。 5)表排序与查表时间。算法1需对两张表都排序,且查表 时间与表的规模直接相关(为O(m))。而算法2由于引入抗 冲突的哈希函数,无须排序操作,且查表时间也降为O(1)。 表1列出了改进算法与原算法的性能区别。 表1 改进算法与原算法的性能对比 rod op,故 =一1 roodPo从而 = =(一1) roodP。 也即 =1 roodP时log 是偶数,否则是奇数。 7 结语 本文将改进后的小步一大步攻击算法与原算法的性能进 行了对比分析,表明上述改进措施均是正确而行之有效的。 如何减少存贮开销,尽量避免或减少求逆元运算,如何有效应 用多精度算法,以及通过变换指数表现形式来加速幂运算速 度等,都值得在日益广泛应用的密码系统和签名方案的实现 过程中加以充分考虑和探讨。 努力提高攻击算法的运算效率只是一个方面的工作,延 伸到如何降低算法的输入规模将是一件非常有意义的工作。 本文仅讨论了离散对数的奇偶筛选问题,如何预测或确定离 散对数中的其他多个特定比特位的数值值得进一步的深入 研究。 参考文献: 【1】 ALFRED JM,PAUL CVO,SCOTI"AV.Handbook of applied cryp— tgroaphy【M].胡磊,王鹏,译.北京:电子工业出版社,2005.99 —101,459—468,527—532. 【2】DOUGLAS RS.Cryptography theory and practice.Second edition 【M].冯登国,译.北京:电子工业出版社,2003.193—227. 注: m=r侗,n为元素 ∈G的阶。 当查找成功时所需的平均计算时间= 【3】 JOHANNES B,DAMIAN W.Discrete logarithms:recent progress 【A].1ntemational Conference on Coding Theory,Cryptography and Related Areasf C】.Bedim Spfinger-Verlag,2000.42—56. 【4】ANDREW O.Discrete logarithms:the past and the future[J】.De— ( )= 次群乘法。 6进一步的改进措施 改进后的小步一大步攻击算法较原算法而言进行了算法 实现上的多项优化,但这仅是针对算法本身的优化,两种算法 所面对的问题规模仍然是相同的。可以尝试通过降低问题的 规模来进一步缩短攻击算法的计算过程。这一点对于比特位 较长的素数P意义更加明显。 (上接第842页) signs,Codes,and Cryptography,20O0,19(2/3):129—145. 【5】 CHRIS S.The discrete log problem[D】.PhD.Thesis,University of Toronto,2002.7—9. 【6】 WADE T,LAWRENCE CW.Intrductoion to cryptography with cod— ing theory[M】.邹红霞,许鹏文,李勇奇,译.北京:人民邮电出 版社,2004.121—122,127—134. 【7】 MU1R JA,STINSON DR.On he lTow hamming weight discrete log— arithm problem for nonadjacent representations[J】.AAECC,2006, 16(6):461—472. 图2是语音信号隐藏秘密信息前后的波形图,图3是语 音信号隐藏秘密信息前后的频谱图。从主观听觉测试结果表 明,本文所提算法获得的携密语音仅仅比原始明文略多一点 噪声,并不影响整体听觉效果。在长度为4.10%(样点总数约 为9.1×10 )的语音数据中嵌入了2964bit的信息。从图中可 以看出秘密信息嵌入后没有引起语音信号质量大的变化。 大量仿真试验结果表明,算法对GSM中的RPE2LTP编码有 很强的鲁棒性。算法简单易行并且是基于盲检测的,具有很 大的实用性。本文提出的基于语音的信息隐藏方法可以广泛 运用于移动通信网条件下信息安全传输、数字水印等领域。 参考文献: 【1】 陈力,谢玉琼.一种基于分形维数的自适应语音信息隐藏算法 【J】.武汉大学学报,2003,49(3):313—317. [2】 郑见灵,谭月辉,焦桂芝,等.音频文件中信息隐藏技术研究及其 实现【J】.河北工业科技,2006,23(2):76—79. [3】WE 7J,YANG W,YANG YX.ABS—based speech ifornmation hid— 5 结语 一本文基于一般语音编码对相邻段语音能量比改变不大这 特性,提出了一种能够在GSM移动通信网络中使用的信息 隐藏算法能量比调整(ABS Energy Ratio Adjust)算法。算法 ing approach【J】.Electronics Letters,2003,39(22):1617—1619. 采用了ABS技术,在隐藏算法中根据输入明文语音实时的调 【4】 吴志军,钮心忻,杨义先,等.语音隐藏的研究及实现【J】.通信学 报,2002,23(8):99—104. 整相邻段能量比,使得隐藏效果和解码效果都达到最佳值。