一种非对称算法计算电路转让专利

申请号 : CN202210392670.7

文献号 : CN114489571B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘曼王立峰张奇惠

申请人 : 广州万协通信息技术有限公司

摘要 :

本发明实施例公开了一种非对称算法计算电路,本发明实施例通过将非对称算法根据对应计算公式中计算符号的优先级顺序划分为多个计算层级,对于每一个计算层级采用一个计算模组进行计算,且每个计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应。本发明实施例通过计算模组之间的相互配合,能够实现非对称算法中多个计算公式的并行计算,提高了非对称算法的运算速度和运算效率,解决了现有技术在进行非对称算法的计算时存在着运算速度较低的技术问题。

权利要求 :

1.一种非对称算法计算电路,其特征在于,包括多个计算单元,所述多个计算单元用于根据输入的椭圆曲线参数,实现非对称算法的计算,所述计算单元用于实现模乘、模加或模减的计算;

所述多个计算单元被划分成多个计算模组,每个所述计算模组用于计算所述非对称算法中对应的一个计算层级,每个所述计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个所述计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应,其中,所述非对称算法根据点加计算公式中计算符号的优先级顺序被划分为六个计算层级,所述多个计算单元被划分成第一计算模组、第二计算模组、第三计算模组、第四计算模组、第五计算模组以及第六计算模组;第一计算层级为A=Z1*Z1;第二计算层级为B=Z1*A,C=X2*A,E=C‑X1;第三计算层级为D=Y2*B,F=D‑Y1,G=E*E,Z3=Z1*E;第四计算层级为J=F*F,H=G*E,I=X1*G;第五计算层级为2I=I+I,H`=H+2I,X3=J‑H`,K=Y1*H;第六计算层级为L=I‑X3,F`=L*F,Y3=F`‑K;所述第一计算模组用于实现所述第一计算层级的计算,所述第二计算模组用于实现所述第二计算层级的计算,所述第三计算模组用于实现所述第三计算层级的计算,所述第四计算模组用于实现所述第四计算层级的计算,所述第五计算模组用于实现第五计算层级的计算,所述第六计算模组用于实现所述第六计算层级的计算;每个所述计算模组中所述计算单元的连接关系根据对应计算层级的数据传输关系进行设置,每个所述计算模组之间的连接关系根据对应计算层级之间的数据传输关系进行设置,使得所述非对称算法计算电路能够实现所述点加计算公式的计算,其中,X1、Y1、Z1、X2、Y2为输入的椭圆曲线参数。

2.根据权利要求1所述的一种非对称算法计算电路,其特征在于,所述第一计算模组的计算单元包括第一模乘单元,所述第二计算模组的计算单元包括第二模乘单元、第三模乘单元以及第一模减单元;所述第一模乘单元的第一输入端和第二输入端用于接收所述椭圆曲线参数,所述第一模乘单元的输出端分别与所述第二模乘单元的第一输入端以及第三模乘单元的第一输入端相连接,所述第二模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第二模乘单元的输出端与所述第三计算模组的输入端口相连接,所述第三模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第三模乘单元的输出端与所述第一模减单元的第一输入端相连接,所述第一模减单元的第二输入端用于接收所述椭圆曲线参数,所述第一模减单元的输出端分别与所述第三计算模组的输入端口以及所述第四计算模组的输入端口相连接。

3.根据权利要求2所述的一种非对称算法计算电路,其特征在于,所述第三计算模组的计算单元包括第四模乘单元、第二模减单元、第五模乘单元以及第六模乘单元;所述第四模乘单元的第一输入端与所述第二模乘单元的输出端相连接,所述第四模乘单元的第二输入端与用于接收所述椭圆曲线参数,所述第四模乘单元的输出端与所述第二模减单元的第一输入端相连接,所述第二模减单元的第二输入端用于接收所述椭圆曲线参数,所述第二模减单元的输出端与所述第四计算模组的输入端口以及苏搜狐第六计算模组的输入端口相连接,所述第五模乘单元的第一输入端和第二输入端均与所述第一模减单元的输出端相连接,所述第五模乘单元的输出端与所述第四计算模组的输入端口相连接,所述第六模乘单元的第一输入端与所述第一模减单元的输出端相连接,所述第六模乘单元的第二输入端用于接收所述椭圆曲线参数。

4.根据权利要求3所述的一种非对称算法计算电路,其特征在于,所述第四计算模组的计算单元包括第七模乘单元、第八模乘单元以及第九模乘单元;所述第七模乘单元的第一输入端和第二输入端均与所述第二模减单元的输出端相连接,所述第七模乘单元的输出端与所述第五计算模组的输入端口相连接,所述第八模乘单元的第一输入端和第二输入端分别与所述第五模乘单元的输出端以及与所述第一模减单元的输出端相连接,所述第八模乘单元的输出端与所述第五计算模组的输入端口相连接,所述第九模乘单元的第一输入端与所述第五模乘单元的输出端相连接,所述第九模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第九模乘单元的输出端与所述第五计算模组的输入端口以及所述第六计算模组的输入端口相连接。

5.根据权利要求4所述的一种非对称算法计算电路,其特征在于,所述第五计算模组的计算单元包括第三模减单元、第十模乘单元、第一模加单元以及第二模加单元;所述第三模减单元的第一输入端和第二输入端分别与所述第七模乘单元的输出端以及所述第二模加单元的输出端相连接,所述第三模减单元的输出端与所述第六计算模组的输入端口相连接,所述第十模乘单元的第一输入端与所述第八模乘单元的输出端相连接,所述第十模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第十模乘单元的输出端与所述第六计算模组的输入端口相连接,所述第一模加单元的第一输入端以及第二输入端均与所述第九模乘单元的输出端相连接,所述第一模加单元的输出端与所述第二模加单元的第一输入端相连接,所述第二模加单元的第二输入端与所述第八模乘单元的输出端相连接。

6.根据权利要求5所述的一种非对称算法计算电路,其特征在于,所述第六计算模组的计算单元包括第四模减单元、第十一模乘单元以及第五模减单元,所述第四模减单元的第一输入端和第二输入端分别与所述第九模乘单元的输出端以及所述第三模减单元的输出端相连接,所述第十一模乘单元的第一输入端和第二输入端分别和第四模减单元的输出端以及所述第二模减单元的输出端相连接,所述第十一模乘单元的输出端与所述第五模减单元的第一输入端相连接,所述第五模减单元的第二输入端与所述第十模乘单元的输出端相连接。

7.一种非对称算法计算电路,其特征在于,包括多个计算单元,所述多个计算单元用于根据输入的椭圆曲线参数,实现非对称算法的计算,所述计算单元用于实现模乘、模加或模减的计算;

