【技术实现步骤摘要】
易于扩展的大整数乘法硬件实现电路
[0001]本专利技术涉及硬件电路设计领域,尤其涉及一种易于扩展的大整数乘法硬件实现电路。
技术介绍
[0002]大整数是指超出计算机数据类型表达能力的整数,其位数通常在几百到上千位。在数值计算等应用领域中,某些数据的十进制位数达到上亿位甚至更高,有时也称为超大整数。大整数具有非常广泛的应用,例如在数论研究领域中常用于因式分解、素数检测等。在密码学领域中,RSA,EIGamal、椭圆曲线等公钥密码算法都是建立在大整数运算的基础上,模乘、模幂和模约减等运算被大量使用,而其中大整数乘法是最核心且费时的运算。
[0003]为了提高大整数乘法的计算效率,人们提出了很多优化方案。针对上万位的超大整数,基于快速傅里叶变换(FFT)或数论变换(NTT)的
‑
Strassen算法(简称SSA)和F
ü
rer算法等能够大大降低乘法运算的次数。但是由于算法复杂度较高,对于几百至几千位的大整数,则缺乏明显的优势。
[0004]在公钥密码算法的应用领域中,最常用的 ...
【技术保护点】
【技术特征摘要】
1.一种易于扩展的大整数乘法硬件实现电路,其特征在于,所述易于扩展的大整数乘法硬件实现电路包括:M个乘法器、M
‑
1个一级K位加法器、第一寄存器、第二寄存器、M+1个二级K位加法器和一个超前进位加法器;M个所述乘法器分别与M
‑
1个所述一级K位加法器连接,所述第一寄存器与最低位乘法器连接,所述第二寄存器与最高位乘法器连接;M
‑
1个所述一级K位加法器分别与M+1个所述二级K位加法器连接,所述第一寄存器与第一二级K位加法器连接,所述第二寄存器与第M+1二级K位加法器连接;M+1个所述二级K位加法器分别与所述超前进位加法器连接;其中,M个所述乘法器按低位到高位排列,M
‑
1个所述一级K位加法器按低位到高位排列,M+1个二级K位加法器按低位到高位排列。2.根据权利要求1所述的易于扩展的大整数乘法硬件实现电路,其特征在于,乘数A、被乘数B为整数,将所述乘数A分割成M项位宽为J的整数A
x
,将所述乘数B分割成N项位宽为K的整数B
y
,其中,x∈{0,1,
…
,M
‑
1},y∈{0,1,
…
,N
‑
1};所述乘数A、所述被乘数B、所述整数A
x
和所述整数B
y
均为十六进制整数,所述J<=K;M个所述乘法器的乘数端接收的数据分别为整数A0,A1,
…
,A
M
‑1,且保持N个系统时钟不变;M个所述乘法器的被乘数端接收的数据为相同的整数序列{B0,B1,
…
,B
N
‑1},且在第1个系统时钟为所述整数B0,在第2个系统时钟为所述整数B1,依次,在第N个系统时钟为所述整数B
N
‑1。3.根据权利要求2所述的易于扩展的大整数乘法硬件实现电路,其特征在于,M个所述乘法器在第S+1个系统时钟输出M个所述整数A
x
与所述整数B0的第一级乘积结果A
x
*B0,在第S+2个系统时钟输出M个所述整数A
x
与所述整数B1的第二级乘积结果A
x
*B1,依次,在第S+N个系统时钟输出M个所述整数A
x
与所述整数B
N
‑1的第N级乘积结果A
x
*B
N
‑1;其中,所述S为所述乘法器的运算时间。4.根据权利要求3所述的易于扩展的大整数乘法硬件实现电路,其特征在于,分别对所述第一级乘积结果A
x
*B0、所述第二级乘积结果A
x
*B1、依次直至所述第N级乘积结果A
x
*B
N
‑1,以K位为第一基本单元进行拆分,并分别送入M
‑
1个所述一级K位加法器,并行的进行求和运算;此时,对于相邻的高位乘法器与低位乘法器,每个所述一级K位加法器的加数端接收的数据为所述低位乘法器输出的高J位,记为D
xy
,每个所述一级K位加法器的被加数端接收的数据为所述高位乘法器输出的低K位,记为C
(x+1)y
。5.根据权利要求4所述的易于扩展的大整数乘法硬件实现电路,其特征在于,将所述第一寄存器与所述最低位乘法器输出的低K位连...
【专利技术属性】
技术研发人员:王文华,杨飞,程爱莲,
申请(专利权)人:杭州菲数科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。