第36卷第2期 南昌大学学报(工科版) Vo1.36 No.2 2014年6月 Journal of Nanchang University(En ̄neeHng&Technology) Jun.2014 文章编号:1006—0456(2014)02—0179—03 一种迭代求解离散对数的Pohlig—Hellman算法 胡建军 (兰州文理学院电子信息工程学院,甘肃兰州730010) 摘要:针对Pohlig・Hellman类算法中需要存储每一个基数下的同余数的不足,提出一种利用迭代法直接计算离 散对数的方法。该方法不再需要对每一个基数下的同余数进行存储,节约了一定存储空间。同时,利用穷尽搜索 法代替Shank算法的调用,时间复杂度有所降低。理论研究和数字分析表明,改进算法具有较好的计算能力。 关键词:混合基数表示;离散对数;素因子分解;复杂度;循环群 中图分类号:TP301.6 文献标志码:A An iteration method on Pohlig-Hellman algorithm for t0 r comput ̄puting discrete’ng alscrete logaritlthm HU Jianjun (Engineenng College of Electric&Information,Lanzhou University of Arts and Science,Lanzhou 730010,China) Abstract:Because Pohlig—Hellman class algorithms need some memory for storing each radix of modulus of congruence,an iteration method was carried out directly to compute discrete logarithm.The method was no longer needed with storing each radix of modulus of congruence,which was saving some memory.The exhaustive search al— gorithm was also applied for escaping to call Shank in order to improve the efficiency.Through theoretical analysis and example veriifcation,the improved algorithm was of high computing power. Key Words:mixed radix representation;discrete logarithm;factorization;complexity;cyclic group 文献[1]是Pohlig—Hellman算法_2 的一种改进, 想是:首先,对n进行素因子分解,即n=P P … 尽管文献[1]算法的时间复杂度与Pohlig.Hellman P 。其次,假设t。,t ,t ,…是一个大于1的素数序 算法相同,但是该算法不需要中国剩余定理,节约了 列,则考虑如下的序列: 一定的运行时间。然而文献[1]算法需要一定的存 to … t l一1 Pl 储空间来保存每一个基数上计算的一些同余数。研 e- …=te究发现,可以利用迭代法直接计算离散对数,能够节 t+e2-1 p (1) 约一定的存储空间。文献[3]利用穷尽搜索法消除 了Shank算法的调用,当n的素因子是光滑的且光 tH+l … tu一 ,l P, 滑界较小时,文献[3]的算法比较有效。为此,本文 从而有几=totlf2…t 一 ,其中M=∑ t ,对于 利用迭代法和文献[3]方法对Pohlig.Hellman算法 任意的整数 ,0≤ ≤n一1,有下面的表达式成立: 进行了改进。分析表明,改进算法是有效和可行的。 = +z1to+Z2totl+Z3totlt2+…+z“ltott‘¨tu一2 1文献[1]算法概述 (2) 其中:系数 ,满足0≤z,≤£卜1。 设P是~个大素数,n=p一1是循环群G的阶, 因此,Y=gX= “ “ 。。“ 一 ,则 Od, ∈G,O/是群G的生成元,求 =log 。算法的思 Y =(g∥‘。z0g“‘ +z2tI+Z3tlt2+...+Zu_ltl"'tu_2)毫(g z0 收稿日期:2013—12—09。 基金项目:甘肃省高等学校研究生导师科研资助项目(1113-02)。 作者简介:胡建军(1971一),男,副教授。 引文格式:胡建军.一种迭代求解离散对数的Pohlig—Hellman算法[J].南昌大学学报:工科版,2014,36(2):179—181, 194. 南昌大学学报(工科版) orodp。调用Shank算法获得z。的值,并保存z。。 由于(Yg一铀) =(g ’) g ‘宅 ≈ +‘一 气 一 一 ’ ;(g ) mod P,因此调用Shank算法获得z 的 值,并保存 。。重复该过程,直到获得 一 。最后获得 =Z0+Z1to+Z2totl+Z3totltz+…+ u一1tot1…tu一2。 2 迭代求解算法 2.1.算法思想 假设s z0+Z1t0+Zzt0t1+Z3t0t1t2+…+ Zklt。t …t 是前|i}个同余系数乘积的和,其中0≤Jj} <“一1,则前.i}+1个同余系数乘积和的迭代公式为 s川=s +zkt0tl…t 。由式(1)和式(2)可得 i z0(rood t0) 一 z- (m。 ) (3) 一s 2三Z一u-Itot1…tⅡ一2(rood tu一1) 从式(3)可以看出, 由 兰Z0(rood to)计算 出,zl由 —z0;zlto(rood t1)计算出,如此重复,最 后 一l由 一s 塞 一】totl…t (rood t )计算得 到, ≥2,即 E s 一2+Zu-It0tl…t 一1(mod t 一1)。从 整个计算过程来看,算法是一种迭代求和计算,因此 算法不需要保存每一个同余数的值,这样可以节约 =∑ 个整数存储空间。 2.2 算法实现 输入:阶为凡的循环群G的一个生成元 ,一个 元素 ∈G。 输出:离散对数 =log ̄B rood P。 算法如下: 几 pl“P2 ・‘ r ; 0=…=t 1一l P1,te1=… te1+e2-l P2,…,tu e+l … tu_1 P"M 22 ’一 ei, I=l s:0,y= 一rood P,t一1=1,6:1,叼 1 for i=0 to u一1 { =6t , 叼 一1,if t <>t —lthen仅=o/n,/t modp,Y=y modP, =( )椰roodP for zi=0 to t 一1{if( ) rood P= then s= s+z ,exit} } Return 5 2.3 算法正确性分析 首先看求解 。由于 = 幻 一 ‘mod P,y= —roodP,s=0,又由Fe瑚at小定理可知, 。 = ( lf0 ‘ l ‘‘ ) ‘0 = ( )加( 龟q+‘‘。+ _2q … _2)“三( n/‘0)如mod P。 令 =(0f )z0 roodP,b=卢 modP,则Z0= log。b mod P。从而s=Zo+s:Z0。 其次看求解 。 同理( ) “’ = (a l‘0 l l ) ( 1) = ( n/‘ ) ( 宅 ‘ 。-2 … “一 )“兰(a ‘) mod P。 令口=( “) roodP,b=( 一码) orodP, 则z】=log b rood P,从而s=s+=】to:zo+zlto。 最后,假设前lj}个同余系数乘积的和已计算出, 即s = 0+Z,Ito+z2t0t1+z3t0tlt2+…+Zk-It0t1…t 一2, 则第.i}+1个的值计算方法如下: 因 ( ) ‘。 ) = ( 0cr ) ‘ Oil""t = ( n/ ) ( +1+’‘’+ 一2“+1… _2) 兰(OL )血mod P。 令0=( “)靠rood P,b=(卢y ) ‘ mod P,则 =log b mod P。 从而s=s+zkt0tl…t 一1= 0+Z1t0+…+ Z ̄totl…tk一1。 如此重复,直至 一1,最终可以求出离散对数 的值,因此,算法是正确的。 2.4 数字例子 假设G= 是有限域 ,的循环群,阶n=72 =2。3 且生成元g=5,则M=∑ei=2+3=5, 整数序列为 0,il,i2, 3,i4,t0:tl=t2=2,t3=t4= 3。求解卢=7的离散对数,即 =log 7 roodP,这里 P=73。 令 :0,t一1=1, =1,叼=1,并计算 = 5 (mod 73)=44,则5次循环的计算过程如下: 1) =6t0=2;17=叼£一l:1;由于t0=2≠t一1 =1,所以a=g “rood P=72;y= rood P=1, =(By) mod P=72; 从1到0循环,因为当J=1 时,( ) rood P=万,所以 : +Jn=0+1=1。 2) =艿£I=4;叩= z0=2;由于tl=2=t0= 2,所以 =72所以保持不变;),= rood P=44, =( ) rood P=1 从1到0循环,因为当J=0 时,( ) rood P= ,所以 = +Jn=1+0=1。 3) =6t2=8; = l=4;由于t2=2=tI= 2,所以 =72所以保持不变;y= rood P=44, :( ) rood P=1 从1到0循环,因为当J=0 时,( ) mod P=卢,所以 : +-,叼=1+0:1。 4)6=6t3=24; =叼 2=8;由于t3:3≠t2 =2,所以 =g “mod P:8;,,= rood P=44,声 第2期 胡建军:一种迭代求解离散对数的Pohlig—Hellman算法 =(/3y) rood P=8; 从2到0循环,因为当 =1 时,( ) mod P= ,所以 = + =1+1×8= 9。 5)6=6t4:72;叼=r/t3=24;由于t4=3=t3 =3,所以 :8保持不变;y= mod P=22,万= ( ) modP:8√从2到0循环,因为当 =1时, ( ) mod P= ,所以 : +jv=9+l×24:33。 即 =33为所求结果,亦即log57 rood P=33。 验证可知5 33orod 73=7,所以算法是正确和有 效的。 以上计算过程没有保存每一次循环中满足等式 的 值,而是利用迭代法直接求出了离散对数的值, 节省了存储空间。 3 算法分析 3.1算法复杂性分析 由于本文利用了文献[3]的方法计算离散对 数,因此算法的时间复杂性与文献[3]一致,即 D(∑e‘=1 ipi)。 文献[1]的时问复杂性为 0(∑e (1og n+ l0g P )) , ̄N[3 3证明了 不等式(4)成立 D(∑eip )<D(∑e (1og n+ l0g:P )) ‘ 1 ‘ l (4) 这表明,改进算法在时间复杂性上要优于文 献[1]。 但是文献[3]并未给出时间复杂性的下界。假 设q是n的最大素因子,则文献[6]指出,基于 Pohlig.Hellman算法所有可能的编码函数所需的最 小运行时间为 (1og: ) ¨。在这一事实的基础 上,其他基于Pohlig—Hellman类似算法的时间复杂 性也不会小于该下界 ,因此D(∑eip )的时间 复杂性满足不等式(5) D( log n)≤D(∑eip ) (5) 在空间复杂性上,因为n的互素数为r,前后素 数要有区分,因此本文算法的存储复杂度为O(2r)。 其他空间复杂度可以忽略不计。 3.2 与文献[1]算法的比较 从3.1分析表明,本文算法在空间和时间复杂 性方面都要优于文献[1],为了验证3.1的结论,以 2.4的数字例子为例,下面分别从时间复杂度和空 间复杂度2个方面进行比较,见表1和表2。 表1 时间复杂度比较 Tab.1 Complexity comparison of time 表2 空间复杂度比较 Tab.2 Complexity comparison of store 从表1可以看出:利用公式计算,文献[1]群乘 法运算次数大约是本文的3.5倍;从实际群乘法运 算次数来看,文献[1](包括实际和构造表的群乘法 次数)大约是本文的1.67倍,文献[1]算法所需的 查询、整理表的次数分别为5、14,而本文均为0。 因为[ log n]=[,/3'-log272]:11,∑eip = =l 12,即 log272<2×3+3×2,这说明当 的素因子 是光滑的且光滑界较小时,2个值相当,所以本文算 法有效。 从表2可以看出:文献[1]和本文算法在素因 子存储上所占的空间相同,但是在群元素存储和同 余数存储2项上,文献[1]所需的存储分别为2和5, 而本文所需存储空间为均为0。 从以上比较可以看出,本文算法明显优于文 献[1]。 4 结语 Pohlig.Hellman算法属于确定性算法,不存在 盲目性,当阶n的素因子是光滑的且光滑界较小时, Pohlig.Hellman算法最快。本文对Pohlig—Hellman系 列算法进行了再次改进,除了节省了同余数存储所 需的存储空间外,对指数模运算的计算进行了改进, 分析表明,改进算法要明显优于文献[1]的算法,同 时指出了文献[3]算法的理论下界。然而,本文算法 并没有给出:理论上,改进算法比文献[1]在时间复 杂性上究竟快多少,时间复杂度的确切上界是否存 在更为确切的值。另外,数字验证发现,文献[3]所 给的数字例子的时间复杂度比文献[6]所给的公式 下界还要小(17<24),这表明, (下转第194页) ・194・ Il 二 1J 1J南昌大学学报(工科版) 2 1J2014年 1J3 1J4 1J5 1J6 7 大小主要根据经验设置,过大则退化为普通区域水 平集方法,可能导致精度下降,过小则导致运算时间 增大。 texture,motion and shape[J].International Journal of Computer Vision,2007,72(2):195—215. [8] CHAN T,VESE L.Active contours without edges[J]. IEEE Trans On Imag Proc,2001,10(2):266—277. 参考文献: 姜玉新,张运.超声医学高级教程[M].北京:人民军 医出版社,2012. 黄剑华,于瀛星,张英涛,等.基于一致性直方图的超 声乳腺图片分割方法[J].哈尔滨工业大学学报, 2008,40(7):1103—1106. [9] LI C M,KAO C Y,GORE J C,et a1.Minimization of re. gion・scalable fitting enery fgor image segmentation[J]. IEEE Transactions on Image Processing,2008,17(2): 1940—1949. a1.A geometric [10] CASELLES V,CATFE F,COLL T,etmodel for active contours in image—processing[J].Numer- ische Mathematik,1993,66(1):1—31. LI C,HUANG R,DING Z,et a1.A level set method for image segmentation in the presence of intensity inhomoge・ 沈嘉琳.基于灰度阈值分割和动态规划的超声图像乳 腺肿瘤边缘提取[J].航天医学与医学工程,2005,18 (4):281~284. 刘红,张欣,吕丹,等.超声乳腺肿瘤图像的自动分割 [J].计算机工程与设计,2010,31(15):3537—3538. 聂敏,高满屯.基于活动轮廓模型的B超乳腺肿瘤图 neities with application to MRI[J].IEEE Transactions on Image Processing,2011,20(7):2007—2016. ve contours [12] ZHANG K H,SONG H H,ZHANG L.Acti像分割[J].北京生物医学工程,2008,27(5):534— 535,552. LIU B,CHENG H D,HANG H L,et a1.Automated seg— mentation of uhrasonic breast lesions using statistical tex— ture classiicatifon and active contour based on probability driven by local image fitting enery[J].Patgtern Recogni— tion,2010,43(4):1199—1206. a1.Level set evolution [13] WANG Y,WANG L,XIANG S,etwith locally linear classification for image segmentation [C]//Proceedings of IEEE Conference on Image Process- ing.Brussels,Belgium,201 1:3422—3425. distance[J].Uhrasound in Medicine and Biology,2008, 35(8):1309—1324. DANIEL C,MIKAEL R,RACHID D.A review of statisti- cal approaches to level set segmentation:integration color, [14] WILLIAM K P.数字图像处理[M].邓鲁华,延恒,等 译.北京:机械工业出版社,2005. (上接第181页) 随着Pohlig—Hellman系列算法的进一步研究, Pohlig.Hellman系列算法的时间复杂度还可以进一 步降低。因此这需要今后做更为深入的探讨。 师范大学自然科学学报,2013,36(5):l9—22. [4] 周玉洁,冯登国.公开密钥密码算法及其快速实现 [M].北京:国防工业出版社,2002. [5] 肖攸安.椭圆曲线密码体系研究[M].武汉:华中科技 大学出版社,2006. [6] SHOUP V.Lower bounds for discrete logarithms and relat— 参考文献: THIONG J A.A serial version of the Pohlig—Hellman algo— rithm for computing discrete logarithms[J].AAECC, 1993,4(1):77—8O, lgorithm for [2] POHLIG S C,HELLMAN M E.An improved aed problems[C]//Advances in Cryp tology—Eurocrypt’ 97,Lecture Notes in Computer Science Volume 1233. Springer Berlin Heidelberg,1997:256—266. computing logairthms over GF(P)and its cryptographic [7] [8] STEIN A,TESKE E.Optimized baby step—giant step meth— signiifcance[J].IEEE Info Theo Soc,1978,24(1):106 —ods[J].J Ramanujan Math Soc,2005,20(1):1—32. DIEM C.On the discrete logarithm problem in elliptic 1l0. [3] 胡建军,裴东林.Pohlig—Hellman算法的改进[J].湖南 curves[J].Compo Math,2011,147(1):75—104.