摘 要:
椭圆曲线加密是一种现在已知的一切公钥暗码体系中能够供给最高比特强度的一种公钥体系。在FPGA完结椭圆曲线加密体系时,依据GF(2)的多项式有限域中的乘法、求逆运算是其间的两大难点。本文供给了一种椭圆曲线加密的FPGA完结的结构,侧重评论了依据GF(2)的多项式有限域中的乘法、求逆运算的完结,并与软件完结的功用进行了比较。
加密的安全性
从数论的视点来说,任何公钥暗码体系都树立在一个NP(无法处理的问题)的根底上,即关于特定的问题,没有办法找到一个多项式时刻算法求解该问题。一般求解此类问题的算法都是指数时刻或许亚指数时刻,例如现在常用的RSA算法便是依据大整数因式分解问题的难解性。通过近三十多年的研讨,RSA算法尽管并不存在多项式时刻的算法,可是能够找到亚指数时刻的算法,现在其密钥长度有必要大于1024位才干确保信息传递的安全,而椭圆曲线加密体系
(EllipTIc Curve Cryptosystem—ECC) 是现在已知的一切公钥暗码体系中能够供给最高比特强度 (Strength-Per-Bit)
的一种公钥体系,只需求160的密钥就能够到达1024位RSA算法供给的安全等级。其依据是有限域上的椭圆曲线上的点群中的离散对数问题(ECDLP),许多暗码专家以为它是指数级的难度。因而关于椭圆曲线加密体系来说,这一点从核算量、处理速度、存储空间和通讯带宽等视点剖析,椭圆曲线加密体系都有很大的优势。IEEE现已拟定的公钥加密算法规范P1363便是依据ECC算法的。现在暗码学界普遍以为它将代替RSA成为通用的公钥暗码算法,现在已成为研讨的热门,是很有出路的研讨方向。
图1 点算法完结
图2 密钥、数据交流
图3 椭圆曲线加密体系结构图
图4 椭圆曲线加密体系FPGA电路模块框图
图5 验证体系结构
椭圆曲线加密体系
椭圆曲线
引入Non-supersingular椭圆曲线Weierstrass方程E:Y2+XY=X3+aX2+c其间a,c∈GF(2k),c≠0。为简化今后的运算,引入z使X=x/z;Y=y/z,则椭圆曲线方程化为E:y2z+xyz=x3+ax2z+cz3,界说(x,
y, z)=λ(x, y, z)。能够看出当z≠0,(X, Y)和(x, y,
z)相对应,当z=0能够理解为沿y轴趋向无量远,界说为无量远点O。则椭圆曲线上一切的点外加无量远点构成的调集构成一个Abel群,O是单位元(零元)。在椭圆曲线E上界说了两种点运算:点运算和点运算。
1) 椭圆曲线上点运算界说为:设P=( x1, y1, 1)∈E,Q=( x2, y2, 1) ∈E,-P=( x1, y1+ x1, 1),
当Q≠-P时 PQ=(x3, y3, z3) 则
当P≠Q时:
其间A=(x2z1+x1),B=(y2z1+y1), C=A+B,D=A2(A+a2z1)z1BC
当P=Q时:
其间
2) 椭圆曲线上的点运算界说为:设P=(x1, y1,
1)∈E,(ltlt-1…l0)2是整数l的二进制表明方式,lP=PPAP=Q且Q∈E。
运用上面的点运算,得点算法完结如图1所示。界说l=logpQ,若P的周期很大,则运用l、P求Q是比较简单的,但运用P、Q求l是很难处理的,这便是ECDLP,椭圆曲线加密便是树立在这个难题之上。
加密体系
在Diffe-Hellman公钥体系体系中,详细的椭圆曲线、曲线上点P及P的周期大素数N都是揭露信息。
A和B要进行通讯,首要得到椭圆曲线E、点P及素数N。然后用户A将[1,N-1]中随机选取的整数a作为私钥,A将KpubA=aP作为自己的公钥传送给用户B,与此同时B将
[1,N-1]中随机选取的整数b作为私钥,并将KpubB=bP作为自己的公钥传送给A。A、B各自将自己的私钥点乘于对方传过来的公钥得到KAB,这样就完结了密钥的交流进程。当用户A需求将待传数据m传送给用户B时,A运用m和KAB生成Em,当用户B得到Em后,运用密钥交流进程自己生成的KAB和从用户A处得到的加密数据Em生成数据m。见图2。
椭圆加密体系完结
迄今所投入运用的椭圆加密体系中,绝大部分的密钥长度都比较短,一般会集在30~60位,这是因为在软件完结时,因为软件履行速率所限,密钥长度比较大(≥160)的椭圆加密体系的速率将达不到运用要求。与此同时,在硬件完结时,密钥长度比较大的椭圆加密体系将耗费许多的硬件资源。跟着椭圆加密算法研讨的深化和可编程逻辑器材的快速开展,运用可编程逻辑器材完结椭圆加密体系现已是一个或许的挑选,下面将介绍一种完结计划,并且用软、硬件别离完结。
依据以上椭圆加密体系的要求,规划出图3的加密体系结构图,其间椭圆加密体系参数接口获取与加密有关的椭圆的基本参数,如私钥、椭圆曲线、椭圆曲线上的给定点等。椭圆曲线乘法操控部分首要担任怎么核算乘法成果,会许多调用PP和PQ来完结乘法功用;而PP和PQ通过有限域加法、乘法和求逆的调用得到成果。
软件模型验证
软件完结的首要意图是为硬件完结树立验证模型,整个软件的结构如图3所示。在软件验证体系完结的进程中,有限域上的加法是异或操作。有限域上的乘法和求逆是要害点,有必要预先考虑到硬件完结时的资源耗费,需求高效的算法。在此体系中运用了复合域GF((2n)m)带来的特殊性,能够高效、快速的完结乘法和求逆运算。
* GF(2n)上的乘法:A(y)&TImes;B(y)=C(Y)modQ(y),Q(y)为既约多项式。常用的有:
Paar-Rosner乘法器、Mastrovito乘法器、Massey-Omura乘法器、Hasan-Bhargava乘法器等,此处介绍两种挑选:
1)
当n比较小时可用查表法完结,设ω为Q(y)=0的来源根,则F2n={0,ω,Aω2n-1},运用查表法取得A、B的级次数a、b,C的级次c=a+b,再次运用查表法由c得C。在本体系中就运用了此法完结GF(2n)上的乘法。
2)
当n比较大时,运用查表法资源耗费太大,难以承受,可运用C=Z&TImes;B(n比较大时),Z是由A(y),Q(y)确认的矩阵,其间:
*
复合有限域的乘法:以GF((24)2)为例,运用GF(24)上的乘法和加法能够结构出GF(28)的乘法。子域GF(24)的来源多项式为Q(y)=y4+y+1,第二个子域的来源多项式为R(z)=z3+z+ω14,其间ω是GF(24)的基底元素,满意Q(ω)=0。域中两个元素的乘法[a0+a1z]&TImes;[b0+b1z]能够表明为:
这样GF((24)2)在复合域上的乘法就能够通过GF(24)上的有限域的数学运算而得到。
* 复合有限域的逆运算:复合有限域GF((2n)m)中的元素A的逆为:
其间
能够观察到Ar归于子域GF(2n)中的元素,能够较简单的求取(Ar)-1的值。
FPGA硬件完结
软件化的完结办法开发时刻短,可是其加密速度比较慢,阻碍了椭圆曲线加密的实用性。FPGA的办法归纳了软件的灵活性和硬件的安全性,供给了比软件化办法优胜的速度,和传统的ASIC完结比较,可编程器材因为其高度的灵活性,更适合于暗码学的运用范畴。
在软件模型的根底上,咱们针对FPGA硬件的特性对模型进行了优化。依据椭圆曲线加密算法的要求,对加密体系进行模块化规划,每个模块独立完结其各自功用,模块之间进行彼此数据交流以及时序操控,到达加密功用。图4是椭圆曲线加密体系FPGA完结的电路模块框图。
其间,椭圆曲线加密操控体系模块是整个体系的中心。当Ready为True时,体系读入初始数据并且操控RAM进行初始数据的存储。在运算进程中,该模块依据数据源对挑选器进行操控循环,进行PP=R和PQ=R运算,取得最终成果,然后通过Out_Ready信号对成果进行输出;挑选器模块依据操控体系模块供给的指令对PP=R模块和PQ=R模块进行操控,并且供给相应的实时数据流;PP=R模块和PQ=R模块运用对有限域上的加法和乘法运算进行时序操控求出椭圆曲线上点的加法运算,将直接影响到整个体系的速度功用,因而有必要对有限域上的加法和乘法运算规划合理的输入输出数据流,以到达高效率的运算速率。各种存储器模块依据不同的指令别离寄存体系的初始值、运算进程中的中心值以及体系运算成果。
归纳以上各种要素,咱们挑选了XILINX 公司的VirtexII器材,ISE
4.1作为开发渠道,VHDL作为开发言语。因为168位的椭圆曲线加密算法的核算量比较大,所以在FPGA完结的时分,布线是个值得考虑的要素。关于FPGA器材的挑选应考虑到布线资源,Virtex
系列供给的布线资源比较丰富。在Modelsim上进行仿真后得到功用指标为:在40MHz时钟驱动下第一次加密或许解密时需求初始的树立时刻,明文或许密文的输出需求2ms左右,这今后的明文或许密文的输出大约为25Mbps。能够看出,这是一个比较高的速率,能够运用于许多场合。
运用体系验证
椭圆加密硬件完结后,有必要在实践体系中得到验证。咱们特别结构了串口加密试验板进行验证,整个验证体系的结构如图5所示。通过实践体系验证,证明上述椭圆加密体系硬件完结是成功的。
结语
公钥暗码体系因为其运算和时刻复杂性较高,一般用于密钥办理、密钥交流、数字签名和认证等触及信息较少的场合。现在,被广泛运用的仍是DES、RSA这样陈腐的算法,算法的更新不只能够使原本的暗码户取得更好的功用,并且还能够使IC卡、手机等原本难以完结暗码算法的范畴能够运用暗码技能来确保信息安全。
椭圆曲线暗码体系(ECC)正在以其更短的密钥和理论上更高的强度引起业界的注重,而椭圆曲线暗码体系(ECC)的硬件完结也将是公钥暗码体系中的一个聚焦点。本文尽管现已为将来的作业打下了杰出的根底,在以下几个方面还有许多的作业需求做。首要是可编程逻辑器材的开展,今后必定呈现能供给更大门数,能供给更快速率的器材;其次是椭圆曲线暗码体系自身的改善;最终是有限域数学运算的硬件完结算法的进一步改进。跟着以上各个方面的开展,将能供给更长密钥和更快的数据速率的硬件完结,为国民经济和社会开展供给更快更安全的加密体系。