一种改进的椭圆曲线点乘方法和相关装置与流程

文档序号:37062955发布日期:2024-02-20 21:14阅读:11来源:国知局
一种改进的椭圆曲线点乘方法和相关装置与流程

本申请涉及密码学,特别是涉及一种改进的椭圆曲线点乘方法和相关装置。


背景技术:

1、在椭圆曲线密码体系(下称ecc)中,以某一坐标点p为起点,以系数k计算点乘[k]p是椭圆曲线的核心运算操作,而最基础的点乘算法为比特扫描,包括从左到右和从右到左这两种窗口法点乘算法,其可以有效抵抗两种常见sca(s ide channel attack,侧信道攻击)。

2、但是,在窗口法点乘算法中,系数k转换为进制数据时,该进制数据包含的相同比特在两个不同的时间点出现在点乘计算时,可能导致对应的两个时间段之间的局部函数相关性高于其他不同比特的同类操作,由此导致侧信道碰撞攻击技术可以通过分析侧信道功耗曲线上点加操作输入和输出数据之间的相关性,成功地从窗口法点乘算法的计算流程中获取系数k的大部分信息,造成安全威胁。


技术实现思路

1、有鉴于此,本申请提供了一种改进的椭圆曲线点乘方法和相关装置,能够有效抵抗侧信道碰撞攻击,其技术方案如下:

2、一种改进的椭圆曲线点乘方法,包括:

3、获取椭圆曲线点乘算法中待点乘的系数k在预设进制下的目标数据;

4、自目标数据的最低位比特开始依次遍历目标数据的每个比特,在遍历到选定比特时,将选定比特拆分为第一子比特和第二子比特,基于第一位权值和第一子比特执行点加操作和倍点操作,并将第一位权值作为第二子比特对应的位权值,其中,第一位权值是指在遍历到选定比特时执行点加操作和倍点操作的位权值;

5、在遍历到目标比特时和/或在遍历结束后,基于第二子比特对应的位权值和第二子比特执行点加操作,其中,目标比特的遍历时刻晚于选定比特的遍历时刻;

6、在遍历结束后,基于最终的点加操作结果,得到最终的点乘运算结果。

7、可选的,选定比特为非零比特,目标比特为零比特。

8、可选的,选定比特的数量大于1,目标比特的数量大于1;

9、改进的椭圆曲线点乘方法,还包括:

10、在每遍历到一个选定比特时,将遍历到的选定比特拆分出的第二子比特和该第二子比特对应的位权值存储到第一存储区域内,并将第一计数值加1,其中,初始的第一计数值为0;

11、在遍历到目标比特时和/或在遍历结束后,基于第二子比特对应的位权值和第二子比特执行点加操作,包括:

12、在每遍历到一个目标比特时,从第一存储区域内选取一个未选取过的第二子比特和该第二子比特对应的位权值,并将第一计数值减1;

13、基于选取的第二子比特和该第二子比特对应的位权值执行点加操作;

14、在遍历完所有的目标比特后,判断第一计数值是否为0;

15、若否,则在遍历结束后,返回执行从第一存储区域内选取一个未选取过的第二子比特和该第二子比特对应的位权值,并将第一计数值减1。

16、可选的,还包括:

17、在基于选取的第二子比特和该第二子比特对应的位权值执行点加操作之后,将选取的第二子比特和该第二子比特对应的位权值从第一存储区域内删除。

18、可选的,还包括:

19、在每遍历到目标数据的一个比特时,对于正在遍历的比特,随机获取预设范围内的数值;

20、若获取的数值为第一值,则将正在遍历的比特作为选定比特,其中,第一值包括预设范围内最大的至少一个值,第一子比特包含的子比特数量和第二子比特包含的子比特数量的和等于第一值;

21、若获取的数值为第二值,则将正在遍历的比特作为目标比特,其中,第二值包括预设范围内最小的至少一个值。

22、可选的,还包括:

23、若获取的数值为第二值,则将正在遍历的比特拆分为与第二值相同个数的子比特,若获取的数值为第三值,则将正在遍历的比特拆分为与第三值相同个数的子比特,其中,第三值为预设范围内不同于第一值和第二值的值;

24、针对正在遍历的比特拆分出的每个子比特,基于第二位权值和该子比特执行点加操作和倍点操作,其中,第二位权值是指在遍历到正在遍历的比特时执行点加操作和倍点操作的位权值。

