CN1375764A - Rsa加密算法的实现电路及方法 - Google Patents

Rsa加密算法的实现电路及方法 Download PDF

Info

Publication number
CN1375764A
CN1375764A CN 01107654 CN01107654A CN1375764A CN 1375764 A CN1375764 A CN 1375764A CN 01107654 CN01107654 CN 01107654 CN 01107654 A CN01107654 A CN 01107654A CN 1375764 A CN1375764 A CN 1375764A
Authority
CN
China
Prior art keywords
calculation unit
result
mould
precomputation
port multiplier
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
CN 01107654
Other languages
English (en)
Other versions
CN1271506C (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.)
Nationz Technologies Inc
Original Assignee
ZHONGXING INTEGRATED CIRCUIT DESIGN CO Ltd SHENZHEN CITY
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 ZHONGXING INTEGRATED CIRCUIT DESIGN CO Ltd SHENZHEN CITY filed Critical ZHONGXING INTEGRATED CIRCUIT DESIGN CO Ltd SHENZHEN CITY
Priority to CN 01107654 priority Critical patent/CN1271506C/zh
Publication of CN1375764A publication Critical patent/CN1375764A/zh
Application granted granted Critical
Publication of CN1271506C publication Critical patent/CN1271506C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种RSA加密算法的实现电路及方法,模的二进制数长度为n,其初始预计算电路由n+1个预计算单元连接而成,预计算单元包括触发器D、全加器FA、反相器N,以及前后两个多路器,用于选择预计算和结果归一化的前一级多路器组的使能信号为En,在模乘运算完成后,信号En为高,完成结果归一化过程。用于信号输出选择的后一级多路器组的使能信号Sel为根据进位产生的控制信号。本发明将预计算和结果归一化处理电路集成在芯片内,方便用户,提高了运算速度。

Description

