基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置制造方法及图纸

技术编号:15391268 阅读:57 留言:0更新日期:2017-05-19 04:40
一种基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置。所述基于蒙哥马利模乘的数据处理方法包括:采用如下步骤计算所述第一值s2:获取第一存储器的初始值s1

Processing method of data, Montgomery modular multiplication method and device based on

A processing method, based on the data of Montgomery modular multiplication method and device. Including the Montgomery modular multiplication based on the data processing method includes the following steps: calculating the value of S2: first to obtain the initial value of the first memory S1

【技术实现步骤摘要】
基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置
本专利技术涉及数据加密的
,具体涉及一种基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置。
技术介绍
RSA、ECC和SM2是目前广泛使用的公钥密码算法。其中,RSA算法中的模幂运算、ECC和SM2算法中的点乘运算,都会大量使用到大数模乘。可以说,大数模乘是上述公钥加密算法中的核心运算,直接决定了上述公钥加密算法的性能。蒙哥马利模乘是目前主流的大数模乘实现方法。相对于对输入数据直接进行模乘运算,蒙哥马利模乘不仅可以节省一倍的存储空间,还可以避免除法运算,通过移位的方式达到取模的效果,有效提高数据的处理效率。然而,目前在实现任意长度的蒙哥马利模乘运算时,计算量仍然较大,导致计算效率较低。
技术实现思路
本专利技术解决的技术问题是如何降低蒙哥马利模乘器运算的计算量,提高计算效率。为解决上述技术问题,本专利技术实施例提供一种基于蒙哥马利模乘的数据处理方法,所述方法包括:当接收到模数N时,计算第一值s2,以根据所述第一值s2,调用蒙哥马利模乘器,对待处理的数据执行模乘运算;采用如下步骤计算所述第一值s2:获取第一存储器的初始值s10,所述初始值s10的位长为n,且高n-c位为0,低c位为1,w为所述蒙哥马利模乘器的位长,k为满足k*w≥c的最小整数,n=k*w,c为所述模数N的位长,c、k及N均为正整数;将所述初始值s10与模数N的差再与1求和,得到计算结果s11,并将所述计算结果s11写入所述第一存储器;对所述第一存储器的值s11执行n-c次模加运算,得到计算结果s1n-c+1;将计算结果s1n-c+1对N取模后的结果s1写入至所述第一存储器;对所述第一存储器的值s1执行一次模加运算,获得计算结果s21,并将所述计算结果s21作为第二存储器的初始值写入至所述第二存储器;调用所述蒙哥马利模乘器对所述第二存储器的初始值执行n-1次模乘运算,并将第n-1次模乘运算的结果R2modN作为所述第一值s2输出,其中R=2n。本专利技术实施例还提供了一种模乘运算方法,所述方法包括:按照上述的基于蒙哥马利模乘的数据处理方法计算获得第一值s2;当接收到待处理的数据A及B时,根据所述第一值s2,对所述待处理的数据A与R2执行蒙哥马利模乘运算,获得运算结果y1,以及计算所述待处理的数据B与R2执行蒙哥马利模乘运算,获得运算结果y2;对运算结果y1和y2执行蒙哥马利模乘运算,获得运算结果y3;对运算结果y3与数值1执行蒙哥马利模乘运算,获得所述待处理的数据A及B的模乘运算结果y。本专利技术实施例还提供了一种基于蒙哥马利模乘的数据处理装置,所述装置包括:第一计算单元,适于当接收到模数N时,计算第一值s2,以根据所述第一值s2,调用蒙哥马利模乘器,对待处理的数据执行模乘运算,所述第一计算单元包括:获取子单元,适于获取第一存储器的初始值s10,所述初始值s10的位长为n,且高n-c位为0,低c位为1,w为所述蒙哥马利模乘器的位长,k为满足k*w≥c的最小整数,n=k*w,c为所述模数N的位长,c、k及N均为正整数;第一计算子单元,适于将所述初始值s10与模数N的差再与1求和,得到计算结果s11,并将所述计算结果s11写入所述第一存储器;对所述第一存储器的值s11执行n-c次模加运算,得到计算结果s1n-c+1;将计算结果s1n-c+1对N取模后的结果s1写入至所述第一存储器;第二计算子单元,适于对所述第一存储器的值s1执行一次模加运算,获得计算结果s21,并将所述计算结果s21作为第二存储器的初始值写入至所述第二存储器;调用所述蒙哥马利模乘器对所述第二存储器的初始值执行n-1次模乘运算,并将第n-1次模乘运算的结果R2modN作为所述第一值s2输出,其中R=2n。本专利技术实施例还提供了一种模乘运算装置,所述装置包括:上述的基于蒙哥马利模乘的数据处理装置,通过所述数据处理装置获得所述第一值s2;第二计算单元,适于当接收到待处理的数据A及B时,根据所述第一值s2,对所述待处理的数据A与R2执行蒙哥马利模乘运算,获得运算结果y1,以及计算所述待处理的数据B与R2执行蒙哥马利模乘运算,获得运算结果y2;第三计算单元,适于对运算结果y1和y2执行蒙哥马利模乘运算,获得运算结果y3;第四计算单元,适于对运算结果y3与数值1执行蒙哥马利模乘运算,获得所述待处理的数据A及B的模乘运算结果y。与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:在基于蒙哥马利模乘计算s1时,通过设置第一存储器的初始值s10的位长为n,且高n-c位为0,低c位为1,进而可以在获得s11后,仅通过n-c次模加运算即能获得s1的值,由此可以根据s1获得第一值s2。相对于现有技术中的方案,可以有效减少计算量,提高计算效率。并且,由于c为任意值,因此,应用所述方法可以实现任意长度的蒙哥马利模乘运算。附图说明图1是本专利技术实施中一种模乘运算方法的流程图;图2是本专利技术实施例中一种基于蒙哥马利模乘的数据处理方法的流程图;图3是本专利技术实施中一种基于蒙哥马利模乘的数据处理装置的结构示意图;图4是本专利技术实施中一种模乘运算装置的结构示意图。具体实施方式目前,在基于蒙哥马利模乘计算s1时,通常令s10=0xFF…F-N+1,其中,0xFF…F的位长为n,n为机器字长的整数倍,N为模数,进而可以通过0xFF…F与模数N之间的模减运算来获得s1的值,此时s1的位长为n。因此,上述方法仅能实现机器字长整数倍的蒙哥马利模乘运算。并且,由于硬件实现模减运算时,如果两数相减的结果超过硬件的位长即溢出,则需要对两数相减的结果再与模数N相减,直至与模数相减后的结果没有溢出,并将此时与模数相减后的结果作为两数模减运算的结果,因此,在基于蒙哥马利模乘计算s1时,通常需要进行2n-c次减法运算,才能获得s1的值,导致模乘运算的计算量仍然较大,计算效率较低。针对上述问题,本专利技术实施例提供了一种基于蒙哥马利模乘的数据处理方法,所述方法在基于蒙哥马利模乘计算s1时,通过设置第一存储器的初始值s10的位长为n,且高n-c位为0,低c位为1,进而可以在对s11执行n-c次模加运算后,获得位长为n的s11,从而可以根据s11获得s1的值,最终根据s1的值对待处理的数据进行后续的模乘运算。由于c为任意值,因此,利用所述方法可以帮助实现任意位长的蒙哥马利模乘运算。并且,相对于现有技术中的方案,仅通过n-c次模加运算即可获得s1的值,因此,在实现任意位长的蒙哥马利模乘运算过程中,可以有效减少计算量,提高计算效率。为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。如图1所示,本专利技术实施例提供了一种模乘运算方法,所述方法可以包括如下步骤:步骤11,计算第一值s2。在具体实施中,所述第一值s2的值为R2modN,位长为c。其中,R=2n,w通常为机器字长的蒙哥马利模乘器的位长,例如,w的值通常为8bit,16bit或32bit等。k为满足k*w≥c的最小整数,n=k*w,c为所述模数N的位长,c、k及N均为正整数。需要说明的是,在接收到模数N的值时,即可计算第一值s2。这样,在接收到待处理的数据时,即可根据所述第一值s2将待处理本文档来自技高网...
基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置

【技术保护点】
一种基于蒙哥马利模乘的数据处理方法,其特征在于,包括:当接收到模数N时,计算第一值s2,以根据所述第一值s2,调用蒙哥马利模乘器,对待处理的数据执行模乘运算;采用如下步骤计算所述第一值s2:获取第一存储器的初始值s1

【技术特征摘要】
1.一种基于蒙哥马利模乘的数据处理方法,其特征在于,包括:当接收到模数N时,计算第一值s2,以根据所述第一值s2,调用蒙哥马利模乘器,对待处理的数据执行模乘运算;采用如下步骤计算所述第一值s2:获取第一存储器的初始值s10,所述初始值s10的位长为n,且高n-c位为0,低c位为1,w为所述蒙哥马利模乘器的位长,k为满足k*w≥c的最小整数,n=k*w,c为所述模数N的位长,c、k及N均为正整数;将所述初始值s10与模数N的差再与1求和,得到计算结果s11,并将所述计算结果s11写入所述第一存储器;对所述第一存储器的值s11执行n-c次模加运算,得到计算结果s1n-c+1;将计算结果s1n-c+1对N取模后的结果s1写入至所述第一存储器;对所述第一存储器的值s1执行一次模加运算,获得计算结果s21,并将所述计算结果s21作为第二存储器的初始值写入至所述第二存储器;调用所述蒙哥马利模乘器对所述第二存储器的初始值执行n-1次模乘运算,并将第n-1次模乘运算的结果R2modN作为所述第一值s2输出,其中R=2n。2.一种模乘运算方法,其特征在于,包括:按照权利要求1所述的基于蒙哥马利模乘的数据处理方法计算获得第一值s2;当接收到待处理的数据A及B时,根据所述第一值s2,对所述待处理的数据A与R2执行蒙哥马利模乘运算,获得运算结果y1,以及计算所述待处理的数据B与R2执行蒙哥马利模乘运算,获得运算结果y2;对运算结果y1和y2执行蒙哥马利模乘运算,获得运算结果y3;对运算结果y3与数值1执行蒙哥马利模乘运算,获得所述待处理的数据A及B的模乘运算结果y。3.一种基于蒙哥马利模乘的数据处理装置,其特征在于,包括:第一计算单...

【专利技术属性】
技术研发人员:单伟君王立辉闫守礼张志敏李清张纲俞军
申请(专利权)人:上海复旦微电子集团股份有限公司
类型:发明
国别省市:上海,31

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

1