一种基于椭圆曲线公钥密码学算法的硬件加速器和方法与流程

文档序号:36161902发布日期:2023-11-23 10:21阅读:43来源:国知局
一种基于椭圆曲线公钥密码学算法的硬件加速器和方法与流程

本发明涉及硬件加速器,具体而言,涉及一种基于椭圆曲线公钥密码学算法的硬件加速器和方法。


背景技术:

1、椭圆曲线公钥密码算法(ecc)能够以更短的密钥长度达到与rsa公钥密码算法相同的安全性能(例如160位的ecc安全性能与1024位的rsa安全性能相同)。

2、ecc的实现方式能够大致分为三类:纯软件实现、软硬件协同实现以及纯硬件实现。纯软件实现方式具有的高拓展性、低成本使其成为ecc的主要应用方式。

3、然而,ecc的纯软件实现方式虽然有良好的拓展性,但其计算速度慢、吞吐率低;而对于纯硬件实现能够有效提高计算效率,但其拓展性很低且成本较高。


技术实现思路

1、本发明的目的在于克服现有技术缺陷,且提供了一种运行高效,具有低成本、较高拓展性的基于椭圆曲线公钥密码学算法的硬件加速器和方法。

2、本发明提供的一种基于椭圆曲线公钥密码学算法的硬件加速器,其技术方案如下:

3、一种基于椭圆曲线公钥密码学算法的硬件加速器,用于计算数据标量k与二维坐标的乘积,所述硬件加速器,包括:

4、坐标投影单元、坐标逆投影单元、点加单元、点乘单元、倍点单元、模乘单元、模加减单元和模逆单元,

5、所述坐标投影单元用于将通过上层接口接收到的二维坐标转换为第一三维坐标,并将所述第一三维坐标传输至所述点乘单元,以通过点乘单元对上层接口接收的数据标量k与二维坐标做点乘运算;

6、所述点乘单元与所述坐标投影单元、所述坐标逆投影单元均通信,所述点乘单元用于进行所述数据标量k与所述第一三维坐标的点乘运算,并将点乘运算后的结果反馈至所述坐标逆投影单元,在运算时,所述点乘单元通过进行初始化获得初始化的第二三维坐标,并且,所述点乘单元根据所述数据标量k的数值结构,通过预设次序及次数分别调用所述点加单元做点加运算和所述倍点单元做倍点运算来实现点乘运算;

7、所述点加单元被设置为在接收所述点乘单元发出的对两个特定对象进行点加运算的调用指令后,通过预设次数及预设次序调用所述模乘单元和所述模加减单元来实现;

8、所述倍点单元被设置为在接收所述点乘单元发出对特定对象进行倍点运算的调用指令后,通过预设次数及预设次序调用所述模加减单元和所述模乘单元来实现;

9、所述模乘单元内设置有快速模约简算法电路,以根据所述点加单元发出调用指令对所述点加单元要求的两个特定对象进行模乘运算和/或根据所述倍点单元发出调用指令对所述倍点单元要求的两个特定对象进行模乘运算;

10、所述坐标逆投影单元用于调用模逆单元对点乘模块返回的计算结果做逆投影,以转换为二维坐标并通过上层接口单元反馈出去。

11、采用上述技术方案,与现有技术相比,本发明所提供的技术方案至少可以带来的有益效果有:由于在加速器中设置有坐标投影单元、坐标逆投影单元、点加单元、点乘单元、倍点单元、模乘单元、模加减单元和模逆单元,当需要运行数据标量k与接收到的二维坐标的乘运算时,将该二维坐标通过坐标投影单元转换为第一三维坐标,并调用点乘单元将数据标量k与该第一三维坐标进行点乘运算,根据数据标量k的数值解构而导致的运算需要,能有效调用相关模块和单元,从而减小资源消耗,提高模块使用率。与此同时,由于模乘单元内设置有快速模约简算法电路,能够提升模乘运算效率,从而提升整体运算速率,在结合所涉模块和单元后,有效解决了现有技术的拓展性很低且成本较高的技术问题。

12、作为优选,所述点乘单元被设置为根据所述数据标量k的二进制数的位数确定执行的循环次数,其中,在每次循环中,根据所述数据标量k在当前循环对应的二进制位的数位,及当前数位对应的二进制数为0还是1,以及参与当前运算的两个点是否相同确定执行点加运算还是倍点运算,进而当前次循环输出的点记作qi;

13、当当前循环对应的二进制位为末位时,则当前循环的输出为经点乘模块点乘运算后的结果,并将其反馈至所述坐标逆投影单元;

14、根据数据标量k二进制数码情况,进行点加模块和倍点模块的调用,在保证运算准性的前提下提高运算效率。

15、作为优选,所述点加单元被设置为在对其接收到的两个特定对象进行点加运算时,首先判断其接收到的两个特定对象中其中一个对象是否有三维坐标的z坐标为0,如果有,则确定其接收到的两个特定对象中另外一个三维坐标为点加单元的运算结果;否则:

16、基于其接收到的两个特定对象三维坐标中的坐标值做若干次调用所述模乘单元进行模乘运算,和/或做若干次调用所述模加减单元进行模加运算和/或模减运算确定点加运算后的各坐标值;

