当前位置: 首页 > 专利查询>北京大学专利>正文

一种基于蒙哥马利模乘的模重复平方算法及其硬件结构制造技术

技术编号:38877981 阅读:13 留言:0更新日期:2023-09-22 14:10
本发明专利技术公开了一种模重复平方算法,并基于此算法开发了模重复平方运算电路。本发明专利技术设计的模重复平方算法主要包括平方运算、蒙哥马利约简、进位传播加法三个步骤;模重复平方运算电路主要由平方运算单元、蒙哥马利约简单元、进位传播加法器、计数器等组成。本文提出的模重复平方运算算法基本流程为:输入数据首先进行平方运算,得到冗余形式的平方运算结果;之后以冗余形式进行蒙哥马利约简运算;当达到次数的要求,进行进位传播加法得到非冗余形式的最终结果;否则以冗余形式继续执行上述步骤。本发明专利技术利用连续乘法运算和平方运算的数学特点,以较低的硬件开销有效降低了模重复平方运算的延迟,在一定程度上提高了相关密码算法的执行效率。执行效率。执行效率。

【技术实现步骤摘要】
一种基于蒙哥马利模乘的模重复平方算法及其硬件结构


[0001]本专利技术公开了一种基于蒙哥马利模乘的模重复平方算法及其硬件结构的实现,在计算 a^(2^n)算子时具有更低的计算延迟。该算法从模平方运算的特点出发,对一般形式的蒙哥马利算法进行了针对性的改进。蒙哥马利单次模平方算法主要分为两个步骤,先进行整数平方,然后进行蒙哥马利约简运算。整数平方充分利用了平方运算的特性减少了部分积列表深度,采用高效的华莱士树结构的进位保留加法器压缩部分积深度,中间结果采用冗余表示形式表示,并针对这种形式将原蒙哥马利约简方法做了进一步改进,考虑到运算中的时延特性,在硬件实现时将约简步骤拆分成个步骤,即一级乘法运算和一级乘加运算(并且这两种相似的运算又可复用同一硬件),则最终的模平方运算共有三级流水。模重复平方算法硬件设计的整体流程为首先对输入进行预处理转换成蒙哥马利形式重复进行T

1次模平方运算,中间结果均是冗余表示形式,避免了使用进位传播加法器进行计算,在第T次时通过进位传播加法器将结果转换位非冗余形式。硬件实现通过模块复用有效降低了硬件开销,蒙哥马利约简单元的核心部分只需要一个乘法单元即可实现。

技术介绍

[0002]在当今的大数据、区块链、云计算时代背景下,人们的生活越来越便捷,但是也带来了一系列信息安全的问题,因此对密码算法的研究需求与日俱增。
[0003]CPU作为一种通用运算平台,可以完成各种密码学运算,但受限于其通用性,也导致了在某些特定的领域运算速度不甚理想,不能满足全场景下的性能需求,因此针对特定的运算实现定制化的电路可以加速计算、控制功耗和面积。
[0004]大数模幂运算是许多密码体制的核心运算,而通过模重复平方运算(a^(2^n))可以显著降低大数模幂运算的计算复杂度,因此许多密码算法的硬件实现都借助了模平方运算,而模重复平方运算的执行效率很大程度上影响了密码算法的执行效率。基于蒙哥马利模乘的模重复平方算法与其硬件结构能够有效降低模重复平方运算的延迟,为密码算法的高效实现提供保障。
[0005]例如被广泛研究和应用的RSA算法,模幂运算便是算法的核心,模幂运算的效率将最直接地决定了RSA算法的性能,基于蒙哥马利算法实现模幂运算的优势在于大数运算下减少取模的次数,并且能在一定程度上降低除法运算的复杂度(比如除以2的整数次幂的运算可等效为左移操作,而后者硬件开销很低)。
[0006]本专利技术更充分发掘了模重复平方运算的特性,创新性地提出了一种提高模重复平方算法的运算效率的算法,并基于此算法实现了其硬件电路。

技术实现思路

[0007]本专利技术的技术目的是:
[0008]为了提高模重复平方运算的运算效率,提供一种基于蒙哥马利模乘的高效模重复平方算法,并基于此算法设计模重复平方运算电路,以解决目前模重复平方运算运算效率
低下的问题,提高加解密等涉及到模重复平方运算的领域的性能。
[0009]本专利技术实现的技术方案:
[0010]本专利技术设计的模重复平方算法及其硬件结构的优化主要包括以下三个部分。第一部分是第二部分是基于完全平方公式进行数学推导,将平方运算的部分积深度压缩四分之一。第三部分是通过模块复用,使蒙哥马利约简过程所需的两次乘法运算共用同一个乘法器。
[0011]本专利技术所述的冗余形式的表示法中,一个整数a被表示为两个整数之和,其二进制表示形式为在经典硬件乘法算法中,部分积首先被压缩成这种冗余形式,之后通过进位传播加法器得到非冗余形式的计算结果。计算一个冗余形式的数据的平方,根据平方和公式有合并同类项后可以将部分积深度减小四分之一。
[0012]本专利技术的模重复平方算法的计算流程如图1所示。蒙哥马利形式的输入数据首先进行平方运算,输入采用的是冗余形式,之后采用进位保留加法运算,最终得到两行部分积,即冗余形式的平方运算结果。之后进行下一步的蒙哥马利约简运算,运算过程中数据始终采用冗余形式(即运算结果由两行部分积表示,这意味着涉及到的所有部分积压缩过程均采用进位保留加法运算,而不需要进位传播加法运算将两行部分积压缩成一行),最终将得到冗余形式的约简结果。如果此时已经达到模平方次数的要求,则将结果进行一次进位传播加法,即可得到最终结果;如果此时计算完成,则将冗余形式的计算结果反馈到平方运算步骤,继续执行上述过程。
[0013]本专利技术的模重复平方运算电路的结构如图2所示。该电路主要由平方运算单元、蒙哥马利约简单元、进位传播加法器、计数器等组成。平方单元内部由传统基于与门电路的部分积生成电路、华莱士树结构的电路组成。根据蒙哥马利约简算法的特点,将其分解为一次乘法运算和一次乘加运算,通过引入中间约简过程,削减高位数据,使二者位宽相同,且通过将加数作为一行部分积参与压缩的方式将乘加运算等效为乘法运算,因此两个步骤复用同一个乘法器,由计数器来控制该乘法器的功能模式。模平方运算的次数计数器来记录,达到要求时即可经进位传播加法器计算后输出。
[0014]相比于传统的模重复平方计算方法及其硬件电路,本专利技术有以下优点:
[0015]1.降低了模重复平方运算的计算延迟。以冗余形式表示中间计算结果,即部分积压缩过程中,只采用进位保留加法运算,将数据压缩到两行,以这种冗余形式进行计算避免了计算过程中开销最大的进位传播加法运算,此外蒙哥马利约简运算中的中间约简运算,能够在不影响计算正确性的前提下有效降低乘法器位宽,从而降低计算延迟。
[0016]2.降低了模重复平方运算的硬件开销。平方运算过程中,基于完全平方展开公式进行合并同类项,并以左移1位的操作代替乘2操作,将平方运算的部分积深度降低了四分之一;此外,蒙哥马利约简运算中复用乘法器,进一步降低了蒙哥马利约简电路的面积开销。
附图说明
[0017]图1基于蒙哥马利的连续模平方运算方法流程
[0018]图2连续模平方运算电路框架图
具体实施方式
[0019]以下结合附图详细描述本专利技术所提供的基于蒙哥马利模乘的模重复平方算法及其硬件结构,但不构成对本专利技术的限制。
[0020]本专利技术为基于蒙哥马利模乘的模重复平方算法及其硬件架构。基于蒙哥马利模乘的模重复平方算法遵循图1所示的计算流程,基于该算法实现的硬件电路采用图2所示的架构。本专利技术提出的模重复平方算法步骤如下:
[0021]步骤1:平方运算。平方运算主要包括部分积生成和部分积压缩两各阶段。部分积生进而提高密码学等与模重复平方运算相关的领域的计算性能。成阶段,根据平方和公式展开,冗余形式的输入在生成部分积时会产生交叉项,对交叉项进行合并同类项后可以将部分积深度减小四分之一;部分积压缩阶段,采用华莱士树结构的进位保留加法运算对部分级进行压缩,最终得到深度为2的部分积,即冗余形式的平方运算结果。
[0022]步骤2:蒙哥马利约简运算。蒙哥马利约简运算过程中数据始终采用冗余形式,最终将得到的约简结果也为冗余形式。蒙哥马利约简算法中的一次乘法运算和一次乘加运算
[0023]步骤3:进位传播加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于蒙哥马利模乘的模重复平方算法及其硬件结构,包括中间计算结果的冗余表示方法、部分积生成方法、模重复平方运算电路。其特征在于:在两次模平方运算之间,通过优化中间计算结果的表示方法,以冗余形式传递模平方运算的结果,除最后一次模平方运算之外,每次模平方运算最后的进位传播加法运算都被省略;在每次模平方运算内部,部分积生成过程中,采用无代价的硬件移位的方式对交叉项进行合并,以降低部分积深度。模重复平方运算电路利用了平方运算的数学特点,对交叉项进行合并同类项,有效压缩了乘法运算的部分积深度,进而降低了压缩延迟。同时还通过模块复用降低了硬件开销,减少了乘法运算单元的使用。2.由权利要求1所述的一种中间计算结果的冗余表示方法,其特征在于:模平方运算产生的部分积,采用华莱士树结构的进位保留加法器进行压缩,被压缩到两行后,不进行进位传播加法运算,而是以这种冗余形式直接进行约简处理。同理,约简处理所得的部分积进行压缩时,也被压缩到两行的冗余形式,不进行进位传播加法运算,而是直接作为下一轮模平方运算的输入,因此每轮模平方运算的输入和输出都为冗余形式。3.由权利要求2所述的一种冗余形式的中间计算结果的约简方法,其特征在于:由于乘法运算的特点,每轮模平...

【专利技术属性】
技术研发人员:冯建华李春昊马思孔邢琦于天威胡龙威
申请(专利权)人:北京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1