CN102117195B - 大数模乘器电路 - Google Patents

大数模乘器电路 Download PDF

Info

Publication number
CN102117195B
CN102117195B CN 200910202052 CN200910202052A CN102117195B CN 102117195 B CN102117195 B CN 102117195B CN 200910202052 CN200910202052 CN 200910202052 CN 200910202052 A CN200910202052 A CN 200910202052A CN 102117195 B CN102117195 B CN 102117195B
Authority
CN
China
Prior art keywords
output
output terminal
input end
selector switch
bit
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
Application number
CN 200910202052
Other languages
English (en)
Other versions
CN102117195A (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.)
Shanghai Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit Co Ltd
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 Shanghai Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN 200910202052 priority Critical patent/CN102117195B/zh
Publication of CN102117195A publication Critical patent/CN102117195A/zh
Application granted granted Critical
Publication of CN102117195B publication Critical patent/CN102117195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种大数模乘器电路,包括:一个二输入与门,一个数据左移1位模块,三个二选一选择器MUX1,MUX2,MUX3;一个N+2位大数加法器;选择与控制模块,包括一个N+2位比较器,用于控制所述三个二选一选择器,以及整个运算过程的数据流向和运算过程,保证整个电路正常工作;在所述选择与控制模块的控制和协调,使得整个电路在满足模乘功能的前提下,实现N+2位比较器和N+2位加法器的复用。本发明能节省大量芯片面积,降低功耗,而且实现过程简单,可用于设计ECC,RSA等加密处理器,适用于在FPGA及ASIC中实现。

Description