所述多个计算单元被划分成多个计算模组,每个所述计算模组用于计算所述非对称算法中对应的一个计算层级,每个所述计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个所述计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应,其中,所述非对称算法根据二倍点计算公式中计算符号的优先级顺序被划分为五个计算层级,所述多个计算单元被划分成第七计算模组、第八计算模组、第九计算模组、第十计算模组以及第十一计算模组;第一计算层级为G=X4*X4,A=Y4*Y4,H=Z4*Z4,B`=4*X4;第二计算层级为D`=3*G,B=B`*A,C`=A*A,I=H*H;第三计算层级为C=8*C`,F=a*I,2B=B+B;第四计算层级为E=2*Y4,D=D`+F,J=D*D,X5=J‑2B,K`=B‑X5;第五计算层级为Z5=E*Z4,K=D*K,Y5=K‑C;所述第七计算模组用于实现所述第一计算层级的计算,所述第八计算模组用于实现所述第二计算层级的计算,所述第九计算模组用于实现所述第三计算层级的计算,所述第十计算模组用于实现所述第四计算层级的计算,所述第十一计算模组用于实现所述第五计算层级的计算,每个所述计算模组中所述计算单元的连接关系根据对应计算层级的数据传输关系进行设置,每个所述计算模组之间的连接关系根据对应计算层级之间的数据传输关系进行设置,从而使得非对称算法计算电路能够实现所述二倍点计算公式的计算,其中,X4、Y4、Z4、a为输入的椭圆曲线参数。

8.根据权利要求7所述的一种非对称算法计算电路,其特征在于,所述第七计算模组的计算单元包括第十二模乘单元、第十三模乘单元、第十四模乘单元以及第十五模乘单元,所述第十二模乘单元的输入端、所述第十三模乘单元的输入端、所述第十四模乘单元的输入端以及所述第十五模乘单元的输入端均用于接收椭圆曲线参数,所述第十二模乘单元的输出端、所述第十三模乘单元的输出端、所述第十四模乘单元的输出端以及所述第十五模乘单元的输出端均与所述第八计算模组的输入端口相连接。

9.根据权利要求8所述的一种非对称算法计算电路,其特征在于,所述第八计算模组的计算单元包括第十六模乘单元、第十七模乘单元、第十八模乘单元以及第十九模乘单元,所述第十六模乘单元的第一输入端与所述第十二模乘单元的输出端相连接,所述第十六模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第十六模乘单元的输出端与所述第十计算模组的输入端口相连接,所述第十七模乘单元的第一输入端和第二输入端均与所述第十三模乘单元的输出端相连接,所述第十七模乘单元的输出端与所述第九计算模组的输入端口相连接,所述第十八模乘单元的第一输入端和第二输入端分别与所述第十三模乘单元的输出端以及第十四模乘单元的输出端相连接,所述第十八模乘单元的输出端分别与所述第九计算模组的输入端口以及所述第十计算模组的输入端口相连接,所述第十九模乘单元的第一输入端和第二输入端均与所述第十五模乘单元的输出端相连接,所述第十九模乘单元的输出端与所述第九计算模组的输入端口相连接。

10.根据权利要求9所述的一种非对称算法计算电路,其特征在于,所述第九计算模组的计算单元包括第二十模乘单元、第三模加单元以及第二十一模乘单元,所述第二十模乘单元的第一输入端与所述第十七模乘单元的输出端相连接,所述第二十模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第二十模乘单元的输出端与所述第十一计算模组的输入端口相连接,所述第三模加单元的第一输入端和第二输入端均与所述第十八模乘单元的输出端相连接,所述第三模加单元的输出端与所述第十计算模组的输入端口相连接,所述第二十一模乘单元的第一输入端与所述第十九模乘单元的输出端相连接,所述第二十一模乘单元的第二输入端用于接收所述椭圆曲线参数,所述二十一模乘单元的输出端与所述第十计算模组的输入端口相连接。

11.根据权利要求10所述的一种非对称算法计算电路,其特征在于,所述第十计算模组的计算单元包括第二十二模乘单元、第四模加单元、第二十三模乘单元、第六模减单元以及第七模减单元;所述第二十二模乘单元的输入端用于接收所述椭圆曲线参数,所述第二十二模乘单元的输出端与所述第十一计算模组的输入端口相连接,所述第四模加单元的第一输入端和第二输入端分别与所述第十六模乘单元的输出端以及所述第二十一模乘单元的输出端相连接,所述第四模加单元的输出端与所述第十一计算模组的输入端口、所述第二十三模乘单元的第一输入端以及第二输入端相连接,所述第二十三模乘单元的输出端与所述第六模减单元的第一输入端相连接,所述第六模减单元的第二输入端与所述第三模加单元的输出端相连接,所述第六模减单元的输出端与所述第七模减单元的第一输入端相连接,所述第七模减单元的第二输入端与所述第十八模乘单元的输出端相连接,所述第七模减单元的输出端与所述第十一计算模组的输入端口相连接。

12.根据权利要求11所述的一种非对称算法计算电路,其特征在于,所述第十一计算模组的计算单元包括第二十四模乘单元、第二十五模乘单元以及第八模减单元;所述第二十四模乘单元的第一输入端与所述第二十二模乘单元的输出端相连接,所述第二十四模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第二十五模乘单元的第一输入端和第二输入端分别与所述第四模加单元的输出端以及所述第七模减单元的输出端相连接,所述第二十五模乘单元的输出端与所述第八模减单元的第一输入端相连接,所述第八模减单元的第二输入端与所述第二十模乘单元的输出端相连接。

说明书 :

一种非对称算法计算电路

技术领域

[0001] 本申请实施例涉及数字IC电路设计领域,尤其涉及一种非对称算法计算电路。

背景技术

[0002] 目前,非对称密码芯片中通常使用椭圆曲线加密算法,椭圆曲线的公钥密码是基于曲线计算时的点乘、倍点、点加以及模幂的运算所组成的,公钥密码最终可以分解为模乘、模加以及模减的运算方式;其中,模加和模减运算难度较小,运算时间短,而模乘的运算难度较大,导致运算时间较长。
[0003] 现有技术中,点乘计算的实现主要是将点乘拆解成点加和二倍点进行计算,然而,由于点加和二倍点计算受到公式的限制,中间计算结果具有先后计算顺序,先后计算顺序极大影响了点加和二倍点的计算速度,导致了使用椭圆曲线计算方法来实现非对称算法芯片的签名、验签、加密、解密以及密钥生成时,运算速度较低。

发明内容

[0004] 本发明实施例提供了一种非对称算法计算电路,能够提高非对称算法中点乘计算的速度,解决了现有技术在进行非对称算法的计算时存在着运算速度较低的技术问题。
[0005] 第一方面,本发明实施例提供了一种非对称算法计算电路,包括多个计算单元,所述多个计算单元用于根据输入的椭圆曲线参数,实现非对称算法的计算,所述计算单元用于实现模乘、模加或模减的计算;
[0006] 所述多个计算单元被划分成多个计算模组,每个所述计算模组用于计算所述非对称算法中对应的一个计算层级,每个所述计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个所述计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应,其中,所述非对称算法根据点加计算公式中计算符号的优先级顺序被划分为六个计算层级,所述多个计算单元被划分成第一计算模组、第二计算模组、第三计算模组、第四计算模组、第五计算模组以及第六计算模组;第一计算层级为A=Z1*Z1;第二计算层级为B=Z1*A,C=X2*A,E=C‑X1;第三计算层级为D=Y2*B,F=D‑Y1,G=E*E,Z3=Z1*E;第四计算层级为J=F*F,H=G*E,I=X1*G;第五计算层级为2I=I+I,H`=H+2I,X3=J‑H`,K=Y1*H;第六计算层级为L=I‑X3,F`=L*F,Y3=F`‑K;所述第一计算模组用于实现所述第一计算层级的计算,所述第二计算模组用于实现所述第二计算层级的计算,所述第三计算模组用于实现所述第三计算层级的计算,所述第四计算模组用于实现所述第四计算层级的计算,所述第五计算模组用于实现第五计算层级的计算,所述第六计算模组用于实现所述第六计算层级的计算;每个所述计算模组中所述计算单元的连接关系根据对应计算层级的数据传输关系进行设置,每个所述计算模组之间的连接关系根据对应计算层级之间的数据传输关系进行设置,使得所述非对称算法计算电路能够实现所述点加计算公式的计算,其中,X1、Y1、Z1、X2、Y2为输入的椭圆曲线参数。
[0007] 优选的,所述第一计算模组的计算单元包括第一模乘单元,所述第二计算模组的计算单元包括第二模乘单元、第三模乘单元以及第一模减单元;所述第一模乘单元的第一输入端和第二输入端用于接收所述椭圆曲线参数,所述第一模乘单元的输出端分别与所述第二模乘单元的第一输入端以及第三模乘单元的第一输入端相连接,所述第二模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第二模乘单元的输出端与所述第三计算模组的输入端口相连接,所述第三模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第三模乘单元的输出端与所述第一模减单元的第一输入端相连接,所述第一模减单元的第二输入端用于接收所述椭圆曲线参数,所述第一模减单元的输出端分别与所述第三计算模组的输入端口以及所述第四计算模组的输入端口相连接。
[0008] 优选的,所述第三计算模组的计算单元包括第四模乘单元、第二模减单元、第五模乘单元以及第六模乘单元;所述第四模乘单元的第一输入端与所述第二模乘单元的输出端相连接,所述第四模乘单元的第二输入端与用于接收所述椭圆曲线参数,所述第四模乘单元的输出端与所述第二模减单元的第一输入端相连接,所述第二模减单元的第二输入端用于接收所述椭圆曲线参数,所述第二模减单元的输出端与所述第四计算模组的输入端口以及苏搜狐第六计算模组的输入端口相连接,所述第五模乘单元的第一输入端和第二输入端均与所述第一模减单元的输出端相连接,所述第五模乘单元的输出端与所述第四计算模组的输入端口相连接,所述第六模乘单元的第一输入端与所述第一模减单元的输出端相连接,所述第六模乘单元的第二输入端用于接收所述椭圆曲线参数。
[0009] 优选的,所述第四计算模组的计算单元包括第七模乘单元、第八模乘单元以及第九模乘单元;所述第七模乘单元的第一输入端和第二输入端均与所述第二模减单元的输出端相连接,所述第七模乘单元的输出端与所述第五计算模组的输入端口相连接,所述第八模乘单元的第一输入端和第二输入端分别与所述第五模乘单元的输出端以及与所述第一模减单元的输出端相连接,所述第八模乘单元的输出端与所述第五计算模组的输入端口相连接,所述第九模乘单元的第一输入端与所述第五模乘单元的输出端相连接,所述第九模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第九模乘单元的输出端与所述第五计算模组的输入端口以及所述第六计算模组的输入端口相连接。
[0010] 优选的,所述第五计算模组的计算单元包括第三模减单元、第十模乘单元、第一模加单元以及第二模加单元;所述第三模减单元的第一输入端和第二输入端分别与所述第七模乘单元的输出端以及所述第二模加单元的输出端相连接,所述第三模减单元的输出端与所述第六计算模组的输入端口相连接,所述第十模乘单元的第一输入端与所述第八模乘单元的输出端相连接,所述第十模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第十模乘单元的输出端与所述第六计算模组的输入端口相连接,所述第一模加单元的第一输入端以及第二输入端均与所述第九模乘单元的输出端相连接,所述第一模加单元的输出端与所述第二模加单元的第一输入端相连接,所述第二模加单元的第二输入端与所述第八模乘单元的输出端相连接。
[0011] 优选的,所述第六计算模组的计算单元包括第四模减单元、第十一模乘单元以及第五模减单元,所述第四模减单元的第一输入端和第二输入端分别与所述第九模乘单元的输出端以及所述第三模减单元的输出端相连接,所述第十一模乘单元的第一输入端和第二输入端分别和第四模减单元的输出端以及所述第二模减单元的输出端相连接,所述第十一模乘单元的输出端与所述第五模减单元的第一输入端相连接,所述第五模减单元的第二输入端与所述第十模乘单元的输出端相连接。
[0012] 第二方面,本发明实施例提供了另一种非对称算法计算电路,包括多个计算单元,所述多个计算单元用于根据输入的椭圆曲线参数,实现非对称算法的计算,所述计算单元用于实现模乘、模加或模减的计算;
[0013] 所述多个计算单元被划分成多个计算模组,每个所述计算模组用于计算所述非对称算法中对应的一个计算层级,每个所述计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个所述计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应,其中,所述非对称算法根据二倍点计算公式中计算符号的优先级顺序被划分为五个计算层级,所述多个计算单元被划分成第七计算模组、第八计算模组、第九计算模组、第十计算模组以及第十一计算模组;第一计算层级为G=X4*X4,A=Y4*Y4 ,H=Z4*Z4,B`=4*X4;第二计算层级为D`=3*G,B=B`*A,C`=A*A,I=H*H;第三计算层级为C=8*C`,F=a*I,2B=B+B;第四计算层级为E=2*Y4,D=D`+F,J=D*D,X5=J‑2B,K`=B‑X5;第五计算层级为Z5=E*Z4,K=D*K,Y5=K‑C;所述第七计算模组用于实现所述第一计算层级的计算,所述第八计算模组用于实现所述第二计算层级的计算,所述第九计算模组用于实现所述第三计算层级的计算,所述第十计算模组用于实现所述第四计算层级的计算,所述第十一计算模组用于实现所述第五计算层级的计算,每个所述计算模组中所述计算单元的连接关系根据对应计算层级的数据传输关系进行设置,每个所述计算模组之间的连接关系根据对应计算层级之间的数据传输关系进行设置,从而使得非对称算法计算电路能够实现所述二倍点计算公式的计算,其中,X4、Y4、Z4、a为输入的椭圆曲线参数。
[0014] 优选的,所述第七计算模组的计算单元包括第十二模乘单元、第十三模乘单元、第十四模乘单元以及第十五模乘单元,所述第十二模乘单元的输入端、所述第十三模乘单元的输入端、所述第十四模乘单元的输入端以及所述第十五模乘单元的输入端均用于接收椭圆曲线参数,所述第十二模乘单元的输出端、所述第十三模乘单元的输出端、所述第十四模乘单元的输出端以及所述第十五模乘单元的输出端均与所述第八计算模组的输入端口相连接。
[0015] 优选的,所述第八计算模组的计算单元包括第十六模乘单元、第十七模乘单元、第十八模乘单元以及第十九模乘单元,所述第十六模乘单元的第一输入端与所述第十二模乘单元的输出端相连接,所述第十六模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第十六模乘单元的输出端与所述第十计算模组的输入端口相连接,所述第十七模乘单元的第一输入端和第二输入端均与所述第十三模乘单元的输出端相连接,所述第十七模乘单元的输出端与所述第九计算模组的输入端口相连接,所述第十八模乘单元的第一输入端和第二输入端分别与所述第十三模乘单元的输出端以及第十四模乘单元的输出端相连接,所述第十八模乘单元的输出端分别与所述第九计算模组的输入端口以及所述第十计算模组的输入端口相连接,所述第十九模乘单元的第一输入端和第二输入端均与所述第十五模乘单元的输出端相连接,所述第十九模乘单元的输出端与所述第九计算模组的输入端口相连接。
[0016] 优选的,所述第九计算模组的计算单元包括第二十模乘单元、第三模加单元以及第二十一模乘单元,所述第二十模乘单元的第一输入端与所述第十七模乘单元的输出端相连接,所述第二十模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第二十模乘单元的输出端与所述第十一计算模组的输入端口相连接,所述第三模加单元的第一输入端和第二输入端均与所述第十八模乘单元的输出端相连接,所述第三模加单元的输出端与所述第十计算模组的输入端口相连接,所述第二十一模乘单元的第一输入端与所述第十九模乘单元的输出端相连接,所述第二十一模乘单元的第二输入端用于接收所述椭圆曲线参数,所述二十一模乘单元的输出端与所述第十计算模组的输入端口相连接。
[0017] 优选的,所述第十计算模组的计算单元包括第二十二模乘单元、第四模加单元、第二十三模乘单元、第六模减单元以及第七模减单元;所述第二十二模乘单元的输入端用于接收所述椭圆曲线参数,所述第二十二模乘单元的输出端与所述第十一计算模组的输入端口相连接,所述第四模加单元的第一输入端和第二输入端分别与所述第十六模乘单元的输出端以及所述第二十一模乘单元的输出端相连接,所述第四模加单元的输出端与所述第十一计算模组的输入端口、所述第二十三模乘单元的第一输入端以及第二输入端相连接,所述第二十三模乘单元的输出端与所述第六模减单元的第一输入端相连接,所述第六模减单元的第二输入端与所述第三模加单元的输出端相连接,所述第六模减单元的输出端与所述第七模减单元的第一输入端相连接,所述第七模减单元的第二输入端与所述第十八模乘单元的输出端相连接,所述第七模减单元的输出端与所述第十一计算模组的输入端口相连接。
[0018] 优选的,所述第十一计算模组的计算单元包括第二十四模乘单元、第二十五模乘单元以及第八模减单元;所述第二十四模乘单元的第一输入端与所述第二十二模乘单元的输出端相连接,所述第二十四模乘单元的第二输入端用于接收所述椭圆曲线参数,所述第二十五模乘单元的第一输入端和第二输入端分别与所述第四模加单元的输出端以及所述第七模减单元的输出端相连接,所述第二十五模乘单元的输出端与所述第八模减单元的第一输入端相连接,所述第八模减单元的第二输入端与所述第二十模乘单元的输出端相连接。
[0019] 上述,本发明实施例通过将非对称算法根据对应计算公式中计算符号的优先级顺序划分为多个计算层级,对于每一个计算层级采用一个计算模组进行计算,且每个计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应。本发明实施例通过计算模组之间的相互配合,能够实现非对称算法中多个计算公式的并行计算,提高了非对称算法的运算速度和运算效率,解决了现有技术在进行非对称算法的计算时存在着运算速度较低的技术问题。

