您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页超椭圆曲线上Montgomery标量乘的快速计算公式

超椭圆曲线上Montgomery标量乘的快速计算公式

来源:筏尚旅游网
软件学报ISSN 1000-9825.CODEN RUXUEW Journal ofSoftware,2013,24(10):2275—2288[doi:10.3724/SP.J.1001.2013.04370] ◎中国科学院软件研究所版权所有. E—mail:jos@iscas.ac.cn http://www.jos.org.ca Tel/Fax:+86一l0—62562563 超椭圆曲线上Montgomery标量乘的快速计算公式 李明1,3,孔凡玉 ,朱大铭 (山东大学计算机科学与技术学院,山东济南(山东大学网络信息安全研究所,山东济南(国网山东省电力公司,山东济南250100) 250100) 250100) 通讯作者:李明,E—mail:luamin8:@msn.tom 摘要: 超椭圆曲线密码体制与椭圆曲线密码体制相比,具有安全性高、密钥短的特点.标量乘计算是这两个密码 体制中最为核心和重要的计算,其中,Montgomery阶梯算法是计算标量乘的一种重要算法,且因为其可以抵抗简单 的边带信道攻击,而被广泛研究和应用.近几年,椭圆曲线上的Montgomery阶梯算法和相应的点运算公式一直在不 断改进,但是在超椭圆曲线上,直接设计快速运算公式来提高Montgomery阶梯算法的速度,却一直没有太大的进展. Lange曾经探讨过这种快速公式存在的可能性,但却并没有得到一个实用、有效的计算公式.在特征为2的域上,通 过改进超椭圆曲线上的除子类加法公式来提高超椭圆曲线上的Montgomery阶梯标量乘计算,提出了一种新的思路 来改进多种坐标系下的加法公式.分析和仿真结果表明,在特征为2的域上,新的运算公式的运行速度比之前的标准 公式均有所提高.在某类常用曲线上,新的公式比之前的公式快了4%~8.3%.这说明,直接设计快速除子运算公式来 提高Montgomery阶梯算法的速度是可行的.同时,使用新的公式实现的Montgomery阶梯算法可以抵抗简单边带信 道攻击. 关键词: 超椭圆曲线;标量乘;Montgomery Ladder;L ̄算公式;除子类 中图法分类号:TP301 文献标识码:A 中文引用格式:李明,孔凡玉,朱大铭.超椭圆曲线上Montgomery标量乘的快速计算公式.软件学报,2013,24(10):2275—2288. hap://www.jos.org.crdlO00-9825/4370.htm 英文引用格式:Li M,Kong FY,Zhu DM.Fast addition formulae for Montgomery Ladder scalar multiplication on hyperelliptic curves.Ruan Jian Xue Bao/Journal of Software,2013,24(10):2275-2288(in Chinese).http://www.jos.org.cn/lO00—9825/ 4370.htm Fast Addition Formulae for Montgomery Ladder Scalar Multiplication on Hyperelliptic Curves LI Ming ,KONG Fan.Yu ,ZHU Da—Ming (School ofComputer Science and Technology,Shandong University,Ji’nan 250100,China) (Institute of Network Security,Shandong University,Ji’nan 250 1 00,China) (State Grid Shandong Electric Power Company,Ji’nan 250100,China) Corresponding author:LI Ming,E—mail:luaming@msn.com Abstract:Comparing with elliptic curve(EC)cryptosystem,hyperelliptic curve(HEC)cryptosystem offers high level of security with shorter key size Scalar multiplication is the most important and key operation in cryptosystems built on HEC and EC.Montgomery Ladder algorithm is an eficifent and important algorithm to implement scalar multiplications for defending against side channel attacks While Montgomery Ladder algorithm on elliptic curve is being improved in recent years,there is not much advance on hyperelliptic ・基金项目:国家自然科学 ̄(2008BS010111 (61070019,60703089);山东省自然科学基金(zR201OFQ015);山东省优秀中青年科学家科研奖 励 ̄收稿时间:2011-10.26;定稿时间:2012.12—27 2276 Journal of Software软件学报Vo1.24,No.10,October 2013 curves.Lange proposed a way to design faster addition formula on hyperelliptic curves but did not result in a practical solution.This paper improves the addition for divisor classes for the first time to implement faster Montgomery Ladder algorithm.New technique is applied for improving the formulae on various coordinates.The analysis and experimental results show that the new formulae are faster than previous ones.Over ielfds ofcharacter two and Type II curves.the/lew formulae is 4%-8.4%faster than the ones known before.And the Montgomery Ladder algorithm implemented in this paper is secure against side channel attacks. Key words:hyperelliptic curve;scalar multiplication;Montgomery ladder;addition formulae;divisor classes 超椭圆曲线(HEC)与椭圆曲线(EC)类似,也可以用来建立密码体制.自从KoblitzI 】于1988年提出了在超椭 圆曲线上建立密码体制以来,超椭圆曲线上的运算公式和标量乘计算方法也在不断地发展和改进.与椭圆曲线 密码体制相比,超椭圆曲线密码体制的安全性更高,其上的运算参数及密钥长度都更短.对应于参数为l 024bits 长度的RSA密码体制,现在推荐在椭圆曲线和超椭圆曲线上建立阶为2 。大小的群,就可以满足我们的安全需 求【21.在使用椭圆曲线时,操作数的长度为160bits即可满足要求.在亏格g=2的超椭圆曲线上,操作数的长度约为 160/g=80bits;在亏格为3的超椭圆曲线上,操作数的长度约为55bits.已经证明,在亏格大于3的超椭圆曲线上建 立密码体制,安全性有所降低.当使用亏格为3的超椭圆曲线时,也要小心地选择安全曲线以避免攻击.本文讨论 亏格为2的超椭圆曲线上的运算. 虽然超椭圆曲线上的操作数大多很短,但其运算公式却很复杂.随着研究的深入,各种高效的除子类的运算 公式陆续被提出[3-5],并且使得超椭圆曲线上的标量乘运算速度越来越接近于椭圆曲线上的标量乘计算. Montgomery阶梯算法[2,61是计算标量乘的一种重要算法,且因为其一定程度上可以抵抗简单边带信道攻 击[2】而被广泛应用.这种算法在加解密计算和利用椭圆曲线(超椭圆曲线)分解大素数等应用中,都有重要的作用 和意义.近几年,椭圆曲线上的Montgomery阶梯算法和相应的点运算公式一直在不断地得以改进,比如2010年 的密码年会上,Bernstein等人【 在binary Edwards曲线上使用Montgomery阶梯算法实现了一般椭圆曲线上至 今最快的标量乘计算.在超椭圆曲线上,人们利用Kummer surface设计Montgomery计算方案l j.直接在一般曲 线上设计快速除子类的运算公式来实现较为高效的Montgomery阶梯算法,是另一条改进途径,但在这个方向上 却一直没有太大进展.Lange曾经探讨过这种快速公式存在的可能性L9J,却并未得到一个实用、有效的计算公式, 本文提出了更为快速和高效的除子类加法公式来加快超椭圆曲线上的Montgomery阶梯算法的计算.首先 给出了新的思路来进行公式上的代数变换,然后在多种坐标系下优化设计出了新的公式.对于特征为2的域上 的超椭圆曲线,根据不同的参数取值【 】可将其分类,分为类型I、类型II、类型III曲线.分析和比较结果表明,新 的公式在投影坐标系(projective coordinate)、N坐标系(new coordinate)和R坐标系(recent coordinate)下,在类型 II和类型III的曲线上,速度与之前的公式相比都有明显提高.在类型II的曲线上提高最为明显,而类型II曲线 正好也是我们在构建超椭圆曲线密码体制时最为常用的一种曲线.当域上的平方和乘法之间的运算量的比率 满足0.8比1时,类型II的曲线上新的公式比之前的公式快了7.7%~7.8%.当我们用正规基来表示域上的元素时, 平方的计算量町以忽略不计,这时新的公式快了4%~8-3%.当然,新的技术也可以进一步应用于参数更为特殊的 曲线上,以得到更快的算法.本文的研究结果表明,超椭圆曲线上的Montgomery阶梯算法可以直接在公式层面 提高效率.本文最后使用新的公式实现了超椭圆曲线上的Montgomery阶梯算法,在保持高效的同时可以抵抗简 单边带信道攻击. 本文第1节介绍相关基本概念和基础知识,主要是已有的运算公式.第2节提出新的代数变换方法和思路, 并设计出新的运算公式.第3节是性能分析和仿真实验.最后一节对本文进行总结,并对进一步的工作进行探讨. 1基础知识 1.1超椭圆曲线上的运算 本节对亏格为2的超椭圆曲线进行简要介绍,具体内容可参考文献[2,6,10,111.设 是一个特征为P的有 限域,其中,g , 是Fq的代数闭包,下面定义了亏格为g的超椭圆曲线: 李明等:超椭圆曲线上Montgomery标量乘的快速计算公式 2277 C:y + ), 其中 )∈ ]首项系数为1,次数为2g+1; )∈Fq ]是一个次数最大为g的多项式,对于二元组(日,6)∈ × , 没有合适的解满足b2+h(a)b=J(a)和偏微分等式2b+h(a)=O,h (a)6-厂 (口):0.这是为了保证超椭圆曲线不是超奇异 的.曲线C/ 就叫作定义在 上的亏格为g的超椭圆曲线. 设 是 的一个子域,超椭圆曲线C在 上所有的点构成了一个点集: C( ={ ):x ∈K + =:, ))u{o。), 其中,O0表示无穷远点.C( 上是没有合适的群运算的,我们构建超椭圆曲线上的Jacobian来获得一个实用的离 散对数系统.首先定义超椭圆曲线C上的一个除子(divisor):D=∑m,P,其中,rnpEZ,尸∈c( ,而除子的次数 deg(D)=∑m .其中,所有次数为0的除子构成了一个集合DivoC(D).我们再通过函数域G[x,y]/(y + )_=, )), 构造出主除子群(group of principle divisors):Pc( )={D V( :F∈ ( ).最后,即得到了C在域 上的Jacobian Jc(Fq)=Div0C(Fq)/Pc(G).超椭圆曲线的安全性即建立在Jacobian的离散对数问题上. 下一步,Jacobian上的每一个元素,都可以用唯一的reduced divisor来表示,MumfordI 1给出了表示方法: (1)U是首项系数为1的; (2)deg v<deg”≤g; (3)ulv +vh-f cantor㈣在此基础上提出了如何计算两个除子类的加法,但是Cantor算法中含有求多项式的最大公约数 的运算以及多个求逆运算.之后,有人使用各种技巧改进了Cantor算法.最近的导出公式是Langel6】提出的,如下 所示: k=(f—vzh—v ̄)/u , i(V1一v2)/u2 mod”1,,=SU2,”=(k—s(1+h+2v2))/u1, U =U mademonic,v =一h一(,+V2)mod“ . 这就将Cantor算法中计算semi.reduced divisor的过程和计算reduced divisor的过程合并且简化了,并去掉 了计算最大公约数的步骤.其中,S的计算可以利用Sylvester resultant来实现.具体的计算公式如算法1所示.算 法中的M表示域上的乘法,S表示平方计算,而I表示元素求逆. 算法1.一般情况下除子类加法公式[ , 】 Input 0utput Step 1 Compute resultant,of//1,“2: ZI g/I1一U21,Z2 /*/20一/dlO,Z3=UI1ZI+Z2;, = 2z3+z Ul0; 。RI,vl】,[ 2, 2],l ̄i=X +“ 1 +甜f0,vr=vllx+Vio; “ ,v 1=[ l,vd+[u2,v2]. Expression Operations 1S+3M 2 3 Compute almost inverse of/42 modulo ul(inv r/u2 rood“1): f"v1 21,invo=Z3; Compute St=rs=-(vl—v ̄)inv ood lr: W0=I)10—1)20,Wl=Vll—v21,w2=invowo,w3=DlVlWl; 5M S (f Vo+f V1)(wo+w1)一W2一W3(I+ulI), 4 Compute ” + 0 l +S /s and Sl: W2一UlOW3;if S 0 see below 1I+2S+5M Wl=(rs;)~(=l/r2s1),w2=rwl(=1]S ̄),W3=S ̄ w1( 1);W4=rwR=l/st), = , ;= w2; 5 6 Compute, = “2== + +和+ : =U21+ , =/'/21 +“20, =U20S ; 2M 3M Compute” = (?+ +2v2)一的/“1== +“ x+“ : “ =( ;一I'llI)( 一zl+ “ =2s 一Zl+h2w4一ws; )一bt10+ +(hl+2V21)w4+(2u21+21— )w5; 4M 7 Compute V 三一h一(f+V2)mod =v;x+V’0: = 一“ ,w2=“ + 一 , =¨ 一v2l一向+ “ ; w2=“ 一 , = w]一 一‰+ ; Total 1I+3S十22M 2278 Journal of Software软件学报Vo1.24,No.10,October 2013 算法1.一般情况下除子类加法公式 , (续) 4 Compute : inv 1/r,SO S inv; lI+lM 5 Compute U r=( — (,+^+2V2))/ l i +U:: “ = 一“2l一“ll—S 一 0, ; lS 6 Compute v,i—h一(『+ 2)mod U = : 2M =SO 2l+“ )+ + l+ Total ,WE=So+V20+%, =“ 一W2; 1I+2S+l1M 我们这里只讨论绝大多数情况下的加法公式,也就是U 和U2的次数均为2且互素时的公式.其他情况出现 的概率非常小,且计算过程简单很多,这里不再赘述,具体过程参考文献[2,9】. 1.2 Montgomery阶梯算法 Montgomery阶梯算法如算法2所示.实际上,算法中的Dl总是存储了目前为止所求出的结果,而D2中总是 存储了D +D的值.这样,最后输出的D 就是要求的结果.在算法的循环体中,由于每次循环都需要做一次二倍运 算和一次除子类的加法运算,这就使得每次执行循环体时的运算量是一样的.所以,Montgomery阶梯标量乘算 法一定程度上可以抵抗简单边带信道攻击. 算法2.Montgomery标量乘算法 输入:reduced divisor D和整数S=(SI …,S0) 输出: D. 1.D =O.D2=D 2. 3. 4. 5. Forf=l-l downto 0 do IfSi=O then DI:2D1,D2=Dl+D2 Else D1:D1+D2,D2=2D2 ReturnD1 可以看到,算法2中的加法运算是特殊的加法,其中的变量总是满足D2-Dl_D,且D是固定、己知的.在椭圆 曲线密码体制中也有类似的性质,人们利用这一点设计出了高效的点运算公式 , .2010年的密码年会上, Bernstein等人 使用Montgomey阶梯算法,r在一般的binary Edwards曲线上实现了较快的椭圆曲线标量乘计 算.上述binary Edwars曲线其实是Bernstein等人仿照大素数域上的Edwards曲线设计出来的,但是二元域上所 有的椭圆曲线方程都可以有理变换成为binary Edwards曲线的形式. 在超椭圆曲线上如何应用Montgomery阶梯算法,也是人们长久以来不断考虑的问题.Lange[9】设计适用于 Montgomery标量乘算法的快速除子类加法公式,但是没有得到最终的公式.在文献[21q ̄,Lange从另外一个角 度,仿照椭圆曲线上的Montgomery形式,设计出一种特殊的超椭圆曲线的Montgomery形式.而后,她利用 Kummer SUrface设计出较为高效的除子类运算公式.但是只有某类超椭圆曲线可以等价变换到这种特殊的 Montgomery形式,并且算法的空间复杂性较大.在计算中,还需要额外的预计算和预存储,进行坐标表示的转换. 我们在下一节介绍设计出的新的超椭圆曲线上的快速加法公式.新的技术适用于普通的超椭圆曲线,特别 是在特征为2的域上,可以明显提高公式的运算效率. 1.3域 上的同态曲线 根据文献[2]中的描述,在特征为偶数的域上,超椭圆曲线中的Ax) ̄D )就定义在 可分为如下3类: I.II.III.deg =2: deg =1: deg h=0. 上,这样的超椭圆曲线 对于所有形如类型1的曲线,均可以变换成如下两种形式: 李明等:超椭圆曲线上Montgomery标量乘的快速计算公式 2279 Ia. y2+ +h lx+t )y: + +flx+fo; Ib. y2+x(x+hOy=x +  ̄x+fo. 其中, ∈F2,t表示一个trace为I的元素(当 为奇数时,户1). 对于类型II,曲线均可以有理变换为如下两种形式: 。 y + +尉 + ,n为奇数时; + l +gx + 砰 l,n为偶数时. 类型III中的曲线是超奇异的,在Frey.Ruck攻击下其安全强度会有所降低,所以不能直接用来构建基于离 散对数的超椭圆曲线密码体制.但是,这种曲线可以用来构建基于双线性对的密码体制.所以,设计这种曲线上 的快速加法公式依然具有重要意义. 我们在下一节针对不同的情况,设计快速的加法公式.本文主要是对类型II和类型III推导快速加法公式. 为了方便起见,在下一节中始终假设 2=O.由于通过等价变化,所有的超椭圆曲线都可以变换到 2=O,1的形式, 所以类型II和类型III的曲线可以占总曲线数目的一半.而为了更方便地得到阶很大的Jacobian[ .通常选取 域 ,其中,d为奇数,而这种情况也是我们着重研究的对象.此外,下一节中的代数变换技术在h2=l时也是适 用的,只是在这里不再专门对这种情况进行优化了. 2新的运算公式 2.1设计快速加法公式 由于-(ul,V1)=一(“1,-h-vl mod u1)且 2 {O,1},所以当h的次数为2时,我们有 -(ul, 1)=一(“1,-h-vl+u1); 而当h的次数小于2时,就有 -(ul,v0=-(2/1,-h-V1). 我们先来讨论最为通用的加法公式,这时h为2次多项式. 对于D==D2—D1=一( l,V1)+(甜2, 2)=(甜1,一 一v1)+( 2,v2): ・k=(f-v2h一 )/u2, E(一h—V1一Y2)/U2 mod/dI,l=su2,u=(k-s(1+h+21,'2))/2/1; ・ U made monic,v,=-h一(『+ 2)mod . 可以得到Ulu=k-s(1+h+2v2). 我们需要计算D3=D2+D1=(“l,v1)+(“2,v2): ・k3=(f-v2h一 )/u2, 3i(V1一V2)/U2 mod/21,13=¥3U2,U3=(k-s3(13+h+2v2))/Ul; ・ U;=“made monic, =一h一(,3+V2)mod“;. 可以得到/21 3=k3 3(f3+h+2v2). 由于有 如,所以, 2/1(2/一/23)=s3(13+h+2v2)-s(1+h+2v2)=s313-sl+(h+2v2)(s3-s)=(s3— )( 3+ ) 2+h+2v2) 因为 3 =(一h一2v2 e2 mod”1,SmS3=(一h一2v1 e2 mod Ul,所以有, ut(u—u3):(s3一 )(((一矗一2 2) 2+f“1)“2+.il+2v2), 其中,j=一h2e21x+e2l( 2 l1一h1—2v21)一h2e2o. 于是. uffu一“3)=( 3一 )((一h-2v2)e2u2+i2/1u2+h+2v2). 因为e22/2=1一e12/l,所以, ul(u—u3) (s3-s)((h+2v2)elul+iulu2). 最后可得: 一甜3=( 3一 )(( +2 2)81+f 2). 2280 Journal of Software软件学报Vo1.24,No.10,October 2013 因为deg((h+2v2)e1+iu2)=1,所以, (h+2v2)el+iu2=( +2v2)P1 mod U2. 这样,u-u3=((-h-2v1)e2 mod U1)(( +2 2) 1 mod U2). 我们现在来推导其在仿射坐标系下的导出公式以求出D : ・首先,计算e2mod 1和el mod/,/21计算Ul和U2的resultant,和re2,re1: ・ l ”I1一u21,22 u20一UlO,Z3 Ul1Z1-}'-Z2; ・tel1 -z1,relo=L/21(U21一Ul1)+Ulo—U20,re21=21,re2o=Z3. ・其次,我们来计算st= 和S:=rs . ・ 然后,我们计算Cl:c11X+C10= +S 和C2=c21x+c2o= r_S;: 1. 注意到r(s+s3)=(一h一2v2)re2 mod Ub而我们想要求r(ax+b)=(h+2v2)rel mod U2.这两个等式分别可 以写为一r(s+s3)=( +2v2)re2+iu1和r(ax+b)=(h+2v2)rel+ju2.其中, f= 2P21 + 2已20+已21( 1一h2ull+2v21),j=h2e1lx+h2elo+en(h1一h2U2l+2v21). 2. 两个等式的等号两边分别乘以Uz和” ,可以得到: -r(s+s3)u2=(h+2v2)re2u2+iulU2,r(ax+b)ul=(h+2v2)relUl+ju2U1. + 3)“2) l_ 因为elul+e2u2=l并且i+j=0,所以两个等式相加可以得到r(ax+b)u厂r(s+s3)“2=( +2v2 r. 于是有r(ax+b)u1=( +2v2)r+r + 3)“2,也即r( +6)=(( +2v2) 可以得至0 ra=cll,rb=h2+c1o+口( 21-U11). ・最后,我们计算U (c 。 +C2。)( +b+ U )/ .由于上面等式的参数中均有 这个因子,所以最后除 以 的时候就约掉了.具体运算公式见算法3.至于 的计算,与算法1中的一样. 算法3.通用的加法公式 Input Step 1 1 ,v],[“1,v1],[ 2,V2],其中, , ]=[“2,v2卜[“1,v1],“f +蜥1x+u Pi=v“肘v 0; Expression Compute el=r/Ul mod U2 and e2=r/u2 mod/21: z1 “2l一1111,Z2 /'/10—1120 ̄Z3 z ; e21一 , 0= 11e21一z2,el1=z1, 1O 3一e20; Output [“;, 】=[ul,V1]+[U2,v2]. Operations 3M+lS r=z2elo+z3112o; 2 Compute S,_rs3 (vl—v2)e2 mod UI: W0=e21(Vll—Y21),W1 e2o(vl0一vz0),W2=(Vll—V21+Y10一v2o)(e21+e2o),w3=w2一Wo—w1; 5M ;l=ws—WoU11, o= 一 l0wo; 3 Compute s ̄=rs=r—h—Vl—v2)e2 mod 111: Wo=e21(一h】一V11一V21), 1= 20((一h0-Vl0一V2o), W2=(一^l—v11—122,一h0一VlO—v2o)(e21+e2o),w3=w2一w0一wi; s :w3一 1,s = 一U10Wo; 5M e1:cIl +c10=s + ;,c2=c2l +C20=S 一 ; 4 Compute 1/r and l/s,: 1I+3M+1S wo=( )~, =wor, = ,w2=WoS ; 5 Compute ;=((c2lX+C20)(cll +cl0+cl1( 2l一1211))+ )/ = + ;1 + 0: W4 ̄C1,C2,,’ 5=c2o(c10+cl1( 21一“l1)),w6=((c21+c2o)(cIl+c10+cIl(”2l一“l1)), 8M “ :( 一w4一w5+ “ ) ; “;0=( + 12“0f J ,. 6 Compute如 S;/r: S31= ;1w2,S3o oW2; 2M 7 Compute 兰一h一( U2+V2)mod ;= l + 0: W, ̄S31(1121一 31),W2 ̄S30(U20一U3o),W3=( 3l+ 30)(“21一/13,+1120一U30); o=一 一 一V20, 1=一w3一V2l一 ; 5M Total 1I十2S+31M 李明等:超椭圆曲线上Montgomery标量乘的快速计算公式 228l 上面的推导都是等价的代数变换,所以推导过程也就是算法3的正确性证明,于是我们得到如下定理: 定理1.算法3的输出结果与算法1是相同的. 注意到,当S=S。时,我们仍然将其作为特殊情况,如算法1所示进行处理,所以我们就不再将其包括在算法3 中了.特殊情况出现的概率很低,一次标量乘计算中平均最多出现一次特殊情况;且如果出现了,按照已有的公 式可以很高效地进行计算.所以本文中设计其他算法时也这样处理,只讨论普通情况下的算法公式. 与算法1相比,算法3不足够快,但在特征为2的域上,我们可以改进其中某几步运算来推导除子类的快速 加法公式,这是原有的算法1所不具有的特点.我们首先给出类型II的曲线上的加法运算公式.为了方便寻 找合适阶的群,我们都是在域F ( 为奇数)上建立密码体制,所以只考虑这种域上的公式即可. 在这种情况下,算法3的第3步中有cl=c2=cllx+clo= +S ( 1o+“2o +”10( 1l+“21), 而第5± 有U =((cl+C1l(/11l一/'/21))c2—1/)/s; =((( 10+ 20) + l0( 1l+U21))((z,1o+ 20) + 20( 1l+ 21))+ )/ . 因为U +1/ ax+b,可以得到: 科 =((/11o+1/20) x +(1f1o+1/20) (/111+1/21)x+ll10“20(“1l+“21) )+( o+U2o) “)/ +“ . 也就是说,我们可以先计算 ;+ =(ax+b)ls; ,然后计算” (ax+b)/s; +U  .综上所述,我们有U3 l:( 1o+zf20) ( l1+ 2I+ 1) +U1, =(UlO 20( l1+ 21) +(甜10+ 20) ) + . 具体计算过程见算法4. 算法4.在域 上的Montgomery阶梯加法公式(类型II,月为奇数) Input [ ,v],[ l, l】,[“2, 】,其中, ,vrJ:一[ l,vl】+[“2,v2],IAi=X2+ ̄lf1x+u Vi=vl1x+vl0; Output , 】=[ul,vd+[u2,v2]. Step Expression Operations 1 Compute el r/ui mod U2 and e2=r/u2 mod//1: ZI。=U2l+2/11,Z2 l/lO+U20,z3 z ,3M+2S z4=z;,z5=z3ulo; 5M 821 2l,e20=Ulie21+Z2,el1 z1,elo=Z3+e2o; r=z2e2 ̄+g5; 2 Compute (Vl+V2)e2 mod“1: WO=e21(1;11+v21),WI=e20(vlO+V20),w2=(v11+V21+Vlo+V20)(e21+e20),w3=w2+ 0+w1; ;l= +woul1’ 0: +MlOWo; 3 Compute W2 1/r and =1/s; : 1I+3M+1S Wo=( ;1),wt=wor,wl=嵋,w2=Wo41; 4 Compute ;:((c1+( 1+ 1)( 1+“21))c2+ )/ : l=Z4( ̄/1l+ 21+ ) +“ ; “ o=(//20z5+Z4Uto)Wl+Uo; 5M 5 6 Compute S3=S;/r: S3i= 1w2,S30= ;0W2; Compute 三h+( 3 2+v2)mod ;= l + 0: 2M 5M =¥31( 2l+ ;1),w =s30( 20+ 0),w3=(s31+ 30)(“21十Ⅳ l+ 20+ ;o); o=w2+ o+V20,嵋l=w3+ +w2+V2l+Ⅵ“ 1+1; Total lI+3S+23M 当在域F 为偶数数)上进行计算时,有h=hl ,这时,c1=c2=c11X+Cl0= + 1 (( 1o+U20 +“10( 11+ 21)). 于是,我们只需将第3步中Wl的运算变为 =砰w02即可保证算法正确.同时,将第6步中 .的计算变为 。=w3+v2l+ 1.当我们选取的hl是非零比特非常稀疏的随机数时,有关的h1计算是可以忽略不计的.这样,算 法的运算量依然是li+3S+23M. 当h=h0时,超椭圆曲线的形式为类型III,这时也有高效的公式,见算法5.注意到,我们也选取h0是稀疏的二 进制数. 2282 Journal of Software软件学报Vo1.24,No.10,October 2013 算法5.在域F 上的Montgomery阶梯加法公式(类型III) Input Step 【“,v】,[ bv1],[ 2,v2],其中,[“,v]=一[”I,v1]+[“2,v2],//i=X2+“儿x+u 0,Vi=v】1X+Vfo; Expression Operations Output [“;, ]=[/l,vd+[u2,v2]. 1 Compute el=r/ul mod l/2 and e2=r/u2 mod/41: 3M+1S Z1 //21+Ull,Z2=//10+U20,z3=z z4=z;; P2I _2l,e2o=ulle21+z2,ell Iz},el0=z3+e2o; r'=z2elo+Z3//20: 2 Compute s (Vl+V2)e2 mod UI: WO=e21(Vll+V21),W1=e2o(Vlo+v2o),W2=(VIl+V21+vlO+vZo)(e21+e2o),W3=W2+Wo+WI; 5M 1=w3+woul1, ;0=Wl+“10Wo; 3 Compute w2=l/r and =h/S; : olI+3M+1S 5M Wo=( ;1)~, =wor, : ,w2= ;l; 4 Compute =((c【+(邑I+ ) II一 1))c2一u)/s; : “;l=Z3( l+“21+“ ) +“ ; “;0:(eloe20+(U11+U21) ) + ; 5 Compute s3= /r: 2M 1= ;1WE,S30: ;oW2; 6 Compute v 三-h一(S3U2+V2)mod =qx+V'o: WI=S31(/21q-/31),W2=S30(U20+U30),W3=(曲l+ 3o)(“21+ 31+ 20+ 30); 5M 嵋0=WE+ +h0,嵋1=w3+V2l; Total lI+2S+23M 2.2在投影坐标系上的加法公式 求逆运算是以上公式中最为耗时的运算,且一般情况下是普通乘法运算的8倍(大素数域)或者15倍(特征 为2的域)【 .在椭圆曲线和超椭圆曲线密码体制中,我们为了避免求逆运算,经常采用一些特殊的坐标系,如投影 坐标系、Jacobian坐标系、LD坐标系等等[6].在超椭圆曲线密码体制上,出现的可以避免求逆运算的坐标系有 投影坐标系和Lange提出的N坐标系、R坐标系.我们在本节设计算法4和算法5在投影坐标系下的公式. 算法6的正确性也很好验证,只要满足 / :“3和 /Z3=v3即可.注意到算法中的D是仿射坐标系下的,也 就说有Z=I,且在计算过程中D的值一直未变.以下定理就是算法6的正确性证明. 定理2.算法6的输出结果正是算法4输出的除子类的投影坐标系上的形式. 证明:我们需要验证U3/23=U;和 /Z3= ,其中, , 和Z3是算法6的输出,而U 和 是算法4的输出.首 先验证U31/z3= 和 0/z3=u30 .由于算法6与算法4中的e21相比满足e2l/ZlZ2=“21+“ 则称算法6中的e21与 算法4中的e2l相比包含有因子z1z2.我们可以依次确定e2o,r和s3l的因子分别为z?z2,z z;和z 3 22.s3o中包含 的因子与s31相等.算法6第4步中求出Z3=Z;R.下面来验证 和 的值(f=0,1),只需将每步的变量逐步代入 即可: ・ ・ 1/z3=( 3+ (z 十 3R2))/z;=z4Rl(z1+ 2)/z + =(甜10+U20) ( 1l+ 2l+ )/ ;1+“ : ;l; 0/Z3=(U20z5R2+(R3+ ) ):(U20z5+ oI J, 21+ =U3 0. 和 o中的每一项进行处理: 分别对 ・ 首先看 。/Z3=(( 。wO/(s Z3)) =S31(“:。+“; ) ;。,其中,等式最右边是算法4的第6步里的一项; ・ I司样,(w2+R V2o)/Z3=w2+v2o. 这样,我们验证完每~项后,可以得到 =v3l/Z3和v3。 = 0/Z3. 综上,定理2得证. 个乘法. 口 Lange提出的在投影坐标系上的 上的加法公式为 49M+4S.这样,我们的公式就比之前的公式少用了4 李明等:超椭圆曲线上Montgomery标量乘的快速计算公式 2283 算法6.在投影坐标系上的Montgomery阶梯加法公式(类型II,n为奇数) Input Output Step 1 DI=[UH,Ulo,V11,VIo,zd,D2=[ 1, 0, l,g2o,2],D D2一Dl=[ ,【,0, , ,z】; D3= l+D2. Expression Compute el=r/ul mod 1/2 and e2 r/u2 mod Ul: Operations 8M+2S ZI=UI1Z2+U21ZI,z2=U2oZl+Ulo2,Z3= ,Z4= 2,z5=Z3Ulo; e21=z1,e2o=U11zl+z2Zt; r=z2e2o+Z5; 2 Compute 3=(vt+v2)e2 mod“l: W0=e21( l Z2+ lz1),Wl=e2o( oZ1+V1oz2); (Vllz2+V21Zt+ 0z1+ oZ:!)(Zte21+e2o); =10M ¥31=w2+wl+wo(Z1+UI1),¥30=Wl+U1oWo; 3 Compute =((c1+( 1+ 1)( l+ 21))c2+4u)/41: R2 ZIZ2, = 2Ri= ,12M+2S ,RI=R1R2,R3=z4Rt; R FS31,R R Z2,R =rz;; U31=zlR3+UI(z;+R3R2), U3o U2ozsRt+Uo( +R3R2); 4 Compute V3 ̄-h+(s3u2+v2)mod/13 l + : 13M Wl=U2】 + 1z2,w2=¥30(u20Z +U30z2),w3=(S3l+ 30)( l + lZ2+ 0 + oZ2); Z3 5 Tbtal R,113o (w2+V2oR )S31+WI U3o, 1 (w3+wI+W2+V21R )S31+WI U31+Z3; 2M 4S+45M Adjust: U31=U31R,U30=U3oR; 此外,对于类型III的曲线上的加法运算公式,其在投影坐标系下的算法形式列在算法7中.这个公式的计算 量也比Lange给出的公式少用了1个乘法.由于算法7与算法6在大多数步骤中是相同的,因此只需验证第3 步中U3o= ∞t即可验证算法的正确性. 算法7.在投影坐标系上的Montgomery阶梯加法公式(类型III) Input Output D1=[Ul1,Ulo,V11,Vl0,zd,D2=[【,21,U2o, 1, 0, 】,D=D2一Dl=[U1,Uo, ,Vo,z】; Ds=DI+D2. Step 1 Expression Compute el=r/uI mod/12 and e2 r/u2 mod/'ll: Operations 10M+lS ZI。UIl ̄+U21Zl,Z2 U2oZ1+U1oZ2,z3 z ; P2l_Z1,e2o=UI1ZI+Z2ZI,e11=2:1,el0=U21ZI+Z2Z2; r=z2e20+z3 UIO; 2 Compute S3=(vl+v2)e2 mod/11: W0 e21( 1Z2+ IZ1),Wl=e2o( oZl+Vao22); W2 (V1IZ2+ 1Z1+ oz1+V1oZ2)(ZIe21+e20); S31=Wz+Wl+wo(Zl+UI1),S30=WI+U1oWo; lOM 3 Compute ;=((cl+( 1+S1)(ggI1+“21))c2+4u)ld,: R2 Z12, = 2,RI=Zl2,RI=R1R2,Rs=z3R1; R FS31,R R Z2,R =rZ;; l=R3(Zm+恐 )+ , 0=q0e20R1+ ( + ); 13M+2S 4 Compute V3=-h+(ssU2+V2)mod ld3 lz+ o: l3M =U2l +c,3lZ2,w2=¥30(u20 + 0z2),w3=(s3l+s30)(【,2l + lZ2+ 0 + 0Z2); Z3=Z;R, D=(w2+V2oR )s31+w ̄U3o, l=(w3+w1+w2+ 1R )ssl+wiU3 ̄+Z3; 5 Total Adjust: I= 1 , 0= oR; 2M 4S+48M 2.3在N坐标系下的加法公式 Lange为了得到更高效的除子类运算公式,提出了N坐标系(new coordinate).在这种坐标系下,二倍运算和 Journal of Software软件学报Vo1.24,No.10,October 2013 加法运算的计算量变为34M+7S和48M+4S[ .N坐标系的形式为一个六元组[ul,Uo, ,Vo,Zl,Z2】,其对应于仿射 坐标系下的坐标值为[Ul/z?, / , /(Zl3Z ),Vo/(z?z )].当在特征为偶数的域上进行计算时,我们需要几个辅 助的变量来提高计算效率.这时,可将New坐标系上的一个点表示为[U1,Wo,VI,Zo,Z1,z2,Z1,z2,Z3,Z4],其中, z =z ,z2=z ,Z3=Z1z Z4=ZIZ3. 当然,在下面的计算中可以看到,公式中并没有用到变量z 和Z2,所以我们在实际计算时可以将这两个变量 去掉以节省空间.而为了保证算法的清晰和可读,我们在本节的推导和分析中将这两个变量保留下来.算 法中的输入[ l, , , ,1,1,1,l】不发生改变,也就是说一直有 U 和 = (i=0,1). 定理3.算法8的输出结果相对应的仿射坐标是算法4的输出. 证明:对于 3l,Z3 2,Z3 3和 34的正确性,在第4步的计算过程中已经表示了出来.下面只需验证有 “ 。=U3 /蜀, =Us。/蜀, = /( 。Z3:)和 。= /(乏。Z3:)即可,其中,“; ,“;。,V3 和 是算法4中的输出.我 们首先来确定几个中间变量中的因子.由于算法8中的 21 1lZ2l=“2l+“…则称为算法8中的e21与算法4中 的e2l相比包含有因子zllz21.我们可以依次确定e20,r和妁1的因子分别为z z2l,z13lz22l和z z2lz14z24.S30中包含的 因子与S31是相等的.算法中求出Z3l= 31,z32= 3Z2 .下面来验证 和 的值(卢0,1): ・ ・ l/zs1=(R3Y1+(R3+Z31) )/z3l=Y4R2(Yl+甜 )/z3l+U =( l0+U20) (z,11+ 2l+ 1rJ, 21+U :zf;l; 0/zsl=U2oYsR2+(R3+Z31) =(U10z5+z4 0t J, 2l+ =zf;0. 分别对 】和 o中的每一项进行处理: ・ 首先来看 o/z3 =(( 1W1)/(s3lZ32)) =¥31( 2 + ;。)“ ,等式最右边是算法4中第6步里的一项; ・ I司样,(w2+R V2o)g3l=W2+V20. 这样,我们验证完每一项后可以得到 = /( Z32)和 = 。/(z3 Z3:). 综上,定理得证. 口 算法8.在N坐标系下的Montgomery阶梯加法公式(类型II,n为奇数) Input Dt=[U1l,U10, 1,V10,Zu,Z12,Zll,ZI2,Z13,z14],D2=[ 1,U2o, I,g2o,Z21,Z22,Z2DZ22 ̄23,z24], D=D2—D1=[己^, , , ,z1,Z2,z1, ,z3,z4]; Output Ds=DI+D2. Step l Expression Compute el r/ul mod U2 and e2 r/u2 mod/'/1: Operations 8M+2S Yl U21ZlI+UI1Z21,Y2=UIOZ21+U2ozI1,Y3= ,Y4=Y;,ys=y3Ulo; e21=yt,e20 Ulle21 2Z1l; r=y2elo 5; 2 Compute (Vl+V2)e2 ood/rdl: l0M WO=e21( 1Z24+ 1214),WI=e2o(V10Z24+ 0Zt4),W2=(Vj1Z24+ IZI4+V10Z24+ ozl4)(e2Iz11+820); ¥31 ̄w2+wI+wo(UII+ZI1), 30;w1+U1oWo, 3 Compute ;=((c1+( 1+ )( l1+U21))c2+Ⅳ )/ : Z31 ¥31,z3l= 32l,9M+2S RI Z11z21,R2=Z14z23,R2=R;,R2=RIR2,R3=y4R2; Usl=Rsyl+(R3+Z31) ; Us0=U2oY5R2+(Rs+z3I)Uo; 4 Compute 兰h+(S3Z/2+V2)modU;= 1 + o: Rt rzl3,Z32=z24Rl,Z32= ,z33=Z31Z32,RI=z31R1,Z34=Z31Z33; 17M+1S W1=U21231+U31Z21,W2=S30(U20Z31+Us0Z21),W3=(SSl+SSo)(u2lZ31+U31221+U20Z31+U3oZ21); o=(w2+R1 V2o)Zsl+W1 Uso, 1=( 3+ 2+R1 1)Z3I+Wl(U31+Z31)-4-Z34; Total 4S+44M 在N坐标系下,我们设计类型III的曲线上的加法公式如算法9所示.算法9与算法8的区别在于第1步中 多计算了Pll和elo,且第3步中u30的计算发生了变化.由于有 o=( 0e2o+( 1l+“21) Uo)W ̄+“ =U30 ,而等号最 右边为算法5中的一项,所以算法9也是正确的,其输出变换为仿射坐标系后正是算法5的输出. 李明等:超椭圆曲线上Montgomery标量乘的快速计算公式 2285 算法9.在N坐标系下的Montgomery阶梯加法公式(类型III, 为奇数) Input Output D1=【 1,Ulo, l,Vlo,Z1,Z12,Zn,zt2,zt ̄,z14],D2=【U21,U2o, l, o,z2l,Z22’z2l,z22 23,z24】, D=D2一DI=[【^,L , , ,z1,Z2’zl,z2,23,z4】; D3=DI+D2. Step 1 Expression Compute el “1 mod U2 and e2 r/u2 mod//1: Operations 10M+2S Yl=U21zII+UIlZ21,Y2 Ui0z21+V20Zl1,Y3= ,Y4=Y;,Y5=Y3U10; e21 ̄Yl,e2o UIle21 2211,elI-Y z,elo U2lel1+y2221; ,一y2e10 5; 2 Compute (Vl+V2)e2 mod//1: 1OM w0=e21( 1z24+V2IZ14),WI=e2o(V10224+ oZ14),W2=(V11Z24+ 1214+V102"24+ l4)(口2lz1I+P20); ¥31=W2+WI+WO(UII+Zl1).¥30=Wl+UloWo; 3 Compute ;=((cl+( l+ 1)( ll+“21))c2+ )/ : Z31=s31,z3l= 2RI=ZIlZ21,R2=Z14z23,R2= l,,R2=RIR2,R3=y4R2; lOM+2S U31=R3Yl+(Y4R2+z31) ; 0=eIoe2oR2+(乃 +Z31) ; 4 Compute 三h+( 2+1)2)mod“;= 1 + 0: RI rZ13,Z32 zz4Ri,Z32 ,233=231Z32,R1=z31R1,234=231233; 17M+lS W1=U21Z31+U31Z21,W2=S30(U2oZ31+U3oZ21),W3 3l+ 3o)(u21231+U3IZ21+U20Z31+U30221); 13o=(w2+R1 o)13I+Wl U3o,V31=(w3+w2+RI 1)Z3I+WI(u3l+Z31)+Z34; Total 4S+47M 2.4在R坐标系下的加法公式 本文主要研究的是^2=0的情况,在文献[2]中,Lange提出了一种R坐标系,我们称其为R坐标系,以加快这 种情况下的二倍运算;但同时,加法计算会大大变慢.由于二倍计算加快的速率比加法计算变慢的速率要高,所 以最后还是得到了一种较快的计算标量乘的方法.下面我们使用本文中提出的技术来改进R坐标系下的加法 计算.在R坐标系下,一个点的坐标可以表示为[ , , , ,z,z],其相对应的仿射坐标系上的点为( /Z, /Z’ /z,Vo/0,其中,Z=Z2.具体的运算公式见算法1O和算法11. 算法10.在R坐标系下的加法公式(类型II1 Input Output Step l Di U11,U10, 1,V10,Zb21],DE=[ 1, 0, 1,V2o, D3=DI+D2. Expression Compute el=r/u1 mod//2 and e2=r/u2 mod/d1: yl U21ZI+UllZ2,Y2 UloZ2+U2oZ ̄,Y3= e21=Yl,e2o UIIe21+y2Z1; r=Y2elo 5; ,],D=D2-DI=[UI,Uo,V1,Vo,z,z]; Operations 8M+2S ,ys=Y3Ulo; Y4= 2 Compute s (Vl+v2)e2 mod//1: W0=e21(Vl1Z2+V2lZ1),W1=e2o(V10Z2+ 021),W2=(VllZ2+ 1ZI+ oZ2+ oz1)(P2101+P2o); s3I ̄W2+Wl+WO(UII+ZI),S30=W1+U10w0; 10M 3 Compute//;=((cl+( l+ 1)( l+//21))c2+“ )/ : 2= ,10M+2S R1=Z1Z2,R2=z z2,R3=R1R2,R5=y4R3,R4 RsR1; 。= 。+(心+ ) ; U3o=U20Y5R3+(R4+ ) ; 4 Compute E h+( 3”2+v2)mod”;= l + 0: R= 1, 2 l,R3=R2 ,z]=RZ;,Z3= ; W1=s31(U21231+U31Z21),W2=¥30(U20231+U302"21),W3= 31+ 30)(U2lZ31+U3IZ21+U20Z31+U30221); R4=wIR2, 0=(w2+13 o)R3+U3oR4,V31=(Wl+W3+W2+Z3 I)R3+U3IR4+z3, 18M+1S 5 l= 1 , o=U3oR; 2M Total 5S+48M 2286 Journal of Software软件学报Vo1.24,No.10,October 2013 算法l1.在R坐标系下的加法公式(类型III) Input Output Dl [uIl,Um0,V11,V10,Z1,z1],D2 [U21,U2o, 1,V2o,Zz,z2],D=D2-DI=[U1,Uo,Vl,Vo,Z,z]; D3=DI+D2. Step 1 Expression Compute CI=r/ul mod Ig2 and e2=r/u2 mod“l: Operations 8M+2S Yl U21Zl+UlIZ2,Y2 UloZ2+U2oZ1,Y3= ,Y4= ;,ys=y3Ulo; e21=yl,e2o=Utle21+y2Z1,ell=y1,elo= lell+y2Z2; ,‘=y2el0 5; 2 Compute S (vi+v2)e2 mod WO=e21(V1lZ2+ lZ1),W1=e2o(VloZ2+ oz0,W2:(Vl1Z2+ IZI+VIoZ2+ oZ1)(e21zl+e2o); ¥31= 2+wl+w0(Ull+Z1),¥30=Wl+Ua0Wo; lOM 3 Compute“;=((c1+( l+ )( 1+Ⅳ21))c2+“ )/ : = 12M+2S 2,R1=ZIZ2,R2=z z2,R3=R1R2,Rs=y4R3,R4=RsRI,R2 RIR3; U31= Yl+(R4+ )u U30=e10e20R3+(y3 2+ ) ; 4 Compute 三h+(S3U2+V2)mod甜;=V3 】 + 0: = 1, 2 I,R3=RE ,Z3=Rz;,z3= ; WI=S31( 1Z31-1-U31Z21),W2=S30(U20231+U307,21), 3 (旬l+ 3o)(U2IZ31+U3IZ21+U2OZ31+U3oz21); R4= 1 2,Z3o=(w2+Z3 o)R3+U3oR4, 1=(wI+w3+w2+Z3V2t)R3+U3iR4+z3; 18M+1S 5 Tbtal U31=U3 aR,U30=U3oR; 2M 5S+50M 对定理4的证明,也即证明了算法10的正确性. 定理4.算法10的输出结果相对应的仿射坐标是算法4的输出. 证明:通过验证下面的等式来证明: ・ ・ 1/Z3=(R5Y1+(R4+ ) )/Z3=( l0+U20) ( 11+“2l+ 1tJ, 21+U U; o/Z3=(U20Y5R3+(R4+z;)Vo)/Z3=(UlOZ5+z4 0t J, 2l+ = ; 口 ・ v3l/Z3=((w2+R4V2o)R3+W1u3oR2)/z3= 】; ・ v3o/Z3=((w3+w2+R4 1)R3+wI(u3iR2+z3)+z3)/z3= 0. 同样,对于算法11的验证也只需要验证第3步中的 0就可以了. 3算法分析和仿真 本节首先比较分析各种算法的效率,然后使用算法实现超椭圆曲线上的Montgomery阶梯算法.各个坐标系 下的加法公式的运算量列在表1中.表中的M,S和1分别表示域上的乘法、平方和求逆. Table 1 The computational complexity of Montgomery Ladder algorithm over 表1在域 上的Montgomery阶梯加法公式的运算量 可以看到.本文中提出的新的公式在投影坐标系、N坐标系和R坐标系下都比之前的公式计算速度要快. 提高幅度最大的是在类型II的曲线上,在投影坐标系和N坐标系下分别比之前的公式少用了4个乘法,在R坐 标系下少用了2个乘法和3个平方.由于在不同的实现函数库中,域上的平方和乘法计算之间的速度比值是不 同的,这样就造成新的算法运行效率提高的比率也会有所不同I2】.在一些实现中,S=0.8M,那么新的加法公式在 类型II的曲线上,在投影、N坐标系和R坐标系下分别比之前的公式快了7.7%,7.8%和7.8%.当1S=O.5M时, 本文中的公式在类型II的曲线上比之前的公式快了7.8%,8%和6.5%.当我们用正规基来表示域 上的元素时, 李明等:超椭圆曲线上Montgomery标量乘的快速计算公式 2287 一次平方计算只是一次移位操作,这样,平方计算的运算量与乘法相比可以忽略不计.这时,我们的公式在类型II 的曲线上比之前的公式快了8.2%,8.3% ̄F1 4%.本文提出的公式在类型III的曲线上的效率与之前的相比也有明 显的提高,在投影坐标系和N坐标系下分别少用了1个乘法,而在R坐标系下少用了3个平方. 我们对各个公式进行了仿真实验.最终的运算结果证明了算法的正确性,各种算法的运行时间列在了表2 中.我们的仿真平台是在Tinkpad T500(CPU P8800,DDR2 40)上,使用了NTL5.4.2和Magma online两个函数库 分别进行了实验,选择的域是 ‘ .在这两个函数库中,在特征为2的域上的乘法和平方计算之间的比值满足 1S=0.8M一0.75M.每次仿真选择100 000个随机参数,然后取运行时间的平均值. Table 2 The sumulation of algorithms of addition formula(n=255bits,Unit:ms) 表2加法公式的仿真实验结果(n=255bits,单位"ms) 已有算法[2,51 NTL Magma 类型II的曲线上 NTL Magma 类型II1的曲线上 NTL Magma 投影坐标系 N坐标系 R坐标系 1.O6 1.04 1.15 0.029 1 0.029 0 0.031 O 0.98 0.96 1.O5 0.026 2 0.026 l 0.028 8 1.04 1.02 1.09 0.028 l 0.276 0.292 本文的加法公式是为了实现超椭圆曲线上的Montgomery阶梯算法而设计的.Montgomey阶梯算法实现 r的标量乘计算,可以抵抗简单边带信道攻击.而当使用之前的常规公式时,只有“总是二倍加法”标量乘算法可以 实现这个功能.在特征为偶数的域上,投影坐标系下计算二倍除子类的运算量为38M+7S,但是,当 =0时降低为 25M+6S.这也是为什么虹:0的曲线特别适合Montgomery阶梯算法的实现.在域 上实现Montgomery阶梯 算法时,需要做254次:二倍和加法运算.如果在类型II的曲线上实现Montgomey阶梯标量乘算法,r我们将各种 坐标系下的运算量列入表3.根据文献[2],类型II的曲线上N坐标系和R坐标系下的二倍计算的运算量为 39M+6S和23M+8S.表4中是不同情况下标量乘计算的仿真结果,该结果也证明了我们的算法的正确性和有效 性.可以看到,在投影坐标系下,类型为II的超椭圆曲线上的Montgomery阶梯算法最为高效. Table 3 The computational complexity of Montgomey rLadder algorithm over F255(Type ii) 表3在域Fzss上的Montgomery阶梯算法的运算量(类型II) Table 4 The simulation of Montgomery Ladder algorithm over F255(Type II,Unit:s) 表4在域 : 上对Montgomery阶梯算法的仿真结果(类型II,单位:s) 4结论 本文研究了如何在超椭圆曲线上为Montgomery阶梯算法设计高效的除子类加法计算公式.本文通过代数 变换技术,使得超椭圆曲线上的Montgomery阶梯算法在公式层面上有了改进和提高.分析和比较结果表明,新 的公式在投影坐标系、N坐标系和R坐标系下,在类型II和类型III的曲线上,速度都有明显提高.在类型II曲 线上的提高最为明显.当域上的平方和乘法之间运算速度的比率满足1S=0.8M时,类型II的曲线上新的公式比 之前的公式快了7.7%~7.8%;当1S=0.5M时,新的公式快了6.5%~8%.当我们用正规基来表示域上的元素时,新的 公式快了4%~8.3%. 本文中提出的技术还可以与其他技术结合使用,以进一步提高公式的运行速度.比如,文献[141中将二倍和 加法结合起来,而减少乘法个数的技术.当然,椭圆曲线上出现的很多其他变换技术,比如有理变换曲线来设计 公式的技术[151,也可以拿来运用到超椭圆曲线上.至于如何应用,有待于我们进一步的研究. 2288 Journal of Software软件学报Vo1.24,No.10,October 2013 致谢 非常感谢Ali Miri教授对本文提出的建议和意见 References: 【1】Koblitz N.Hyperelliptic cryptosystems.Journal of Cryptology,1989,1:139—150.【doi:1O.1007/BF02252872】 [2] Avanzi R,Cohen H,Doche C,Frey G,Lange T,Nguyen K,Vercauteren F.Handbook of Elliptic and Hyperelliptic Curve Cryptography.Boca Raton:Chapman&Hal1.2005 旦icifent doubling on genus two curves over binary ielfds.In:Haddad H,Omicini A,Wainwright RL,Liebrock LM,eds. [3] Lange T.EfProc ofthe Selected Areas in Cryptography(SAC 2004).LNCS 3357,2005.170—181 l【doi:10.1007/978—3—540—30564—4—12] linger T,Pelzl J,Paar C.Cantor versus Harley:Optimization and analysis of explicit formulae for hyperelliptic curve [4] Wolcryptosystems.IEEE Trans.on Computers,2005,54(7):861-872l【doi:10 1 109/TC.2005.109】 ae for arithmetic on genus 2 hyperelliptic curves.Applicable Algebra in Engineering,Communication and [5】 Lange T.FormulComputing,2005,15(5):295—328.[doi:10.1007/s00200-004一Ol54・8] [6] Blake I,Seroussi G,Smart N,eds.Advances in Elliptic Curve Cryptography.London Mathematical Society 3 1 7,Cambridge University Press,2005. nstein D.Batch binary Edwards.In:Halevi S.ed.Proc.of the Advances in Cryptology CRYPTO 2009.LNCS 5677.Springer- [7] BerVerlag,2009.317-336.【doi:10.1007/978-3-642-03356—819] y Ladder for all genus 2 Curves in characteristic 2.LNCS 5 130(Arithmetic of Finite Fields),2008. [8] Duquesne S.Montgomer174—188l【doi:10.1007/978-3-540—69499-115] y addition for genus two curves.LNCS 3076(Algorithmic Number Theory),2004.309~317l【doi:10.1007/ [9] Lange T.Montgomer978—3—540—24847 723]  A,Wu YH,Zuccherato R.An elementary introduction to hyperelliptic curves.In:Proc.of the Algebraic Aspects of [10] MenezesCryptography.1998 http://cacr.uwaterloo.ca/techrepOrts/1997/corr96—19.ps Wollinger T Software and hardware implementation of hyperelliptic curve cryptosystems[Ph.D.Thesis]Bochum:Ruhr- University of Bochum,2004. [12] [13] Mumford D.Tata Lectures on Theta II.Birkh ̄.user Boston:Springer-Verlag,1 993 Cantor DG.Computing in the Jacobian ofa hyperelliptic curve.Mathematics ofComputation,1987,48:95—101. icifent explicit formulae for genus 2 hyperelliptic curves over prime fields and their implementations.In: [14] Fan XX,Gong G.EfAdams C,Miri A,Wiener M,eds.Proc.ofthe Selected Areas in Cryptography 2007.LNCS,Springer—Verlag,2007.1 55—172.【doi: 10.1007/978—3—540—77360—31 1] ein D.Lange T.Farashahi R.Binary Edwards curves.1n:Proc of the 10th Int’1 Workshop on Cryptographic Hardware and [15] BernstEmbedded Systems(CHESS 2008).LNCS 5154,2008.244—265.[doi:10.1007/978・3—540—85053—3—16] 李明(1982一),男,山东肥城人,博士,工程 师,主要研究领域为算法分析与设计,密 码学. E—mail:luaming@msn.com 朱大铭(1963一),男,博士,教授,博士生导 师,CCF高级会员,主要研究领域为算法分 析与设计,生物计算. E-mail:dmzhu@sdu.edu.cn 孔凡5E(1978一),男,博士,副教授,CCF会 员,主要研究领域为密码学,信息安全. E—mail:fanyukong@sdu.edu.en 

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

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务