椭圆加密体制实现

发布时间:2022-06-9 阅读量:853 来源: 我爱方案网整理 发布人: Aurora

迄今所投入使用的椭圆加密系统中,绝大部分的密钥长度都比较短,一般集中在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)的硬件实现也将是公钥密码体制中的一个聚焦点。本文虽然已经为将来的工作打下了良好的基础,在以下几个方面还有大量的工作需要做。首先是可编程逻辑器件的发展,以后必然出现能提供更大门数,能提供更快速率的器件;其次是椭圆曲线密码体制本身的改进;最后是有限域数学运算的硬件实现算法的进一步改良。随着以上各个方面的发展,将能提供更长密钥和更快的数据速率的硬件实现,为国民经济和社会发展提供更快更安全的加密系统。

 

 


相关资讯
无源晶振YSX321SL应用于高精度HUD平视显示系统YXC3225

在现代汽车行业中,HUD平视显示系统正日益成为驾驶员的得力助手,为驾驶员提供实时导航、车辆信息和警示等功能,使驾驶更加安全和便捷。在HUD平视显示系统中,高精度的晶振是确保系统稳定运行的关键要素。YSX321SL是一款优质的3225无源晶振,拥有多项卓越特性,使其成为HUD平视显示系统的首选。

拥有卓越性能的高精度超薄低功耗心电贴—YSX211SL

随着医疗技术的进步,心电监护设备在日常生活和医疗领域中起到了至关重要的作用。而无源晶振 YSX211SL 作为一种先进的心电贴产品,以其独特的优势在市场上备受瞩目。

可编程晶振选型应该注意事项

对于可编程晶振选型的话,需要根据企业的需求选择。在选择可编程晶振的时候注重晶振外观、晶振的频率、晶振的输出模式、晶振的型号等等,这些都是要注意的,尤其是晶振的频率和晶振输出模式以及晶振的型号都是需要注意的。

性能高的服务器—宽电压有源晶振YSO110TR 25MHZ,多种精度选择支持±10PPM—±30PPM

在现代科技发展中,服务器扮演着越来越重要的角色,为各种应用提供强大的计算和数据存储能力。而高品质的服务器组件是确保服务器稳定运行的关键。YSO110TR宽电压有源晶振,作为服务器的重要组成部分,具备多项优势,成为业界必备的可靠之选。

差分晶振怎么测量

其实对于差分晶振怎么测量方式有很多种,主要还是要看自己选择什么样的方式了,因为选择不同的测量方式步骤和操作方式是不同的。关于差分晶振怎么测量的方式,小扬给大家详细的分享一些吧!