一种蒙哥马利模乘器的制作方法

文档序号:6455258阅读:482来源:国知局
专利名称:一种蒙哥马利模乘器的制作方法
技术领域
本实用新型涉及一种模乘器,更具体地说,涉及一种一维的具有多级处理单元PE(Processing Element)的可以实现蒙哥马利模乘运算的蒙哥马利模乘器。
RSA加密算法是由R.L.Riverst、A.Shamir和L.Adleman提出并用三个人名命名的算法。在使用该加密算法的系统中,对于每个用户而言对应着三个很大的整数模数M、加密指数e和解密指数d,一般其二进制表示的位数为512位或1024位,位数越大所加密的信息越难破解。这三个二进制整数之间有着特殊的关系,其中模数M和加密指数e是公开的,d是保密的,由用户保存,M是模数,加密指数e和模数M是加密密钥对,解密指数d和模数M是解密密钥对。当向某用户发送信息C时,利用对应该用户的加密密钥e,对信息C加密再发向该用户,这里C为明文,E为密文,加密过程可表示为E=CemodM;当用户接到密文信息E后,用对应该用户的解密密钥d对其解密可恢复明文信息CC=EdmodM。
可见,加密/解密过程涉及大数的模幂运算。按照指数扫描算法模幂运算可分解为多次模乘运算。大数模乘可以由蒙哥马利模乘来实现,所以蒙哥马利模乘是RSA加密算法的核心运算。这种运算很复杂,用软件实现速度慢,难于满足应用时的速度要求,采用硬件方法实现RSA加密运算可大大降低运算时间,提高运算性能。美国专利US6,061,706提出了一种蒙哥特马利模乘运算硬件电路,由基本处理单元连接而成,在时钟信号控制下进行迭代运算,该电路完成模数长度为n位的蒙哥马利模乘运算需要2n+11个时钟周期,虽然相对而言运算时间有所减少,但该电路完成模长为n位的蒙哥马利模乘运算需要2n+11个时钟周期,运算时间仍比较长。
本实用新型所要解决的问题可以通过以下技术方案来解决算法I是一种蒙哥马利算法的变形,是所述蒙哥马利模乘器的实现基础。
算法I如下输入基b=2k;模数M,n位的模数,在基b下的表示为 操作数A,n位的操作数,在基b下的表示为 操作数B,n位的操作数,在基b下的表示为 M<R=2km,R为预计算因子;M’=-M-1mod2k,gcd(2k,M)=1;输出Sm=ABR-1modM;计算步骤如下1、SO=02、FOR i=0 to m-1 DO3、qi=(((Si+aiB)mod 2k)M’)mod 2k4、Si+1=(Si+qiM+aiB)/2k5、END FOR
6、IF Sm≥M RETURN(Sm-M)ELSE RETURN Sm其中n为模数的二进制表示位长度(简称为模数长度),k为基b的二进制表示位数,通常基b≥1,m=[n/k],[n/k]表示不小于n/k的最小整数。
一种蒙哥马利模乘器,由m+3个结构相同的处理单元PE连接而成,其特征在于所述处理单元包括运算电路、用于计算蒙哥马利模乘运算预计算因子并对运算电路链的最终计算结果进行后处理的预计算/后处理电路;所述运算电路的输入端与所述预计算/后处理电路的输出端相连接,运算电路的输出端与预计算/后处理电路的输入端相连接;其中m=[n/k],[n/k]表示不小于n/k的最小整数,n为模数的二进制表示位长度(简称为模数长度),k为基b的二进制表示位数,通常基b≥1。
总线信号M_Bus同时输入所有处理单元PE0、PE1、……、PEm+2,模数的相应数据位通过该总线输入到各处理单元中。
第1个处理单元PEO的输入信号包括ai[0]、qi[0]、r[0]、s[0]、M[0]、A[0]、B[0]、C[0]、D[0],其中输入信号A[0]、B[0]、C[0]、D[0]、M[0]都被设置为0;信号r、信号s为第1个处理单元PE0的输出信号。第1个处理单元PE0的输出信号ai[1]、qi[1]、A[1]、B[1]、C[1]、D[1]、M[1]以及第3个处理单元的输出信号r[1]、s[1]作为第2个处理单元PE1的输入信号;第2个处理单元PE1的输出信号r[0]、s[0]作为第1处理单元PE0的输入信号,第2个处理单元PE1的输出信号ai[2]、qi[2]、A[2]、B[2]、C[2]、D[2]、M[2]作为第3个处理单元PE2的输入信号。
第j个处理单元PEj-1的输出信号ai[j]、qi[j]、A[j]、B[j]、C[j]、D[j]、M[j]以及第j+2个处理单元PEj+1的输出信号r[j]、s[j]作为第j+1个处理单元PEj的输入信号;第j+1个处理单元PEj的输出信号r[j-1]、s[j-1]作为第j个处理单元PEj-1的输入信号,第j+1个处理单元PEj的输出信号ai[j+1]、qi[j+1]、A[j+1]、B[j+1]、C[j+1]、D[j+1]、M[j+1]作为第j+2个处理单元PEj+1的输入信号;其中j=1,2,3,……,m+1。第m+3个处理单元PEm+2的输入信号r[m+2]、s[m+2]设置为0,输出信号M[m+2]的输出端口不与其它端口连接。
构成蒙哥马利模乘器的所有处理单元的预计算/后处理电路构成一个预计算/后处理电路链,所有处理单元的运算电路构成一个运算电路链;预计算/后处理电路链用于计算蒙哥马利模乘运算的预计算因子并对运算电路链的最终计算结果进行后处理。
所述处理单元的预计算/后处理电路包括预计算因子寄存器,用于保存预计算因子计算过程的中间值或最终的预计算因子;多路选择器,用于选择是进行预计算过程还是后处理过程;减法电路,作为预计算/后处理过程的运算单元;预计算因子寄存器的输出端与多路选择器的输入端相连接,预计算因子寄存器的输出端与运算电路相连接,多路选择器的输出端与减法电路的输入端相连接,减法电路的输出端与预计算因子寄存器的输入端相连接,运算电路的输出端与多路选择器的输入端相连接。
所述处理单元运算电路包括6个寄存器、3个加法器、2个乘法器、2个多路选择器、3个对数据进行拆分的拆分器;运算电路的寄存器包括操作数寄存器A_reg、B_reg、Q_reg、模数寄存器M_reg、输出寄存器Res_reg、结果寄存器S_reg。
预计算/后处理电路的输出端与第一多路选择器的输入端相连接;第一多路选择器的输出端与操作数寄存器B_reg的输入端相连接;操作数寄存器B_reg的输出信号分别输入到预计算/后处理电路、第一乘法器、第二多路选择器;第一乘法器的输出端与第一拆分器的输入端相连接;第一拆分器将输入数据的数据位平均拆分为高位和低位,第一拆分器的高位输出信号A[j+1]输入到处理单元PEj+1(其中j=1,2,……,m+1),第一拆分器的低位输出端与第一加法器的输入端相连接;处理单元PEj-1的输出信号A[j]输入到第一加法器,第一加法器的输出端与第三加法器的输入端相连接;第三加法器的输出端与结果寄存器S_reg的输入端相连接,处理单元PEj-1的输出信号C[j]输入到第三加法器,处理单元PEj+1的输出信号s[j]输入到第三加法器;结果寄存器S_reg的输出端与第三拆分器的输入端相连接;第三拆分器对结果寄存器S_reg的数据进行拆分,第三拆分器将输入数据的数据位拆分为高位和低位,其中高位数据为2位,拆分后得到的低位数据s[j-1]分别输入到第一、二多路选择器及处理单元PEj-1,高位数据C[j+1]输入到处理单元PEj+1;总线信号M_bus输入到操作数寄存器M_reg,操作数寄存器M_reg的输出信号M[j+1]分别输入到第二乘法器、处理单元PEj+1;第二乘法器的输出端与第二拆分器的输入端相连接;第二拆分器将输入数据的数据位平均拆分为高位和低位,第二拆分器的高位输出信号B[j+1]输入到处理单元PEj+1,第二拆分器的低位输出端与第二加法器的输入端相连接;处理单元PEj-1的输出信号B[j]输入到第二加法器,第二加法器的输出端与第三加法器的输入端相连接;处理单元PEj-1的输出信号ai[j]、qi[j]分别输入到操作数寄存器A_reg、Q_reg,操作数寄存器A_reg的输出信号ai[j+1]分别输入第一乘法器、处理单元PEj+1,操作数寄存器Q_reg的输出信号qi[j+1]分别输入第二乘法器、处理单元PEj+1;第二多路选择器输出端与输出寄存器Res_reg的输入端相连接,来自处理单元PEj+1的信号r[j]输入到第二多路选择器;输出寄存器Res_reg的输出信号r[j-1]输入到处理单元PEj-1;来自处理单元PEj-1的信号D[j]、M[j]输入预计算/后处理电路,预计算/后处理电路的输出信号D[j+1]输入到处理单元PEj+1。
与现有技术相比,由于我们采用处理单元构成的一维心动阵列来实现蒙哥马利模乘器模乘器,同时将预计算/后处理用硬件实现,并将预计算/后处理电路集成到处理单元中,既提高数据的处理速度,也可以简化外部的计算量。采用心动阵列可以实现并行计算,构成心动阵列的每个处理单元一次可以处理k个数据位,完成一次模数长度为n位的蒙哥马利模乘运算只需2n/k个时钟,使运算时间缩短,运算性能提高。
算法I是一种蒙哥马利算法的变形,是所述蒙哥马利模乘器的实现基础。
算法I如下输入基b=2k;
模数M,n位的模数,在基b下的表示为 操作数A,n位的操作数,在基b下的表示为 操作数B,n位的操作数,在基b下的表示为 M<R=2km,R为预计算因子;M’=-M-1mod2k,gcd(2k,M)=1;输出Sm=ABR-1mod M;计算步骤如下7、SO=08、FOR i=0 to m-1 DO9、qi=(((Si+aiB)mod 2k)M’)mod 2k10、Si+1=(Si+qiM+aiB)/2k11、END FOR12、IF Sm≥M RETURN(Sm-M)ELSE RETURN Sm其中n为模数的二进制表示位长度(简称为模数长度),k为基b的二进制表示位数,通常基b≥1,m=[n/k],[n/k]表示不小于n/k的最小整数。


