一种嵌入式安全芯片及其的蒙哥马利模乘运算方法_3

文档序号:8445385阅读:来源:国知局
骤S061,根据第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到第二模乘结果NBR ;
步骤S062,根据第二输入参数NA、第二模乘结果NBR和所述蒙哥马利模乘函数,得到最终模乘结果。
[0020]对于步骤S061,也就是说,调用一次蒙哥马利模乘函数,输入两个参数分别为NB、R2, NBR = MontF (NB, R2),BR 是一个变量。
[0021]对于步骤S062,也就是说,调用一次蒙哥马利模乘函数,输入两个参数分别为NA、NBR, RE = MontF (NA, NBR),RE是NA和NB关于模数N的模乘结果。
[0022]在具体实施中,如图7所示,所述步骤S04具体包括以下步骤:
步骤S071,根据第一输入参数NA、第二输入参数NB和所述蒙哥马利模乘函数,得到第三模乘结果NANBr ;
步骤S072,根据第三模乘结果NANBr、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。
[0023]对于步骤S071,调用一次蒙哥马利模乘函数,输入两个参数分别为A、B,NANBr =MontF (NA, NB),NANBr 是一个变量。
[0024]对于步骤S072,调用一次蒙哥马利模乘函数,输入两个参数分别为NANBr、R2,RE=MontF (NANBr, R2),RE是NA和NB关于模数N的模乘结果。
[0025]在具体实施中,本发明还提供一种实施例的嵌入式安全芯片,如图8所示,所述嵌入式安全芯片包括获取模块1,蒙哥马利模乘模块2和次方计算模块3 ;
获取模块1,用于获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数
I ;
蒙哥马利模乘模块2,用于根据两个第一预设参数,得到第一运算结果A ;
次方计算模块3,用于根据所述蒙哥马利模乘模块2输出的第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B,其中,第二预设参数为W-4,W =Φ (N),Φ是欧拉函数,N是蒙哥马利模乘中模数,模数位长通常取值为192、239、521、1024、2048,第二预设参数只与模数N有关,次方计算函数为计算IT1数的多少次方的函数,R与IT1关于模数N互逆;
所述蒙哥马利模乘模块2,还用于根据第一运算结果A和第二运算结果B,得到蒙哥马利模乘转换系数,以及根据第一输入参数NA、第二输入参数NB和蒙哥马利模乘转换系数,得到最终模乘结果。
[0026]从上述芯片的方案可以看出,次方计算函数只与蒙哥马利模乘函数有关系。不同的模数N,通过调用不同次数的蒙哥马利模乘函数,就能得到蒙哥马利模乘的转换系数,从而避开大数模幂方式的计算转换系数,而且不需要事先计算好系数,可以节省存储空间,另外在没有复杂大数库基础上,也能完成非对称密钥运算,以及可用于检查一个大数是否为素数的必要条件和可用于检查蒙哥马利模乘算法正确性。如果计算的数越来越长,素数域多个情况下,该算法的优势会更明显。
[0027]在具体实施中,所述次方计算模块3还用于:
根据所述第二预设参数E转换成计算过程的编码,得到运算标志数T和运算标志数T的位长度Ien ;
将第一运算结果A赋值给中间结果S,即S = A,A值等于IT1数;
对循环量i初始化,并将Ien-1值赋值给循环量i,即i=len_l ;
判断循环量i是否大于等于零值;
当循环量i大于等于零值时,运算标志数T [i]的值是否满足逻辑真;
当循环量i小于零值时,第二运算结果B等于所述中间结果S,即S等于Ae;
当运算标志数T [i]的值不满足逻辑真时,根据所述中间结果S、第一预设参数和蒙哥马利模乘函数,对所述中间结果S进行更新,即S= MontF(S,I);
当运算标志数T [i]的值满足逻辑真时,根据两个所述中间结果S和蒙哥马利模乘函数,对所述中间结果S进行更新,即S= MontF(S,S);
当所述中间结果S进行更新后,循环量i值自减常数1,即i=i_l接着进入判断循环量i是否大于等于零值的步骤。
[0028]在具体实施中,当计算得到蒙哥马利模乘转换系数D之后,通过现有的普通模乘运算,需要执行四次蒙哥马利模乘实现来普通数模乘运算,而改进后方式只需要执行二次蒙哥马利模就实现普通数模乘运算,因此改进后方式的实现控制运算的状态简化了一倍,也就是说,所述蒙哥马利模乘模块2,还用于根据第一输入参数NA、蒙哥马利模乘转换系数D和所述蒙哥马利模乘函数,得到第一模乘结果NAR ;
第二输入参数NB、第一模乘结果NAR和所述蒙哥马利模乘函数,得到最终模乘结果。
[0029]或者,所述蒙哥马利模乘模块2,还用于根据第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到第二模乘结果NBR ;
根据第一输入参数NA、第二模乘结果NBR和所述蒙哥马利模乘函数,得到最终模乘结果O
[0030]或者,所述蒙哥马利模乘模块2,还用于根据第一输入参数NA、第二输入参数NB和所述蒙哥马利模乘函数,得到第三模乘结果NANBr ;
根据第三NANBr模乘结果、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。
[0031]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种嵌入式安全芯片的蒙哥马利模乘运算方法,其特征在于:所述运算方法包括以下步骤: 获取两个第一预设参数,和第二预设参数,其中第一预设参数为常数I; 根据两个第一预设参数和蒙哥马利模乘函数,得到第一运算结果A ; 根据第一运算结果A、第一预设参数、第二预设参数和次方计算函数,得到第二运算结果B,其中,第二预设参数为W-4,W =Φ(Ν),Φ是欧拉函数,N是蒙哥马利模乘中模数,第二预设参数只与模数N有关,次方计算函数为计算IT1数的多少次方的函数,R与IT1关于模数N互逆; 根据第一运算结果Α、第二运算结果B和所述蒙哥马利模乘函数,得到蒙哥马利模乘转换系数; 根据第一输入参数NA、第二输入参数NB、蒙哥马利模乘转换系数和所述蒙哥马利模乘函数,得到最终模乘结果。
2.如权利要求1所述的运算方法,其特征在于:所述根据第一运算结果、第二预设参数和次方计算函数,得到第二运算结果,具体包括以下步骤: 根据所述第二预设参数转换成计算过程的编码,得到运算标志数T和运算标志数T的位长度Ien ; 将第一运算结果A赋值给中间结果S ; 对循环量i初始化,并将Ien-1值赋值给循环量i ; 判断循环量i是否大于等于零值; 当循环量i大于等于零值时,运算标志数T [i]的值是否满足逻辑真; 当循环量i小于零值时,输出第二运算结果B,第二运算结果B等于所述中间结果S ;当运算标志数T [i]的值不满足逻辑真时,根据所述中间结果S、第一预设参数和蒙哥马利模乘函数,对所述中间结果S进行更新; 当运算标志数T [i]的值满足逻辑真时,根据两个所述中间结果S和蒙哥马利模乘函数,对所述中间结果S进行更新; 当所述中间结果S进行更新后,循环量i的值自减常数1,接着进入判断循环量i是否大于等于零值的步骤。
3.如权利要求2所述的运算方法,其特征在于:根据所述第二预设参数转换成计算过程的编码,得到运算标志数T和运算标志数T的位
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1