CN2507064Y - 一种蒙哥马利模乘器 - Google Patents

一种蒙哥马利模乘器 Download PDF

Info

Publication number
CN2507064Y
CN2507064Y CN 01256381 CN01256381U CN2507064Y CN 2507064 Y CN2507064 Y CN 2507064Y CN 01256381 CN01256381 CN 01256381 CN 01256381 U CN01256381 U CN 01256381U CN 2507064 Y CN2507064 Y CN 2507064Y
Authority
CN
China
Prior art keywords
processing unit
reg
precomputation
input
register
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.)
Expired - Lifetime
Application number
CN 01256381
Other languages
English (en)
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
Shenzhen Zhongxing Integrated Circuit Design 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 Shenzhen Zhongxing Integrated Circuit Design Co Ltd filed Critical Shenzhen Zhongxing Integrated Circuit Design Co Ltd
Priority to CN 01256381 priority Critical patent/CN2507064Y/zh
Application granted granted Critical
Publication of CN2507064Y publication Critical patent/CN2507064Y/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本实用新型公开了一种由m+3个结构相同的处理单元PE连接而成的蒙哥马利模乘器,所述处理单元包括运算电路、用于计算蒙哥马利模乘运算预计算因子并对运算电路链的最终计算结果进行后处理的预计算/后处理电路;所述运算电路的输入端与所述预计算/后处理电路的输出端相连接,运算电路的输出端与预计算/后处理电路的输入端相连接;其中m=[n/k],[n/k]表示不小于n/k的最小整数,n为模数的二进制表示位长度(简称为模数长度),k为基b的二进制表示位数,通常基b≥1。本实用新型缩短了蒙哥马利模乘运算所需的运算时间,并提高运算性能。

Description

一种蒙哥马利模乘器
技术领域
本实用新型涉及一种模乘器,更具体地说,涉及一种一维的具有多级处理单元PE(Processing Element)的可以实现蒙哥马利模乘运算的蒙哥马利模乘器。
背景技术
随着通讯技术的发展,信息的传输量越来越大,信息的安全问题也越来越重要,尤其在商业领域,信息传输的安全性、完整性和不可抵赖性直接影响到商家的运作模式和经济利益。在信息时代,高速计算机和全球化的因特网发展,使世界不同地区的人们可以相互交换信息,信息访问的合法性显得日益重要。不断发展的各种信息加密、解密技术适应了时代的要求,良好的加密算法使信息传输更可靠、更安全,其中公钥加密算法能更好的满足用户的要求。到目前为止,RSA加密算法是被广泛应用的公钥加密算法,可用作信息加密和数字签名。
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对其解密可恢复明文信息C:C=EdmodM。
可见,加密/解密过程涉及大数的模幂运算。按照指数扫描算法模幂运算可分解为多次模乘运算。大数模乘可以由蒙哥马利模乘来实现,所以蒙哥马利模乘是RSA加密算法的核心运算。这种运算很复杂,用软件实现速度慢,难于满足应用时的速度要求,采用硬件方法实现RSA加密运算可大大降低运算时间,提高运算性能。美国专利US6,061,706提出了一种蒙哥特马利模乘运算硬件电路,由基本处理单元连接而成,在时钟信号控制下进行迭代运算,该电路完成模数长度为n位的蒙哥马利模乘运算需要2n+11个时钟周期,虽然相对而言运算时间有所减少,但该电路完成模长为n位的蒙哥马利模乘运算需要2n+11个时钟周期,运算时间仍比较长。
发明内容
针对以上问题,本实用新型提供一种模数长度为n,基为b的蒙哥马利模乘器,以缩短蒙哥马利模乘运算所需的运算时间,并提高运算性能。
本实用新型所要解决的问题可以通过以下技术方案来解决:
算法I是一种蒙哥马利算法的变形,是所述蒙哥马利模乘器的实现基础。
算法I如下:
输入:
基b=2k
模数M,n位的模数,在基b下的表示为
操作数A,n位的操作数,在基b下的表示为
Figure Y0125638100062
操作数B,n位的操作数,在基b下的表示为
Figure Y0125638100063
M<R=2km,R为预计算因子;M’=-M-1mod2k,gcd(2k,M)=1;输出:
Sm=ABR-1modM;计算步骤如下:
1、SO=0
2、FOR i=0 to m-1 DO
3、qi=(((Si+aiB)mod 2k)M’)mod 2k
4、Si+1=(Si+qiM+aiB)/2k
5、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个时钟,使运算时间缩短,运算性能提高。
附图说明
图1是模数长度为n、基为b的蒙哥马利模乘器结构示意图;
图2是蒙哥马利模乘器处理单元的方框图;
图3是蒙哥马利模乘器处理单元的预计算/后处理电路的详细框图;
图4是模数长度为16、基为16的蒙哥马利模乘器结构示意图;
图5是模数长度为16、基为16的蒙哥马利模乘器处理单元的详细框图。
具体实施方式
下面结合附图和具体实施方式对本实用新型作进一步详细的描述。
算法I是一种蒙哥马利算法的变形,是所述蒙哥马利模乘器的实现基础。
算法I如下:
输入:
基b=2k
    模数M,n位的模数,在基b下的表示为
Figure Y0125638100101
    操作数A,n位的操作数,在基b下的表示为
Figure Y0125638100102
    操作数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输出。