图1所示蒙哥马利模乘器由一维心动阵列构成,心动阵列由处理单元构成,各处理单元的结构相同,构成心动阵列的处理单元个数为m+3个,其中m=[n/k],[n/k]表示不小于n/k的最小整数,n为模数的二进制表示位长度(简称为模数长度),k为基b的二进制表示位数,通常基b≥1。
总线信号M_Bus同时输入所有处理单元PE0、PE1、……、PEm+2,模数的相应数据位通过该总线输入到各处理单元中。
第1个处理单元PE0的输入信号包括ai[0]、qi[0]、r[0]、s[0]、M[0]、A[0]、B[0]、C[0]、D[0],其中输入信号A[0]、B[0]、C[0]、D[0]、M[0]都被设置为0;信号r、信号s为第1个处理单元PE0的输出信号。第1个处理单元PE0的输出信号ai[1]、qi[1]、A[1]、B[1]、C[1]、D[1]、M[1]以及第3个处理单元的输出信号r[1]、s[1]作为第2个处理单元PE1的输入信号;第2个处理单元PE1的输出信号r[0]、s[0]作为第1处理单元PE0的输入信号,第2个处理单元PE1的输出信号ai[2]、qi[2]、A[2]、B[2]、C[2]、D[2]、M[2]作为第3个处理单元PE2的输入信号。
第j个处理单元PEj-1的输出信号ai[j]、qi[j]、A[j]、B[j]、C[j]、D[j]、M[j]以及第j+2个处理单元PEj+1的输出信号r[j]、s[j]作为第j+1个处理单元PEj的输入信号;第j+1个处理单元PEj的输出信号r[j-1]、s[j-1]作为第j个处理单元PEj-1的输入信号,第j+1个处理单元PEj的输出信号ai[j+1]、qi[j+1]、A[j+1]、B[j+1]、C[j+1]、D[j+1]、M[j+1]作为第j+2个处理单元PEj+1的输入信号;其中j=1,2,3,……,m+1。第m+3个处理单元PEm+2的输入信号r[m+2]、s[m+2]设置为0,输出信号M[m+2]的输出端口不与其它端口连接。
如图2所示,以蒙哥马利模乘器的处理单元PEm为例,蒙哥马利模乘器的处理单元包括运算电路、用于计算蒙哥马利模乘运算的预计算因子并对运算电路链的最终计算结果进行后处理的预计算/后处理电路;所述运算电路的输入端与所述预计算/后处理电路的输出端相连接,运算电路的输出端与预计算/后处理电路的输入端相连接。
下面简单讲一下处理单元的运算电路及预计算/后处理电路的信号流向。运算电路的输入信号包括ai[m]、qi[m]、A[m]、B[m]、C[m]、r[m]、s[m]、M_bus,对应的输出信号为ai[m+1]、qi[m+1]、A[m+1]、B[m+1]、C[m+1]、r[m-1]s[m-1]、M[m+1];运算电路的输入信号还包括来自预计算/后处理电路的信号Pre_out。预计算/后处理电路的输入信号包括D[m]、M[m]及来自运算电路的信号B_In,输出信号为D[m+1]。
构成蒙哥马利模乘器的所有处理单元的预计算/后处理电路构成一个预计算/后处理电路链,所有处理单元的运算电路构成一个运算电路链;预计算/后处理电路链用于计算蒙哥马利模乘运算的预计算因子并对运算电路链的最终计算结果进行后处理。运算电路链用于实现算法I中的循环计算。
如图3所示,以蒙哥马利模乘器的处理单元PEm为例,蒙哥马利模乘器处理单元的预计算/后处理电路包括预计算因子寄存器、多路选择器、减法电路;预计算因子寄存器用于保存预计算因子计算过程的中间值或最终的预计算因子,多路选择器用于选择是进行预计算过程还是后处理过程,减法电路作为预计算/后处理过程的运算单元。
预计算因子寄存器的输出端与多路选择器的输入端相连接,预计算因子寄存器的输出信号Pre_out输入到运算电路;多路选择器的输出端与减法电路的输入端相连接;减法电路的输出端与预计算因子寄存器的输入端相连接,减法电路的输入信号还包括来自其它处理单元的信号M[m];运算电路的输出端与多路选择器的输入端相连接。
如图4所示,以模数长度为16、基为16(长度为4比特,即基的二进制表示位数为4位)的蒙哥马利模乘器为例,此时蒙哥马利模乘器心动阵列的处理单元的个数为7个,这7个处理单元分别为PE0、PE1、……、PE6,各处理单元的结构相同。
总线信号M_Bus同时输入所有处理单元PE0、PE1、……、PE6,模数的相应数据位通过该总线输入到各处理单元中。
第1个处理单元PE0的输入信号包括ai[0]、qi[0]、r[0]、s[0]、M[0]、A[0]、B[0]、C[0]、D[0],其中输入信号A[0]、B[0]、C[0]、D[0]、M[0]都被设置为0;信号r、信号s为第1个处理单元PE0的输出信号。第1个处理单元PE0的输出信号ai[1]、qi[1]、A[1]、B[1]、C[1]、D[1]、M[1]以及第3个处理单元的输出信号r[1]、s[1]作为第2个处理单元PE1的输入信号;第2个处理单元PE1的输出信号r[0]、s[0]作为第1处理单元PE0的输入信号,第2个处理单元PE1的输出信号ai[2]、qi[2]、A[2]、B[2]、C[2]、D[2]、M[2]作为第3个处理单元PE2的输入信号。
第4个处理单元PE3的输出信号r[2]、s[2]作为第3个处理单元PE2的输入信号;第3个处理单元PE2的输出信号r[1]、s[1]作为第2个处理单元PE1的输入信号,第3个处理单元PE2的输出信号ai[3]、qi[3]、A[3]、B[3]、C[3]、D[3]、M[3]作为第4个处理单元PE3的输入信号。
第5个处理单元PE4的输出信号r[3]、s[3]作为第4个处理单元PE3的输入信号;第4个处理单元PE3的输出信号r[2]、s[2]作为第3个处理单元PE2的输入信号,第4个处理单元PE3的输出信号ai[4]、qi[4]、A[4]、B[4]、C[4]、D[4]、M[4]作为第5个处理单元PE4的输入信号。
第6个处理单元PE5的输出信号r[4]、s[4]作为第5个处理单元PE4的输入信号;第5个处理单元PE4的输出信号r[3]、s[3]作为第4个处理单元PE3的输入信号,第5个处理单元PE4的输出信号ai[5]、qi[5]、A[5]、B[5]、C[5]、D[5]、M[5]作为第6个处理单元PE5的输入信号。
第7个处理单元PE6的输入信号r[6]、s[6]设置为0,输出信号M[6]的输出端口不与其它端口连接。此蒙哥马利模乘器在特定的外部控制时序的控制下可以快速的进行RSA算法的模幂计算。
图5为模数长度为16、基为16的蒙哥马利模乘器处理单元的详细框图,处理单元PE0、PE1、……、PE6包括运算电路、预计算/后处理电路;所述运算电路包括6个寄存器、3个加法器、2个乘法器、2个多路选择器、3个对数据进行拆分的拆分器;运算电路的寄存器包括4位的操作数寄存器A_reg、B_reg、Q_reg、4位的模数寄存器M_reg、4位的输出寄存器Res_reg、6位的结果寄存器S_reg。
预计算/后处理电路的输出端与第一多路选择器的输入端相连接;第一多路选择器的输出端与操作数寄存器B_reg的输入端相连接;操作数寄存器B_reg的输出信号分别输入到预计算/后处理电路、第一乘法器、第二多路选择器;第一乘法器的输出端与第一拆分器的输入端相连接;第一拆分器将输入数据的数据位平均拆分为高位和低位,第一拆分器的高位输出信号A[j+1]输入到处理单元PEj+1,第一拆分器的低位输出端与第一加法器的输入端相连接;处理单元PEj-1的输出信号A[j]输入到第一加法器,第一加法器的输出端与第三加法器的输入端相连接;第三加法器的输出端与结果寄存器S_reg的输入端相连接,处理单元PEj-1的输出信号C[j]输入到第三加法器,处理单元PEj+1的输出信号s[j]输入到第三加法器;结果寄存器S_reg的输出端与第三拆分器的输入端相连接;第三拆分器对结果寄存器S_reg的数据进行拆分,第三拆分器将输入数据的数据位拆分为高位和低位,其中高位数据为2位,拆分后得到的低位数据s[j-1]分别输入到第一、二多路选择器及处理单元PEj-1,高位数据C[j+1]输入到处理单元PEj+1;总线信号M_bus输入到操作数寄存器M_reg,操作数寄存器M_reg的输出信号M[j+1]分别输入到第二乘法器、处理单元PEj+1;第二乘法器的输出端与第二拆分器的输入端相连接;第二拆分器将输入数据的数据位平均拆分为高位和低位,第二拆分器的高位输出信号B[j+1]输入到处理单元PEj+1,第二拆分器的低位输出端与第二加法器的输入端相连接;处理单元PEj-1的输出信号B[j]输入到第二加法器,第二加法器的输出端与第三加法器的输入端相连接;处理单元PEj-1的输出信号ai[j]、qi[j]分别输入到操作数寄存器A_reg、Q_reg,操作数寄存器A_reg的输出信号ai[j+1]分别输入第一乘法器、处理单元PEj+1,操作数寄存器Q_reg的输出信号qi[j+1]分别输入第二乘法器、处理单元PEj+1;第二多路选择器输出端与输出寄存器Res_reg的输入端相连接,来自处理单元PEj+1的信号r[j]输入到第二多路选择器;输出寄存器Res_reg的输出信号r[j-1]输入到处理单元PEj-1。来自处理单元PEj-1的信号D[j]、M[j]输入预计算/后处理电路,预计算/后处理电路的输出信号D[j+1]输入到处理单元PEj+1。
第二多路选择器与输出寄存器Res_reg构成输出电路,蒙哥马利模乘器心动阵列所有处理单元的输出电路构成一个输出链,该输出链输出中间计算结果或者最终计算结果。
此蒙哥马利模乘器在特定的外部控制时序的控制下可以快速的进行RSA算法的模幂计算。
操作数寄存器B_reg保存操作数B或中间的计算结果或最终的计算结果。模数寄存器M_reg保存做模数M或模数M的变换形式M’。另一个操作数A输入并保存在操作数寄存器A_reg中,算法I计算步骤3中的qi输入并保存在操作数寄存器Q_reg,这两个值分别与操作数寄存器A_reg、模数寄存器M_reg中保存的值相乘,将得到的结果分别拆分出A[j+1]和B[j+1]输出给下一个处理单元,拆分出的另一部分分别与输入的来自上一个处理单元的A[j]和B[j]相加,两次加法运算得到的结果与来自下一个处理单元的s[j]以及来自上一个单元的进位C[j]相加,相加得到的和寄存在结果寄存器S_reg中。结果寄存器S_reg的输出分成两部分,一部分做s[j-1]输出给上一个处理单元,一部分做C[j+1]输出给下一个处理单元。
在计算开始时,操作数寄存器B_reg保存的是预计算因子的4位数据,在计算过程中寄存器B_reg保存中间值的4位数据,在计算结束时,寄存器B_reg保存的是结果的4位数据。模数寄存器M_reg保存的是模数的4位数据。操作数寄存器A_reg保存的是操作数的4位数据。操作数寄存器Q_reg保存的是商q的4位数据。结果寄存器S_reg保存的是该处理单元中各运算单元最终的运算结果,该寄存结果的低4位保存到寄存器B_reg中,高两位作为进位输出给心动阵列中的下一个处理单元。
操作数ai和qi相应的数据位(4位)作为输入信号ai[j]、qi[j]分别输入到处理单元内部的操作数寄存器A_reg和Q_reg中,操作数寄存器A_reg保存的值作为输出信号ai[j+1]输出给处理单元PEj+1的同时输出给操作数寄存器B_reg,并与操作数寄存器B_reg中保存的值相乘。操作数寄存器A_reg和操作数寄存器B_reg都是4位,相乘的结果为8位,乘积由第一拆分器进行拆分,分成高4位和低4位,低4位作为第一加法器的一个输入信号,高4位作为输出信号A[j+1]输出给下一个处理单元PEj+1。保存在模数寄存器M_reg中的模数作为输出信号M[j+1]输出给处理单元PEj+1的同时输出给操作数寄存器Q_reg,并与保存在操作数寄存器Q_reg中的值相乘,操作数寄存器Q_reg和模数寄存器M_reg都是4位的,相乘的结果为8位。乘积由第二拆分器进行拆分,分成高4位和低4位,低4位作为第二加法器的一个输入信号,高4位作为输出信号A[j+1]输出给下一个处理单元PEj+1。第一加法器的另一个输入信号为A[j],A[j]是4位的信号,相加的结果为5位,将该结果输入给第三加法器。第二加法器的另一个输入信号为B[j],B[j]是4位的信号,相加的结果为5位,将该结果输入给第三加法器。第三加法器还有两个输入信号s[j]和C[j],其中s[j]是4位的信号,C[j]是2位的信号,第三加法器的和为6位,相加得到的和寄存在结果寄存器S_reg中。第三拆分器对寄存器S_reg的6位数据作拆分,高两位作为输出信号C[j+1]输出下一个处理单元PEj+1,低4位作为输出信号s[j-1]输出给处理单元PEj-1、第一、二多路选择器。
每个处理单元用来完成算法I计算步骤4中Si+qiM+aiB的部分位的计算,构成模乘器心动阵列的所有处理单元则完成整个运算的全部位的计算。由于处理单元PEj的计算结果s[j-1](对于处理单元PE0该结果用s表示)是输出给编号小于本处理单元编号的处理单元,这种结构实现了算法I计算步骤4中的除法运算。
当输入完所有的操作数数据位后,计算结果s[j-1](对于处理单元PE0该结果用s表示)通过处理单元内部的数据通路保存到操作数寄存器B_reg中,然后该数据输入预计算/后处理电路进行后处理。后处理的结果保存到操作数寄存器B_reg中。该结果通过第二多路选择器输出到输出链中,经过一级一级的传递最后在处理单元PE0输出。
权利要求1.一种蒙哥马利模乘器,由m+3个结构相同的处理单元PE(ProcessingElement)连接而成,其特征在于所述处理单元包括运算电路、用于计算蒙哥马利模乘运算的预计算因子并对运算电路链的最终计算结果进行后处理的预计算/后处理电路;所述运算电路的输入端与所述预计算/后处理电路的输出端相连接,运算电路的输出端与预计算/后处理电路的输入端相连接;其中m=[n/k],[n/k]表示不小于n/k的最小整数,n为模数的二进制表示位长度,简称为模数长度,k为基b的二进制表示位数,通常基b≥1。
2.如权利要求1所述的蒙哥马利模乘器,其特征在于构成蒙哥马利模乘器的所有处理单元的预计算/后处理电路构成一个预计算/后处理电路链,所有处理单元的运算电路构成一个运算电路链;预计算/后处理电路链用于计算蒙哥马利模乘运算的预计算因子并对运算电路链的最终计算结果进行后处理。
3.如权利要求1所述的蒙哥马利模乘器,其特征在于,所述预计算/后处理电路包括预计算因子寄存器,用于保存预计算因子计算过程的中间值或最终的预计算因子;多路选择器,用于选择是进行预计算过程还是后处理过程;减法电路,作为预计算/后处理过程的运算单元;预计算因子寄存器的输出端与多路选择器的输入端相连接,多路选择器的输出端与减法电路的输入端相连接,减法电路的输出端与预计算因子寄存器的输入端相连接。
4.如权利要求3所述的蒙哥马利模乘器,其特征在于所述预计算因子寄存器的输出端与运算电路相连接,所述多路选择器的输入端与运算电路的输出端相连接。
5.如权利要求1所述的蒙哥马利模乘器,其特征在于所述运算电路包括6个寄存器、3个加法器、2个乘法器、2个多路选择器、3个对数据进行拆分的拆分器;运算电路的寄存器包括操作数寄存器A_reg、B_reg、Q_reg、模数寄存器M_reg、输出寄存器Res_reg、结果寄存器S_reg;预计算/后处理电路的输出端与第一多路选择器的输入端相连接;第一多路选择器的输出端与操作数寄存器B_reg的输入端相连接;操作数寄存器B_reg的输出信号分别输入到预计算/后处理电路、第一乘法器、第二多路选择器;第一乘法器的输出端与第一拆分器的输入端相连接;第一拆分器的高位输出信号A[j+1]输入到处理单元PEj+1(其中j=1,2,……,m+1),第一拆分器的低位输出端与第一加法器的输入端相连接;处理单元PEj-1的输出信号A[j]输入到第一加法器,第一加法器的输出端与第三加法器的输入端相连接;第三加法器的输出端与结果寄存器S_reg的输入端相连接,处理单元PEj-1的输出信号C[j]输入到第三加法器,处理单元PEj+1的输出信号s[j]输入到第三加法器;结果寄存器S_reg的输出端与第三拆分器的输入端相连接;第三拆分器对结果寄存器S_reg的数据进行拆分,拆分后得到的低位数据s[j-1]分别输入到第一、二多路选择器及处理单元PEj-1,高位数据C[j+1]输入到处理单元PEj+1;总线信号M_bus输入到操作数寄存器M_reg,操作数寄存器M_reg的输出信号M[j+1]分别输入到第二乘法器、处理单元PEj+1;第二乘法器的输出端与第二拆分器的输入端相连接;第二拆分器的高位输出信号B[j+1]输入到处理单元PEj+1,第二拆分器的低位输出端与第二加法器的输入端相连接;处理单元PEj-1的输出信号B[j]输入到第二加法器,第二加法器的输出端与第三加法器的输入端相连接;处理单元PEj-1的输出信号ai[j]、qi[j]分别输入到操作数寄存器A_reg、Q_reg,操作数寄存器A_reg的输出信号ai[j+1]分别输入第一乘法器、处理单元PEj+1,操作数寄存器Q_reg的输出信号qi[j+1]分别输入第二乘法器、处理单元PEj+1;第二多路选择器输出端与输出寄存器Res_reg的输入端相连接,来自处理单元PEj+1的信号r[j]输入到第二多路选择器;输出寄存器Res_reg的输出信号r[j-1]输入到处理单元PEj-1;来自处理单元PEj-1的信号D[j]、M[j]输入预计算/后处理电路,预计算/后处理电路的输出信号D[j+1]输入到处理单元PEj+1。
6.如权利要求5所述的蒙哥马利模乘器,其特征在于所述运算电路操作数寄存器A_reg、B_reg、Q_reg为4位、模数寄存器M_reg为4位、输出寄存器Res_reg为4位、结果寄存器S_reg为6位。
7.如权利要求5所述的蒙哥马利模乘器,其特征在于所述第二多路选择器与输出寄存器Res_reg构成输出电路,蒙哥马利模乘器心动阵列所有处理单元的输出电路构成一个输出链,该输出链输出中间计算结果或者最终计算结果。
8.如权利要求5所述的蒙哥马利模乘器,其特征在于第一拆分器将输入数据的数据位平均拆分为高位和低位。
9.如权利要求5所述的蒙哥马利模乘器,其特征在于第二拆分器将输入数据的数据位平均拆分为高位和低位。
10.如权利要求5所述的蒙哥马利模乘器,其特征在于第三拆分器将输入数据的数据位拆分为高位和低位,其中高位数据为2位。
专利摘要本实用新型公开了一种由m+3个结构相同的处理单元PE连接而成的蒙哥马利模乘器,所述处理单元包括运算电路、用于计算蒙哥马利模乘运算预计算因子并对运算电路链的最终计算结果进行后处理的预计算/后处理电路;所述运算电路的输入端与所述预计算/后处理电路的输出端相连接,运算电路的输出端与预计算/后处理电路的输入端相连接;其中m=[n/k],[n/k]表示不小于n/k的最小整数,n为模数的二进制表示位长度(简称为模数长度),k为基b的二进制表示位数,通常基b≥1。本实用新型缩短了蒙哥马利模乘运算所需的运算时间,并提高运算性能。
文档编号G06F7/38GK2507064SQ0125638
公开日2002年8月21日 申请日期2001年10月18日 优先权日2001年10月18日
发明者康小刚 申请人:深圳市中兴集成电路设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1