CN112799637A - 一种并行环境下高吞吐量的模逆计算方法及系统 - Google Patents

一种并行环境下高吞吐量的模逆计算方法及系统 Download PDF

Info

Publication number
CN112799637A
CN112799637A CN202110090167.1A CN202110090167A CN112799637A CN 112799637 A CN112799637 A CN 112799637A CN 202110090167 A CN202110090167 A CN 202110090167A CN 112799637 A CN112799637 A CN 112799637A
Authority
CN
China
Prior art keywords
data
modular
parallel
inversion
inverse
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.)
Granted
Application number
CN202110090167.1A
Other languages
English (en)
Other versions
CN112799637B (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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN202110090167.1A priority Critical patent/CN112799637B/zh
Publication of CN112799637A publication Critical patent/CN112799637A/zh
Application granted granted Critical
Publication of CN112799637B publication Critical patent/CN112799637B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/721Modular inversion, reciprocal or quotient calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Abstract

本发明属于信息安全技术领域,公开了一种并行环境下高吞吐量的模逆计算方法及系统,接受a1,a2,...,am共m个待求逆值和模数p,输出
Figure DDA0002912164400000011
共m个模逆值,包括三个阶段:数据划分阶段、并行求逆阶段和数据组整合阶段;所述并行环境下高吞吐量的模逆计算系统包括:基于并行平台计算资源的数据划分模块、基于同时模逆算法的并行求逆模块、基于映射关系的数据组整合模块、基于历史运行结果的性能分析模块。本发明利用同时模逆算法将模逆运算转化为模乘运算的特性,减轻高并发模逆时线程束分化现象,针对串行同时模逆算法无法充分发挥并行平台全部性能的问题,设计并行同时模逆算法,使并行环境下模逆运算吞吐量有较大提升。

Description

一种并行环境下高吞吐量的模逆计算方法及系统
技术领域
本发明属于信息安全技术领域,尤其涉及一种并行环境下高吞吐量的模逆计算方法及系统。
背景技术
目前,随着电子商务的发展,电商平台每秒需要进行越来越大规模的数字签名运算,以保证交易的安全性。GPU(Graphics Processing Unit)作为一种通用的高性能并行计算平台,非常适合用于对此类高并发量的业务的加速计算。然而在GPU这种分支预测能力弱的并行环境下,模逆运算这种需要进行大量分支判断的算法,是提高数字签名算法总吞吐量的一大瓶颈。
目前常用的模逆计算方法有基于拓展欧几里得算法和基于费马小定理的模逆法,然而这些常用的模逆计算法应用于并行计算平台的效果并不理想。基于费马小定理的模逆法由于其高昂的计算开销,通常不被考虑使用。由于拓展欧几里得算法需要大量的分支判断,如果只是简单地并行运行拓展欧几里得算法,将会导致严重的线程束分化,不能达到理想的高吞吐量的效果。经典的同时模逆算法虽然在进行大批量的模逆运算时,能够将模逆运算转化为开销更小的模乘运算,从而只需进行一次模逆,但整个算法是串行执行的不能发挥并行计算平台的全部计算性能。
目前,针对上述问题,已经提出的解决方案有:
(1)基于GPU与CPU异构结构的椭圆曲线数字签名方法,专利号为CN201910375545.3,该方法在GPU上利用费马小定理计算模逆,由于费马小定理需要进行开销非常高昂的模幂运算,此方案不适合在模乘计算能力弱的计算设备上实现。
(2)SM2数字签名生成算法的实现方法及装置,专利号为CN201310445395.1,该装置通过CPU预先计算模逆值并存储的方式,让GPU可以直接从全局内存中读取到需要计算的模逆值,但此方案只适用于能够预测模逆输入的算法,不能实时计算模逆值。
(3)论文An Efficient Elliptic Curve Cryptography Signature Server WithGPU Acceleration,DOI为:10.1109/TIFS.2016.2603974,该论文提出的解决方案是通过CPU与GPU相结合,使用分支预测能力更强的CPU运行同时模逆算法计算模逆。然而这种方案需要CPU与GPU间的通信交互,且大大增加了任务调度的复杂程度,在实际实现过程中难以优化到理想的效果。
通过上述分析,现有技术存在的问题及缺陷为:
(1)由于并行计算平台分支预测能力弱的特性,经典的基于拓展欧几里得算法的模逆算法应用于并行计算平台的效果并不理想。基于费马小定理的模逆法需要进行开销非常高昂的模幂运算,不适合在模乘计算能力弱的设备上实现;
(2)利用擅长分支预测的CPU计算模逆虽然能在模逆性能上有优秀的表现,但其与并行计算平台的交互会带来不可忽略的额外计算开销,且CPU与GPU线程调度的问题也会大大增加实现的难度。
(3)串行运行的同时模逆算法,虽然能在一定程度上缓解线程束分化的问题,并减少一定的运算量,但该算法无法发挥并行计算平台的全部性能。
解决以上问题及缺陷的难度为:如何设计一种适合并行计算平台运行的且计算开销低的高吞吐量模逆计算方法。
解决以上问题及缺陷的意义为:提高模逆运算在并行计算平台的吞吐量,从而提升依赖于模逆运算的算法(如SM2数字签名算法)在并行计算平台的吞吐量。
发明内容
针对现有技术存在的问题,本发明提供了一种并行环境下高吞吐量的模逆计算方法及系统,旨在解决现有模逆算法应用于并行环境时存在吞吐量不理想的问题。
本发明是这样实现的,一种并行环境下高吞吐量的模逆计算方法,所述并行环境下高吞吐量的模逆计算方法包括:接受a1,a2,...,am共m个待求逆值和模数p,输出
Figure BDA0002912164380000031
共m个模逆值,包括三个阶段:数据划分阶段、并行求逆阶段和数据聚合阶段。
进一步,所述并行环境下高吞吐量的模逆计算方法包括以下步骤:
步骤一,数据划分阶段:根据输入数据的规模和并行计算平台的计算能力选择合适的参数,所述参数表示分组后每组包含数据的个数;根据所述参数对数据进行分组并编号,建立原始输入数据与分组后数据之间的一一映射关系;
步骤二,并行求逆阶段:在并行计算设备上开启多个线程接收对应多组数据的输入,线程间并行运行同时模逆算法;
步骤三,数据组整合阶段:经过步骤二,所有线程运行结束后可得到多组模逆数据;根据步骤一中建立的映射关系,将多组非完整数据整合为一组完整数据,即为所求的所有模逆值。
进一步,步骤一中,所述数据划分阶段包括三个子阶段:参数选取阶段、数据分组阶段、映射关系建立阶段,包括:
(1)参数选取阶段:根据待求逆值的个数m和并行计算平台的计算能力选择合适的参数k;其中,所述k表示在完成数据分组阶段后,每组数据包含待求逆值的个数。若k越大,则本计算方法的并行程度越不明显,无法发挥并行计算平台的全部性能;若k越小,则实际进行的模逆运算次数越多、计算方法的总计算量越多、线程束分化程度越明显,计算方法对模逆运算的吞吐量提升越不明显。由于k值的选择对方法的性能影响较大,需根据性能分析模块的分析结果不断对k值进行调整。
(2)数据分组阶段:将待求逆值划分为编号
Figure BDA0002912164380000032
Figure BDA0002912164380000033
组数据,其中前
Figure BDA0002912164380000041
组数据中每组数据包含编号j=1,2,...,k共k个待求逆值,第
Figure BDA0002912164380000042
组数据包含编号
Figure BDA0002912164380000043
Figure BDA0002912164380000044
个待求逆值。分组后的数据为
Figure BDA0002912164380000045
其中i表示组编号,j表示组内编号。
(3)映射关系建立阶段:a1,a2,...,am这m个输入值与分组后的数据
Figure BDA0002912164380000046
建立映射关系如下:
Figure BDA0002912164380000047
进一步,步骤二中,所述并行求逆阶段,包括:
并行计算设备上开启
Figure BDA0002912164380000048
个线程接受对应
Figure BDA0002912164380000049
组数据的输入,每个线程最大接受k个待求逆值输入,
Figure BDA00029121643800000410
个线程并行运行同时模逆算法,每个线程输出所接收的待求逆值关于模p的逆。
进一步,所述同时模逆算法分为三个子步骤:输入值预处理步骤、模逆计算步骤和模逆迭代计算步骤,包括:
1)输入值预处理步骤为:计算输入序列每个值与它之前所有输入值的模乘积,共需进行(k-1)次模乘运算;
2)模逆计算步骤,根据设备模乘计算能力的强弱,分别选择使用基于费马小定理或基于拓展欧几里得算法的模逆算法,计算经过预处理后的序列最后一值的模逆;
3)模逆迭代计算步骤通过对临时变量的迭代,计算每个预处理值与临时变量的模乘来计算每个输入值的模逆,该步骤需进行(k-1)轮迭代,每轮迭代进行2次模乘运算,共计2(k-1)次模乘运算,计算得到全部输入值的模逆。
进一步,步骤三中,所述数据组整合阶段,包括:
经过并行求逆阶段,所有线程运行结束后可得到
Figure BDA0002912164380000051
组共m个模逆值;根据数据划分阶段中建立的映射关系,可将这
Figure BDA0002912164380000052
组数据
Figure BDA0002912164380000053
整合为一组输出值
Figure BDA0002912164380000054
即为所求的m个逆值。
本发明的另一目的在于提供一种应用所述的并行环境下高吞吐量的模逆计算方法的并行环境下高吞吐量的模逆计算系统,所述并行环境下高吞吐量的模逆计算系统包括:
基于并行平台计算资源的数据划分模块、基于同时模逆算法的并行求逆模块、基于映射关系的数据组整合模块、基于历史运行结果的性能分析模块。
基于并行平台计算资源的数据划分模块,包括参数选取子模块、数据分组子模块、映射关系建立子模块,用于将输入的数据划分为供并行求逆模块并行处理的多组数据,并建立划分后数据与原始输入数据的映射关系;
基于同时模逆算法的并行求逆模块,包括模逆计算子模块和同时模逆算法子模块,用于通过启动多个线程并行运行同时模逆算法计算子模逆,其中每个线程处理划分后的一组数据;所述模逆计算子模块根据并行平台的模乘计算能力高低,选择使用基于费马小定理或基于拓展欧几里得算法的求逆子模块,用于计算单个模逆值;同时模逆算法子模块接受一组输入值,通过运行同时模逆算法并调用模逆计算子模块计算得到一组模逆值;
基于映射关系的数据组整合模块,用于接收并行求逆模块计算得到的每组数据的模逆值,并根据数据划分模块建立的划分后数据与原始输入数据的映射关系,将多组模逆值整合为一组模逆值,每个模逆值为对应输入数据的模逆;
基于历史运行结果的性能分析模块,包括数据记录子模块和分析反馈子模块,所述数据记录子模块将在每次算法运行完毕时计算并记录本次运行吞吐量;分析反馈子模块通过模逆运算吞吐量来评估本次运行效果,并根据历史模逆吞吐量和历史参数来调整运行参数,并将新参数反馈给参数选择子模块,直至模逆吞吐量趋于稳定。
进一步,所述基于并行平台计算资源的数据划分模块,包括:
参数选取子模块,用于根据输入数据的规模和并行计算平台的计算能力选择合适的参数k;其中,所述k表示在完成数据分组阶段后,每组数据包含待求逆值的个数,k值的选择对本发明的方法的性能影响较大,需根据性能分析模块的分析结果不断对k值进行调整;
数据分组子模块,用于根据参数k,将输入数据a1,a2,...,am分为
Figure BDA0002912164380000061
组,分组后的数据为
Figure BDA0002912164380000062
其中i表示组编号,j表示组内编号;
映射关系建立子模块,用于建立原始输入数据与分组数据间的映射关系;其中,所述a1,a2,...,am这m个输入值与分组后的数据
Figure BDA0002912164380000063
建立映射关系如下:
Figure BDA0002912164380000064
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的并行环境下高吞吐量的模逆计算方法,可用于对数字签名等依赖于模逆运算的算法在高吞吐量需求下的加速计算,实现在并行环境的模逆运算能够达到高吞吐量的效果。本发明充分利用并行计算平台的特性,提出了一种基于同时模逆算法的模逆并行计算方法,不仅利用了同时模逆算法将模逆运算转化为模乘运算的特性,大大减轻了高并发模逆时线程束分化的现象,而且针对串行的同时模逆算法无法充分发挥并行平台全部性能的问题,设计了并行的同时模逆算法,使并行环境下模逆运算吞吐量有较大提升。
本发明通过对串行的同时模逆算法的并行化改进,对数据进行划分、启动多个线程运行同时模逆算法、最后对数据组进行整合,使同时模逆算法的运行能够充分利用并行计算平台的计算能力,同时避免了单一使用拓展欧几里得算法带来的线程束分化效果或单一使用基于费马小定理模逆法时带来的高昂计算开销,提高模逆算法在并行计算平台的吞吐量,从而提升依赖于模逆运算的密码算法或其他算法在并行计算平台的吞吐量。同时,本发明解决了在并行环境下因线程束分化导致的模逆吞吐量不理想的问题,实现了在并行环境下高吞吐量地计算模逆,可用于对依赖于模逆运算的算法(如SM2数字签名算法)在高吞吐量需求下的加速计算。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的并行环境下高吞吐量的模逆计算方法流程图。
图2是本发明实施例提供的并行环境下高吞吐量的模逆计算方法原理图。
图3是本发明实施例提供的并行环境下高吞吐量的模逆计算系统结构示意图。
图4是本发明实施例提供的实例数据处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种并行环境下高吞吐量的模逆计算方法及系统,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的并行环境下高吞吐量的模逆计算方法括以下步骤:
S101,数据划分阶段:根据输入数据的规模和并行计算平台的计算能力选择合适的参数,所述参数表示分组后每组包含数据的个数;根据所述参数对数据进行分组并编号,建立原始输入数据与分组后数据之间的一一映射关系;
S102,并行求逆阶段:在并行计算设备上开启多个线程接收对应多组数据的输入,线程间并行运行同时模逆算法;
S103,数据组整合阶段:经过S102,所有线程运行结束后可得到多组模逆数据;根据S101中建立的映射关系,将多组非完整数据整合为一组完整数据,即为所求的所有模逆值。
本发明提供的并行环境下高吞吐量的模逆计算方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的并行环境下高吞吐量的模逆计算方法仅仅是一个具体实施例而已。
本发明实施例提供的并行环境下高吞吐量的模逆计算方法原理图如图2所示。
如图3所示,本发明实施例提供的并行环境下高吞吐量的模逆计算系统包括:基于并行平台计算资源的数据划分模块、基于同时模逆算法的并行求逆模块、基于映射关系的数据组整合模块、基于历史运行结果的性能分析模块。
基于并行平台计算资源的数据划分模块,包括参数选取子模块、数据分组子模块、映射关系建立子模块,用于将输入的数据划分为供并行求逆模块并行处理的多组数据,并建立划分后数据与原始输入数据的映射关系;
基于同时模逆算法的并行求逆模块,包括模逆计算子模块和同时模逆算法子模块,用于通过启动多个线程并行运行同时模逆算法计算子模逆,其中每个线程处理划分后的一组数据;所述模逆计算子模块根据并行平台的模乘计算能力高低,选择使用基于费马小定理或基于拓展欧几里得算法的求逆子模块,用于计算单个模逆值;同时模逆算法子模块接受一组输入值,通过运行同时模逆算法并调用模逆计算子模块计算得到一组模逆值;
基于映射关系的数据组整合模块,用于接收并行求逆模块计算得到的每组数据的模逆值,并根据数据划分模块建立的划分后数据与原始输入数据的映射关系,将多组模逆值整合为一组模逆值,每个模逆值为对应输入数据的模逆;
基于历史运行结果的性能分析模块,包括数据记录子模块和分析反馈子模块,所述数据记录子模块将在每次算法运行完毕时计算并记录本次运行吞吐量;分析反馈子模块通过模逆运算吞吐量来评估本次运行效果,并根据历史模逆吞吐量和历史参数来调整运行参数,并将新参数反馈给参数选择子模块,直至模逆吞吐量趋于稳定。
下面结合实施例对本发明的技术方案作进一步的描述。
实施例1
本发明针对提高并行计算平台上模逆运算吞吐量的目的,提出的基于同时模逆算法的并行化改进的高吞吐量模逆计算方法,具体过程如下:
S1:数据划分阶段,根据输入数据的规模和并行计算平台的计算能力选择合适的参数,该参数表示分组后每组包含数据的个数,根据此参数对数据进行分组并编号,然后建立原始输入数据与分组后数据之间的一一映射关系。
S2:并行求逆阶段,在并行计算设备上开启多个线程接收对应多组数据的输入,线程间并行运行同时模逆算法。具体步骤为:输入值预处理、模逆计算和模逆迭代计算。输入值预处理步骤计算输入序列每个值与它之前所有输入值的模乘积;模逆算步骤根据并行计算平台的模乘计算能力强弱选择使用基于费马小定理的模拟法或基于拓展欧几里得算法的模逆法,然后计算经过预处理后的序列最后一值的模逆;模逆迭代计算步骤通过对临时变量的迭代,计算每个预处理值与临时变量的模乘来计算每个输入值的模逆。
S3:数据组整合阶段,经过S2,所有线程运行结束后可得到多组模逆数据,根据S1中建立的映射关系,可将多组非完整数据整合为一组完整数据,即为本发明的方法所求所有模逆值。
实施例2
如图4所示,本发明的并行环境下高吞吐量的模逆计算方法,接受a1,a2,...,a2048共2048个待求逆值和模数p,输出
Figure BDA0002912164380000101
共2048个模逆值,ai
Figure BDA0002912164380000102
和p均为256比特大整数,包括三个阶段:
(1)数据划分阶段,根据待求逆值的个数2048和并行计算平台的计算能力选择参数k=32,将待求逆值划分为编号i=1,2,...,64共64组数据,其中每组数据包含编号j=1,2,...,32共32个待求逆值。完成划分后,建立a1,a2,...,a2048这2048个输入值与划分后的数据ai,j(i=1,2,...,64,j=1,2,...,32)的映射关系:
Figure BDA0002912164380000103
(2)并行求逆阶段,并行计算设备上开启64个线程接收对应64组数据作为输入,每个线程接收32个待求逆值,运行同时模逆算法,输出这些待求逆值关于模p的逆。线程i接收输入值aij(j=1,2,...,k)并运行同时模逆算法。
其中输入值预处理步骤的计算过程为:
①ci,1←ai,1
②For j=2,3,...,k do:
ci,j←ci,j-1ai,j(mod p);
模逆计算阶段步骤计算:
Figure BDA0002912164380000104
模逆迭代计算步骤计算过程为:
④Forj=k,k-1,...,2do:
Figure BDA0002912164380000105
ui←uiai,j(mod p);
Figure BDA0002912164380000111
经过上述步骤计算可得到:
Figure BDA0002912164380000112
其中k=32。
(3)数据组整合阶段,经过阶段(2),所有线程运行结束后可得到
Figure BDA0002912164380000113
共2048个逆值,根据阶段(1)中a1,a2,...,a2048与ai,j(i=T,2,...,64,j=1,2,...,32)的映射关系,可将
Figure BDA0002912164380000114
整合为
Figure BDA0002912164380000115
即为本发明的方法所求的2048个模逆值。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (7)

