CN103176768B - 计算经典模乘的模乘方法以及可扩展模乘器 - Google Patents

计算经典模乘的模乘方法以及可扩展模乘器 Download PDF

Info

Publication number
CN103176768B
CN103176768B CN201310102662.5A CN201310102662A CN103176768B CN 103176768 B CN103176768 B CN 103176768B CN 201310102662 A CN201310102662 A CN 201310102662A CN 103176768 B CN103176768 B CN 103176768B
Authority
CN
China
Prior art keywords
modular multiplication
modular
multiplier
csa
save adder
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 - Fee Related
Application number
CN201310102662.5A
Other languages
English (en)
Other versions
CN103176768A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201310102662.5A priority Critical patent/CN103176768B/zh
Publication of CN103176768A publication Critical patent/CN103176768A/zh
Application granted granted Critical
Publication of CN103176768B publication Critical patent/CN103176768B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及信息安全技术领域,具体涉及一种模乘方法以及可扩展模乘器。本发明基于Jeong?Burleson算法,提出了一种计算经典模乘A·B mod M的可扩展方法以及相应的可扩展模乘器;该模乘方法及模乘器通过将任务分配至各个处理单元,在每个处理单元中按字操作,一方面,能够利用有限的逻辑资源和充足的存储器计算任意长度或者长度可变的模乘运算,并且,对于乘数、被乘数不断变化的情形,本发明的模乘方法及模乘器计算量更少;另一方面,提供了一种选择设计参数、优化性能的途径;同时,新的预计算值与低延迟结构也提高了运算的效率。

Description

