有限域gf(2^227)上的乘法器及模乘算法

文档序号:8361173阅读:592来源:国知局
有限域gf(2^227)上的乘法器及模乘算法
【技术领域】
[0001]本发明公开了有限域GF(2~227)上的乘法器及模乘算法,属于数据信息加解密的技术领域。
【背景技术】
[0002]随着信息技术的飞速发展,随着网络的普及以及广泛的应用,网络上流通的数据越来越多越来越大,并且人们对网络上数据传输的安全性要求越来越高,这样对于网络安全的研宄带来了很大的挑战,因此密码学如今成为了信息安全的核心。密码学中公钥密码体制得到了广泛的研宄和使用,在对公钥密码学的研宄中,一种更加节省资源加解密效率更高的密码体制被提出,即椭圆曲线密码学。
[0003]1985年,Neal Koblitz和Victor Miller分别提出了椭圆曲线密码系统(Elliptic Curve Cryptography,ECC),自从ECC诞生之后它的安全性和实现效率就被众多的数学家和密码学家所广泛研宄,目前它被认为是已知的公钥密码体制中每比特加密强度最高的一种,同RSA密码算法相比,它具有更高的安全性能,计算速度快,存储空间占用小。在ECC系统硬件实现中,基于二元域的多项式基的实现方式被广泛的使用,而在ECC系统中,点乘模块是影响处理速度等性能的关键,而点乘模块中模乘模块又是它的核心,所以对模乘的研宄更是关键所在。
[0004]因此为了提高整个系统的性能,减少资源消耗,寻求更好的模乘模块的实现方式成为了研宄关注的焦点,研宄机构对于NIST推荐的几种位宽已经有了很广泛和深入的研宄,所以有一些研宄机构开始着眼于一类具有特殊类型约减多项式的位宽。

【发明内容】

