基为16的高速Montgomery模乘法器VLSI的制作方法

文档序号:6336974阅读:327来源:国知局
专利名称:基为16的高速Montgomery模乘法器VLSI的制作方法
技术领域
本发明涉及电子电路,具体地,涉及基为16的高速蒙哥马利(Montgomery)模乘法 器超大规模集成电路(VLSI)。
背景技术
目前,互联网的快速发展,使得信息安全技术显得尤为重要,诸如在线购物、网上 银行、数据下载等方面都需要一套身份认证系统。在现代密码学中,公钥制密码体制被用来 完成这一任务,它能够提供如数字签名、身份认证、数据完整性和抗抵赖性等一系列的安全保障。在公钥制密码体制中,应用最为广泛的当属RSA密码算法(RSA密码算法是一种非 对称密码算法)。RSA密码算法简单有效,但是却非常耗时,因为RSA的基本运算是幂运算, 它的操作数长度一般在256 2048bit或者更长,用软件来做1024bit的RSA加密运算,每 秒大概只能完成4 8次模幂运算,无法满足实时性的需求。所以,硬件实现RSA加密算法 成为未来密码产品的主流,也是当前密码学的研究热点。蒙哥马利(Montgomery)模乘算法是目前应用最为广泛的也最为高效的模乘算 法,它将模乘运算中的除法运算替换成移位操作,大大加快了模乘运算的速度和效率。基于 Montgomery(VeryLarge Scale Integrated circuits, 简称VLSI)设计种类比较多,在这些设计中,时钟数开销最少的是高基Montgomery模乘运 算,可扩展性最好的是基于字的Montgomery模乘算法。这里,Montgomery模乘算法,具体 可参见下面的算法1。算法1 =Montgomery模乘算法Input :N、X、Y、Μ、r (r = 2N)Output :S = MM(X, Y) = XYr-1 mod M1. S^1 = 02. For i = 0 to N-I3. Si = Si^xiXY4. Si = S^s0XM5. Si = Sj/26. End For7. If S^1 >= M Then Sn^1 = Sn^1MReturn Sn^1这里的X是乘数,Y是被乘数,M是模数,r是一个等于2N的常数,X、Y、M都是位长 为N的整数。如算法1所示,Montgomery算法采用一系列的移位运算来替代除法,最终的 运算结果是XYr—1 mod M而不是真正的模乘运算结果XY mod Μ。为了实现模乘运算,需要 对初始输入数据进行域转换。Montgomery模乘运算使用一种称为M域的表示形式来表示整 数。比如,将χ (0<χ<Μ)转化成M域的表示形式就成了& = jcr modA/。这样,M域中
3的F等于Xr mod M,M域的Γ等于Yr mod M,M域中的Montgomery模乘运算就成了
F=Frr-1 mod M
_8] =XrYrr^modM=XYr mod M(1)可见,对于M域中的数来说,它们模乘的结果仍然在M域之中,在整数和M域之间 的转换也非常简单,也可以通过Montgomery模乘运算来实现; f = MM (X, ?) = Xr2Y^x mod M = Xr mod M (2)X = MM ,1) = Xrr'1 modM = XmodM (3)这里的r2 mod M是预先计算好的。RSA的加密过程就是求模幂运算过程,而模幂 运算需要大量的模乘运算。在做RSA加密之前需要将操作数先转化到M域,然后再做模幂, 在做完模幂之后再将结果转化到整数域,这样就完成了一次RSA加密。从算法1所示的Montgomery模乘算法中可以看出,做一次N位Montgomery模乘 运算需要N+1个时钟周期。在开始的N个时钟周期中,每个时钟周期都需要做两次N位的 加法和一次右移操作;在最后一个时钟周期,需要做N位的减法和N位的比较判断。可见, Montgomery乘法器每次运算的操作数都是固定长度的,对于N位的Montgomery乘法器,它 只能支持N位的RSA加密运算;同时乘法器每个周期需要处理两次N位的加法,数据通路的 延迟非常大。通过对Montgomery原始算法的分析研究,Montgomery乘法器操作数长度固定,不 能任意扩展操作数长度;乘法器的数据通路延迟达到了 2级N位加法器的延迟,极大地限 制了系统时钟频率;同时乘法运算仍然非常消耗时钟周期数。Tenca-Todorov-Ko9提出 了一种更为有效的Montgomery模乘算法,首先,它采用了基于字的运算,使得Montgomery 模乘运算能扩展到支持任意位长的乘法;其次它采用了 carry-save结构的加法器,使得 关键路径延迟大大降低;最后采用了高基算法,大大节省了做一次加密的时钟周期数目。 Tenca-Todorov-Κο ;的改进算法,具体可参见下面的算法2。算法2 =Tenca-Todorov- Ko 的改进算法Input :N、X、Y、Μ、r (r = 2N)Output :S = MM(X, Y) = XYr-1 mod Ml.S = 0>x_! = O2. For j = O to N-I Step k
n)mod 2k3.==Booth (χ,Η …
4.(ca,S, = S(0)+(qYJXY) (0)
5.%j "=S(O)k-^0X (2k-M(0)-1k_1.
6.(Cb,S(0)) = S(0)+(qMJXM)(0)
7.Fori = 1 to NW-I
8. (Ca,S⑴)=Ca+S ⑴.+ (qYjXY)⑴9. (Cb,S⑴)=Cb+S ⑴.^(QmjXM)⑴10. S"=(S⑴ k-1. .0' ( - ) ^ BPW-1···. kEnd For
ILCa = Ca or Cb12. Sftw-1) = sign ext (Ca, S(丽―1)·+.々)End For13. If S >= M Then S = S-M如算法2所示,k表示基,每次循环读入乘数X的k位,通过Booth编码得到qY,被 乘数Y和模M按字读取(Y⑴表示Y的第i个字,如算法2),故该算法非常容易组织成流水 线的结构。图1给出了 Tenca-Todorov- Κο ;提出的基为8的可扩展Montgomery乘法器结 构。它包括了 η个匪Cell运算单元,每个匪Cell运算单元做两次一个字长的加法(分 别加Υω ,加法器采用carry-save的结构,运算结果传给下一级MM Cell运算单元。 为了使数据通路能支持更高位数的模乘运算,可以通过加入2个N位的FIFO来实现,分别 存储SS’和SC’。在第一个周期,S初始化为0,在模乘运算过程中如果不需要暂存中间结 果,则将输出数据旁路给输入,如果需要暂存数据,则将输出数据输入到FIFO中。如图1和图2所示,Tenca-Todorov-Κο ;提出的基为8,是按字运算的Montgomery 乘法器,并不能应用于各种长度的模乘运算和RSA加密。具体地,在图1中,包括了 N个MM Cell运算单元,每个MM Cell运算单元做两次 一个字长的加法(分别加Υω和M(i)),加法器采用carry-save的结构,运算结果传给下一 级MM Cell运算单元。为了使数据通路能支持更高位数的模乘运算,可以通过加入2个N 位的FIFO来实现,分别存储SS’和SC’。在第一个周期,S初始化为0,在模乘运算过程中 如果不需要暂存中间结果,则将输出数据旁路给输入,如果需要暂存数据,则将输出数据输 入到FIFO中。在图1中,包含了 2个N位的FIFO,如果N的数值非常大则FIFO会占用很大 的面积。从算法2中可以发现,FIFO的作用是保存中间运算结果SS’和SC’的,所以可以 通过预先计算SS’和SC’的和来压缩输入FIFO的数据。在图2中,以w比特作为一个字长为例,它包含了 2个w位的4-to_2加法器,一个 普通加法器,3个6选1选择器,两个解码器及不少于8个w位的寄存器。qY解码器和qM解 码器分别生成系数qY和qM。对于基为8的设计来说,做一次Montgomery模乘需要的时钟
数为
τ _ I 3 * NS *(2 * + 1) + NW + I,NW ^ 2* NS (々) CLKs ~ I Γ N YiNW + 1) + 2 * NS,NW >2* NS 、3 * NS在公式(4)中,NS表示图1中的流水线级数,NW表示Υ、Μ所包含的字的个数,N是 所有操作数的长度。Tenca-Todorov-Κο ;的改进型Montgomery乘法器采用的基为8,并支持密钥长度 可扩展,同时采用按字读取操作数和carry-save加法器,提高了整体的系统性能。可是, Tenca-Todorov-Kog的设计也存在很多不足的方面。首先,采用的基不够合理;其次,MM Cell运算单元的结构没有达到最优化,从图2中可以发现,关键路径(图2中用较长的粗黑 线标识)仍然很长,并且硬件开销比较大;最后,在FIFO设计上,为了存储临时数据SS’和 SC’,需要采用2个存储单元(如图1),增加了存储器的开销。综上所述,在实现本发明的过程中,发明人发现,现有技术中至少存在平均性能低、时钟频率低、硬件开销大与实用性差等缺陷。

发明内容
本发明的目的在于,针对上述问题,提出基为16的高速Montgomery模乘法器 VLSI,以实现平均性能高、时钟频率高、硬件开销小与实用性好的优点。为实现上述目的,本发明采用的技术方案是基为16的高速Montgomery模乘法 器VLSI,包括N个匪Cell运算单元、FIFO存储单元与2选1的数据选择单元,其中在所 述N个匪Cell运算单元中,每个匪Cell运算单元的乘数输入端均与乘数X(i)连接,第一 MM Cell运算单元的控制信号输入端与控制信号连接、被乘数输入端与被乘数Υω连接、模 数输入端与模数^)连接,N个匪Cell运算单元依次串接;第N匪Cell运算单元的输出 端,依次经FIFO存储单元与2选1的数据选择单元后,反馈输入至第一 MMCell运算单元; 所述2选1的数据选择单元的控制信号输入端,与N个MMCell运算单元的控制信号连接; N与i均为整数,X、Y与M都是位长为N的整数。进一步地,所述FIFO存储单元包括W位的加法器、2选1的选择器、1位的进位寄 存器与N位的FIFO存储模块,其中所述W位的加法器的第一输入端及第二输入端,分别与 2选1的选择器的第一输入端及第二输入端连接;第一输出端与N位的FIFO存储模块的输 入端连接,第二输出端经1位的进位寄存器、与W位的加法器的第三输入端连接;所述N位 的FIFO存储模块的输出端,与2选1的选择器的第三输入端连接;2选1的选择器的第四 输入端置0。进一步地,在所述N个匪Cell运算单元中,每个匪Cell运算单元包括四个6选 1数据选择器、两个4-to_2加法器、两个解码器与八个寄存器,其中一个解码器、两个6选 1数据选择器、一个4-to_2加法器与一个寄存器顺序设置。进一步地,所述两个4-to_2加法器均为W位的4-to_2加法器,两个W位的4-to_2 加法器设置在寄存器的两边,用以平衡路径延迟。本发明各实施例的基为16的高速Montgomery模乘法器VLSI,由于包括N个匪 Cell运算单元、FIFO存储单元与2选1的数据选择单元,可以在数据需要输入到FIFO存储 单元的时候,先将输入数据相加,然后输入到FIFO存储单元中;若不需要暂存数据,则将数 据直接旁路给输出。相比现有技术,有利于节省存储开销;从而可以克服现有技术中平均性 能低、时钟频率低、硬件开销大与实用性差的缺陷,以实现平均性能高、时钟频率高、硬件开 销小与实用性好的优点。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中 图1为现有技术中Tenca-Todorov- Ko 提出的基为8的可扩展Montgomery乘法
6器的结构示意图;图2为现有技术中Tenca-Todorov- Ko 提出的基为8的可扩展Montgomery乘法 器中匪Cell运算单元的结构示意图;图3为根据本发明基为16的高速Montgomery模乘法器VLSI中FIFO模块的结构 示意图;图4为根据本发明基为16的高速Montgomery模乘法器VLSI中匪Cell运算单 元的结构示意图;图5为根据本发明基为16的高速Montgomery模乘法器VLSI中RSA协处理器的 结构示意图;图6a为根据本发明基为16的高速Montgomery模乘法器VLSI的测试芯片的外部 结构示意图;图6b为根据本发明基为16的高速Montgomery模乘法器VLSI的测试芯片的参数 指标示意图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实 施例仅用于说明和解释本发明,并不用于限定本发明。根据本发明实施例,提供了基为16的高速Montgomery模乘法器VLSI。如图3_图 6b所示,本实施例包括N个MM Cell运算单元、FIFO存储单元与2选1的数据选择单元,其 中在N个匪Cell运算单元中,每个匪Cell运算单元的乘数输入端均与乘数Χω连接, 第一 MM Cell运算单元的控制信号输入端与控制信号连接、被乘数输入端与被乘数Υω连 接、模数输入端与模数Μω连接,N个匪Cell运算单元依次串接;第N匪Cell运算单元 的输出端,依次经FIFO存储单元与2选1的数据选择单元后,反馈输入至第一 MM Cell运 算单元;2选1的数据选择单元的控制信号输入端,与N个MM Cell运算单元的控制信号连 接;N与i均为整数,X、Y与M都是位长为N的整数。进一步地,在上述实施例中,FIFO存储单元包括W位的加法器、2选1的选择器、1 位的进位寄存器与N位的FIFO存储模块,其中W位的加法器的第一输入端及第二输入端, 分别与2选1的选择器的第一输入端及第二输入端连接;第一输出端与N位的FIFO存储 模块的输入端连接,第二输出端经1位的进位寄存器、与W位的加法器的第三输入端连接; N位的FIFO存储模块的输出端,与2选1的选择器的第三输入端连接;2选1的选择器的第 四输入端置O。具体地,如图3所示,FIFO存储单元包含一个W位的加法器、一个2选1的选择器、 一个1位的进位寄存器和一个N位的FIFO存储模块,在数据需要输入到FIFO存储模块的 时候,先将输入数据相加,然后输入到FIFO存储模块中;若不需要暂存数据,则将数据直接 旁路给输出。与图1所示的现有技术相比,这样可以节省近一半的存储开销。进一步地,在上述实施例中,在N个匪Cell运算单元中,如图4所示,每个匪Cell 运算单元包括四个6选1数据选择器、两个4-to-2加法器、两个解码器与八个寄存器,其 中一个解码器、两个6选1数据选择器、一个4-to-2加法器与一个寄存器顺序设置。这里,与图2所示的现有技术不同的是,两个4-to_2加法器均为W位的4_t0_2加法器,两个W位的4-to_2加法器设置在寄存器的两边,用以平衡路径延迟。对于基为16的 高速Montgomery模乘法器VLSI来说,乘数X每次扫描4位,经Booth编码后得到5位的输 入数据,被乘数Y和模M每次输入一个字。乘数X的Booth编码如公式(5)所示X⑴=(xi+3, xi+2,xi+1,Xi, χ』(5)在公式(5)中,Xi^1是前一次扫描的数据最高位。乘数X(i)通过qY解码器得到qY 的值,其值等于公式(6)qY = -8xi+3+4xi+2+2xi+1+xi+xi_1(6)可以发现,qY在[_8,8]范围内,为了方便计算S(°) + (qYj X Y) (°)(算法2中第4步), 可以将其分解为两个2的幂级数来实现,如图4中ΥωΡ和Y(i)N所示。举例来说,假如qγ等 于3,可以将其分解为2和1,或者4和-1,这样3Y就可以通过2Y+Y或者4Y-Y来实现,而 2Y、4Y不需要通过做乘法得到,可以由Y的移位来得到。对于4-to-2加法器来说,其输入 是两个carry-save形式的操作数,其输出是一个carry-save形式的加法结果,所以可以将 2Y、Y或者4Υ、-Υ直接输入到4-to-2加法器,而不需要去真正做一次加法或者减法。这样, 可以通过对qY建立一张查找表来简化计算。qY查找表如表1所示。表1 解码表
权利要求
基为16的高速Montgomery模乘法器VLSI,其特征在于,包括N个MM Cell运算单元、FIFO存储单元与2选1的数据选择单元,其中在所述N个MM Cell运算单元中,每个MM Cell运算单元的乘数输入端均与乘数X(i)连接,第一MM Cell运算单元的控制信号输入端与控制信号连接、被乘数输入端与被乘数Y(i)连接、模数输入端与模数M(i)连接,N个MM Cell运算单元依次串接;第N MM Cell运算单元的输出端,依次经FIFO存储单元与2选1的数据选择单元后,反馈输入至第一MM Cell运算单元;所述2选1的数据选择单元的控制信号输入端,与N个MM Cell运算单元的控制信号连接;N与i均为整数,X、Y与M都是位长为N的整数。
2.根据权利要求1所述的基为16的高速Montgomery模乘法器VLSI,其特征在于,所 述FIFO存储单元包括W位的加法器、2选1的选择器、1位的进位寄存器与N位的FIFO存 储模块,其中所述W位的加法器的第一输入端及第二输入端,分别与2选1的选择器的第一输入端 及第二输入端连接;第一输出端与N位的FIFO存储模块的输入端连接,第二输出端经1位 的进位寄存器、与W位的加法器的第三输入端连接;所述N位的FIFO存储模块的输出端,与2选1的选择器的第三输入端连接;2选1的 选择器的第四输入端置0。
3.根据权利要求1或2所述的基为16的高速Montgomery模乘法器VLSI,其特征在于, 在所述N个匪Cell运算单元中,每个匪Cell运算单元包括四个6选1数据选择器、两个 4-to-2加法器、两个解码器与八个寄存器,其中一个解码器、两个6选1数据选择器、一个 4-to-2加法器与一个寄存器顺序设置。
4.根据权利要求3所述的基为16的高速Montgomery模乘法器VLSI,其特征在于,所 述两个4-to-2加法器均为W位的4-to-2加法器,两个W位的4-to-2加法器设置在寄存器 的两边,用以平衡路径延迟。
全文摘要
本发明公开了基为16的高速Montgomery模乘法器VLSI,包括N个MMCell运算单元、FIFO存储单元与2选1的数据选择单元。本发明所述基为16的高速Montgomery模乘法器VLSI,可以克服现有技术中平均性能低、时钟频率低、硬件开销大与实用性差等缺陷,以实现平均性能高、时钟频率高、硬件开销小与实用性好的优点。
文档编号G06F7/72GK101986261SQ20101056345
公开日2011年3月16日 申请日期2010年11月27日 优先权日2010年11月27日
发明者方井霞, 范益波, 袁帅 申请人:无锡高枕科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1