CN104765586B - 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 - Google Patents
一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 Download PDFInfo
- Publication number
- CN104765586B CN104765586B CN201510178336.1A CN201510178336A CN104765586B CN 104765586 B CN104765586 B CN 104765586B CN 201510178336 A CN201510178336 A CN 201510178336A CN 104765586 B CN104765586 B CN 104765586B
- Authority
- CN
- China
- Prior art keywords
- variable
- equal
- zero
- result
- 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.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了嵌入式安全芯片和其的蒙哥马利模乘运算方法,所述运算方法包括以下步骤获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数1;根据两个第一预设参数和蒙哥马利模乘函数,得到第一运算结果A;根据第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B;根据第一运算结果A、第二运算结果B和所述蒙哥马利模乘函数,得到蒙哥马利模乘转换系数D;根据第一输入参数NA、第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。该蒙哥马利模乘运算方法可以避开大数模幂方式的计算转换系数,而且不需要事先计算好系数,可以节省存储空间。
Description
技术领域
本发明涉及密码学中非对称密钥算法领域,尤其涉及一种嵌入式安全芯片及其的蒙哥马利模乘运算方法。
背景技术
信息安全的安全保障基于安全算法,安全算法有一类是非对称密钥算法。非对称密钥算法的基本运算是大数的模乘运算,模乘运算算法中效率高、便于实现的算法是蒙哥马利模乘算法。蒙哥马利模乘使用过程中需要把普通数转换成蒙哥马利数,然后在根据系数进行蒙哥马利模乘运算,那么转换过程中需要用到转换系数,该转换系数一般通过大数模幂算法计算得到,使得现有的嵌入式安全芯片中需要进行复杂的大数运算,那么嵌入式安全芯片中的算法需要花费较多的运行时间和资源。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,提供一种嵌入式安全芯片及其的蒙哥马利模乘运算方法。
本发明提供一种嵌入式安全芯片的蒙哥马利模乘运算方法,所述运算方法包括以下步骤:
获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数1;
根据两个第一预设参数和蒙哥马利模乘函数,得到第一运算结果A;
根据第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B,其中,第二预设参数为W-4,W =φ(N),φ是欧拉函数,N是蒙哥马利模乘中模数,次方计算函数为计算R-1 数的多少次方的函数,R与 R-1关于模数N互逆;
根据第一运算结果A、第二运算结果B和所述蒙哥马利模乘函数,得到蒙哥马利模乘转换系数;
根据第一输入参数NA、第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。
从上述方法的方案可以看出,次方计算函数只与蒙哥马利模乘函数有关系。不同的模数N,通过调用不同次数的蒙哥马利模乘函数,就能得到蒙哥马利模乘的转换系数,从而避开大数模幂方式的计算转换系数,而且不需要事先计算好系数,可以节省存储空间,另外在没有复杂大数库基础上,也能完成非对称密钥运算,以及可用于检查一个大数是否为素数的必要条件和可用于检查蒙哥马利模乘算法正确性。如果计算的数越来越长,素数域多个情况下,该算法的优势会更明显。
本发明还提供一种嵌入式安全芯片,所述嵌入式安全芯片包括:
获取模块,用于获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数1;
蒙哥马利模乘模块,用于根据两个第一预设参数,得到第一运算结果A;
次方计算模块,用于根据所述蒙哥马利模乘模块输出的第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B,其中,第二预设参数为W-4,W =φ(N),φ是欧拉函数,N是蒙哥马利模乘中模数,次方计算函数为计算R-1 数的多少次方的函数,R与 R-1关于模数N互逆;
所述蒙哥马利模乘模块,还用于根据第一运算结果A和第二运算结果B,得到蒙哥马利模乘转换系数,以及根据第一输入参数NA、第二输入参数NB和蒙哥马利模乘转换系数,得到最终模乘结果。
从上述芯片的方案可以看出,次方计算函数只与蒙哥马利模乘函数有关系。不同的模数N,通过调用不同次数的蒙哥马利模乘函数,就能得到蒙哥马利模乘的转换系数,从而避开大数模幂方式的计算转换系数,而且不需要事先计算好系数,可以节省存储空间,另外在没有复杂大数库基础上,也能完成非对称密钥运算,以及可用于检查一个大数是否为素数的必要条件和可用于检查蒙哥马利模乘算法正确性。如果计算的数越来越长,素数域多个情况下,该算法的优势会更明显。
附图说明
图1为本发明蒙哥马利模乘运算方法一种实施例的流程图;
图2为本发明蒙哥马利模乘的系数中次方计算方法一种实施例的流程图;
图3为本发明蒙哥马利模乘的系数中编码计算方法一种实施例的流程图;
图4为本发明蒙哥马利模乘的系数中编码计算方法另一种实施例的流程图;
图5为本发明蒙哥马利模乘的普通模乘运算第一种实施例的流程图;
图6为本发明蒙哥马利模乘的普通模乘运算第二种实施例的流程图;
图7为本发明蒙哥马利模乘的普通模乘运算第三种实施例的流程图;
图8为本发明嵌入式安全芯片一种实施例的结构示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种实施例嵌入式安全芯片的蒙哥马利模乘运算方法,如图1所示,所述运算方法包括以下步骤:
步骤S01,获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数1;
步骤S02,根据两个第一预设参数和蒙哥马利模乘函数,得到第一运算结果A,第一运算结果A = MontF(1,1);
步骤S03,根据第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B,其中,第二预设参数为W-4,W =φ(N),φ是欧拉函数,N是蒙哥马利模乘中模数,模数位长通常取值为192、239、521、1024、2048,第二预设参数只与模数N有关,次方计算函数CoeffEx为计算R-1数的多少次方的函数,第二运算结果B= CoeffEx(A,W-4),R与R-1关于模数N互逆;
步骤S04,根据第一运算结果A、第二运算结果B和所述蒙哥马利模乘函数,得到蒙哥马利模乘转换系数D,D=MontF(A,B),即D= R2;
步骤S05,根据第一输入参数NA、第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果RE,RE是第一输入参数NA和第二输入参数NB关于模数N的模乘结果。
从上述方法的方案可以看出,次方计算函数只与蒙哥马利模乘函数有关系。不同的模数N,通过调用不同次数的蒙哥马利模乘函数,就能得到蒙哥马利模乘的转换系数,从而避开大数模幂方式的计算转换系数,而且不需要事先计算好系数,可以节省存储空间,另外在没有复杂大数库基础上,也能完成非对称密钥运算,以及可用于检查一个大数是否为素数的必要条件和可用于检查蒙哥马利模乘算法正确性。如果计算的数越来越长,素数域多个情况下,该算法的优势会更明显。
在具体实施中,如图2所示,所述步骤S03具体包括以下步骤:
步骤S031,根据所述第二预设参数E转换成计算过程的编码,得到运算标志数T和运算标志数T的位长度len,进入步骤S032;
步骤S032,将第一运算结果A赋值给中间结果S,即S = A,A值等于R-1 数,进入步骤S033;
步骤S033,对循环量i初始化,并将len-1值赋值给循环量i,即i=len-1进入步骤S034;
步骤S034,判断循环量i是否大于等于零值,如果是,步骤S035,如果否,步骤S036;
步骤S035,当循环量i大于等于零值时,T[i]的值是否满足逻辑真,如果是,进入步骤S038,如果否,进入步骤S037;
步骤S036,当循环量i小于零值时,输出第二运算结果B,第二运算结果B等于所述中间结果S,即S 等于 AE;
步骤S037,当T[i]的值不满足逻辑真时,根据所述中间结果S、第一预设参数和蒙哥马利模乘函数,对所述中间结果S进行更新,即S= MontF(S,1);
步骤S038,当T[i]的值满足逻辑真时,根据两个所述中间结果S和蒙哥马利模乘函数,对所述中间结果S进行更新,即S= MontF(S,S);
步骤S039,当所述中间结果S进行更新后,循环量i值自减常数1,即i=i-1接着进入步骤S034。
在步骤S031中,也可以理解为调用一次CaclStepEncode函数,输入所述第二预设参数E,输出运算标志数T,存储运算后的结果,返回运算标志数T和运算标志数T的数据位长度len = CaclStepEncode(E,T),其中第二预设参数E是需要计算多少次,E的值小于N值,运算标志数T的位长度不会超过E的位长的两倍。
在步骤S035中,T是一个数组,T[i]为数组中的一个元素,T[i]的值只取0或非0。
在具体实施中,如图3所示,所述步骤S031具体包括以下步骤:
步骤S0311,初始化第一变量ZeroCounter,第二变量OneCounter,循环变量i和第三变量Out_i,即ZeroCounter = 0,OneCounter=0,i=0,Out_i=0;
步骤S0312,判断循环变量i是否小于等于E_Bitslen,其中E_Bitslen是第二预设参数的位长,如果是,进入步骤S0313,如果否,进入步骤S0323;
步骤S0313,当循环变量i小于等于E_Bitslen时,判断E[i]的值是否满足逻辑真,如果是,进入步骤S0314,如果否,进入步骤S0319;
步骤S0314,当E[i]的值满足逻辑真时,判断第一变量ZeroCounter是否等于零值,如果否,进入步骤S0315,如果是,进入步骤S0318;
步骤S0315,当第一变量ZeroCounter不等于零值时,判断第二变量OneCounter是否等于零值,如果是,步骤S0316,如果否,进入步骤S0317;
步骤S0316,当第二变量OneCounter等于零值时,运算标志数T [Out_i]赋值零,第三变量Out_i自增一,运算标志数T [Out_i:Out_i+ ZeroCounter-1]赋值1,接着第三变量Out_i等于Out_i+ ZeroCounter,第一变量ZeroCounter赋值为1,即T [Out_i]=0,Out_i=Out_i+1,T [Out_i:Out_i+ ZeroCounter-1]=1,Out_i=Out_i+ ZeroCounter,ZeroCounter=1,进入步骤S0317;
步骤S0317,循环变量i自增一,即i=i+1,接着进入步骤S0312;
步骤S0318,当第一变量ZeroCounter等于零值时,第二变量OneCounter自增一,即OneCounter=OneCounter+1,接着进入步骤S0317;
步骤S0319,当E[i]的值不满足逻辑真时,判断第二变量OneCounter是否等于零值,如果否,进入步骤S0320,如果是,进入步骤S0322;
步骤S0320,当第二变量OneCounter不等于零值,判断第一变量ZeroCounter是否等于零值,如果是,进入步骤S0321,如果否,进入步骤S0317;
步骤S0321,当第一变量ZeroCounter等于零值时,运算标志数T [Out_i:Out_i+ZeroCounter-1] 赋值为1,第三变量Out_i等于Out_i+ ZeroCounter,第二变量OneCounter赋值为零值,第一变量ZeroCounter赋值为1,即T [Out_i:Out_i+ ZeroCounter-1]=1,Out_i=Out_i+ ZeroCounter,OneCounter=0,ZeroCounter=1,接着进入步骤S0317;
步骤S0322,当第二变量OneCounter等于零值,第一变量ZeroCounter自增1,即ZeroCounter=ZeroCounter+1,接着进入步骤S0317;
步骤S0323,当循环变量i不小于等于E_Bitslen时,判断第三变量Out_i值是否大于零,如果是,进入步骤S0324,如果否,进入步骤S0325;
步骤S0324,当第三变量Out_i值大于零时,第三变量Out_i自减1,即Out_i=Out_i-1;
步骤S0325,输出位长度len= Out_i,和运算标志数T。
在具体实施中,如图4所示,所述步骤S031具体包括以下步骤:
步骤S0331,初始化运算标志数T和运算标志数T的位长度len,即T=0,len = 0;
步骤S0332,判断所述第二预设参数E是否小于4,如果是,进入步骤S0333,如果否,步骤S0337;
步骤S0333,当所述第二预设参数E小于4时;判断所述第二预设参数是否等于3,如果是,进入步骤S0334,如果否,进入步骤S0336;
步骤S0334,当第二预设参数E等于3,运算标志数T位或一即T = T | 1,位长度len自增一即len=len+1;
步骤S0335,输出位长度len= Out_i,和运算标志数T;
步骤S0336,当第二预设参数E不等于3时,位长度len自增一即len=len+1,进入步骤S0335;
步骤S0337,当所述第二预设参数E大于等于4时,判断第二预设参数的二进制数最低位的值是否等于1,如果是,步骤S0338,如果否,步骤S0339;
步骤S0338,当第二预设参数E的二进制数最低位的值等于1时,运算标志数T位或一即T = T | 1,第二预设参数向右移一位即E = E >> 1,和位长度len自增一即len=len+1,进入步骤S0340;
步骤S0339,当第二预设参数E的二进制数最低位的值不等于1时,第二预设参数自减1即E = E -1,和位长度len自增一即len=len+1;
步骤S0340,运算标志数T向左移一位,即T = T <<1,进入步骤S0332。
在具体实施中,当计算得到蒙哥马利模乘转换系数D之后,通过现有的普通模乘运算,需要执行四次蒙哥马利模乘实现来普通数模乘运算,而改进后方式只需要执行二次蒙哥马利模就实现普通数模乘运算,因此改进后方式的实现控制运算的状态简化了一倍。如图5所示,所述步骤S04具体包括以下步骤:
步骤S051,根据第一输入参数NA、蒙哥马利模乘转换系数D和所述蒙哥马利模乘函数,得到第一模乘结果NAR;
步骤S052,根据第二输入参数NB、第一模乘结果NAR和所述蒙哥马利模乘函数,得到最终模乘结果。
对于步骤S051,也就是说,调用一次蒙哥马利模乘函数,输入两个参数分别为NA、R2,R2为蒙哥马利模乘转换系数,NAR = MontF(NA, R2),NAR是一个变量。
对于步骤S052,也就是说,调用一次蒙哥马利模乘函数,输入两个参数分别为NAR、B,RE = MontF(NAR,B),RE是NA和NB关于模数N的模乘结果。
在具体实施中,如图6所示,所述步骤S04具体包括以下步骤:
步骤S061,根据第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到第二模乘结果NBR;
步骤S062,根据第二输入参数NA、第二模乘结果NBR和所述蒙哥马利模乘函数,得到最终模乘结果。
对于步骤S061,也就是说,调用一次蒙哥马利模乘函数,输入两个参数分别为NB、R2,NBR = MontF(NB, R2),BR是一个变量。
对于步骤S062,也就是说,调用一次蒙哥马利模乘函数,输入两个参数分别为NA、NBR,RE = MontF(NA, NBR),RE是NA和NB关于模数N的模乘结果。
在具体实施中,如图7所示,所述步骤S04具体包括以下步骤:
步骤S071,根据第一输入参数NA、第二输入参数NB和所述蒙哥马利模乘函数,得到第三模乘结果NANBr;
步骤S072,根据第三模乘结果NANBr、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。
对于步骤S071,调用一次蒙哥马利模乘函数,输入两个参数分别为A、B, NANBr =MontF(NA, NB),NANBr是一个变量。
对于步骤S072,调用一次蒙哥马利模乘函数,输入两个参数分别为NANBr、R2,RE= MontF(NANBr, R2),RE是NA和NB关于模数N的模乘结果。
在具体实施中,本发明还提供一种实施例的嵌入式安全芯片,如图8所示,所述嵌入式安全芯片包括获取模块1,蒙哥马利模乘模块2和次方计算模块3;
获取模块1,用于获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数1;
蒙哥马利模乘模块2,用于根据两个第一预设参数,得到第一运算结果A;
次方计算模块3,用于根据所述蒙哥马利模乘模块2输出的第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B,其中,第二预设参数为W-4,W=φ(N),φ是欧拉函数,N是蒙哥马利模乘中模数,模数位长通常取值为192、239、521、1024、2048,第二预设参数只与模数N有关,次方计算函数为计算R-1 数的多少次方的函数,R与 R-1关于模数N互逆;
所述蒙哥马利模乘模块2,还用于根据第一运算结果A和第二运算结果B,得到蒙哥马利模乘转换系数,以及根据第一输入参数NA、第二输入参数NB和蒙哥马利模乘转换系数,得到最终模乘结果。
从上述芯片的方案可以看出,次方计算函数只与蒙哥马利模乘函数有关系。不同的模数N,通过调用不同次数的蒙哥马利模乘函数,就能得到蒙哥马利模乘的转换系数,从而避开大数模幂方式的计算转换系数,而且不需要事先计算好系数,可以节省存储空间,另外在没有复杂大数库基础上,也能完成非对称密钥运算,以及可用于检查一个大数是否为素数的必要条件和可用于检查蒙哥马利模乘算法正确性。如果计算的数越来越长,素数域多个情况下,该算法的优势会更明显。
在具体实施中,所述次方计算模块3还用于:
根据所述第二预设参数E转换成计算过程的编码,得到运算标志数T和运算标志数T的位长度len;
将第一运算结果A赋值给中间结果S,即S = A,A值等于R-1 数;
对循环量i初始化,并将len-1值赋值给循环量i,即i=len-1;
判断循环量i是否大于等于零值;
当循环量i大于等于零值时,运算标志数T [i]的值是否满足逻辑真;
当循环量i小于零值时,第二运算结果B等于所述中间结果S,即S 等于 AE;
当运算标志数T [i]的值不满足逻辑真时,根据所述中间结果S、第一预设参数和蒙哥马利模乘函数,对所述中间结果S进行更新,即S= MontF(S,1);
当运算标志数T [i]的值满足逻辑真时,根据两个所述中间结果S和蒙哥马利模乘函数,对所述中间结果S进行更新,即S= MontF(S,S);
当所述中间结果S进行更新后,循环量i值自减常数1,即i=i-1接着进入判断循环量i是否大于等于零值的步骤。
在具体实施中,当计算得到蒙哥马利模乘转换系数D之后,通过现有的普通模乘运算,需要执行四次蒙哥马利模乘实现来普通数模乘运算,而改进后方式只需要执行二次蒙哥马利模就实现普通数模乘运算,因此改进后方式的实现控制运算的状态简化了一倍,也就是说,所述蒙哥马利模乘模块2,还用于根据第一输入参数NA、蒙哥马利模乘转换系数D和所述蒙哥马利模乘函数,得到第一模乘结果NAR;
第二输入参数NB、第一模乘结果NAR和所述蒙哥马利模乘函数,得到最终模乘结果。
或者,所述蒙哥马利模乘模块2,还用于根据第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到第二模乘结果NBR;
根据第一输入参数NA、第二模乘结果NBR和所述蒙哥马利模乘函数,得到最终模乘结果。
或者,所述蒙哥马利模乘模块2,还用于根据第一输入参数NA、第二输入参数NB和所述蒙哥马利模乘函数,得到第三模乘结果NANBr;
根据第三NANBr模乘结果、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种嵌入式安全芯片,其特征在于:所述嵌入式安全芯片包括:
获取模块,用于获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数1;
蒙哥马利模乘模块,用于根据两个第一预设参数,得到第一运算结果A;
次方计算模块,用于根据所述蒙哥马利模乘模块输出的第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B,其中,第二预设参数为W-4,W =φ(N),φ是欧拉函数,N是蒙哥马利模乘中模数,第二预设参数只与模数N有关,次方计算函数为计算R-1 数的多少次方的函数,R与 R-1关于模数N互逆;
所述蒙哥马利模乘模块,还用于根据第一运算结果A和第二运算结果B,得到蒙哥马利模乘转换系数,以及根据第一输入参数NA、第二输入参数NB和蒙哥马利模乘转换系数,得到最终模乘结果。
2.如权利要求1所述的嵌入式安全芯片,其特征在于:所述次方计算模块还用于:
根据所述第二预设参数转换成计算过程的编码,得到运算标志数T和运算标志数T的位长度len;
将第一运算结果A赋值给中间结果S ;
对循环量i初始化,并将len-1值赋值给循环量i;
判断循环量i是否大于等于零值;
当循环量i大于等于零值时,运算标志数T [i]的值是否满足逻辑真;
当循环量i小于零值时,第二运算结果B等于所述中间结果S;
当运算标志数T [i]的值不满足逻辑真时,根据所述中间结果S、第一预设参数和蒙哥马利模乘函数,对所述中间结果S进行更新;
当运算标志数T [i]的值满足逻辑真时,根据两个所述中间结果S和蒙哥马利模乘函数,对所述中间结果S进行更新;
当所述中间结果S进行更新后,循环量i值自减常数1,接着进入判断循环量i是否大于等于零值的步骤。
3.如权利要求2所述的嵌入式安全芯片,其特征在于:所述次方计算模块还用于:
初始化第一变量ZeroCounter,第二变量OneCounter,循环变量i和第三变量Out_i;
判断循环变量i是否小于等于E_Bitslen,其中E_Bitslen是第二预设参数的位长;
当循环变量i小于等于E_Bitslen时,判断E[i]的值是否满足逻辑真;
当E[i]的值满足逻辑真时,判断第一变量ZeroCounter是否等于零值;
当第一变量ZeroCounter不等于零值时,判断第二变量OneCounter是否等于零值;
当第二变量OneCounter等于零值时,运算标志数T [Out_i]赋值零,第三变量Out_i自增一,运算标志数T [Out_i:Out_i+ ZeroCounter-1]赋值1,接着第三变量Out_i等于Out_i+ ZeroCounter,第一变量ZeroCounter赋值为1;
循环变量i自增一,接着进入判断循环变量i是否小于等于E_Bitslen的步骤 ;
当第二变量OneCounter不等于零值时,进入循环变量i自增一的步骤 ;
当第一变量ZeroCounter等于零值时,第二变量OneCounter自增一,接着进入循环变量i自增一的步骤;
当E[i]的值不满足逻辑真时,判断第二变量OneCounter是否等于零值;
当第二变量OneCounter不等于零值,判断第一变量ZeroCounter是否等于零值;
当第一变量ZeroCounter等于零值时,运算标志数T [Out_i:Out_i+ ZeroCounter-1]赋值为1,第三变量Out_i等于Out_i+ ZeroCounter,第二变量OneCounter赋值为零值,第一变量ZeroCounter赋值为1,接着进入循环变量i自增一的步骤;
当第一变量ZeroCounter不等于零值时,进入循环变量i自增一的步骤;
当第二变量OneCounter等于零值,第一变量ZeroCounter自增1,接着进入循环变量i自增一的步骤;
当循环变量i不小于等于E_Bitslen时,判断第三变量Out_i值是否大于零;
当第三变量Out_i值大于零时,第三变量Out_i自减1;
输出位长度len= Out_i,和运算标志数T;
当第三变量Out_i值不大于零时,进入输出位长度len= Out_i,和运算标志数T的步骤;
所述E[i]为第二预设参数的各比特位的值。
4.如权利要求1所述的嵌入式安全芯片,其特征在于:所述蒙哥马利模乘模块还用于:
根据第一输入参数NA、蒙哥马利模乘转换系数D和所述蒙哥马利模乘函数,得到第一模乘结果NAR;
第二输入参数NB、第一模乘结果NAR和所述蒙哥马利模乘函数,得到最终模乘结果。
5.如权利要求1所述的嵌入式安全芯片,其特征在于:所述蒙哥马利模乘模块还用于:
根据第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到第二模乘结果NBR;
根据第一输入参数NA、第二模乘结果NBR和所述蒙哥马利模乘函数,得到最终模乘结果。
6.如权利要求1所述的嵌入式安全芯片,其特征在于:所述蒙哥马利模乘模块还用于:根据第一输入参数NA、第二输入参数NB和所述蒙哥马利模乘函数,得到第三模乘结果NANBr;
根据第三NANBr模乘结果、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510178336.1A CN104765586B (zh) | 2015-04-15 | 2015-04-15 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510178336.1A CN104765586B (zh) | 2015-04-15 | 2015-04-15 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104765586A CN104765586A (zh) | 2015-07-08 |
CN104765586B true CN104765586B (zh) | 2018-09-28 |
Family
ID=53647446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510178336.1A Active CN104765586B (zh) | 2015-04-15 | 2015-04-15 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104765586B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933304B (zh) * | 2019-03-20 | 2022-06-21 | 成都三零嘉微电子有限公司 | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 |
CN114840174B (zh) * | 2022-05-18 | 2023-03-03 | 广州万协通信息技术有限公司 | 一种使用多乘法器快速实现蒙哥马利模乘的系统及方法 |
CN115113848B (zh) * | 2022-08-30 | 2022-12-13 | 北京象帝先计算技术有限公司 | 签名/验签电路、装置、设备、方法及坐标还原电路 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1550975A (zh) * | 2003-05-09 | 2004-12-01 | 三星电子株式会社 | 蒙哥马利模数乘法器及其方法 |
US7174015B1 (en) * | 2001-04-25 | 2007-02-06 | State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Methods and apparatus for variable radix scalable modular multiplication |
CN103226461A (zh) * | 2013-03-26 | 2013-07-31 | 中山大学 | 一种蒙哥马利模乘方法及其电路 |
CN103761068A (zh) * | 2014-01-26 | 2014-04-30 | 上海交通大学 | 优化的蒙哥马利模乘方法、模平方方法和模乘硬件 |
US8719324B1 (en) * | 2005-04-28 | 2014-05-06 | Cetin K. Koc | Spectral modular arithmetic method and apparatus |
CN103780381A (zh) * | 2012-12-17 | 2014-05-07 | 深圳市证通电子股份有限公司 | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 |
CN103888246A (zh) * | 2014-03-10 | 2014-06-25 | 深圳华视微电子有限公司 | 低功耗小面积的数据处理方法及其数据处理装置 |
-
2015
- 2015-04-15 CN CN201510178336.1A patent/CN104765586B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174015B1 (en) * | 2001-04-25 | 2007-02-06 | State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Methods and apparatus for variable radix scalable modular multiplication |
CN1550975A (zh) * | 2003-05-09 | 2004-12-01 | 三星电子株式会社 | 蒙哥马利模数乘法器及其方法 |
US8719324B1 (en) * | 2005-04-28 | 2014-05-06 | Cetin K. Koc | Spectral modular arithmetic method and apparatus |
CN103780381A (zh) * | 2012-12-17 | 2014-05-07 | 深圳市证通电子股份有限公司 | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 |
CN103226461A (zh) * | 2013-03-26 | 2013-07-31 | 中山大学 | 一种蒙哥马利模乘方法及其电路 |
CN103761068A (zh) * | 2014-01-26 | 2014-04-30 | 上海交通大学 | 优化的蒙哥马利模乘方法、模平方方法和模乘硬件 |
CN103888246A (zh) * | 2014-03-10 | 2014-06-25 | 深圳华视微电子有限公司 | 低功耗小面积的数据处理方法及其数据处理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104765586A (zh) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104765586B (zh) | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 | |
CN104488219B (zh) | 用于在射频识别标签和读取设备之间进行安全通信的方法和系统 | |
EP2787682B1 (en) | Key negotiation method and apparatus according to sm2 key exchange protocol | |
CN108964914B (zh) | 抗侧信道攻击的sm2点乘架构 | |
CN103226461B (zh) | 一种用于电路的蒙哥马利模乘方法及其电路 | |
CN102207847A (zh) | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 | |
US10721056B2 (en) | Key processing method and device | |
CN104579656A (zh) | 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器 | |
CN104793919B (zh) | 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片 | |
CN103701566A (zh) | 一种校验方法和装置 | |
CN106339204A (zh) | 加密计算方法以及装置 | |
CN106850212A (zh) | 基于rsa密码算法的密钥生成系统及方法 | |
CN113032848A (zh) | 一种数据处理方法和用于数据处理的芯片 | |
CN108256638A (zh) | 微处理器电路以及执行神经网络运算的方法 | |
CN108256644A (zh) | 微处理器电路以及执行神经网络运算的方法 | |
CN111970112B (zh) | 基于zynq异构计算平台的以太坊部署方法及系统 | |
CN112564884B (zh) | 一种针对密码算法的混合去噪功耗分析方法及终端 | |
CN103339665A (zh) | 用于多位数除法或模变换的方法 | |
CN110705117B (zh) | 一种数字孪生系统复杂任务可配置高效求解方法和系统 | |
CN106330424B (zh) | 基于sm3算法的密码模块的防攻击方法及装置 | |
CN210222735U (zh) | 随机数发生器 | |
Kishore et al. | An efficient parallel algorithm for hash computation in security and forensics applications | |
US6711601B2 (en) | Logarithmic arithmetic unit avoiding division as far as predetermined arithmetic precision is guaranteed | |
CN103260154B (zh) | 一种基于128-eia3的完整性保护增强方法 | |
Lee et al. | A random number generator based on elliptic curve operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 22A, Guoshi building, 1801 Shahe West Road, high tech Zone, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: Guowei group (Shenzhen) Co., Ltd. Address before: 518000 Guangdong city of Shenzhen province Nanshan District high tech Industrial Park South high SSMEC building two floor Patentee before: Guowei Teih Co., Ltd., Shenzhen |