CN109710308B - 任务的处理方法、装置和系统 - Google Patents

任务的处理方法、装置和系统 Download PDF

Info

Publication number
CN109710308B
CN109710308B CN201711015972.8A CN201711015972A CN109710308B CN 109710308 B CN109710308 B CN 109710308B CN 201711015972 A CN201711015972 A CN 201711015972A CN 109710308 B CN109710308 B CN 109710308B
Authority
CN
China
Prior art keywords
modular
sub
task
segment
multiplier
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.)
Active
Application number
CN201711015972.8A
Other languages
English (en)
Other versions
CN109710308A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201711015972.8A priority Critical patent/CN109710308B/zh
Priority to TW107129269A priority patent/TW201917573A/zh
Priority to JP2020523022A priority patent/JP2021501406A/ja
Priority to US16/169,836 priority patent/US11018864B2/en
Priority to EP18871143.6A priority patent/EP3701368B1/en
Priority to PCT/US2018/057359 priority patent/WO2019084170A1/en
Publication of CN109710308A publication Critical patent/CN109710308A/zh
Application granted granted Critical
Publication of CN109710308B publication Critical patent/CN109710308B/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/722Modular multiplication
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • 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)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种任务的处理方法、装置和系统。其中,该方法包括:获取多个任务;根据所述多个任务的工作量,对计算资源分段;根据分段结果,设置输入操作数。本发明解决了现有技术中对任务按照不同的字长模式执行对应的处理,导致计算资源浪费的技术问题。

Description

