TWI817742B - 數值轉換方法及數值轉換系統 - Google Patents
數值轉換方法及數值轉換系統 Download PDFInfo
- Publication number
- TWI817742B TWI817742B TW111136575A TW111136575A TWI817742B TW I817742 B TWI817742 B TW I817742B TW 111136575 A TW111136575 A TW 111136575A TW 111136575 A TW111136575 A TW 111136575A TW I817742 B TWI817742 B TW I817742B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- montgomery
- register
- multiplexer
- modulus
- Prior art date
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title abstract description 16
- 230000009466 transformation Effects 0.000 claims description 10
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 32
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 32
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 0.000 description 32
- 108700012361 REG2 Proteins 0.000 description 14
- 101150108637 REG2 gene Proteins 0.000 description 14
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 14
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 241001178520 Stomatepia mongo Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/727—Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/728—Methods 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 using Montgomery reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Executing Machine-Instructions (AREA)
- Numerical Control (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Communication Control (AREA)
Abstract
一種數值轉換方法包含依據第一數值,利用第一模數加法迴圈累加第一數值,以在達到第一預設迴圈次數後產生第二數值;依據第二數值,利用第二模數加法迴圈累加第二數值,以在達到第二預設迴圈次數後產生第三數值;將第三數值輸入至蒙哥馬利冪模運算函數,以產生蒙哥馬利轉換參數;及根據蒙哥馬利轉換參數,將整數定義域內的第一轉換數值轉換為在蒙哥馬利定義域內的第二轉換數值。
Description
本發明描述一種數值轉換方法及數值轉換系統,尤指一種能高速計算且低運算複雜度的數值轉換方法及數值轉換系統。
隨著科技的日新月異,許多資料為了避免被盜用或是竊取,常會使用加密保護。因此,密碼系統(Cryptosystem)亦成為現在資料保護的重點。在密碼學中,大致可區分為對稱密鑰加密法(Symmetric-Key Algorithm)以及非對稱密鑰加密法(Asymmetric-Key Algorithm)。非對稱密鑰加密法又稱為公開金鑰密碼學(Public-Key Cryptography)。對稱密鑰加密法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。然而,與公開金鑰加密相比,要求雙方取得相同的密鑰是對稱密鑰加密的主要缺點之一。而在公開金鑰加密法中需要兩個金鑰,一個是公開密鑰,另一個是私有密鑰。公開密鑰用於加密,私有密鑰則用於解密。使用公開密鑰把明文加密後所得的密文,只能用相對應的私有密鑰才能解密並得到原本的明文,故安全性較高。
而在公開金鑰密碼系統中,RSA加密演算法是一種非常可靠的加密方式。在RSA加密演算法中,只要密鑰的長度夠長,由於因數分解困難,因此幾乎不會被破解。無論是在RSA加密演算法或是公開金鑰密碼系統中,蒙哥馬利演算法(Montgomery Multiplication Algorithm)是核心技術。蒙哥馬利演算法可
以將整數定義域(Integer Domain)的數值轉換為蒙哥馬利定義域(Montgomery Domain)的數值。然而,常用的蒙哥馬利演算法進行數值轉換時,其數值轉換會被值域限制,如值域限制為2的次方數,故實際應用上的彈性仍不足。
因此,發展一種複雜度較低且沒有值域限制的蒙哥馬利數值轉換方法,是公開金鑰密碼系統的重要設計議題。
本發明一實施例提出一種數值轉換方法。種數值轉換方法包含依據第一數值,利用第一模數加法迴圈累加第一數值,以在達到第一預設迴圈次數後產生第二數值,其中第二數值係為2的冪次方模數於常數,依據第二數值,利用第二模數加法迴圈累加第二數值,以在達到第二預設迴圈次數後產生第三數值,其中第三數值係為第二數值乘上2的冪次方後,模數於該常數,將第三數值輸入至蒙哥馬利冪模運算函數,以產生一蒙哥馬利轉換參數,其中蒙哥馬利轉換參數係為第二數值的平方模數於常數,及根據蒙哥馬利轉換參數,將整數定義域內的第一轉換數值轉換為在蒙哥馬利定義域內的第二轉換數值。
本發明另一實施例提出一種數值轉換系統。數值轉換系統包含處理器以及運算電路。運算電路耦接於處理器。運算電路包含第一多工器、第一暫存器、模數加法器、蒙哥馬利乘法器。第一暫存器耦接於第一多工器。模數加法器耦接於第一多工器及第一暫存器。蒙哥馬利乘法器耦接於第一多工器及第一暫存器。處理器控制第一多工器、第一暫存器及模數加法器以形成第一模數加法迴圈。在第一多工器接收一第一數值後,依據第一數值,利用第一模數加法迴圈累加第一數值,以在達到第一預設迴圈次數後產生第二數值。第二數值係為2的冪次方模數於常數。第二數值存於第一暫存器中。處理器控制第一多工器、第一暫存器及模數加法器形成第二模數加法迴圈。並依據第二數值,利用
第二模數加法迴圈累加第二數值,以在達到第二預設迴圈次數後產生第三數值。第三數值存於第一暫存器中。第三數值係為第二數值乘上2的冪次方後,模數於常數,且處理器控制蒙哥執行蒙哥馬利冪模運算函數,以依據第三數值而產生蒙哥馬利轉換參數。蒙哥馬利轉換參數係為第二數值的平方模數於常數。處理器根據蒙哥馬利轉換參數,將整數定義域內的第一轉換數值轉換為在蒙哥馬利定義域內的第二轉換數值。
100:數值轉換系統
10:處理器
11:運算電路
MUX1:第一多工器
REG1:第一暫存器
ADD:模數加法器
MUL:蒙哥馬利乘法器
MUX2:第二多工器
REG2:第二暫存器
MUX3:第三多工器
C1至C3:控制端
S601至6204:步驟
第1圖係為本發明之數值轉換系統的之實施例的方塊圖。
第2圖係為第1圖之數值轉換系統中,第一迴圈中之資料傳輸的示意圖。
第3圖係為第1圖之數值轉換系統中,第二迴圈中之資料傳輸的示意圖。
第4圖係為第1圖之數值轉換系統中,產生T2以更新第一暫存器的示意圖。
第5圖係為第1圖之數值轉換系統中,產生T×Q以更新第一暫存器的示意圖。
第6圖係為第1圖之數值轉換系統執行數值轉換方法的流程圖。
第1圖係為本發明之數值轉換系統100的之實施例的方塊圖。數值轉換系統100可將整數定義域(Integer Domain)的數值轉換為蒙哥馬利定義域(Montgomery Domain)的數值。並且,數值轉換系統100可應用於公開金鑰密碼系統(Public-Key Cryptosystem),但不以此為限制。為了便於理解,後文將先說明蒙哥馬利數值轉換的定義,以及本發明所揭露的快速且低複雜度的蒙哥馬利數值轉換的演算法。隨後,再以數值轉換系統100的電路架構輔助說明其實施例。
在蒙哥馬利的數值轉換中,假設數值A、數值B以及數值C為整數定
義域中的三數值。R為蒙哥馬利常數。N為預先設定的常數。蒙哥馬利常數R與常數N具有以下關係:R=2 K mod N
則數值A在蒙哥馬利定義域的數值A’可表示為:A'=(A×R)mod N
則數值B在蒙哥馬利定義域的數值B’可表示為:B'=(B×R)mod N
假設數值C=(A×B)mod N,則可以推出:C'=(C×R)mod N =(A×B×R)mod N=(A×R×B×R×R-1)mod N=(A'×B'×R-1)mod N
換句話說,只要利用上述的公式,即可將整數定義域中的數值A、數值B以及數值C,轉換為蒙哥馬利定義域的數值A’數值B’以及數值C’。因此,針對蒙哥馬利定義域的數值轉換中,已知蒙哥馬利常數R,當欲將數值A轉換為蒙哥馬利定義域的數值A’時,數值A可視為轉換函式的輸入,可以推出以下結果:(A×(R2)×R-1)mod N=(A×R)mod N=A'
相反的,當蒙哥馬利定義域的數值A’轉換回整數定義域中的數值A時,也可以將A’視為轉換函式的輸入,可推出以下結果:(A'×(12)×R-1)mod N=(A'×1×R-1)mod N =((A×R)×R-1)mod N=A mod N=A
由上兩式可觀察,R2 mod N項的計算複雜度較高,這將會導致在整數定義域的數值A很大或R很大時,計算的效能會將低。因此,數值轉換系統100的功效之一為,以低複雜度且快速的方式計算R2 mod N項,使整數定義域到蒙
哥馬利定義域的數值轉換效能更高,細節說明於後文。
首先,如前述的蒙哥馬利的數值轉換之定義。數值轉換系統100可以輸入第一數值T=2m-1。m係為頂函數(Ceiling Function)於log2N的輸出,可表示為,且N係為常數。接著,依據第一數值T,利用第一迴圈更新第一數值T,以產生第二數值R,其中第二數值R係為2的冪次方模數於常數N。換句話說,第二數值R即為前述定義的蒙哥馬利常數,可表示為R=2K mod N。並且,第一迴圈的演算法可以表示為下:
在第一迴圈不斷地更新第一數值T之後,最後第一數值T將會變為第二數值R,即表示為R=2K mod N。第二數值R被定義為蒙哥馬利常數(Montgomery Constant),且蒙哥馬利常數為預先設定的數值。K係為第一預定正整數。接著,根據第二數值R,可利用第二迴圈更新第二數值R,以產生第三數值,其中第三數值係為第二數值R乘上2的冪次方後,模數於常數N。換句話說,第三數值可表示為(2λ×R)mod N。λ係為第二預定正整數。R係為第二數值,且N係為常數。並且,第二迴圈的演算法可以表示為下:
在第二迴圈不斷地更新第二數值R之後,最後第二數值R將會變為第三數值,即表示為(2λ×R)mod N。接著,第三數值(2λ×R)mod N可以輸入至蒙哥馬利冪模運算(Montgomery Modular Exponentiation)函數,以產生第四數值。第四數值係為第一數值的平方模數於常數。換句話說,如前述提及,傳統計算出R2 mod N項的計算複雜度較高。然而,數值轉換系統100可以利用高效率以及低複雜度的方式,依據第三數值(2λ×R)mod N而產生第四數值R2 mod N,說明如下。
如前述提及,第三數值可表示為(2λ×R)mod N。λ係為第二預定正整數。R係為第二數值,且N係為常數。在此,定義一蒙哥馬利冪模運算函數,表示為:(SE×R-(E-1))mod N
S為函數輸入。E係為第三預定正整數。若蒙哥馬利冪模運算函數的函數輸入S為第三數值,亦即S用第三數值帶入,可推導出下列結果:(2λ×E×RE×R-(E-1))mod N=(2λ×E×R)mod N
換句話說,第三數值(2λ×R)mod N輸入至蒙哥馬利冪模運算函數後,輸出則為第四數值,可表示為(2λ×E×R)mod N。如前述,λ係為第二預定正整數,而E係為第三預定正整數。因此,在第四數值中,假設2λ×E設定為2K,亦即λ×E=K,則套用蒙哥馬利常數R的定義:R=2K mod N,則第四數值可以推導出以下結果:(2λ×E×R)mod N =(2K×R)mod N=(R×R)mod N=R2 mod N
第四數值的定義可為蒙哥馬利轉換參數。換句話說,傳統在計算蒙哥馬利轉換參數R2 mod N項的計算複雜度較高,將會導致在整數域的數值A很大或R很大時,計算的效能會將低。然而,利用本發明的數值轉換方法,可以僅利用兩個迴圈,再依據蒙哥馬利冪模運算函數快速且有效的得到R2 mod N項(第四數值,蒙哥馬利轉換參數)。
接著,由於蒙哥馬利轉換參數R2 mod N已經被推導,故可根據蒙哥馬利轉換參數R2 mod N,將第一轉換數值A轉換為在蒙哥馬利定義域內的第二轉換數值A’,說明如下。如前述,在整數定義域的第一轉換數值A轉至蒙哥馬利定義域的第二轉換數值A’的轉換函式為:(A×(R2)×R-1)mod N=(A×R)mod N=A'
第一轉換數值A視為函數輸入。蒙哥馬利轉換參數R2 mod N視為函數輸入。依據上式的推導,轉換函式將整數定義域的第一轉換數值A轉換至蒙哥馬利定義域的第二轉換數值A’。並且,在上述的實施例中,第一數值2m-1、第二數值R=2K mod N、第三數值(2λ×R)mod N以及蒙哥馬利轉換參數(2λ×E×R)mod N=R2 mod N為正偶數,函數輸入A小於常數N,即A<N。並且,常數N為正整數。
第1圖係為本發明之數值轉換系統100的之實施例的方塊圖。第2圖係為本發明之數值轉換系統100中,第一迴圈中之資料傳輸的示意圖。第3圖係為本發明之數值轉換系統100中,第二迴圈中之資料傳輸的示意圖。數值轉換系統100的電路可以實現上述將整數定義域轉換至蒙哥馬利定義域的數值換換方法,說明如下。數值轉換系統100包含處理器10以及運算電路11。運算電路11耦接於處理器10。運算電路11包含第一多工器MUX1、第一暫存器REG1、模數加法器(Modular Adder)ADD、蒙哥馬利乘法器(Montgomery Multiplier)MUL、第二多工器MUX2、第二暫存器REG2以及第三多工器MUX3。第一暫存器REG1耦接於第一多工器MUX1。模數加法器ADD耦接於第一多工器MUX1及第一暫存器REG1。蒙哥馬利乘法器MUL耦接於第一多工器MUX1及第一暫存器REG1。第二多工器MUX2耦接於第一暫存器REG1。第二暫存器REG2耦接於第二多工器MUX2。第三多工器MUX3耦接於第一暫存器REG1、第二暫存器REG2及蒙哥馬利乘法器MUL。第一多工器MUX1、第二多工器MUX2以及第三多工器MUX3分別有控制端,以控制端C1至控制端C3表示。並且,處理器10耦接於控制端C1至控制端C3,以控制第一多工器MUX1、第二多工器MUX2以及第三多工器MUX3的連接組態。具體而言,第一多工器MUX1的第一輸入端耦接於模數加法器ADD的輸出端,第一多工器MUX1的第二輸入端用於接收前述之初始值2m-1,第一多工器MUX1的第三輸入端耦接於蒙哥馬利乘法器MUL的輸出端。第二多工器MUX2的第一輸入端耦接於第一暫存器REG1的輸出端,第二多工器MUX2
的第二輸入端耦接於第二暫存器REG2的輸出端。第二暫存器REG2的輸入端耦接於第二多工器MUX2的輸出端,第二暫存器REG2的輸出端耦接於第二多工器MUX2的第二輸入端。第三多工器MUX3的第一輸入端耦接於第一暫存器REG1的輸出端,第三多工器MUX3的第二輸入端耦接於第二暫存器REG2的輸出端,第三多工器MUX3的輸出端耦接蒙哥馬利乘法器MUL的第二輸入端。
基此,在數值轉換系統100中,如第2圖所示,處理器10可用以控制運算電路11。第一多工器MUX1接收第一數值2m-1後,處理器10可以控制第一多工器MUX1、第一暫存器REG1以及模數加法器ADD以執行第一迴圈,並利用第一迴圈以第一預設迴圈次數(例如,K-m+1)更新第一數值,以產生第二數值(R=2K mod N)。第一迴圈的運作方式如前述提及,利用連續累加的迴圈機制產生2K mod N。第一迴圈可對應第一多工器MUX1、第一暫存器REG1以及模數加法器ADD所組成的迴路。將輸入2m-1自第一多工器MUX1儲存至第一暫存器REG1後,可藉由模數加法器ADD累加第一數值。在達到第一預設迴圈次數之前,處理器10可控制第一多工器MUX1的輸出端電性連接其自身的第一輸入端而電性連接模數加法器ADD的輸出端,使第一數值不斷累加而更新第一暫存器REG1,直至計算出第二數值R=2K mod N。接著,如第3圖所示,處理器10可以控制運算電路11的第一多工器MUX1、第一暫存器REG1以及模數加法器ADD以執行第二迴圈(處理器10係控制第一多工器MUX1的輸出端電性連接其自身的第一輸入端),並依據由第一暫存器REG1所輸出的第二數值2K mod N,利用第二迴圈以第二預設迴圈次數(例如,λ)更新第二數值,以產生第三數值(2λ×R)mod N。當第二迴圈結束後,第一暫存器REG1所存的數值即為第三數值(2λ×R)mod N。換言之,第一暫存器REG1所存的數值T之初始值可為T=2m-1,經過第一次預設迴圈次數後,第一暫存器REG1所存的數值T可被更新為T=R=2K mod N。經過第二預設迴圈次數後,第一暫存器REG1所存的數值T可被更新為T=(2λ×R)mod N。接著,處理器10控制
第一多工器MUX1的輸出端電性連接其自身的第三輸入端而電性連接蒙哥馬利乘法器MUL的輸出端,使蒙哥馬利乘法器MUL電性連接第一暫存器REG1,且在執行蒙哥馬利冪模運算函數時,處理器10控制第二多工器MUX2及第三多工器MUX3的電性連接組態,使蒙哥馬利乘法器MUL基於第一暫存器REG1所存的數值T=(2λ×R)mod N計算出(2λ×E×R)mod N,即R2 mod N,其執行蒙哥馬利冪模運算函數的虛擬碼(pseudo code)可表示如下:
詳細而言,如前述虛擬碼所示,若第三預定正整數E的各位元Ei表示為(En-1,...,E1,E0),在第一暫存器REG1儲存的數值T被更新為T=(2λ×R)mod N之後,根據第三預定正整數E的每一位元,運算電路11都需計算T2。如第4圖所示,處理器10可控制第三多工器MUX3的輸出端電性連接第一暫存器REG1(即,處理器10控制第三多工器MUX3的輸出端電性連接其自身的第一輸入端),使蒙哥馬利乘法器MUL的兩輸入端都接收數值T而計算T2,更新後的T2再經由第一多工器MUX1儲存於第一暫存器REG1,以更新數值T;另一方面,如虛擬碼所示,當第三預定正整數E包含的位元為1時,運算電路11需在計算T2之後再進一步計算T×Q。如第5圖所示,在第一暫存器REG1儲存的數值T被更新為T=(2λ×R)mod N之後且在運算電路11第一次計算T2之前,處理器10可控制第二多工器MUX2電性連接第二暫存器REG2的輸入端及第一暫存器REG1的輸出端(即,處理器10控制第二多工器MUX2的輸出端電性連接其自身的第一輸入端),使T=(2λ×R)mod N自第一暫存器REG1經由第二多工器MUX2儲存至第二暫存器REG2而作為緩存數值Q,接著,處理器10控制第二多工器MUX2的輸出端電性連接其自身的第二
輸入端,且處理器10再根據第三預定正整數E的位元「1」控制第三多工器MUX3的輸出端電性連接第二暫存器REG2(即,處理器10控制第三多工器MUX3的輸出端電性連接其自身的第二輸入端),使蒙哥馬利乘法器MUL的兩輸入端分別電性連接第一暫存器REG1及第二暫存器REG2,也就是蒙哥馬利乘法器MUL的兩輸入端分別接收第一暫存器REG1儲存的數值T及第二暫存器REG2儲存的緩存數值Q而計算T×Q,更新後的T×Q再經由第一多工器MUX1儲存於第一暫存器REG1以更新為數值T。如此不斷重複執行,直到蒙哥馬利乘法器MUL根據第三預定正整數E的每一位元完成T2之計算動作(當Ei為0時)或完成T2及T×Q之計算動作(當Ei為1時),以執行蒙哥馬利冪模運算函數將第三數值(2λ×R)mod N轉換為第四數值(2λ×E×R)mod N。最終,如前述提及,處理器10可依據第四數值(2λ×E×R)mod N以轉換函式(A×(R2)×R-1)mod N將第一轉換數值A轉換為在蒙哥馬利定義域內的第二轉換數值A’。在一些實施例中,處理器10為具有可執行蒙哥馬利轉換的數位訊號處理器(Digital Signal Processor;DSP)或特定應用積體電路(Application Specific Integrated Circuit;ASIC)。
第6圖係為數值轉換系統100執行數值轉換方法的流程圖。數值轉換系統100執行數值轉換方法的流程包含步驟S601至步驟S604。任何合理的步驟變更都屬於本發明所揭露的範疇。步驟S601至步驟S604描述於下:步驟S601:依據第一數值,利用第一模數加法迴圈累加第一數值,以在達到第一預設迴圈次數後產生第二數值,其中第二數值係為2的冪次方模數於常數;步驟S602:依據第二數值,利用第二模數加法迴圈累加第二數值,以在達到第二預設迴圈次數後產生第三數值,其中第三數值係為第二數值乘上2的冪次方後,模數於常數;步驟S603:將第三數值輸入至蒙哥馬利冪模運算函數,以產生蒙哥馬利
轉換參數,其中蒙哥馬利轉換參數係為第二數值的平方模數於常數;步驟S604:根據蒙哥馬利轉換參數,將整數定義域內的第一轉換數值轉換為在蒙哥馬利定義域內的第二轉換數值。
步驟S601至步驟S604的細節已經於前文所述,故於此將不再贅述。本發明的數值轉換系統100在執行數值轉換方法時,由於可以用低複雜度的電路,以迴圈的方式產生蒙哥馬利轉換參數R2 mod N項。因此在進行整數定義域的第一轉換數值轉至蒙哥馬利定義域的第二轉換數值時,其轉換效率可以提升。
綜上所述,本發明描述一種將整數定義域上的數值轉換為蒙哥馬利定義域上的數值的一種方法以及系統。有別於傳統的轉換模式以較高複雜度以及具有值域限制的方法產生R2 mod N項。本發明的數值轉換系統在執行數值轉換方法時,沒有值域限制,亦即不被2的次方數限制值域。因此,本發明的數值轉換系統應用於公開金鑰密碼系統時,就算金鑰密碼所需要的值域非常大,或是數量非常大,數值轉換系統都可用線性複雜度的方式計算出蒙哥馬利定義域上的數值。因此,發明的數值轉換系統在進行整數定義域的第一轉換數值轉至蒙哥馬利定義域的第二轉換數值時,其轉換效率可以提升。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:數值轉換系統
10:處理器
11:運算電路
MUX1:第一多工器
REG1:第一暫存器
ADD:模數加法器
MUL:蒙哥馬利乘法器
MUX2:第二多工器
REG2:第二暫存器
MUX3:第三多工器
C1至C3:控制端
Claims (10)
- 一種數值轉換系統,包含:一處理器,及一運算電路,耦接於該處理器,該運算電路包含:一第一多工器;一第一暫存器,耦接於該第一多工器;一模數加法器(Modular Adder),耦接於該第一多工器及該第一暫存器;及一蒙哥馬利乘法器(Montgomery Multiplier),耦接於該第一多工器及該第一暫存器;其中該處理器控制該第一多工器、該第一暫存器及該模數加法器以形成一第一模數加法迴圈,在該第一多工器接收一第一數值後,並依據該第一數值,利用該第一模數加法迴圈累加該第一數值,以在達到一第一預設迴圈次數後產生一第二數值,該第二數值係為2的冪次方模數於一常數,該第二數值存於該第一暫存器中,該處理器控制該第一多工器、該第一暫存器及該模數加法器形成一第二模數加法迴圈,並依據該第二數值,利用該第二模數加法迴圈累加該第二數值,以在達到一第二預設迴圈次數後產生一第三數值,該第三數值存於該第一暫存器中,該第三數值係為該第二數值乘上2的冪次方後,模數於該常數,且該處理器控制該蒙哥馬利乘法器根據該第三數值執行一蒙哥馬利冪模運算函數,以產生一蒙哥馬利轉換參數,該蒙哥馬利轉換參數係為該第二數值的平方模數於該常數,且該處理器根據該蒙哥馬利轉換參數,將整數定義域內的一第一轉換數值轉換為在一蒙哥馬利定義域(Domain)內的一第二轉換數值,且若以T表示該第一數值,則該第一模數加法迴圈表示為T=(T+T)mod N。
- 一種數值轉換系統,包含:一處理器,及一運算電路,耦接於該處理器,該運算電路包含:一第一暫存器;一模數加法器(Modular Adder),耦接於該第一暫存器;一第一多工器,耦接於該第一暫存器及該模數加法器,該第一多工器包含:一第一輸入端,耦接於該模數加法器的輸出端;一第二輸入端,用以接收一第一數值;一第三輸入端;及一輸出端,耦接於該第一暫存器;及一蒙哥馬利乘法器(Montgomery Multiplier),耦接於該第一多工器的該第三輸入端及該第一暫存器;其中該處理器控制該第一多工器、該第一暫存器及該模數加法器以形成一第一模數加法迴圈,在該第一多工器接收該第一數值後,並依據該第一數值,利用該第一模數加法迴圈累加該第一數值,以在達到一第一預設迴圈次數後產生一第二數值,該第二數值係為2的冪次方模數於一常數,該第二數值存於該第一暫存器中,該處理器控制該第一多工器、該第一暫存器及該模數加法器形成一第二模數加法迴圈,並依據該第二數值,利用該第二模數加法迴圈累加該第二數值,以在達到一第二預設迴圈次數後產生一第三數值,該第三數值存於該第一暫存器中,該第三數值係為該第二數值乘上2的冪次方後,模數於該常數,且該處理器控制該蒙哥馬利乘法器根據該第三數值執行一蒙哥馬利冪模運算函數,以產生一蒙哥馬利轉換參數,該蒙哥馬利轉換參數係為該第二數值的平方模數於該常數,且該處理器根據該蒙哥馬利轉換參數,將整數定義域內的一第一轉換數值轉換為在一蒙哥馬利 定義域(Domain)內的一第二轉換數值;及其中在該第一模數加法迴圈及該第二模數加法迴圈中,該處理器係控制該第一多工器的該輸出端電性連接該第一輸入端以累加該第一數值及該第二數值。
- 如請求項1或2所述之系統,其中該蒙哥馬利乘法器的一第一輸入端耦接於該第一暫存器的輸出端,該運算電路更包含:一第二多工器,包含:一第一輸入端,耦接於該第一暫存器的輸出端;一第二輸入端;及一輸出端;一第二暫存器,包含:一輸入端,耦接於該第二多工器的該輸出端;及一輸出端,耦接於該第二多工器的該第二輸入端;及一第三多工器,包含:一第一輸入端,耦接於該第一暫存器的該輸出端;一第二輸入端,耦接於該第二暫存器的該輸出端,及一輸出端,耦接該蒙哥馬利乘法器的一第二輸入端。
- 如請求項3所述之系統,其中在產生該第三數值之後,該處理器控制該第二多工器的該輸出端電性連接其該第一輸入端,當執行該蒙哥馬利冪模運算函數時,該處理器控制該第一多工器的該輸出端電性連接其該第三輸入端,且該處理器控制該第二多工器的該輸出端電性連接其該第二輸入端,且該處理器判斷一第三預定正整數的位元為1或0,以控制該第三多工器的該輸出端 電性連接其該第一輸入端或其該第二輸入端。
- 如請求項1或2所述之系統,其中該第一預設迴圈次數為K-m+1,該第一數值係為2m-1,m係為一頂函數(Ceiling Function)於log2N的一輸出,且K係為一第一預定正整數,N係為該常數,且當該第一模數加法迴圈達到該第一預設迴圈次數後,該第二數值R表示為2K mod N。
- 如請求項5所述之系統,其中該第二模數加法迴圈表示為R=(R+R)mod N。
- 如請求項6所述之系統,其中該第二預設迴圈次數為λ,當該第二模數加法迴圈達到該第二預設迴圈次數後,該第三數值表示為(2λ×R)mod N,λ係為一第二預定正整數。
- 如請求項7所述之系統,其中該蒙哥馬利冪模運算函數表示為(SE×R-(E-1))mod N,S為一函數輸入,E係為一第三預定正整數,若該函數輸入為該第三數值(2λ×R)mod N,則該蒙哥馬利冪模運算函數的輸出為該蒙哥馬利轉換參數,表示為(2λ×E×R)mod N。
- 如請求項8所述之系統,其中該處理器設定K=λ×E,使該蒙哥馬利轉換參數表示為R2 mod N。
- 一種數值轉換系統,包含:一處理器,及 一運算電路,耦接於該處理器,該運算電路包含:一第一多工器;一第一暫存器,耦接於該第一多工器;一模數加法器(Modular Adder),耦接於該第一多工器及該第一暫存器;及一蒙哥馬利乘法器(Montgomery Multiplier),耦接於該第一多工器及該第一暫存器;其中該處理器控制該第一多工器、該第一暫存器及該模數加法器以形成一第一模數加法迴圈,在該第一多工器接收一第一數值後,並依據該第一數值,利用該第一模數加法迴圈累加該第一數值,以在達到一第一預設迴圈次數後產生一第二數值,該第二數值係為2的冪次方模數於一常數,該第二數值存於該第一暫存器中,該處理器控制該第一多工器、該第一暫存器及該模數加法器形成一第二模數加法迴圈,並依據該第二數值,利用該第二模數加法迴圈累加該第二數值,以在達到一第二預設迴圈次數後產生一第三數值,該第三數值存於該第一暫存器中,該第三數值係為該第二數值乘上2的冪次方後,模數於該常數,且該處理器控制該蒙哥馬利乘法器根據該第三數值執行一蒙哥馬利冪模運算函數,以產生一蒙哥馬利轉換參數,該蒙哥馬利轉換參數係為該第二數值的平方模數於該常數,且該處理器根據該蒙哥馬利轉換參數,將整數定義域內的一第一轉換數值轉換為在一蒙哥馬利定義域(Domain)內的一第二轉換數值;及其中該處理器藉由一轉換函式將該第一轉換數值轉換為該第二轉換數值,該轉換函式表示為(A×(R2)×R-1)mod N,A為該第一轉換數值、該蒙哥馬利轉換參數係為R2 mod N,且該第二數值的倒數為R-1,N係為該常數,其中該A小於該常數(A<N)。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111136575A TWI817742B (zh) | 2022-09-27 | 2022-09-27 | 數值轉換方法及數值轉換系統 |
CN202310001287.9A CN117786708A (zh) | 2022-09-27 | 2023-01-03 | 数值转换方法及数值转换系统 |
US18/098,115 US20240106646A1 (en) | 2022-09-27 | 2023-01-18 | Numerical Value Conversion Method and Numerical Value Conversion System with Low Hardware Complexity and High Operation Efficiency |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111136575A TWI817742B (zh) | 2022-09-27 | 2022-09-27 | 數值轉換方法及數值轉換系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI817742B true TWI817742B (zh) | 2023-10-01 |
TW202414259A TW202414259A (zh) | 2024-04-01 |
Family
ID=89857937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111136575A TWI817742B (zh) | 2022-09-27 | 2022-09-27 | 數值轉換方法及數值轉換系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240106646A1 (zh) |
CN (1) | CN117786708A (zh) |
TW (1) | TWI817742B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI263936B (en) * | 2002-12-23 | 2006-10-11 | Infineon Technologies Ag | Device and method for calculating modular multiplication, and computer product |
CN102207847B (zh) * | 2011-05-06 | 2013-12-04 | 广州杰赛科技股份有限公司 | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 |
CN105099672B (zh) * | 2015-08-04 | 2018-01-26 | 东南大学 | 混合加密方法及实现该方法的装置 |
-
2022
- 2022-09-27 TW TW111136575A patent/TWI817742B/zh active
-
2023
- 2023-01-03 CN CN202310001287.9A patent/CN117786708A/zh active Pending
- 2023-01-18 US US18/098,115 patent/US20240106646A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI263936B (en) * | 2002-12-23 | 2006-10-11 | Infineon Technologies Ag | Device and method for calculating modular multiplication, and computer product |
CN102207847B (zh) * | 2011-05-06 | 2013-12-04 | 广州杰赛科技股份有限公司 | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 |
CN105099672B (zh) * | 2015-08-04 | 2018-01-26 | 东南大学 | 混合加密方法及实现该方法的装置 |
Also Published As
Publication number | Publication date |
---|---|
TW202414259A (zh) | 2024-04-01 |
US20240106646A1 (en) | 2024-03-28 |
CN117786708A (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2256179C (en) | Encryption and decryption devices for public-key cryptosystems and recording medium with their processing programs recorded thereon | |
JP3939658B2 (ja) | モジュラー乗算を行うための装置、および、モジュラー乗算を行うための算術演算装置 | |
US20110161390A1 (en) | Modular multiplication processing apparatus | |
US6212277B1 (en) | Elliptic curve transformation device, utilization device and utilization system | |
Großschädl | A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m) | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
Braun et al. | Secure and compact full NTRU hardware implementation | |
US7191333B1 (en) | Method and apparatus for calculating a multiplicative inverse of an element of a prime field | |
Yoshioka | Security of Public-Key Cryptosystems Based on Chebyshev Polynomials Over $\mathbb Z/p^{k}\mathbb Z$ | |
Chang et al. | Low complexity bit-parallel multiplier for GF (2/sup m/) defined by all-one polynomials using redundant representation | |
JP3302043B2 (ja) | 暗号通信方法及びそのシステム | |
Vijayakumar et al. | Comparative study of hyperelliptic curve cryptosystem over prime field and its survey | |
TWI817742B (zh) | 數值轉換方法及數值轉換系統 | |
KR20040095526A (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
Sahu et al. | Implementation of Modular multiplication for RSA Algorithm | |
JP4616169B2 (ja) | モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム | |
Negre et al. | Efficient modular arithmetic in adapted modular number system using lagrange representation | |
Mahapatra et al. | RSA cryptosystem with modified Montgomery modular multiplier | |
Sghaier et al. | $ Area-Time $ Efficient Hardware Implementation of Elliptic Curve Cryptosystem | |
Javeed | Efficient hardware architecture for scalar multiplications on elliptic curves over prime field | |
Wang et al. | FPGA based unified architecture for public key and private key cryptosystems | |
CN111614465A (zh) | 基于超奇异同源秘钥封装协议的公钥生成方法和装置 | |
Kim | Efficient Algorithm for Multi-Bit Montgomery Inverse Using Refined Multiplicative Inverse Modular $2^ K$ | |
JP3050313B2 (ja) | 楕円曲線変換装置、利用装置及び利用システム | |
JP3626315B2 (ja) | 剰余算装置、情報処理装置及び剰余算方法 |