大数模乘器电路
技术领域
本发明涉及密码学领域,特别是涉及一种加密解密算法中的重要模块---大数模乘器的电路结构。
背景技术
近年来,随着信息化社会的发展和密码学商业应用的普及,人们对信息安全和保密的重要性认识不断提高,密码学受到前所未有的重视。除传统的密码应用系统外,密码学还应用于提供加密,签名,认证,密钥管理,分配等领域。加解密算法也层出不穷,如:ECC(Elliptic CurvesCryptography,椭圆曲线加密算法),RSA(RSA公开密钥加密算法),DSA(数字签名算法)等。
1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法,其根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP(EllipticCurve Discrete Logarithm Problem)。破解椭圆曲线密码体制的时间复杂度是完全指数阶的。与其他加密算法相比,有抗攻击性强,计算量小,处理速度快,占用资源少,带宽要求低等特点,使得其在保密通信,数字签名,无线网络等领域有广泛的应用前景。
大数模乘运算作为ECC加密算法中的基本运算单元,贯穿ECC算法整个流程。大数模乘器的性能直接影响到整个ECC处理器的面积和功耗,所以对大数模乘器的改进显得尤为重要。
发明内容
本发明要解决的技术问题是提供一种大数模乘器电路,能够提高资源利用率,节省芯片面积。
为解决上述技术问题,本发明的大数模乘器电路包括:
一个二输入与门,其两个输入端分别输入N位数据A[N-1:0]和B的第i位数据B[i],输出端连接到第三个二选一选择器MUX3的输入端;将B的第i位数据B[i]与A[N-1:0]中的每一位数据做与运算,即:如果B[i]为1时,直接将A[N-1:0]作为二输入与门的运算结果输出到MUX3;如果B[i]为0时,则将0作为二输入与门的运算结果输出到MUX3;
数据左移1位模块,其输入端连接到N+2位加法器的输出端Dout_c,其输出端连接到第一个二选一选择器MUX1的输入端;将N+2位加法器的输出结果C左移一位输出到MUX1;
第一个二选一选择器MUX1,两个输入端分别连接到N+2位加法器的输出端Dout_c以及数据左移1位模块的输出端,其输出端连接到第二个二选一选择器MUX2的输入端;在选择与控制模块的控制下,选择N+2位加法器的输出C或者数据左移1位模块的输出2C输出到第二个二选一选择器MUX2;
第二个二选一选择器MUX2,其一个输入端连接到第一个二选一选择器MUX1的输出端,另一个输入端输入常数0,其输出端连接到N+2位加法器的输入端Din_a;在选择与控制模块的控制下,选择第一个二选一选择器MUX1的输出C或者0输出到N+2位加法器;
第三个二选一选择器MUX3,其一个输入端连接到二输入与门的输出端,另一个输入端输入常数负P(即:-P),其输出端连接到N+2位加法器的输入端Din_b;在选择与控制模块的控制下,选择二输入与门的输出结果或者常数-P输出到N+2位加法器;
N+2位加法器,其两个输入端中,Din_a端连接到第二个二选一选择器MUX2的输出端,Din_b端连接到第三个二选一选择器MUX3的输出端,其输出端Dout_c同时连接到第一个二选一选择器MUX1的输入端、左移1位模块的输入端和大数模乘器的输出端C;对其输入的数据进行加法运算,产生的结果由Dout_c端输出;
选择与控制模块,包含一个N+2位比较器,用于控制所述三个二选一选择器,以及整个运算过程的数据流向和运算过程,保证整个电路正常工作;
其中,0≤i≤N-1;A,B,P均是位宽为N的二进制无符号大数。
采用Blakley算法实现大数模乘器时,需要用到多个大数加法器来参与运算。随着安全性要求提高,使得大数位数N增加,由此带来的资源消耗越来越大。
本发明的大数模乘器电路能节省两个N+2位加法器和一个N+2位比较器资源;传统电路实现Blakley算法时至少需要三个N+2位加法器和两个N+2位比较器;而本发明的电路结构通过资源复用,只需要一个N+2位加法器和一个N+2位比较器,从而节省了大量芯片面积,降低了功耗;本发明实现过程简单,可用于设计ECC,RSA等加密处理器,适用于在FPGA及ASIC中实现。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是大数模乘器电路一实施例结构图;
图2是大数模乘器运算流程图。
具体实施方式
如图1所示,在一实施例中,所述的大数模乘器电路包括一个二输入与门,一个数据左移1位模块,三个二选一选择器MUX1,MUX2和MUX3,一个N+2位加法器以及选择与控制模块。其中,选择与控制模块包含一个用来比较C与P大小的N+2位比较器,一个下标i与1相减的电路以及一个用于判断i是否小于0的比较器,用于控制所述三个二选一选择器,以及整个运算过程的数据流向和运算过程,保证整个电路正常工作。在所述选择与控制模块的控制和协调,使得整个电路在满足模乘功能的前提下,实现N+2位比较器和N+2位加法器的复用。
模乘一般表示为:
C=(A*B)mod P 0≤A,B<P
其中A,B,P都是位宽为N的二进制无符号大数。模乘器由两部分运算组成,先对A和B作乘法运算,然后再模以P。
1983年Blakley基于该计算式提出了一种加法型模乘算法,其设计思想是将模乘转换为一系列加法运算。为使最终结果C小于P,每次计算的中间结果都需做求模运算。
Blakley算法如下:
输入:
A={AN-1,AN-2…A1,A0}
B={BN-1,BN-2…B1,B0}
P={PN-1,PN-2…P1,P0}
C=0
输出:
C=(A*B)mod P
其中,C={CN-1,CN-2…C1,C0}
运算过程如下:
1、C=0;
2、For i=0 to(N-1);
3、{
4、C=2C+A*BN-1-i
5、If(C≥P);
6、C=C-P;
7、If(C≥P);
8、C=C-P;
9、}
10、Return C。
由上面的Blakley算法可知,在第4步,第6步和第8步都需要进行加法运算,需要3个N+2位加法器;在第5步和第7步都需要进行比较操作,需要2个N+2位比较器。由于Blakley算法中的所有运算都是串行的,故能通过加法器的复用来节省系统资源。本发明就是采取第6步和第8步的加法运算复用第4步所使用的N+2位加法器,同时第5步和第7步共用同一个N+2位比较器。
N+2位加法器的两个输入端分别为:Din_a,Din_b,输出端为:Dout_c,则在选择与控制模块的控制下,不同时期加法器的输入输出情况如下表所示:
Figure GSB00000978246500061
当A,B到达时,A的值直接输入模乘器,而B的值由高到低按位输入模乘器,C的初始值为0,计数器i的初始值为N-1,在选择与控制模块的控制下大数模乘器电路开始运算,最终的运算结果由大数模乘器电路的输出端C输出。
参见图2,所述大数模乘器运算流程是:大数模乘器初始化时,A={A[N-1],…A[1],A[0]},B={B[N-1],…B[1],B[0]},P={P[N-1],…P[1],P[0]},累计变量C也是N位数,值为0,下标i的值为N-1;第一次运算时,大数模乘器输出端C输出的初始值为0,经MUX2送往N+2位加法器,同时把A*B[i]的值经MUX3送往N+2位加法器,然后由N+2位加法器进行两者相加的运算:C=0+A*B[i];运算完成后,把运算结果C送往N+2位比较器中,与P进行比较;如果C不小于P,则把C的值送往MUX1,经MUX2送往N+2位加法器,同时把常数-P送往N+2加法器,使C与-P做加法运算:C=C+(-P);运算完毕,再把运算结果C送到N+2位比较器中,与P进行比较,如果C仍然不小于P,则重复上面得操作;如果C小于P,则本次的运算过程结束,计数器i自减1,并判断减1后计数器的值i是否小于0,如果i不小于0,说明B中还有数据位没有参与运算,则把本次的运算结果C左移1位,经由MUX1,MUX2送往N+2位加法器,同时把A*B[i]经MUX3送往N+2位加法器,开始下一次的运算;如果i小于0,说明B中所有数据位都参与了运算,此时运算已经完成,输出运算结果C。
由于0≤A,B<P,即有2C+A*BN-1-i<3P,故在传统的模乘结构中,用1个N+2位加法器完成2C+A*BN-1-i运算后,为保证2C+A*BN-1-i的运算结果小于P,还需两个N+2位的比较器和两个N+2位的加法器来做求模运算(2C+A*BN-1-i)mod P。而在本发明中,做求模运算(2C+A*BN-1-i)mod P时所需的两次加法运算操作复用做2C+A*BN-1-i运算的那个N+2位加法器,同时两次比较操作复用同一个N+2位比较器。选择与控制模块控制三个二选一选择器来选择加法器的输入数据。由此可知,与现有的技术相比,本发明能节省一个N+2位比较器和两个N+2位加法器。在安全性要求越来越高的今天,密码体系中操作数的位宽N越来越大,N+2位宽的加法器和比较器所占用的资源在密码系统中的比重也越来越大,从而使得本发明所带来的资源节约显得愈发重要。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

Claims (3)

1.一种大数模乘器电路,其特征在于,包括:
一个二输入与门,其两个输入端分别输入N位数据A[N-1:0]和B的第i位数据B[i],输出端连接到第三个二选一选择器MUX3的输入端;将B的第i位数据B[i]与A[N-1:0]中的每一位数据做与运算;
数据左移1位模块,其输入端连接到N+2位加法器的输出端Dout_c,其输出端连接到第一个二选一选择器MUX1的输入端;将N+2位加法器的输出结果C左移一位输出到MUX1;
第一个二选一选择器MUX1,两个输入端分别连接到N+2位加法器的输出端Dout_c以及数据左移1位模块的输出端,其输出端连接到第二个二选一选择器MUX2的输入端;在选择与控制模块的控制下,选择N+2位加法器的输出C或者数据左移1位模块的输出2C输出到第二个二选一选择器MUX2;
第二个二选一选择器MUX2,其一个输入端连接到第一个二选一选择器MUX1的输出端,另一个输入端输入常数0,其输出端连接到N+2位加法器的输入端Din_a;在选择与控制模块的控制下,选择第一个二选一选择器MUX1的输出C或者常数0输出到N+2位加法器;
第三个二选一选择器MUX3,其一个输入端连接到二输入与门的输出端,另一个输入端输入常数-P,其输出端连接到N+2位加法器的输入端Din_b;在选择与控制模块的控制下,选择二输入与门的输出结果或者常数-P输出到N+2位加法器;
N+2位加法器,其两个输入端中,Din_a端连接到第二个二选一选择器MUX2的输出端,Din_b端连接到第三个二选一选择器MUX3的输出端,其输出端Dout_c同时连接到第一个二选一选择器MUX1的输入端、左移1位模块的输入端和大数模乘器的输出端C;对其输入的数据进行加法运算,产生的结果由Dout_c端输出;
选择与控制模块,包括一个N+2位比较器,用于控制所述三个二选一选择器,以及整个运算过程的数据流向和运算过程,保证整个电路正常工作;
其中,0≤i≤N-1;A,B,P均是位宽为N的二进制无符号大数。
2.根据权利要求1所述的大数模乘器电路,其特征在于:所述二输入与门进行与操作时,如果B的第i位数据B[i]为1时,直接将A[N-1:0]作为二输入与门的运算结果输出到MUX3;如果B的第i位数据B[i]为0时,则将0作为二输入与门的运算结果输出到MUX3。
3.根据权利要求1所述的大数模乘器电路,其特征在于:第一次运算时,大数模乘器输出端C输出的初始值为0,经MUX2送往N+2位加法器,同时把A*B[i]的值经MUX3送往N+2位加法器,然后由N+2位加法器进行两者相加的运算:C=0+A*B[i];运算完成后,把运算结果C送往N+2位比较器中,与P进行比较;如果C不小于P,则把C的值送往MUX1,经MUX2送往N+2位加法器,同时把常数-P送往N+2加法器,使C与-P做加法运算:C=C+(-P);运算完毕,再把运算结果C送到N+2位比较器中,与P进行比较,如果C仍然不小于P,则重复上面得操作;如果C小于P,则本次的运算过程结束,计数器i自减1,并判断减1后计数器的值i是否小于0,如果i不小于0,说明B中还有数据位没有参与运算,则把本次的运算结果C左移1位,经由MUX1,MUX2送往N+2位加法器,同时把A*B[i]经MUX3送往N+2位加法器,开始下一次的运算;如果i小于0,说明B中所有数据位都参与了运算,此时运算已经完成,输出运算结果C。
CN 200910202052 2009-12-30 2009-12-30 大数模乘器电路 Active CN102117195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910202052 CN102117195B (zh) 2009-12-30 2009-12-30 大数模乘器电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910202052 CN102117195B (zh) 2009-12-30 2009-12-30 大数模乘器电路