RSA加密算法的实现电路及方法
本发明涉及计算方法的硬件实现领域,尤其涉及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对其解密可恢复明文信息C:C=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),由此需构造蒙哥马利模乘运算T:
               T=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[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为根据进位产生的控制信号。
实现本发明目的的一种大数模幂运算的蒙哥马利模乘法实现方法,在多级基本处理单元连接而成的链路中实现迭代运算,模的二进制数长度为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[n-1]输入D触发器,经过一个时钟后写入D触发器;D触发器的输出和数值1以及下一级全加器的进位输出Br[n-1]作为操作数输入全加器FA,Br[n]是本级产生的进位输出,用于产生选择预计算链输出结果的控制信号。图1B所示的电路用于预计算链的非最高位i位,其电路比图1A多两个多路器101和102,PV是模乘结果,M[i]是模M的二进制数第i位的值,前一级多路器101用于信号输入选择,选择预计算和模乘运算;后一级多路器102用于信号输出选择,该多路器102的使能信号根据进位产生,若进位位为1,说明结果数据(在寄存器D中)大于模值M,这时输出数据要减掉模M;若进位位为0,说明结果数据小于模值M,输出数据可以直接输出。图1B的运作过程与图1A相同。
图2所示是一多路器,用于选择计算结果。该多路器的使能是模长ML,ML的值是模的二进制数据长度减1,如模为1011,则ML为3。预计算链中各全加器的输出进位Br[i]输入多路器,多路器的输出同Ctrl信号相或得到控制信号Sel,Ctrl信号来自运算核的控制电路,在第一次时钟脉冲写入时为1(即第一次左移一位时),以后为0。
图3是预计算链电路结构示意图,由如图1A和图1B所示的两种预计算单元组成。预计算链的长度根据模M的长度决定:若模M的长度为n,则需要n+1个预计算单元,模M[i]经过一组反向器后,它的每一位分别输向对应计算链单元全加器的一个操作数输入端,在最高位输入“1”;D触发器组Di的输出数据和模乘结果数据PV[i]共同输入各多路器Si,多路器Sn-1…S1S0的选通信号En,选择模乘结果PV[n-1]、PV[n-2]、……、PV[1]、PV[0]和最低位的“0”分别输入相应全加器。多路器组Seln-1…Sel1Sel0的输出分别输入上一位预计算单元的D触发器,这样每次写入D触发器时,预计算结果值左移一位。在模乘运算完成后,信号En为高,模乘结果PV[n-1]、PV[n-2]、……、PV[1]、PV[0]经过多路器组Sn-1…S1S0输到全加器,其结果小于2M,但可能大于M,若大于M要对模乘结果求模后输出,若小于M则直接输出,如此完成结果归一化过程。
图4是模乘为3位的预计算链电路示意图,图中最低位的预计算单元,因在右移过程中,最低位为0,所以D触发器可以省掉。根据前面的推导过程,该预计算链有4个预计算单元,每一位的输出连向上一位的D触发器的输入,数据PV[2]、PV[1]、PV[0]是模乘结果的输出,模M以补数形式输入,在全加器中完成与数据R[2]、R[1]、R[0]的减法运算。假设模M等于5,则n为3,即计算
                      22×3+2mod5首先计算第一步
                     (23mod5)×2将D触发器清零,运算0+M,这时要取全加器的输出结果,控制信号Ctrl使Sel为1,经过一个时钟后,预计算链的输出结果分别左移一位并写入D触发器组D2D1D0。接下来计算
               (((23mod5)×2)mod5)×2这时Ctrl为0,不参与控制,信号Sel与Br[3]等价,计算mod5,再经过一个时钟后,使结果左移一位写入D触发器组D2D1D0。如此反复,3个时钟后完成运算。
                      R=22n+2modM
在模乘运算结束后,其二进制结果的各位为PV[2]、PV[1]、PV[0],该值可能大于M,且小于2M,这样需要对该值取模,本电路的后处理功能就完成模乘结果的取模运算。当模乘结束后,输入多路器使能信号EN为1,选通模乘结果PV[2]、PV[1]、PV[0]输出并使PV<M。

Claims (7)

1.一种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为根据进位产生的控制信号。
2.根据权利要求1所述的RSA加密算法的实现电路,其特征在于所述后一级多路器(102)组的使能信号Sel的产生电路为一多路器(103),各预计算链模乘结果PV[n-1]、PV[n-2]、……、PV[1]、PV[0]和最低位的“0”输入所述多路器(103),该多路器的输出同来自运算核控制电路的Ctrl信号相或产生控制信号Sel,所述Ctrl信号在第一次时钟脉冲写入时为1(即第一次左移一位时),以后为0;所述多路器(103)的使能信号ML的值是模的二进制数据长度减1。
3.根据权利要求1所述的RSA加密算法的实现电路,其特征在于所述预计算链的最低位预计算单元的触发器D可以不要。
4.根据权利要求1所述的RSA加密算法的实现电路,其特征在于所述预计算链可以在一个独立的集成电路块中实现,也可以与多级基本处理单元连接而成的链路集成在同一集成电路块中。
5.一种RSA加密算法的实现方法,其大数模幂运算采用蒙哥马利模乘法,在多级基本处理单元连接而成的链路中实现迭代运算,模的二进制数长度为n,其特征在于其初始预计算在多级预计算单元连接而成的链路中实现,包括以下步骤:
①计算2nmodM;
②左移一位写入寄存器,再做取模运算;
③重复步骤②共n+2次。
6.根据权利要求4所述的RSA加密算法的实现方法,其特征在于其步骤①通过零与减数的补数相加实现。
7.根据权利要求4所述的RSA加密算法的实现方法,其特征在于在模乘运算完成后,设置使能信号En为高,模乘结果PV[n-1]、PV[n-2]、……、PV[1]、PV[0]经过多路器组Sn-1…S1S0输到全加器,若模乘结果大于M则对模乘结果求模后输出,否则直接输出。
CN 01107654 2001-03-19 2001-03-19 Rsa加密算法的实现电路及方法 Expired - Fee Related CN1271506C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 01107654 CN1271506C (zh) 2001-03-19 2001-03-19 Rsa加密算法的实现电路及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 01107654 CN1271506C (zh) 2001-03-19 2001-03-19 Rsa加密算法的实现电路及方法

Publications (2)

Publication Number Publication Date
CN1375764A true CN1375764A (zh) 2002-10-23
CN1271506C CN1271506C (zh) 2006-08-23

Family

ID=4656569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 01107654 Expired - Fee Related CN1271506C (zh) 2001-03-19 2001-03-19 Rsa加密算法的实现电路及方法

Country Status (1)

Country Link
CN (1) CN1271506C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196964B (zh) * 2006-12-07 2010-08-11 上海爱信诺航芯电子科技有限公司 一种抗旁路攻击算法的芯片
CN101292274B (zh) * 2005-10-19 2011-01-19 松下电器产业株式会社 信息安全装置、信息安全方法、计算机程序、计算机可读取的记录媒体及集成电路
CN1750460B (zh) * 2004-09-16 2011-11-16 英特尔公司 用于执行模幂运算的方法
CN101169776B (zh) * 2006-10-27 2012-01-25 松下电器产业株式会社 提升中央处理单元运算效能的数据加密方法及加密装置
CN102646033A (zh) * 2011-02-21 2012-08-22 中国科学院研究生院 模乘运算的实现方法和装置
CN103699351A (zh) * 2013-12-05 2014-04-02 西安交通大学 一种去头去尾移位电路
CN103729163A (zh) * 2013-12-05 2014-04-16 西安交通大学 一种掐头去尾移位补值电路
WO2024036429A1 (en) * 2022-08-15 2024-02-22 Intel Corporation Paillier cryptosystem with improved performance

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1750460B (zh) * 2004-09-16 2011-11-16 英特尔公司 用于执行模幂运算的方法
CN101292274B (zh) * 2005-10-19 2011-01-19 松下电器产业株式会社 信息安全装置、信息安全方法、计算机程序、计算机可读取的记录媒体及集成电路
CN101169776B (zh) * 2006-10-27 2012-01-25 松下电器产业株式会社 提升中央处理单元运算效能的数据加密方法及加密装置
CN101196964B (zh) * 2006-12-07 2010-08-11 上海爱信诺航芯电子科技有限公司 一种抗旁路攻击算法的芯片
CN102646033A (zh) * 2011-02-21 2012-08-22 中国科学院研究生院 模乘运算的实现方法和装置
CN102646033B (zh) * 2011-02-21 2015-08-19 中国科学院信息工程研究所 提供了加密和签名功能的rsa算法的实现方法和装置
CN103699351A (zh) * 2013-12-05 2014-04-02 西安交通大学 一种去头去尾移位电路
CN103729163A (zh) * 2013-12-05 2014-04-16 西安交通大学 一种掐头去尾移位补值电路
CN103699351B (zh) * 2013-12-05 2016-06-29 西安交通大学 一种去头去尾移位电路
WO2024036429A1 (en) * 2022-08-15 2024-02-22 Intel Corporation Paillier cryptosystem with improved performance

Also Published As

Publication number Publication date
CN1271506C (zh) 2006-08-23

Similar Documents

Publication Publication Date Title
JP3784156B2 (ja) モジュラ掛け算方法
US5742530A (en) Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
US5210710A (en) Modulo arithmetic processor chip
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
CN101216754B (zh) 基于模乘运算的数据加解密处理的方法及装置
CA2741698C (en) Method and apparatus for modulus reduction
JP4783382B2 (ja) モンゴメリ法用乗算剰余計算装置
CN1271506C (zh) Rsa加密算法的实现电路及方法
EP1600852A2 (en) Method and apparatus for calculating a modular inverse
US7050579B1 (en) Cryptographic methods and apparatus using word-wise montgomery multiplication
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
EP1818810B1 (en) Circuit and method for multiplying long integer values
US20020172355A1 (en) High-performance booth-encoded montgomery module
CN2507064Y (zh) 一种蒙哥马利模乘器
CN1392472A (zh) Vlsi用的蒙格玛丽模乘算法及智能卡模乘器的vlsi结构
CN115270155A (zh) 一种获取大数拓展最大公约数的方法及硬件架构
CN1550975A (zh) 蒙哥马利模数乘法器及其方法
CN112631546A (zh) 基于ko-8算法的高性能模乘器
CN1085862C (zh) 高速模乘法装置
Pinckney et al. Public key cryptography
Parihar et al. Montgomery Modular Multiplier in RSA Cryptosystem
Chiang et al. An efficient VLSI architecture for RSA public-key cryptosystem
Vollala et al. Bit Forwarding 3-Bits Technique for Efficient Modular Exponentiation
CN116820394A (zh) 一种面向椭圆曲线加密算法的标量乘电路
Keshavarzi VLSI implementation of public key cryptography algorithms

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
C56 Change in the name or address of the patentee

Owner name: GUOMING TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: ZHONGXING INTEGRATED CIRCUIT DESIGN CO. LTD., SHENZHEN CITY

CP03 Change of name, title or address

Address after: Guangdong Shenzhen hi tech Zone, Nanshan District hi tech Zone Three, 2, three software park three

Patentee after: Nationz Technologies Inc.

Address before: Hi tech Zone, Guangdong, Shenzhen Province, three, 2, three software park three

Patentee before: Zhongxing Integrated Circuit Design Co., Ltd., Shenzhen City

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060823

Termination date: 20150319

EXPY Termination of patent right or utility model