附图说明

[0020] 图1为本发明实施例提供的一种非对称算法计算电路的结构示意图。
[0021] 图2为本发明实施例提供的另一种非对称算法计算电路的结构示意图。
[0022] 图3为本发明实施例提供的又一种非对称算法计算电路的结构示意图。
[0023] 附图标记:
[0024] 计算单元1、计算模组2、第一模乘单元U1、第二模乘单元U2、第三模乘单元U3、第一模减单元U4、第四模乘单元U5、第二模减单元U6、第五模乘单元U7、第六模乘单元U8、第七模乘单元U9、第八模乘单元U10、第九模乘单元U11、第三模减单元U12、第十模乘单元U13、第一模加单元U14、第二模加单元U15、第四模减单元U16、第十一模乘单元U17、第五模减单元U18、第十二模乘单元U19、第十三模乘单元U20、第十四模乘单元U21、第十五模乘单元U22、第十六模乘单元U23、第十七模乘单元U24、第十八模乘单元U25、第十九模乘单元U26、第二十模乘单元U27、第三模加单元U28、二十一模乘单元U29、第二十二模乘单元U30、第四模加单元U31、第二十三模乘单元U32、第六模减单元U33、第七模减单元U34、第二十四模乘单元U35、第二十五模乘单元U36、第八模减单元U37。