25、可选的,第一值为3,第二值为1,第三值为2。

26、一种改进的椭圆曲线点乘装置,包括:

27、目标数据获取模块,用于获取椭圆曲线点乘算法中待点乘的系数k在预设进制下的目标数据;

28、点乘计算模块,用于自目标数据的最低位比特开始依次遍历目标数据的每个比特,在遍历到选定比特时,将选定比特拆分为第一子比特和第二子比特,基于第一位权值和第一子比特执行点加操作和倍点操作,并将第一位权值作为第二子比特对应的位权值,其中,第一位权值是指在遍历到选定比特时执行点加操作和倍点操作的位权值;

29、点加补算模块,用于在遍历到目标比特时和/或在遍历结束后,基于第二子比特对应的位权值和第二子比特执行点加操作,其中,目标比特的遍历时刻晚于选定比特的遍历时刻;

30、点乘运算结果确定模块,用于在遍历结束后,基于最终的点加操作结果,得到最终的点乘运算结果。

31、一种电子设备,包括存储器和处理器;

32、存储器,用于存储程序;

33、处理器,用于执行程序,实现如上述任一项的改进的椭圆曲线点乘方法的各个步骤。

34、一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如上述任一项的改进的椭圆曲线点乘方法的各个步骤。

35、经由上述的技术方案可知,本申请提供的改进的椭圆曲线点乘方法,获取椭圆曲线点乘算法中待点乘的系数k在预设进制下的目标数据,自目标数据的最低位比特开始依次遍历目标数据的每个比特,在遍历到选定比特时,将选定比特拆分为第一子比特和第二子比特,基于第一位权值和第一子比特执行点加操作和倍点操作,并将第一位权值作为第二子比特对应的位权值,在遍历到目标比特时和/或在遍历结束后,基于第二子比特对应的位权值和第二子比特执行点加操作,在遍历结束后,基于最终的点加操作结果,得到最终的点乘运算结果。由此可见,本申请在遍历到选定比特时,仅对选定比特拆分出的第一子比特执行点加操作和倍点操作,在后续遍历到目标比特或者遍历结束后,再基于选定比特拆分出的第二子比特以及第二子比特对应的位权值执行点加操作,由此可以打乱点加操作输入与输出之间的联系,使得碰撞攻击依赖的数据出现在侧信道功耗信号上的顺序被打乱,从而可以有效地抵抗侧信道碰撞攻击。



技术特征:

1.一种改进的椭圆曲线点乘方法,其特征在于,包括:

2.根据权利要求1所述的改进的椭圆曲线点乘方法,其特征在于,所述选定比特为非零比特,所述目标比特为零比特。

3.根据权利要求2所述的改进的椭圆曲线点乘方法,其特征在于,所述选定比特的数量大于1,所述目标比特的数量大于1;

4.根据权利要求3所述的改进的椭圆曲线点乘方法,其特征在于,还包括:

5.根据权利要求1所述的改进的椭圆曲线点乘方法,其特征在于,还包括:

6.根据权利要求5所述的改进的椭圆曲线点乘方法,其特征在于,还包括:

7.根据权利要求5或6所述的改进的椭圆曲线点乘方法,其特征在于,所述第一值为3,所述第二值为1,所述第三值为2。

8.一种改进的椭圆曲线点乘装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括存储器和处理器;

10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任一项所述的改进的椭圆曲线点乘方法的各个步骤。


技术总结
本申请提供了一种改进的椭圆曲线点乘方法和相关装置,获取椭圆曲线点乘算法中待点乘的系数k在预设进制下的目标数据,自目标数据的最低位比特开始依次遍历目标数据的每个比特,在遍历到选定比特时,将选定比特拆分为第一子比特和第二子比特,基于第一位权值和第一子比特执行点加操作和倍点操作,并将第一位权值作为第二子比特对应的位权值,在遍历到目标比特时和/或在遍历结束后,基于第二子比特对应的位权值和第二子比特执行点加操作,在遍历结束后,基于最终的点加操作结果,得到最终的点乘运算结果。本申请使第一子比特和第二子比特在不同时刻执行点加操作,由此可以打乱点加操作输入与输出之间的联系,从而可以有效地抵抗侧信道碰撞攻击。

技术研发人员:柴森,周雪皓
受保护的技术使用者:紫光同芯微电子有限公司
技术研发日:
技术公布日:2024/2/19
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1