西安电子科技大学硕士学位论文椭圆曲线密码体制的研究与实现姓名:李德庆申请学位级别:硕士专业:电路与系统指导教师:李小平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叩memoftlleiⅡtemet,iIlf.0衄ationsecudtyisgivenmore趾dmo陀att蜘tiolLThein|’o加a吐onexcllangebecomesla唱er锄dla唱er.Itisadi伍cunpmblemtomeetthedemandwitllthe仃aditioIlalsoftwarecIlcryptionmetIlod,∞thehardwa∞ilIlplementation印peared.Asmwpublic-kcycryptography,elli讲iccunrecrypto鲫11yh船someexceIlent砌butcs:shortlengmoftheke)r,f弧speedof虹坨proce鼹,hi出levelof也esecuri劬Anof也esemakeit觚idealchoice南rtheapplication.m自ct,itisoneof纯m‘lardsofn坞北斌gemra矗ontothepublic-keycryptography.Inmepaper,baSedonthegene删硫i∞觚danal”icalstIldytothepre矧1tresearchoftlleElli砸cCur、,eCry舯)graphy(ECC),Ⅱ地bluem印oftheECCis季Ventocomplete趾抽dep曲d鼬tsystem.Fifst'westlldytllear主t}lme6cop啪tionintllefinitefield.iIlwhich辩vemltllcoreI璐锄dusefIllinferencesoftl岵ECC戤晔蚴led.Sccondly’缸tha妇H饿einlpl髓黝tationoftheelli—ccuⅣecr),pt0铲aphyaritllmeticistllehotsplotdirectionintheECCrc∞arcll,∞thellafdwareimp】ementationsoftlle蠡啦tcfieldol,crationsa犯西venwitlloptilllal∞姗alb猫is,medesigllof岫ECCcorcmOdmes∽compIet甜,wllichmllldestl惦dlipticc哪escalarmultiplication枷chco脚【binesNAFcode、vimamendedarithIIlctic.Finally,theresultofsiIIlulalion锄dapplicationare西vcn,inwhichⅡleconclusj∞s啪marizesmatECC∞al盯multiplicationmodlllesbasedonIIopt砌∞mlalb嬲escompletesacomputingnoeds矗mellmsat50MHZ肌qucIlcyof血cworkin舒(2州).Keyword:ellipticcuryecryptographyGalois6e埘optimm舯瑚村basisscalarmultiphcati蛐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^/DSAEcc密钥长度RSA/ECCⅢ口婢窑钥长度窑钥长度比l酽5121065:l10搴7石81326:l101l1024160T:li庐204821010:l107B2100060035:l表2.RSA和EcC速度的比较SecurityBuilder1.2丑S舡咂3.D功能i63位E0c(IL5)l,024位RsA(M,密钥对生成3.84,TD8.32.1(ECNRA)签名22B.43.O(ECDSA)9.9(ECNRA)认证12.T10.T(ECDSA)Diffie一一Hell孤2m7.3l,65哇.0密钥交换显然,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等都做了大量的工作,他们所开发的有关椭圆曲线密码体制标准的文档有:IEEEP1363P1363a、ANSIX9.62X9.63、ISo/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芯片,