一种双域模逆的硬件实现方法技术

技术编号:18662377 阅读:38 留言:0更新日期:2018-08-11 16:19
本发明专利技术公开了一种双域模逆的硬件实现方法,涉及信息安全技术领域。该方法采用硬件描述语言构建了一个模逆控制状态机以及两个有限域的模加、模减和移位运算单元,并且通过模逆控制状态机调用两个有限域的模加、模减和移位运算单元,硬件实现了素域和二元域两个有限域的双域模逆运算,所以,采用本发明专利技术实施例提供的方法,可以同时融合两种不同有限域的算法结构,使得运算资源高效可复用,极大的节省了硬件资源,提高了运算速度,优化了硬件面积。

A hardware implementation method of dual domain modular inversion

The invention discloses a hardware implementation method of dual-domain modular inversion, which relates to the technical field of information security. This method uses hardware description language to construct a modular inverse control state machine and modular addition, modular subtraction and shift operation units of two finite fields. The modular addition, modular subtraction and shift operation units of two finite fields are invoked by the modular inverse control state machine, and the dual-domain modular inverse operation of prime field and binary field is realized by hardware. Therefore, by adopting the method provided by the embodiment of the invention, the algorithm structure of two different finite fields can be merged simultaneously, which makes the operation resources highly reusable, greatly saves the hardware resources, improves the operation speed and optimizes the hardware area.

【技术实现步骤摘要】
一种双域模逆的硬件实现方法
本专利技术涉及信息安全
,尤其涉及一种双域模逆的硬件实现方法。
技术介绍
随着计算机网络和信息技术的发展,信息安全在各领域发挥着越来越重要的作用,其中密码学已经成为信息安全技术的核心,椭圆曲线密码(ECC)是一种新兴的公钥密码体制。与传统的RSA算法相比,在保持同样的安全强度的条件下,ECC所需的密钥长度更短,存储更少,计算更快捷。ECC的这个技术优势使之得到密码学界和信息安全产业的广泛关注,具有很好的应用前景。目前国内的ECC算法有SM2算法,ECC(SM2)算法的主要运算是有限域的算术运算,其所涉及的有限域运算包括两种:素数域和二元域。现有关于ECC(SM2)算法的专用集成电路,其中有限域的模逆运算是ECC(SM2)算法中比较重要的一个步骤,硬件模逆可以大幅度的提升ECC(SM2)算法实现的速度,但是实现硬件有限域模逆的芯片较少,尤其是包括素域和二元域两个有限域的双域模逆。
技术实现思路
本专利技术的目的在于提供一种双域模逆的硬件实现方法,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术采用的技术方案如下:一种双域模逆的硬件实现方法,包括如下步骤:S1,采用硬件描述语言构建模逆控制状态机和基本运算单元,所述基本运算单元包括:移位运算单元、素域和二元域的模加运算单元、素域和二元域的模减运算单元;S2,所述模逆控制状态机按照素域和二元域模逆算法流程,通过调用素域和二元域的模加、模减和移位运算单元,硬件实现素域和二元域两个有限域的双域模逆运算。优选地,S1中,所述硬件描述语言为verilog。优选地,所述素域和二元域模逆算法流程按照如下两个阶段进行实施:第一阶段:近似的模逆阶段,该阶段以蒙哥马利域域中的元素a2m和模数p为输入,得到中间结果result=a-12k-mmodp和参数k,该阶段通过模逆控制状态机通过调用素域和二元域的模加、模减和移位运算单元硬件实现,其中,a2m为蒙哥马利域中的元素,p为模,m为位数,n为p的最高有效位,m≥n(2n-1≤p≤2n);第二阶段:校正阶段,该阶段将第一阶段输出的中间结果result=a-12k-mmodp转换成最终结果result=a-12mmodp,该阶段可采用硬件实现,也可采用软件调用模乘实现。更优选地,所述第一阶段按照如下步骤进行实施:S201,取变量u、v、x1、x2和k,且变量u的初值为a2m,变量v的初值为p,x1的初值为1,x2得到初值为0,k的初值为0;S202,对变量v的低三位进行判断:如果v的最低一位为0,则调用移位运算单元,将v右移一位,x1左移一位,k=k+1;如果v的最低两位为0,则调用移位运算单元,将v右移两位,x1左移两位,k=k+2;如果v的最低三位为0,则调用移位运算单元,将v右移三位,x1左移三位,k=k+3;S203,对u的低三位进行判断:如果u的最低一位为0,则调用移位运算单元,将u右移一位,x2左移一位,k=k+1;如果u的最低两位为0,则调用移位运算单元,将u右移两位,x2左移两位,k=k+2;如果u的最低三位为0,则调用移位运算单元,将u右移三位,x2左移三位,k=k+3;S204,对当前域进行判断,如果当前域是素域,则调用素域的模加,模减运算单元计算中间变量:x=v-u,y=u-v,z=x1+x2,并对u,v进行判断:如果v>u,则调用移位运算单元进行移位运算,v=x右移一位,x1=x1左移一位,x2=z,k=k+1;如果u>v,则调用移位运算单元进行移位运算,u=y右移一位,x1=z,x2=x2左移一位,k=k+1;如果当前域是二元域,则调用二元域的模加、模减运算单元计算中间变量:x=v^u,z=x1^x2,并对deg(v)和deg(u)进行判断,其中,deg(u),deg(v)代表u,v的度:如果deg(v)〉deg(u),则调用移位运算单元进行移位运算,v=x右移一位,x1=x1左移一位,x2=z,k=k+1;如果deg(u)〉deg(v),则调用移位运算单元进行移位运算,u=x右移一位,x1=z,x2=x2左移一位,k=k+1;S205,如果v不等于0,则返回S202;S206,对当前域进行判断,如果当前域是素域,则输出素域模逆的运算结果result和参数k:如果x1>p,则result=x1-p;如果x1<p,则result=x1;如果当前域是二元域,则调用二元域模加、模减和移位运算单元,计算中间变量:x=p^x1,y=1左移m位,z=(2*p)^x1;并输出二元域模逆的运算结果result和参数k:如果y≥x,则result=x;如果y≥z,则result=z;如果上述条件均不满足,则result=x1。本专利技术的有益效果是:本专利技术实施例提供了一种双域模逆的硬件实现方法,采用硬件描述语言构建一个模逆控制状态机以及两个有限域的模加、模减和移位运算单元,并且通过模逆控制状态机调用两个有限域的模加、模减和移位运算单元,硬件实现了素域和二元域两个有限域的双域模逆运算,所以,采用本专利技术实施例提供的方法,可以同时融合两种不同有限域的算法结构,使得运算资源高效可复用,极大的节省了硬件资源,提高了运算速度,优化了硬件面积。附图说明图1是实现双域模逆运算的硬件结构示意图;图2是双域模逆控制状态机的实现基本流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术实施例提供了一种双域模逆的硬件实现方法,包括如下步骤:S1,采用硬件描述语言构建模逆控制状态机和基本运算单元,所述基本运算单元包括:移位运算单元、素域和二元域的模加运算单元、素域和二元域的模减运算单元;S2,所述模逆控制状态机按照素域和二元域模逆算法流程,通过调用素域和二元域的模加、模减和移位运算单元,硬件实现素域和二元域两个有限域的双域模逆运算。由于二元域和素域模逆的算法调用的基本运算单元为模加,模减,移位等硬件可实现的基本单元,并且素域和二元域模逆算法的主流程基本一致,因此,本专利技术实施例中,通过构建一个控制状态机以及素域和二元域的基本运算单元,并通过控制状态机按照素域和二元域两个有限域的算法主流程,调用素域和二元域的模加、模减和移位运算单元,硬件实现了素域和二元域的两个有限域的模逆,这样,不仅能够大幅度提升算法实现的速度,又可以节省逻辑资源,节约面积。在本专利技术的一个优选实施例中,S1中,所述硬件描述语言可以为verilog。由于Verilog是硬件设计的基本语言,能够满足目前主流硬件的设计需求,所以,本专利技术实施例中,采用该硬件描述语言。如本领域技术人员可以理解的,还可以采用其他的描述语言进行硬件的设计。在本专利技术的另一个优选实施例中,所述素域和二元域模逆算法流程可以按照如下两个阶段进行实施:第一阶段:近似的模逆阶段,该阶段以蒙哥马利域域中的元素a2m和模数p为输入,得到中间结果result=a-12k-mmodp和参数k,该阶段通过模逆控制状态机通过调用素域和二元域的模加、模减和移位运算单元硬件实现,其中,a2m为蒙哥马本文档来自技高网...