[0005]本发明所要解决的技术问题是针对上述【背景技术】的不足,提供了有限域GF(2~227)上的乘法器及模乘算法,提出了针对227bit位宽操作数的AOP(All OnePolynomial,一个多项式)型约减多项式,实现了最高位宽为226bit的ECC系统中的操作数模乘运算,解决了现有模乘资源消耗大的技术问题。
[0006]本发明为实现上述发明目的采用如下技术方案:
[0007]有限域GF(2~227)上的乘法器,将一个操作数由低位至高位划分为固定字长的若干部分,对各部分与另一操作数按位相乘的部分积进行模加,模乘器具体包括:
[0008]部分积叠加模块、第一寄存器、第一累加模块、第二寄存器、第二累加模块、第三寄存器、模加模块、第四寄存器,其中:
[0009]部分积叠加模块,其输入端接操作数信号,其输出端与第一寄存器输入端连接,输出操作数按位相乘部分积的叠加结果至第一寄存器输入端;
[0010]第一寄存器,其输出端与第一累加模块输入端连接,输出寄存的部分积叠加结果至第一累加模块;
[0011]第一累加模块,其输出端与第二寄存器输入端连接,输出第一累加结果至第二寄存器;
[0012]第二寄存器,其输出端与第二累加模块输入端连接,输出寄存的第一累加结果至第二累加模块;
[0013]第二累加模块,其输出端与第三寄存器输入端连接,输出第二累加结果至第三寄存器;
[0014]第三寄存器,其输出端与模加模块第一输入端连接,输出寄存的第二累加结果至模加模块;
[0015]模加模块,其第二输入端与第四寄存器输出端连接,其输出端与第四寄存器输入端连接,模加模块对第二累加结果进行组合逻辑运算得到模乘结果,第四寄存器寄存模乘结果并将该模乘结果反馈至模加模块作为下一次模加运算的输入数据。
[0016]所述有限域GF(2~227)上的乘法器,第一和/或第二累加模块为2级异或树链结构的累加模块。
[0017]有限域GF(2~227)上的模乘算法,利用所述乘法器并采用数字串行的执行方式完成模乘运算,包括如下步骤:
[0018]A.将两个乘数填位表示成位宽m为227bit的第一操作数、第二操作数;
[0019]B.将第一操作数由低位至高位依次划分为字长是57bit的第一至第四部分,将第一操作数的每一部分依次与第二操作数按位相乘所得的部分积叠加后再模加。
[0020]作为所述有限域GF(2~227)上模乘算法的进一步优化方案,步骤B中所述的部分积按如下方法得到:采用AOP型约减式进行冗余表示后的约减多项式f(x) = x227+l对第二操作数循环左移以确定第二操作数的下一操作位,采用并行方式计算第一操作数每一部分与第二操作数每一操作位的积。
[0021]进一步的,所述有限域GF(2~227)上模乘算法,步骤B具体包括如下状态:
[0022]a.第一寄存器寄存第一操作数的第一部分与第二操作数按位相乘的部分积叠加结果,导入第一操作数第二部分并进入状态b ;
[0023]b.第一寄存器寄存的数据经第一累加器处理后得到第一累加结果,第一累加结果寄存在第二寄存器中,第一操作数的第二部分与第二操作数按位相乘的部分积叠加结果寄存在第一寄存器中,导入第一操作数第三部分并进入状态c ;
[0024]c.第二寄存器寄存的数据经第二累加器处理后得到第二累加结果,第二累加结果寄存在第三寄存器中,第一寄存器寄存的数据经第一累加器处理后得到第一累加结果,第一累加结果寄存在第二寄存器中,第一操作数第三部分与第二操作数按位相乘的部分积叠加结果寄存在第一寄存器中,导入第一操作数第四部分并进入状态d ;
[0025]d.模加器对第二累加结果进行组合逻辑运算得到第一次模乘结果,第二寄存器寄存的数据经第二累加器处理后得到第二累加结果,第二累加结果寄存在第三寄存器中,第一寄存器寄存的数据经第一累加器处理后得到第一累加结果,第一累加结果寄存在第二寄存器中,第一操作数第四部分与第二操作数按位相乘的部分积叠加结果寄存在第一寄存器中;
[0026]e.模加器对第二累加结果、第一次模乘结果进行组合逻辑运算得到第二次模乘结果,第二寄存器寄存的数据经第二累加器处理后得到第二累加结果,第二累加结果寄存在第三寄存器中,第一寄存器寄存的数据经第一累加器处理后得到第一累加结果,第一累加结果寄存在第二寄存器中;
[0027]f.模加器对第二累加结果、第二次模乘结果进行组合逻辑运算得到第三次模乘结果,第二寄存器寄存的数据经第二累加器处理后得到第二累加结果,第二累加结果寄存在第三寄存器中;
[0028]g.模加器对第二累加结果、第三次模乘结果进行组合逻辑运算得到最后的模乘结果O
[0029]本发明采用上述技术方案,具有以下有益效果:
[0030](I)复用了乘法操作单元227*57,节约了资源;
[0031](2)很少的使用移位寄存器,直接进行了乘法操作而不需要截断矩阵和矩阵简化模块,使设计得到简化;
[0032](3)在部分积叠加部分中插入了寄存器,切断了模乘操作的路径,从而减小关键路径长度,使得关键路径最大延时为TA+2Tx,提高时钟频率;
[0033](4)通过状态机控制使得整个操作流水执行,是在多消耗寄存器资源的条件下提高时钟频率,提升模乘操作的效率;
[0034](5)提出了应用于位宽m= 226的ECC系统的m = 227的模乘模块,m = 226的时候,具有AOP类型约减多项式,对其操作数进行冗余表示为m = 227,简化其约减多项式,提高模乘性能。
【附图说明】
[0035]图1是本发明整体数据流图。
[0036]图2是控制数据流的主控状态机。
[0037]图3是模乘模块细化的结构框图。
[0038]图4是模乘模块中2级异或树链。
[0039]图5是模乘模块中Reduct1n模块结构框图。
[0040]图6是流水执行方式各个状态进行的操作。
[0041 ]图7是本发明模乘整体设计框图。
[0042]图8是模乘模块的框图。
【具体实施方式】
[0043]下面结合附图对发明的技术方案进行详细说明。
[0044]图1所示是本发明整体数据流图,整体模块包括了四个子部分:输入数据加载以及分配寄存器堆、模乘整体模块、模加模块、部分积寄存器堆。
[0045]在主控状态机的控制下,分时给出各个逻辑单元的操作数据,
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1