任务的处理方法、装置和系统
技术领域
本发明涉及数据处理领域,具体而言,涉及一种任务的处理方法、装置和系统。
背景技术
RSA是一种重要的非对称签名/加密算法,广泛应用于现有的网络通信中(如HTTPS)。为了保证RSA的加解密性能,一般对算法步骤中最主要的两种运算:模平方(平方及取模)、模乘(乘法及取模)分别采用对应的加速单元实现。RSA的主体算法过程就是利用这两种运算单元做迭代计算处理,处理的序列是由输入的指数变换后得到。
通过硬件加速单元可以将运算密集的RSA操作在cpu之外单独进行,cpu能够处理更多的协议栈和操作系统层面的请求。在硬件加速方案中,通常做法是把底数、指数、模值都配置到硬件加速单元,然后进行计算任务的卸载。为了支持不同模式的RSA计算任务,例如RSA-4096、RSA-2048、RSA-1024等,硬件逻辑电路的可重构设计、资源复用、并行任务计算等问题就成为了亟待解决的关键技术点。
下面对于不同字长模式的RSA计算任务,以RSA-4096、RSA-2048、RSA-1024这3种相对常见的字长为例,可以设计出RSA-4096的模幂计算模块,对于RSA-2048和RSA-1024两种模式,将操作数的高位进行补零、然后仍然使用RSA-4096的模块进行计算,这种方式虽然保证了每种字长模式下的计算任务都以尽可能高的吞吐率完成,但是由于高位的补零操作造成了资源的大量浪费。
针对现有技术中对任务按照不同的字长模式执行对应的处理,导致计算资源浪费的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种任务的处理方法、装置和系统,以至少解决现有技术中对任务按照不同的字长模式执行对应的处理,导致计算资源浪费的技术问题。
根据本发明实施例的一个方面,提供了一种任务的处理方法,包括:获取多个任务;根据所述多个任务的工作量,对计算资源分段;根据分段结果,设置输入操作数。
根据本发明实施例的另一方面,还提供了一种任务的处理系统,包括:控制器,用于获取多个任务,根据所述多个任务的工作量,对计算资源分段,并根据分段结果,设置输入操作数;指数移位器,包括多个分段指数移位器,其中,每个分段包括对应数量的分段指数移位器。
根据本发明实施例的另一方面,还提供了一种任务的处理装置,包括:获取模块,用于获取多个任务;分段模块,用于根据所述多个任务的工作量,对计算资源分段;设置模块,用于按照分段结果设置输入操作数。
根据本发明实施例的另一方面,还提供了一种存储介质,其特征在于,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的任务的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行上述的任务的处理方法。
根据本发明实施例的另一方面,还提供了一种系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取多个任务;根据所述多个任务的工作量,对计算资源分段;根据分段结果,设置输入操作数。
在本发明实施例中,通过任务的工作数量对硬件进行分段操作,即对计算资源进行分段,从而实现了运算模块的并行化重构,使得运算模块能够根据任务进行动态配置对应的计算资源,以支持多个计算任务的并行处理;且对于较短字长模式或者混合字长模式的大量计算任务,可以实现计算资源的极高利用率。从而解决了现有技术中对任务按照不同的字长模式执行对应的处理,导致计算资源浪费的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本申请实施例1的一种任务的处理系统的示意图;
图2是一种RSA运算模块结构示意图;
图3是根据本申请实施例1的一种RSA运算模块结构示意图;
图4是根据本申请实施例1的一种分段指数移位器的示意图;
图5是根据本申请实施例1的一种操作数opA/opB分段示意图;
图6是根据本申请实施例1的一种带有修正选通的多级模乘器阵列的示意图;
图7是根据图4、图5和图6的一种RSA运算模块的原理示意图;
图8是根据本申请实施例2的一种用于实现任务的处理方法的计算机终端(或移动设备)的硬件结构框图;
图9是根据本发明实施例2的一种任务的处理方法的流程图;
图10是根据本申请实施例3的一种任务的处理装置的示意图;以及
图11根据本发明实施例4的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
RSA:RSA是一种重要的非对称签名/加密算法,广泛应用于现有的网络通信中(如HTTPS)。RAS算法是一种非对称加密算法,其具有加密密钥和解密密钥,其中,加密密钥是公开密钥,解密密钥是保密密钥。
实施例1
对于现有技术中的实现RSA的硬件(如下简称RSA运算模块)每次只能进行一组模幂计算,且都会按照RSA所支持的最大位宽进行计算,从而使得在进行位宽较小的RSA的运算时,需要进行高位补零操作,导致运算资源浪费,且运算效率低的问题,本申请提出了一种任务的处理系统,图1是本申请实施例1的一种任务的处理系统的示意图,结合图1所示,该系统包括:
控制器10,用于获取多个任务,根据多个任务的工作数量,对计算资源分段,并根据分段结果,设置输入操作数。
具体的,上述多个任务可以是进行RSA加密运算的中的模乘运算任务,RSA加密运算通过模乘运算得到固定长度的非对称加密算法所使用的密钥,例如:如果任务为RSA-2048,则RSA运算模块的任务为生成长度为2048bit的密钥。
为了使任务处理系统能够对多个任务能够进行并行处理,需要根据任务的工作量对计算资源进行分段操作。计算资源可以包括用于处理任务的硬件设备和存储空间等,对计算资源进行分段,可以是将计算资源进行分割,使得分割后的每个计算资源都能够独立的处理任务,且多个分段后的计算资源能够通过连接关系并行或串行的进行任务处理。
具体的,不同类型的RSA运算模块所能够支持的最大位宽不同,同时不同类型的RSA运算模块所包括的分段的数量以及每个分段的位宽也不同。以最大位宽为RSA-4096模式、最多支持8个分段的RSA运算模块为例,每个分段位宽为512。如果任务为1个RSA-2048和2个RSA-1024任务,则可以将RSA-4096中的四个分段用于进行RSA-2048的运算,将RSA-4096中的两个分段用于进行RSA-1024的运算。
指数移位器20,包括多个分段指数移位器,其中,每个分段包括对应数量的分段指数移位器。具体的,指数移位器中所包括的多个分段指数移位器与RAS硬件中的分段相对应。
在上述方案中,以最大位宽为RSA-4096模式、最多支持8个分段,任务为1个RSA-2048和2个RSA-1024任务为例,控制器对其进行分段的分段结果为将RSA-4096中的四个分段用于进行RSA-2048的运算,将RSA-4096中的两个分段用于进行RSA-1024的运算,上述RSA-4096具有两个操作数opA和opB,且opA和opB的长度均为4096bit,根据分段结果设置操作数opA和opB可以是将opA和opB都分为位宽为512bit的8段,其中,分段1至分段4用于输入任务RSA-2048的操作数,分段5至分段6用于输入任务RSA-1024的操作数,分段7至分段8用于输入另一个任务RSA-1024的操作数。
由上述实施例可以看出,在进行RSA-2048的计算任务时,数据通路中可以容纳2个任务同时进行。如果一次RSA-2048计算任务完成的时间为T,则N个RSA-2048的计算任务需要的时间为N/2*T时间,效率与现有技术的方案相比提高了约1倍。
上述方案通过任务的工作量对硬件进行分段操作,即对计算资源进行分段,从而实现了运算模块的并行化重构,使得运算模块能够根据任务进行动态配置对应的计算资源,以支持多个计算任务的并行处理;且对于较短字长模式或者混合字长模式的大量计算任务,可以实现计算资源的极高利用率。从而解决了现有技术中对任务按照不同的字长模式执行对应的处理,导致计算资源浪费的技术问题。
下面以运算模块为RSA运算模块进行说明,作为一种可选的实施例,上述系统还包括:
多级模乘器,级联多个子模乘器,用于在按照所述分段结果设置输入操作数之后,对应的子模乘器分别对每个任务进行模乘计算。
操作数用于为多级模乘器输入用于进行模乘计算的数据,按照分段结果设置操作数可以为根据分段结果对操作数进行分段。
图2是一种RSA运算模块结构示意图,结合图2所示,RSA运算模块结构主要包括:
(1)控制器。在整个模幂运算的迭代过程中,生成正确的控制序列。
(2)指数移位器。即指数寄存器。
(3)寄存器堆。用来存储计算任务中的底数、指数、模、以及其他中间结果。
(4)操作数opA/opB。用来选通模乘器的两个输入因子。
(5)模乘器。核心运算单元,可视为模幂运算的基本计算单元。(模乘器的模数modulus也是来自寄存器堆,图中未标出)
控制器根据指数移位器的数据状态,对模乘单元的输入操作数opA、opB进行设置,并通过迭代完成一系列的模乘计算,并将每次的结果进行更新。
从上述结构可看出,该方案的缺点在于,对于具体确定的硬件设计,输入操作数opA、opB的位宽是确定的。同时,由于每次计算只能够完成1组模幂计算,所以在硬件实现中一般都会按照支持的最大RSA位宽进行例化,这样在需要进行其他位宽(小于最大RSA位宽的位宽)的RSA计算时会导致资源浪费、时间效率较低。例如:该方法实现的RSA-4096运算模块,在进行RSA-2048的计算任务时,需要将高位补零,其实际应用的计算资源只有一半。记一次RSA-2048计算任务完成的时间为T,则N个RSA-2048的计算任务所需要的时间为N*T。
而在本申请提出的方案中,以最大位宽为RSA-4096模式、最多支持8个分段,任务为1个RSA-2048和2个RSA-1024任务为例,在向8分段分别输入操作数之后,将8个操作数分段分别接入对应的子模乘器,作为模乘器的输入值。分段1至分段4的操作数接入的模乘器用于对任务RSA-2048的操作数进行模乘运算,分段5至分段6的操作数接入的模乘器用于对任务RSA-1024的操作数进行模乘运算,分段7至分段8的操作数接入模乘器用于对另一个任务RSA-1024的操作数进行模乘运算。
作为一种可选的实施例,上述系统还包括:寄存器堆,用于存储所述每个子模乘器计算得到的中间结果。
具体的,上述中间结果为迭代过程中子模乘器得到的结果,用于进行下一次迭代运算。同时,寄存器堆还用于存储任务中的底数、指数和模。
作为一种可选的实施例,上述控制器还用于按照硬件的最大位宽和每个分段的最小位宽,确定分段指数移位器的总数量。
作为一种可选的实施例,上述控制器还用于基于所述任务的工作数量和每个任务的位宽对所述多个分段指数移位器进行分段处理,其中,所述分段结果为给每个任务分配的分段,每个分段包括对应数量的分段指数移位器。
作为一种可选的实施例,在上述任务的处理系统中,任意两个相邻的分段之间的修正选通控制处于断开状态,每个分段内部包括的分段指数移位器之间的修正选通控制处于连通状态,且为线性位移。
作为一种可选的实施例,上述控制器还用于通过控制器的第一修正选通控制信号控制任意两个相邻的分段之间是否执行跨分段移位。
作为一种可选的实施例,上述控制器还用于按照每个任务分配的分段对所述输入操作数进行分段,其中,在按照所述分段结果设置输入操作数之后,将所述输入操作数的分段输出接入对应的子模乘器。
作为一种可选的实施例,上述控制器还用于按照每个任务分配的分段对所述多级模乘器进行分段,确定每个任务对应的分段子模乘器;使用每个任务对应的分段子模乘器分别进行模乘计算。
作为一种可选的实施例,在上述任务的处理系统中,任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
作为一种可选的实施例,上述控制器还用于通过控制器的第二修正选通控制信号控制任意一个分段子模乘器使用上一级的模乘进位项作为下一级的模乘偏置项。
图3是根据本申请实施例1的一种RSA运算模块结构示意图,结合图3所示,该RSA运算模块包括:
(1)控制器。在整个模幂运算的迭代过程中生成正确的控制序列。
(2)分段指数移位器。指数移位器被均匀分成若干个分段,每个分段内部都是线性移位。在两个相邻分段之间,按照控制器的修正选通信号决定是否要进行跨分段移位。
图4是根据本申请实施例1的一种分段指数移位器的示意图,结合图4所示,该RSA运算模块包括n段单位指数移位器,每个单位分段指数移位器都接收控制器输入的修正选通信号,该修正选通信号用于指示是否要进行跨分段移位。修正选通信号是控制器根据分配到的计算任务生成的,可以根据计算任务向分段指数移位器中的每个分段移位器下发修正选通信号,以指示每个分段指数移位器之间的连通状态。
(3)寄存器堆。用来存储计算任务中的底数、指数、模、以及其他中间结果。
(4)可分段操作数opA/opB。用来选通两个输入因子,每个因子进行分段后,将每个分段输出接到对应的带有修正选通的多级模乘器。
图5是根据本申请实施例1的一种操作数opA/opB分段示意图,结合图5所示,输入因子操作数opA和操作数opB都被分为n段,并通过控制器的修正选通信号来控制接入到多级模乘器中的分段。
(5)带有修正选通的多级模乘器。由多个小模乘器级联而成,每个小模乘器能够进行对应所支持的最小分段长度的模乘运算。当需要进行比最小分段长度更大的模乘计算时,需要将对应的模乘器做级联,分段模乘的每一步骤都需要用上一级的模乘进位项作为下一级的模乘偏置项(即修正项),由控制器的修正选通信号控制。(模乘器的模数modulus也是来自寄存器堆,图中未标出,分段处理方式与(4)类似。)
图6是根据本申请实施例1的一种带有修正选通的多级模乘器阵列的示意图,结合图6所示,该多级模乘器阵列包括n个模乘器,每个模乘器接收对应的opA或opB的分段作为模乘器的操作数,并接收控制器发送的控制信号,每个模乘器之间还通过修正选通信号接通,当上一级模乘器与下一级模乘器之间的修正选通信号接通时,将上一级模乘器进位项作为下一级模乘器的修正项,来实现运算上的级联。
具体的,控制器根据任务的运算长度来确定模乘器之间的修正选通信号,当任务的运算长度小于一个模乘器所支持的最大运算长度时,可以不进行模乘器的级联,使用一个模乘器进行模乘运算;当任务的运算长度大于一个模乘器所支持的最大运算长度,小于两个模乘器所支持的最大运算长度时,可以将两个模乘器进行级联,即通过这两个模乘器之间的修正选通信号使这两个模乘器接通,从而使得在运算时,上一级模乘器的进位项能够作为下一级模乘器的修正项。
控制器根据分配到的计算任务的大小进行对应的分段操作,并按照分段情况对相应的修正选通单元进行控制。对每个分段,控制器都会根据对应的指数移位器的数据状态,对该分段的模乘单元的输入操作数opA、opB进行设置,并通过迭代完成一系列的模乘计算,并将每次的结果进行更新。
下面,以一个具体的实施例对上述RAS的动态重构进行描述,在该示例中,以硬件支持最大位宽为RSA-4096模式、最多支持8个分段(每个分段的最小位宽为4096/8=512)为例,进行1个RSA-2048和2个RSA-1024任务的并行计算。
(1)将最小分段依序标记为S1-S7。在该步骤中,上述最小分段为单位分段指数移位器,也为opA和opB的最小分段,同样的,如果将分段指数移位器分为S1-S7八段,则带有修正选通的多级模拟模乘器阵列中也包括八个模乘器。
(2)控制器根据分配到的计算任务,重新完成动态分段。将新的动态分段记为U1(S1-S4)、U2(S5-S6)、U3(S7-S8),其中RSA-2048计算任务分配给U1,另两个RSA-1024计算任务分配给U2和U3。
在上述步骤中,由于需要并行执行1个RSA-2048和2个RSA-1024的任务,每个分段是可以执行长度为512的任务,因此可以将每个分段分为三个部分,分别用于执行1个RSA-2048任务和2个RSA-1024任务。对于1个RSA-2048任务则需要四个分段来执行,对于2个RSA-1024任务则分别需要2个分段来执行,从而得到上述分组方式。
(3)控制器将分段指数移位器配置成U1、U2、U3对应的分配形式:S1-S4之间、S5-S6之间、S7-S8之间的修正选通控制接通,所以移位寄存器在这三个分段内部是连续移位。而S4-S5之间、S6-S7之间的修正选通控制断开,以保证三个分段之间互不影响。分段指数移位器的示意图见图4。
在得到动态分段的结果之后,通过控制器控制修正选通信号来根据动态分段的结果进行分段。由于S1-S4为一个分段,S5-S6为一个分段,S7-S8为一个分段,因此控制器可以控制将S1与S2之间、S2与S3之间、S3与S4之间、S5与S6之间、S7与S8之间的修正选通控制接通,并将S4与S5之间、S6与S7之间的修正选通控制断开。
(4)操作数分段。初始的opA和opB均为4096bit(与RSA-4096相对应),按照U1、U2、U3的分段划分成2048bit、1024bit、1024bit三段。将操作数进行分段,从而能够并行的执行1个RSA-2048和2个RSA-1024任务,具体见图5所示。
(5)多级模乘器分段。8个模乘器依次分为4、2、2三个部分,分别对应U1、U2、U3分段。在每个分段内部,单位模乘器之间的修正选通控制接通,低字节的进位结果会传递给高字节的模乘器做偏置修正,即每个分段内部的各个单位模乘器组合成了可处理对应分段大小的“分段模乘器”。在不同的分段之间,相应的修正选通控制断开,分段模乘器之间互不影响。带有修正选通控制的多级模乘器阵列示意图见图6。
图7是根据图4、图5和图6的一种RSA运算模块的原理示意图,其中,指数移位器(如图4所示)包括n个单位指数移位器,n个单位指数移位器之间包括修正选通控制,n个单位指数移位器根据任务进行分段,同一分段内的指数移位器的修正选通控制连通,不同分段内的指数移位器的修正选通控制断开,由控制器输出该修正选通信号。
操作数opA与opB(结合图5所示)被分为n段,每段操作数接入到对应的子模乘器中。子模乘器(结合图6所示)根据也根据任务进行分段,属于同一分段模乘器内的相邻子模乘器之间的修正选通控制连通,属于不同分段模乘器内的相邻子模乘器之间的修正选通控制断开,由控制器输出该修正选通信号。
实施例2
根据本发明实施例,还提供了一种任务的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图8示出了一种用于实现任务的处理方法的计算机终端(或移动设备)的硬件结构框图。如图8所示,计算机终端80(或移动设备80)可以包括一个或多个(图中采用802a、802b,……,802n来示出)处理器802(处理器802可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器804、以及用于通信功能的传输模块806。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端80还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
应当注意到的是上述一个或多个处理器802和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端80(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器804可用于存储应用软件的软件程序以及模块,如本发明实施例中的任务的处理方法对应的程序指令/数据存储装置,处理器802通过运行存储在存储器804内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的任务的处理方法。存储器804可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器804可进一步包括相对于处理器802远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端80。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端80的通信供应商提供的无线网络。在一个实例中,传输装置806包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置806可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端80(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图8所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图8仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图9所示的任务的处理方法。图9是根据本发明实施例2的一种任务的处理方法的流程图。
步骤S91,获取多个任务。
具体的,上述任务为进行RSA加密运算的中的模乘运算任务,RSA加密运算通过模乘运算得到固定长度的非对称加密算法所使用的密钥,例如:如果任务为RSA-2048,则RSA运算模块的任务为生成长度为2048bit的密钥。
步骤S93,根据多个任务的工作量,对计算资源分段。
上述计算资源可以是RSA运算模块的指数移位器。分段结果可以是为任务匹配一个或多个指数移位器。
步骤S93,根据分段结果,设置输入操作数。
操作数用于为多级模乘器输入用于进行模乘计算的数据,按照分段结果设置操作数可以为根据分段结果对操作数进行分段。以最大位宽为RSA-4096模式、最多支持8个分段,任务为1个RSA-2048和2个RSA-1024任务为例,上述RSA-4096具有两个操作数opA和opB,且opA和opB的长度均为4096bit,控制器对指数移位器进行分段的分段结果为将RSA-4096中的四个分段用于进行RSA-2048的运算,将RSA-4096中的两个分段用于进行RSA-1024的运算,根据分段结果设置操作数opA和opB可以是将opA和opB都分为长度分别为2048bit、1024bit和1024bit三段,长度为2048bit的opA和opB用于执行RSA-2048的运算,两个长度为1024bit的opA和opB用于分别执行两个RSA-1024的运算,该运算即为模乘用计算。
由上述实施例可以看出,在进行RSA-2048的计算任务时,数据通路中可以容纳2个任务同时进行。如果一次RSA-2048计算任务完成的时间为T,则N个RSA-2048的计算任务需要的时间为N/2*T时间,效率与现有技术的方案相比提高了约1倍。
上述方案通过任务的工作数量对硬件进行分段操作,即对计算资源进行分段,从而实现了运算模块的并行化重构,使得运算模块能够根据任务进行动态配置对应的计算资源,以支持多个计算任务的并行处理;且对于较短字长模式或者混合字长模式的大量计算任务,可以实现计算资源的极高利用率。从而解决了现有技术中对任务按照不同的字长模式执行对应的处理,导致计算资源浪费的技术问题。
下面以运算模块为RSA运算模块为例进行说明,作为一种可选的实施例,步骤S93,在根据分段结果,设置输入操作数之后,上述方法还包括:
步骤S95,根据输入操作数的设置结果,控制对应的子模乘器分别对每个任务进行模乘计算,其中,子模乘器之间级联连接构成多级模乘器。
在上述步骤中,RSA运算模块包括多个子模乘器。仍以RSA-4096运算模块为例,包括8个子模乘器,每个模乘器能够进行512为操作数的模乘计算。为了并行进行1个RSA-2048和2个RSA-1024任务,可以将4个子模乘器进行级联,构成一个多级模乘器,用于对任务RSA-2048的操作数进行模乘计算,并将剩余的4个子模乘器进行两两级联,得到两个多级模乘器,用于分别对两个任务RSA-1024进行模乘计算。
作为一种可选的实施例,在获取多个任务之前,方法还包括:按照硬件的最大位宽和每个分段的最小位宽,确定分段指数移位器的总数量。
在上述步骤中,上述硬件可以为RSA运算模块,RSA运算模块的最大位宽为RSA运算模块能够一次性执行任务的长度,每个分段的最小位宽为每个分段指数移位器能够执行的任务长度。
在一种可选的实施例中,以RSA-4096计算模块为例,所支持的最大位宽为4096bit,每个分段的最小位宽为512bit,因此该RSA运算模块的分段指数移位器的总数量,即RSA运算模块所包括的单位分段指数移位器的数量为8个。
作为一种可选的实施例,基于任务的工作数量和每个任务的位宽对多个分段指数移位器进行分段处理,其中,分段结果为给每个任务分配的分段,每个分段包括对应数量的分段指数移位器。
在上述步骤中,每个分段包括对应数量的分段指数移位器,对应数量用于指与任务长度相对应的数量。任务长度与每个分段指数移位器的位宽之比即为该任务对应的分段指数移位器的数量。
为了使任务处理系统能够对多个任务能够进行并行处理,因此需要根据任务的工作量进行分段操作。具体的,不同类型的RSA运算模块所能够支持的最大位宽不同,同时不同类型的RSA运算模块所包括的分段的数量以及每个分段的位宽也不同。仍以最大位宽为RSA-4096模式、最多支持8个分段的RSA运算模块为例,每个分段指数移位器所支持的位宽为512。如果任务为1个RSA-2048和2个RSA-1024任务,则可以将RSA-4096中的四个分段用于进行RSA-2048的运算,将RSA-4096中的两个分段用于进行RSA-1024的运算。
具体的,该RSA运算模块的8个分段分别用S1-S8表示,1个RSA-2048和2个RSA-1024任务的分段结果分别用U1、U2和U3表示,则分段结果为U1对应S1-S4、U2对应S5-S6、U3对应S7-S8,即其中RSA-2048计算任务分配给U1,另两个RSA-1024计算任务分配给U2和U3。
作为一种可选的实施例,任意两个相邻的分段之间的修正选通控制处于断开状态,每个分段内部包括的分段指数移位器之间的修正选通控制处于连通状态,且为线性位移。
在一种可选的实施例中,仍以RSA-4096模式、最多支持8个分段的RSA运算模块,并行执行1个RSA-2048和2个RSA-1024任务为例,结合图4所示,由于U1之中的S1-S4分配给了任务RSA-2048,而S1-S4中每个分段指数移位器的位宽为512bit,因此S1-S4进行级联才能够执行任务RSA-2048,即S1-S4之间的修正选通控制处于连通状态,相当于将四个512bit的分段指数移位器通过修正选通信号的级联构成一个2048bit的分段指数移位器。同理,U2中的S5-S6之间的修正选通控制也处于连通状态,U3中的S7-S8之间的修正选通控制也处于连通状态,分别用于执行2个RSA-1024任务。
而由于U1、U2和U3之间是并行运行的,因此U1、U2和U3之间的修正选通控制处于断开状态,即S4与S5之间的修正选通控制处于断开状态,S6-S7之间的修正选通控制处于断开状态。
作为一种可选的实施例,通过控制器的第一修正选通控制信号控制任意两个相邻的分段之间是否执行跨分段移位。
具体的,属于不同分段的分段指数移位器用于并行执行不同的任务,因此属于不同分段的两个相邻的分段指数移位器之间的修正选通控制处于断开状态。而在一个分段内的任意两个相邻的分段指数移位器之间的修正选通控制处于连通状态,也即,一个分段内的多个分段指数移位器用于共同执行同一任务,当任务需要分段中的多个分段指数移位器共同执行时,第一修正选通信号控制两个相邻分段指数移位器之间是否执行跨分段移位。
作为一种可选的实施例,按照分段结果,设置输入操作数,包括:按照每个任务分配的分段对输入操作数进行分段,其中,在按照分段结果设置输入操作数之后,将输入操作数的分段输出接入对应的子模乘器。
在上述步骤中,按照每个任务分配的分段对输入操作数进行分段,即为根据分段结果对操作数进行分段。首先,将操作数按照分段指数移位器的位宽进行分段,得到如图5所示的分段1至分段n,分段1至分段n中的每个分段都与分段指数移位器的位宽相同,再将分段后的操作数分别接入至对应的子模乘器。
操作数用于为多级模乘器输入用于进行模乘计算的数据,按照分段结果设置操作数可以为根据分段结果对操作数进行分段。在一种可选的实施例中,仍以最大位宽为RSA-4096模式、最多支持8个分段,任务为1个RSA-2048和2个RSA-1024任务为例,RSA-4096具有两个操作数opA和opB,且opA和opB的长度均为4096bit。控制器对其进行分段的分段结果为将RSA-4096中的四个分段用于进行RSA-2048的运算,将RSA-4096中的两个分段用于进行RSA-1024的运算,根据分段结果设置操作数opA和opB可以是将opA和opB都分为位宽为512bit的8段,其中,分段1至分段4用于输入任务RSA-2048的操作数,分段5至分段6用于输入任务RSA-1024的操作数,分段7至分段8用于输入另一个任务RSA-1024的操作数,再将8个操作数分别接入对应的子模乘器,作为模乘器的输入值。
作为一种可选的实施例,控制对应的子模乘器分别对每个任务进行模乘计算,包括:
步骤S951,按照每个任务分配的分段对多级模乘器进行分段,确定每个任务对应的分段子模乘器。
在上述步骤中,RSA运算模块的多级模乘器包括多个子模乘器,按照每个任务分配的分段对多级模乘器进行分段,即为确定每个任务对应的一个或多个子模乘器,若任务对应的分段子模乘器包括多个子模乘器,则将分段子模乘器中的多个子模乘器进行级联。
步骤S953,使用每个任务对应的分段子模乘器分别进行模乘计算。
在一种可选的实施例中,仍以最大位宽为RSA-4096模式、最多支持8个分段,任务为1个RSA-2048和2个RSA-1024任务为例,对多级模乘器的分段进行说明。
在该实施例中,分段1至分段4用于输入任务RSA-2048的操作数,分段5至分段6用于输入任务RSA-1024的操作数,分段7至分段8用于输入另一个任务RSA-1024的操作数,再将8个操作数分别接入对应的子模乘器,作为模乘器的输入值。
而操作数的分段1至分段4所接入的子模乘器构成一个分段子模乘器,用于对任务RSA-2048的操作数进行操作;操作数分段5至分段6接入的子模乘器构成一个分段子模乘器,用于对一个任务RSA-1024的操作数进行操作;操作数分段7至分段8所接入的子模乘器构成一个分段子模乘器,用于多另一个任务RSA-1024的操作数进行操作。
作为一种可选的实施例,任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
当子模乘器之间的修正选通控制接通,低字节的进位结果会传递给高字节的模乘器做偏置修正,即每个分段内部的多个子模乘器组合成了可处理对应任务的分段模乘器。在不同的分段之间,相邻的修正选通控制断开,也即分段模乘器之间互不影响,可并联执行任务。
在一种可选的实施例中,结合图6所示,每两个相邻的子模乘器之间都具有修正选通控制信号,当多个子模乘器之间的修正选通控制信号处于连通状态时,低字节的子模乘器能够向高字节的子模乘器发送偏置项,多个子模乘器构成用于处理一个任务的分段模乘器。当多个子模乘器之间的修正选通控制信号处于断开状态时,多个子模乘器分别用于处理不同的任务。
仍以最大位宽为RSA-4096模式、最多支持8个分段,任务为1个RSA-2048和2个RSA-1024任务为例,操作数的分段1至分段4所接入的子模乘器之间的修正选通控制处于连通状态;操作数分段5至分段6接入的子模乘器之间的修正选通控制处于连通状态;操作数分段7至分段8所接入的子模乘器之间的修正选通控制处于连通状态;而各个分段模乘器之间的修正选通控制处于断开状态。
作为一种可选的实施例,通过控制器的第二修正选通控制信号控制任意一个分段子模乘器使用上一级的模乘进位项作为下一级的模乘偏置项。
具体的,在任意一个分段模乘器中,上一级的模乘进位项即为该分段模乘器中的低字节的子模乘器生成的进位项,该进位项将作为下一级的模乘偏置项即为该分段模乘器中的高字节子模乘器的偏置项,也即,高字节的子模乘器通过第二修正选通控制信号获取由低字节的子模乘器生成的模乘进位项,作为其模乘偏置项。
在上述步骤中,由于一个分段模乘器中包括的多个子模乘器需要同时执行一个模乘计算任务,因此需要位宽相同的多个子模乘器分别执行不同位的模乘运算,而在模乘运算中低位需要向高位进位,则需要低字节的子模乘器生成进位项,作为高字节的子模乘器的偏置项。
进一步的,在得到每个分段模乘器的输出结果之后,还需要将每个分段模乘器的输出结果进行拼接,才能够得到最终的结果。
上述方案通过加入修正控制模块,实现了可根据每次分发任务的字长模式对数据通路进行动态配置,从而在不需要额外的配置存储空间的情况下,实现多任务并行处理。进一步地,对于较短字长RSA模式的计算任务还能够避免高位补零等操作,从而在保证高吞吐率的同时,在空间和时间两个维度都实现了非常高的资源利用率。在各种字长模式的计算任务密集分发的情况下,几乎可以达到100%的资源利用效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述任务的处理方法的任务的处理装置,如图10所示,该装置100包括:
获取模块102,用于获取多个任务。
分段模块104,用于根据所述多个任务的工作量,对计算资源分段。
设置模块106,用于按照分段结果设置输入操作数。
此处需要说明的是,上述获取模块102、分段模块104和设置模块106对应于实施例2中的步骤S91至步骤S95,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端70中。
作为一种可选的实施例中,上述装置还包括:控制模块,用于根据输入操作数的设置结果,控制对应的子模乘器分别对每个任务进行模乘计算,其中,子模乘器之间级联连接构成多级模乘器。
作为一种可选的实施例中,上述装置还包括:确定模块,用于在获取多个任务,并根据任务的工作数量进行分段操作,得到分段结果之前,按照硬件的最大位宽和每个分段的最小位宽,确定分段指数移位器的总数量。
作为一种可选的实施例中,基于任务的工作数量和每个任务的位宽对多个分段指数移位器进行分段处理,其中,所述分段结果为给每个任务分配的分段,每个分段包括对应数量的分段指数移位器。
作为一种可选的实施例中,任意两个相邻的分段之间的修正选通控制处于断开状态,每个分段内部包括的分段指数移位器之间的修正选通控制处于连通状态,且为线性位移。
作为一种可选的实施例中,通过控制器的第一修正选通控制信号控制任意两个相邻的分段之间是否执行跨分段移位。
作为一种可选的实施例中,设置模块包括:分段子模块,用于按照每个任务分配的分段对所述输入操作数进行分段,其中,在按照所述分段结果设置输入操作数之后,将所述输入操作数的分段输出接入对应的子模乘器。
作为一种可选的实施例中,控制模块包括:确定子模块,用于按照每个任务分配的分段对所述多级模乘器进行分段,确定每个任务对应的分段子模乘器;计算模块,用于使用每个任务对应的分段子模乘器分别进行模乘计算。
作为一种可选的实施例中,任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
通过控制器的第二修正选通控制信号控制任意一个分段子模乘器使用上一级的模乘进位项作为下一级的模乘偏置项。
实施例4
本发明的实施例可以提供一种终端,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
获取多个任务;根据所述多个任务的工作量,对计算资源分段;根据分段结果,设置输入操作数。
具体的,上述步骤的详细内容见实施例2,此处不再赘述。上述存储器还能够为处理器提供实施例2中的其他任务的处理方法中的步骤的指令。
实施例5
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行任务的处理方法中以下步骤的程序代码:获取多个任务;根据所述多个任务的工作量,对计算资源分段;根据分段结果,设置输入操作数。
可选地,图11根据本发明实施例4的一种计算机终端的结构框图。如图11所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1112、存储器1111、以及外设接口1114。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的任务的处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的任务的处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取多个任务;根据多个任务的工作量,对计算资源分段;根据分段结果,设置输入操作数。
可选的,上述处理器还可以执行如下步骤的程序代码:根据输入操作数的设置结果,控制对应的子模乘器分别对每个任务进行模乘计算,其中,子模乘器之间级联连接构成多级模乘器。
可选的,上述处理器还可以执行如下步骤的程序代码:在获取多个任务之前,方法还包括:按照硬件的最大位宽和每个分段的最小位宽,确定分段指数移位器的总数量。
可选的,上述处理器还可以执行如下步骤的程序代码:基于任务的工作数量和每个任务的位宽对多个分段指数移位器进行分段处理,其中,分段结果为给每个任务分配的分段,每个分段包括对应数量的分段指数移位器。
可选的,上述处理器还可以执行如下步骤的程序代码:任意两个相邻的分段之间的修正选通控制处于断开状态,每个分段内部包括的分段指数移位器之间的修正选通控制处于连通状态,且为线性位移。
可选的,上述处理器还可以执行如下步骤的程序代码:通过控制器的第一修正选通控制信号控制任意两个相邻的分段之间是否执行跨分段移位。
可选的,上述处理器还可以执行如下步骤的程序代码:按照分段结果设置输入操作数,包括:按照每个任务分配的分段对输入操作数进行分段,其中,在按照分段结果设置输入操作数之后,将输入操作数的分段输出接入对应的子模乘器。
可选的,上述处理器还可以执行如下步骤的程序代码:按照每个任务分配的分段对多级模乘器进行分段,确定每个任务对应的分段子模乘器;使用每个任务对应的分段子模乘器分别进行模乘计算。
可选的,上述处理器还可以执行如下步骤的程序代码:任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
可选的,上述处理器还可以执行如下步骤的程序代码:通过控制器的第二修正选通控制信号控制任意一个分段子模乘器使用上一级的模乘进位项作为下一级的模乘偏置项。
采用本发明实施例,提供了一种任务的处理方案。通过任务的工作数量对硬件进行分段操作,即对计算资源进行分段,从而实现了RSA运算模块的并行化重构,使得RSA运算模块能够根据任务进行动态配置对应的计算资源,以支持多个计算任务的并行处理;且对于较短字长模式或者混合字长模式的大量计算任务,可以实现计算资源的极高利用率。从而解决了现有技术中对任务按照不同的字长模式执行对应的处理,导致计算资源浪费的技术问题。
本领域普通技术人员可以理解,图11所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,计算机终端11还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例6
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的任务的处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取多个任务;根据所述多个任务的工作量,对计算资源分段;根据分段结果,设置输入操作数。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种任务的处理方法,其特征在于,包括:
获取多个任务;
根据所述多个任务的工作量,对计算资源分段;
根据分段结果,设置输入操作数;
其中,按照分段结果,设置输入操作数,包括:按照每个任务分配的分段对所述输入操作数进行分段,其中,在按照所述分段结果设置所述输入操作数之后,将所述输入操作数的分段输出接入对应的子模乘器;
在根据分段结果,设置输入操作数之后,所述方法还包括:根据所述输入操作数的设置结果,控制对应的所述子模乘器分别对每个任务进行模乘计算,其中,所述子模乘器之间级联连接构成多级模乘器;
其中,所述控制对应的所述子模乘器分别对每个任务进行模乘计算,包括:按照每个任务分配的分段对所述多级模乘器进行分段,确定每个任务对应的分段子模乘器;使用每个任务对应的分段子模乘器分别进行模乘计算,其中,任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
2.根据权利要求1所述的方法,其特征在于,在获取多个任务之前,所述方法还包括:按照硬件的最大位宽和每个分段的最小位宽,确定分段指数移位器的总数量。
3.根据权利要求2所述的方法,其特征在于,基于所述任务的工作量和所述每个任务的位宽对所述多个分段指数移位器进行分段处理,其中,所述分段结果为给所述每个任务分配的分段,每个分段包括对应数量的分段指数移位器。
4.根据权利要求3所述的方法,其特征在于,任意两个相邻的分段之间的修正选通控制处于断开状态,每个分段内部包括的分段指数移位器之间的修正选通控制处于连通状态,且为线性位移。
5.根据权利要求4所述的方法,其特征在于,通过控制器的第一修正选通控制信号控制任意两个相邻的分段之间是否执行跨分段移位。
6.根据权利要求1所述的方法,其特征在于,通过控制器的第二修正选通控制信号控制任意一个分段子模乘器使用上一级的模乘进位项作为下一级的模乘偏置项。
7.一种任务的处理系统,其特征在于,包括:
控制器,用于获取多个任务,根据所述多个任务的工作量,对计算资源分段,并根据分段结果,设置输入操作数;
指数移位器,包括多个分段指数移位器,其中,每个分段包括对应数量的分段指数移位器;
多级模乘器,级联多个子模乘器,用于在按照所述分段结果设置输入操作数之后,对应的子模乘器分别对每个任务进行模乘计算;
其中,根据分段结果,设置输入操作数,包括:按照每个任务分配的分段对所述输入操作数进行分段,其中,在按照所述分段结果设置所述输入操作数之后,将所述输入操作数的分段输出接入对应的所述子模乘器;
所述系统还用于:在根据分段结果,设置输入操作数之后,根据所述输入操作数的设置结果,控制对应的所述子模乘器分别对每个任务进行模乘计算,其中,所述子模乘器之间级联连接构成多级模乘器;
其中,所述系统还用于通过以下步骤控制对应的所述子模乘器分别对每个任务进行模乘计算:按照每个任务分配的分段对所述多级模乘器进行分段,确定每个任务对应的分段子模乘器;使用每个任务对应的分段子模乘器分别进行模乘计算,其中,任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:寄存器堆,用于存储所述每个子模乘器计算得到的中间结果。
9.一种任务的处理装置,其特征在于,包括:
获取模块,用于获取多个任务;
分段模块,用于根据所述多个任务的工作量,对计算资源分段;
设置模块,用于按照分段结果设置输入操作数;
其中,所述设置模块用于通过以下步骤按照分段结果设置输入操作数:按照每个任务分配的分段对所述输入操作数进行分段,其中,在按照所述分段结果设置所述输入操作数之后,将所述输入操作数的分段输出接入对应的子模乘器;
所述装置还用于:在根据所述分段结果,设置所述输入操作数之后,根据所述输入操作数的设置结果,控制对应的所述子模乘器分别对每个任务进行模乘计算,其中,所述子模乘器之间级联连接构成多级模乘器;
其中,所述装置还用于通过以下步骤控制对应的所述子模乘器分别对每个任务进行模乘计算:按照每个任务分配的分段对所述多级模乘器进行分段,确定每个任务对应的分段子模乘器;使用每个任务对应的分段子模乘器分别进行模乘计算,其中,任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至6中任意一项所述的任务的处理方法。
11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的任务的处理方法。
12.一种任务的处理系统,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
获取多个任务;
根据所述多个任务的工作量,对计算资源分段;
根据分段结果,设置输入操作数;
所述存储器还用于为所述处理器提供处理以下处理步骤的指令:
按照每个任务分配的分段对所述输入操作数进行分段,其中,在按照所述分段结果设置输入操作数之后,将所述输入操作数的分段输出接入对应的子模乘器;
在根据所述分段结果,设置所述输入操作数之后,根据所述输入操作数的设置结果,控制对应的所述子模乘器分别对每个任务进行模乘计算,其中,所述子模乘器之间级联连接构成多级模乘器;
其中,控制对应的所述子模乘器分别对每个任务进行模乘计算,包括:按照每个任务分配的分段对所述多级模乘器进行分段,确定每个任务对应的分段子模乘器;使用每个任务对应的分段子模乘器分别进行模乘计算,其中,任意两个相邻的分段子模乘器之间的修正选通控制处于断开状态,每个分段子模乘器内部包括的子模乘器之间的修正选通控制处于连通状态,且低字节的子模乘器的进位结果会传递给高字节的子模乘器做偏置修正。
CN201711015972.8A 2017-10-25 2017-10-25 任务的处理方法、装置和系统 Active CN109710308B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201711015972.8A CN109710308B (zh) 2017-10-25 2017-10-25 任务的处理方法、装置和系统
TW107129269A TW201917573A (zh) 2017-10-25 2018-08-22 任務的處理方法、裝置和系統
JP2020523022A JP2021501406A (ja) 2017-10-25 2018-10-24 タスク処理のための方法、デバイス、およびシステム
US16/169,836 US11018864B2 (en) 2017-10-25 2018-10-24 Method, device, and system for task processing
EP18871143.6A EP3701368B1 (en) 2017-10-25 2018-10-24 Method, device, and system for task processing
PCT/US2018/057359 WO2019084170A1 (en) 2017-10-25 2018-10-24 METHOD, DEVICE AND SYSTEM FOR TASK PROCESSING

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711015972.8A CN109710308B (zh) 2017-10-25 2017-10-25 任务的处理方法、装置和系统

Publications (2)

Publication Number Publication Date
CN109710308A CN109710308A (zh) 2019-05-03
CN109710308B true CN109710308B (zh) 2023-03-31

Family

ID=66171227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711015972.8A Active CN109710308B (zh) 2017-10-25 2017-10-25 任务的处理方法、装置和系统

Country Status (6)

Country Link
US (1) US11018864B2 (zh)
EP (1) EP3701368B1 (zh)
JP (1) JP2021501406A (zh)
CN (1) CN109710308B (zh)
TW (1) TW201917573A (zh)
WO (1) WO2019084170A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230060275A1 (en) * 2021-08-20 2023-03-02 International Business Machines Corporation Accelerating multiplicative modular inverse computation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513133A (en) * 1992-11-30 1996-04-30 Fortress U&T Ltd. Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
CN102131198A (zh) * 2011-03-01 2011-07-20 广州杰赛科技股份有限公司 认证系统中椭圆曲线密码运算装置的实现方法
EP2856303A1 (en) * 2012-05-30 2015-04-08 Intel Corporation Vector and scalar based modular exponentiation

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1341310C (en) 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
EP0947914B1 (en) * 1998-03-30 2004-12-15 Rainbow Technologies Inc. Computationally efficient modular multiplication method and apparatus
US6397241B1 (en) * 1998-12-18 2002-05-28 Motorola, Inc. Multiplier cell and method of computing
US6804696B2 (en) * 2000-12-19 2004-10-12 International Business Machines Corporation Pipelining operations in a system for performing modular multiplication
US6914983B2 (en) * 2000-12-19 2005-07-05 International Business Machines Corporation Method for checking modular multiplication
US20020116429A1 (en) * 2000-12-19 2002-08-22 International Business Machines Corporation System and method for modular multiplication
US6973470B2 (en) * 2001-06-13 2005-12-06 Corrent Corporation Circuit and method for performing multiple modulo mathematic operations
US20030120915A1 (en) 2001-11-30 2003-06-26 Brocade Communications Systems, Inc. Node and port authentication in a fibre channel network
US7036013B2 (en) 2002-01-31 2006-04-25 Brocade Communications Systems, Inc. Secure distributed time service in the fabric environment
US7873984B2 (en) 2002-01-31 2011-01-18 Brocade Communications Systems, Inc. Network security through configuration servers in the fabric environment
US20030163692A1 (en) 2002-01-31 2003-08-28 Brocade Communications Systems, Inc. Network security and applications to the fabric
US7243367B2 (en) 2002-01-31 2007-07-10 Brocade Communications Systems, Inc. Method and apparatus for starting up a network or fabric
DE10260660B3 (de) * 2002-12-23 2004-06-09 Infineon Technologies Ag Modulare Multiplikation mit paralleler Berechnung der Look-Ahead-Parameter u.a. bei der kryptographischen Berechnung
JPWO2005081181A1 (ja) 2004-02-20 2008-01-17 株式会社ルネサステクノロジ Icカードの製造方法およびicカード
JP4180024B2 (ja) * 2004-07-09 2008-11-12 Necエレクトロニクス株式会社 乗算剰余演算器及び情報処理装置
KR100652376B1 (ko) 2004-07-29 2006-12-01 삼성전자주식회사 분리 연산 가능한 구조를 가지는 모듈러 곱셈기와 이를포함하는 암호화 시스템
US9009778B2 (en) 2005-07-29 2015-04-14 Rpx Clearinghouse Llc Segmented network identity management
US20070055879A1 (en) * 2005-08-16 2007-03-08 Jianjun Luo System and method for high performance public key encryption
US20070083586A1 (en) * 2005-10-12 2007-04-12 Jianjun Luo System and method for optimized reciprocal operations
DE102006025677B4 (de) * 2005-10-28 2020-03-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer Summe mit einem Rechenwerk mit begrenzter Wortlänge
DE102006025673B9 (de) * 2005-10-28 2010-12-16 Infineon Technologies Ag Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls
DE102006025713B9 (de) * 2005-10-28 2013-10-17 Infineon Technologies Ag Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE102006025569A1 (de) * 2005-10-28 2007-05-03 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen einer Multiplikations-Additions-Operation und zum Berechnen eines Ergebnisses einer modularen Multiplikation
EP1845442B1 (en) * 2006-04-11 2011-11-09 STMicroelectronics Srl Computation of a modular multiplication with an electronic circuit
US7930337B2 (en) 2006-06-27 2011-04-19 Intel Corporation Multiplying two numbers
US8229109B2 (en) 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
US7826612B2 (en) * 2006-06-29 2010-11-02 Intel Corporation System, method and apparatus for an incremental modular process including modular multiplication and modular eduction
EP2062131A1 (de) 2006-09-07 2009-05-27 Micronas GmbH Schaltungen für die modulare arithmetik basierend auf der ergänzung von kettenbrüchen
US20080140753A1 (en) 2006-12-08 2008-06-12 Vinodh Gopal Multiplier
US7925011B2 (en) * 2006-12-14 2011-04-12 Intel Corporation Method for simultaneous modular exponentiations
US20090319804A1 (en) * 2007-07-05 2009-12-24 Broadcom Corporation Scalable and Extensible Architecture for Asymmetrical Cryptographic Acceleration
US8340280B2 (en) * 2008-06-13 2012-12-25 Intel Corporation Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations
US20100088526A1 (en) * 2008-10-02 2010-04-08 Mcm Portfolio Llc System and Method for Modular Exponentiation
US8392494B2 (en) 2009-06-26 2013-03-05 Intel Corporation Method and apparatus for performing efficient side-channel attack resistant reduction using montgomery or barrett reduction
US20110270902A1 (en) 2010-02-26 2011-11-03 Dimitrov Vassil S Efficient Multipliers Based on Multiple-Radix Representations
US8995651B1 (en) * 2010-06-11 2015-03-31 Marvell International Ltd. Multiple algorithm cryptography system
US20120098642A1 (en) 2010-10-20 2012-04-26 Mark Stanley Krawczewicz Luggage Tag With Bi-State Display
CN103959238B (zh) 2011-11-30 2017-06-09 英特尔公司 使用gpu/cpu体系结构的rsa的高效实现
WO2013085487A1 (en) * 2011-12-05 2013-06-13 Intel Corporation Efficient multiplication, exponentiation and modular reduction implementations
US9448846B2 (en) 2011-12-13 2016-09-20 International Business Machines Corporation Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US9444623B2 (en) * 2013-12-20 2016-09-13 Cryptography Research, Inc. Modular exponentiation optimization for cryptographic systems
EP3087470B1 (en) 2013-12-28 2020-03-25 Intel Corporation Rsa algorithm acceleration processors, methods, systems, and instructions
US9460302B2 (en) 2014-01-21 2016-10-04 Cofactor Computing Llc Method and system for shielding data in transit and data in memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513133A (en) * 1992-11-30 1996-04-30 Fortress U&T Ltd. Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
CN102131198A (zh) * 2011-03-01 2011-07-20 广州杰赛科技股份有限公司 认证系统中椭圆曲线密码运算装置的实现方法
EP2856303A1 (en) * 2012-05-30 2015-04-08 Intel Corporation Vector and scalar based modular exponentiation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Instruction set extension for long integer modulo arithmetic on RISC-based smart cards;J. Grossschadl;《14th Symposium on Computer Architecture and High Performance Computing, 2002. Proceedings》;20030225;全文 *

Also Published As

Publication number Publication date
JP2021501406A (ja) 2021-01-14
CN109710308A (zh) 2019-05-03
TW201917573A (zh) 2019-05-01
WO2019084170A1 (en) 2019-05-02
US11018864B2 (en) 2021-05-25
US20190123902A1 (en) 2019-04-25
EP3701368A4 (en) 2021-07-21
EP3701368A1 (en) 2020-09-02
EP3701368B1 (en) 2023-10-11

Similar Documents

Publication Publication Date Title
US20090300336A1 (en) Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
JP2002521720A (ja) モジューロ乗算のための回路および方法
US20210182074A1 (en) Apparatus and method to switch configurable logic units
CN106708468B (zh) 一种除法运算装置
CN109710308B (zh) 任务的处理方法、装置和系统
CN109376274B (zh) 基于区块链系统的出块方法、设备以及存储介质
US6341299B1 (en) Modular arithmetic coprocessor enabling the performance of non-modular operations at high speed
US20160239297A1 (en) Instruction Class for Digital Signal Processors
US6424987B1 (en) Method for the implementation of a specific modular multiplication operation relating to the montgomery method
KR100453230B1 (ko) 초타원곡선 암호화 프로세싱 장치
CN116126399A (zh) 双模式查找表结构及基于双模式查找表结构的查找方法
CN111191779B (zh) 一种数据处理方法、装置、处理器及计算机可读存储介质
JP6979076B2 (ja) 回路、システム、および組合せ結果を演算するように再設定可能な複数の再設定可能ユニットを備えたプロセッサにより実装される方法
CN1658152B (zh) 乘法器-累加器块模式划分
CN104734668A (zh) 一种插值滤波器
US20220350570A1 (en) Pipelined hardware to accelerate modular arithmetic operations
Antao et al. Compact and flexible microcoded elliptic curve processor for reconfigurable devices
Mirzaee et al. Design and Implementation of an ASIP-Based Crypto Processor for IDEA and SAFER K-64.
Cuevas-Farfán et al. A programmable FPGA-based cryptoprocessor for bilinear pairings over F 2m
CN113625994B (zh) 一种数据处理方法和处理核
CN112863475B (zh) 一种语音合成方法、装置和介质
JP3099255B2 (ja) 剰余乗算器
EP1351129A2 (en) A divider apparatus and associated method
Andrzejczak An Improved Architecture of a Hardware Accelerator for Factoring Integers with Elliptic Curve Method
RU2519387C2 (ru) Способ и аппаратура для обеспечения поддержки альтернативных вычислений в реконфигурируемых системах-на-кристалле

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