计算经典模乘的模乘方法以及可扩展模乘器
技术领域
本发明涉及信息安全技术领域,具体涉及一种计算经典模乘A·B mod M的模乘方法以及可扩展模乘器。
背景技术
在很多非对称加密算法中,例如RSA(公钥加密算法)和ECC(Error CorrectingCode,错误检查和纠正)中,大整数模乘运算是其基本运算。
由于大整数模乘运算中运算量很大,通常会采用硬件实现的蒙哥马利模乘器进行计算。蒙哥马利模乘算法的基础思想是借助一个新的特殊剩余系,将普通的模乘转换为容易计算的特殊模乘。尽管如此,随着密钥长度增大,相应的硬件规模也会增加。
现有技术中,利用可扩展的蒙哥马利模乘器,只需较少的运算部件和充足的存储器,就能实现可变及更长精度的整数模乘。蒙哥马利模乘器在可扩展架构下变得更为简便,提高了运算的效率和IC设计的自由度。但是,蒙哥马利模乘毕竟不同于经典模乘,如果运算非连续、操作数不断变化,则相应操作的运算代价会比实际大为增加。
事实上,经典模乘也可以通过Jeong-Burleson算法实现。Jeong-Burleson算法最初提出的结构是直接利用预计算、交叠的模乘运算、长整数的保留进位加法实现。因此,提供一种基于Jeong-Burleson算法的模乘方法及可扩展模乘器,可以有效的计算可变长度的经典模乘。
发明内容
(一)要解决的技术问题
本发明的目的在于提供一种低延迟的、可扩展的、基于Jeong-Burleson算法的模乘方法及模乘器,从而有效的计算可变长度的经典模乘。
(二)技术方案
本发明技术方案如下:
一种模乘方法,其中,被乘数A、乘数B以及模数M均为n位二进制数,被乘数A包括M个字;中间变量包括二进制数Cn,Sn以及hn,hn为进位信号;预计算值D[2u]=(u·2n)Mod M,1≤u≤5;外循环量i=(0,1,…,n-1);内循环量j=(0,1,…,m-1);模乘运算(Cn,Sn,hn)≡(A·B)Mod M包括步骤:
S1.定义S-1=0,C-1=0,u-1=0,
S2.令外循环量i=0,从乘数B最高位开始外循环;
S3.赋值
S4.令内循环量j=1,从被乘数A最高字开始内循环;
S5.赋值
S6.令内循环量j加1,重复内循环直到j=m-1;退出内循环;
S7.令外循环量i加1,重复外循环直到i=n-1;退出外循环;
S8.返回冗余形式的模乘值(Cn,Sn,hn)并对其进行后处理。
本发明还提供了一种实现上述模乘方法的可扩展模乘器:
一种可扩展模乘器,包括依次连接的接收单元、运算模块以及后处理电路;
所述接收单元存储输入的乘数、被乘数、模数以及预计算值;
所述运算模块根据上述的模乘方法输出运算所得的冗余形式的模乘值;
所述后处理电路将冗余形式的模乘值转化为非冗余形式。
优选的,所述运算模块包括串联在所述接收单元与后处理电路之间的若干处理单元,最前端的处理单元与最末端的处理单元之间串联有存储中间变量的寄存器。
优选的,所述处理单元包括依次连接的第一级保留进位加法器、第二级保留进位加法器以及第三级保留进位加法器,与所述第三级保留进位加法器连接、选择ui值以及hi值的多路选择器,传递预计算值的若干寄存器,存储中间结果的寄存器;
的低w-1位、的低w-1位、bn-1-jA(m-1)经过第一级保留进位加法器相加,最低位由上一处理单元的进位值填满;第一级保留进位加法器的输出除最高位进位外和上一处理单元输入的作为第二级保留进位加法器的输入,第二级保留进位加法器的输出与预计算值作为第三级保留进位加法器的输入;其中,w为每次处理的字长。
(三)有益效果
本发明基于Jeong-Burleson算法,提出了一种计算经典模乘A·B mod M的可扩展方法以及相应的可扩展模乘器;该模乘方法及可扩展模乘器通过将任务分配至各个处理单元,在每个处理单元中按字操作,一方面,能够利用有限的逻辑资源和充足的存储器计算任意长度或者长度可变的模乘运算,并且,对于乘数、被乘数不断变化的情形,本发明的模乘方法及可扩展模乘器计算量更少;另一方面,提供了一种选择设计参数、优化性能的途径;同时,新的预计算值与低延迟结构也提高了运算的效率。
附图说明
图1是本发明实施例中可扩展模乘器的结构示意图;
图2是本发明实施例中处理单元的机构示意图;
图3是本发明实施例中处理单元进位信号的产生流程图;
图4是本发明实施例中工作时数据在相邻处理单元间传递的流向示意图;
图5是本发明实施例中在一系列连续时钟周期内各个处理单元的任务分布示意图;
图6是本发明实施例中三种计算任务的具体逻辑示意图;
图7是本发明实施例中在某一时刻各个单元中的迭代层次和操作字的序号示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式做进一步描述。以下实施例仅用于说明本发明,但不用来限制本发明的范围。
本发明所提供的一种模乘方法,其主要算法如下所示:
其中,被乘数A、乘数B以及模数M均为n位二进制数,被乘数A包括M个字;中间变量包括二进制数Cn,Sn以及hn,Cn,Sn表示中间计算的主要结果,完整结果需要计入hn才行,这与通常的保留进位加法有区别;hn表示中间结果除最高一个字外所有字处理的进位信号;预计算值D[2u]=(u·2n)Mod M,1≤u≤5;外循环量i=(0,1,…,n-1),表示第i次外循环,或者说当前计到乘数B的第i位bi;内循环量j=(0,1,…,m-1)表示A中第j个字;
模乘运算(Cn,Sn,hn)≡(A·B)Mod M具体包括步骤:
S1.定义S-1=0,C-1=0,u-1=0,
S2.令外循环量i=0,从乘数B最高位开始外循环;
S3.赋值 αi表示运算时中间结果最高位的进位,它由3位二进制数表示,表示超出当前字宽度的所有进位值之和;
S4.令内循环量j=1,从被乘数A最高字开始内循环;
S5.赋值
S6.令内循环量j加1,重复内循环直到j=m-1;退出内循环;
S7.令外循环量i加1,重复外循环直到i=n-1;退出外循环;
S8.返回冗余形式的模乘值(Cn,Sn,hn)并对其进行后处理。
本发明还提供了一种实现上述模乘方法的可扩展模乘器,如图1中所示,包括依次连接的接收单元、运算模块以及后处理电路、若干寄存器以及控制电路等;接收单元存储输入的乘数、被乘数、模数以及预计算值,其主要包括存储器(RAM);运算模块根据上述的模乘方法输出运算所得的冗余形式的模乘值;后处理电路(Post-Process)将冗余形式的模乘值转化为非冗余形式。其中,运算模块包括串联在接收单元与后处理电路之间的L个处理单元(Processing Element,PE),最前端的处理单元与最末端的处理单元之间串联有存储中间变量的寄存器,其主要包括先进先出寄存器(First Input First Output,FIFO)。
其中,所有处理单元的内部结构相同,如图2中所示,每个处理单元均包括依次连接的第一级保留进位加法器(CSA,Carry Save Adder)、第二级保留进位加法器以及第三级保留进位加法器,与第三级保留进位加法器连接、选择ui值以及hi值的多路选择器,传递预计算值的5个寄存器,存储中间结果主要部分(Si,Ci)的寄存器;保存中间计算结果最高位进位αi的寄存器以及相关逻辑。
的低w-1位、的低w-1位、bn-1-jA(m-1)经过第一级保留进位加法器相加,最低位2个值由上一处理单元的进位值填满;第一级保留进位加法器的产生的两个输出值中,除最高位进位外,和上一处理单元输入的的主要部分作为第二级保留进位加法器的输入,第二级保留进位加法器的输出与预计算值D[2u]一起作为第三级保留进位加法器的输入;其中,w为每次处理的字长。其中,进位信号hn是5个进位值之和,其中两个来自(2Ci,2Si),另三个来自三次保留进位加法;具体产生过程如图3中所示。
在当前处理单元处在第一个字、即最高字时,下一个处理单元正处在最后一个字、即最低字;当前处理单元的进位值锁存到寄存器中生成αi,而从算法可知,下一个处理单元输入的进位值刚好为0,因此用一个2-1选择器实现。整个模乘运算的信号流向如图4中所示。显然,计算过程是从乘数的最高位向最低位逐位遍历,每一位对应一个外循环;同时又从被乘数的最高字向最低字遍历,这些字对应内循环的字操作。而且,相邻处理单元之间的延迟只有一个时钟周期。
而每个处理单元会经历不同的外循环,而一旦经历某个外循环,则会完整经历其内循环,也就是遍历所有的字。如图5中所示,为可扩展模乘器在一系列连续时钟周期内各个处理单元的任务分布。具体而言,一个处理单元进入某个外循环后,从任务○A开始,然后经过若干个任务○B,到任务○C结束。任务○A、任务○B以及任务○C分别对应最高字运算生成αi的计算、正常产生hi的计算即(当j≠0时的情形,此时来自上级处理单元的进位值作为最低位的进位,是有效的)以及最低一个字的计算(当j=0时的情形,对应于最低一个字,这时没有来自上级处理单元向最低位的进位,所以置0)。具体的运算逻辑如图6所示。图7显示了某一时刻各个单元中的迭代层次(外循环)和操作字(内循环)的序号(i,j)。
运算模块的最终输出结果是冗余表示(Si,Ci,hi),因此需要通过后处理电路,进行若干次加法,将冗余形式的模乘值转化为非冗余形式,以得到精确结果。
本发明利用Jeong-Burleson算法,提出了一种低延迟的可扩展模乘器。如同可扩展蒙哥马利模乘器一样,它不但可以利用有限的硬件逻辑实现长精度的大整数模乘;而且,对于非连续、操作数变化的大整数模乘运算,它比通常的可扩展蒙哥马利模乘器节省运算。
本发明利用Verilog HDL(Hardware Discription Language,硬件描述语言)进行描述,利用Xilinx FPGA(Field-Programmable Gate Array,现场可编程门阵列)仿真验证,实现结果显示该可扩展模乘器具有的较好的性能;具体如表1中所示。
表1 本发明在FPGA平台上的实现结果(已计入后处理时间)
综上所述,本发明所提供的可扩展模乘器具有以下优点:
(1)、具有可扩展的特点。“可扩展”(Scalable)结构能够利用有限的逻辑资源和充足的存储器计算任意长度的模乘。这是由于本发明中利用的算法按照“字”进行操作,将原来的任务按字操作形成一个队列,利用FIFO暂存中间结果,从而能够处理更长或长度可变的操作数。
(2)、具有较高的性能。在充足的逻辑资源下,它可以获得较高的性能。一方面,可扩展结构提供了一种选择设计参数、优化性能的途径;另一方面,新的预计算值和低延迟结构提高了算法的效率。这是由于在可扩展结构中,原来固定长度的保留进位加法运算单元被一排个数可变的处理单元代替,处理单元的字宽度也可变,相当于引入了两个设计参数;低延迟使得整个可扩展结构的效率提高了一倍。
(3)、对于乘数、被乘数连续不断变化的情形,可扩展模乘器比相应的可扩展蒙哥马利模乘器计算量更少。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的保护范畴。

