熊莉英 ,李慧云 ,李家會
(1.西南科技大學 信息工程學院,四川 綿陽621010;2.中國科學院深圳先進技術研究院集成技術研究所,廣東 深圳518055)
與對稱密鑰密碼體系相比,公鑰密碼體系允許更靈活的密鑰管理。目前,應用最廣泛的兩種公鑰密碼算法是RSA以及橢圓曲線密碼(ECC)算法[1-2]。與RSA相比,ECC具有更短的密鑰長度、更快的運算(諸如內存、能量消耗以及帶寬存儲),從而在學術與工程領域引起持續增長的興趣。
側信道分析(如時序、功耗、電磁輻射)攻擊已經對公鑰密碼體制的硬件實現產生了威脅。簡單功耗分析SPA(Simple Power Analysis)攻擊已被證明可有效攻擊一些公鑰密碼算法[3]。該技術主要涉及對運行公鑰加密算法的設備功耗進行檢查分析。RSA實現中的模方和模乘運算是可以被區分開的,使得對方可以獲得密鑰。ECC中點加和倍點操作類似于RSA中的模方和模乘操作。如果可以區分ECC實現中的點加和倍點操作,那么攻擊者就可以獲取ECC密鑰。
目前大多數的RSA算法都使用相同的序列進行模乘和模方操作,大多數ECC算法也使用相同的序列進行點加和倍點運算,這增大了對差異的區分難度。RSA中“一貫的模乘和模方操作”以及ECC中“一貫的點加和倍點操作”似乎成為了對抗SPA攻擊的有效手段。為了從功耗波形中獲得更強的信息泄露,針對特殊輸入數據的RSA的選擇明文攻擊方法得以提出[4-7],以及采取更為復雜的原子化平衡操作[9]和蒙哥馬利方法[10]等,但都使得在SPA攻擊時得不到點加和倍點運算的顯著功耗變化。
為了在功耗波形中獲得增強的信息泄露,本文提出了一種針對ECC算法的選擇明文側信道攻擊方法,該方法利用了2階或者其他小整數階點作為特殊輸入點P,以增強點和倍點操作中的顯著變化。
ECC算法把現有的離散對數問題轉化為橢圓曲線上的連續問題。一個生成元為g的n階循環群G的離散對數問題指的是找出群G上使y=gx成立的x。橢圓曲線上的離散對數比其他有限域上的群(諸如乘法群)要困難得多。令E(EP)為一個定義在有限域FP上的橢圓曲線,令P為一個E(EP)上的點。素數p、橢圓曲線方程FP、點P以及其階數n是公共的域參數。私鑰是一個從區間[1,n-1]上均勻隨機選取的整數d,其相應的公鑰是Q=dP。私鑰d的確定問題就是橢圓曲線上的離散對數問題(ECDLP)。
橢圓曲線就是由滿足定義在F上的Weierstrass方程:

其中ai∈F,這些解的點組成一個平面曲線。如果F的特征值(char)F≠2,3,Weierstrass方程可變成y2=x3+ax+b,a,b∈F。橢圓曲線上的所有點加上一個特殊的無窮遠點O,可以由下面給出的加法運算構成一個阿貝爾群結構,當F≠2,3 時的加法方程式:令點P=(x1,y1)≠O,-P=(x1,-y1)。令點Q=(x2,y2)≠O且Q≠-P, 則和P+Q=(x3,y3)可 計算如 下:

其中,

如果P≠Q,則運算P+Q稱為點加運算(A);如果P=Q則該運算稱為倍點運算(D),顯然,二者在方程中是不同的。圖1說明了ECC的點和倍點運算。

圖1 ECC中的點和倍點運算
依據 IEEE P1363a/D9和 ANSI X9.63-2001,公鑰加解密算法ECIES-1描述如下:橢圓曲線E的基點為G,階為n,解密者 B的公鑰為點PB=[d]G,私鑰為d,M為1 bit的待加密信息。KDF為密鑰派生函數,MAC為消息認證碼算法,p1、p2為加密者與解密者預先共有的填充碼,M為明文。
(1)加密算法
為了對明文M進行加密,作為加密者的用戶A進行以下操作:
①隨機產生u∈[1,n-1],計算V=(x,y)=[u]PB。
②計算R=[u]G。
③計算K=KDF(V,p1)=K1||K2。其中K1的長度為 1 bit,K2的長度為k2 bit。
④計算C=M?K。
⑤計算T=MACK2(C||p2)。
⑥發送(R,C,T)給用戶 B。
(2)解密算法
為了對密文C進行解密,作為解密者的用戶B執行以下操作:
①計算V=(x,y)=[d]R。
②計算K=KDF(V,p1)=K1||K2。其中K1的長度為 1 bit,K2的長度為k2 bit。
③計算T′=MACK2(C||p2),若T′≠T則報錯退出,否則繼續。
④計算M=C?K,M即為恢復出的信息。
點P的階數指的是滿足[n]P=0的最小正整數n,具有如下性質:
定理 1(Hasse定理):設E(Fq)是定義在域Fq上的橢圓曲線,E(Fq)上點的個數用 #E(Fq)表示,則:

