大整数乘法运算加速方法、装置及存储介质制造方法及图纸

技术编号:37768500 阅读:12 留言:0更新日期:2023-06-06 13:30
本发明专利技术提供了一种高带宽、高效率的能够并行处理大整数计算的大整数乘法运算加速方法、装置以及存储介质,其方法包括以下步骤:获取待进行乘法计算的第一大整数和第二大整数;将第一大整数以及第二大整数分别切分为p个元素,并分别组成第一向量及第二向量;将第一向量中的p个第一元素分别存储至p个对应的处理器中,并行地依次与第二向量相乘,得到由p个结果向量组成的结果矩阵;对结果矩阵执行进位处理并按向量依次移位相加,得到第一大整数和第二大整数的相乘结果。二大整数的相乘结果。二大整数的相乘结果。

【技术实现步骤摘要】
大整数乘法运算加速方法、装置及存储介质


[0001]本专利技术属于密文运算领域,具体涉及一种大整数乘法运算加速方法、装置以及存储介质。

技术介绍

[0002]在密文运算中,大整数运算无法避免,通常会用到1024位以上的大整数,甚至是3072位。但是传统的乘法运算时间复杂度过高,为O(n^2),在实际应用中,该计算开销过大。如何提高运算效率,减少计算开销,成为了亟待解决的问题之一。
[0003]随着密码学的不断发展,许多大整数运算加速方案也都相继被提出。其中,SIMD

LA模型上的大整数乘法运算方案是可以实现乘法运算加速的一种方案。SIMD

LA模型上的大整数乘法运算方案通过使用分治策略和Karatsuba

Ofman乘法器,可以将计算复杂度向前推进到明显低于传统乘法的计算复杂度O(n2)。然而,该方案中矢量数据带宽仅为256位,其限制的带宽位数急需改进。

技术实现思路

[0004]为提升大整数的乘法计算效率,提供一种高带宽、高效率的能够并行处理大整数计算的大整数乘法运算加速方法、装置以及存储介质,本专利技术采用了如下技术方案:
[0005]本专利技术提供了一种大整数乘法运算加速方法,包括以下步骤:获取待进行乘法计算的第一大整数和第二大整数;将第一大整数以及第二大整数分别切分为p个元素,并分别组成第一向量及第二向量;将第一向量中的p个第一元素分别存储至p个对应的处理器中,并行地依次与第二向量相乘,得到由p个结果向量组成的结果矩阵;对结果矩阵执行进位处理并按向量依次移位相加,得到第一大整数和第二大整数的相乘结果。
[0006]本专利技术提供的大整数乘法运算加速方法,还可以具有这样的技术特征,对结果矩阵执行进位处理并按向量依次移位相加,得到第一大整数和第二大整数的相乘结果,包括:对结果矩阵中的每一行向量执行进位并在每个向量的最高位增加一个进位元素,形成p*(p+1)的进位矩阵;将进位矩阵中的每个向量按元素进行错位,并基于预设向量加法指令对相邻的两个向量依次相加求和得到中间向量;对中间向量执行进位得到最终向量;将最终向量的每个元素依次输出得到第一大整数和第二大整数的相乘结果。
[0007]本专利技术提供的大整数乘法运算加速方法,还可以具有这样的技术特征,其中,基于预设向量加法指令对相邻的两个向量依次相加求和的过程为:确定相邻待求和的两个向量中需执行求和的p个元素,形成第三向量和第四向量;将第三向量中的p个元素分别存储至对应的p个处理器中,并行地与第四向量中的p个元素分别相加求和;重复上述步骤直至进位矩阵中所有向量完成求和得到中间向量。
[0008]本专利技术提供的大整数乘法运算加速方法,还可以具有这样的技术特征,其中,将第一向量中的p个第一元素分别存储至p个对应的处理器中,并行地依次与第二向量相乘时,还采用Karatsuba

