TW201917573A - 任務的處理方法、裝置和系統 - Google Patents

任務的處理方法、裝置和系統 Download PDF

Info

Publication number
TW201917573A
TW201917573A TW107129269A TW107129269A TW201917573A TW 201917573 A TW201917573 A TW 201917573A TW 107129269 A TW107129269 A TW 107129269A TW 107129269 A TW107129269 A TW 107129269A TW 201917573 A TW201917573 A TW 201917573A
Authority
TW
Taiwan
Prior art keywords
task
multiplier
rsa
segment
modular
Prior art date
Application number
TW107129269A
Other languages
English (en)
Inventor
張曉昱
Original Assignee
香港商阿里巴巴集團服務有限公司
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 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201917573A publication Critical patent/TW201917573A/zh

Links

Classifications

    • 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
    • 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/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的模組進行計算,這種方式雖然保證了每種字長模式下的計算任務都以盡可能高的通量完成,但是由於高位的補零操作造成了資源的大量浪費。   針對現有技術中對任務按照不同的字長模式執行對應的處理,導致計算資源浪費的問題,目前尚未提出有效的解決方案。
本發明實施例提供了一種任務的處理方法、裝置和系統,以至少解決現有技術中對任務按照不同的字長模式執行對應的處理,導致計算資源浪費的技術問題。   根據本發明實施例的一個方面,提供了一種任務的處理方法,包括:獲取多個任務;根據所述多個任務的工作量,對計算資源分段;根據分段結果,設置輸入操作數。   根據本發明實施例的另一方面,還提供了一種任務的處理系統,包括:控制器,用於獲取多個任務,根據所述多個任務的工作量,對計算資源分段,並根據分段結果,設置輸入操作數;指數移位器,包括多個分段指數移位器,其中,每個分段包括對應數量的分段指數移位器。   根據本發明實施例的另一方面,還提供了一種任務的處理裝置,包括:獲取模組,用於獲取多個任務;分段模組,用於根據所述多個任務的工作量,對計算資源分段; 設置模組,用於按照分段結果設置輸入操作數。   根據本發明實施例的另一方面,還提供了一種儲存媒體,其特徵在於,儲存媒體包括儲存的程式,其中,在程式運行時控制儲存媒體所在設備執行上述的任務的處理方法。   根據本發明實施例的另一方面,還提供了一種處理器,其特徵在於,處理器用於運行程式,其中,程式運行時執行上述的任務的處理方法。   根據本發明實施例的另一方面,還提供了一種系統,包括:處理器;以及記憶體,與處理器連接,用於為處理器提供處理以下處理步驟的指令:獲取多個任務;根據所述多個任務的工作量,對計算資源分段;根據分段結果,設置輸入操作數。   在本發明實施例中,藉由任務的工作數量對硬體進行分段操作,即對計算資源進行分段,從而實現了運算模組的平行化重構,使得運算模組能夠根據任務進行動態配置對應的計算資源,以支持多個計算任務的平行處理;且對於較短字長模式或者混合字長模式的大量計算任務,可以實現計算資源的極高利用率。從而解決了現有技術中對任務按照不同的字長模式執行對應的處理,導致計算資源浪費的技術問題。
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基於本發明中的實施例,本領域具有通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬本發明保護的範圍。   需要說明的是,本發明的說明書和申請專利範圍及上述圖式中的術語“第一”、“第二”等是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的資料在適當情況下可以互換,以便這裡描述的本發明的實施例能夠以除了在這裡圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。   首先,在對本發明實施例進行描述的過程中出現的部分名詞或術語適用於如下解釋:   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手機等)、平板電腦、掌聲電腦以及行動上網裝置(Mobile Internet Devices,MID)、PAD等終端設備。圖11其並不對上述電子裝置的結構造成限定。例如,電腦終端11還可包括比圖11中所示更多或者更少的組件(如網路介面、顯示裝置等),或者具有與圖11所示不同的配置。   本領域具有通常知識者可以理解上述實施例的各種方法中的全部或部分步驟是可以藉由程式來指令終端設備相關的硬體來完成,該程式可以儲存於一電腦可讀儲存媒體中,儲存媒體可以包括:快閃記憶體、唯讀記憶體(Read-Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、磁碟或光碟等。實施例 6 本發明的實施例還提供了一種儲存媒體。可選地,在本實施例中,上述儲存媒體可以用於保存上述實施例一所提供的任務的處理方法所執行的程式碼。   可選地,在本實施例中,上述儲存媒體可以位於電腦網路中電腦終端群中的任意一個電腦終端中,或者位於行動終端群中的任意一個行動終端中。   可選地,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:獲取多個任務;根據所述多個任務的工作量,對計算資源分段;根據分段結果,設置輸入操作數。   上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。   在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。   在本發明所提供的幾個實施例中,應該理解到,所揭露的技術內容,可藉由其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是藉由一些介面,單元或模組的間接耦合或通訊連接,可以是電性或其它的形式。   所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分散到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。   另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。   所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以儲存在一個電腦可讀取儲存媒體中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存媒體中,包括若干指令用以使得一台電腦設備(可為個人電腦、伺服器或者網路設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的儲存媒體包括:USB隨身碟、唯讀記憶體(ROM,Read-Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、行動硬碟、磁碟或者光碟等各種可以儲存程式碼的媒體。   以上所述僅是本發明的優選實施方式,應當指出,對於本技術領域的具有通常知識者來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。
10‧‧‧控制器
20‧‧‧指數移位器
80‧‧‧電腦終端
802a~802n‧‧‧處理器
804‧‧‧記憶體
806‧‧‧傳輸模組
S91~S95‧‧‧步驟
100‧‧‧裝置
102‧‧‧獲取模組
104‧‧‧分段模組
106‧‧‧設置模組
1111‧‧‧記憶體
1112‧‧‧處理器
1114‧‧‧外設介面
此處所說明的圖式用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在圖式中:   圖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的一種電腦終端的結構方塊圖。

Claims (17)

  1. 一種任務的處理方法,其特徵在於,包括:   獲取多個任務;   根據該多個任務的工作量,對計算資源分段;   根據分段結果,設置輸入操作數。
  2. 根據申請專利範圍第1項所述的方法,其中,在根據分段結果,設置輸入操作數之後,該方法還包括:   根據該輸入操作數的設置結果,控制對應的子模乘法器分別對每個任務進行模乘計算,其中,子模乘法器之間級聯連接構成多級模乘法器。
  3. 根據申請專利範圍第2項所述的方法,其中,在獲取多個任務之前,該方法還包括:按照硬體的最大位寬和每個分段的最小位寬,確定分段指數移位器的總數量。
  4. 根據申請專利範圍第3項所述的方法,其中,基於該任務的工作量和每個任務的位寬對多個分段指數移位器進行分段處理,其中,該分段結果為給每個任務分配的分段,每個分段包括對應數量的分段指數移位器。
  5. 根據申請專利範圍第4項所述的方法,其中,任意兩個相鄰的分段之間的修正選通控制處於斷開狀態,每個分段內部包括的分段指數移位器之間的修正選通控制處於連通狀態,且為線性位移。
  6. 根據申請專利範圍第5項所述的方法,其中,藉由控制器的第一修正選通控制信號控制任意兩個相鄰的分段之間是否執行跨分段移位。
  7. 根據申請專利範圍第4項所述的方法,其中,按照分段結果,設置輸入操作數,包括:按照每個任務分配的分段對該輸入操作數進行分段,其中,在按照該分段結果設置輸入操作數之後,將該輸入操作數的分段輸出接入對應的子模乘法器。
  8. 根據申請專利範圍第7項所述的方法,其中,控制對應的子模乘法器分別對每個任務進行模乘計算,包括:   按照每個任務分配的分段對該多級模乘法器進行分段,確定每個任務對應的分段子模乘法器;   使用每個任務對應的分段子模乘法器分別進行模乘計算。
  9. 根據申請專利範圍第8項所述的方法,其中,任意兩個相鄰的分段子模乘法器之間的修正選通控制處於斷開狀態,每個分段子模乘法器內部包括的子模乘法器之間的修正選通控制處於連通狀態,且低位元組的子模乘法器的進位結果會傳遞給高位元組的子模乘法器做偏置修正。
  10. 根據申請專利範圍第9項所述的方法,其中,藉由控制器的第二修正選通控制信號控制任意一個分段子模乘法器使用上一級的模乘進位項作為下一級的模乘偏置項。
  11. 一種任務的處理系統,其特徵在於,包括:   控制器,用於獲取多個任務,根據該多個任務的工作量,對計算資源分段,並根據分段結果,設置輸入操作數;   指數移位器,包括多個分段指數移位器,其中,每個分段包括對應數量的分段指數移位器。
  12. 根據申請專利範圍第11項所述的系統,其中,該系統還包括:   多級模乘法器,級聯多個子模乘法器,用於在按照該分段結果設置輸入操作數之後,對應的子模乘法器分別對每個任務進行模乘計算。
  13. 根據申請專利範圍第12項所述的系統,其中,該系統還包括:暫存器堆,用於儲存每個子模乘法器計算得到的中間結果。
  14. 一種任務的處理裝置,其特徵在於,包括:   獲取模組,用於獲取多個任務;   分段模組,用於根據該多個任務的工作量,對計算資源分段;   設置模組,用於按照分段結果設置輸入操作數。
  15. 一種儲存媒體,其特徵在於,該儲存媒體包括儲存的程式,其中,在該程式運行時控制該儲存媒體所在設備執行申請專利範圍第1至10項中任意一項所述的任務的處理方法。
  16. 一種處理器,其特徵在於,該處理器用於運行程式,其中,該程式運行時執行申請專利範圍第1至10項中任意一項所述的任務的處理方法。
  17. 一種系統,其特徵在於,包括:   處理器;以及   記憶體,與該處理器連接,用於為該處理器提供處理以下處理步驟的指令:   獲取多個任務;   根據該多個任務的工作量,對計算資源分段;   根據分段結果,設置輸入操作數。
TW107129269A 2017-10-25 2018-08-22 任務的處理方法、裝置和系統 TW201917573A (zh)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
TW201917573A true TW201917573A (zh) 2019-05-01

Family

ID=66171227

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107129269A TW201917573A (zh) 2017-10-25 2018-08-22 任務的處理方法、裝置和系統

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

Family Cites Families (48)

* 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
US5513133A (en) * 1992-11-30 1996-04-30 Fortress U&T Ltd. Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
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
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
US6804696B2 (en) * 2000-12-19 2004-10-12 International Business Machines Corporation Pipelining operations in a system for performing 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
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
US7873984B2 (en) 2002-01-31 2011-01-18 Brocade Communications Systems, Inc. Network security through configuration servers in the fabric environment
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
WO2005081181A1 (ja) 2004-02-20 2005-09-01 Renesas Technology Corp. 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
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
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
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
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
WO2008028529A1 (de) 2006-09-07 2008-03-13 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
CN102131198B (zh) * 2011-03-01 2013-11-06 广州杰赛科技股份有限公司 认证系统中椭圆曲线密码运算装置的实现方法
US9262166B2 (en) 2011-11-30 2016-02-16 Intel Corporation Efficient implementation of RSA using GPU/CPU architecture
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
CN104254833B (zh) * 2012-05-30 2018-01-30 英特尔公司 基于向量和标量的模取幂
US9444623B2 (en) * 2013-12-20 2016-09-13 Cryptography Research, Inc. Modular exponentiation optimization for cryptographic systems
WO2015096167A1 (en) 2013-12-28 2015-07-02 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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2008059595A (ja) 算術プロセッサ
US11288220B2 (en) Cascade communications between FPGA tiles
US9563401B2 (en) Extensible iterative multiplier
CN110262773A (zh) 一种计算机数据处理方法及装置
US20210182074A1 (en) Apparatus and method to switch configurable logic units
US9069686B2 (en) Digital signal processor having instruction set with one or more non-linear functions using reduced look-up table with exponentially varying step-size
TW201917573A (zh) 任務的處理方法、裝置和系統
US20160239297A1 (en) Instruction Class for Digital Signal Processors
JPH1185507A (ja) 中央処理装置およびマイクロコンピュータシステム
KR100453230B1 (ko) 초타원곡선 암호화 프로세싱 장치
US11676074B2 (en) Heterogeneous processing system for federated learning and privacy-preserving computation
TW202401243A (zh) 模乘器、安全晶片、電子設備及加密方法
Kuo et al. Flexible and area-efficient Galois field Arithmetic Logic Unit for soft-core processors
JP6979076B2 (ja) 回路、システム、および組合せ結果を演算するように再設定可能な複数の再設定可能ユニットを備えたプロセッサにより実装される方法
KR20180015176A (ko) 신호 처리 장치 및 방법
JP3837386B2 (ja) 情報処理装置
CN220208247U (zh) 除法运算电路
JP3099255B2 (ja) 剰余乗算器
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
RU183846U1 (ru) Матричный сигнальный процессор для калмановской фильтрации
Andrzejczak An Improved Architecture of a Hardware Accelerator for Factoring Integers with Elliptic Curve Method
JP2024516387A (ja) モジュラ算術演算を加速する方法、システム、プログラム
CN113625994A (zh) 一种数据处理方法和处理核
de Souza Raposo et al. M-ary parallel modular exponentiation: Software vs. hardware
WO2019019196A1 (zh) 一种数字信号处理方法、装置及可编程逻辑器件