由于目前絕大多數的標量乘法都采用相同的指令序列來進行點和倍點運算,因此在SPA攻擊中,點和倍點的區別不是很明顯。為了從功率波中獲得更強的信息泄露,而提出采用特殊輸入數據的選擇消息ECC攻擊法。這個方法的基本概念是采用特殊的輸入數據,例如階數為2、3或更小的點P。點P的階數指的是滿足[n]P=0的最小正整數n。為了找到階數為2的點,令 2P=0,即P=-P。如果P=(x,y),則-P=(x,-y)。當P=-P,則有y=0。因此選擇接近x軸的點(本文中記為Px)來增強點和倍點操作的差別。如點Q=2Px的倍點運算會產生一個接近無窮大的點,也即坐標值(xQ,yQ)非常大,這樣就會產生顯著的功耗。本文把這種接進無窮大的點Q記為Q∞。
根據從右至左的二進制算法,點加和倍點操作可以歸納為 3種類型:點加(A),點加后倍點(D1)和倍點后的倍點(D2)。由方程式“P+Q”可知,D2操作比 D1或者A操作產生更大的功耗。由此可見,即使原子化防御措施對標量乘實現中的點加和倍點操作進行了功率平衡,如圖2所示,所選擇的特殊輸入點P仍然會使得操作D2與D1和A相比能顯著也區分開來。以2階輸入點P為例,由于 2P=O,則有:

因為D2僅在正處理的密鑰位為“0”時出現,所以通過SPA就可以確定密鑰位的順序。
該方法通過選擇特殊的階數為2的輸入點P,放大了點倍與點加操作的功耗差。通過該方法,可以對ECC實現中的從左至右或從右至左二進制算法進行有效攻擊。

圖2 特殊選擇的接近X軸的輸入點P的點和倍點運算
如果輸入點P的階數為3,則具有連續兩位1的密鑰操作,如下例所示。但Q=3P=O時,功耗波形與其他操作有顯著差異,能夠被識別出。

或者,具有…1001…的密鑰位形式,也能夠被識別出。同理,還有如下所示的其他組合。只要出現nP=O,結合前后的功耗波形,就能判斷出相鄰2或更多位的邏輯值。

為了應用上述的選擇消息攻擊方法,攻擊者應按照下面的步驟進行操作:
(1)確認該橢圓曲線上存在階數為小整數的點;
(2)證明有階數為小整數的點存在;
(3)找到該拐點;
(4)進行選擇明文攻擊。
為了找到階數為 2的點,令 2P=O(即 P=-P)。如果P=(x,y),則-P=(x,-y)。 當 P=-P 時,有 y=0,即該點 P就是階數為2的點,存在于x軸上。
要在橢圓曲線y2=x3+ax+b上找到階數為3的點,令3P=O,則 2P=-P:

由倍點公式可得:

如果 2 P1=-P1,則有:

或者:

則有:

因此,該階數為3的點在x軸上的值為:

尋找其他階數點的方法可以進一步閱讀參考文獻[10-12]。
本文提出了一種新的選擇明文的簡單功耗分析攻擊法。在該方法中,選擇階數為2或者其他小整數階點作為特殊點P,是為了利用其在無限域上的特殊性。該方法放大了點倍與點加操作的功耗差。通過該方法,可以對ECC實現中的從左至右或從右至左二進制算法進行有效攻擊。
[1]MILLER V S.Use of elliptic curves in cryptography[C].Advances in Cryptology,CRYPTO’85 Proceedings,1986,218:417-426.
[2]KOBLITZ N.Elliptic curve cryptosystems[J].Mathematics of Computation,1987,48(177):203-209.
[3]KOCHER P,JAFFE J,JUN B.Timing attacks on implementations of Diffie-Hellman,RSA,DSS,and other systems[C].Proceedings of 16th International Advances in Cryptology Conference,CRYPTO’96,1996,1109:104-113.
[4]MIYAMOTO A,HOMMA N,AOKI T,et al.Enhanced power analysis attack using chosen message against RSA hardware implementations[C].IEEE Intrnational Symposium on Circuits and Systems,ISCAS 2008,2008:3282-3285.
[5]NOVAK R.SPA-based adaptive chosen-ciphertext attack on RSA implementation[C].International Workshop on Practice and Theory in Public Key Cryptography,LNCS,2002,2274:252-262.
[6]BOER B D,LEMKE K,WICKE G.A DPA attack against the modular reduction within a CRT implementation of RSA[C].International Workshop on Cryptographic Hardware and Embedded Systems,CHES 2002,LNCS,2003,2523:228-243.
[7]YEN S M,LIEN W C,MOON S J,et al.Power analysis by exploiting chosen message and internal collisions-vulnerability of checking mechanism for RSA-decryption[J].Proceedings of Progress in Cryptology,Mycrypt 2005,2005,3715:183-195.
[8]Chen Tingding,Li Huiyun,Wu Keke,et al.Countermeasure of ECC against side-channel attacks:balanced point addition and point doubling operation procedure[C].Asia-Pacific Conference on Information Processing,APCIP 2009,2009,2:465-469.
[9]KIHARA S.On the rank of elliptic curves with a rational point of order 4[J].Proceedings of the Japan Academy,Series A,Mathematical Sciences,2004,80(4):21-34.
[10]KIHARA S.On the rank of elliptic curves with three rational points of order 2.Ⅲ[J].Proceedings of the Japan Academy,Series A,Mathematical Sciences,2004,80(3):13-20.
[11]KIHARA S.On the rank of elliptic curves with a rational point of order 4.Ⅱ[J].Proceedings of the Japan Academy,Series A,Mathematical Sciences,2004,80(8):151-168.
[12]Li Huiyun,Wu Keke,Xu Guoqing,et al.Simple power analysis attacks using chosen message against ECC hardware implementations[C].World Congress on Internet Security,2011:68-72.