搜索
您的当前位置:首页正文

椭圆曲线密码体制的研究与实现

来源:尚车旅游网
西安电子科技大学硕士学位论文

椭圆曲线密码体制的研究与实现

姓名:李德庆申请学位级别:硕士专业:电路与系统指导教师:李小平

20080101

摘要摘要加密算法是网络信息安全的核心,根据已有资料分析,利用FPGA实现的最优正规基表示下的二进制有限域上的椭圆曲线密码体制具有最高的安全强度和较快的处理速度,而椭圆曲线密码体制的FPGA实现,主要面临以下几个问题:1.最优正规基下的有限域元素乘法矩阵的构造,以及乘法运算的快速实现。2.最优正规基下的有限域元素求逆运算算法的优化与实现。3.在椭圆曲线运算层,如何减少或者避免有限域元素上的求逆运算。4.针对椭圆曲线运算层上的标量乘运算,如何减少点加运算和倍点运算的次数。从以上四个问题出发,本文在分析和研究椭圆曲线密码体制的最新研究成果的基础上,主要对基于FPGA的椭圆曲线加密算法的实现以及优化设计进行了研究,作者取得的主要研究成果有:1.给出I型和Ⅱ型最优正规基下的并行输出结构的乘法矩阵的运算定理,完成了串并结合结构的通用乘法器的设计。2.在分析有限域求逆运算和正规基性质的基础上,给出了一种简化的求逆运算算法及实现,其具有和OIA(优化求逆算法)同样的运算复杂度。3.在椭圆曲线运算层的标量乘运算运行过程中,对椭圆曲线上的点进行坐标变换,只需要在运算开始的时候做简单的坐标转换,计算结束后用1次求逆和2次乘法还原成仿射坐标即可,虽然增加了乘法运算的次数,但是大大减少了运算中的求逆运算次数。4.在椭圆曲线运算层,对标量乘运算的参数进行有符号非相邻表示型(NAF)编码,使标量乘运算具有最少的点加运算。在对有限域运算和椭圆曲线标量乘运算优化的基础上,本设计达到了预期的目标,测试结果表明,当研=191的时候,在50M的工作频率下,平均每次标量乘运算的时间为11I璐。该设计可以支持册<232的GF(2”)上任意可变曲线的椭圆曲线加密算法,是一种数据位宽度可调的快速椭圆曲线密码运算核的FPGA实现。关键词:椭圆曲线密码体制有限域最优正规基乘法器标量乘AbstractA6s臼acfWimtllerapiddeVel叩memTheoftlleiⅡtemet,iIlf.0衄ationexcllangebecomessecudtyisgivenmoreisa趾dmo陀att蜘tiolLdi伍cunpmblemmetIlod,toin|’o加a吐onla唱er锄dla唱er.Itmeetthedemandwitllthe仃aditioIlalsoftwarecIlcryption∞thehardwa∞ilIlplementation印peared.Ascunremwpublic-kcycryptography,elli讲iclengmofthecrypto鲫11yh船someexceIlent砌butcs:shortcryptography.ke)r,f弧speedof虹坨proce鼹,hi出levelof也esecuri劬Anof也esethepublic-keyonmakeit觚idealchoice南rtheapplication.m自ct,itisoneof纯m‘lardsofn坞北斌gemra矗ontoInmepaper,baSedresearchoftllethegene删硫i∞觚danal”icalstIldytothepre矧1tECCisElli砸cCur、,eCry舯)graphy(ECC),Ⅱ地bluem印ofthestlldytllear主t}lme6cinferences季Ventocomplete趾抽dep曲d鼬tsystem.Fifst'weintllefinitefield.iIlwhich辩vemltllcoreI璐锄dusefIllop啪tionoftl岵ECC戤elli—ccuⅣe晔蚴led.Sccondly’缸tha妇H饿einlpl髓黝tationofthecr),pt0铲aphyaritllmeticistllehotsplotdirectionintheECCrc∞arcll,∞thellafdwareimp】ementationsoftlle蠡啦tcfieldol,crationsa犯西venwitlloptilllal∞姗alb猫is,medesigllof岫ECCcorcmOdmes∽compIet甜,wllichmllldeswhichⅡleontl惦dlipticc哪escalarmultiplication枷chco脚【binesNAFcode、vimamendedresultarithIIlctic.Finally,theofsiIIlulalion锄dapplicationare西vcn,inconclusj∞s啪marizesmatECC∞al盯multiplicationmodlllesbasedaIIopt砌∞mlalKeyword:ellipticscalarb嬲escompletescomputingnoeds矗mellmsat50MHZ肌qucIlcyof血cworkin舒(2州).curyecryptographyGalois6e埘optimm舯瑚村basismultiphcati蛐mat血ofmultipHcation西安电子科技大学学位论文独创性(或创新性)声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人签名:公逸度日期型:!:兰西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。(保密的论文在解密后遵守此规定)本学位论文属于保密,在一年解密后适用本授权书。本人签名:盔丝丞导师签名:日期wg一/・Ⅵ蕉止垒日期主!墨:f:丝第一章绪论第一章绪论椭圆曲线密码体制的研究由来已久,各种算法和实现方式也层出不穷,本文立足于最优正规基表示下的二进制有限域,利用FPGA来实现其运算算法。在整个椭圆曲线密码体制的硬件实现中,我们均采用硬件描述语言Ⅵ:filog翔)L语言作为算法实现描述语言,整个设计过程均运行在Altem公司开发的QuartIlsⅡ7.1平台上,设计选用的是Altera公司的CycIo∞Ⅱ系列器件EP2C35F484c8N。1.1选题的意义在网络传输中,加密技术是一种效率高而又灵活的安全手段,随着通讯网络的发展和信息交换的需要,为了达到一定的安全要求,大多数的公钥密码体制的密钥也越来越大,传统利用软件来实现的加密/解密方式已经很难满足要求,随着硬件集成电路的发展和新理论的出现,采用硬件实现的运算模块随之诞生。目前,椭圆曲线密码体制由于其抗攻击能力强,计算量小,处理速度快等优势,有望成为下一代公钥密码体制的标准,采用FPGA快速实现椭圆曲线密码体制是当前的研究热点之一。针对素域和多项式表示下的二进制有限域上的椭圆曲线密码体制芯片,成都三O集团和清华微电子研究所已经有成熟的解决方案。近年来,最优正规基得到了大量的研究,其具有高效的乘法运算算法,具体可见参考文献【l】,为了紧跟世界的趋势,缩短与国外先进技术的差距,把正规基下的二进制有限域作为椭圆曲线密码体制的实现的有限域,构造我们的椭圆曲线密码芯片产权核,并在此基础上建立高效,参数控制数据宽度的椭圆曲线密码体制,对于我国经济和国防事业的发展具有很重要的意义。1.2ECC研究现状在1985年,KDblitz口】和Mille一3J分别提出了椭圆曲线密码体制之后,由于在已知的公钥密码体制中,椭圆曲线密码体制具有每bit最高强度的安全性,最快的处理速度和最低的开销,目前已成为信息传输中安全性研究的热点方向14】。第六届国际密码学会议对应用于公钥密码系统的加密算法推荐了两种:基于大整数因子分解问题(IFP)的RSA算法和基于椭圆曲线上离散对数计算问题(ECDLP)的ECC算法。RSA算法的特点之一是数学原理简单、在工程应用中比椭圆曲线密码体制的研究与实现较易于实现,但它的单位安全强度相对较低。目前用国际上公认的对于RSA算法最有效的攻击方法一般数域筛0婚s)方法去破译和攻击RSA算法,它的破译或求解难度是亚指数级别的。Ecc算法的数学理论非常深奥和复杂,在工程应用中比较难于实现,但它的单位安全强度相对较高。用国际上公认的对于Ecc算法最有效的攻击方法Pollardrho方法去破译和攻击ECC算法,它的破译或求解难度基本上是指数级别的。正是由于RsA算法和EcC算法这一明显不同,使得ECc算法的单位安全强度高于RsA算法,也就是说,要达到同样的安全强度,EcC算法所需的密钥长度远比RSA算法低(见表1)。这就有效地解决了为了提高安全强度必须增加密钥长度所带来的工程实现难度的问题。(见表2)表1.RsA和Ecc安全密钥长度的比较攻破时间RS^/DSAⅢ口婢l酽10搴101l窑钥长度5127石81024204821000Ecc密钥长度106132160210600RSA/ECC窑钥长度比5:l6:lT:l10:l35:li庐107B表2.RSA和EcC速度的比较功能密钥对生成签名认证Diffie一一Hell孤2mSecurityBuilder1.2丑S舡咂3.Di63位E0c(IL5)3.8l,024位RsA(M,4,TD8.322B.42.1(ECNRA)3.O(ECDSA)9.9(ECNRA)10.T(ECDSA)7.3l,65哇.012.T密钥交换显然,ECC具有很大的技术优势:●抗攻击能力强ECC和其它几种公钥系统相比,其抗攻击性具有绝对的优势,具有单位比特最高强度的安全性。如160bitECC与1024bitRSA、DSA有相同的安全强度。而2lObitECC则与2048bitRsA、DSA具有相同的安全强度・计算量小,处理速度快虽然在RSA中可以通过选取较小的公钥(可以小到3)的方法提高公钥处理速度,即提高加密和签名验证的速度,使其在加密和签名验证速度上与ECC有可第一章绪论比性,但在私钥的处理速度上(解密和签名),ECC远比RSA、DSA快得多。因此EcC总的速度比RSA、DSA要快得多,在相同的安全强度下,我们用160bitECC进行加解密或数字签名要比用1024bitRsA、DSA要快大约10倍。●密钥尺寸小和系统参数小Ecc的密钥尺寸和系统参数与RSA、DsA相比要小得多,意味着它所占的存贮空间要小得多。●带宽要求低当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时EcC带宽要求却低得多。而公钥加密系统多用于短消息,例如用于数字签名和用于对对称系统的会话密钥传递。EcC的特性使它在快速加密、密钥交换、身份认证、数字签名、移动通信、智能卡的安全保密等领域,具有广阔的市场前景。在椭圆曲线密码体制的标准化方面,IEEE、ANsI、Is0、IETF、ATM等都做了大量的工作,他们所开发的有关椭圆曲线密码体制标准的文档有:IEEEP1363a、ANSIX9.62X9.63、P1363ISo/IECl4888等。2003年5月12日中国颁布的无线局域网国家标准GBl5629.11中,包含了全新的wAPI(wLANAumclldcali∞锄dPrivacyIn觚加lm鹏)安全机制,能为用户的WLAN系统提供全面可靠的安全保护。这种安全机制由WAI和、)l,PI两部分组成,分别实现对用户身份的鉴别和对传输的数据加密。wAI采用了公开密钥密码体制,利用认证证书来对wLAN系统中的用户和A_P进行认证。证书里面包含有证书颁发者(ASU)的公钥和签名以及证书持有者的公钥和签名,这里的签名系统采用的就是椭圆曲线密码体制算法。从实现的角度来看椭圆曲线密码体制,则无论硬件实现还是软件实现,其总体设计的差异性不大。椭圆曲线密码体制的FPGA技术实现可以分为五个层次,见图1.1:有限域运算层、椭圆曲线运算层、密码运算层、接口层和密码体制应用层。其中有限域运算层是最基础的,而接口层和应用层是最接近用户的。4椭圆曲线密码体制的研究与实现图1.1.椭圆曲线密码系统结构层次图有限域的运算层主要提供根据数论提供的有限域运算法则进行的计算,根据我们设计的需要,由于选择的是基于oNB的有限域,所以主要包括有限域元素的加法运算、平方运算、乘法运算、求逆运算。在某些特殊的情况下,因为求逆运算是复杂的运算,为了避免求逆运算,在一些特殊的地方还加入了坐标平面的映射转换。运算层的实现效率将对整个椭圆曲线密码体制的运行效率起决定性作用,提供了所有上层运算的基本模块。因此有限域运算层的编程工作是算法实现的核心部分,也是基础部分,同时也是最艰巨的部分。椭圆曲线运算层在本设计中主要包括三个基本的运算模块:第一是椭圆曲线上不同点的加运算,即点加;第二是椭圆曲线上的倍点运算:第三部分是舻运算的优化。舻的直接关系着整个椭圆曲线的运行效率,所以对舻运算的优化将是我们工作的重点。密码运算层是为了支持公钥密码系统,通常提供的五种操作:生成密钥对、加密、解密、签名和验证签名。接口层的主要负责控制数据的输入输出,比如32位的输入数据转化为可以直接处理的所位数据,把处理好的m位数据并行串出,存储加密系统的基本参数,包括基点、私钥、椭圆曲线、对方的公钥、以及选择椭圆曲线密码系统的工作方式,控制群运算等。应用层的主要功能是根据接口层提供的下层服务,可以是软件模块,也可以是硬件模块,但是在通常的情况下,一般采用软件来实现。考虑到本项目的主要目标是为了最大可能的优化和提升椭圆曲线密码体制核心算法的性能,所以接口层和应用层并不是本设计的重点所在,这里只是简单做一个说明。椭圆曲线密码体制特别适合于硬件的实现,最早采用硬件实现椭圆曲线密码体制的报道见于文献【51。文献【5】构造了一个基于GF(2”’)的乘法运算的VLSI芯片,第一章绪论在此基础上利用一个可编程控制器实现了椭圆曲线密码体制芯片。利用该芯片,加密速度可以达到40kb,S,换算为签名的速度大约为130次每秒。2000年,文献16】介绍了一个定义在GF(2“3)上的KDblitz曲线,采用了FPGA和ASIC两种实现方式,并给出了其仿真结果。在O.25啪的CMOS工艺下,ASIC芯片的规模为16万门电路,工作频率可以达到66MHZ。利用这样的一个芯片,完成一次标量乘运算大概需要1.1ms。2000年,文献【7】介绍了对定义在GF(21”)上的椭圆曲线采用Xili舣xCV400EFPGA芯片实现的结果,在这个实现中,芯片的主要工作频率可以到达76.7MHz,在最高工作频率下,完成一次标量乘运算需要O.2lIm。2001年,Motorola公司推出了一款多功能的安全处理器,型号为MPcl80。这是一款功能上几乎做到了包罗万象的芯片,只要是为了实现网络安全芯片而设计的。该芯片具有实现DES、3DES、RC4、DM4、MD5、S姒.1、RSA、ECC等算法功能。关于椭圆曲线密码体制部分,MPCI80芯片可以同时兼容素数域曲线和特征值为2的域的曲线。对于素域的情况下,芯片只要求定义曲线的素域内元素的是一个规模在“比特到512比特之间的素数即可。对于特征值为2的域的情况,也只要求定义曲线的有限域的长度在64比特到512比特之间。对于以上两种情况下的椭圆曲线,芯片没有提供任何完整的算法功能或者密码协议的实现,只是提供了标量乘所必须的两种椭圆曲线运算层上的运算,即计算椭圆曲线上点加和计算倍点的功能嘲。2003年文献【1】介绍了定义在GF(2“),m≤256上的任意椭圆曲线密码体制的FPGA实现。其采用微处理器模式,消耗了20,068个ALuT和6,321个FF,工作时钟频率为66.4MHZ,当正常工作的时候,对于采用定义在GF(2懈)上的NlsT所推荐的椭圆曲线,每秒可以完成6955次点乘运算,在一般曲线的情况下,每秒可以完成3308个点乘运算。我国的密码芯片的设计和生产还远远滞后于网络发展的需求,特别是在高速密码芯片方面与国外先进水平还有十分明显的差距。国内对椭圆曲线密码体制的芯片集成的研究起步较晚,但是发展十分迅速,目前已经有正式的产品面世。2004年,上海微科集成电路有限公司宣布开发成功的Rs~ECC二合一密码算法协处理器芯片,该芯片最多可以完成256比特的椭圆曲线密码体制运算,每秒至少可以完成100次点乘运算。2006年,清华大学微电子研究所召开了“高速椭圆曲线密码THEcc/233・100”专用:签片技术成果鉴定会。THECC/233一loo芯片实现GF(22”)的基于K一233曲线的椭圆曲线密码(ECC)算法,具有ECC数字签名的产生、验证、密钥对生成和多倍点运算等四种功能。该芯片采用O.18微米CMoS工艺制造,电路规模12万等效门,面积2.35mm+2.35mm.经测试表明,芯片最高工作频率可达140MHz,在6椭圆曲线密码体制的研究与实现lOOMHz工作频率条件下,每秒能够完成数字签名2950次、签名验证1680次,基本达到同类国际先进水平。2007年,成都三。嘉微电子有限责任公司的ECC数字签名验证芯片投放市场。该芯片采用O.18啪工艺AsIC实现,支持192位到320位素域椭圆曲线算法,256位签名速度达到每秒1300次,验证速度为650次每秒,基本代表国内素域上椭圆曲线密码体制的最高水平。在椭圆曲线密码体制的FPGA实现中,有限域的选择是一个关键的问题,从上面已经出现在市场上的芯片来看,基于素域和多项式基下的二进制域的实现是比较多的。由于其数据表示固有的性质,素域结构简单,元素的表达也比较方便,在其上也有很多比较成熟的算法,比较适合软件实现。在这样的域中,主要问题通常是模素数的大数运算,对于非特殊形式的素数P,求zmodP的计算是基本运算单元中最费时的部分,人们以原始Montg涨ry模乘的算法为基础研究了多种不同的改进算法。而在有限域6F(2”)中,元素都是一定长度的O和l的比特串,特别符合硬件中对元素的表示,并且其运算只涉及移位和按位的模2运算,所以从方便硬件实现的角度来看,二进制域GF(2”)是最有吸引力的。多项式基下的二进制域,域元素平方运算极其复杂,但是在系统的实现中,域元素的平方运算又是最频繁的运算,这在一定程度上降低了椭圆曲线密码体制运行的效率。对于正整数所,有限域GF(2”)就像上面所说的,和多项式基一样,可以根据算法2.1进行判断是否存在着最优正规基【9】【10l【11】(oNB),如果存在,则当采用最优正规基来表示域元素的时候,虽然不如多项式基那么直观,但是在实际工作中,可以充分地利用移位运算。基于0NB表示法的域元素在执行平方运算时高效,仅需对表示元素的矢量进行循环移位。在幂运算方面,m懵表示法也比多项式表示法更加有效,其求逆运算存在优化算法,虽然其乘法运算比多项式表示法复杂,但是如果我们先计算出其乘法矩阵,则问题也迎刃而解了。因此,我们采用基于最优正规基(0NB)的二进制有限域来实现椭圆曲线密码体制,使用正规基表示上元素的相应运算算法较好的综述文章,请参见文献【121。在椭圆曲线运算层,根据椭圆曲线运算法则,不管是点加运算还是倍点运算,都需要至少一个求逆运算,而在正规基表示下的域元素,虽然存在优化求逆算法,求逆运算仍然是比较消耗时间资源的运算,因此避免求逆运算或者减少求逆运算的次数也是我们要考虑的一个问题。在椭圆曲线密码系统中,最耗时和最频繁的操作就是计算护,椭圆曲线标量乘的运算可以分解为点加运算和倍点运算,在参数一定的情况下,减少倍点运算或者点加运算的次数,也可以提高整个系统的运行效率。第一章绪论7可见,在最优正规基表示下的二进制有限域上,构建一个优化的椭圆曲线密码体制系统,主要存在以下几个问题:1.最优正规基下的有限域元素乘法矩阵的构造,以及域元素乘法运算的快速实现。2.最优正规基下的有限域元素求逆运算的优化域实现。3.在椭圆曲线运算层,如何减少或者避免有限域元素上的求逆运算。4.针对椭圆曲线运算层上的标量乘运算,如何减少点加运算和倍点运算的次数。针对以上几个问题,也有相关的一些资料出现,但是据目前得到的资料分析,国内还没有单位实现完整的基于正规基下的椭圆曲线密码体制的报道。文献【4l】提供了基于正规基的一种乘法器的实现方式,此方法虽然额外占用了很多逻辑单元和寄存器单元,但是相比较RRM0乘法器来说,仍然具有最小的空间复杂度。文献m】【431给出了降低乘法器的空间复杂度的一种方法,并在此基础上给出了正规基上的有限域的运算的基本运算方法,并给出了I型最优正规基的乘法矩阵的一种构造方法。文献D41给出了有限域上元素的一种求逆运算方法,即优化求逆算法,并把求逆运算转换为乘法运算,使其具有最少的乘法次数。文献Ⅲ】针对椭圆曲线运算层提出了一种优化的算法,在预先计算倍点的情况下,通过降低点加运算的次数来提高运行的效率,在这种算法下,可以比直接运算快90%。尽管如此,但是从实现的角度上来讲,并没有唯一确定的最优算法可以实现系统,我们只能从运算层次上分别对其进行优化,以求获取我们预期的性能。1.3论文的主要工作和论文结构本论文在着眼于椭圆曲线密码体制的FPGA实现,在吸取前人经验的基础上,提出一个可行的完整的实现方案,根据提出的方案,进行系统的理论分析,应用设计,并采用FPGA实现,可以为椭圆曲线密码体制的实现提供有效的方案模板。本论文针对最优正规基表示的GF(2”)上的椭圆曲线密码体制做了以下研究工作:第一,针对第一类型和第二类型最优正规基表示的域元素,给出了乘法矩阵的几种计算方法。第二,对基于最优正规基表示的域元素进行研究,设计了一种通用的,串并结构皆可的乘法器,能够完成不同带宽下的乘法运算。第三,针对求逆运算器,比较分析了两种不同的设计结构,并给出了其理论分8椭圆曲线密码体制的研究与实现析与性能比较。第四,针对椭圆曲线上的点,采用不同的坐标系,在计算点加运算和倍点运算中,减少了求逆运算的次数。第五,对定义在GF(2”)上的椭圆曲线密码体制,采用修正算法对标量参数进行有符号的NAF编码,使之拥有最少的非零位,在一定程度上减少了点加运算的次数,从而提高整个系统的运行效率。论文是按照以下顺序组织的:第一章绪论。给出了进行椭圆曲线密码研究的意义,以及对椭圆曲线密码体制研究现状做了简要的说明,给出了椭圆曲线密码体制的总体设计,以及在设计中面临的问题,最后针对问题给出了可行的解决方案。第二章介绍了实现椭圆曲线密码体制的理论基础,包括有限域运算的基本知识和运算法财,椭圆曲线层的基本概念和基于三种不同的域上的运算法则。第三章详细阐述了有限域运算的四种基本运算,给出了优化的算法,硬件模块的结构以及性能分析。第四章对椭圆曲线运算层进行分析,把椭圆曲线上的点映射到LD仿射坐标下,进行运算以减少求逆运算的次数,在点加运算和倍点运算的基础上,采用NAF编码来标量乘运算过程中点加运算的次数来提高标量乘运算的效率。第五章对设计的模块进行仿真验证,给出了一个应用实例。第六章对本文进行总结,并对今后的工作进行了展望。第二章ECC理论基础9第二章Ecc理论基础有限域的运算和椭圆曲线上点的运算是椭圆曲线密码体制实现的数学基础。为了论文的完整性,本章介绍了群、域、有限域、椭圆曲线的概念,给出其相应的运算法则,并对椭圆曲线加密体制进行必要的说明。2.1有限域2.1.1有限域定义2.1设G是一个具有代数运算“・”的非空集合,并且满足:(1)结合律。即对任意口,6,c∈G,有(口・厶)・c=4・(6・0;(2)G中有元素P,使得对任意4∈G,有口・e=P・口;(3)对G中的任意口∈G,有元素6∈G,使得口.6=6.口=P,则称G关于运算“・”构成一个群,记作(G,.)。在不致引起歧义的情况下,也称G为群。如果群G的元素的个数有限,则称为有限群,否则称为无限群。当群G为有限群的时,如果群G含有疗个元素,则称刀为群G的阶,记作IGI=刀。定义2.2定义2.3如果群G的运算“・”还满足交换律,即对任意口,6∈G,有口・6=6・口,则称G为一个交换群,或阿贝尔(Abel)群。域由一个集合F和两种运算共同组成,这两种运算分别为加法(用。表示)和乘法(用固表示),并且满足下列算术特性:i(F,o)对于加法运算构成加法交换群,单位元用O表示。ii(F、{O),o)对于乘法运算构成乘法交换群,单位元用l表示。iii分配率成立:对于所有的口,6,c∈F,都有(口06)oc=00c)o(6圆c)。若集合F是有限集合,则称F为有限域,由于它首先由E.伽罗华所发现,因而又被称为伽罗华域(GaloisField)。有限域GF(矿)可以看作域GF(口)上的一个向量空间。其向量是域GF(g”)的元素,标量是域GF(g)的元素,在向量的加法运算就是域GF(g卅)的加法运算,标量域向量的乘法是域GF(g)的元素与域凹(g”)的元素在域卯(g”)上的乘法运算。这个向量空间的维数是所,并有很多基底(简称为基)。10椭圆曲线密码体制的研究与实现2.1.2素域有限域的元素的个数称为有限域的阶。存在一个q阶的有限域F,当且仅当g是一个素数p的幂,即口=矿,其中p是一个素数并称之为域F的特征,一是一个正整数。当疗=1时,则域F就称为素域,否则称为扩域。定义2.4设P是一个素数,以P为模,则模P的全体余数的集合{O,1,2,…,尸一1)P表示P除x所得到的余数,,O≤,≤P—l,并关于模P的加法和乘法构成一个P阶有限域,并用符号砟表示。我们称P为耳的模。对于任意的整数x,xmod称这样的运算为求模尸的剩余。例2.1(素域%)昂的元素{O,1,…,28}。下面是域%的算术运算的例子【l”。29=8。mod29=26。1.加法运算:17+20=8,因为37mod2.减法运算:17—20=26,因为一33.乘法运算:17×20=2l,因为3404.求逆运算:17一=12,因为17×12mod29=2l。mod29=l。2.1.3基于多项式基的二进制有限域定义2.5阶为2”的有限域称为二进制域或特征为2的有限域,其中雄≥2。在采用多项式基表示二进制有限域的时候,有限域GF(2”)的元素是次数最多为n—1次的二进制多项式(多项式的系数取自E={o,1}),即对于任意口∈GF(2”):口={chx”_1+%_2矿-2+…+口2x2+qx+40:q∈{O,1))可以将口∈GF(2”)表示为长度为”的比特串(%-1吒一2…啦印%)。选择一个二进制域上的欲既约多项式厂(工)(对于任意的胁这样的多项式一定存在,并且可以有效产生)。,(x)的既约性意味着,(∞不可以被分解为次数低于月的二进制域上的多项式的乘积。例如:工2+x+1是2次既约多项式,x4+x+1是4次既约多项式。对于GF(2)上的任意m次既约多项式,都能够除尽x,。+l,例如2次既约多项式能够除尽矿+l,3次既约多项式能够除尽,+1等等。假设口=(口。巳一:…啦q口0)和6=(%一。阮一:…626160),则下面给出使用多项式基表示的域元素的运算法则。加法运算c=口06=(巳-1矗一2…岛qco),q=(q+6j)mod即域元素的加法即为按对应位进行异或运算。乘法运算c=口固6=(6一I厶一2…乞qco),其中2,f=O,1,…,玎一l。第二章ECc理论基础c(力=厶一l,一1+q一2,一2+・・・+乞工2+clx+co是(%-l】广1+%-2x’卜2+…+呸J2+qx+%)(%一I工”一1+q一2x”一2+…+口2x2+qx+%)模既约多项式/(力的余式。求逆运算因为二进制有限域构成了一个循环乘法群,所以域内一定存在非零的生成元g,有限域内其他的元素均可以表示为g的幂的形式,4∈GF(2”),存在某个正整数膏,满足口=gt,则口-l=g(4)血od(r“。(2.1)例2.2下面给出GF(24)运算的例子【14lGF(24)共有16个元素:(oooO),(o001),(0010),(0011),(0loo),(0101),(0110),(0111),(1000),(1001),(1010),(1011),(1100),(1101),(1110),(1111)。其既约多项式为,(x)=,+x+l。1.加法运算:(0110)+(0101)=(0011)。2.乘法运算:(1101)(1001)=(x3+x2+1)(X3+1)r∞d取x)=x3+x2+x+l=(1111)。3.求逆运算:显然g=(00lO)是有限域的一个生成元,则有go=(O001),91=(0010),92=(0100),93=(1000),94=(00l1),95=(0110),96=(1lOO),97=(10l1),g。=(0101),99=(1010),910=(01l1),F1=(11lo),912=(11l1),913=(1101),914=(1001),915=(0001)。则g-7=g‘-7’血0d‘r.1’=98。要验证这个公式,可以采用乘法:占7固98=(1011)(0101)=(∥+工+1)(工2+1)mod,(功=1=(o001),可见结果是完全正确的。在二进制有限域上,可以充分移位运算,比较适合硬件实现。在二进制有限域上进行乘法运算的时候,多项式基相对于正规基来说表示简单,但是运算的速度慢,并且在该域上进行乘方运算很复杂。而采用正规基可以显著提高有限域运椭圆曲线密码体制的研究与实现算的效率。2.1.4基于正规基的二进制有限域对于一个GF(2)上的脚阶不可约多项式厂@)。如果在模厂(力的条件下,由向量(,~,广-2,…,,2,,,矿)到向量(y∥,,∥,…,广2,,2‘,,2。)的转移矩阵是可逆的,那么称,(x)为正规多项式(NomlalPolynonlial)。对于,∈GF(2”),如果它有如下形式的基:(,,∥,,∥,…,广2,广‘,尸),则6F(2“)在GF(2)上的基被称为正规基。对于每个有限域GF(2”),都存在正规基,但是不一定存在oNB。当所>l,且埘不能被8整除时,可令r=1(I型)或者丁=2(II型),根据I髓E1363可以得到检验有限域GF(24)是否存在oNB的算法2.1【“,表2.1列出了1000以内,所有存在I型或者Ⅱ型的ONB的域。算法2.1:正规基是否存在检验算法1.P=砌+l2.若尸不是素数,在不存在ONB3.求七,使2‘;lmodP4.|ll=砌/j}5.计算d=GCD(而,m)表2.16.若d=1,则存在0NB,否则不存在0NB。肌≤lOOO时,存在∞旧的珊值第二章EcC理论基础定理2.1㈣假设m+1是一个素数,2是模聊+1的一个元根,则GF(2)上的历个非单位元的(m+1)次单位根是线性无关的,且组成GF(2“)到GF(2)的一组最优正规基,记Ⅳ={∥I扛o,l,…,聊一1}={∥I_,=l,2,…,肌},其中口是一个(肌+1)次本原单位根,称Ⅳ是GF(2”)到GF(2)的一组I型最优正规基。定理2.2【16l如果2埘+l=p是一个素数,且下面两个条件之一成立:・2是模_p原根;・p;3(mod4),且2模p的次数为肌,则y=∥+∥-1生成一个GF(2”)到GF(2)的一组最优正规基,其中∥是(2研+1)次本原单位根。记作Ⅳ={,一,…,,,’,尸}={∥+∥一,…,∥2+∥“,∥+∥一,},称Ⅳ是GF(2”)到6F(2)的一组II型最优正规基。设有限域GF(2”)的oNB为(y∥,…,y’,尸),,,∈GF(2“),域元素口=(%-l,%。…,q,口o)和域元素6=(吒。,k-2,…,6l,60)・则口的oNB表示式:口=∑n,尸,6的oNB表示式:6=∑岛y,j=Of=o■—1加法运算c=口+6=∑(q+包)27,其中q+包为取异或运算。lIO平方运算在正规基下,平方运算为域元素对应的比特串循环左移一位的结果,开方运算为循环右移一位的结果。即:口2=(4,2,%-3,…,q,口0,%-1)。乘法运算对于乘法法则由一个坍×埘的矩阵M来表征的。乘法矩阵的定义:”∥∥∥M=山‰‰‰蜘‰‰‰蜘‰‰‰蜘‰‰‰…∥竹矿矿户p”廖群英在论文中指出:在有限域的乘法运算中,计算正规基的乘法表T是快速实现有限域上的椭圆曲线密码体制重要的一环,可以根据乘法表唯一地确定乘法矩阵。下面分别给出求取I型0NB和II型oNB乘法表的运算定理:定理2.3【16】:设Ⅳ={∥ff-O,1,…,小一1)={口,口2,…,矿)(其中口是m+1次本原单位根)为F到E上的一组I型oNB,r=(f。)为其乘法表,则当,=0,1,…,加一1时,有14椭圆曲线密码体制的研究与实现f。=一l;i√(2-2)当f=o,l,…,册一1,且f≠罢时,有铲怯翻名舞¨D’定理2.4‘161型最优正规基,r=纯.,)为其乘法表,则弦,,:设Ⅳ={,+厂1,,2+,-2,…,广+y一”)为GF(2”)到GF(2)上的一组II幻=怯毓:’h,:{:,萄硼‘1或者!二妇(删2m+1)'k-1。一10,否则;侩4,(2_5)u’)’础=l,2,…炉2时,她,={L靴k《2’嚣∽斛耽(2-6)根据求出的乘法表,我们可以轻易获取基于ONB下的乘法矩阵【171。对于口=(%一,%:,…,吒,q,%),c=(?。_l,%一2,%-3,…,巳,q,co)。6=蛾..,k:,…,%,岛,钆)∈叩(2”)结果为在实际的运算中,把口循环右移七比特:q=(q十吼-2,…,40,%%-2…,吒),6循环右移七比特:丸=@..,瓯。…,60,吒一.屯。…,瓯),计算:q=吒慨7从而得到乘法的结果。(2.J7)求逆运算域中的任何一个元素(O除外)有且只有一个逆元。给定域中的一个元素口,那么一定存在一个元素6,满足口06=l,那么6就是4的逆元。由于口=口r,所以一:口F:什一:矿:,“+一一=庐=兀一=口2+2~2’一一可见乘法是制约求逆运算的主要因素。(2.8)2.1.5多项式基与正规基的关系Ⅲ一】设/(x)=,+∑,一是GF(2)上次数为所的既约多项式,把厂(x)作为约减多项式的有限域GF(砂)可以表述为:第二章Ecc理论基础GF(2”)=∑q一,其中q∈GF(2)Jlo设S={‰-l,‰-2,…,^,%}是GF(2”)在GF(2)上的一组基,如果存在∥∈G.F(2”),满足量=∥。,o≤f≤肌一l,则称s为一组多项式基。设Ⅳ={乃_l,厶-2,…,^,凡)是GF(2“)在GF(2)上的一组基,如果存在,∈GF(2”),满足^=y2,O≤,s所一l,则称Ⅳ为一组正规基。根据定理2.2,II型最优正规基与多项式基有如下的转换形式。因为,=芦+矿1,且∥是(2J,l+1)次本原单位根,有,r=(∥+∥一1)r=∥r+∥掣=∥’+∥一,O<r<p=2研+1,2’=f(modp)当m+1≤rs2m,可以用(p—f)代替f,从而,得到下面的定理。定理2.5【1引【191两个基集合朋’={∥+∥一,∥2+∥_2,…,∥∥+∥-2“)和Ⅳ={∥+∥1,∥2+∥-2,…,夕“+∥”)是等价的。假设口关于基M和Ⅳ的表示分别为(%。,…,呸,q,嘞)和(吒-.,…,岛,岛,%),则根据定理2.5和∥2”1=l,可以得到口,和岛之间的关系口,=6i,其中口01:。I七(七∈【l,m】)【(2埘+1)一七||}∈[所+1,2,"】(2-9)后=2”1(n10d2m+1)O=l,2,…,m)利用式(2-9)可以实现II型ONB域元素在正规基和多项式基之间的相互转换。2.2椭圆曲线理论基础椭圆曲线口11∞】123】【24】【251的研究来自于椭圆积分:的求解,其中E(功是x的三次多项式或者四次多项式,这样的积分不能用初等函数来表达,从而引出了椭圆曲线函数。2.2.1基本概念如果每个系数在K上的玎阶多项式恰有打个K中的根,则称域K是代数封闭的。对于每一个域K,都存在一个代数封闭的域乏,使K包含于i中。16椭圆曲线密码体制的研究与实现定义2.6设K是一个给定的域,i是它的代数闭域,K上的三元齐次方程o一’(爿,y,z)=OE:),2Z+口1习Z+鸭)Z2=x3+吒x2Z+吼】.Z2+%Z3,其中q,啦,吩,嗍,%∈K,称为代数封闭域上的wbiers廿舾s方程。令x=考,】,=三,则weicrs缸ass方程在仿射坐标系下表示为,(x,.y)=o:E:y2+q砂+吩岁=,+啦x2+嘞x+%,(2・9)且判别式△≠O,△是保证E是“光滑”的判别式,满足方程的@,y)称为域置上椭圆曲线E的点,除了椭圆曲线上的所有点,还需要加一个特殊的无穷远点。。定义2.7若域K的特征是2,则通过变量的相容性变换,得到曲线),2+砂=x3+印产+6其中口,6∈足。这样的曲线称为非超奇异椭圆曲线,且判别式△=6,记为:E,6F(2“):.,,2+砂=x3+饿2+6(2-10)2.2.2椭圆曲线上的运算法则现在我们开始讨论式(2.10)所确定的椭圆曲线,特别地,当6=1的时候,我们把式(2.10)称为Kobl池曲线(Kobl池CIln,c)。此类曲线在实现椭圆曲线密码体制的时候速度比较快。椭圆曲线上的三个点如果在同一条直线上,则我们说它们的和为m(无穷远点),“弦和切线”法则如下:①oo=—∞,对于椭圆曲线上任意一点P=(x,y),P+∞=P。②设椭圆曲线上两点P=O,y),Q=(x,一y),它们的连线是一条垂直线,且与椭圆曲线相交于无穷远点m,所以P=—Q。③点加运算:设椭圆曲线上的两个具有不同x坐标的点P=(而,M),Q=(而,儿),它们的连线与椭圆曲线相交于第三点R’,则P+Q+R’=m,所以P+Q=一R’,示意图见图2.1。④倍点运算:点P=(而,M)是椭圆曲线上的任意一点,过点P画切线与椭圆曲线相交于点Q,即2P+Q=∞,2P=一Q,示意图见图2-2。图2・l椭圆曲线点加运算示意图而=彳2+五+五+为+4(2.II)乃2五“+弓)+毛+一其中名2瓴+儿)“+屯)-I(2.12)18椭圆曲线密码体制的研究与实现4.倍点。令P=(而,M)∈E/GF(2”),P≠一P,R=2P=(屯,乃)那么而=五2+2+口=葺2+6(葺2)-1(2-13)(2-14)儿=毛2+他+而其中五=五+咒(而)。定义2.8其中.|}是一个整数,尸是定义在GF(2”)上的椭圆曲线E上的一个点,则血P称之为点乘或标量乘,它决定着椭圆曲线密码体制的运算速度。在一般的密码系统中,P是固定的,可以通过预计算数据,提高其运算效率。定义2.9设P是定义在GF(2”)上的椭圆曲线E上的一个点,若存在最小的正整数疗,使得,护=。o(m为无穷远点),则称一是点P的阶。2.2.3椭圆曲线密码体制自从Diffie-Hellm蛆提出公钥密码体制以来,我们提出了很多密码的算法问题,设计了各种各样的密码体制。对于这些密码体制的安全性,一般认为能够经得起各种攻击,就可以认为他们是安全的,如果出现某些攻击有效的情况,可以通过修改密码体制的设计方案来完善,但是随着攻击手段的多样化和新的理论、新的算法的出现,以前认为很安全的密码体制,现在也被认为是不安全的,如Chor.黜vest密码体制,因此设计新的密码体制在一种程度上可以加强系统的安全性,但是事实上,我们很难确认某种密码体制的安全性。公钥密码体制是以单向陷门函数作为支撑点的,对于单向陷门函数Z(x):D专尺,对于任意的x∈D,很容易计算Z(∞,而对于几乎所有的y∈R,求出x是非常苦难的。但是如果知道陷门信息r,则对于所有的y∈R,很容易计算满足y=Z(x)的工。常见的单向陷门函数主要有RsA问题、离散对数问题和Di伍e.Hellm锄问题,下面就开始介绍椭圆曲线上的离散对数问题。令E是定义在GF(2”)上的椭圆曲线,P是E/GF(2”)上的点,设P的阶为月,则集合{oo,尸,2P,…,∽一1)日是由P生成的椭圆曲线循环子群。椭圆曲线方程E,点P和阶胛构成公开参数组。私钥是在区间【l,门一1】内随机选择的正整数d,相应的公第二章ECC理论基础19钥是Q=卯。2.2.4椭圆曲线密码体制的安全性分析对于公钥密码体制的安全性要求一般都是针对密文的特性而言的,就是说,密文应该满足某种安全特性。目前被国际密码界广泛接受的密文的安全性要求主要有以下几种:单向性,不可区分性和不可扩展性。单向性就是说攻击者在没有拥有私钥的前提下,无法计算出任何密文所所对应的明文信息加。不可区分性就是说对己知给定的两个明文,加密者随机一致的选择其中一个进行加密,攻击者无法从密文中知道是对哪个明文的加密。不可扩展性就是说攻击者无法构造与已给密文相关的新密文。在公钥密码体制中,攻击者拥有公钥,他可以随便选择明文进行加密,攻击者还有机会获得密文,而且还可能利用各种途径来获得解密,为此,公钥密码体制应该不会泄露其他密文的明文信息,这就要求该密码体制能抗选择密文攻击。椭圆益线密码体制的安全性基于椭圆曲线离散对数问题(ECDLP)的难解性。目前还没有有效的快速算法来解决这一难题,它只有指数级的算法。这也是椭圆曲线密码体制的安全基础。ECDLP问题就是,给定椭圆曲线E,基点P和P的一个标量乘Q,来确定一个正整数七。满足Q=舻。从目前的研究来看,ECDLP比有限域上离散对数问题(DLP)更加难以处理。已经知道的对椭圆曲线的攻击方法主要有以下几种,设椭圆曲线上的基点P,P的阶为胛。1.穷举搜索法计算2P,3P,4P,…直到找到Q,这种算法最多需要胛步椭圆曲线的点加。2.大步小步法这种算法的思想在于测试P的倍点运算是否等于Q,利用一种数据结构,具体的做法是,预先计算并存储一些P的某些倍点(小步)运算的结果,然后对于某个整数,,计算Q一护,Q一2护,…(大步),直到Q—f,户在预存表中出现。3.MOV攻击其核心思想是将椭圆曲线离散对数问题转化为某个有限域的乘法群上的离散对数问题,此类攻击只对超奇异椭圆曲线有效,该算法导致出现了亚指数的EcDLP求解算法,所以在对椭圆曲线的参数进行选择的时候,避免出现这一情况的出现。4.weildescent攻击这种方法只适合于特征值为2的复合域,在椭圆曲线密码体制的实际应用种,我椭圆曲线密码体制的研究与实现们可以选择所为素数的GF(2”)来避免此类攻击。5.Pollard’srho算法从目前来看,对EcDLP最有效的攻击就是并行Pollard’srho算法攻击,这种算法是小步大步算法的随机版本,它的运行时间和小步大步算法差不多,只是需要很小的存储空间,该算法可以在几种处理器上并行,其运行时间为√丌m步点加运算。有学者指出,如果肌*2。,花费looO万美元建立具有325000并行处理的Pollard’srllo算法来解决EcDLP需要32天左右,而在实际的工作中,我们一般采用的都是珊≥160,因此可以说椭圆曲线密码体制是比较安全的。cenicom是ECC的主要商业支持者,拥有超过130项专利,并且已经以2500万美元的交易获得了国家安全机构(NsA)的技术许可。他们也已经发起了许多对ECC算法的挑战。已经被解决的最复杂的是109位的密钥,是在2003年初由一个研究团队破解的。破解密钥的这个团队使用了基于生日攻击的大块并行攻击用超过10。ooO台奔腾级的PC机连续运行了540天以上。对于ECC推荐的最小密钥长度163位来说,当前估计需要的计算资源是109位问题的108倍。2.2.5椭圆曲线上域参数的选择在椭圆曲线密码体制的硬件实现中,有限域GF(2”)上相对于GF(p)的运算快很多,用最优正规基表示下的有限域GF(2”)元素运算相当高效。最优正规基分为I型和II型,一般认为最优正规基的类型值越小,其运算速度越快,但是在实现中,由于II型最优正规基的存在个数大约是I型的3倍,所以对II型oNB的研究也是我们工作的重点。根据我们上面对椭圆曲线密码体制安全性的探讨,存在着对某些特殊类型的椭圆曲线的亚指数攻击,所以,在对椭圆曲线以及它的基点的选择上,必须避免以下几种情况:1.满足撑E(GF(2”))=2”的椭圆曲线。2.椭圆曲线的基点的阶不是素数。3.椭圆曲线不可以是超奇异椭圆曲线。2.3小结有限域的运算和椭圆曲线上点的运算是椭圆曲线密码体制实现的基础。椭圆曲线加密系统一般是建立在有限域GF(p)和有限域GF(2”),其中对于GF(2“),第二章Ecc理论基础2l根据基的不同,又分为多项式基和正规基。本章主要论述了基于GF(2“)的运算定理,重点在于基于正规基的构造,正规基的运算,以及椭圆曲线的基本性质和一类特殊的椭圆曲线(非超奇异椭圆曲线),给出了其运算法则。第三章有限域算法的实现第三章有限域算法的实现素域结构简单,元素的表达也比较方便,在其上也有很多比较成熟的算法,比较适合软件实现。在这样的域中,主要问题通常是模素数的大数运算。而在有限域GF(2”)中,元素都是一定长度的O和1的比特串,特别符合硬件中对元素的表示,而当采用最优正规基来表示域元素的时候,可以充分地利用移位运算,元素的运算是十分高效的,所以,我们这里采用基于最优正规基的二进制有限域来实现椭圆曲线密码体制。3.1加法运算有限域GF(2”)的加法运算,就是对元素的二进制表示序列按位进行异或运算。输入数据:口,6EGF(2”),输出数据为c∈GF(24),利用异或门来实现,利用VcrilogHDL描述就是简单的语句,n船i{弘c=口“6;,生成运算模块如图3.1所示,其运算几乎不占用时钟周期。因为对于域元素来讲,其加法逆元为其自身,所以减法运算等同于加法运算。图3.1加法运算模块3.2平方运算用正规基来表述的域元素,最大的运算优势就是平方运算,这个在多项式基下比较费时和消耗资源的运算,转变为一个简单的循环移位操作。输入数据:口∈GF(2“),输出数据为口2∈GF(2”),利用控制信号rlRoR来控制循环移位,在实际工作中,一个时钟周期内完成运算,并稳定输出,生成运算模块见图3.2.24椭圆曲线密码体制的研究与实现图3.2平方运算模块3.3乘法运算有限域的乘法运算具有无进位,无误差的特点,在纠错码、密码学、数字信号处理领域有着广泛的应用,本节在分析各种算法原理和硬件结构的基础上,给出了乘法矩阵的几种运算方法,并设计了满足所有基于I型或者Ⅱ型最优正规基的串并皆可的乘法器。3.3.1乘法矩阵的构造根据式(2-7),乘法运算的核心部件为乘法矩阵,在最优正规基的情况下,该矩阵是一个稀疏矩阵,除第l列只有一个l外,其余各列都只有两个l。对于存在oNB的正整数州,根据算法3.1,可以确定其是I型或者II最优正规基,对GF(2“)为I型最优正规基,其既约多项式厂(工)=,+x“+…+x2+x+l,对GF(2”)为Ⅱ最优正规基,其既约多项式,(工)=厶(x)有下面递归的形式啪】:五(x)=1,』(x)=工+l,Z(x)=】兀l(石)+丘2(工)f=0,1,…,掰一1。在这里需要注意的是,在每一步运行的时候,多项式的系数,进行模2操作,Ⅳ={x∥,x∥,…,x7,工’,x2。)即为GF(2“)在GF(2)上的正规基。算法3.1【27】:乘法矩阵的获取输入:正整数m。输出:正规基乘法矩阵,。1.构造运算矩阵4:把一mod厂(x),f∈【O,m—l】,构成的向量作为矩阵的第行亍。2.在GF(2)上对矩阵A求逆,得到4一。3.构造运算矩阵7’’:把就7mod,(x),f∈【O,所一l】,构成的向量作为矩阵笙三皇童堡堡簦鲨塑壅堡的第_i彳=亍。4,在G_F(2)上计算乘法表r=7’’爿一。.————.竺5.计算乘法矩阵,,满足L=五J.j。-j)(五∽表示r内元素(g,矗)位置进行模脚运算),其中f,,∈【o,_I,l一1】。例3.1求取GF(24)的乘法矩阵口刀1.当拼:4的时候,其存在I型最优正规基,则既约多项,(力=≯+≯+x2+x+l,正规基Ⅳ:{,,,,一,,'。2.矩阵4由以下的结构组成:第O行:工mod,(x)=工=(OOlO),第l行:x2mod,(x)=,=(OlOO),l1第2行:一mod,(x)=矿+x2+工+1=(1第3行:,mod,(x)=矿=(1因此,可以得到OO彳=1llOl0OO1),0)。OllOOOlO1.在GF(2)上,可以得到OA一OlOlOOOlO=112.矩阵r’类似矩阵■得到1Or’=0lO111OOOO3.计算乘法表rOO?=1OlOlll01OO0O14.计算乘法矩阵,椭圆曲线密码体制的研究与实现O0,=1O001ll1OOOlOl算法3.1虽然有其运算普遍性,但是由于需要计算矩阵的逆,而矩阵的求逆是复杂耗时的运算,其优化算法的效率也比较低下,因此在实际的应用中,我们采用下面的两个算法来分别计算I型最优正规基和Ⅱ型最优正规的乘法矩阵。根据定理2.1,在基于I型oNB的情况下,我们可以得到算法3.2.算法3.2:基于I型oNB的乘法矩阵输入:正整数册。输出;正规基乘法矩阵,。1.求出(f,s(j))满足2‘;s(f)+1(modm+1),Vf=o,1,2,…,脚一1。2.显然J(O)=0,把s(f)O=o,l,…,m—1)按从小到大的顺序排列得到循序对:(O,o),(^,1),(^,2),…,(厶。,所一1),其中J“)=f,Z=1,2,…,m一1・3.写出满足条件V七=O,1,…,m一1,sU)=s(七)+1的(Jj},,)对为:(O,^),(^,止),…,(^t,^。)。4.在乘法表r=“.,)中,有:V七=0,l,…,坍一l,七≠册/2,钿=1:f。=1,W=O,1,…,m—l;而其余的‘,取值为O。5.根据算法3.1的第5步计算出乘法矩阵,。例3.2GF(24)乘法矩阵2埘=4,则为I型oNB,根据算法3.2,编制的C程序直接给出了其乘法矩阵,见图313。图3.3坍=4时,求出的乘法矩阵可见,其结果和算法3.1一致,并给出了其非零元素的个数C。=2m一1=7。算法3.3:基于II型oNB的乘法矩阵输入:正整数所。输出:正规基乘法矩阵,。1.求出(f,s(f))满足2‘;±(J(f)+1)(nlod2m+1),Vf=o,1,2,…,胁一1。2,显然s(o)=O,把s(f)(扛o,l,…,m一1)按从小到大的顺序排列得到循序对:(0,0),(^,1),(^,2),…,(厶一I,肌一1),喜e中s(Z)=f,Z=1,2,…,脚一1。3.写出满足条件V七=O,1,…,m一1,J(,)=J@)+1的(七,D对为:第三章有限域算法的实现(O,^),(^,五),…,(^-2,L.,)。写出满足条件V七=O,1,…,肌一1,s(f)=s(七)一1的(.|},f)对为:(^,o),(五,石),…,(五--,.,,z)・4.求出_,=O,1,2,…,掰一1,使得2”1;±3(mod2研+1)。1.在乘法表r=辑,,)中,有:V七=l,…,m一2,‘J=l;f0’1=1;‘-1.,=l,若,=以一l或者2’“i±3(mod2脚+1);余的f。,取值为O。6.根据算法4.1的第5步计算出乘法矩阵,。计算有限域上I型和II型最优正规基的乘法矩阵,当有限域GF(2”)的m小时,根据算法4.2和算法4.3,计算十分简单。在有限域上椭圆曲线密码体制中,一般m取三位数,即使取到四位数,计算也不复杂,因此,上述的两个算法对计算椭圆曲线密码体制中的有限域运算的乘法矩阵是十分有效的。3.3.2乘法模块的实现乘法运算的优劣直接关系着整个密码体制的运行效率,因此,乘法运算在整个系统的运行中,起着举足轻重的作用,我们在这里就乘法运算的实现进行详细的探讨,下面先给出串行乘法器的算法3.4。算法3.4【281:串行乘法器输入:口=(%一p%-2,…,q,口o),6=(%-1,%-2,…,6I,%)输出:c=(%.1,%.2,…,q,吒)1初始化:x=口,J,=6,d=OFOri=Otom2.12d=d>>1,d[肌一l】=F(并,力x=x>>l,y=),>>l2.2其中,(口,6)为乘法矩阵。3返回c=d利用上面的算法,珊=162的时候,我们可以得到乘法器的电路图见图3.4。椭圆曲线密码体制的研究与实现K直-●:j舞存矗^—仆1广习—一习巴透鼙舔。l—‘’■&t————————JltH———一jE絮1r宙E墨醪司}=£’i^j马霹嚣瑟一吵。‘’b&t————————.JI燧到lI哥睁蝴嚣娃t图3.4.乘法器内部电路图硬件乘法器主要由循环移位寄存器A和循环移位寄存器B、运算矩阵、移位寄存器C、控制状态机、计数器构成。当系统接收到来自上层调用的复位信号nREsET,乘法器在状态机(运行状态图见图3.S)的控制下进入MTIDLE状态,当nEN没有下降沿的时候,toRIJN信号为0,乘法器处于等待状态,乘法器为空闲状态BusY=o,nDoNE=l,并不断复位其他的模块,当nEN有效的时候,toRUN=l,进入h仃S1'ART状态,设置乘法器为繁忙状态BuSY=l,设置所需要的参数如第一次进入,设置寄存器A,寄存器B为数据加载模式,查询计数器的状态,当collIl_研的数值在计算最后一个比特位(这里为161)之前,进入MTRuN状态,等待来自运算矩阵的信号,当运算正常结束的时候,toPI的C=l,把运算结果送入寄存器C,并使寄存器C移位,同时重新进入mST觚r状态,当不是第一次进入的时候,设置寄存器A和寄存器B为自动循环移位,判断状态循环,当循环次数为16l的时候,进入最后一位的数据处理状态MTDsP,等待运算矩阵正常运算结束的信号,输出最后的结果dom,并输出一个负脉冲ll【'oNE,同时复位计数器,判断是不是下一个运算许可toRuN,如果许可直接进入M丌START开始新的计算循环,否则进入MTIDLE,继续等待。乘法器完成后,寄存器C存储的数据regcout就是diIIa和dillb两个有限域元素的乘积。第三章有限域算法的实现toRUN=口图3.5串行乘法器控制状态机运行图上面给出的串行乘法器虽然硬件上实现简单,消耗资源也不大,但是其太低的运行效率使得在实际的工作中应用很少,所以需要开发新的乘法器来满足现实的需求,根据式(2—7),我们可以得到以下的形式:q=(‰4,2,…,口¨,%)M(6H,6_.2,…,6¨,九)7,在这里针对不同的字长w,我们得到修正w一蹴护Q伫91p01Du口21后的算法3.5。算法3.5:修正w一肌俨%算法输入:口=(%。,%-2,…,啦,q,口o),6=(6卅。,k。,…,62,6l,‰)。输出:c=(%-l,c埘-2,…,乞,q,岛)=口06。1.初始化数据:x=(口州,%一…,色,q,‰),y=(6卅+吒-2,…,62,6l,60),D=(靠H,‰-2,…,吐,吐,磊)=O,(七=i11t(脚/w)+1);2.对于f<七,执行循环2.1D=D2’+(XW);2.2工=x”,y=】,”;3.c=(如。,办。,吐,吐,巩)。VerilogHDL具有很强的行为描述能力,主要用于描述数字系统的结构、行为、椭圆曲线密码体制的研究与实现功能和接口,根据算法3.5,下面以所=19l为例给出乘法器的接口描述。modulemul“c此nRST.nLOAD--B,nLOADA,nMlⅡ,S1ART,REGA.MUL,REGB--MUL,nMUI,DONE,DOUT--MUL);p盯锄eter、丽dul-191;呻lltinputc邺T,IlLOADMd“l:O】REGAA,nI,OADB,nMIⅡ,sTART;MIⅡ。REGBMIⅡ‘叫tputnM【JI—DONE;output【讲dtll-1:O]DOUT_.MUL;endnlodule其中cn(为时钟,nRST为复位信号,nL0√虹)LA,IlLOAD.-B分别把I也GAMIⅡ,,REGB』虱几装载到循环移位寄存器A和循环移位寄存器B,DoUTMIⅡ。为输出结果,nMIⅡ,DoNE为运行结束标志。下面给出乘法器的硬件实现系统结构,见图3.6。图3.6乘法器硬件结构图从图3.6可以清楚的看出,乘法器主要有循环移位寄存器A和循环移位寄存器B,运算矩阵(乘法矩阵),移位寄存器C,计数器和有限状态机构成。其中循环移位寄存器的移位位数可以利用参数来设定,使之满足算法3.5的要求,乘法矩阵是根第三章有限域算法的实现3l据算法3.2或者算法3.3确定的与异或运算阵列,一次输出的位数由w一蹴铲D,,的w决定,移位寄存器C是存储运算中的临时结果,并在运算完成后,在状态机的控制下,输出m位结果。下面乘法状杰机的状态转换图,见图3.7。图3.7.乘法状态机转换图从图3.7可以看出,当数据处于就绪状态,乘法开始运算信号有效,就由IDLE状态进入START状态,然后进入wAIT状态等待乘法矩阵输出w位数据,然后进入RUN状态,发送信号给计数器,表示完成一次计算,返回WAIT状态,判断移位次数是不是已经是七,如果是,进入END状态,否则仍然等待,进入RuN循环,在END状态,输出结果,运行结束,进入下一个开始运算状态或者进入IDLE状态。3.3.3性能分析根据实际的情况,适当选择w的数值,当w=1的时候,称为串行乘法器,当w=所的时候,称为并行乘法器,当1<w<m的时候,称为串并结合结构的乘法器。图4.6设计的乘法器,只要预置合适的参数,更换乘法矩阵,就可以完成I型最优正规基或者II型最优正规基的运算,所以这里不再对最优正规基的类型做专门的说明,从某种意义上来讲,它是通用的,只是根据硬件条件和运算速率的要求,选择合适的w值,来寻求资源消耗和运行速度之间的平衡。下面以II型最优正规基为例,当小=19l的时候,对w=8,w=16,w=32的时候的运行速率和资源消耗做简要的分析,对比见表3.1。表3.1.字长消耗ALuTs乘法矩阵w=81396不同字长的乘法器性能比较消耗ALMs消耗逻辑寄存器运行时钟周期乘法矩阵其他单元103l79l1296251892其他单元总计乘法矩阵14203274总计乘法矩阵椭圆曲线密码体制的研究与实现其他单元32986403w=16其他单元总计乘法矩阵79926834732815487450总计乘法矩阵其他单元w=32其他单元总计642726总计在功能仿真真确的基础上,分别对三种不同的字长做了性能的综合分析,通过分析(详细见表3.1)可以看出,随着字长w值的增加,占用的逻辑资源逐步增大,特别是完成乘法必须的乘法矩阵逻辑阵列,基本成线性增长趋势,而完成运算的时钟个数成比例下降,在实际的设计中,为了实现速度和消耗资源之间的平衡,以及为了对后面所要设计的椭圆曲线密码体制的其他模块进行分析,在以后设计和分析中,均取'‘,=16的乘法器作为最终的处理核的部件,此时完成一次有限域的乘法运算,需要50个时钟周期。3.4求逆运算求逆算法在编码理论和密码学中具有广泛的应用,应用求逆算法还可以降低指数运算的复杂性【331,当有限域的元素用正规基来表示时,根据式(2.8),我们可以看出有限域的求逆算法可以转换为域元素的平方运算和乘法运算,而平方运算可以通过一个循环移位来实现,所以降低乘法运算的次数就成为设计求逆运算的关键。3.4.1优化求逆算法设工是GF(2”)上的任意的非零元素,那么x2_-1=l,所以x~=x2一一2=(x2。4-1)2。显然求逆运算是一种特殊的指数运算,设6:x∥一,则r1:62。把m一1表示为二进制的形式(口0q…吼)2,其中%=l,为数据最高位。定义递推关系式啊+l=2q+q+l,O≤f≤Jj}一l,‰=l(3-1)第三章有限域算法的实现工=xp-1(3—2)显然从式(3-2)得到%=x,6=黾,根据式(3・1)和式(3-2),可以得到下面的递推关系:"{x嘉,:拦根据以上的推理分析,我们可以得到算法4.6。算法3.6:简化求逆算法输入:正整数所,非零任意域元素x∈GF(2”)。输出:域元素r1。1.初始化数据:令疗=脚一1,根据七确定珥,喝。设置,=1;2.根据递推关系式(4.3)计算置;3.f-f+l,如果f<七,则转向第2步:@s,4.一=黾2,则求逆运算结束。算法3.6可以大大提高了求逆运算的运行效率,在设计前预计算相关数据,进行ASIC的设计是其应用的方向。SallgHo0b和Ch锄gH锄砌m【341提出了一种算法,该算法在乘法数量上可以和noh【351算法相等,但是其更适合硬件实现,该算法的描述见算法3.7,流程图见图3.8。算法3.7:优化求逆算法(oIA-optimaIInve玮eAlgorithm)输入:正整数m,口∈GF(2”)输出:口。1.初始化数据:,=肼一1,J=l,甜=口2:2.当f>O,执行下面的循环2.1如果f0=O,且r>1执行下面的操作2.1.1把f向右移动一位;2.1.2甜=甜.材,:如果“≠0则执行下面的操作2.2z=z・Ⅳ:2.3如果f=1,则运算完成;2.4女Ⅱ果f≠1,“=甜2,“=O;3.返回逆元(x)。注意:令f=(‘一。‘一:…‘%):,f的向右移位为(O,‘一。‘一2…‘f0):。椭圆曲线密码体制的研究与实现图3.8.oIA算法流程图可见oIA算法对数据的位数没有特殊的要求,在乘法器固定的情况下,可以通过适当的控制器参数设计,就能满足设计中通用的要求,因此在本论文中,求逆运算模块的硬件设计采用0n算法来完成。3.4.2求逆模块的实现根据算法3.7,我们利用Ve!rilogHDL语言对域元素求逆模块进行描述实现,接口描述为:moduleiIⅣ(clknRST-删蛰吣弧。din_x,nINV_-DoNE,doutinv);par锄etcr晰dtlFl9l;itlputinputclk;nRST.nINV—START.i印utillputoutputMdtIl-l:O】din_x;IlINV—DONE;output【埘dm-1:O】dolltjnv;第三章有限域算法的实现endmoduIe下面给出其实现的数据通道硬件结构图3.9和控制通道硬件结构图3.10。翩,H9潮,I强—’m●d科嚣I越4嘲,疆裎棚{V_图3.9当m=191时,域元素求逆模块数据通路硬件实现结构图可见在有限域元素求逆运算的过程,其实是对乘法运算器进行控制来完成的,域元素求逆控制单元其实就是对求逆控制器的优化管理单元,下面给出对域元素求逆模块控制通路硬件实现结构图(图3.10)的文件描述。求逆运算控制单元主要有计数器REGT和求逆运算状态机组成。REGT用来存储m一1,并且具有右移和末尾清零的功能,它的数值用来控制状态机的循环次数,循环单元的循环左移次数,以及运算中的跳转条件,当REGT的值为1的时候,运算结束。循环单元用来对寄存器REa,的数据进行循环左移,以获取运算所需要的∥。求逆状态机的主要输入信号有:求逆运算器开始信号llINVsTART,循环单元完成标志nLOOPDoNE,乘法器运行结束标志nMI『I.DONE,以及I汪GT的数据REGT。输出信号主要有:寄存器REGU的写有效信号nⅪ!GU、ⅣE、循环左移信号nI也GuROR、数据来源选择信号nsELU,寄存器砌粥X的写有效信号nREGXwE、数据来源选择信号nsELx,乘法器运算因子的选择信号llsEL和完成信号小ⅣX。瓜麟J鐾I一~一~旭娜o图3.10当所=191时,域元素求逆模块控制通路硬件实现结构图求逆运算控制模块单元的有限状态机的转换图如图4.11所示。这个状态机共有14个状态,nINvSTART为求逆运算开始信号,I也GT的数据对应算法4.7的,值,在状态图中,LOOP是当第一次进入数据处理的时候,判断REGT的数据是椭圆曲线密码体制的研究与实现否符合运算的条件,在TsHR中,对REGT进行移位操作,因为数据操作的完成需要一个时钟周期,所以在下一个时钟周期,即状态wTTS,把数据送入循环寄存器,并对REGU的数据进行f次移位操作,这是一个比较浪费时间资源的操作,以肌=190为例子,当第一次进行操作的时候,至少需要95个时钟周期,进入等待状态UT、ⅣT,当移位操作完成信号输出的时候,就可以调用乘法模块开始Ⅳo∥运算,运算结束后吧数据存入寄存器I也GU,并根据判断条件REGT>l&&REG【0】一1,来执行算法3.7的第2步,当不符合条件的时候,进入REGx状态,来执行甜ox运算,在状态LAsT中判断是否符合模块运行结束的条件I也GT!一1,如果符合则继续进行算法3.7的第2步继续循环执行,否则在状态ENDP输出结果,模块进入IDLE状态等待下次运行的开始。图3.11求逆状态机的有限状态图3.4.3性能分析根据算法4.6,我们可以得到求逆算法的运算过程。设m=191,工是GF(2”)上任意非零域元素,由坍一l=190,可以得到%=吒=呜=啊=如=‰=1,口l=唧=O;%=1,啊=2,也=5,,玛=1l,一=23,,传=47,魄=95,嘞=190。根据式(3-3)的迭代得而2麒2=x22一,而=H五而22)2=x2。1,而=x(屯屯25)2=工2”一,毛=x(而毛2“)2=x2”一,弓=x(矗矗2”)2=J2”一,第三章有限域算法的实现37%=颤%毛2卅)2=x护一,而=%%2=工2”~,r1=L2=x妒-’。显然完成运算需要13次乘法和190次平方运算,因为乘法运算是具有运算复杂度较高的运算,平方运算可以用一个循环移位来实现,所以可以记简化求逆算法的运算复杂度为13M(M为乘法运算次数,后面不再说明)。而对于优化求逆算法(0IA),Itoh【4】指出,完成一次求逆运算所需要的乘法次数最少为,(m)=【log:(m一1)】+似脚一1)一l,其中似棚一1)表示域GF(2”)中(聊一1)的二进制表示式中1的个数。所以可以记优化求逆算法的运算复杂度为13M。根据上面的理论分析我们可以清楚的得到,简化求逆算法和优化求逆算法具有相同的算法复杂度,但是就本论文来讲,根据设计的需要,我们采用了算法3.7,但是算法3.6在某些情况下更具有优势,简单的来讲,在算法3.7中,额外用到了一个临时寄存器REGu,而算法3.6则没有,算法3.6的迭代很有规律性,并且在设计的前期可以轻易获取模块的运算规则,选择一个针对特殊数据的有限状态机,可以大大加速其运算效率,因此在一些特殊埘值的场合,设计专门的移位寄存器,可以大大减少运算所需要的时钟周期,而算法3.7中“2‘的运算最少需要f个时钟周期,但是算法3.7有更多的灵活性,因此算法3.6适合ASIC设计,而算法3.7适合设计灵活的FPGA设计。下面给出了根据算法3.7,我们对基于oIA算法的求逆运算模块的资源消耗和运行时间见表3.2,从表中我们可以清楚的得到一个信息,由于控制和多次调用乘法模块,求逆运算消耗的时钟资源很高,而对于运算本身来讲,节本做到了最小的运算量,所以一般情况下,建议避免求逆运算以提高系统的运行效率。表3.2.消耗ALUTs乘法器单元3485288247385164171研=191时,求逆运算器的资源性能分析表消耗ALMs乘法器单元控制状态机计数器寄存器临时存储单元寄存器x其他总计251816619323813432131599900逻辑寄存器运行时钟周期控制状态机计数器寄存器临时存储单元寄存器X其他总计3.5小结有限域运算的硬件实现是整个系统实现的基石,由于上层的运算模块是对有限椭圆曲线密码体制的研究与实现域运算模块的控制来来实现的,所以有限域运算的效率极其重要。在本章中,我们从理论出发,针对硬件发展的现状,给出了有限域的加法运算设计和平方运算设计,并重点分析了乘法运算的整个过程,给出了有限域基于正规基下的乘法矩阵的计算方法,给出了一个具有普遍适用性的基于II型ONB的设计模型,并针对不同字长w下的模块性能进行理论探讨,实际分析。在优化乘法器的基础上,给出了两个优化的求逆算法,并比较他们之间的性能差异,最后给出了GF(2”1)的优化求逆模块的硬件实现。第四章椭圆曲线标量乘法器第四章椭圆曲线标量乘法器在椭圆曲线密码系统中,最耗时和最频繁的操作就是计算舻,标量乘运算把点加运算(椭圆曲线上两点不同,且P≠一P)和倍点运算(即2P)作为运算的基础,为了优化运算,在这里我们也提出了关于护的相关的优化算法。为了减少运算中的求逆运算,我们这里引入了三种射影坐标系:标准投影坐标,雅克比坐标和LD投影坐标。如果在仿射坐标下点P的坐标表示为∽y),在射影坐标系下点P的坐标表示为(x,y,z),则三种情况下的对应关系为‘36】:(1)标准射影坐标系XY舻i’_y2三(2)雅克比坐标系XY舻可’J,2可(3)LD投影坐标XY垆亍’y2可9在这里,我们采用一条特殊的椭圆曲线作为我们实现加密算法的曲线H51,令式(2.10)的口=0,6=l,则得非奇异K0bl娩曲线v2+】印=矿+饿2+6(4.1)4.1倍点、点加运算的模块设计4.1.1倍点、点加基本运算在GF(2”)上采用式(3.1)方程的倍点、点加运算公式为D61:令P=(五,乃),R=2尸=(为,乃),则屯=A2+五+口(4.2)(4.3)乃=#+鸽+墨式中五=一十丛。而令P=(玉,M),Q=(%,儿),R=(屯,乃)=P+Q,则40椭圆曲线密码体制的研究与实现玛=口2+口+五+屯+口(4.4)(4.5)乃=口(而+而)+而+M式中口:型丝。‘+屯4.1.2射影坐标系下的运算这里选用的影射坐标系是LD投影坐标系,椭圆曲线的投影方程是y2+.腕=X3Z+.r222+Z4。无穷远点oo对应于(1:0:o),而点(x:Y:z)的负点是(x:x+】,:z)。计算点P=(五:X:z1)的倍点2P=(玛:巧:z3)的算法见算法4.1。计算点P=(五:K:ZI)与点Q=%:五:1)的和胄=P+Q=(五:E:互)的算法见算法4.2。算法4.1【36】:倍点运算算法输入:椭圆曲线E/K:),2+砂=,+z2+1,LD投射坐标中的点P=(五,K,ZI)。输出:LD投射坐标系下的点2P=(墨,五,z3)。1.如果P=oo,返回。;2.五=Z12,五=五2;3.z3=五・乏,墨=正2;4.写=写2;s.瓦=五;6.五=五+正;7.五=X2;8.五=正+zj;9.五=五+瓦;lO.墨=五・五;第四章椭圆曲线标量乘法器4111.正=五・z3;12.E=五+五;13.返回(玛:E:z3)。算法4.2口6】;点加运算算法输入:椭圆曲线E/K:y2+砂=,+z2+1,LD投射坐标中的点P=(墨,I,zI),仿射坐标系下的点Q=(而,儿)。输出:LD坐标系下的点尸+Q=(五:五:z3)。1.若Q=∞,返回P。2.若P=∞,返回Q=(恐:致:1)。3.写=z1‘屯;4.互=z12:5.爿j=.蜀+五:6.五=z1‘墨;7.乃=五‘%;;8.巧=墨+乃;9.如果墨=O,则・若巧=o,则调用倍点算法计算(墨:写:z3)=2(而:咒:1),并返回(墨:E:z3)。●否则返回oo。lo.z3=彳;11.五=五‘E;12.写=石+瓦;13.瓦=墨2;42椭圆曲线密码体制的研究与实现14.五=瓦・五;15.正=E2;16.墨=玛+五;17.玛=蜀+五;18.五=而・z3;19.五=五+五;20.五=z32;21.巧=五+z3;22.E=正・正;23.五=而+弘;24.五=五・正;25.E=E+五;26.返回(玛:E:乙)。采用混合坐标系计算后,还原成仿射坐标需要1次求逆和2次乘法。4.1.3倍点、点加运算模块设计实现椭圆曲线倍点和点加运算的时候,把其分别设计为一个独立的运算模块,接口电路如图4.1和图4.2所示。图4.1倍点运算电路接口图第四章椭圆曲线标量乘法器43嚏nRST咖-x1”∞脚咖—y1¨∞皿dh』剐叩.田由■_y剐∞.卸nY3』吲屹由幢J钟蚰一0ln)13.p。怔啪-y却∞.埘nST^RT图4.2点加运算电路接口图在某种意义上来说,倍点和点加运算都是通过对有限域的乘法器和求逆运算模块的控制来实现的。4.2标量乘运算模块设计椭圆曲线加密的实质就是实现椭圆曲线上的标量乘运算【3”,从算法2.3和算法2.3中可以清楚地看到,在计算公钥、加密明文和解密密文的过程中,其实都是椭圆曲线标量乘运算。椭圆曲线的群运算的算法特点决定了要把椭圆曲线上的标量乘运算转化为椭圆曲线上的点加运算和倍点运算。椭圆曲线上任意两点相加的结果还是椭圆曲线上的点,所以标量乘的运算结果还是椭圆曲线上的某一点。舻运算就是基于基点P自加七一1次,但是这样的算法特别消耗时间资源,在实际的工作中并不推荐使用,下面我们给出标量乘几种常用的优化算法。4.2.1标量乘运算的快速算法椭圆曲线密码系统是建立在椭圆曲线的一个子群基础上的,首先在椭圆曲线上选取基点P,我们假设撑E(GF(2”))=砌,其中H是素数,厅是一个小整数,且P的阶为行,对于乘数七,可以随机地从区间[1,胛一1]内选择,我们这里把Jj}的位二进制表示为(t.p电。…,岛,与,‰)。算法4.3计算标量乘的从右向左的二进制方法【38】输入:后=(t.。,毛一:,…,岛,毛,‰),P∈E(GF(2”))。输出:舻。1.Q=∞。2.对于f从O到f一1,重复执行2.1如果t=1,贝0Q=Q+P。2.2P=2P。3.返回(Q)。椭圆曲线密码体制的研究与实现在这里七∈GF(2”),所以可以假设各位的O和1是分布均匀的,这样算法4.3平均需要:圭个点加运算,f个倍点运算・最坏的时候需要f个点加运算,f个倍点运算。由于点加运算只有在毛=1的时候需要,所以减少七的编码中的l的个数,可以降低点加运算的次数,从而提高系统的运行效率,设尸=@,力∈E(GF(2”)),则—P=O,工+力,因此椭圆曲线上的点加和点减具有几乎一样的运算效率,这样我们可以使用带有符号的数字来表示后=∑t2。,其中t∈(o,±1}。下面介绍特别的表示方式:非相邻表示型(NAF)。,-l定义5.1一个正整数七的非相邻表示型的表达式是表达式七=∑t2。,其中110毛∈{0,±1),且岛-.≠O,并且没有两个连续的数字置是非零的。NAF的长度是,。定理4.2【3q令七是一个正整数。◆.i}具有唯一的NAF,并记为^“以后)。◆批伊(D在七的所有带符号表示式中具有最少的非零位。◆删F(Jj})的长度最多比.|}的二进制表示的长度大1.夺若M,(七)的长度是,,则%<七<27彳。夺所有长度为,的NAF的非零数字的平均密度大概为%-算法4.4计算一个正整数的NAF输入:~个正整数豇。输出:^WF(七)。1.i=O。2.当七≥1时候,循环执行2.1如若七是奇数,则七,=2一(七mod4),七=_|}一毛.2.22.3否则,t=O。女向右移位一位,f_f+1。第四章椭圆曲线标量乘法器3.返回(屯,置一2,…,岛,毛,‰).下面给出根据NAF编码方式得到的修正标量乘算法。算法4.5修正标量乘算法【3羽输入:七=(毛。,毛一:,-..,屯,与,‰),P∈E(GF(2”))。输出:舻。1.得到冗余编码七=(吒。,吒-2,…,如,向,‰)。2.初始化:Q=m。3.对于f从疗一l到o,重复执行a)执行倍点运算:Q=2Q。b)如果七f=1,执行Q=Q+P。c)如果t=一l,执行Q=Q—P。4.返回(Q)。NAF编码后计算标量乘运算平均需要的%次点加运算,一次倍点运算,显然,可以显著降低点加运算的次数,来提升系统的运行效率。如果点P是固定的,并且有存储器可以利用,那么可以通过预先计算某些数据,来提升舻的运算速度。例如如果预先计算出所有的2P,2P,22P'…,2“P,可以省去所有的倍点运算。4.2.2标量乘运算的模块设计根据算法4.5,显然对于置有三种状态,O、l和・1,我们采用编码对其进行处理,在这里根据定理4.2的第3条,显然对七进行编码后的位数为384比特,即00代表正整数的O,Ol代表1,ll代表.1。下面给出其控制状态机。见图4.3。图4.3标量乘运算控制状态机在状态机的外部还有一个计数器,用来控制标量乘运算的结束,一次移动数据位椭圆曲线密码体制的研究与实现两位,计数器加l,根据前两位数据位的数值来对调用点加(点减)运算和倍点运算,从而完成舻运算,其接口见图4.4。dkDOUTl伊埘1∞埘晌STnST^RTDOuTJ伊二”∞,埘ncH0PKEYll舳aI帕。畦Px’【190.0】P.”【19口埘图4.4标量乘运算模块电路图4.3小结椭圆曲线的群运算是完成椭圆曲线密码体制的最基本的运算,在有限域运算的基础上,我们在这里给出了椭圆曲线的群运算,并给出了相应的三个模块的设计。椭圆曲线的舻运算是建立在点乘和倍点运算基础上的,是椭圆曲线加密体制的核心运算模块。它的运行效率其实就是椭圆曲线密码体制的运行效率,我们在这里给出了一种基于重新对后进行编码的优化算法,在优化设计的基础上完成了肼=19l情况下的椭圆曲线标量乘模块。第五章仿真与应用第五章仿真与应用目前越来越多的系统采用FPGA进行硬件设计,而FPGA设计中非常重要而频繁进行的一环是仿真。仿真过程是计算机软件模拟芯片对测试输入的逻辑处理,通常计算时间消耗很大。但是仿真能将硬件设计中的逻辑和时序问题及早暴露出来,以便工程师改进设计或调整方案。仿真是硬件设计流程中较为耗时和烦琐的一环,主要原因有:第一,仿真的激励波形必须由设计者自行创建;第二,测试波形必须人工输入;第三,仿真的结果正确与否必须由设计者自行判断,很难自动化;第四,时序仿真前必须对整个设计做耗时的全编译。5.1仿真验证5.1.1有限域乘法运算模块有限域乘法模块可以说是整个椭圆曲线密码体制运算的基石,在这里我们采用II型oNB的191作为我们测试的例子,见图5.1和图5.2。测试向量:因子A:(358DFlEA9EBC2E422FBEC069DDE73D2C25597CCCD2A3E244)16因子B:(000000000000002347778234FFEEAA236372312312321312)16’结果D:(1E993DD45E3E11759BE4BC37FDDC55E6EC761AC00542C4C7)16图5.1埘=191,乘法器运行图(待续)验证乘法器的时候,选择两个191比特位的数据作为乘法因子输入,因为乘法器内有寄存器,当IlLOADA为低电平的时候,把数据REGAMUL装载到乘法器中,同理,当当llLOADB为低电平的时候,把数据REGB—MIⅡ,装载到乘法器中,一个时钟周期完成内部数据的更新后,nMIⅡ,START信号为低电平的时候,乘法器开始运算,等待给出结果,并输出一个负脉冲信号。高模块占用了3298个逻辑单元,完成运算大约50个时钟周期。对于正规基表示下的有限域的元素,其与单位元的乘积为其自身,单位元是每个比特位均为1的特殊的数据,则从一定程度上验证乘法器的有效性和准确度。椭圆曲线密码体制的研究与实现图5.2m=191,乘法器运行图(续图5.1)5.1.2有限域求逆运算模块测试向量:域元素:(358DFlEA9EBC2E422FBEC069DDE73D2C25597CCCD2A3E2“)16结果:(56149EAFB2F481AE32970235EOOEA9063DFlDC485139F880)16图5.3m=19l,求逆运算器运行图(待续)有限域的求逆运算,在一定程度上是通过对乘法器的调度来实现的,但是由于其对时序的要求,在设计中出现不少的问题,首先是乘法器调度过程中,乘法因子的存储问题,所以在乘法器中加入两个数据加载信号IlLOADA和nLOADB,虽然在一定程度上解决了数据的问题,但是不可避免的引入了一个时钟的延迟。其次是求∥,虽然设计上等待延迟就可以了,但是由于其移位占用的时钟周期比较长,大大增加了运算时间,降低了运算的效率,如果采用简化求逆算法,针对特定的肌值,构造一个时钟周期的移位,则可大大增加运算效率。当数据和求逆运算开始信号nINVS1m盯有效(低电平)的时候,根据输入的数据,开始对内部的寄存器进行初始化,并调度乘法器,内部寄存器进行求逆运算,当运算完成后,输出结构数据和运算有效信号nIN、rD伪厄(也可以作为模块忙状态信号)。本模块占用4171个逻辑单元,运行时间为900个时钟周期,其中求“7占用191个时钟周期。第五章仿真与应用图5.4研=191,求逆运算器运行图(续图5.3)因为在正规基表示下的二进制有限域,则乘法单位元为191位数据位均为l的数据,根据数据求逆的结果,进行乘法运算,元素与其逆乘积为1,则可从侧面验证乘法器和求逆运算器。5.1.3点加运算模块点加运算是椭圆曲线层运算的基本模块,由于其运算的特殊性,基本可以认定其为顺序运算,就算法而言,几乎没有优化的余地,这里给出其输入参数和输出结果。设输入参数点P=(而,弗),Q=(而,奶),输出参数R=P+Q=(为,乃)。输入参数:而=(358DFlEA9EBC2E422FBEC069DDE73D2C25597CCCD2A3E244)16M=(05DDD4506014CA3E606076E2BD7521643F682C805BE0544C)16艺=(4989698D48343784c136E5DB6EDE5DcAE29F38c6A720D79B)16弘=(5E359DBlOF73DE3E6A42FB4C9FFl9138F1203D28BFD3280A)16输出参数:而=(3lD8D41DElBB3325BD765683AA449D2E08D03AB7E568376D)16乃=(OFFDBF4COF36802AOC9EE57A9E38388158796F30DC64849B)16图5.5点加运算器50椭圆曲线密码体制的研究与实现5.1.4倍点运算模块Kobl池曲线的主要优点是可以不使用倍点运算,但是在我们的设计中,没有采用Kobl沱曲线。与点加运算模块类似,从算法上来讲,优化的空间同样很小,下面给出其验证结果,见图5.6,设P=(五,M),2P=(而,乃)。输入参数:而=(358DFlEA9EBC2E422FBEC069DDE73D2C25597CCCD2A3E244)16M=(05DDD4506014CA3E606076E2BD7521643F682C805腿0544C)16输出参数:毛=(4989698D48343784C136E5DB6EDE5DCAE29F38C6A720D79B)16弘=(5E359DBloF73DE3E6A42FB4C9FFl9138F1203D28BFD32BOA)16图5.6倍点运算5.1.4标量乘运算模块舻运算是椭圆曲线密码体制中最重要的运算,我们这里给出椭圆曲线的基点P=(而,M),以及标量七。测试向量:输入参数:而=(358DFlEA9EBC2E422FBEC069DDE73D2C25597CCCD2A3E244)16弘=(05DDD4506014CA3E606076E2BD7521643F682C805BE0544C)16七=(4CE7401458EOE961820爿,CDFC54,jDl97999D659E83428爿5D爿)16输出参数:第五章仿真与应用毛=(2F44船049C723248船2F7D8651C34C44C445D9爿4922胱8)16乃=(7082口4476F56DEB76E6422319850749108041452F99E0彳1D16在50M时钟频率下,完成一次倍点运算大约需要20Ils的时间,完成一次点加运算需要的时间大约是2llls,平均完成一次标量乘运算大约需要11ms,一秒钟大约可以标量乘运算90次。5.2标量乘模块应用实例椭圆曲线实现加密方案的解密和解密算法分别由算法5.1【39】和算法5.2【39】给出。首先把明文辨表示为椭圆曲线上的一个点髟,然后再加上素Q进行加密。发方把密文cI=船和c2=盯+坦发给接收方。接收方利用自己的私钥d计算弼=d(舻)=七(卯)=坦,进而可以恢复出明文肠=c2一地。算法5.1:基本椭圆曲线加密输入:D=(E,P,玎),公钥Q,明文脚。输出:密文(cI,c2)。1.将明文所表示为E(GF(2”))上的点M。2.选择任意Ji}£【l,胛一1】。3.计算C=舻。4.计算c2=M+坦。5.返回(cl,c2)。算法5.2:基本椭圆曲线解密输入:D=(层,只力,私钥d,密文(cl,c2)。输出:明文棚。1.计算M=c2一鹅。2.从点取出明文m,返回m。根据算法5.1和算法5.2可以清楚的看出,无论加密运算或者解密运算都可以归结为椭圆曲线在有限域上的舻运算。其中设公钥Q=(x,y),椭圆曲线运算基点P=(‘,M),明文M和随机数k,输出点R=(屯,乃)即为加密后的数据。52椭圆曲线密码体制的研究与实现输入参数:五=(358DFlEA9EBC2E422FBEC069DDE73D2C25597CCCD2A3E244)MM=(05DDD4506014CA3E606076E2BD7521643F682C805BE0544C)M肘=(6834799299E231D481BFA43C2F0474196BE6F26744D2D823)16七=(1388AE4697582259A5493E345C937EBlD8A1E3ED84A458D5)16x=(2F4AFB049C723248FCE2F7D8652C34CA4C4A5D9A4922BFC8)16y=(708284A76F56DEB76E6A22319850749108041452F99EoAlE)16输出参数:毛=(1ABC6F51577DBFBl51812784D04lE7F929lE6F094986FD71)16乃=(20舡D3F658D893212lA485A9102c3D9D2631sCBB4EA9E459)16椭圆曲线的解密模块,设点C=(cl,c2)为密文,私钥吒。则直接通过算法5.2获取明文。5.3小结椭圆曲线密码体制的有效性和可靠性是我们关注的重点,本章利用舢tem公司的Quan:IlsII7.1平台对椭圆曲线密码体制的核心模块进了软件仿真,基本符合我们的设计期望,和理论分析保持高度一致。从仿真中我们可以看到,椭圆曲线密码系统的优化重点在两个方面,一个是有限域乘法运算的优化,一个是标量乘运算的优化,两者都存在很多优化算法,其中的核心在于在消耗硬件资源和消耗时间资源获取平衡,虽然随着硬件的发展,可以在一定程度上满足我们的需求,但是如何在性能和资源之间获得最佳,仍然是个重要的需要研究的问题。第六章结束语第六章结束语论文从有限域的基本表示方法和有限域的基本运算着手,分析了正规基表示下的二进制有限域的性质,运算法则,给出了通用的计算有限域乘法矩阵的简单方法,本文实现的对最优正规基表示下的有限域乘法矩阵的构造方法,在很大的范围了解决了有限域运算模块无法通用的问题。通过理论分析和试验数据的比较与分析,以及对算法正确性的验证,充分说明了这种算法的优越性和可靠性。因为有限域层的运算是整个运算的基础,所以对有限域运算的优化可以大大提高整个系统的运算效率。以19l位为例,其有限域元素乘法运算周期优化后为15个时钟周期,仅相当于通常方法计算用的最少192个时钟周期的×,,这在一定程度上大大提高了整个系统的运行效率。,1J椭圆曲线层的运算的重点在于其标量乘运算,它直接关系到椭圆曲线密码体制的运行效率,根据椭圆曲线上点的表示和标量乘运算舻中正整数七的NAF编码,提出了一种优化的舻算法。本文采用NAF编码,因为它具有最少的非零位,而这在一定程度上可以大大减少点加运算的次数,从而实现提高运算效率的目的。以191位为例,椭圆曲线运算层上的点加运算是比较消耗时间资源的运算,对标量乘参数采用NAF编码,可以减少大约总量坛次的点加运算。,V通过两个最主要的优化,整个系统可以在ls内实现90次舻运算,相对于其消耗的硬件资源来讲,其运算比较高效。椭圆曲线密码体制【40】的标量乘运算的硬件实现具有重要的工程应用,作为椭圆曲线密码体制的最重要的IP核,再集成其他简单的辅助模块后,就可以独立地实现椭圆曲线加密体制,也可以作为一个整体嵌入到其他的运算模块。本文采用verilog}Ⅱ)L描述了整个系统,按照层次化设计的思想把设计分为三个运算层次:第一,有限域上的运算;第二,椭圆曲线上的运算,第三,密码层的运算。对每一层的功能和接口有明确的划分,完成每一个模块的设计、仿真和综合后,利用这些模块实现了椭圆曲线加密解密模块的设计,这里采用的域的大小为191比特,实际中可以根据需要,只要简单修改域参数和更换乘法矩阵模块,就可以实现不同的域的大小,这在工程中将大大增强系统的灵活性和实用性。本文主要对椭圆曲线密码体制的FPGA实现做了初步的探索,虽然采用verilogHDL实现了椭圆曲线密码体制的描述和仿真,但是功能并不完善,还有很多方面值得改进和进一步的研究,主要包括以下几点:椭圆曲线密码体制的研究与实现1.对有限域的运算可以采用流水线的形式大大加速其基本运算,这对整个系统的运算效率会有很大的提升。2.这里实现的椭圆曲线密码运算模块,考虑到其设计的通用性,所有的模块都是采用器件的逻辑单元来实现的,所以其资源的占用是一个很大的问题,如果采用特定的芯片,考虑其固定的嵌入式单元,则可以大大节省器件的资源。3.我们这里对数据的加密是假设已经为椭圆曲线上的一点,而把明文信息映射到椭圆曲线上的点,则需要设计合适的HAsH函数模块,这也是下一步工作的重点。4.针对多项式基和正规基下的椭圆曲线,其运行期间若可以彼此相互转换,则在一定程度上可以加速椭圆曲线的运算,而基转换矩阵的建立和实现则是一个难题,也是下一步工作的重点。致谢致谢首先要感谢我的导师李小平教授。在读研究生期间,李老师对我的培养花费了巨大的心血,给我提供了良好的学习环境和许多实践的机会,使我的学习和工作能力都得到了很大的提高。在论文课题方面给与的方向指导,使我少走了很多弯路,能顺利完成论文的各项工作。李老师严谨的治学态度,孜孜不倦的钻研精神,求实的工作作风和渊博的学识给我极大的教育,使我终身受益,谨此表示崇高的敬意和衷心的感谢!感谢刘彦明副教授,在我三年的学习期间给与我的理解和支持,感谢刘老师在我做论文期间给与我的帮助和精神的鼓励,在论文期间,刘老师更是在百忙之中多次抽出宝贵的时间对我的论文进行仔细的审阅和指导,提出了很多宝贵的意见和建议。感谢董庆宽老师,孙小平老师和王海老师对我的关心和帮助,在做算法设计的时候有了他们的指导,使我有了很多后来证明有效的设计思想;感谢杨一展、李亚娟、吴琼、田晓明、孙威、柯资颖同学,与他们在一起工作和学习很愉快;感谢宋斌、郭晓江师弟在我完成论文期间对我的帮助。最后,我要感谢我的父亲、母亲和妻子,没有他们三年来的理解和支持,我走到这一步是不可能的,在这里,我衷心的感谢他们!参考文献参考文献【1】A.RM啪leh.E仿cientalgori恤璐锄d盯chitecn鹏s蠡wfieldmllltiplication11singG羽瑚ianno】咖Ialb刮;嚣.IEEET瑚sactionsoncomputers,2006,55(1):34-47.【2】Kobli乜,N..Ellipticpp.204—209,1987.cun,ecryptosysce娜,Ma吐Iemalicsofcoml,utationv01.48,【3】Mill盯,V—u∞sofellipticComputcrcun,eiIlcryptoFaphy,IncRⅥ’1D’85,Lectu佗NotesinScience,LNcs218,pp.417.426,Spring*Verhg,1986.【4】信息科技领域研发热点及发展态势的文献计量分析研究.中国科学院成都文献【5】A娜GB,FMULlill.R.c,v锄St∞e.S.A。AnImplem叫t芒Lti∞ofEllipticCryptosystemsoverGF(2嘲)叨.IEEEJonSelectedA陀嬲iIl情报中心战略情报研究小组.CuⅣeC咖姗mjcatioIls,cD傅ogmpIlic1993,1l(5):804-813.【6】0kadas,ToriiN,KouiclliI.Inlplementati∞ofElli砸ccurveCo眦essoroV盯6F(2“)∞FPGA[C】.workshop∞CryptogmpllicHardwa聆觚dEmbeddedSystem-CHES’2000.SprirIg-vedag,LNCS1965,2000:25—40.【7】orl她doGapcrC.Alli曲-pe响rIIlanceReco曲gumbleElliptic1965,2000:41-56.向G联2”)【C】.worksh叩∞CryptogmphicH盯d聊嘴andCHES’2000.S面ng-vedag,LNCS【9】IEEEP1363.StaIldardEm妣dCl删e№es蚶System【8】白国强,陈弘毅.椭圆曲线密码的芯片集成。中兴通讯技术,2004.4:27—29.Spccificatio璐forPublicKeyCrypto笋aphyDraRⅥ臌on13,1999【10】R.C.MlllliIl,I.M.0】哕szchuk,S.A.Ⅵmstone,姐dRM.Wil∞n.Op血nalNomlal.B嬲esillGF(矿),DiscreteAppliedMathematics,22:149_16l,1988—89.【1l】R.C.Mllllill.Acha船c涮2ationHallof恤ex呦edi矧butio船ofop缸alno咖alConf.盯cnce,Budin鲫,ve姗。她1990,ofellip石ccun,etobases,Proc.M掷llall印pe配[12】N.Koblitz,A.MenezesDesiglls,CodesandMemorialaIldS.V锄stone.11忙s诅tecry舯)黟aphy.cryptography,2000,19:173一193.Menezes,ScottVhnstone.Guideto【13】DaH℃lHankerson,Al舶dEllipticCurveCryptography,2003:26.[14】h仕p:,/wwwcerticom.coIll/index.php?action=ecc,mam9.【15】IEEEP1363a.includedECDSA,ECNR,ECNR2,ECPV:ECDHandECMQV:58椭圆曲线密码体制的研究与实现I)I曩ftVersionD9(2001.6.13).【16】廖群英,孙琦.有限域上最优正规基的乘法表,数学学报,、,01.48,No.5,(2005),947—954.【17】cenicomResearch.EIliptic【18】ANSIX9.62.PublicKeyCur、,eCurveCryptogmphy,v1.O(2000,9,20).forⅡleFiIlancialServicesCryl)tographyIndus仃y:m1999.Elli面c【19】ANSIDig砌sigIlan鹏趟godⅡlIn(ECDSA),approvedJanuaryCr),ptogr印byKeyTI孤lsl'onUsiIlgEllipcicCurvcA铲涨nt锄dver.1999,l,8.X9.63.PublicKeyFor11嵋FiIlaIncialSen,icesIndusny:KcyCrypto掣aplly,WbfkingDmR【20】王庆先.有限域运算和椭圆曲线数乘运算研究:【博士学位论文】.成都:电子科技大学,2006.【21】N.Kobl池.Ellip如Cl】n,eCryptosyste娜Ma也C伽叩V01.48.1987.口2】Leonard2001.Jacobs.Ellip虹cCun,cCryptosystemsAn0№rview,SANS,M鲫chin24,【23】V.S.Mill既U辩ofElli砸cCr),1)to’85.LectI鹏Notes1985.417.426.CurvesininCrypto铲ap量ly.Adv趾cesCryptolo舒Bedin.C蚰lputerScienccNo.218.Sprillg-Vedag【24】HegcI乙Frium.码eGroupLaw∞ElIi砸cCun,cs∞HessenforIn,CAcR(univ.curveofWh制oo)TcchllicalRcpon,COI汛200l—09,2001.【25】T.Satoh,K.A∞kiands.Mium.0lverviewofellipticcr)fpto掣aplly,Proc.ofPKC’98,s面ng洲打lag,LNcS1431,pp.29-49,1998.[26】冯克勤,余红兵.整数与多项式,1999:(134—148).【27】htIp:伽n删cemcom肋n仉ndex.php?action=ccc,IIlam9-1.【28】A.ReyllaIli-MasolehMumplie体overandM.A.HasaILE伍cientDi百t-SerialNomlalB勰isGF(2”)ACMTh璐.EmbeddedConlputingSystcnls(TECS),speciaIis乳le∞embeddedsy毗ms雒d∞c嘶%v01.3,∞.3,pp.575—592,Aug.2004.口9】Ar鹊hReyllaIli—Masolc】1,MemberIEEE.LowIEEE,andSequentialM.Anw盯Ha舶ll,SeIliorMeInberComplex毋word・LevelandC.K.Koc.AnNomalBasisMIll虹pli哪.NonnalB嬲is【30】B.SumrE衢cient研I恤lalTypcIlFMULtiplicr,IEEETr趾s.Compu觚,、,01.50,no.1,pp.83-88,J锄.2001.【3l】A.Reyhani-MasolehandM.A.Has姐.FastNomlalBasisMultiplicaljon啦啦GeneralPurl)o∞Processors,ToappcaratTecllIlicalRcpon,CORR200l一25,2001.SAC’2001.-CAC取UIliv.ofWraterIoo)[32】S.M.Yell'ImprovednonIlalb髂isinversioninG,(2“),IEEElec仃ollicsLette岱,参考文献Voll33,No.3,pp.196—197,J锄.1997.【33】BrickdlFF.A融modularmultiplicationinalgodthm谢th。applicationProceedingSto似okeycrypto擎aphy,advanccscrypt0酉aphyofC呻to-82,NewY-ork:P1cn啪Press,1983,51・60。口4】Sallg【35】T.Itohho也chaIlgH锄硒m.舢go删恤ofandiIlvefscoperati∞iII叨.IEEETr锄啦cdO船∞Infommti∞nc0职1998.s.Tsujii.A触a190Iitlmforco唧utingGF(2“)llsingnomlalba∞s,Infomlati∞粕d1988.c伽删on,volIIlm6plicaiiveinversesin78,pp.17l-177,【36】Dan℃lHalll【erson,Al舭dMeIlezes,scDttVa哪瞳。鹏.(hidetoEllipticc咖cuⅣeCrypto鲫hy,2003:(81・90).【37】JulioL0pez.AnovenriewofEllipticCu“eCryptography,etal,2000.t0【38】Dan.clH锄kcrs‘砜Al舶dMemzes,scottVaIIls胁∞.('mideCrypto掣aphy,2003:(91.95),【39】Dan.elH孤k盯sonAl矗edM∞ezes,ScottV缸lst0船.GuideCryptography,2003:(10一13),【40】A.Menezes,T.0karIlot0.ReducingdlipticfinitecurveElliptictoEllipticCuⅣe109arithmstologari岫sinafield.http:/^^九^几vcac邶nam.圳吼edoo.ca,2003.Low【411F强.H,Dai.Ycomplcx酊bit-p撕llel∞册alIssuel,8VLsIb勰esmultipli粥forandinve礴bnGF(2”),Elec仃onicsLetl髓sVol啪e40,【42】LijunGa0,sobelInan.GE.I删瑚wdinJ雒.2004Page(s):24—26.desi弘sfor删小岫lkationGF(矽)overnomlba∞sASIC,sOCConfhence,2000.Procccdings.13thAnnIlalIEEEIntemaliollal13-16S印t.2000Page(s):97—101.【43】ReyhaIli—MaSoleh,气Has锄.M,A..Emciemmultiplicationbeyondoptinlalnom“bases,Compute塔,IEEE1hm∞tio船叩VroIume52,Issue4,April2003Page(s):428~439.scaIar[44】An谢,B.,HllalpcngWu.Par击IelmllItiplicati∞内relIi砸ccurvecryptosyste栅CoI衄uIlications,Circu砥andSySte脚,2005.Proceedings.2005IntemationalConferenceonⅥ)luInel,27.30M匆2005Page(s):71-73voL1.研究成果6l研究成果【l】李德庆,宋斌.Rs422瓜S485分析模型及其应用.电子元器件应用:2008・Ol

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

Top