一种应用于标量乘的素数域模乘方法

文档序号:35627093发布日期:2023-10-05 23:41阅读:84来源:国知局
一种应用于标量乘的素数域模乘方法与流程

本申请涉及素数域模乘模乘方法,尤其涉及一种应用于标量乘的素数域模乘方法,属于硬件信息安全。


背景技术:

1、随着网络技术的飞速发展以及智能终端的大规模普及,信息安全问题也逐渐引起人们的重视,网络安全主要是信息安全,而密码学是信息安全领域的核心研究问题,公钥密码体制是现代密码学研究的一个重要分支,它能有效地解决公共信道上的数字签名,身份认证等问题,广泛应用于保密通信、电子政务、电子商务、电子金融等领域。公钥密码系统主要包括rsa体制、椭圆曲线密码(ecc)体制。椭圆曲线密码体制基于椭圆曲线的离散对数问题的困难性基础,与rsa密码体制相比较,椭圆曲线密码体制的安全性高于rsa密码体制,达到相同的安全强度,椭圆曲线加密体制需要的密钥长度远小于rsa,被认为是当前最安全,用途最广的公钥密码体制。

2、素数域是标量乘运算过程中常用的运算域,标量乘算法是椭圆曲线密码系统的核心,模乘算法是标量乘运算中既特别耗时又计算密集性的任务,提高模乘的计算速度往往是打破加密系统瓶颈的关键。使用基本的模乘算法会使得关键路径延迟变长、计算效率降低。

3、因此,需要设计一种用于素数域的模乘算法来提高标量乘运算的效率。


技术实现思路

1、在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

2、鉴于此,为解决现有技术的技术问题,本发明提供一种应用于标量乘的素数域模乘模乘方法。本发明通过优化原素数域乘法中所需的大整数乘法,通过使用冗余有符号数来代替一般二进制参与运算,利用冗余有符号数能够在进行加法或减法运算时不需要转换成补码进行运算,而且可以进行无进位加法;利用递归的toom-cook-3算法将原本需要81计算的大整数乘法减少至25次,降低了整体二次扩域模乘的计算次数,同时将原来的261位的乘法位宽减少至29位,减少了乘法运算的位数;提出改进后的素数域模乘算法:将其中一些流水线结构转换成并行的结构,减少了乘法运算的时钟周期,可以更短时间内完成标量乘中的模乘运算模块,最终快速实现标量乘运算;

3、方案一、一种应用于标量乘的素数域模乘模乘方法,包括以下步骤:

4、s1.对输入的操作数进行预计算,将位宽为261位的操作数x,y转入toom-cook域中,将操作数x和y转换成toom-cook域中操作数a,b,当位宽不足时,进行高位补零;

5、s2.将操作数a,b转换成冗余有符号数,冗余有符号数包括0,1,-1;

6、s3.将261位的操作数a,b进行分解,分解为9段位宽为29位的子操作数,使用toom-cook乘法计算单元积,将单元积与矩阵m进行乘法运算得到中间积,通过先移位后异或得到531位toom-cook域下部分积toom(a,b);

7、s4.将得到的531位toom-cook域下部分积toom(a,b)转出toom-cook域,得到素数域下的531位部分积tc(a,b);

8、s5.将素数域的部分积tc(a,b)进行模约减,约减结果为最终的模乘结果。

9、优选的,冗余有符号数0使用二进制数00表示,冗余有符号数1使用二进制数10表示,冗余有符号数-1使用二进制数01表示。

10、优选的,单元积包括第一部分单元积t0、t1、t2、t3和t4;第二部分单元积r0、r1、r2、r3和r4;第三部分单元积w0、w1、w2、w3和w4;第四部分单元积u0、u1、u2、u3和u4;第五部分单元积v0、v1、v2、v3和v4。

11、优选的,矩阵m的值为:

12、

13、优选的,中间积包括g0、g1、g2、g3和g4。

14、优选的,约减结果包括t、s1、s2、s3、s4、s5、s6、s7、s8和s9。

15、方案三、一种电子设备,包括存储器和处理器,存储器存储有计算机程序,所述的处理器执行所述计算机程序时实现方案一所述的一种应用于标量乘的素数域模乘模乘方法的步骤。

16、方案四、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现方案一所述的一种应用于标量乘的素数域模乘模乘方法。

17、本发明的有益效果如下:本发明了模乘算法的灵活性和高性能。其最大频率可达1.0ghz,并且计算以此只需30个周期。总耗时30ns即可完成一次素数域下的大数模乘运算,提高了模乘的运算速率。



技术特征:

1.一种应用于标量乘的素数域模乘方法,其特征在于,包括以下步骤:

2.根据权利要求1所述一种应用于标量乘的素数域模乘模乘方法,其特征在于,冗余有符号数0使用二进制数00表示,冗余有符号数1使用二进制数10表示,冗余有符号数-1使用二进制数01表示。

3.根据权利要求2所述一种应用于标量乘的素数域模乘模乘方法,其特征在于,单元积包括第一部分单元积t0、t1、t2、t3和t4;第二部分单元积r0、r1、r2、r3和r4;第三部分单元积w0、w1、w2、w3和w4;第四部分单元积u0、u1、u2、u3和u4;第五部分单元积v0、v1、v2、v3和v4。

4.根据权利要求3所述一种应用于标量乘的素数域模乘模乘方法,其特征在于,矩阵m的值为:

5.根据权利要求4所述一种应用于标量乘的素数域模乘模乘方法,其特征在于,中间积包括g0、g1、g2、g3和g4。

6.根据权利要求5所述一种应用于标量乘的素数域模乘模乘方法,其特征在于,约减结果包括t、s1、s2、s3、s4、s5、s6、s7、s8和s9。

7.一种电子设备,其特征在于,包括存储器和处理器,存储器存储有计算机程序,所述的处理器执行所述计算机程序时实现权利要求1-6任一项所述的一种应用于标量乘的素数域模乘模乘方法的步骤。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的一种应用于标量乘的素数域模乘模乘方法。


技术总结
本发明提出一种应用于标量乘的素数域模乘模乘方法,属于硬件信息安全技术领域。包括以下步骤:S1.对输入的操作数进行预计算,将位宽为261位的操作数X,Y转入Toom‑Cook域中,转换成操作数A,B,当位宽不足时,进行高位补零;S2.将A,B转换成冗余有符号数;S3.将操作数A,B分解为9段位宽为29位的子操作数,计算单元积,将单元积与矩阵进行乘法运算,通过先移位后异或得到531位运算结果;S4.将531位运算结果转出Toom‑Cook域,得到素数域的531位乘法运算结果;S5.将531位运算结果输入到模约减模块中,得到模乘运算结果。解决基本的模乘算法会使得关键路径延迟变长、计算效率降低的问题。

技术研发人员:赵石磊,庞英健,黄海,刘志伟,于斌,马超,吴英东
受保护的技术使用者:哈尔滨理工大学
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1