发明名称 一种加快RSA加/解密过程的方法及其模乘、模幂运算电路
摘要 本发明公开一种加快RSA加/解密过程的方法及其采用该算法的模乘、模幂运算电路,本发明模乘算法在现有多精度CIOS算法的基础上作了改进,将两次内循环改为一次,并减少了访问外部变量的次数;本发明模乘运算电路,由加法、乘法、地址、循环运算模块,数据寄存器、逻辑控制模块、内部线路及一些特殊功能模块组成,顺序执行本发明算法的运算,减少了所需的操作步,从而提高了运算速度,同时可以对运算数据的长度进行设定;本发明模幂运算电路,由上述模乘运算电路和CPU、系统RAM组成,由CPU控制完成多次模乘运算,在两次模乘运算间,采用动态数据地址指针技术修改模乘运算电路中的基址,大大加快了模幂运算的速度。
申请公布号 CN1259617C 申请公布日期 2006.06.14
申请号 CN03156754.1 申请日期 2003.09.09
申请人 大唐微电子技术有限公司 发明人 孙东昱;龚宗跃;赵红敏;于鹏
分类号 G06F7/38(2006.01) 主分类号 G06F7/38(2006.01)
代理机构 北京安信方达知识产权代理有限公司 代理人 霍育栋;郑霞
主权项 1、一种加快RSA加解密过程的方法,包括以下步骤:(A)在对要传送明文H进行加密时,根据E=HemodN进行模幂运算,得到密文E,完成加密,其中e、N为加密密钥;(B)在对传送来的密文E进行解密时,根据H=EdmodN进行模幂运算,得到明文H,完成解密,其中d、N为解密密钥;上述模幂运算是分解为多次的蒙格玛丽模乘算法来实现的,其特征在于,所述蒙格玛丽模乘算法通过以下方法实现:设常数R、乘数x、被乘数y、模N都是s位r进制整数,x=xs-1xs-2…x1x0,y=ys-1ys-2…y1y0,n=ns-1ns-2…n1n0;S为s+1位r进制整数,S=SsSs-1…S1S0;r=2k;中间变量C1、T1均为一位r进制数,n’[0]为运算常数,i、j为循环变量,其特征在于,本算法还包括中间变量一位二进制数C和一位r进制数T2,运算前变量S、T1、T2、C1及C均赋零值,其运算步骤如下:(a)令i为0,开始外循环;(b)将S的第0位加上x第0位与y第i位的积,结果的低位赋给T1,高位赋给C1;(c)将C1加上S第1位,和赋给T2,进位赋给C;(d)将T1与n’[0]相乘后,求其对模2k的余数,结果赋给m;(e)将T1加上m与n[0]的积,结果的低位赋给T1,高位赋给C1;(f)令j=1,开始内循环;(g)将T2与x的第j位与y的第i位的积以及进位C1相加,低位赋给T1,高位赋给C1;(h)将S的第j+1位与C1及C相加,和赋给T2,进位赋给C;(i)将T1加上m与n[j]的积,低位赋给T1,高位赋给C1;(j)将T1的值赋给S的第j-1位,循环变量j加1,重复内循环直到j等于s,退出内循环;(k)将T2加上C1,和赋给T1,进位赋给C1;(m)将T1值赋给S的第s-1位;(n)将C1加上C,和赋给S的第s位,循环变量i加1,重复外循环直到i等于s,退出外循环;(o)给C重新赋零值;(p)令j=0,开始循环;(q)将S的第j位减去n的第j位和借位C,差赋给y的第j位,借位赋给C;循环变量j值加1,重复该循环直到j等于s时,退出循环;(r)将S的第s位减去借位C,差赋给y的第s位,借位赋给C;以及(s)如果借位C为零,返回y,否则返回S。
地址 100083北京市海淀区学院路40号