Claims (10)

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位。
CN 01256381 2001-10-18 2001-10-18 一种蒙哥马利模乘器 Expired - Lifetime CN2507064Y (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 01256381 CN2507064Y (zh) 2001-10-18 2001-10-18 一种蒙哥马利模乘器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 01256381 CN2507064Y (zh) 2001-10-18 2001-10-18 一种蒙哥马利模乘器

Publications (1)

Publication Number Publication Date
CN2507064Y true CN2507064Y (zh) 2002-08-21

Family

ID=33665352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 01256381 Expired - Lifetime CN2507064Y (zh) 2001-10-18 2001-10-18 一种蒙哥马利模乘器

Country Status (1)

Country Link
CN (1) CN2507064Y (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1696894B (zh) * 2004-05-10 2010-04-28 华为技术有限公司 大数模乘计算乘法器
CN102411489A (zh) * 2011-10-18 2012-04-11 飞天诚信科技股份有限公司 一种嵌入式系统中的数据处理方法及装置
CN103780381A (zh) * 2012-12-17 2014-05-07 深圳市证通电子股份有限公司 基于高基脉动阵列的蒙哥马利算法的实现装置及方法
CN104407836A (zh) * 2014-10-14 2015-03-11 中国航天科技集团公司第九研究院第七七一研究所 利用定点乘法器进行级联乘累加运算的装置和方法
CN110751277A (zh) * 2018-07-23 2020-02-04 爱思开海力士有限公司 运算电路、包括该运算电路的运算装置和系统
CN114706557A (zh) * 2022-04-01 2022-07-05 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1696894B (zh) * 2004-05-10 2010-04-28 华为技术有限公司 大数模乘计算乘法器
CN102411489A (zh) * 2011-10-18 2012-04-11 飞天诚信科技股份有限公司 一种嵌入式系统中的数据处理方法及装置
CN102411489B (zh) * 2011-10-18 2014-06-04 飞天诚信科技股份有限公司 一种嵌入式系统中的数据处理方法及装置
CN103780381A (zh) * 2012-12-17 2014-05-07 深圳市证通电子股份有限公司 基于高基脉动阵列的蒙哥马利算法的实现装置及方法
CN104407836A (zh) * 2014-10-14 2015-03-11 中国航天科技集团公司第九研究院第七七一研究所 利用定点乘法器进行级联乘累加运算的装置和方法
CN104407836B (zh) * 2014-10-14 2017-05-31 中国航天科技集团公司第九研究院第七七一研究所 利用定点乘法器进行级联乘累加运算的装置和方法
CN110751277A (zh) * 2018-07-23 2020-02-04 爱思开海力士有限公司 运算电路、包括该运算电路的运算装置和系统
CN110751277B (zh) * 2018-07-23 2023-09-15 爱思开海力士有限公司 运算电路、包括该运算电路的运算装置和系统
CN114706557A (zh) * 2022-04-01 2022-07-05 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置
CN114706557B (zh) * 2022-04-01 2023-03-10 华控清交信息科技(北京)有限公司 一种asic芯片及蒙哥马利模乘的实现方法和装置

Similar Documents

Publication Publication Date Title
CN110519058B (zh) 一种对于基于格的公钥加密算法的加速方法
CN101216754B (zh) 基于模乘运算的数据加解密处理的方法及装置
CN1786900A (zh) 基于改进的蒙哥马利算法的模乘器
CN102207847A (zh) 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN109145616B (zh) 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统
CN114640454B (zh) 一种后量子密码Crystals Kyber协议的密码系统
CN1700637A (zh) 一种新型的椭圆曲线密码协处理器
CN116094711B (zh) 一种基于指令集的后量子格密码硬件优化结构
CN2507064Y (zh) 一种蒙哥马利模乘器
JPWO2007080652A1 (ja) モンゴメリ法用乗算剰余計算装置
CN113794572A (zh) 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法
CN114895870B (zh) 基于fpga实现的高效可重构sm2点乘方法及系统
Gonda et al. Improvements of addition algorithm on genus 3 hyperelliptic curves and their implementation
CN1230736C (zh) 智能卡模乘器vlsi结构的计算机实现方法
CN113467754A (zh) 一种基于分解约简的格加密模乘运算方法及架构
CN1271506C (zh) Rsa加密算法的实现电路及方法
CN200990078Y (zh) 快速rsa密码和大数模指数运算的电路
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
JPH11212456A (ja) モンゴメリ法による乗算剰余計算装置
CN1811698A (zh) 大数模幂系统的硬件高基实现方法
CN1375765A (zh) 一种快速大数模乘运算电路
CN114238205B (zh) 一种抗功耗攻击的高性能ecc协处理器系统
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
CN2566363Y (zh) Vlsi用的智能卡模乘器结构
CN1550975A (zh) 蒙哥马利模数乘法器及其方法

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: 518057, three, 2 Software Park, hi tech Zone, Shenzhen, Guangdong Province, three, three

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

Address before: Floor 9, technology innovation service center, 1 Kirin Road, Guangdong, Shenzhen, Nanshan District 518058

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

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

CP01 Change in the name or title of a patent holder

Address after: 518057, three, 2 Software Park, hi tech Zone, Shenzhen, Guangdong Province, three, three

Patentee after: Nationz Technologies Inc.

Address before: 518057, three, 2 Software Park, hi tech Zone, Shenzhen, Guangdong Province, three, three

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

C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20111018

Granted publication date: 20020821