1.一种并行环境下高吞吐量的模逆计算方法,其特征在于,所述并行环境下高吞吐量的模逆计算方法包括:
数据划分阶段:根据输入数据的规模和并行计算平台的计算能力选择合适的参数,所述参数表示分组后每组包含数据的个数;根据所述参数对数据进行分组并编号,建立原始输入数据与分组后数据之间的一一映射关系;
并行求逆阶段:在并行计算设备上开启多个线程接收对应多组数据的输入,线程间并行运行同时模逆算法;
数据组整合阶段:所有线程运行结束后可得到多组模逆数据;根据步骤一中建立的映射关系,将多组非完整数据整合为一组完整数据,即为所求的所有模逆值。
2.如权利要求1所述的并行环境下高吞吐量的模逆计算方法,其特征在于,所述数据划分阶段包括三个子阶段:参数选取阶段、数据分组阶段、映射关系建立阶段,包括:
(1)参数选取阶段:根据待求逆值的个数m和并行计算平台的计算能力选择合适的参数k;其中,所述k表示在完成数据分组阶段后,每组数据包含待求逆值的个数;若k越大,则本计算方法的并行程度越不明显,无法发挥并行计算平台的全部性能;若k越小,则实际进行的模逆运算次数越多、计算方法的总计算量越多、线程束分化程度越明显,计算方法对模逆运算的吞吐量提升越不明显;由于k值的选择对方法的性能影响较大,需根据性能分析模块的分析结果不断对k值进行调整;
(2)数据分组阶段:将待求逆值划分为编号
Figure FDA0002912164370000011
Figure FDA0002912164370000012
组数据,其中前
Figure FDA0002912164370000013
组数据中每组数据包含编号j=1,2,...,k共k个待求逆值,第
Figure FDA0002912164370000014
组数据包含编号
Figure FDA0002912164370000015
Figure FDA0002912164370000016
个待求逆值;分组后的数据为
Figure FDA0002912164370000021
其中i表示组编号,j表示组内编号;
(3)映射关系建立阶段:a1,a2,...,am这m个输入值与分组后的数据
Figure FDA0002912164370000022
建立映射关系如下:
Figure FDA0002912164370000023
3.如权利要求1所述的并行环境下高吞吐量的模逆计算方法,其特征在于,所述并行求逆阶段,包括:并行计算设备上开启
Figure FDA0002912164370000024
个线程接受对应
Figure FDA0002912164370000025
组数据的输入,每个线程最大接受k个待求逆值输入,
Figure FDA0002912164370000026
个线程并行运行同时模逆算法,每个线程输出所接收的待求逆值关于模p的逆。
4.如权利要求3所述的并行环境下高吞吐量的模逆计算方法,其特征在于,所述同时模逆算法分为三个子步骤:输入值预处理步骤、模逆计算步骤和模逆迭代计算步骤,包括:
1)输入值预处理步骤为:计算输入序列每个值与它之前所有输入值的模乘积,共需进行(k-1)次模乘运算;
2)模逆计算步骤,根据设备模乘计算能力的强弱,分别选择使用基于费马小定理或基于拓展欧几里得算法的模逆算法,计算经过预处理后的序列最后一值的模逆;
3)模逆迭代计算步骤通过对临时变量的迭代,计算每个预处理值与临时变量的模乘来计算每个输入值的模逆,该步骤需进行(k-1)轮迭代,每轮迭代进行2次模乘运算,共计2(k-1)次模乘运算,计算得到全部输入值的模逆。
5.如权利要求1所述的并行环境下高吞吐量的模逆计算方法,其特征在于,所述数据组整合阶段,包括:经过并行求逆阶段,所有线程运行结束后可得到
Figure FDA0002912164370000027
组共m个模逆值;根据数据划分阶段中建立的映射关系,并将这
Figure FDA0002912164370000031
组数据
Figure FDA0002912164370000032
整合为一组输出值
Figure FDA0002912164370000033
即为所求的m个逆值。
6.一种应用如权利要求1~5任意一项所述的并行环境下高吞吐量的模逆计算方法的并行环境下高吞吐量的模逆计算系统,其特征在于,所述并行环境下高吞吐量的模逆计算系统包括:
基于并行平台计算资源的数据划分模块、基于同时模逆算法的并行求逆模块、基于映射关系的数据组整合模块、基于历史运行结果的性能分析模块;
基于并行平台计算资源的数据划分模块,包括参数选取子模块、数据分组子模块、映射关系建立子模块,用于将输入的数据划分为供并行求逆模块并行处理的多组数据,并建立划分后数据与原始输入数据的映射关系;
基于同时模逆算法的并行求逆模块,包括模逆计算子模块和同时模逆算法子模块,用于通过启动多个线程并行运行同时模逆算法计算子模逆,其中每个线程处理划分后的一组数据;所述模逆计算子模块根据并行平台的模乘计算能力高低,选择使用基于费马小定理或基于拓展欧几里得算法的求逆子模块,用于计算单个模逆值;同时模逆算法子模块接受一组输入值,通过运行同时模逆算法并调用模逆计算子模块计算得到一组模逆值;
基于映射关系的数据组整合模块,用于接收并行求逆模块计算得到的每组数据的模逆值,并根据数据划分模块建立的划分后数据与原始输入数据的映射关系,将多组模逆值整合为一组模逆值,每个模逆值为对应输入数据的模逆;
基于历史运行结果的性能分析模块,包括数据记录子模块和分析反馈子模块,所述数据记录子模块将在每次算法运行完毕时计算并记录本次运行吞吐量;分析反馈子模块通过模逆运算吞吐量来评估本次运行效果,并根据历史模逆吞吐量和历史参数来调整运行参数,并将新参数反馈给参数选择子模块,直至模逆吞吐量趋于稳定。
7.如权利要求6所述的并行环境下高吞吐量的模逆计算系统,其特征在于,所述基于并行平台计算资源的数据划分模块,包括:
参数选取子模块,用于根据输入数据的规模和并行计算平台的计算能力选择合适的参数k;其中,所述k表示在完成数据分组阶段后,每组数据包含待求逆值的个数,根据性能分析模块的分析结果不断对k值进行调整;
数据分组子模块,用于根据参数k,将输入数据a1,a2,...,am分为
Figure FDA0002912164370000041
组,分组后的数据为
Figure FDA0002912164370000042
其中i表示组编号,j表示组内编号;
映射关系建立子模块,用于建立原始输入数据与分组数据间的映射关系;其中,所述a1,a2,...,am这m个输入值与分组后的数据
Figure FDA0002912164370000043
建立映射关系如下:
Figure FDA0002912164370000044
CN202110090167.1A 2021-01-22 2021-01-22 一种并行环境下高吞吐量的模逆计算方法及系统 Active CN112799637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110090167.1A CN112799637B (zh) 2021-01-22 2021-01-22 一种并行环境下高吞吐量的模逆计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110090167.1A CN112799637B (zh) 2021-01-22 2021-01-22 一种并行环境下高吞吐量的模逆计算方法及系统