Publications (2)

Publication Number Publication Date
CN102117195A CN102117195A (zh) 2011-07-06
CN102117195B true CN102117195B (zh) 2013-05-01

Family

ID=44215978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910202052 Active CN102117195B (zh) 2009-12-30 2009-12-30 大数模乘器电路

Country Status (1)

Country Link
CN (1) CN102117195B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164187B (zh) * 2011-12-09 2017-03-01 深圳市证通电子股份有限公司 Rsa模幂电路及rsa安全加密芯片
CN102594334B (zh) * 2012-01-10 2014-08-06 复旦大学 一种流水线型fpga回读帧ecc电路
CN103853524B (zh) * 2012-11-30 2017-02-08 安凯(广州)微电子技术有限公司 一种乘法器装置和实现乘法运算的方法
CN106603223A (zh) * 2016-11-30 2017-04-26 中国电子科技集团公司第五十八研究所 基于FPGA的Rijndael‑ECC加密系统
CN114879934B (zh) * 2021-12-14 2023-01-10 中国科学院深圳先进技术研究院 一种高效的零知识证明加速器及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1375765A (zh) * 2001-03-19 2002-10-23 深圳市中兴集成电路设计有限责任公司 一种快速大数模乘运算电路
CN1696894A (zh) * 2004-05-10 2005-11-16 华为技术有限公司 大数模乘计算乘法器
CN200990078Y (zh) * 2006-07-03 2007-12-12 赵惠溥 快速rsa密码和大数模指数运算的电路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6914983B2 (en) * 2000-12-19 2005-07-05 International Business Machines Corporation Method for checking modular multiplication
US20020116429A1 (en) * 2000-12-19 2002-08-22 International Business Machines Corporation System and method for modular multiplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1375765A (zh) * 2001-03-19 2002-10-23 深圳市中兴集成电路设计有限责任公司 一种快速大数模乘运算电路
CN1696894A (zh) * 2004-05-10 2005-11-16 华为技术有限公司 大数模乘计算乘法器
CN200990078Y (zh) * 2006-07-03 2007-12-12 赵惠溥 快速rsa密码和大数模指数运算的电路

Also Published As

Publication number Publication date
CN102117195A (zh) 2011-07-06

Similar Documents

Publication Publication Date Title
Imran et al. ACryp-Proc: Flexible asymmetric crypto processor for point multiplication
Liu et al. MoTE-ECC: Energy-scalable elliptic curve cryptography for wireless sensor networks
Yeh et al. An energy-efficient dual-field elliptic curve cryptography processor for Internet of Things applications
CN102117195B (zh) 大数模乘器电路
Asif et al. High‐throughput multi‐key elliptic curve cryptosystem based on residue number system
CN100428140C (zh) 椭圆曲线密码体制协处理器的实现方法
CN110049013B (zh) 一种基于sm2和rsa加密算法的加解密系统及工作方法
CN113078996B (zh) Sm4密码算法的fpga优化实现方法、系统及应用
CN113794572A (zh) 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法
CN114615069A (zh) 一种Quartet轻量级加密算法的实现装置及方法
Kashif et al. A hardware efficient elliptic curve accelerator for FPGA based cryptographic applications
CN113114462B (zh) 一种应用于ecc安全硬件电路的小面积标量乘电路
CN103853524A (zh) 一种乘法器装置和实现乘法运算的方法
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
CN101630244A (zh) 一种流水线型椭圆曲线双标量乘法系统及方法
KR20040095526A (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
Zhang et al. Reconfigurable Hardware Implementation of AES-RSA Hybrid Encryption and Decryption
Hu et al. Low-power reconfigurable architecture of elliptic curve cryptography for IoT
CN115276955B (zh) 一种优化的clefia算法线性层实现电路
Wajih et al. Low power elliptic curve digital signature design for constrained devices
CN101567783A (zh) 一种基于ⅱ型高斯基域的椭圆曲线加解密方法和装置
Wang et al. An ultra compact block cipher for serialized architecture implementations
KR102241252B1 (ko) 모듈러 연산 방법, 장치 및 시스템
CN110633574B (zh) 用于电力系统安全传输的椭圆曲线密码学ecc加密模块
CN203119915U (zh) 一种基于硬件加密数据的装置

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