具体实施方式

[0025] 以下描述和附图充分地示出本申请的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本申请的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0026] 如图1所示,图1为本发明实施例提供的一种非对称算法计算电路的结构示意图,包括多个计算单元,多个计算单元用于根据输入的椭圆曲线参数,实现非对称算法的计算,计算单元用于实现模乘、模加或模减的计算。
[0027] 在本实施例提供的非对称算法计算电路由多个计算单元1组成,其中,每个计算单元1用于实现模乘、模加或者模减中的一种计算。在本实施例中,可预先根据非对称算法的计算逻辑,对计算单元1以及计算单元1之间的连接关系进行配置从而形成非对称算法计算电路,从而在向非对称算法计算电路输入椭圆曲线参数后,非对称算法计算电路中的每一个计算单元1即可根据输入的椭圆曲线参数,进行模乘、模加或模减的计算,并根据连接关系,将计算结果输入到下一个计算单元1中,实现非对称算法的计算。
[0028] 多个计算单元被划分成多个计算模组,每个计算模组用于计算非对称算法中对应的一个计算层级,每个计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应,其中,非对称算法根据对应计算公式中计算符号的优先级顺序被划分为多个计算层级。
[0029] 在本实施例中,非对称算法根据对应计算公式中计算符号的优先级顺序,被划分成多个计算层级。例如,简单举例说明,对于计算公式 ,其中括号的优先级最高,乘号的优先级次高,加号的优先级最低,因此,可根据计算符号的优先级顺序,将计算公式划分为3个计算层级,分别为 、 以及 。同理,在本实施例中,则可以根据非对称算法的计算公式中计算符号的优先级顺序,将非对称算法的计算公式划分为多个计算层级。
[0030] 在将非对称算法的计算公式划分为多个计算层级后,即可根据划分的计算层级,将多个计算单元1划分成多个计算模组2,其中,每个计算模组2用于计算非对称算法中对应的一个计算层级。例如,在一个实施例中,可以将多个计算单元1划分成3个计算模组2,第一计算模组用于实现 的计算,第二计算模组用于实现 的计算,第三计算模组用于实现 计算。可理解,当存在多个计算公式时,一个计算模组2可用于计算不同计算公式中的计算层级。例如,当还存在公式 时,公式 被分别两个计算层
级,分别为 以及 ,此时第一计算模组还用于实现 的计算,第二计算模组
还用于实现 的计算,从而可以实现不同计算公式的并行计算,提高计算速度。
[0031] 需要进一步说明的是,对于每一个计算模组2中的计算单元1,计算单元1之间的连接方式与对应计算层级内的数据传输关系相对应,例如,对于第一计算模组内的计算单元1,计算单元1之间的连接方式和计算公式 的数据传输关系以及 的数据传
输关系相对应,从而使得第一计算模组能够进行对应公式的计算。另外,计算模组2和计算模组2之间的连接关系,与计算层级之间的数据传输关系相对应,例如,第一计算模组和第三计算模组之间的连接关系,分别与公式 和公式 之间的传输关系,以及公式和 之间的传输关系相对应,从而使得多个计算单元1能够实现完整实现非对称算法的计算流程。在配置完各个计算模组2后,将非对称算法中的椭圆曲线参数输入到非对称算法计算电路中,即可实现非对称算法的计算,得到最终的计算结果。
[0032] 上述,本发明实施例通过将非对称算法根据对应计算公式中计算符号的优先级顺序划分为多个计算层级,对于每一个计算层级采用一个计算模组进行计算,且每个计算模组中计算单元的连接方式与对应计算层级内的数据传输关系相对应,每个计算模组之间的连接关系与对应计算层级之间的数据传输关系相对应。本发明实施例通过计算模组之间的相互配合,能够实现非对称算法中多个计算公式的并行计算,提高了非对称算法的运算速度和运算效率,解决了现有技术在进行非对称算法的计算时存在着运算速度较低的技术问题。
[0033] 在一个实施例中,非对称算法根据点加计算公式中计算符号的优先级顺序被划分为六个计算层级,多个计算单元1被划分成第一计算模组、第二计算模组、第三计算模组、第四计算模组、第五计算模组以及第六计算模组。
[0034] 在一个实施例中,非对称算法计算电路用于实现非对称算法中的点加计算,其中,非对称算法的点加计算的计算公式如下所示:
[0035]
[0036]
[0037]
[0038]
[0039]
[0040] 其中,X1、Y1、Z1、X2、Y2为输入的椭圆曲线参数,X1、Y1、Z1为椭圆曲线上一个点的坐标,X2、Y2为椭圆曲线上另一个点的坐标,X3、Y3、Z3为点加计算得到的椭圆曲线上的点的坐标。
[0041] 在本实施例中,将非对称算法的点加计算的计算公式划分为六个计算层级,六个计算层级分别如下:
[0042] 第一计算层级A=Z1*Z1;
[0043] 第二计算层级B=Z1*A,C=X2*A,E=C‑X1;
[0044] 第三计算层级D=Y2*B, F=D‑Y1,G=E*E,Z3=Z1*E,并得到输出结果坐标Z3;
[0045] 第四计算层级J=F*F,,H=G*E, I=X1*G;
[0046] 第五计算层级2I=I+I,H`=H+2I,X3=J‑H`,K=Y1*H,并得到输出结果坐标X3;
[0047] 第六计算层级L=I‑X3, F`=L*F, Y3=F`‑K,并得到输出结果坐标Y3。
[0048] 在将点加计算的计算公式划分为六个计算层级后,对多个计算单元1进行划分,将多个计算单元1划分成六个计算模组2,分别为第一计算模组、第二计算模组、第三计算模组、第四计算模组、第五计算模组以及第六计算模组,其中,第一计算模组用于实现第一计算层级的计算,第二计算模组用于实现第二计算层级的计算,……,第六计算模组用于实现第六计算层级的计算,并且,每个计算模组2中计算单元1的连接关系根据对应计算层级的数据传输关系进行设置,每个计算模组2之间的连接关系根据对应计算层级之间的数据传输关系进行设置,从而使得非对称算法计算电路能够实现公式(1)‑(5)的计算。
[0049] 在上述实施例的基础上,如图2所示,第一计算模组的计算单元包括第一模乘单元,第二计算模组的计算单元包括第二模乘单元、第三模乘单元以及第一模减单元;第一模乘单元的第一输入端和第二输入端用于接收椭圆曲线参数,第一模乘单元的输出端分别与第二模乘单元的第一输入端以及第三模乘单元的第一输入端相连接,第二模乘单元的第二输入端用于接收椭圆曲线参数,第二模乘单元的输出端与第三计算模组的输入端口相连接,第三模乘单元的第二输入端用于接收椭圆曲线参数,第三模乘单元的输出端与第一模减单元的第一输入端相连接,第一模减单元的第二输入端用于接收椭圆曲线参数,第一模减单元的输出端分别与第三计算模组的输入端口以及第四计算模组的输入端口相连接。
[0050] 在本实施例中,第一计算模组包括第一模乘单元U1,输入第一模乘单元U1的第一输入端和第二输入端的椭圆曲线参数均为Z1,第一模乘单元U1在接收到输入的Z1后进行模乘计算,得到A=Z1*Z1,从而完成第一计算层级的计算,并将计算得到的A传输给第二计算模组。
[0051] 第二计算模组包括第二模乘单元U2、第三模乘单元U3以及第一模减单元U4,第二模乘单元U2的第一输入端用于接收第一模乘单元U1输出的A,第二输入端用于接收输入的椭圆曲线参数Z1,之后第二模乘单元U2进行模乘计算,得到B=Z1*A,并将计算得到的B传输给第三计算模组。第三模乘单元U3的第一输入端用于接收第一模乘单元U1输出的A,第二输入端用于接收输入的椭圆曲线参数X2,之后第三模乘单元U3进行模乘计算,得到C=X2*A,并将计算得到的C传输给第一模减单元U4,第一模减单元U4的第一输入端用于接收第三模乘单元U3输出的C,第二输入端用于接收输入的椭圆曲线参数X1,之后第一模减单元U4进行模减计算,得到E=C‑X1,并将计算得到的E传输给第三计算模组以及第四计算模组。至此,第二计算层级的计算过程完成。
[0052] 在上述实施例的基础上,如图2所示,第三计算模组的计算单元包括第四模乘单元、第二模减单元、第五模乘单元以及第六模乘单元;第四模乘单元的第一输入端与第二模乘单元的输出端相连接,第四模乘单元的第二输入端与用于接收椭圆曲线参数,第四模乘单元的输出端与第二模减单元的第一输入端相连接,第二模减单元的第二输入端用于接收椭圆曲线参数,第二模减单元的输出端与第四计算模组的输入端口以及第六计算模组的输入端口相连接,第五模乘单元的第一输入端和第二输入端均与第一模减单元的输出端相连接,第五模乘单元的输出端与第四计算模组的输入端口相连接,第六模乘单元的第一输入端与第一模减单元的输出端相连接,第六模乘单元的第二输入端用于接收椭圆曲线参数。
[0053] 在本实施例中,第三计算模组的计算单元包括第四模乘单元U5、第二模减单元U6、第五模乘单元U7以及第六模乘单元U8;第四模乘单元U5的第一输入端用于接收第二模乘单元U2输出的B,第四模乘单元U5的第二输入端用于接收输入的椭圆曲线参数Y2,之后第四模乘单元U5进行模乘计算,得到D=Y2*B,并将得到的D传输给第二模减单元U6;第二模减单元U6的第一输入端用于接收第四模乘单元U5输出的D,第二输入端用于接收椭圆曲线参数Y1,之后第二模减单元U6进行模减计算,得到F=D‑Y1,并将F传输给第四计算模组以及第六计算模组;第五模乘单元U7的第一输入端和第二输入端均用于接收第一模减单元U4输出的E,之后第五模乘单元U7进行模乘计算,得到G=E*E,并将G传输给第四计算模组;第六模乘单元U8的第一输入端用于接收第一模减单元U4输出的E,第二输入端用于接收椭圆曲线参数Z1,之后第六模乘单元U8用于进行模乘计算,得到Z3=Z1*E,得到输出结果坐标Z3。
[0054] 在上述实施例的基础上,如图2所示,第四计算模组的计算单元包括第七模乘单元、第八模乘单元以及第九模乘单元;第七模乘单元的第一输入端和第二输入端均与第二模减单元的输出端相连接,第七模乘单元的输出端与第五计算模组的输入端口相连接,第八模乘单元的第一输入端和第二输入端分别与第五模乘单元的输出端以及与第一模减单元的输出端相连接,第八模乘单元的输出端与第五计算模组的输入端口相连接,第九模乘单元的第一输入端与第五模乘单元的输出端相连接,第九模乘单元的第二输入端用于接收椭圆曲线参数,第九模乘单元的输出端与第五计算模组的输入端口以及第六计算模组的输入端口相连接。
[0055] 在本实施例中,第四计算模组包括第七模乘单元U9、第八模乘单元U10以及第九模乘单元U11,其中,第七模乘单元U9的第一输入端和第二输入端均用于接收第二模减单元U6的输出F,之后第七模乘单元U9进行模乘计算,得到J=F*F,并将J输出到第五计算模组中;第八模乘单元U10的第一输入端用于接收第五模乘单元U7输出的G,第二输入端用于接收第一模减单元U4输出的E,之后第八模乘单元U10进行模乘计算,得到H=G*E,并将H传输到第五计算模组中;第九模乘单元U11的第一输入端用于接收第五模乘单元U7输出的G,第二输入端用于接收输入的椭圆曲线参数X1,之后第九模乘单元U11进行模乘计算,得到I=X1*G,并将得到的I输出到第五计算模组中以及第六计算模组中,完成第四计算层级的计算过程。
[0056] 在上述实施例的基础上,如图2所示,第五计算模组的计算单元包括第三模减单元、第十模乘单元、第一模加单元以及第二模加单元;第三模减单元的第一输入端和第二输入端分别与第七模乘单元的输出端以及第二模加单元的输出端相连接,第三模减单元的输出端与第六计算模组的输入端口相连接,第十模乘单元的第一输入端与第八模乘单元的输出端相连接,第十模乘单元的第二输入端用于接收椭圆曲线参数,第十模乘单元的输出端与第六计算模组的输入端口相连接,第一模加单元的第一输入端以及第二输入端均与第九模乘单元的输出端相连接,第一模加单元的输出端与第二模加单元的第一输入端相连接,第二模加单元的第二输入端与第八模乘单元的输出端相连接。
[0057] 在本实施例中,第五计算模组包括第三模减单元U12、第十模乘单元U13、第一模加单元U14以及第二模加单元U15。其中,第三模减单元U12的第一输入端用于接收第七模乘单元U9输出的J,第二输入端用于接收第二模加单元U15输出的H`,之后第三模减单元U12进行模减计算,得到X3=J‑H`,并将X3传输给第六计算模组;第十模乘单元U13的第一输入端用于接收第八模乘单元U10输出的H,第二输入端用于接收输入的椭圆曲线参数Y1,之后第十模乘单元U13进行模乘计算,得到K=Y1*H,并将得到的K输出到第六计算模组中;第一模加单元U14的第一输入端和第二输入端均用于接收第九模乘单元U11输出的I,之后第一模加单元U14进行模加计算,得到2I,并将2I传输给第二模加单元U15;第二模加单元U15的第一输入端用于接收第一模加单元U14输出的2I,第二输入端用于接收第八模乘单元输出的H,之后进行模加计算,得到H`=H+2I,并将输出的H`传输到第三模减单元U12的第二输入端中,至此,第五计算层级的计算过程结束,同时计算得到输出结果坐标X3。
[0058] 在上述实施例的基础上,如图2所示,第六计算模组的计算单元包括第四模减单元、第十一模乘单元以及第五模减单元,第四模减单元的第一输入端和第二输入端分别与第九模乘单元的输出端以及第三模减单元的输出端相连接,第十一模乘单元的第一输入端和第二输入端分别和第四模减单元的输出端以及第二模减单元的输出端相连接,第十一模乘单元的输出端与第五模减单元的第一输入端相连接,第五模减单元的第二输入端与第十模乘单元的输出端相连接。
[0059] 在本实施例中,第六计算模组包括第四模减单元U16、第十一模乘单元U17以及第五模减单元U18;其中,第四模减单元U16的第一输入端用于接收第九模乘单元U11输出的I,第二输入端用于接收第三模减单元U12输出的X3,之后第四模减单元U16进行模减计算,得到L=I‑X3,并将L传输给第十一模乘单元U17的第一输入端,第十一模乘单元U17的第二输入端用于接收第二模减单元U6输出的F,之后第十一模乘单元U17进行模乘运算,得到 F`=L*F,并将得到的 F`传输到第五模减单元U18的第一输入端,第五模减单元U18的第二输入端用于接收第十模乘单元U13输出的K,之后第五模减单元U18进行模减运算,得到Y3=F`‑K,得到输出结果坐标Y3,至此,第六计算层级计算结束,完成非对称算法的点加计算过程,并求得所需要的输出结果坐标X3、Y3、Z3。
[0060] 上述,本发明实施例根据非对称算法中点加计算的计算公式,将点加计算划分为六个计算层级,并根据六个计算层级将非对称算法计算电路划分为六个计算模组,每个计算模组对应一个计算层级,从而在进行点加计算时能够实现多个计算公式的并行计算,提高了点加计算的运算速度和运算效率。
[0061] 在另一个实施例中,非对称算法根据二倍点计算公式中计算符号的优先级顺序被划分为五个计算层级,多个计算单元1被划分成第七计算模组、第八计算模组、第九计算模组、第十计算模组以及第十一计算模组。
[0062] 在另一个实施例中,非对称算法计算电路用于实现非对称算法中的点加计算,其中,非对称算法的点加计算的计算公式如下所示:
[0063]
[0064]
[0065]
[0066]
[0067]
[0068] 其中,X4、Y4、Z4、a为输入的椭圆曲线参数,X4、Y4、Z4为椭圆曲线上一个点的坐标,a为椭圆双曲线参数,X5、Y5、Z5为二倍点计算得到的椭圆曲线上的点的坐标。
[0069] 之后,进一步对二倍点计算的计算公式进行划分,在本实施例中,将二倍点计算的计算公式划分为五个计算层级,五个计算层级分别如下:
[0070] 第一计算层级:G=X4*X4,A=Y4*Y4,H=Z4*Z4,B`=4*X4
[0071] 第二计算层级:D`=3*G,B=B`*A,C`=A*A,I=H*H
[0072] 第三计算层级:C=8*C`,F=a*I,2B=B+B
[0073] 第四计算层级:E=2*Y4,D=D`+F,J=D*D,X5=J‑2B,K`=B‑X5,并得到输出结果坐标X5。
[0074] 第五计算层级:第五步Z5=E*Z4,K=D*K, Y5=K‑C,并得到输出结果坐标Z5和Y5。
[0075] 在将二倍点计算的计算公式划分为五个计算层级后,对多个计算单元1进行划分,将多个计算单元1划分成五个计算模组2,分别为第七计算模组、第八计算模组、第九计算模组、第十计算模组以及第十一计算模组,其中,第七计算模组用于实现第一计算层级的计算,第八计算模组用于实现第二计算层级的计算,……,第十一计算模组用于实现第五计算层级的计算,并且,每个计算模组2中计算单元1的连接关系根据对应计算层级的数据传输关系进行设置,每个计算模组2之间的连接关系根据对应计算层级之间的数据传输关系进行设置,从而使得非对称算法计算电路能够实现公式(6)‑(10)的计算。
[0076] 在上述实施例的基础上,如图3所示,第七计算模组的计算单元包括第十二模乘单元、第十三模乘单元、第十四模乘单元以及第十五模乘单元,第十二模乘单元的输入端、第十三模乘单元的输入端、第十四模乘单元的输入端以及第十五模乘单元的输入端均用于接收椭圆曲线参数,第十二模乘单元的输出端、第十三模乘单元的输出端、第十四模乘单元的输出端以及第十五模乘单元的输出端均与第八计算模组的输入端口相连接。
[0077] 在本实施例中,第七计算模组包括第十二模乘单元U19、第十三模乘单元U20、第十四模乘单元U21以及第十五模乘单元U22,其中,第十二模乘单元U19的第一输入端和第二输入端均用于接收椭圆曲线参数X4,之后第十二模乘单元U19进行模乘计算,得到G=X4*X4,并将G传输到第八计算模组;第十三模乘单元U20的第一输入端和第二端均用于接收椭圆曲线参数Y4,之后第十三模乘单元U20进行模乘计算,得到A=Y4*Y4,并将A传输到第八计算模组,第十四模乘单元U21的第一输入端用于接收椭圆曲线参数X4,第二输入端用于接收常数4,之后进行模乘计算,得到B`=4*X4,并将B`传输到第八计算模组,第十五模乘单元U22的的第一输入端和第二输入端均用于接收椭圆曲线参数Z4,之后第十五模乘单元U22进行模乘计算,得到H=Z4*Z4,并将H传输到第八计算模组,至此,第一计算层级的计算完成。
[0078] 在上述实施例的基础上,如图3所示,第八计算模组的计算单元包括第十六模乘单元、第十七模乘单元、第十八模乘单元以及第十九模乘单元,第十六模乘单元的第一输入端与第十二模乘单元的输出端相连接,第十六模乘单元的第二输入端用于接收椭圆曲线参数,第十六模乘单元的输出端与第十计算模组的输入端口相连接,第十七模乘单元的第一输入端和第二输入端均与第十三模乘单元的输出端相连接,第十七模乘单元的输出端与第九计算模组的输入端口相连接,第十八模乘单元的第一输入端和第二输入端分别与第十三模乘单元的输出端以及第十四模乘单元的输出端相连接,第十八模乘单元的输出端分别与第九计算模组的输入端口以及第十计算模组的输入端口相连接,第十九模乘单元的第一输入端和第二输入端均与第十五模乘单元的输出端相连接,第十九模乘单元的输出端与第九计算模组的输入端口相连接。
[0079] 在本实施例中,第八计算计算模组包括第十六模乘单元U23、第十七模乘单元U24、第十八模乘单元U25以及第十九模乘单元U26。其中,第十六模乘单元U23的第一输入端用于接收第十二模乘单元U19输出的G,第二输入端用于接收常数3,之后第十六模乘单元U23进行模乘计算,得到D`=3*G,并将D`输出到第十计算模组中。第十七模乘单元U24的第一输入端和第二输入端均用于接收第十三模乘单元U20输出的A,之后第十七模乘单元U24进行模乘计算,得到C`=A*A,并将C`输出到第十计算模组中。第十八模乘单元U25的第一输入端用于接收第十三模乘单元U20输出的A,第二输入端用于接收第十四模乘单元U21输出的B`,之后进行模乘计算,得到B=B`*A,并将B输出到第九计算模组以及第十计算模组中。第十九模乘单元U26的第一输入端和第二输入端均用于接收第十五模乘单元U22输出的H,之后进行模乘计算,得到I=H*H,并将I输出到第九计算模组中。至此,完成第二计算层级的计算。
[0080] 在上述实施例的基础上,如图3所示,第九计算模组的计算单元包括第二十模乘单元、第三模加单元以及第二十一模乘单元,第二十模乘单元的第一输入端与第十七模乘单元的输出端相连接,第二十模乘单元的第二输入端用于接收椭圆曲线参数,第二十模乘单元的输出端与第十一计算模组的输入端口相连接,第三模加单元的第一输入端和第二输入端均与第十八模乘单元的输出端相连接,第三模加单元的输出端与第十计算模组的输入端口相连接,第二十一模乘单元的第一输入端与第十九模乘单元的输出端相连接,第二十一模乘单元的第二输入端用于接收椭圆曲线参数,二十一模乘单元的输出端与第十计算模组的输入端口相连接。
[0081] 在本实施例中,第九计算模组的计算单元包括第二十模乘单元U27、第三模加单元U28以及第二十一模乘单元U29。其中,第二十模乘单元U27的第一输入端用于接收第十七模乘单元U24输出的C,第二输入端用于接收常数8,之后第二十模乘单元U27进行模乘计算,得到C=8*C`,并将C输出到第十一计算模组中。第三模加单元U28的第一输入端和第二输入端均用于接收第十八模乘单元U25输出的B,之后进行模加计算,得到2B,并将2B输出到第十计算模组中。第二十一模乘单元U29的第一输入端用于接收第十九模乘单元输出的I,第二输入端用于接收椭圆双曲线参数a,之后进行模乘计算,得到F=a*I,并将F输出到第十计算模组中。至此,完成第三计算层级的计算。
[0082] 在上述实施例的基础上,如图3所示,第十计算模组的计算单元包括第二十二模乘单元、第四模加单元、第二十三模乘单元、第六模减单元以及第七模减单元;第二十二模乘单元的输入端用于接收椭圆曲线参数,第二十二模乘单元的输出端与第十一计算模组的输入端口相连接,第四模加单元的第一输入端和第二输入端分别与第十六模乘单元的输出端以及第二十一模乘单元的输出端相连接,第四模加单元的输出端与第十一计算模组的输入端口、第二十三模乘单元的第一输入端以及第二输入端相连接,第二十三模乘单元的输出端与第六模减单元的第一输入端相连接,第六模减单元的第二输入端与第三模加单元的输出端相连接,第六模减单元的输出端与第七模减单元的第一输入端相连接,第七模减单元的第二输入端与第十八模乘单元的输出端相连接,第七模减单元的输出端与第十一计算模组的输入端口相连接。
[0083] 在本实施例中,第十计算模组包括第二十二模乘单元U30、第四模加单元U31、第二十三模乘单元U32、第六模减单元U33以及第七模减单元U34。其中,第二十二模乘单元U30的第一输入端与用于接收椭圆曲线参数Y4,第二输入端用于接收常数2,之后进行模乘计算,得到E=2*Y4,并将E传输到第十一计算模组中。第四模加单元U31的第一输入端用于接收第十六模乘单元U23的输出的D`,第二输入端用于接收第二十一模乘单元U29输出的F,之后进行模加计算,得到D=D`+F,并将D传输到第二十三模乘单元U32的第一输入端、第二输入端以及第十一计算模组中。第二十三模乘单元U32的第一输入端和第二输入端均用于接收第四模加单元U31输出的D,之后进行模乘计算,得到J=D*D,并将J输出到第六模减单元U33的第一输入端,第六模减单元U33的第二输入端用于接收第三模加单元U28输出的2B,之后第六模减单元U33进行模减计算,得到X5=J‑2B,并将X5传输到第七模减单元U34的第一输入端中,第七模减单元U34的第二输入端用于接收第十八模乘单元U25输出的B,之后进行模减计算,得到K`=B‑X5,并将K`输出到第十一计算模组中,完成第四计算层级的计算,并得到输出结果坐标X5。
[0084] 在上述实施例的基础上,如图3所示,第十一计算模组的计算单元包括第二十四模乘单元、第二十五模乘单元以及第八模减单元;第二十四模乘单元的第一输入端与第二十二模乘单元的输出端相连接,第二十四模乘单元的第二输入端用于接收椭圆曲线参数,第二十五模乘单元的第一输入端和第二输入端分别与第四模加单元的输出端以及第七模减单元的输出端相连接,第二十五模乘单元的输出端与第八模减单元的第一输入端相连接,第八模减单元的第二输入端与第二十模乘单元的输出端相连接。
[0085] 在本实施例中,第十一计算模组包括第二十四模乘单元U35、第二十五模乘单元U36以及第八模减单元U37。其中,第二十四模乘单元U35的第一输入端用于接收第二十二模乘单元U30输出的E,第二输入端用于接收椭圆曲线参数Z4,之后第二十四模乘单元U35进行模乘计算,得到Z5=E*Z4。第二十五模乘单元U36的第一输入端用于接收第四模加单元U31输出的D,第二输入端用于接收第七模减单元U34输出的K`,之后进行模乘计算,得到K=D*K`,并将K输出到第八模减单元U37的第一输入端,第八模减单元U37的第二输入端用于接收第二十模乘单元U27输出的C,之后进行模减计算,得到Y5=K‑C,完成第六计算层级的计算过程,并得到输出结果坐标Y5和Z5。
[0086] 上述,本发明实施例根据非对称算法中二倍点计算的计算公式,将二倍点计算划分为五个计算层级,并根据五个计算层级将非对称算法计算电路划分为五个计算模组,每个计算模组对应一个计算层级,从而在进行二倍点计算时能够实现多个计算公式的并行计算,提高了二倍点计算的运算速度和运算效率。
[0087] 注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。