System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 椭圆曲线加密算法的点乘计算电路、方法、设备及介质技术_技高网

椭圆曲线加密算法的点乘计算电路、方法、设备及介质技术

技术编号:41417802 阅读:9 留言:0更新日期:2024-05-21 20:50
本申请提出一种椭圆曲线加密算法的点乘计算电路、方法、设备及介质,该点乘计算电路应用于单片机中,包括:存储器,用于存储待运算数据;待运算数据包括标量k和固定点P的坐标数据;数据调用模块,基于目标待运算数据调取预设计算表,确定目标待运算数据对应的第一预计算量和第二预计算量;第一预计算量和第二预计算量均为标量k相关的二进制串与固定点P的点乘结果;点乘器,分别与存储器和数据调用模块连接,接收到点乘计算指令后,获取目标待运算数据、第一预计算量和第二预计算量,并基于目标待运算数据、第一预计算量及第二预计算量进行点乘运算。本申请的点乘方法的运算量比传统的comb算法的运算量明显降低,能够有效提高点乘运算的速度。

【技术实现步骤摘要】

本申请属于数据处理,具体涉及一种椭圆曲线加密算法的点乘计算电路、方法、设备及介质


技术介绍

1、现在人们越来越重视数据的安全性,尤其是在数据传输过程中的安全性。所以,在进行数据传输时,通常会采用加密算法对数据个加密。其中,椭圆曲线加密算法(ecc)是一个安全且实用的公钥密码算法,既能用于数据的加密也能用于数字签名,是目前信息安全领域中热门的公钥密码算法。对于给定的安全加密级别,ecc比传统的rsa公钥加密算法有更小的参数。对于更高的安全性级别,参数大小的差异更加明显。更小的参数带来的好处是,计算速度快、密钥更短和密钥证书更小。

2、点乘运算是椭圆曲线加密算法中的一个核心运算步骤,也是最耗时的一个运算步骤。虽然现在已经有人研究出了快速进行点乘运算的方法,例如梳状算法(comb method),其是椭圆曲线点乘运算中常使用的一种快速算法。但是,现有的comb算法在主循环中点加和倍点的运算量近似相等,算法的运算量还是较大,使得椭圆曲线加密算法在实现过程中产生较高的功耗,影响整体运算速度。


技术实现思路

1、本申请提出一种椭圆曲线加密算法的点乘计算电路、方法、设备及介质,该点乘计算电路和方法比传统的comb算法的运算量明显减少,能够有效提高点乘运算的速度。

2、本申请第一方面实施例提出了一种椭圆曲线加密算法的点乘计算电路,应用于单片机中,所述点乘计算电路包括:

3、存储器,用于存储待运算数据;所述待运算数据至少包括标量k和固定点p的坐标数据;

<p>4、数据调用模块,基于目标待运算数据调取预设计算表,确定所述目标待运算数据对应的第一预计算量和第二预计算量;所述第一预计算量和所述第二预计算量均为所述标量k相关的二进制串与固定点p的坐标数据经过点乘运算的结果;

5、点乘器,分别与所述存储器和所述数据调用模块连接,在接收到点乘计算指令后,从所述存储器获取目标待运算数据,从所述数据调用模块接口获取所述第一预计算量和所述第二预计算量,并基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算。

6、可选地,所述点乘器,具体用于:

7、基于当前的倍点结果、所述第一预计算量及所述第二预计算量,进行点加运算,得到当前的点加结果;

8、对当前的点加结果进行倍点运算,再次得到当前的倍点结果;

9、循环执行上述两个步骤,直至达到所述目标待运算数据中的预设循环次数。

10、可选地,所述存储器还存储无效数据,所述点乘器在基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算之前,和/或之后,还基于所述无效数据,及所述无效数据对应的第一预计算量,和/或所述无效数据对应的对应第二预计算量,进行相应次数的无效倍点运算和无效点加运算。

11、可选地,所述数据调用模块包括晶体管构成的多个子电路。

12、本申请第二方面的实施例提供了一种椭圆曲线加密算法的点乘计算方法,通过第一方面所述点乘计算电路实现,所述方法包括:

13、点乘器接收到点乘计算指令后,从存储器获取目标待运算数据,并将所述目标待运算数据发送至数据调用模块;所述待运算数据至少包括标量k和固定点p的坐标数据;

14、所述数据调用模块基于所述目标待运算数据查询预设计算表,获取所述待运算数据对应的第一预计算量和第二预计算量;所述第一预计算量和所述第二预计算量均为所述标量k相关的二进制串与固定点p的坐标数据经过点乘运算的结果;

15、所述点乘器基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算。

16、可选地,所述基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算,包括:

17、基于当前的倍点结果、所述第一预计算量及所述第二预计算量,进行点加运算,得到当前的点加结果;

18、对当前的点加结果进行倍点运算,再次得到当前的倍点结果;

19、循环执行上述两个步骤,直至达到所述目标待运算数据中的预设循环次数。

20、可选地,所述基于当前的倍点结果、所述第一预计算量及所述第二预计算量,进行点加运算,得到当前的点加结果,包括:

21、确定所述第一预计算量对应的第一二进制串,以及所述第二预计算量对应的第二二进制串;

