TWI529615B - 進行模組式取冪之方法及其處理器和電腦程式產品 - Google Patents
進行模組式取冪之方法及其處理器和電腦程式產品 Download PDFInfo
- Publication number
- TWI529615B TWI529615B TW101115022A TW101115022A TWI529615B TW I529615 B TWI529615 B TW I529615B TW 101115022 A TW101115022 A TW 101115022A TW 101115022 A TW101115022 A TW 101115022A TW I529615 B TWI529615 B TW I529615B
- Authority
- TW
- Taiwan
- Prior art keywords
- modulus
- modular
- mod
- values
- processor
- Prior art date
Links
Landscapes
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本發明一般係關於密碼術,尤指抵抗某些副頻道侵襲的模組式取冪演算法。
此節旨在向讀者介紹技術上諸面向,與下述和/或所請求之本發明諸面向有關。於此討論相信有助於提供背景資訊給讀者,以便更加明瞭本發明諸面向。因此,需知此項陳述要以此觀點來閱讀,而非納入先前技術。
以公用關鍵密碼術之基本運算,是模組式取冪。在輸入N、x和d,計算y=xd mod N。自然,先前技術模組式取冪演算之主機,其二例如下。
演算1:由左至右二元法
輸入:N,x Z/NZ和d=(,...,d0)2 N
輸出:y=xd mod N
1:R[0]←1;R[1]←x
2:就j=I-1降到0進行
3:R[0]←R[0]2 mod N
4:若(dj≠0)則R[0]←R[0].R[1]mod N
5:結束
6:回到R[0]
演算2:由右至左二元法
輸入:N,x Z/NZ和d=(,...,d0)2 N
輸出:y=xd mod N
1:R[0]←1;R[1]←x
2:就j=0到I-1進行
3:若(dj≠0)則R[0]←R[0].R[1]mod N
4:R[1]←R[1]2 mod N
5:結束
6:回到R[0]
雖然二法均有效率,凡精於此道之士均知會受到副頻道,特別是簡單冪分析(SPA)的侵襲。參見Paul Kocher,Joshua Jaffe和Benjamin Jun撰〈微分冪分析〉,載於M.Wiener編《密碼術進展-CRYPTO’99》,電腦科學筆記第1666卷,第388-397頁,Springer出版社,1999年;以及Paul C.Kocher撰〈在Diffie-Hellman,RSA,DSS和其他系統中實作之計時侵襲〉,載於N.Koblitz編《密碼術進展-CRYPTO’96》,電腦科學筆記第1109卷,第104-113頁,Springer出版社,1996年。
主要問題在於有條件分支存在,即"若(if)"的述句。
克服此問題之一途,是在一回合的每一環裡,執行乘法,易言之,每逢dj=0,即進行假乘法。參見Jean-Sébastien Coron撰〈抵抗為橢圓形曲線密碼系統之微分冪分析〉,收在Ç.K.Koç和C.Paar編《密碼術硬體和內嵌式系統-CHES’99》,電腦科學筆記第1717卷,第292-302頁,Springer出版社,1999年。惟所得實作較慢,成本由每位元約1.5乘法提高到每位元2乘法。增加缺點是實作變成易遭受到安全誤差侵襲,參見Sung-Ming Yen和Marc Joye撰〈輸出前核對不足以對抗基於障礙的密碼分析〉,載於《IEEE在電腦上異動》,(49)9:第967-970頁,2000年,以及Sung-Ming Yen,Seung-Joo Kim,Seon-Gan Lim和Sang-Jae Moon撰〈對一實體上密碼分析之抗衡措施會有利於另一侵襲〉,收於K.Kim編《資訊安全性和密碼術-ICISC 2001》,電腦科學筆記第2288卷,第417-427頁,Springer出版社,2002年。
防止SPA型侵襲的更佳方式是,使用所謂副頻道原子性,參見Benoît Chevallier-Mames,Mathieu Ciet和Marc Joye撰〈防止簡單副頻道分析之低成本解決方案:副頻道原子性〉,載於《IEEE在電腦上異動》,(53)6:第760-768頁,2004年。相對應演算如下:
演算3:由左至右二元法(原子式)
輸入:N,x Z/NZ和d=(,...,d0)2 N
輸出:y=xd mod N
1:R[0]←1;R[1]←x
2:j=I-1;b←0
3:當(j≧0)進行
4:R[0]←R[0].R[b]mod N
5:b←b⊕dj,j←j-﹁b
6:結束
7:回到R[0]
演算4:由右至左二元法(原子式)
輸入:N,x Z/NZ和d=(,...,d0)2 N
輸出:y=xd mod N
1:R[0]←1;R[1]←x
2:j←0;b←1
3:當(j≦I-1)進行
4:b←b⊕dj
5:R[b]←R[b].R[1]mod N;j←j+b
6:結束
7:回到R[0]
在演算3和演算4中,⊕指XOR(互斥OR)運算子,而﹁指負運算子(即,若b=0,則﹁b=1,而若b=1,則﹁b=0)。
須知成本未增加,但保留每位元約1.5乘法。又須知副頻道原子性不限於二元取冪法。進一步演算可參見上述Chevallier-Mames,Ciet和Joye文章。
雖然副頻道原子性導致很好的演算,但應強調方法上假設乘法運算為原子式。更明確言之,假設藉觀察適當副頻道,不可能分辨模組式求平方和模組式乘法。此項假設不能始終滿足。具體侵襲參見Frédéric Amiel,Benoît Feix,Michael Tunstall,Claire Whelan和William P.Marnane撰〈分辨乘法與
求平方運算〉,載於R.Avanzi,L.Keliher和F.Sica編《密碼術中之選擇區域-SAC 2008》,電腦科學筆記第5394卷,第346-360頁,Springer出版社,2009年。
因此須知亟須有解決方案,從副頻道觀點言,使模組式乘法行為有如模組式求平方。本發明即提供此解決方案。
本發明第一面向係針對進行模組式取冪之方法,包括迭代模組式乘法步驟,採取第一模數N、祕密指數d和基數x,做為輸入。在至少一模組式乘法步驟當中(旨在從二數值a,b和第一模數N,計算結果c,即c=a.b mod N),處理器採取二數值a,b和第一模數N為輸入;由二數值a,b和第一模數N,得二運算元a',b'和第二模數N',使二運算元a',b'至少其一,與二數值a,b不同,而當a等於b,二運算元a',b'不同,故模組式乘法c=a.b mod N,從副頻道觀點,行為像模組式求平方,當a'等於b'時除外;其中使用頂多線式複雜性運算,由數值a得運算元a',數值b得運算元b',由第一模數N得第二模數N';計算中間結果c'=a'.b' mod N';從中間結果c'衍生結果c,其中係使用頂多線式複雜性運算,由c'而得c;並使用結果c於模組式取冪。
在第一較佳具體例中,a'=2a,b'=b+N和N'=2N,而c'=c/2。
在第二較佳具體例中,a'=N-a,b'=b和N'=N,而c'=N-c。第一模數n以奇數為宜。
本發明第二面向係針對進行模組式取冪之處理器,包括迭代模組式乘法步驟,並採取第一模數N、祕密指數d和基數x做為輸入。處理器包括機構,在至少一模組式乘法步驟當中(旨在從二數值a,b和第一模數N,計算結果c,故c=a.b mod N),供:採取二數值a,b和第一模數N為輸入;由二數值a,b和第一模數N,得二運算元a',b'和第二模數N',使二運算元a',b'至少其一,與二數值a,b不同,而當a等於b,
二運算元a',b'不同,故模組式乘法c=a.b mod N,從副頻道觀點,行為像模組式求平方,當a'等於b'時除外;其中使用頂多線式複雜性運算,由數值a得運算元a',由數值b得運算元b',由第一模數N得第二模數N';計算中間結果c'=a'.b' mod N';從中間結果c'衍生結果c,其中使用頂多線式複雜性運算,由c'得c;其中處理器又包括機構,供使用結果c於模組式取冪。
在第一較佳具體例中,a'=2a,b'=b+N和N'=2N,而c'=c/2。
在第二較佳具體例中,a'=N-a,b'=b和N'=N,而c'=N-c。第一模數n以奇數為宜。
本發明第三面向係針對電腦程式產品,其中儲存指令,由處理器執行時,可進行第一面向之方法。
茲參照附圖所示非限制性實施例說明本發明較佳特點。
本發明的主要意念已如前述,從副頻道觀點,在使模組式乘法行為像模組式求平方,可用來提供模組式取冪演算,以對抗某些副頻道侵襲。
此舉可藉評a和b模數N的模阻式乘法達成,故當a=b時,出現在模組式乘法中的二運算元數值不同。
第一較佳具體例係基於觀察到,對於任何元素a,b Z/NZ:a.b mod N=[(a+a).(b+N)mod 2N]/2
證明:界定整數T=(a+a).(b+N)和S=T/2。則T mod 2N=T-[T/(2N)]2N=2(S-[S/N]N)=2(S mod N)。因此,(T mod 2N)/2≡S≡ab(mod N)。結果可知(T mod 2N)/2在於{0,...,N-1}。
值得注意的是,當a=b,則(a+a).(b+N)=(2a).(a+N),而2a≠a+N,否則會使a=N,此在Z/NZ內(即,在集合
{0,1,...,N-1})為不可能。易言之,當a=b,出現在模組式乘法(a+a).(b+N)mod 2N中的二運算元數值即不同。
第二較佳具體例有賴下午恒等式:a.b mod N=N-[(N-a).b mod N]
證明:界定整數S=N-[(N-a).b mod N]。Since(-1)2=1,we obviously have S≡a.b(mod N)。又,S{0,...,N-1}。
再者,設N為奇數,值得注意的是,當a=b,在模組式乘法(N-a).b mod N中出現的二運算元數值不同。誠然,當a=b,則(N-a).b=(N-a).a,且當N為奇數,可始終滿足(N-a)≠a。
在修飾模組式乘法中,若a'和b'為運算元,N'為模數,而c'為修飾模組式乘法的結果,需要調節,而得正確輸出c,則可知使用頂多線式複雜性運算,可得運算元a'和b'以及模數N'(精於此道之士均之N'=2N通常是做為加法或位元移動實行),一如從c'得c所用運算(係實行除法做為位元移動)。
任一具體例均可在先前技術中所述演算3和4中使用,而引起下述演算。
演算3':由左到右二元法(原子式)實行第一具體例
輸入:N,x Z/NZ和d=(,...,d0)2 N
輸出:y=xd mod N
1:R[0]←1;R[1]←x
2:j=I-1;b←0
3:當(j≧0)進行
4:R[0]←((R[0]+R[0]).(R[b]+N)mod 2N)/2
5:b←b⊕dj,j←j-﹁b
6:結束
7:回到R[0]
演算4':由右到左二元法(原子式)實行第二具體例
輸入:N,x Z/NZ和d=(,...,d0)2 N
輸出:y=xd mod N
1:R[0]←1;R[1]←x
2:j←0;b←1
3:當(j≦I-1)進行
4:b←b⊕dj
5:R[b]←N-[(N-R[b]).R[1]mod N];j←j+b
6:結束
7:回到R[0]
須知有重寫公式算出模組式求平方。其例為70和20之模組式乘法,N=120,使用第一具體例公式:((70+70).(20+120)mod 240)/2=(140.140 mod 240)/2=(19600 mod 240)/2=160/2=80。此例按第二具體例公式為70和51之模組式乘法,N=121:121-((121-70).51 mod 121)=121-(51.51 mod 121)=121-(2601 mod 121)=61。
然而須知此等發生率,遠較原有原子式計劃之求平方更罕見,後者則經常發生。又,與某些隨機化技術組合時,難以產生如此衝突數值。此發生在例如把模組式乘法y=xd mod N,計算成y=[(x+r.N)d mod t.N]mod N,其中對於某些參數k,t為隨機k位元整數,而r為{0,...,t-1}中之隨機整數。
第1圖表示本發明較佳具體例之裝置。裝置100包括適於與其他裝置(圖上未示)通訊之至少一界面單位110、至少一處理器120,和適於儲存資料之至少一記憶器130,諸如累積器和中間計算結果。處理器120適於按照本發明方法任何具體例計算模組式乘法,並且執行上述實行此等乘法之模組式取冪演算。電腦程式產品140,諸如CD-ROM或DVD,包括所儲存指令,以處理器120執行時,進行本發明任何具體例之方法。
本發明乘法提供模組式取冪演算以增進對抗副頻道攻擊之保護。
說明書和(適當時)申請專利範圍及圖揭示之特點,可單或以任何適當組合方式提供。所述在硬體內實行之特點,亦可在軟體內為之,反之亦然。申請專利範圍內出現之參照號碼,只供說明之用,對申請專利範圍無限制效果。
100‧‧‧裝置
110‧‧‧界面單位
120‧‧‧處理器
130‧‧‧記憶器
140‧‧‧電腦程式產品
第1圖表示本發明較佳具體例之裝置,以進行抵抗某些副頻道侵襲之取冪。
100‧‧‧裝置
110‧‧‧界面單位
120‧‧‧處理器
130‧‧‧記憶器
140‧‧‧電腦程式產品
Claims (9)
- 一種進行模組式取冪之方法,包括迭代模組式乘法步驟,並採取第一模數N、祕密指數d和基數x,做為輸入,此方法係在處理器(120)內進行,利用觀察適當副頻道,分辨模組式求平方與模組式乘法之差別,此方法包括如下步驟,於旨在從二數值a,b和第一模數N計算結果c,(即c=a.b mod N)之至少一迭代模組式乘法步驟當中:採取二數值a,b和第一模數N為輸入;從二數值a,b和第一模數N,求得二運算元a',b'和第二模數N',二運算元a',b'至少其一與二數值a,b不同,當a等於b時,二運算元a',b'不同,故模組式乘法c=a.b mod N,從副頻道觀點,其行為像模組式求平方,當a'等於b'時除外;其中使用頂多線式複雜性運算,由數值a得運算元a',由數值b得運算元b',由第一模數N得第二模數N';計算中間結果c'=a'.b' mod N';由中間結果c'衍生結果c,其中c係使用頂多線式複雜性運算,從c'而得c;使用結果c於模組式取冪者。
- 如申請專利範圍第1項之方法,其中a'=2a,b'=b+N和N'=2N,又其中c'=c/2者。
- 如申請專利範圍第1項之方法,其中a'=N-a,b'=b和N'=N,又其中c'=N-c者。
- 如申請專利範圍第3項之方法,其中第一模數N係奇數者。
- 一種處理器(120),供進行模組式取冪,包括迭代模組式乘法步驟,並採取第一模數N、祕密指數d和基數x,做為輸入,該處理器利用觀察適當副頻道,分辨模組式求平方與模組式乘法之差別,包括機構於旨在從二數值a,b和第一模數N計算結果c,即c=a.b mod N之至少一迭代模組式乘法當中,可供: 採取二數值a,b和第一模數N為輸入;從二數值a,b和第一模數N,求得二運算元a',b'和第二模數N',二運算元a',b'至少其一與二數值a,b不同,當a等於b時,二運算元a',b'不同,故模組式乘法c=a.b mod N,從副頻道觀點,其行為像模組式求平方,當a'等於b'時除外;其中使用頂多線式複雜性運算,由數值a得運算元a',由數值b得運算元b',由第一模數N得第二模數N';計算中間結果c'=a'.b' mod N';由中間結果c'衍生結果c,其中c係使用頂多線式複雜性運算,從c'而得c;其中處理器又包括機構,供使用結果c於模組式取冪者。
- 如申請專利範圍第5項之處理器,其中a'=2a,b'=b+N和N'=2N,又其中c'=c/2者。
- 如申請專利範圍第5項之處理器,其中a'=N-a,b'=b和N'=N,又其中c'=N-c者。
- 如申請專利範圍第7項之處理器,其中第一模數N係奇數者。
- 一種電腦程式產品(140),儲存指令,由處理器執行時,可進行如申請專利範圍第1至4項中任一項之方法者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11305568 | 2011-05-11 | ||
EP11176404A EP2523096A1 (en) | 2011-05-11 | 2011-08-03 | Modular exponentiation and device resistant against side-channel attacks |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201250581A TW201250581A (en) | 2012-12-16 |
TWI529615B true TWI529615B (zh) | 2016-04-11 |
Family
ID=48139296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101115022A TWI529615B (zh) | 2011-05-11 | 2012-04-27 | 進行模組式取冪之方法及其處理器和電腦程式產品 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI529615B (zh) |
-
2012
- 2012-04-27 TW TW101115022A patent/TWI529615B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW201250581A (en) | 2012-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yen et al. | Power analysis by exploiting chosen message and internal collisions–vulnerability of checking mechanism for RSA-decryption | |
CN107040362B (zh) | 模乘设备和方法 | |
Amiel et al. | Power analysis for secret recovering and reverse engineering of public key algorithms | |
Joye et al. | Exponent recoding and regular exponentiation algorithms | |
JP5977996B2 (ja) | サイドチャンネル攻撃に対する抵抗力のあるモジュラー累乗法及び装置 | |
Feix et al. | Side-channel analysis on blinded regular scalar multiplications | |
Trichina et al. | Implementation of elliptic curve cryptography with built-in counter measures against side channel attacks | |
EP3503459B1 (en) | Device and method for protecting execution of a cryptographic operation | |
Danger et al. | Improving the big mac attack on elliptic curve cryptography | |
US20100287384A1 (en) | Arrangement for and method of protecting a data processing device against an attack or analysis | |
Clavier et al. | Square always exponentiation | |
Järvinen et al. | Single-trace side-channel attacks on scalar multiplications with precomputations | |
EP2535805A1 (en) | Fault-resistant exponentiation algorithm | |
Abarzúa et al. | Survey on performance and security problems of countermeasures for passive side-channel attacks on ECC | |
Mishra | Pipelined computation of scalar multiplication in elliptic curve cryptosystems (extended version) | |
Kim et al. | Practical second‐order correlation power analysis on the message blinding method and its novel countermeasure for RSA | |
Yin et al. | A randomized binary modular exponentiation based RSA algorithm against the comparative power analysis | |
Fournaris | Fault and power analysis attack protection techniques for standardized public key cryptosystems | |
TWI529615B (zh) | 進行模組式取冪之方法及其處理器和電腦程式產品 | |
Park et al. | An improved side channel attack using event information of subtraction | |
Lee et al. | A combined single trace attack on global shuffling long integer multiplication and its novel countermeasure | |
Zhang et al. | Efficient elliptic curve scalar multiplication algorithms resistant to power analysis | |
Takemura et al. | ECC Atomic Block with NAF against Strong Side-Channel Attacks on Binary Curves | |
Abarzúa et al. | Same value analysis on Edwards curves | |
Mentens et al. | FPGA-oriented secure data path design: implementation of a public key coprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |