CN102207847A - 基于蒙哥马利模乘运算的数据加解密处理方法及装置 - Google Patents

基于蒙哥马利模乘运算的数据加解密处理方法及装置 Download PDF

Info

Publication number
CN102207847A
CN102207847A CN2011101164804A CN201110116480A CN102207847A CN 102207847 A CN102207847 A CN 102207847A CN 2011101164804 A CN2011101164804 A CN 2011101164804A CN 201110116480 A CN201110116480 A CN 201110116480A CN 102207847 A CN102207847 A CN 102207847A
Authority
CN
China
Prior art keywords
data
arithmetic element
montgomery
result
modular multiplication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011101164804A
Other languages
English (en)
Other versions
CN102207847B (zh
Inventor
梁鹏飞
张永强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GCI Science and Technology Co Ltd
Original Assignee
GCI Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GCI Science and Technology Co Ltd filed Critical GCI Science and Technology Co Ltd
Priority to CN2011101164804A priority Critical patent/CN102207847B/zh
Publication of CN102207847A publication Critical patent/CN102207847A/zh
Application granted granted Critical
Publication of CN102207847B publication Critical patent/CN102207847B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于蒙哥马利模乘运算的数据加解密处理方法及装置,在对数据加密或解密时,将模幂运算转换为蒙哥马利模乘运算。所述蒙哥马利模乘运算分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;在外循环和内循环运算结束后,对运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成并行处理流水线架构,能够降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果,从而提高数据加解密的效率和速度。

Description

基于蒙哥马利模乘运算的数据加解密处理方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于蒙哥马利模乘运算的数据加解密处理方法及装置。
背景技术
随着无线网络通信技术的迅速发展,人们对信息安全的要求不断提高,相关的网络安全协议不断产生,如国家无线局域网委员会提出的WAPI(Wireless LAN Authentication and Privacy Infrastructure,无线局域网鉴别和保密基础结构)网络安全协议;网络安全方面的产品也不断推出;因此,开发一种高效而安全的加密算法是势在必行的。
目前所流行的加密算法有对称加密算法和非对称加密算法,而在非对称加密算法当中,RSA和ECC加密算法的应用普及率最高。在WAPI无线局域网技术文件里面就有提到,WAPI的安全协议采用的就是ECC(椭圆曲线密码算法)加密算法。ECC加密算法中的底层运算基本上是依靠模乘来完成的,而模乘的运算速度和效率也决定了整个ECC加密算法的效率和速度。
在目前的大整数模乘算法的硬件实现中,蒙哥马利(Montgomery)模乘算法被认为是最高效的,也是最适合用硬件实现的一种算法。Montgomery算法设计了一个剩余类系统,将普通模乘的计算过程转换到Montgomery剩余类(余数域)里面进行,在这个剩余类里面,所有的数的计算过程中产生的大数都会被规约到剩余类里,它的计算会显得更加简洁,特别是在硬件实现上面,能够提供更加迅速的计算速度和更简单的硬件结构。Montgomery算法理论的基础是下面的定理1。
定理1:假设N和R是互素的两个整数,N′=-N-1 modR,则对于所有的整数T,当M=T×N′modR时,
Figure BDA0000059627360000011
是一个整数,而且满足:
Figure BDA0000059627360000012
其中N′是N的逆,T是乘数A和被乘数B的乘积。
为了让Montgomery模乘算法在实际应用中(软件、硬件)能更方便地使用,可以根据计算机或者芯片精度的要求,把每个大数分解成为2n为基底的数,按照字节的处理方式来实现Montgomery算法。
设q是2为基底的数,利用q来表示多精度的大数A如下:
A=an-1qn-1+an-2qn-2++a1q+a0
根据上述定理1所推导的Montgomery模乘算法转换成代码在FPGA(Field-Programmable Gate Array,现场可编程门阵列)上实现时,不具备并行运算的可能性,几个乘法的实现形式是串行进行的,它们的运算结果都需要依赖前面计算所得的值,因此在FPGA上实现起来的运算速度慢,导致整个ECC加密算法的效率低,速度低。
发明内容
本发明所要解决的技术问题是,提供一种高效的蒙哥马利模乘算法,以达到降低系统运行的周期、提高整体模乘效率的效果,使其应用于数据加密算法中时,能够提高数据加解密的效率和速度。
为解决以上技术问题,本发明实施例提供一种基于蒙哥马利模乘运算的数据加解密处理方法,包括:
获取由待处理的数据构成的模幂运算;
将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
根据所述模幂运算的结果获得处理后的数据;
所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
所述模乘运算的实现方法如下:
输入被乘数A、乘数B、模数P和模数P的逆q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则
Figure BDA0000059627360000021
Figure BDA0000059627360000022
Figure BDA0000059627360000023
Figure BDA0000059627360000024
其中,k是处理器的运算字长;
设置外循环变量i、内循环变量j、中间变量z、ti和s,所述蒙哥马利模乘运算的步骤如下:
S01、令C为0;
S02、令外循环变量i为0,开始外循环;
S03、令z为0;
S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti
S05、令内循环变量j为0,开始内循环;
S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1
S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1
S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
S12、返回C。
相应地,本发明实施例还提供一种蒙哥马利模乘运算装置,其运算字长为k,包括:
输入控制器,用于输入被乘数A、乘数B、模数P和模数P的逆q;按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;
数据存储器,用于存储已转换成m维数组的A、B、P和q;
时序控制器,用于控制所述数据存储器的数据输入和输出;
数据通路,用于从所述数据存储器中输入A、B、P和q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
输出单元,用于对所述数据通路的输出波形进行整形,并作为最终模乘输入的接口;
其中,所述数据通路进行蒙哥马利模乘运算的步骤与上述的S01~S12相同。
进一步的,本发明实施例还提供一种基于蒙哥马利模乘运算的数据加解密处理装置,包括:
数据输入模块,用于获取由待处理的数据构成的模幂运算;
模乘处理模块,将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
数据输出模块,根据所述模幂运算的结果获得处理后的数据;
所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
所述模乘处理模块包括上述的蒙哥马利模乘运算装置,用于实现蒙哥马利模乘运算。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法及装置,使用FIOS(finely integrated operand scanning)技术,将蒙哥马利模乘算法分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。该蒙哥马利模乘算法应用于ECC加密算法中时,能够提高数据加解密的效率和速度。
附图说明
图1是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法的流程示意图;
图2是本发明实施例提供的蒙哥马利模乘运算装置的结构示意图。
图3是本发明实施例提供的输入控制模块图;
图4是本发明实施例提供的数据通路的结构示意图;
图5是本发明实施例提供的PU_A运算单元的结构示意图;
图6是本发明实施例提供的PU_B运算单元的结构示意图;
图7是本发明实施例提供的约减运算单元的结构示意图;
图8是本发明实施例提供的蒙哥马利模乘运算装置的流水线结构数据流向图;
图9是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例使用FIOS技术,将Montgomery模乘算法分解成为内外循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;并且,在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。
基于FIOS的Montgomery模乘算法如下:
Input : A = ( a m - 1 , · · · , a 1 , a 0 ) 2 k , B = ( b m - 1 , · · · , b 1 , b 0 ) 2 k ,
P = ( p m - 1 , · · · , p 1 , p 0 ) 2 k , q = - p - 1 mod 2 k = - p 0 - 1 mod 2 k
Output:C=AB2-nmodP
1.C=0
2.for i=0 to m-1
3.z=0
4.ti=(c0+aib0)qmod2k
5.for j=0 to m-1
6.S=cj+aibj+tipj+z
7.if(j≠0)then cj-1=S mod2k
8.z=s/2k,cm-1=z
9.if(C>P)thenC=C-P else C=C
10.return C
其中,A为被乘数,B为乘数,P为模数,q是模数P的逆;并以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;k是处理器的运算字长,i是外循环变量,j是内循环变量,z、ti和s是中间变量,
Figure BDA0000059627360000061
需要说明的是,可以利用软件平台计算得出模数P的逆q。对于应用在WAPI无线局域网络的标准,模数P是一个恒定的值,因此可以通过C语言等工具把q预先计算出来。当然,除了使用软件的方法来获取q值,还可以直接使用硬件的方法来求q,这是本领域的常规技术,在此不予详细描述。
本发明实施例提供的基于FIOS的Montgomery模乘算法,在硬件实现上,内外循环可以设计成为并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。
参见图1,是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法的流程示意图;该方法包括以下步骤:
S101、获取由待处理的数据构成的模幂运算;
S102、将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
S103、根据所述模幂运算的结果获得处理后的数据;
其中,所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
上述步骤S102中的模乘运算的实现方法如下:
输入被乘数A、乘数B、模数P和模数P的逆q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-n modP;
以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则
Figure BDA0000059627360000062
Figure BDA0000059627360000063
Figure BDA0000059627360000065
Figure BDA0000059627360000066
其中,k是处理器的运算字长;
设置外循环变量i、内循环变量j、中间变量z、ti和s,所述蒙哥马利模乘运算的步骤如下:
S01、令C为0;
S02、令外循环变量i为0,开始外循环;
S03、令z为0;
S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti
S05、令内循环变量j为0,开始内循环;
S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1
S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1
S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
S12、返回C。
本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法,使用到FIOS技术,将蒙哥马利模乘算法分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;并且,在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成为并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果,从而提高数据加解密的效率和速度。
相应地,本发明实施例还提供一种蒙哥马利模乘运算装置,是基于FPGA(例如Xilinx芯片)设计的硬件电路系统,能够实施上述的基于FIOS的Montgomery模乘算法。
参见图2,是本发明实施例提供的蒙哥马利模乘运算装置的结构示意图。
所述装置的运算字长为k,包括:
输入控制器,用于输入被乘数A、乘数B、模数P和模数P的逆q;按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;
数据存储器,用于存储已转换成m维数组的A、B、P和q;
时序控制器,用于控制所述数据存储器的数据输入和输出;
数据通路,用于从所述数据存储器中输入A、B、P和q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
输出单元,用于对所述数据通路的输出波形进行整形,并作为最终模乘输入的接口;
其中,所述数据通路进行蒙哥马利模乘运算的步骤与上述的S01~S12相同,在此不再赘述。
下面仅以采用32位的处理器(即k=32),被乘数A、乘数B、模数P是192位的整数为例,结合图3~图8对本发明实施例提供的蒙哥马利模乘运算装置的结构及工作原理进行详细描述。
参见图3,是本发明实施例提供的输入控制模块图。数据存储器包括:
A寄存器,用于存储被乘数A;
B寄存器,用于存储乘数B;
P寄存器,用于存储模数P;
Q寄存器,用于存储模数P的逆,即数据q;
其中,B寄存器和P寄存器采用串入并出的模式,A寄存器和Q寄存器采用串进串出的模式,由时序控制器控制四个寄存器的数据输入和输出。在时序控制器的控制下,输入控制器输入被乘数A、乘数B、模数P和模数P的逆q,并按照从数据的低位开始、每32位为一段的拆分方式,将A、B、P和q转换为4个32位的6维数组,采用串行输入的方式分别存入A寄存器、B寄存器、P寄存器和q寄存器中。并且,B寄存器和P寄存器以并行输出方式输出数据,A寄存器和Q寄存器以串行输出方式输出数据,例如A寄存器并行输出被乘数A的0-31位数据。
参见图4,是本发明实施例提供的数据通路的结构示意图;所述数据通路包括1个PU_A运算单元、m-1个PU_B运算单元和1个约减运算单元;
PU_A运算单元用于实现蒙哥马利模乘运算外循环部分中的ti=(c0+aib0)qmod2k的运算;并且,当内循环变量j等于0时,实现蒙哥马利模乘运算内循环部分中的s=(c0+aib0+tip0+z)的运算;
PU_B运算单元用于实现蒙哥马利模乘运算内循环部分中的当j=1到j=m-1时,s=(cj+aibj+tipj+z)的运算;
约减运算单元用于蒙哥马利模乘运算的内外循环全部结束后,对循环运算结果进行判断,若所述运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。
m-1个PU_B运算单元依次连接成运算链,且第1个PU_B运算单元与所述PU_A运算单元相连接。
具体实施时,当被乘数A、乘数B、模数P是192位的整数时,如果采用32位的处理器(即k=32),则数据通路中需要1个PU_A运算单元和5个PU_B运算单元;如果采用16位的处理器(即k=16),则数据通路中需要1个PU_A运算单元和11个PU_B运算单元。本发明实施例仅以k=32为例进行说明。
需要说明的是,外循环中的约减部分,以及循环运算结束后所述约减运算单元所执行的约减,都是属于Montgomery域约减;但两者是两个不同的运算过程,其中,“外循环的约减”是在循环运算数据通路中进行,而“约减运算单元的约减”是在完成了循环运算数据通路的运算后做的最后处理,是在所有循环外进行的,其实施的目的是一样,不过实施的软硬件结构不相同。
参见图5,是本发明实施例提供的PU_A运算单元的结构示意图;所述PU_A运算单元包括:
AI_IN输入端,用于从所述A寄存器中读入被乘数A;
B_IN输入端,用于从所述B寄存器中读入乘数B;
Q_IN输入端,用于从所述Q寄存器中读入数据q;
P_IN输入端,用于从所述P寄存器中读入模数P;
CJ_IN输入端,用于输入从PU_B运算单元反馈的中间数据;
“0”输入端,用于输入0;
当进行外循环第一次运算时,即当外循环变量i=0时,PU_A运算单元从所述“0”输入端输入0,计算获得c0=0;
当外循环变量i>0时,此时已经在内循环中计算出c0的新值,则PU_A运算单元从所述CJ_IN输入端输入从PU_B运算单元反馈的中间数据,作为后续计算的输入。
所述PU_A运算单元还包括TI_OUT输出端、Z_OUT输出端和AI_OUT输出端,分别输出中间变量ti、z和ai,作为下一级PU_B运算单元的输入。
数据通路里面的PU_A运算单元实现Montgomery模乘算法中外循环部分中的di=(c0+aib0)mod2k和ti=(di×q)mod2k(这里是将ti=(c0+aib0)qmod2k分解成为两步以方便说明问题),同时,当内循环j=0时,即s=(c0+aib0+tip0+z),通过分析外循环中的di和ti的表达式可知,可直接调用di和ti作为s表达式子右边的部分,PU_A模块可以同时完成模乘算法中s=(c0+aib0+tip0+z)的内容,因此本发明实施例将式子s=(c0+aib0+tip0+z)放在PU_A模块中实现,能够达到节省更多的硬件资源的目的。进一步的,为了节省整个设计的周期和更大地利用到Xilinx芯片经过优化的资源,加法器和乘法器可使用Virtex II自带的IP核,芯片里的乘法器IP核将会直接调用Virtex II的18×18bit的乘法器模块组来处理。如图5所示,执行一次PU_A运算单元的计算,需要花费5个系统的时钟周期,本实施例设计每个乘法器和加法器的执行周期都是1。
参见图6,是本发明实施例提供的PU_B运算单元的结构示意图;所述PU_B运算单元包括:
TI_IN输入端,用于输入所述PU_A运算单元输出的中间变量ti
Z_IN输入端,用于输入所述PU_A运算单元输出的中间变量z;
AI_IN输入端,用于输入上一级运算单元输出的中间变量ai
CJ_IN输入端,用于输入上一级PU_B运算单元输出的中间变量cj;当j=1时,C=0;当j>1时,C等于所述CJ_IN输入端输入的数值;
所述PU_B运算单元还包括TI_OUT输出端、Z_OUT输出端、AI_OUT输出端和CJ_OUT输出端,分别输出中间变量ti、z、ai和cj,作为下一级PU_B运算单元的输入。
具体的,PU_B运算单元实现Montgomery模乘算法中内循环里面当j=1到j=m-1的部分;即s=(cj+aibj+tipj+z),1≤j≤m-1。如图6所示,其中接口T_IN和Z_IN是PU_A输出的中间变量。CJ_IN是由上一级的PU_B运算单元输出的中间变量,当j=1时,C=0;当j>1时,C=CJ_IN。C的值由控制信号CTRL_C来确定。PU_B运算单元的输出TI_OUT、Z_OUT、CJ_OUT,作为下一级PU_B运算单元的输入。当时序控制器向数据通路发出数据输入完毕后的第10个周期,第一个PU_B运算单元开始输出c1,然后每隔5个周期,后面的PU_B运算单元将分别输出c2到c4,直到最后一个PU_B输出c5和c6,数据通路的工作完成,其中c6是从最后一个PU_B运算单元的端口Z_OUT输出的。
参见图7,是本发明实施例提供的约减运算单元的结构示意图;所述约减运算单元包括比较模块和减法模块;所述比较模块用于将所述PU_A运算单元、PU_B运算单元的运算结果C和模数P作比较,并输出比较结果,作为减法模块的控制信号;当所述运算结果C大于模数P时,控制所述减法模块进行C减P的操作。
Montgomery模乘算法的最后一步是在所有的循环完成后,对运算结果进行判断,如果运算结果比模数P大,则把结果归约到小于P的范围内,即下面的算法步骤:
If(C>P)then C=C-P else C=C
根据Montgomery模乘算法的运算步骤,约减过程首先使用比较器,把循环数据通路输出的结果和模数P做比较,输出判断结果c_Result。然后,根据c_Result的值作出是否需要做减法运算的决定。如图7所示,comp1~comp6是6个32位的比较器,数据a是数据通路的输出c。其中,数据a是来自于数据通路的输出C,两者都是192位的数据,a={a6,a5,a4,a3,a2,a1}。数据b是模数p,每一个comp模块均受到时钟信号CLK和时序控制器信号Out_En的控制。经过比较可以得到每一段的比较结果re1~re6,并且送进compare模块进行整理比较后,得到最终的判断结果c_Result。c_Result经过选通控制信号Sub_En,得到一组控制信号S_En。该S_En信号作为是否需要做约减的判断依据,并且作为减法器组的控制信号输入。在进行大小比较的同时,减法器组进行了C=C-P的操作,最终模乘运算结果将会根据判断信号S_En的值来确定,如果S_En=1,表示C>P,即选择减法器组输出的数据作为模乘运算结果;如果S_En=0,则表示C<P,即结果在Montgomery域里面,可以不做约减,直接输出C=C。
下面结合图8对本发明实施例提供的蒙哥马利模乘运算装置的数据流向进行详细描述。
数据通路模块主要完成Montgomery模乘运算部分内容,通过从寄存器输入A、B、P、Q等数据,输出模乘结果C=AB2-nmodP。数据通路采用了流水线设计结构,通过模块之间的数据传递和反馈,并行处理输入数据和中间数据,大大缩减一次模乘所花费的周期数。其中PU_A、PU_B是模乘的运算单元,数据通路通过将6个PU相互连接来实现模乘的运算。当寄存器开始加载数据到数据通路上时,数据先从PU_A运算单元开始处理,然后把中间结果传递到第一级的PU_B运算单元上。同时,由于是流水线的设计特点,第一级PU_B运算单元的计算结果也会反馈给PU_A运算单元,如是反复,待寄存器的数据全部装载到数据通路后的第10个周期,第一个PU_B运算单元输出c1,然后连续的每5个周期,从PU_B运算单元上输出一个结果,到最后输出c6完成了PU单元间的输出工作。PU输出的结果经过选择判断后输入到约减运算单元进行约减处理,然后输出最终结果。
数据通路采用流水线结构,流水线的使用可以让更多的运算单元在同一个周期内同时进行操作,减少运算单元空闲的情况。参见图8,是流水线结构数据流向图;其中,横向数字表示数据通路运算的周期数(是指PU周期,即PU_A、PU_B运算单元的周期,1个PU周期等于5个时钟周期),纵向数字表示模乘行进的步数,每一个圆圈表示一个运算单元,其中实线同心黑圈是PU_A运算单元,实线实心黑圈都是PU_B运算单元。
在数据输入过程中,根据Montgomery模乘算法,数据B和P在内循环中会根据下标j的变化发生改变,因此需要每一个PU周期刷新一次,每次输入32位,例如当j=0时,输入最低的32位。而A只有在外循环的时候发生改变(即PU_A运行时),Q是恒定不变的值,同时由于蒙哥马利模乘装置采用流水线的结构,从图8中可以看到,每隔两个PU周期(10个时钟周期),A的数据刷新一次,Q则直接作为不变的32位常量在PU_A阶段输入。在图8所示的第一组模乘数据中,从第一个PU周期开始,PU_A运算单元开始运行时,输入A、B、P的0-31位数据和Q;第二个PU周期开始,第一个PU_B运算单元开始输入B、P第32-63位数据;第三个PU周期开始,第二个PU_B运算单元开始输入B、P第64-95位数据,与此同时,PU_A运算单元再次开始运行,输入数据A的32-63位数据;第四个PU周期开始,第三个PU_B运算单元和第二个PU_B运算单元同时运行,在第三个PU_B运算单元输入中B、P第96-127位数据,同时在第二个PU_B运算单元中输入第64-95位数据。依次类推,形成一种流水线的输入方式,在第六个PU周期开始时,一个内循环结束;在十一个PU周期开始时,数据A输入完毕;第十二个周期开始时,第一个PU_B运算单元开始输出模乘结果的低32位,以后每隔一个PU周期输出一组结果,直到第十六个PU周期,最后一个PU_B运算单元输出模乘结果的高64位(此时最后一个PU_B运算单元中的Z_OUT也作为结果的输出,但只取低32位结果作为输出)。在这个过程中,数据A在外循环刷新,并且在第十一个PU周期的时候输入完毕;数据B和P在内循环刷新,每一次内循环开始都需要从j=0开始重新输入,直到第十六个周期,也就是整个模乘数据通路要结束的时候,所有的数据B输入完毕;数据Q是一个32位的常量,它只在PU_A运算单元中使用到,因此输入的方式跟数据A相同。
如图8所示,第一个周期时,PU_A运算单元开始运行,第二个周期时,第一个PU_B运算单元开始运行,第三个周期时,PU_A运算单元又开始工作,同时,第二个PU_B运算单元也在运算处理中,即同一时间有两个运算单元在跑。在一次的192位模乘运算当中,最多同时存在3个PU同时运作的情况,达到一种并行的流水线效果。
具体实施时,对于多次并行模乘的处理,其流水线的优势更为明显。图8中所示的虚线圆表示第二组数据模乘运行的情况,在第一组模乘运行的过程中,仍然会有部分的运行单元处在空闲状态,经过观察可以发现,如果同时进行两次或者两次以上的并行的模乘时,那么可以利用到这部分空闲的运行单元来提高整体模乘的运行效率。从图8中可以看出这种优势,对于一次的模乘,一共需要16次的PU周期(1个PU周期等于5个时钟周期),而如果将两次模乘并行来处理,第二组数据的模乘结果在第一组数据输出后6个PU周期即可输出,比单次模乘的效率提高了31%。
本发明实施例提供的蒙哥马利模乘运算装置,将Montgomery模乘算法的内外循环设计成为并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。该蒙哥马利模乘运算装置可以直接作为ECC加密算法中点加和倍点的模乘模块,能够提高数据加解密的效率和速度。此外,该蒙哥马利模乘运算装置还可以应用到涉及信息安全的各种签名验证方法中。
进一步的,本发明实施例还提供一种基于蒙哥马利模乘运算的数据加解密处理装置,能够实现上述实施例中的基于蒙哥马利模乘运算的数据加解密处理方法的所有步骤。
参见图9,是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理装置的结构示意图。所述装置包括:
数据输入模块91,用于获取由待处理的数据构成的模幂运算;
模乘处理模块92,将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
数据输出模块93,根据所述模幂运算的结果获得处理后的数据;
所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
模乘处理模块92包括上述实施例所述的蒙哥马利模乘运算装置,用于实现蒙哥马利模乘运算。具体实施时,该蒙哥马利模乘运算装置可以直接作为ECC加密算法中点加和倍点的模乘模块,能够提高数据加解密的效率和速度。
本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法及装置,使用FIOS技术,将蒙哥马利模乘算法分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。该蒙哥马利模乘算法应用于ECC加密算法中时,能够提高数据加解密的效率和速度。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (8)

1.一种基于蒙哥马利模乘运算的数据加解密处理方法,其特征在于,包括:
获取由待处理的数据构成的模幂运算;
将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
根据所述模幂运算的结果获得处理后的数据;
所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
所述模乘运算的实现方法如下:
输入被乘数A、乘数B、模数P和模数P的逆q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则
Figure FDA0000059627350000011
Figure FDA0000059627350000012
Figure FDA0000059627350000013
Figure FDA0000059627350000014
Figure FDA0000059627350000015
其中,k是处理器的运算字长;
设置外循环变量i、内循环变量j、中间变量z、ti和s,所述蒙哥马利模乘运算的步骤如下:
S01、令C为0;
S02、令外循环变量i为0,开始外循环;
S03、令z为0;
S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti
S05、令内循环变量j为0,开始内循环;
S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1
S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1
S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
S12、返回C。
2.一种蒙哥马利模乘运算装置,其特征在于,所述装置的运算字长为k,包括:
输入控制器,用于输入被乘数A、乘数B、模数P和模数P的逆q;按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;
数据存储器,用于存储已转换成m维数组的A、B、P和q;
时序控制器,用于控制所述数据存储器的数据输入和输出;
数据通路,用于从所述数据存储器中输入A、B、P和q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
输出单元,用于对所述数据通路的输出波形进行整形,并作为最终模乘输入的接口;
以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则
Figure FDA0000059627350000023
设置外循环变量i、内循环变量j、中间变量z、ti和s,则所述数据通路实现蒙哥马利模乘运算的步骤如下:
S01、令C为0;
S02、令外循环变量i为0,开始外循环;
S03、令z为0;
S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti
S05、令内循环变量j为0,开始内循环;
S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1
S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1
S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
S12、返回C。
3.如权利要求2所述的蒙哥马利模乘运算装置,其特征在于,所述数据存储器包括:
A寄存器,用于存储被乘数A;
B寄存器,用于存储乘数B;
P寄存器,用于存储模数P;
Q寄存器,用于存储模数P的逆,即数据q;
其中,B寄存器和P寄存器采用串入并出的模式,A寄存器和Q寄存器采用串进串出的模式,由所述时序控制器控制四个寄存器的数据输入和输出。
4.如权利要求3所述的蒙哥马利模乘运算装置,其特征在于,所述数据通路包括1个PU_A运算单元、m-1个PU_B运算单元和1个约减运算单元;
所述PU_A运算单元用于实现蒙哥马利模乘运算外循环部分中的ti=(c0+aib0)qmod2k的运算;并且,当内循环变量j等于0时,实现蒙哥马利模乘运算内循环部分中的s=(c0+aib0+tip0+z)的运算;
所述PU_B运算单元用于实现蒙哥马利模乘运算内循环部分中的当j=1到j=m-1时,s=(cj+aibj+tipj+z)的运算;
所述约减运算单元用于蒙哥马利模乘运算的内外循环全部结束后,对循环运算结果进行判断,若所述运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。
5.如权利要求4所述的蒙哥马利模乘运算装置,其特征在于,所述PU_A运算单元包括:
AI_IN输入端,用于从所述A寄存器中读入被乘数A;
B_IN输入端,用于从所述B寄存器中读入乘数B;
Q_IN输入端,用于从所述Q寄存器中读入数据q;
P_IN输入端,用于从所述P寄存器中读入模数P;
CJ_IN输入端,用于输入从PU_B运算单元反馈的中间数据;
“0”输入端,用于输入0;
当外循环变量i=0时,所述PU_A运算单元从所述“0”输入端输入0,计算获得c0=0;
当外循环变量i>0时,所述PU_A运算单元从所述CJ_IN输入端输入从PU_B运算单元反馈的中间数据,作为后续计算的输入;
所述PU_A运算单元还包括TI_OUT输出端、Z_OUT输出端和AI_OUT输出端,分别输出中间变量ti、z和ai,作为下一级PU_B运算单元的输入。
6.如权利要求5所述的蒙哥马利模乘运算装置,其特征在于,所述m-1个PU_B运算单元依次连接成运算链,且第1个PU_B运算单元与所述PU_A运算单元相连接;
所述PU_B运算单元包括:
TI_IN输入端,用于输入所述PU_A运算单元输出的中间变量ti
Z_IN输入端,用于输入所述PU_A运算单元输出的中间变量z;
AI_IN输入端,用于输入上一级运算单元输出的中间变量ai
CJ_IN输入端,用于输入上一级PU_B运算单元输出的中间变量cj;当j=1时,C=0;当j>1时,C等于所述CJ_IN输入端输入的数值;
所述PU_B运算单元还包括TI_OUT输出端、Z_OUT输出端、AI_OUT输出端和CJ_OUT输出端,分别输出中间变量ti、z、ai和cj,作为下一级PU_B运算单元的输入。
7.如权利要求6所述的蒙哥马利模乘运算装置,其特征在于,所述约减运算单元包括比较模块和减法模块;所述比较模块用于将所述PU_A运算单元、PU_B运算单元的运算结果C和模数P作比较,并输出比较结果,作为减法模块的控制信号;当所述运算结果C大于模数P时,控制所述减法模块进行C减P的操作。
8.一种基于蒙哥马利模乘运算的数据加解密处理装置,其特征在于,包括:
数据输入模块,用于获取由待处理的数据构成的模幂运算;
模乘处理模块,将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
数据输出模块,根据所述模幂运算的结果获得处理后的数据;
所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
所述模乘处理模块包括如权利要求2~7任一项所述的蒙哥马利模乘运算装置,用于实现蒙哥马利模乘运算。
CN2011101164804A 2011-05-06 2011-05-06 基于蒙哥马利模乘运算的数据加解密处理方法及装置 Expired - Fee Related CN102207847B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101164804A CN102207847B (zh) 2011-05-06 2011-05-06 基于蒙哥马利模乘运算的数据加解密处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101164804A CN102207847B (zh) 2011-05-06 2011-05-06 基于蒙哥马利模乘运算的数据加解密处理方法及装置

Publications (2)

Publication Number Publication Date
CN102207847A true CN102207847A (zh) 2011-10-05
CN102207847B CN102207847B (zh) 2013-12-04

Family

ID=44696700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101164804A Expired - Fee Related CN102207847B (zh) 2011-05-06 2011-05-06 基于蒙哥马利模乘运算的数据加解密处理方法及装置

Country Status (1)

Country Link
CN (1) CN102207847B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226461A (zh) * 2013-03-26 2013-07-31 中山大学 一种蒙哥马利模乘方法及其电路
CN104750455A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置
CN104793919A (zh) * 2015-04-15 2015-07-22 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN104951279A (zh) * 2015-05-27 2015-09-30 四川卫士通信息安全平台技术有限公司 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
CN107665109A (zh) * 2016-07-28 2018-02-06 中国科学院声学研究所 一种适用于嵌入式系统的Montgomery模乘计算方法
TWI630545B (zh) * 2016-03-30 2018-07-21 華邦電子股份有限公司 非模數乘法器、用於非模數乘法的方法及計算裝置
CN109284085A (zh) * 2018-09-25 2019-01-29 国网湖南省电力有限公司 一种基于fpga的高速模乘和模幂运算方法及模型
CN109669670A (zh) * 2018-12-26 2019-04-23 贵州华芯通半导体技术有限公司 用于蒙哥马利模乘中的不均等分块的数据处理方法及装置
CN110351087A (zh) * 2019-09-06 2019-10-18 南京秉速科技有限公司 流水线型的蒙哥马利模乘运算方法及计算装置
CN110865794A (zh) * 2019-10-22 2020-03-06 天津津航计算技术研究所 用于数据安全通信的并行模乘方法
CN110908635A (zh) * 2019-11-04 2020-03-24 南京大学 基于同源曲线的后量子密码学的高速模乘器及其模乘方法
CN112491543A (zh) * 2020-11-24 2021-03-12 杭州电子科技大学 基于改进的蒙哥马利模幂电路的ic卡解密方法
CN112865954A (zh) * 2021-04-26 2021-05-28 深圳致星科技有限公司 用于Paillier解密的加速器、芯片及系统
CN113467754A (zh) * 2021-07-20 2021-10-01 南京大学 一种基于分解约简的格加密模乘运算方法及架构
CN113946846A (zh) * 2021-10-14 2022-01-18 深圳致星科技有限公司 用于联邦学习和隐私计算的密文计算装置及方法
CN114706557A (zh) * 2022-04-01 2022-07-05 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN114793155A (zh) * 2022-04-12 2022-07-26 支付宝(杭州)信息技术有限公司 多方安全计算的方法及装置
WO2023141936A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Techniques and devices for efficient montgomery multiplication with reduced dependencies
CN117240601A (zh) * 2023-11-09 2023-12-15 深圳大普微电子股份有限公司 加密处理方法、加密处理电路、处理终端及存储介质
US11954487B2 (en) 2022-01-28 2024-04-09 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11985221B2 (en) 2022-01-28 2024-05-14 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI817742B (zh) * 2022-09-27 2023-10-01 熵碼科技股份有限公司 數值轉換方法及數值轉換系統

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448639A (en) * 1992-04-16 1995-09-05 Fortress U&T Ltd. Digital signature device
WO1998019230A1 (en) * 1996-10-31 1998-05-07 Motorola Limited Co-processor for performing modular multiplication
CN1811698A (zh) * 2006-03-01 2006-08-02 成都卫士通信息产业股份有限公司 大数模幂系统的硬件高基实现方法
CN101216754A (zh) * 2007-12-27 2008-07-09 广州杰赛科技股份有限公司 模乘运算的处理方法、数据加解密处理的方法、装置
CN101986261A (zh) * 2010-11-27 2011-03-16 无锡高枕科技有限公司 基为16的高速Montgomery模乘法器VLSI

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448639A (en) * 1992-04-16 1995-09-05 Fortress U&T Ltd. Digital signature device
WO1998019230A1 (en) * 1996-10-31 1998-05-07 Motorola Limited Co-processor for performing modular multiplication
CN1811698A (zh) * 2006-03-01 2006-08-02 成都卫士通信息产业股份有限公司 大数模幂系统的硬件高基实现方法
CN101216754A (zh) * 2007-12-27 2008-07-09 广州杰赛科技股份有限公司 模乘运算的处理方法、数据加解密处理的方法、装置
CN101986261A (zh) * 2010-11-27 2011-03-16 无锡高枕科技有限公司 基为16的高速Montgomery模乘法器VLSI

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GUERON SHAY ET AL.: "Applications of The Montgomery Exponent", 《PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY:CODING AND COMPUTING》, 31 December 2005 (2005-12-31), pages 620 - 625 *

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226461B (zh) * 2013-03-26 2016-07-06 中山大学 一种用于电路的蒙哥马利模乘方法及其电路
CN103226461A (zh) * 2013-03-26 2013-07-31 中山大学 一种蒙哥马利模乘方法及其电路
CN104750455A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置
CN104750455B (zh) * 2013-12-31 2018-03-06 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置
CN104793919A (zh) * 2015-04-15 2015-07-22 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN104793919B (zh) * 2015-04-15 2017-11-07 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
CN104951279A (zh) * 2015-05-27 2015-09-30 四川卫士通信息安全平台技术有限公司 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
CN104951279B (zh) * 2015-05-27 2018-03-20 四川卫士通信息安全平台技术有限公司 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
TWI630545B (zh) * 2016-03-30 2018-07-21 華邦電子股份有限公司 非模數乘法器、用於非模數乘法的方法及計算裝置
CN107665109B (zh) * 2016-07-28 2020-04-14 中国科学院声学研究所 一种适用于嵌入式系统的Montgomery模乘计算方法
CN107665109A (zh) * 2016-07-28 2018-02-06 中国科学院声学研究所 一种适用于嵌入式系统的Montgomery模乘计算方法
CN109284085A (zh) * 2018-09-25 2019-01-29 国网湖南省电力有限公司 一种基于fpga的高速模乘和模幂运算方法及模型
CN109284085B (zh) * 2018-09-25 2023-03-31 国网湖南省电力有限公司 一种基于fpga的高速模乘和模幂运算方法及装置
CN109669670A (zh) * 2018-12-26 2019-04-23 贵州华芯通半导体技术有限公司 用于蒙哥马利模乘中的不均等分块的数据处理方法及装置
CN110351087A (zh) * 2019-09-06 2019-10-18 南京秉速科技有限公司 流水线型的蒙哥马利模乘运算方法及计算装置
CN110351087B (zh) * 2019-09-06 2019-12-20 南京秉速科技有限公司 流水线型的蒙哥马利模乘运算方法
CN110865794A (zh) * 2019-10-22 2020-03-06 天津津航计算技术研究所 用于数据安全通信的并行模乘方法
CN110908635A (zh) * 2019-11-04 2020-03-24 南京大学 基于同源曲线的后量子密码学的高速模乘器及其模乘方法
CN112491543B (zh) * 2020-11-24 2022-06-07 杭州电子科技大学 基于改进的蒙哥马利模幂电路的ic卡解密方法
CN112491543A (zh) * 2020-11-24 2021-03-12 杭州电子科技大学 基于改进的蒙哥马利模幂电路的ic卡解密方法
CN112865954A (zh) * 2021-04-26 2021-05-28 深圳致星科技有限公司 用于Paillier解密的加速器、芯片及系统
CN112865954B (zh) * 2021-04-26 2021-07-06 深圳致星科技有限公司 用于Paillier解密的加速器、芯片及系统
CN113467754A (zh) * 2021-07-20 2021-10-01 南京大学 一种基于分解约简的格加密模乘运算方法及架构
CN113467754B (zh) * 2021-07-20 2023-10-13 南京大学 一种基于分解约简的格加密模乘运算装置
CN113946846A (zh) * 2021-10-14 2022-01-18 深圳致星科技有限公司 用于联邦学习和隐私计算的密文计算装置及方法
CN113946846B (zh) * 2021-10-14 2022-07-12 深圳致星科技有限公司 用于联邦学习和隐私计算的密文计算装置及方法
WO2023141936A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Techniques and devices for efficient montgomery multiplication with reduced dependencies
US11954487B2 (en) 2022-01-28 2024-04-09 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11985221B2 (en) 2022-01-28 2024-05-14 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations
CN114706557B (zh) * 2022-04-01 2023-03-10 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN114706557A (zh) * 2022-04-01 2022-07-05 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN114793155A (zh) * 2022-04-12 2022-07-26 支付宝(杭州)信息技术有限公司 多方安全计算的方法及装置
CN117240601A (zh) * 2023-11-09 2023-12-15 深圳大普微电子股份有限公司 加密处理方法、加密处理电路、处理终端及存储介质
CN117240601B (zh) * 2023-11-09 2024-03-26 深圳大普微电子股份有限公司 加密处理方法、加密处理电路、处理终端及存储介质

Also Published As

Publication number Publication date
CN102207847B (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN102207847B (zh) 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN102509036B (zh) 一种可重构密码处理器及抗功耗攻击方法
CN101216754B (zh) 基于模乘运算的数据加解密处理的方法及装置
CN112865954B (zh) 用于Paillier解密的加速器、芯片及系统
Wang et al. FPGA implementation of a large-number multiplier for fully homomorphic encryption
CN102306091B (zh) 椭圆曲线点乘硬件快速实现方法
CN104579656A (zh) 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器
CN1841443B (zh) 计算方法和计算设备
Zheng et al. The software/hardware co-design and implementation of SM2/3/4 encryption/decryption and digital signature system
Lee et al. A 521-bit dual-field elliptic curve cryptographic processor with power analysis resistance
CN104679474A (zh) 有限域gf(2^227)上的乘法器及模乘算法
Liu et al. Design and implementation of an ECC-based digital baseband controller for RFID tag chip
CN103942031A (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
CN101262345A (zh) 椭圆曲线密码系统的倍点系统
JP2008304920A (ja) マスキングされたモンゴメリーのモジュラー乗算方法及び関連装置
CN108108614A (zh) 安全处理器以及安全处理器的操作方法
CN101304312B (zh) 一种适用于精简指令集处理器的加密单元
CN106330424B (zh) 基于sm3算法的密码模块的防攻击方法及装置
Oksuzoglu et al. Parametric, secure and compact implementation of RSA on FPGA
CN108259179A (zh) 一种基于sm9标识密码算法的加解密协处理器及其运算方法
Li et al. Research in fast modular exponentiation algorithm based on FPGA
Kashif et al. A hardware efficient elliptic curve accelerator for FPGA based cryptographic applications
CN105119929A (zh) 单一恶意云服务器下的安全模指数外包方法及系统
CN1230736C (zh) 智能卡模乘器vlsi结构的计算机实现方法
Roy et al. A parallel architecture for Koblitz curve scalar multiplications on FPGA platforms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131204

Termination date: 20200506