Ofman乘法器优化乘法处理。
[0009]本专利技术提供的大整数乘法运算加速方法,还可以具有这样的技术特征,其中,第一大整数及第二大整数的长度为n,元素的长度n/p小于处理器可以处理的位数。
[0010]本专利技术提供的大整数乘法运算加速方法,还可以具有这样的技术特征,第一大整数以及第二大整数被分别切分为p个元素时,若元素的位数不满足长度n/p,则以0在元素的首位进行补位。
[0011]本专利技术还提供了一种大整数乘法运算加速装置,包括:获取模块,获取待进行乘法计算的第一大整数和第二大整数;切分模块,将第一大整数以及第二大整数分别切分为p个元素,并分别组成第一向量及第二向量;乘算控制模块,将第一向量中的p个第一元素分别存储至p个对应的处理器中,并行地依次与第二向量相乘,得到由p个结果向量组成的结果矩阵;结果加算模块,对结果矩阵执行进位处理并按向量依次移位相加,得到第一大整数和第二大整数的相乘结果。
[0012]本专利技术还提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述的方法。
[0013]专利技术作用与效果
[0014]根据本专利技术的大整数乘法运算加速方法、装置以及存储介质,由于先对两个准备进行乘法计算的大整数进行分段形成两个向量,向量的元素(维度)数量与处理器的数量相同,再通过各处理器并行地将两个向量中的元素相乘的结果矩阵,进一步通过并行处理的方式完成结果矩阵中相邻向量的求和和进位,最后得到大整数的乘算结果。因此,本方法能够有效地对密文大整数乘法运算进行加速,降低计算复杂度,减少计算开销,节约时间成本。
[0015]本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
[0016]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
[0017]图1为本专利技术实施例中大整数乘法运算加速方法的流程图。
[0018]图2为本专利技术实施例中步骤S4的子步骤流程图。
[0019]图3为本专利技术实施例中整数乘法运算加速装置的架构图。
具体实施方式
[0020]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0021]此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些
步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0022]<实施例>
[0023]参考图1,图1是本专利技术实施例中大整数乘法运算加速方法的流程图。本专利技术提供的大整数乘法运算加速方法具体包括如下步骤S1至步骤S4:
[0024]步骤S1,获取待进行乘法计算的两个长度为n的第一大整数A和第二大整数B。
[0025]步骤S2,将第一大整数以及第二大整数分别切分为p个长度为n/p的元素,这些元素分别组成第一向量A
i
及第二向量B
i
(i=1,2,

,p)。其中,若切分后元素的位数不满足长度n/p,则以0在元素的首位进行补位。
[0026]具体地,以A=12543、B=10000012543、p=4为例,第二大整数B的长度n为11,则每个元素的长度为n/p=3(2.75向上取整),接下来切分形成第一向量A
i
=[000,000,012,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大整数乘法运算加速方法,其特征在于,包括如下步骤:获取待进行乘法计算的第一大整数和第二大整数;将所述第一大整数以及所述第二大整数分别切分为p个元素,并分别组成第一向量及第二向量;将所述第一向量中的p个第一元素分别存储至p个对应的处理器中,并行地依次与所述第二向量相乘,得到由p个结果向量组成的结果矩阵;对所述结果矩阵执行进位处理并按向量依次移位相加,得到所述第一大整数和所述第二大整数的相乘结果。2.根据权利要求1所述的大整数乘法运算加速方法,其特征在于,所述对所述结果矩阵执行进位处理并按向量依次移位相加,得到所述第一大整数和所述第二大整数的相乘结果,包括:对所述结果矩阵中的每一行向量执行进位并在每个向量的最高位增加一个进位元素,形成p*(p+1)的进位矩阵;将进位矩阵中的每个向量按元素进行错位,并基于预设向量加法指令对相邻的两个向量依次相加求和得到中间向量;对所述中间向量执行进位得到最终向量;将所述最终向量的每个元素依次输出得到所述第一大整数和所述第二大整数的相乘结果。3.根据权利要求2所述的大整数乘法运算加速方法,其特征在于:其中,所述基于预设向量加法指令对相邻的两个向量依次相加求和的过程为:确定相邻待求和的两个向量中需执行求和的p个元素,形成第三向量和第四向量;将所述第三向量中的p个元素分别存储至对应的p个所述处理器中,并行地与所述第四向量中的p个元素分别相加求和;重复上述步骤直至所述进位矩阵中所有向量完成求和得到所述中间向量...

【专利技术属性】
技术研发人员:胡雪晖庞皓天王皓阳褚学森洪华军吴天祺郭伟李金库
申请(专利权)人:中国船舶科学研究中心西安电子科技大学
类型:发明
国别省市:

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

1