22、确定所述第一二进制串和所述第二二进制串是否等于0;

23、若至少有一个二进制串不等于0,则基于不等于0的二进制串对应的预计算量,与当前的倍点结果进行相应次数的点加运算。

24、可选地,所述

25、若至少有一个二进制串不等于0,则基于不等于0的二进制串对应的预计算量,与当前的倍点结果进行相应次数的点加运算,包括:

26、若所述第一二进制串和所述第二二进制串均不等于0,则基于所述第一预计算量和所述第二预计算量,与当前的倍点结果进行两次点加运算;

27、若所述第一二进制串和所述第二二进制串仅有一个等于0,则基于不等于0的二进制串对应的预计算量,与与当前的倍点结果进行一次点加运算。

28、可选地,所述进行倍点运算包括:

29、在雅可比投影坐标下,利用雅可比坐标形式的倍点公式进行倍点运算。

30、可选地,所述进行点加运算包括:

31、在雅可比和仿射混合坐标下,利用雅可比-仿射混合坐标形式的点加公式,进行点加运算。

32、可选地,所述点乘器基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算之前,和/或之后,还执行如下的处理步骤:

33、基于预设的无效数据和/或所述无效数据对应的第一预计算量,和/或所述无效数据对应的对应第二预计算量,进行相应次数的无效倍点运算和无效点加运算。

34、可选地,所述确定所述第一二进制串和所述第二二进制串是否等于0之后,还包括:

35、若所述第一二进制串或所述第二二进制串等于0,则基于预设的无效数据及所述无效数据对应的第一预计算量,或所述无效数据对应的对应第二预计算量,进行无效点加运算。

36、本申请第三方面的实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储模块中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的步骤。

37、本申请第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现如第一方面所述的方法。

38、本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

39、本申请实施例提供的椭圆曲线加密算法的点乘计算电路,每次进行点乘计算的主循环过程,可以通过数据调用模块直接查找和调用预计算好的该两个预计算量,然后点乘器可基于该两个预计算量进行倍点运算和点加运算即可。由于本申请设置了两个预计算量,可直接调用,从而可以降低点乘计算的功耗。且可通过合理本文档来自技高网...

【技术保护点】

1.一种椭圆曲线加密算法的点乘计算电路,其特征在于,应用于单片机中,所述点乘计算电路包括:

2.根据权利要求1所述的电路,其特征在于,所述点乘器,具体用于:

3.根据权利要求1所述的电路,其特征在于,所述存储器还存储无效数据,所述点乘器在基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算之前,和/或之后,还基于所述无效数据,及所述无效数据对应的第一预计算量,和/或所述无效数据对应的对应第二预计算量,进行相应次数的无效倍点运算和无效点加运算。

4.根据权利要求1所述的电路,其特征在于,所述数据调用模块包括晶体管构成的多个子电路。

5.一种椭圆曲线加密算法的点乘计算方法,其特征在于,通过权利要求1-4任一项所述点乘计算电路实现,所述方法包括:

6.根据权利要求5所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算,包括:

7.根据权利要求6所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述基于当前的倍点结果、所述第一预计算量及所述第二预计算量,进行点加运算,得到当前的点加结果,包括:

8.根据权利要求7所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述若至少有一个二进制串不等于0,则基于不等于0的二进制串对应的预计算量,与当前的倍点结果进行相应次数的点加运算,包括:

9.根据权利要求6所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述进行倍点运算包括:

10.根据权利要求6所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述进行点加运算包括:

11.根据权利要求5所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述点乘器基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算之前,和/或之后,还执行如下的处理步骤:

12.根据权利要求7所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述确定所述第一二进制串和所述第二二进制串是否等于0之后,还包括:

13.一种电子设备,包括存储器、处理器以及存储在所述存储模块中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求5-12任一项所述的方法。

14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行实现如权利要求5-12任一项所述的方法。

...

【技术特征摘要】

1.一种椭圆曲线加密算法的点乘计算电路,其特征在于,应用于单片机中,所述点乘计算电路包括:

2.根据权利要求1所述的电路,其特征在于,所述点乘器,具体用于:

3.根据权利要求1所述的电路,其特征在于,所述存储器还存储无效数据,所述点乘器在基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算之前,和/或之后,还基于所述无效数据,及所述无效数据对应的第一预计算量,和/或所述无效数据对应的对应第二预计算量,进行相应次数的无效倍点运算和无效点加运算。

4.根据权利要求1所述的电路,其特征在于,所述数据调用模块包括晶体管构成的多个子电路。

5.一种椭圆曲线加密算法的点乘计算方法,其特征在于,通过权利要求1-4任一项所述点乘计算电路实现,所述方法包括:

6.根据权利要求5所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述基于所述目标待运算数据、所述第一预计算量及所述第二预计算量进行点乘运算,包括:

7.根据权利要求6所述的椭圆曲线加密算法的点乘计算方法,其特征在于,所述基于当前的倍点结果、所述第一预计算量及所述第二预计算量,进行点加运算,得到当前的点加结果,包括:

8.根据...

【专利技术属性】
技术研发人员:马兵王敏虞少平陈阳光
申请(专利权)人:浙江地芯引力科技有限公司
类型:发明
国别省市:

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

1