Publications (2)

Publication Number Publication Date
CN112799637A true CN112799637A (zh) 2021-05-14
CN112799637B CN112799637B (zh) 2023-03-14

Family

ID=75811286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110090167.1A Active CN112799637B (zh) 2021-01-22 2021-01-22 一种并行环境下高吞吐量的模逆计算方法及系统

Country Status (1)

Country Link
CN (1) CN112799637B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113628094A (zh) * 2021-07-29 2021-11-09 西安电子科技大学 一种基于gpu的高吞吐量sm2数字签名计算系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651121A (en) * 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
JP2002175180A (ja) * 2000-12-06 2002-06-21 Matsushita Electric Ind Co Ltd 逆数演算方法及び逆数演算装置並びに逆数演算プログラムを記録したコンピュータ読み取り可能な記録媒体
CN105426345A (zh) * 2015-12-25 2016-03-23 南京大学 一种矩阵求逆运算方法
CN107040385A (zh) * 2017-05-23 2017-08-11 广东工业大学 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651121A (en) * 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
JP2002175180A (ja) * 2000-12-06 2002-06-21 Matsushita Electric Ind Co Ltd 逆数演算方法及び逆数演算装置並びに逆数演算プログラムを記録したコンピュータ読み取り可能な記録媒体
CN105426345A (zh) * 2015-12-25 2016-03-23 南京大学 一种矩阵求逆运算方法
CN107040385A (zh) * 2017-05-23 2017-08-11 广东工业大学 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨同杰等: "一种双域Montgomery求逆算法与硬件实现", 《计算机工程与应用》 *
郭龙祥等: "STMV波束形成算法的计算效率优化研究", 《声学技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113628094A (zh) * 2021-07-29 2021-11-09 西安电子科技大学 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
CN113628094B (zh) * 2021-07-29 2024-03-26 西安电子科技大学 一种基于gpu的高吞吐量sm2数字签名计算系统及方法