【技术保护点】
1.一种双域模逆的硬件实现方法,其特征在于,包括如下步骤:S1,采用硬件描述语言构建模逆控制状态机和基本运算单元,所述基本运算单元包括:移位运算单元、素域和二元域的模加运算单元、素域和二元域的模减运算单元;S2,所述模逆控制状态机按照素域和二元域模逆算法流程,通过调用素域和二元域的模加、模减和移位运算单元,硬件实现素域和二元域两个有限域的双域模逆运算。

【技术特征摘要】
1.一种双域模逆的硬件实现方法,其特征在于,包括如下步骤:S1,采用硬件描述语言构建模逆控制状态机和基本运算单元,所述基本运算单元包括:移位运算单元、素域和二元域的模加运算单元、素域和二元域的模减运算单元;S2,所述模逆控制状态机按照素域和二元域模逆算法流程,通过调用素域和二元域的模加、模减和移位运算单元,硬件实现素域和二元域两个有限域的双域模逆运算。2.根据权利要求1所述的双域模逆的硬件实现方法,其特征在于,S1中,所述硬件描述语言为verilog。3.根据权利要求1所述的双域模逆的硬件实现方法,其特征在于,所述素域和二元域模逆算法流程按照如下两个阶段进行实施:第一阶段:近似的模逆阶段,该阶段以蒙哥马利域域中的元素a2m和模数p为输入,得到中间结果result=a-12k-mmodp和参数k,该阶段通过模逆控制状态机通过调用素域和二元域的模加、模减和移位运算单元硬件实现,其中,a2m为蒙哥马利域中的元素,p为模,m为位数,n为p的最高有效位,m≥n(2n-1≤p≤2n);第二阶段:校正阶段,该阶段将第一阶段输出的中间结果result=a-12k-mmodp转换成最终结果result=a-12mmodp,该阶段可采用硬件实现,也可采用软件调用模乘实现。4.根据权利要求3所述的双域模逆的硬件实现方法,其特征在于,所述第一阶段按照如下步骤进行实施:S201,取变量u、v、x1、x2和k,且变量u的初值为a2m,变量v的初值为p,x1的初值为1,x2得到初值为0,k的初值为0;S202,对变量v的低三位进行判断:如果v的最低一位为0,则调用移位运算单元,将v右移一位,x1左移一位,k=k+1;如果v的最低两位为0,则调用移位运算单元,将v右移两位,x1左移两位,k=k+2;如果v的最低三位为0,则调用移位运算单元,将v右移三位,x1左移三位,k=k+3;S203,对u...

【专利技术属性】
技术研发人员:李艳华张玉禄律博
申请(专利权)人:北京万协通信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1