大数模乘器电路的制作方法

文档序号:6582313阅读:138来源:国知局
专利名称:大数模乘器电路的制作方法
技术领域
本发明涉及密码学领域,特别是涉及一种加密解密算法中的重要模块---大数模 乘器的电路结构。
背景技术
近年来,随着信息化社会的发展和密码学商业应用的普及,人们对信息安全和保 密的重要性认识不断提高,密码学受到前所未有的重视。除传统的密码应用系统外,密码 学还应用于提供加密,签名,认证,密钥管理,分配等领域。加解密算法也层出不穷,如 ECC (Elliptic CurvesCryptography,椭圆曲线加密算法),RSA (RSA公开密钥加密算法), DSA (数字签名算法)等。1985年N. Koblitz和Miller提出将椭圆曲线用于密码算法,其根据是有限域 上的椭圆曲线上的点群中的离散对数问题ECDLP (EllipticCurve Discrete Logarithm ftxAlem)。破解椭圆曲线密码体制的时间复杂度是完全指数阶的。与其他加密算法相比,有 抗攻击性强,计算量小,处理速度快,占用资源少,带宽要求低等特点,使得其在保密通信, 数字签名,无线网络等领域有广泛的应用前景。大数模乘运算作为ECC加密算法中的基本运算单元,贯穿ECC算法整个流程。大 数模乘器的性能直接影响到整个ECC处理器的面积和功耗,所以对大数模乘器的改进显得 尤为重要。

