TWI406548B - 橢圓曲線加密運算電路 - Google Patents

橢圓曲線加密運算電路 Download PDF

Info

Publication number
TWI406548B
TWI406548B TW99136748A TW99136748A TWI406548B TW I406548 B TWI406548 B TW I406548B TW 99136748 A TW99136748 A TW 99136748A TW 99136748 A TW99136748 A TW 99136748A TW I406548 B TWI406548 B TW I406548B
Authority
TW
Taiwan
Prior art keywords
elliptic curve
operation circuit
partial product
module
unit
Prior art date
Application number
TW99136748A
Other languages
English (en)
Other versions
TW201218727A (en
Inventor
Lih Yang Wang
Sun Yao Ji
Original Assignee
Univ Southern Taiwan
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 Univ Southern Taiwan filed Critical Univ Southern Taiwan
Priority to TW99136748A priority Critical patent/TWI406548B/zh
Publication of TW201218727A publication Critical patent/TW201218727A/zh
Application granted granted Critical
Publication of TWI406548B publication Critical patent/TWI406548B/zh

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Description

橢圓曲線加密運算電路
本發明是有關於一種橢圓曲線加密運算電路,特別是指一種可快速完成倍點運算之橢圓曲線加密運算電路。
橢圓曲線加密(Elliptic curve cryptography,ECC)演算法是目前公開金鑰加密(Public-key cryptography)演算法中資訊安全度最佳的加密演算法,而根據IEEE P1363及NIST(National institute of standard and technology)所發表的標準來看,應用一橢圓曲線加密演算法時,其建議的曲線長度為163~571位元,由此可知,該橢圓曲線加密演算法在運算時,會產生大量且繁瑣的運算量,因此,如何加速該橢圓曲線加密演算法的運算變是相當重要的議題。
以下三篇參考文獻:M. Schinianakis等人於2009年在IEEE trans. Circuits and systems提出之「An RNS implementation of an F(p) elliptic curve point multiplier」、M. Schismatics等人於2006年在IEEE int. symp. Circuits system提出之「An RNS architectureof an F(p) elliptic curve point multiplier」、M. Schinianakis等人於2006年在Proc. IEEE Mediterranean electrotech Conference提出之「An new approach to elliptic curve cryptography: An RNS architecture」是應用一餘數系統(Residue number system,RNS)以實現該橢圓曲線加密演算法的相關代表性文獻。
在上述該等文獻中所提及之設計方法,在模數(Modular)的選擇方式上是採用每一模數之位元數皆相同之方法,這樣的設計雖然在電路設計時,可以使得運算單元的設計達到資源共享(Resource sharing)的好處,但從電路的平行化設計觀點來看,多組運算單元全部使用相同長度位元數的模數,反而會造成位元數的浪費。
此外,該等文獻中所提及的模數運算方式是採用試減的方式,這樣的設計使得在電路設計上只能採用位元級的乘法器(Bit serial multiplier),若是採用高基底乘法器時,會消耗大量的硬體電路,因此,該等基於一餘數系統設計之橢圓曲線加密演算法的實現方法仍有相當的改進空間。
因此,本發明之目的,即在提供一種橢圓曲線加密運算電路,包含:一記憶單元,用以儲存多數個暫存資料;及一運算單元,其包括:一模乘法器,具有;一累加模組,接收多數個輸入資料以得到一高次部份積及一低次部份積;一差值倍數計算模組,接收該高次部份積,並據此計算出一倍數值;一查表模組,根據該倍數值以得到一差值與倍數值之乘積以作為該高次部份積;及一模數加法運算模組,接收該差值與倍數值之乘積、低次部份積,以運算得到一模數運算結果。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式之一個較佳實施例的詳細說明中,將可清楚的呈現。
參閱圖1,本發明適用於一橢圓曲線加密(Elliptic curve cryptography,ECC)系統,以加密一明文資料並由一傳送端傳送至一接收端,一般而言,該發送端具有一發送端處理器,該接收端具有一接收端處理器,其包括以下步驟:步驟91是該發送端處理器選取一橢圓曲線Ep(a,b);步驟92是該發送端處理器選取該橢圓曲線上一點P(x0,y0)作為一基點;步驟93是該發送端處理器選擇一私鑰k,並計算一公開金鑰Q(x1,y1);其中,該公開金鑰Q(x1,y1)=k*P(x0,y0);步驟94是該發送端處理器將該橢圓曲線Ep(a,b)、該基點P以及公開金鑰Q傳送至該接收端處理器;步驟95是該接收端處理器將欲加密之明文編碼至曲線上一編碼點M,並選擇一接收端私鑰r;步驟96是該接收端處理器計算密文C=(M+rQ,rP);步驟97是該接收端處理器將密文C傳送至該發送端處理器;步驟98是該發送端處理器將該接收端私鑰k*rP=rQ,並將M+rQ減去rQ得到M;及步驟99是該發送端處理器對M進行解碼即可得到明文。
由上述橢圓曲線加密系統之流程中,可以知道該發送端處理器需要應用到曲線之倍點運算以計算該公開金鑰Q(x1,y1),及計算出該橢圓曲線上之一編碼點M,而該倍點運算往往是該橢圓曲線加密系統中相當耗時運算的步驟之一,因此,本發明提出一硬體電路設計以加速該倍點運算之運算時間。
本發明之重點著重於二:一為模數(Modulus)選取方式、二為模數運算方式。先行說明該等相關之理論基礎如下:對於一餘數系統(Residue number system,RNS)而言,如何選取適當的模數將會決定該餘數系統之運算效率,換句話說,選取適當的模數數量及適當的模數位元長度可以使得該餘數系統中的模數運算複雜度大幅降低。
由於已知一餘數系統中的每一整數必須在一動態範圍(Dynamic range)內得以確定此整數可以用一唯一表示式表示於該餘數系統中,而根據以下之相關文獻可以得知在一192位元之質數域橢圓曲線,其動態範圍必須達到840位元才能滿足該餘數系統內的每一整數皆可唯一表示。
Schinianakis於2009年在IEEE trans. on circuits and systems提出「An RNS implementation of an Fp elliptic curve point multiplier」的文獻中,針對該餘數系統中的模數數量進行分析研究,發現以20個42位元長度的模數的進行運算時,可以在橢圓曲線加密(ECC)運算電路及模數轉換電路的成本之間取得一較佳的平衡點,因此,本發明之模數數量也是採用20個模數。
然而,先前技術中使用選擇相同位元長度的模數,雖然有利於硬體電路的平行化設計,但是受限於必需使用相同長度的模數,所以模數的選擇上勢必有所限制(例如為了找到足夠數量的大質數作為模數,部分模數可能與2 n 的差會相當大),因此,受限於相同位元長度的關係,無法選擇較適合的大質數以作為模數。
由於在模數運算中,選取一些適當的模數可以使得運算效率大為提升,一般而言大都會以選取接近2 n 的一大質數為一模數,且n為正整數,因此,在本發明中,模數的數量設定為20個且每一模數選取的方式設定為小於2 n 但非常接近於2 n 的一質數,其可表示為2 n -k ,其中k為一差值,且是一遠小於2 n 的正整數。
值得說明的是,本發明所選取之20個模數與Schinianakis等人提出的方式最大的不同點在於本發明中的模數可以不完全相同,也就是說,以2 n 為準在其附近尋找適當數量的大質數以作為本發明中的該等模數,其中,本發明中的差值k為8位元,且每一模數40~44位元。
根據如上所述的模數選取方式,觀察下列模數運算的例子:
2n-1 mod m(m=2n -k)=2n-1
2n mod m=k
2n+1 mod m=k*21
2n+2 mod m=k*22
可以發現以2 n -k 所選取的模數其運算時,其輸出值與k值相關,換句話說,當差值k限制在一較小的範圍內時,可以利用模數運算的輸出值與差值k相關的特性,將差值k移位即可。
此外,關於一模數運算方式,B. Parhami於1997年在Proc. IEEE 40th Midwest Symp. Circuits Syst.提出「Modular reduction by multi-level table lookup」的文獻中,利用移項化簡的方式對模數進行化簡。
參閱圖2,假設在一4×4模13的模數運算中,其中模數m為13,且因為13=24 -3,所以可以得到n =4且k =3,根據圖2所示,可以將乘積結果區分為一高次部份積及一低次部份積,在本發明中,該高次部份積代表2 n ,n 4的乘積項(即為圖2中的a3 b1 、a2 b2 、a1 b3 、a3 b2 、a2 b3 、a3 b3 等乘積項),而低次部份積代表2 n ,n <4的乘積項(即為圖2中的除前述a3 b1 、a2 b2 、a1 b3 、a3 b2 、a2 b3 、a3 b3 之外的其他乘積項)。
因此,該高次部份積可以經由移項化簡的方式輸出一以差值k進行位移為基礎的運算結果,進而可以利用查表的方式得到該高次部份積,而低次部份積則可以利用模加法運算得到。下面將說明如何以硬體電路來實現本發明。
參閱圖3,本發明之一較佳實施例包含:一轉換單元1、一記憶單元2、一運算單元3,及一控制單元4。
該轉換單元1用以執行二進制系統與餘數系統不同資料系統間的資料轉換,該記憶單元2是一雙埠的記憶體,由於模數運算是加法與乘法的平行運算,因此,最多可能須同時寫入兩筆資料,此外,由於一次的模數運算同時最多會有八筆暫存資料,因此該記憶單元2具有至少八組記憶體以存放該等暫存資料,該運算單元3包括一模加法器31及一模乘法器32,用以執行模數之加法、減法、乘法等運算,以得到一模數運算結果,較佳地,該運算單元是一192位元橢圓點乘法單元,最後,該控制單元4用以控制模數運算的處理狀態。
由於M. Schinianakis等人於2009年在IEEE trans. Circuits and systems提出之「An RNS implementation of an F(p) elliptic curve point multiplier」的文獻中已經提出該模加法器31的硬體電路,而本實施例之模加法器31設計與其相同,在此不再詳加贅述。本實施例之特色著重在於該模乘法器32的硬體電路設計,因此,以下將詳細說明該模乘法器32之設計方式。
參閱圖4,該模乘法器32具有一累加模組321、一差值倍數計算模組322、一查表模組323,及一模數加法運算模組324。
其中,在本實施例中,該累加模組321之細部電路如圖5所示,該累加模組321是一基底為28 的華勒斯乘法器,其中包括7個進位儲存加法器(Carry saved adder)以4階層華勒斯樹狀結構(Wallace tree)所組成,該華勒斯樹狀結構如圖6所示,或是可參考Behrooz及Parhami合著之「Computer Arithmetic」之著作中的相關說明,因此,該累加模組321可一次讀取9個輸入資料,且得到2個輸出資料。
值得說明的是,本實施例之所以利用一基底為28 的華勒斯乘法器來實現該累加模組321,主要原因是因為若是該累加模組321欲一次讀取10個輸入資料,需要使用5階層進位儲存加法器,而若是是該累加模組321欲一次讀取8個輸入資料,則需要使用4階層進位儲存加法器,換句話說,4階層華勒斯樹狀結構最多可一次同時讀取9個輸入資料,另外,若是該累加模組321以5階層華勒斯樹狀結構實現之,最多可一次同時讀取12個輸入資料,然而參閱表1,該最大運算週期數(Max. Operation Cycles)之欄位代表使用基底為2 n 的乘法器時,所對應需要的運算週期數,而該節省運算週期數之欄位代表使用該基底為2 n 的乘法器相較於使用該基底為2 n -1 的乘法器時,可以節省的運算週期數。
因此,參閱表1之後,可以發現在考慮到可以節省運算週期數的因素下,以基底為211 的華勒斯乘法器相較於基底為210 的華勒斯乘法器而言,沒有任何可節省的運算週期數。
所以在綜合考量到可節省的運算週期數及華勒斯樹狀結構的階層數的因素下,在本實施例中,以基底為28 的乘法器來實現該累加模組321是較佳的設計選擇,當然,在本發明中,並不以此種設計方式為限。
該累加模組321得到之2個輸出資料,分別為一高次部份積及一低次部份積,若是模數為n位元時,則大於n位元的部份即為高次部份積,而小於n位元的部份即為低次部份積,該累加模組321將該低次部份積輸出至該模數加法運算模組324中。
該差值倍數計算模組322根據該高次部份積計算出一差值k之倍數值L之後,將該倍數值L輸出至該查表模組323中,該查表模組323依據該倍數值L以得到一L×k的結果,最後,該查表模組323將L×k的結果輸出至該模數加法運算模組324並與該低次部份積進行模數相加,以得到一模數運算結果。
綜上所述,本發明在模數選擇上,以20個位元長度為40~44位元之間的大質數作為該等模數,且該等大質數與2 n 的差值不超過一個8位元的差值k,所以,本發明所選取之每一模數與2 n 的差不會超過256,且模數的選擇上更加具有彈性(位元數介於40~44位元的大質數皆可選取作為一模數),同時,在模乘法器的設計上,利用高次部份積具有與差值k的移位相關的特性,以查表的方式得出,避免進行大量繁瑣的運算,可以縮短該模乘法器的延遲路徑,進而有效加快模數乘法運算的運算時間,進而達到加快該倍點運算之運算時間,故確實能達成本發明之目的。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。
1...轉換單元
2...記憶單元
3...運算單元
31...模加法器
32...模乘法器
321...累加模組
322...差值倍數計算模組
323...查表模組
324...模數加法運算模組
4...控制單元
91~99...步驟
圖1是一橢圓曲線加密系統的流程圖;
圖2是一模數運算中高次部份積與低次部份積的示意圖;
圖3是本發明之較佳實施例之系統方塊圖;
圖4是本較佳實施例之模乘法器之方塊圖;
圖5是本較佳實施例之累加模組之電路圖;及
圖6是一華勒斯樹狀結構之示意圖。
32...模乘法器
321...累加模組
322...差值倍數計算模組
323...查表模組
324...模數加法運算模組

Claims (10)

  1. 一種橢圓曲線加密運算電路,適用於處理一模數運算,包含:一記憶單元,用以儲存多數個暫存資料;及一運算單元,包括:一模乘法器,具有:一累加模組,接收多數個輸入資料以得到一高次部份積及一低次部份積;一差值倍數計算模組,接收該高次部份積,並據此計算出一倍數值;一查表模組,根據該倍數值以得到一差值與倍數值之乘積以作為該高次部份積;及一模數加法運算模組,接收該差值與倍數值之乘積、低次部份積,以運算得到一模數運算結果。
  2. 依據申請專利範圍第1項所述之橢圓曲線加密運算電路,更包含一轉換單元,用以將一個二進制資料轉換為一餘數系統資料以輸入該記憶單元,且將該運算單元之模數運算結果,轉換為一個二進制資料以輸出之。
  3. 依據申請專利範圍第1項所述之橢圓曲線加密運算電路,更包含一用以控制模數運算的處理狀態之控制單元。
  4. 依據申請專利範圍第1項所述之橢圓曲線加密運算電路其中,該累加模組是一基底為28 的華勒斯乘法器。
  5. 依據申請專利範圍第4項所述之橢圓曲線加密運算電路 其中,該華勒斯乘法器是由七個進位儲存加法器以四階層華勒斯樹狀結構所組成。
  6. 依據申請專利範圍第1項所述之橢圓曲線加密運算電路其中,該運算單元更包括一模加法器。
  7. 依據申請專利範圍第1項所述之橢圓曲線加密運算電路其中,該運算單元是一192位元橢圓點乘法單元。
  8. 依據申請專利範圍第1項所述之橢圓曲線加密運算電路其中,選擇模數之數量為20個。
  9. 依據申請專利範圍第8項所述之橢圓曲線加密運算電路其中,該等模數之位元數介於40~44位元之間。
  10. 依據申請專利範圍第8項所述之橢圓曲線加密運算電路其中,該等模數與一2的冪次方項之差值小於256。
TW99136748A 2010-10-27 2010-10-27 橢圓曲線加密運算電路 TWI406548B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW99136748A TWI406548B (zh) 2010-10-27 2010-10-27 橢圓曲線加密運算電路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW99136748A TWI406548B (zh) 2010-10-27 2010-10-27 橢圓曲線加密運算電路

Publications (2)

Publication Number Publication Date
TW201218727A TW201218727A (en) 2012-05-01
TWI406548B true TWI406548B (zh) 2013-08-21

Family

ID=46552595

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99136748A TWI406548B (zh) 2010-10-27 2010-10-27 橢圓曲線加密運算電路

Country Status (1)

Country Link
TW (1) TWI406548B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829731B2 (en) 2021-11-22 2023-11-28 Industrial Technology Research Institute Modular multiplication circuit and corresponding modular multiplication method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW580654B (en) * 2001-11-19 2004-03-21 Infineon Technologies Ag Method and device for multiplying and method and device for adding on an elliptic curve
TW589547B (en) * 2001-10-17 2004-06-01 Infineon Technologies Ag Method and device for calculating a result of an exponentiation
TW200520498A (en) * 2003-11-18 2005-06-16 Atmel Corp Randomized modular reduction method and hardware therefor
TW200703037A (en) * 2005-05-12 2007-01-16 Atmel Corp Cryptographically secure modular polynomial reduction method and computational hardware for executing the same
US7508936B2 (en) * 2002-05-01 2009-03-24 Sun Microsystems, Inc. Hardware accelerator for elliptic curve cryptography
TW200941336A (en) * 2008-03-27 2009-10-01 Nat Univ Tsing Hua Multiplication circuit and de/encryption circuit utilizing the same
US7668310B2 (en) * 1998-06-03 2010-02-23 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7668310B2 (en) * 1998-06-03 2010-02-23 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
TW589547B (en) * 2001-10-17 2004-06-01 Infineon Technologies Ag Method and device for calculating a result of an exponentiation
TW580654B (en) * 2001-11-19 2004-03-21 Infineon Technologies Ag Method and device for multiplying and method and device for adding on an elliptic curve
US7508936B2 (en) * 2002-05-01 2009-03-24 Sun Microsystems, Inc. Hardware accelerator for elliptic curve cryptography
TW200520498A (en) * 2003-11-18 2005-06-16 Atmel Corp Randomized modular reduction method and hardware therefor
TW200703037A (en) * 2005-05-12 2007-01-16 Atmel Corp Cryptographically secure modular polynomial reduction method and computational hardware for executing the same
TW200941336A (en) * 2008-03-27 2009-10-01 Nat Univ Tsing Hua Multiplication circuit and de/encryption circuit utilizing the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
B. Parhami, "Modular reduction by multi-level table lookup," Proc. IEEE 40th Midwest Symp. Circuits Syst., Vol. 1, pp. 381-384, Aug. 1997 *
J. Lopez and R. Dahab, " Fast Multiplication on Elliptic Curves over GF(2m) without precomputation," CHES 1999, Lecture NOtes in Computer Science, Vol. 1717, pp. 316 – 327, 1999 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829731B2 (en) 2021-11-22 2023-11-28 Industrial Technology Research Institute Modular multiplication circuit and corresponding modular multiplication method

Also Published As

Publication number Publication date
TW201218727A (en) 2012-05-01

Similar Documents

Publication Publication Date Title
Xiong et al. Tinypairing: A fast and lightweight pairing-based cryptographic library for wireless sensor networks
US7904498B2 (en) Modular multiplication processing apparatus
TWI416347B (zh) 處理有限域運算之方法與運算電路
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
CN108718231A (zh) 一种全同态加密方法、装置和计算机可读存储介质
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
CN111092718A (zh) 加密方法、装置及电子设备
Liu et al. Efficient multiplication architecture over truncated polynomial ring for NTRUEncrypt system
CN115664747A (zh) 加密方法和装置
US20020126838A1 (en) Modular exponentiation calculation apparatus and modular exponentiation calculation method
CN114895870B (zh) 基于fpga实现的高效可重构sm2点乘方法及系统
JP3542278B2 (ja) モンゴメリ・リダクション装置及び記録媒体
CN117240601B (zh) 加密处理方法、加密处理电路、处理终端及存储介质
TWI406548B (zh) 橢圓曲線加密運算電路
JP3616897B2 (ja) モンゴメリ法による乗算剰余計算装置
Barman et al. An efficient hybrid elliptic curve cryptography system with DNA encoding
Zalekian et al. Efficient implementation of NTRU cryptography using residue number system
KR101548174B1 (ko) 모듈러스의 음의 역원을 구하는 방법
Thabah et al. Fast and area efficient implementation of RSA algorithm
KR20100067590A (ko) 타원곡선 암호 연산 방법
KR102006222B1 (ko) 타원곡선 암호와 rsa 공개키 암호를 통합 구현하기 위한 연산장치 및 방법
Ashmawy et al. A faster hardware implementation of the AES S-box
CN114513306B (zh) 数据加密传输方法、系统
JP4200259B2 (ja) 公開鍵生成装置、暗号化装置および復号装置
CN115276960B (zh) 一种sm2蒙哥马利域上的快速模逆芯片实现装置及方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees