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

文档序号:35495183发布日期:2023-09-19 21:43阅读:17来源:国知局

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


背景技术:

1、在当今的大数据、区块链、云计算时代背景下,人们的生活越来越便捷,但是也带来了一系列信息安全的问题,因此对密码算法的研究需求与日俱增。

2、cpu作为一种通用运算平台,可以完成各种密码学运算,但受限于其通用性,也导致了在某些特定的领域运算速度不甚理想,不能满足全场景下的性能需求,因此针对特定的运算实现定制化的电路可以加速计算、控制功耗和面积。

3、大数模幂运算是许多密码体制的核心运算,而通过模重复平方运算(a^(2^n))可以显著降低大数模幂运算的计算复杂度,因此许多密码算法的硬件实现都借助了模平方运算,而模重复平方运算的执行效率很大程度上影响了密码算法的执行效率。基于蒙哥马利模乘的模重复平方算法与其硬件结构能够有效降低模重复平方运算的延迟,为密码算法的高效实现提供保障。

4、例如被广泛研究和应用的rsa算法,模幂运算便是算法的核心,模幂运算的效率将最直接地决定了rsa算法的性能,基于蒙哥马利算法实现模幂运算的优势在于大数运算下减少取模的次数,并且能在一定程度上降低除法运算的复杂度(比如除以2的整数次幂的运算可等效为左移操作,而后者硬件开销很低)。

5、本发明更充分发掘了模重复平方运算的特性,创新性地提出了一种提高模重复平方算法的运算效率的算法,并基于此算法实现了其硬件电路。


技术实现思路

1、本发明的技术目的是:

2、为了提高模重复平方运算的运算效率,提供一种基于蒙哥马利模乘的高效模重复平方算法,并基于此算法设计模重复平方运算电路,以解决目前模重复平方运算运算效率低下的问题,提高加解密等涉及到模重复平方运算的领域的性能。

3、本发明实现的技术方案:

4、本发明设计的模重复平方算法及其硬件结构的优化主要包括以下三个部分。第一部分是第二部分是基于完全平方公式进行数学推导,将平方运算的部分积深度压缩四分之一。第三部分是通过模块复用,使蒙哥马利约简过程所需的两次乘法运算共用同一个乘法器。

5、本发明所述的冗余形式的表示法中,一个整数a被表示为两个整数之和,其二进制表示形式为在经典硬件乘法算法中,部分积首先被压缩成这种冗余形式,之后通过进位传播加法器得到非冗余形式的计算结果。计算一个冗余形式的数据的平方,根据平方和公式有合并同类项后可以将部分积深度减小四分之一。

6、本发明的模重复平方算法的计算流程如图1所示。蒙哥马利形式的输入数据首先进行平方运算,输入采用的是冗余形式,之后采用进位保留加法运算,最终得到两行部分积,即冗余形式的平方运算结果。之后进行下一步的蒙哥马利约简运算,运算过程中数据始终采用冗余形式(即运算结果由两行部分积表示,这意味着涉及到的所有部分积压缩过程均采用进位保留加法运算,而不需要进位传播加法运算将两行部分积压缩成一行),最终将得到冗余形式的约简结果。如果此时已经达到模平方次数的要求,则将结果进行一次进位传播加法,即可得到最终结果;如果此时计算完成,则将冗余形式的计算结果反馈到平方运算步骤,继续执行上述过程。

7、本发明的模重复平方运算电路的结构如图2所示。该电路主要由平方运算单元、蒙哥马利约简单元、进位传播加法器、计数器等组成。平方单元内部由传统基于与门电路的部分积生成电路、华莱士树结构的电路组成。根据蒙哥马利约简算法的特点,将其分解为一次乘法运算和一次乘加运算,通过引入中间约简过程,削减高位数据,使二者位宽相同,且通过将加数作为一行部分积参与压缩的方式将乘加运算等效为乘法运算,因此两个步骤复用同一个乘法器,由计数器来控制该乘法器的功能模式。模平方运算的次数计数器来记录,达到要求时即可经进位传播加法器计算后输出。

8、相比于传统的模重复平方计算方法及其硬件电路,本发明有以下优点:

9、1.降低了模重复平方运算的计算延迟。以冗余形式表示中间计算结果,即部分积压缩过程中,只采用进位保留加法运算,将数据压缩到两行,以这种冗余形式进行计算避免了计算过程中开销最大的进位传播加法运算,此外蒙哥马利约简运算中的中间约简运算,能够在不影响计算正确性的前提下有效降低乘法器位宽,从而降低计算延迟。

10、2.降低了模重复平方运算的硬件开销。平方运算过程中,基于完全平方展开公式进行合并同类项,并以左移1位的操作代替乘2操作,将平方运算的部分积深度降低了四分之一;此外,蒙哥马利约简运算中复用乘法器,进一步降低了蒙哥马利约简电路的面积开销。



技术特征:

1.一种基于蒙哥马利模乘的模重复平方算法及其硬件结构,包括中间计算结果的冗余表示方法、部分积生成方法、模重复平方运算电路。其特征在于:

2.由权利要求1所述的一种中间计算结果的冗余表示方法,其特征在于:

3.由权利要求2所述的一种冗余形式的中间计算结果的约简方法,其特征在于:

4.由权利要求1所述的一种部分积生成方法,其特征在于:

5.由权利要求1所述的一种模重复平方运算电路,其特征在于:

6.由权利要求5所述的一种乘法器电路复用方法,其特征在于:


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

技术研发人员:冯建华,李春昊,马思孔,邢琦,于天威,胡龙威
受保护的技术使用者:北京大学
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1