发明内容
本发明要解决的技术问题是提供一种大数模乘器电路,能够提高资源利用率,节 省芯片面积。为解决上述技术问题,本发明的大数模乘器电路包括—个二输入与门,其两个输入端分别输入N位数据A[N-1:0]和B的第i位数 据B[i],输出端连接到第三个二选一选择器MUX3的输入端;将B的第i位数据B[i]与 A[N-1:0]中的每一位数据做与运算,S卩如果B[i]为1时,直接将A[N-1:0]作为二输入与 门的运算结果输出到MUX3 ;如果B[i]为0时,则将0作为二输入与门的运算结果输出到 MUX3 ;数据左移1位模块,其输入端连接到N+2位加法器的输出端Dout_c,其输出端连 接到第一个二选一选择器MUXl的输入端;将N+2位加法器的输出结果C左移一位输出到 MUXl ;第一个二选一选择器MUX1,两个输入端分别连接到N+2位加法器的输出端Dout_c 以及数据左移1位模块的输出端,其输出端连接到第二个二选一选择器MUX2的输入端;在 选择与控制模块的控制下,选择N+2位加法器的输出C或者数据左移1位模块的输出2C输 出到第二个二选一选择器MUX2 ;第二个二选一选择器MUX2,其一个输入端连接到第一个二选一选择器MUXl的输出端,另一个输入端输入常数0,其输出端连接到N+2位加法器的输入端Din_a ;在选择与控 制模块的控制下,选择第一个二选一选择器MUXl的输出C或者0输出到N+2位加法器;第三个二选一选择器MUX3,其一个输入端连接到二输入与门的输出端,另一个输 入端输入常数负P(即-P),其输出端连接到N+2位加法器的输入端Din_b ;在选择与控制 模块的控制下,选择二输入与门的输出结果或者常数-P输出到N+2位加法器;N+2位大数加法器,其两个输入端中,Din_a端连接到第二个二选一选择器MUX2的 输出端,0丨11_13端连接到第三个二选一选择器MUX3的输出端,其输出端Dout_c同时连接到 第一个二选一选择器MUXl的输入端、左移1位模块的输入端和大数模乘器的输出端C ;对 其输入的数据进行加法运算,产生的结果由Dout_c端输出;选择与控制模块,包含一个N+2位比较器,用于控制所述三个二选一选择器,以及 整个运算过程的数据流向和运算过程,保证整个电路正常工作;其中,0≤i≤N-I ;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位模块,三个二选一选择器MUXl,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, A0IB = {Bn_1 Bn^2-B1, B0Iρ = {Ph,Pn^P1,p0}C = O输出C=(A*B)modP其中,C= UwCnCcJ运算过程如下UC = O;2、For i = Oto(N-I);3、 {4、C = 2〇+Α*Βν_η ;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,则在选择与
控制模块的控制下,不同时期加法器的输入输出情况如下表所示
Din aDin bDout c第4步i = 00A*B[i]A*B[i]i乒02CA*B[i]2C + A*B[i]第6/8步C-PC+ (-P)当A,B到达时,A的值直接输入模乘器,而B的值由高到低按位输入模乘器,C的 初始值为0,计数器i的初始值为N-1,在选择与控制模块的控制下大数模乘器电路开始运 算,最终的运算结果由大数模乘器电路的输出端C输出。参见图2,所述大数模乘器运算流程是大数模乘器初始化时,A = {A[N-1],… A[1],A
},B = {B [N-1], -B[1],B
},P = {P [N-1],…P [1],P
},累计变量 C 也是 N位数,值为0,下标i的值为N-I ;第一次运算时,大数模乘器输出端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的值送往MUXl,经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位加法器,同时把AB[i]经MUX3送往N+2位加法器,开始下一次的运算;如 果i小于0,说明B中所有数据位都参与了运算,此时运算已经完成,输出运算结果C。由于0彡A,B < P,即有ZC+A^^+i < 3P,故在传统的模乘结构中,用1个N+2位 加法器完成2C+A*Bn_h运算后,为保证2C+A*Bn_H的运算结果小于P,还需两个N+2位的比 较器和两个N+2位的加法器来做求模运算OC+A^Hjmod P。而在本发明中,做求模运算 (2C+A*BN_1_i)mod P时所需的两次加法运算操作复用做2C+A*Bn_h运算的那个N+2位加法 器,同时两次比较操作复用同一个N+2位比较器。选择与控制模块控制三个二选一选择器 来选择加法器的输入数据。由此可知,与现有的技术相比,本发明能节省一个N+2位比较器 和两个N+2位加法器。在安全性要求越来越高的今天,密码体系中操作数的位宽N越来越 大,N+2位宽的加法器和比较器所占用的资源在密码系统中的比重也越来越大,从而使得本 发明所带来的资源节约显得愈发重要。以上通过具体实施方式
对本发明进行了详细的说明,但这些并非构成对本发明的 限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也 应视为本发明的保护范围。
权利要求
1.一种大数模乘器电路,其特征在于,包括一个二输入与门,其两个输入端分别输入N位数据A [N-1 0]和B的第i位数据B [i], 输出端连接到第三个二选一选择器MUX3的输入端;将B的第i位数据B[i]与A[N-1:0]中 的每一位数据做与运算;数据左移1位模块,其输入端连接到N+2位加法器的输出端Dout_c,其输出端连接到第 一个二选一选择器MUXl的输入端;将N+2位加法器的输出结果C左移一位输出到MUXl ;第一个二选一选择器MUX1,两个输入端分别连接到N+2位加法器的输出端Dout_c以及 数据左移1位模块的输出端,其输出端连接到第二个二选一选择器MUX2的输入端;在选择 与控制模块的控制下,选择N+2位加法器的输出C或者数据左移1位模块的输出2C输出到 第二个二选一选择器MUX2 ;第二个二选一选择器MUX2,其一个输入端连接到第一个二选一选择器MUXl的输出端, 另一个输入端输入常数0,其输出端连接到N+2位加法器的输入端Din_a ;在选择与控制模 块的控制下,选择第一个二选一选择器MUXl的输出C或者常数0输出到N+2位加法器;第三个二选一选择器MUX3,其一个输入端连接到二输入与门的输出端,另一个输入端 输入常数-P,其输出端连接到N+2位加法器的输入端Din_b ;在选择与控制模块的控制下, 选择二输入与门的输出结果或者常数-P输出到N+2位加法器;N+2位大数加法器,其两个输入端中,Din_a端连接到第二个二选一选择器MUX2的输出 端,0丨11_13端连接到第三个二选一选择器MUX3的输出端,其输出端Dout_c同时连接到第一 个二选一选择器MUXl的输入端、左移1位模块的输入端和大数模乘器的输出端C ;对其输 入的数据进行加法运算,产生的结果由Dout_c端输出;选择与控制模块,包括一个N+2位比较器,用于控制所述三个二选一选择器,以及整个 运算过程的数据流向和运算过程,保证整个电路正常工作;其中,0彡i彡N-I ;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的值送往MUXl,经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位,经由MUXl,MUX2送往N+2位加法器,同时把AB[i]经MUX3送往N+2位加法 器,开始下一次的运算;如果i小于0,说明B中所有数据位都参与了运算,此时运算已经完 成,输出运算结果C。
全文摘要
本发明公开了一种大数模乘器电路,包括一个二输入与门,一个数据左移1位模块,三个二选一选择器MUX1,MUX2,MUX3;一个N+2位大数加法器;选择与控制模块,包括一个N+2位比较器,用于控制所述三个二选一选择器,以及整个运算过程的数据流向和运算过程,保证整个电路正常工作;在所述选择与控制模块的控制和协调,使得整个电路在满足模乘功能的前提下,实现N+2位比较器和N+2位加法器的复用。本发明能节省大量芯片面积,降低功耗,而且实现过程简单,可用于设计ECC,RSA等加密处理器,适用于在FPGA及ASIC中实现。
文档编号G06F7/72GK102117195SQ20091020205
公开日2011年7月6日 申请日期2009年12月30日 优先权日2009年12月30日
发明者左耀华 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1