RSA加密算法的实现电路及方法技术

技术编号:2880433 阅读:324 留言:0更新日期:2012-04-11 18:40
一种RSA加密算法的实现电路及方法,模的二进制数长度为n,其初始预计算电路由n+1个预计算单元连接而成,预计算单元包括触发器D、全加器FA、反相器N,以及前后两个多路器,用于选择预计算和结果归一化的前一级多路器组的使能信号为En,在模乘运算完成后,信号En为高,完成结果归一化过程。用于信号输出选择的后一级多路器组的使能信号Sel为根据进位产生的控制信号。本发明专利技术将预计算和结果归一化处理电路集成在芯片内,方便用户,提高了运算速度。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算方法的硬件实现领域,尤其涉及RSA加密算法中大数模乘、模幂运算的硬件实现,具体的说是涉及通过集成电路实现采用蒙哥马利模乘法完成大数模幂运算的硬件电路。随着通讯技术的发展,信息的传输量越来越大,信息的安全问题也越来越重要,尤其在商业领域,信息传输的安全性、完整性和不可抵赖性直接影响到商家的运作模式和经济利益。在信息时代,高速计算机和全球化的INTERNET网络的发展,使世界不同地区的人们可以相互交换信息,信息访问的合法性显得日益重要。日益发展的各种信息加密、解密技术适应了时代的要求,良好的加密算法使信息传输更可靠、更安全,其中公钥加密算法能更好的满足用户的要求。到目前为止,RSA加密算法是最流行的公开密钥算法,可用作加密和数字签名。RSA加密算法是由R.L.Riverst,A.Shamir,and L.Adleman提出、用三个人名命名的算法。在使用该加密算法的系统中,对于每个用户而言对应着三个很大的二进制整数M、e和d,一般为512位或1024位,数越大所加密的信息越难破解。这三个二进制整数之间有着特殊的关系,其中M和e是公开的,d是保密的,并由用户保存,M是模数,e是加密密钥,d是解密密钥。当向某用户发送信息C时,利用对应该用户的加密密钥e,对信息C加密再发向该用户,这里C为明文,E为密文,加密过程可表示为E=CemodM;当用户接到密文信息E后,用对应该用户的解密密钥d对其解密可恢复明文信息CC=EdmodM。可见采用RSA算法对信息加密和解密都必须进行大数模幂运算,众所周知模幂运算可分解为多次模乘运算,设加解密涉及的大数为C、A、e,模为M,即C=AemodM=(A×A×…×A)modM模乘运算可采用蒙哥马利模乘运算法硬件实现,其完成的计算记作Mont(A,A,M)。若模M的二进制数的长度为n位,蒙哥马利模乘就需要经过n+1轮迭代运算,设其完成的运算结果为P,则P=Mont(A,A,M)=A×A×2-(n+1)modM可知经过n+1轮蒙哥马利模乘运算后,所得结果比模乘多一个因子2-(n+1),由此需构造蒙哥马利模乘运算TT=Mont(P,PP,M)=A×AmodM其中 PP=22n+2modM如此完成了加解密所需的大数模幂运算。其中PP的运算即为采用蒙哥马利模乘算法时的初始预计算。美国专利US 6,061,706公开了一种蒙哥马利模乘硬件电路,在该电路中它的初始预计算PP=22n+2modM由用户完成,给用户带来了不便,而且由用户采用软件实现该运算,速度没有硬件实现快。在模乘计算完成后,其结果可能比模大,因此必须再做一次取模运算,实现结果的归一化处理。本专利技术的目的在于提出一种RSA加密算法中采用蒙哥马利模乘法实现大数模幂、模乘运算时初始预计算和结果归一化处理的实现电路及方法。实现本专利技术目的的一种大数模幂运算的蒙哥马利模乘法实现电路,由多级基本处理单元连接而成,模的二进制数长度为n,其初始预计算电路由n+1个预计算单元连接而成,处于预计算链最高位n的预计算单元包括触发器D和全加器FA,低一位预计算单元的计算结果R输入触发器D,经过一个时钟后写入,触发器D的输出和数值1以及低一位预计算单元的进位输出Br作为操作数输入全加器FA,产生本级进位输出Br;处于预计算链的非最高位i(i等于0,1,…,n-1)的预计算单元包括触发器D、全加器FA、反相器N,以及前后两个多路器(101和102),低一位预计算单元的计算结果R和模乘结果PV输入前一级多路器(101);模M的二进制数第i位的值M经反相器N后和前一级多路器(101)的输出以及低一位预计算单元的进位输出Br分别同时输入全加器FA,全加器FA产生本级进位输出Br,前一级多路器(101)和全加器FA的输出输入后一级多路器(102),后一级多路器(102)输出预计算结果R;上述预计算单元组成预计算链,低一位预计算单元的计算结果R输入上一位预计算单元的触发器D,低一位预计算单元的进位输出Br输入上一位预计算单元的全加器FA,最底位预计算单元的触发器D的输入为0、全加器FA的输入为1,用于选择预计算和模乘运算的前一级多路器(101)组的使能信号为En,用于信号输出选择的后一级多路器(102)组的使能信号Sel为根据进位产生的控制信号。实现本专利技术目的的一种大数模幂运算的蒙哥马利模乘法实现方法,在多级基本处理单元连接而成的链路中实现迭代运算,模的二进制数长度为n,其在初始预计算电路中实现的初始预计算包括以下步骤①计算2nmodM;②左移一位写入寄存器,再做取模运算;③重复步骤②共n+2次。本专利技术有以下优点将预计算和结果归一化处理电路集成在芯片内,无需用户输入预计算数据,方便用户,提高运算速度;预计算和结果归一化处理采用同一电路,减少电路面积,降低设计复杂度,降低成本。下面结合附图对本专利技术作进一步详细说明附图说明图1A是处于预计算链最高位的预计算单元电路示意图;图1B是非预计算链最高位的预计算单元电路示意图;图2是产生选择信号Sel的电路示意图3是预计算链电路结构示意图;图4是链长为4的预计算电路示意图。在预计算PP=22n+2modM中指数2n+2是两次蒙哥马利模乘的迭代次数,将上式写成如下形式PP=(2n×2×…×2)modM=(…((2nmodM)×2modM)…×2)modM其中…代表n次(×2modM)运算。所以PP的运算过程可分解为1.计算2nmodM;2.左移一位写入寄存器,再做取模运算;3.重复步骤2共n+2次。因为二进制数2n长度为n+1位,且最高位为1,其它位为0;模M取为奇数,长度为n位,即M的最高位和最低位是1;则2M的长度是n+1位,且至少最高位和次低位两位为1,所以有2M>2n>M则 2nmodM=2n-M该二进制运算可以通过零与减数的补数相加得到0+M补其中 M补=M+1将该结果左移一位即完成乘以2的运算,写入寄存器后再求模输出,即完成运算2n+1modM然后再左移一位写入寄存器,接着再求模输出,即运算2n+2modM…………这样再经过n次运算后完成22n+2modM图1A和图1B的两种电路是预计算链中的两种处理单元。图1A所示的电路用于预计算链的最高位,图中的D代表D触发器,FA代表全加器,Br是全加器的进位输出,R是处理单元的计算结果。该电路的运作过程是这样的下一级的计算结果R输入D触发器,经过一个时钟后写入D触发器;D触发器的输出和数值1以及下一级全加器的进位输出Br作为操作数输入全加器FA,Br是本级产生的进位输出,用于产生选择预计算链输出结果的控制信号。图1B所示的电路用于预计算链的非最高位i位,其电路比图1A多两个多路器101和102,PV是模乘结果,M是模M的二进制数第i位的值,前一级多路器101用于信号输入选择,选择预计算和模乘运算;后一级多路器102用于信号输出选择,该多路器102的使能信号根据进位产生,若进位位为1,说明结果数据(在寄存器D中)大于模值M,这时输出数据要减掉模M;若进位位为0,说明结果数据小于模值M,输出数据可以直接输出。图1B的运作过程与图1A相同。图2所示是一多路器,用于选择计算结果。该多路器的使能是模长ML,ML的值是模的二进制数据长度减1,如模为10本文档来自技高网...