Claims (1)

1.一种计算经典模乘的可扩展模乘器,其特征在于,包括依次连接的接收单元、运算模块以及后处理电路;
所述接收单元存储输入的乘数、被乘数、模数以及预计算值;
所述运算模块根据计算经典模乘的模乘方法输出运算所得的冗余形式的模乘值;
所述后处理电路将冗余形式的模乘值转化为非冗余形式;
所述计算经典模乘的模乘方法具体为:
被乘数A、乘数B以及模数M均为n位二进制数,被乘数A包括m个字;中间变量包括二进制数Cn,Sn以及hn,hn为进位信号;预计算值D[2u]=(u·2n)Mod M,1≤u≤5;外循环量i=(0,1,…,n-1);内循环量j=(0,1,…,m-1);模乘运算(Cn,Sn,hn)≡(A·B)Mod M包括步骤:
S1.定义S-1=0,C-1=0,u-1=0,
S2.令外循环量i=0,从乘数B最高位开始外循环;
S3.赋值
其中,αi表示运算时中间结果最高位的进位;bn-1-i代表当前计到乘数B的第n-1-i位;
S4.令内循环量j=1,从被乘数A最高字开始内循环;
S5.赋值
S6.令内循环量j加1,重复内循环直到j=m-1;退出内循环;
S7.令外循环量i加1,重复外循环直到i=n-1;退出外循环;
S8.返回冗余形式的模乘值(Cn,Sn,hn)并对其进行后处理;
所述运算模块包括串联在所述接收单元与后处理电路之间的若干处理单元,最前端的处理单元与最末端的处理单元之间串联有存储中间变量的寄存器;
所述处理单元包括依次连接的第一级保留进位加法器、第二级保留进位加法器以及第三级保留进位加法器,与所述第三级保留进位加法器连接、选择ui值以及hi值的多路选择器,传递预计算值的若干寄存器,存储中间结果的寄存器;
的低w-1位、的低w-1位、bn-1-iA(m-1)经过第一级保留进位加法器相加,最低位由上一处理单元的进位值填满;第一级保留进位加法器的输出除最高位进位外和上一处理单元输入的作为第二级保留进位加法器的输入,第二级保留进位加法器的输出与预计算值作为第三级保留进位加法器的输入;其中,w为每次处理的字长。
CN201310102662.5A 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器 Expired - Fee Related CN103176768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310102662.5A CN103176768B (zh) 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310102662.5A CN103176768B (zh) 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器

Publications (2)

Publication Number Publication Date
CN103176768A CN103176768A (zh) 2013-06-26
CN103176768B true CN103176768B (zh) 2016-07-13

Family

ID=48636675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310102662.5A Expired - Fee Related CN103176768B (zh) 2013-03-27 2013-03-27 计算经典模乘的模乘方法以及可扩展模乘器

Country Status (1)

Country Link
CN (1) CN103176768B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750455B (zh) * 2013-12-31 2018-03-06 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2566363Y (zh) * 2002-07-31 2003-08-13 清华大学 Vlsi用的智能卡模乘器结构
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2566363Y (zh) * 2002-07-31 2003-08-13 清华大学 Vlsi用的智能卡模乘器结构
CN1786900A (zh) * 2005-10-28 2006-06-14 清华大学 基于改进的蒙哥马利算法的模乘器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSA-based design of feedforward scalable montgomery modular multiplier;Wu tao et al.;《IEEE International symposium on signal processing and information technology》;20110914;54-59 *
Low-latency scalable modular multiplier without montgomery algorithm;Tao Wu et al.;《2012 2nd International Conference on Computer Science and Network Technology》;20120929;第83页-84页,图1,图2,图3 *
一种用于ECC密码体制的模乘法器设计;毛天然等;《微电子学》;20060630;第36卷(第3期);344-346,351 *

Also Published As

Publication number Publication date
CN103176768A (zh) 2013-06-26

Similar Documents

Publication Publication Date Title
CN104899182B (zh) 一种支持可变分块的矩阵乘加速方法
CN106951211B (zh) 一种可重构定浮点通用乘法器
CN104461449B (zh) 基于向量指令的大整数乘法实现方法及装置
US10877733B2 (en) Segment divider, segment division operation method, and electronic device
CN110362293B (zh) 乘法器、数据处理方法、芯片及电子设备
CN103369326B (zh) 适于高性能视频编码标准hevc的变换编码器
KR100591761B1 (ko) 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법
Low et al. A new approach to the design of efficient residue generators for arbitrary moduli
CN109144469A (zh) 流水线结构神经网络矩阵运算架构及方法
CN102231101A (zh) 一种除法器及除法处理方法
CN113032723B (zh) 一种矩阵乘法器的实现方法及矩阵乘法器装置
EP4318275A1 (en) Matrix multiplier and method for controlling matrix multiplier
CN101295237A (zh) 求商和余数的高速除法器
CN103176768B (zh) 计算经典模乘的模乘方法以及可扩展模乘器
CN103593159A (zh) 一种高效率高精度除法实现方法及装置
CN109284085B (zh) 一种基于fpga的高速模乘和模幂运算方法及装置
US9569175B2 (en) FMA unit, in particular for utilization in a model computation unit for purely hardware-based computing of function models
JPH1195982A (ja) 演算処理回路及び演算処理方法並びに演算処理システム
RU2666303C1 (ru) Способ и устройство для вычисления хэш-функции
CN101986261A (zh) 基为16的高速Montgomery模乘法器VLSI
KR100329914B1 (ko) 제산장치
CN111190571B (zh) 一种基于二元扩域的模乘电路及其控制方法
CN102929574A (zh) Gf(2163)域上的脉动乘法器设计方法
CN111260070B (zh) 运算方法、装置及相关产品
GB2538102B (en) Performing constant modulo arithmetic

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160713

Termination date: 20170327