17、其中,在做模乘运算、和/或模加运算和/或模减运算时,均为模n的运算,其中n为nist p-256有限域的阶;

18、这样在运算进行时,可以有效的提高运算执行效率。

19、作为优选,所述模乘单元内设的所述快速模约简算法电路用于获取其接收到的两数据对象乘积对n的模,在对其接收到的两数据对象乘积求对n的模的过程中,先将其接收到的两数据对象的乘积用若干个以预设顺序排列的目标数表示,其中每个所述目标数都有相同数量的二进制位数,然后基于多个所述目标数组合成多个数组,最后基于形成的所述多个数组做模加运算及模减运算得到两数据对象的模乘运算结果;

20、据此运算电路,不仅提高运算效率,降低造价,而且实现了运算精度和次序的可调节,进而能够结合运算需求的两个元素的乘积结构特点,通过形成的多个数组做模加运算及模减运算得到其接手的两数据对象的模乘运算结果,大大提升了运算速率,进而提高加速器的运算速度。

21、作为优选,所述模加减单元被设置为在对其接收到的两数据对象求模加减的过程中,分别求取其接收到的两数据对象的和与差,然后基于其接收到的两数据对象的和与预先设定数据q的大小关系及其接收到的两数据对象之间的大小关系确定模加减运算结果;进而通过内设运算程序,对其接收到的数据对象坐标进行剩余类加减法运算,以提升运算速率和降低运算复杂度级别。

22、作为优选,所述倍点单元被设置为在对目标三维坐标做倍点运算时,基于所述目标三维坐标中三个坐标值做若干次模乘运算、和/或模加运算和/或模减运算确定倍点运算后的坐标值;

23、其中,在做模乘运算、和/或模加运算和/或模减运算时,均为模n的运算,其中n为nist p-256有限域的阶;

24、基于目标三维坐标中三个坐标值进行nist p-256有限域上的相关运算,提升运算速度的同时,增强其使用价值。

25、作为优选,所述模逆单元被设置为根据获取的两数据是否为素数执行移位运算,根据两个初始化的数据是否为素数执行移位或与预设数求和后移位运算,并根据获取的两数据移位后形成的两数据的大小关系,及与两个初始化后的数据移位后形成的两数据的大小关系确定模逆运算结果;进而在完备相应代数运算的前提下,保证了相应元素逆运算的执行力和元素逆的唯一性,实现了加速器运行结果的有效反馈。

26、作为优选,所述坐标投影单元包括雅可比坐标投影运算单元,所述坐标逆投影单元包括雅可比坐标逆投影运算单元;以确保坐标从二维到三维变化的可行性,实现运算的可调节、可控制性,进而确保运算结果输出的有序性和可利用性。

27、本发明提供的一种基于椭圆曲线公钥密码学算法的硬件加速方法,其技术方案如下:

28、一种基于椭圆曲线公钥密码学算法的硬件加速方法,用于计算数据标量k与二维坐标的点乘,基于本发明技术方案所述的基于椭圆曲线公钥密码学算法的硬件加速器,所述方法,包括:

29、将通过上层接口接收到的二维坐标转换为第一三维坐标,并将转化后的第一三维坐标发送;

30、通过所述数据标量k对所述第一三维坐标做点乘运算,并将反馈点乘运算后的计算结果;

31、对所述计算结果做逆投影,以转换为二维坐标并通过上层接口单元反馈出去;

32、其中:

33、在通过所述数据标量k对所述第一三维坐标时,首先进行初始化获取初始化的第二三维坐标,而后通过预设次序及次数分别通过所述点加单元对其接收到的两个特定对象做点加运算和通过所述倍点单元对其接收到的特定对象做倍点运算来实现;

34、在对所述两个特定对象做点加运算时,通过预设次数及预设次序调用所述模乘单元和所述模加减单元来实现;

35、在对所述特定对象做倍点运算时,通过预设次数及预设次序调用所述模加减单元和所述模乘单元来实现;

36、所述模乘单元内设置有快速模约简算法电路,以对其接收到的两个特定对象三维坐标快速实现模乘运算。

37、采用上述技术方案,与现有技术相比,本发明所提供的技术方案至少可以带来的有益效果有:通过基于本发明技术方案中的一种基于椭圆曲线公钥密码学算法的硬件加速器,在计算数据标量k与二维坐标的点乘运算的过程中,根据标量k的数据结构调用点加运算和倍点运算,而无论是点加运算或是倍点运算都需要调用模乘运算,然而模乘运算则基于了快速运算程序电路,能够提高运算速率,从而有效提升了算法的吞吐率,对上位模块需求的对于点乘运算的完成效率具有了显著提高。

38、作为优选,所述模乘单元采用快速模约简算法求取模乘运算结果,过程包括:获取两数据对象乘积对n的模,在对所述两数据对象乘积求对n的模的过程中,先将所述两数据对象乘积用若干个以预设顺序排列的目标数表示,其中每个所述目标数据都表示一定数量的二进制数,然后基于多个所述目标数组合成多个数组,最后基于形成的所述多个数组做模加运算及模减运算得到两数据对象的模乘运算结果;这样在确保运算准确性的同时提高运算速率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1