【技术保护点】
一种RSA加密算法的实现电路,其大数模幂运算采用蒙哥马利模乘法,由多级基本处理单元连接而成,模的二进制数长度为n,其特征在于其初始预计算电路由n+1个预计算单元连接而成,处于预计算链最高位n的预计算单元包括触发器D和全加器FA,低一位预计算单元的计算结果R[n-1]输入触发器D,经过一个时钟后写入,触发器D的输出和数值1以及低一位预计算单元的进位输出Br[n-1]作为操作数输入全加器FA,产生本级进位输出Br[n]; 处于预计算链的非最高位i(i等于0,1,…,n-1)的预计算单元包括触发器D、全加器FA、反相器N,以及前后两个多路器(101和102),低一位预计算单元的计算结果R[i-1]和模乘结果PV[i]输入前一级多路器(101);模M的二进制数第i位的值M[i]经反相器N后和前一级多路器(101)的输出以及低一位预计算单元的进位输出Br[i-1]分别同时输入全加器FA,全加器FA产生本级进位输出Br[i],前一级多路器(101)和全加器FA的输出输入后一级多路器(102),后一级多路器(102)输出预计算结果R[i]; 所述预计算单元组成所述预计算链,低一位预计算单元的计算结果R[i]输入上一位预计算单元的触发器D,低一位预计算单元的进位输出Br[i]输入上一位预计算单元的全加器FA,最底位预计算单元的触发器D的输入为0、全加器FA的输入为1,用于选择模乘运算和结果归一化的前一级多路器(101)组的使能信号为En,用于信号输出选择的后一级多路器(102)组的使能信号Sel为根据进位产生的控制信号。...

【技术特征摘要】

【专利技术属性】
技术研发人员:周玉洁金松刘英广
申请(专利权)人:深圳市中兴集成电路设计有限责任公司
类型:发明
国别省市:94[中国|深圳]

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

1