Also Published As

Publication number Publication date
CN112799637B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
Yu et al. Gillis: Serving large neural networks in serverless functions with automatic model partitioning
CN113628094B (zh) 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
CN111373694B (zh) 零知识证明硬件加速器及其方法
CN113783702A (zh) 一种椭圆曲线数字签名与验签的硬件实现方法和系统
CN112799637B (zh) 一种并行环境下高吞吐量的模逆计算方法及系统
US9632752B2 (en) System and method for implementing a multiplication
CN117149421B (zh) 边缘计算任务卸载和资源分配方法、装置及电子设备
Zhao et al. Hardware acceleration of number theoretic transform for zk‐SNARK
WO2021164047A1 (en) Zero knowledge proof hardware accelerator and the method thereof
Wu et al. Skeletongcn: a simple yet effective accelerator for gcn training
WO2023236899A1 (zh) 数据处理方法、装置、设备及存储介质
CN111917548B (zh) 基于gpu与cpu异构结构的椭圆曲线数字签名方法
CN115344526B (zh) 一种数据流架构的硬件加速方法及装置
WO2023071566A1 (zh) 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
WO2023108801A1 (zh) 基于cpu-gpu异构架构的数据处理方法、设备以及存储介质
CN110232289A (zh) 椭圆曲线密码的高速倍点运算方法
WO2023108800A1 (zh) 基于cpu-gpu异构架构的性能分析方法、设备以及存储介质
Chen et al. SDTP: Accelerating wide-area data analytics with simultaneous data transfer and processing
De Stefani On the I/O complexity of hybrid algorithms for Integer Multiplication
US20210258159A1 (en) Incremental assessment of integer datasets
US20230029761A1 (en) Run-time reconfigurable accelerator for matrix multiplication
US20220350570A1 (en) Pipelined hardware to accelerate modular arithmetic operations
CN114531241B (zh) 数据加密方法、装置、使用该方法的电子设备和存储介质
CN112532464B (zh) 一种跨多数据中心的数据分布式处理加速方法及其系统
WO2022246617A1 (zh) 卷积运算方法、图像处理方法、装置和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant