TW201312982A - 旁通道攻擊的防禦方法 - Google Patents

旁通道攻擊的防禦方法 Download PDF

Info

Publication number
TW201312982A
TW201312982A TW101126541A TW101126541A TW201312982A TW 201312982 A TW201312982 A TW 201312982A TW 101126541 A TW101126541 A TW 101126541A TW 101126541 A TW101126541 A TW 101126541A TW 201312982 A TW201312982 A TW 201312982A
Authority
TW
Taiwan
Prior art keywords
function
adr
variable
compare
mip
Prior art date
Application number
TW101126541A
Other languages
English (en)
Inventor
Jean-Sebastien Coron
Original Assignee
Crocus Technology Sa
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 Crocus Technology Sa filed Critical Crocus Technology Sa
Publication of TW201312982A publication Critical patent/TW201312982A/zh

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本發明係提供一種旁通道攻擊的防禦方法,該防禦方法包含執行一區塊加密演算法以遮蔽中間變數,其中該區塊加密演算法包含一個或多個非線性函數,其特徵在於該非線性函數中之至少一個係使用一適位匹配函數加以實施。

Description

旁通道攻擊的防禦方法
本發明係關於一種對於區塊加密(block-cipher)之旁通道攻擊之防禦方法,尤其是,但非唯獨,關於一種使用適位匹配函數(match-in-place function)之防禦方法。
許多現今使用的加密演算法,諸如最廣被使用之加密演算法「進階加密標準(Advanced Encryption Standard,(AES)」,係很容易受到差分能量分析(Differential Power Analysis,DPA)之攻擊。DPA係一種旁通道攻擊,其方法係當微處理器執行加密演算法時首先測量該微處理器之功率消耗,接著再進行統計分析以回復使用於加密之加密演算法之秘密金鑰。一旦秘密金鑰決定後,即有可能對已加密資料進行解密。
微處理之電磁波放射也可被測量及利用來決定使用於加密之加密演算法之秘密金鑰。
一種用來防止秘密金鑰演算法被DPA攻擊之普遍技術包括了使用一隨機遮罩遮蔽每一個中間變數。被遮蔽資料和該隨機遮罩接著被分開處理,最後於演算法結束時再相結合。試圖分析微處理器在單一點之電力消耗之攻擊者將獲得隨機數值(隨機資料值和隨機遮罩值);因此,此類的遮罩對於一階DPA之攻擊係安全無慮。
遮蔽防禦方法之特微係使用於保護一給定靈敏變數之隨機遮罩之數目;使用d個隨機遮罩之遮蔽被稱作d階遮蔽(d-th order masking)。一d階遮蔽僅可被一(d+1) 階旁通道分析所破壞,亦即被一需要同時處理d+1個變數之攻擊所破壞。破壞一防禦方法所需的執行次數係與階數d成指數比例增加。因此,階數d係一良好的安全性指標。然而,實務上最有效率的防禦方法僅僅為階數d=1。
二階DPA攻擊已被證明有可能將已遮蔽資料加以解密。因此,需要有更好的防禦方法來確保資料的安全加密。
防禦方法已有進一步的發展;最新對於旁通道攻擊的防禦方法之一係階數d=2之防禦方法。
對於任何遮蔽防禦方法而言,最主要的因難在於保護演算法的非線性部分;對進階加密標準(AES)而言,演算法的非線性部分本質上係SBOX函數。所使用的技巧包括對每個SBOX查表(SBOX look-up)迭代整個SBOX函數、使用實施成子程序之比較演算法。對於每個SBOX輸入,呼叫該比較演算法係可能證明此防禦方法可抵擋任何二階旁通道攻擊。
然而,此類遮蔽防禦方法係十分地沒有效率,因為在執行過程中需要許多的運算而且也使用了許多微處理器記憶體。
本發明之目的係為排除或減輕至少一些上述之缺點。
根據本發明,這些目的係藉由旁通道攻擊之防禦方法來達成,該方法包含執行一區塊加密演算法以遮蔽中 間變數,其中該區塊加密演算法包含一個或多個非線性函數,其特徵在於該非線性函數中之至少一個係使用一適位匹配函數加以實施。
本發明之方法係利用一適位匹配函數以改善方法之效率。使用適位匹配函數係降低了提供旁通道攻擊之有效防禦所需之運算次數。此外,實施本發明方法所需之記憶體與已知方法比較係較少。
適位匹配函數可以是隨機位元適位匹配函數(bit-randomized match-in place function)(MIP I (data;adr,b))
該隨機位元適位匹配函數可定義為: 其中adr係記憶體位址,data係一可儲存在記憶體位址之變數,且b係當data變數等於出現在記憶體位址adr中之實際資料時所回傳之數值;否則回傳b之補數。b可以是一位元值。
以下關係式可以成立: 其中b之補數。
該非線性函數中之至少一個可包含一compare b 函數,該compare b 函數係定義為:
其中x係該compare b 函數之第一輸入變數,y係該compare b 函數之第二輸入變數,且b係當x等於y時所回傳 之數值,使得該compare b 函數可藉由將變數x寫入記憶體位址adr;執行定義為: 之隨機位元適位匹配函數以及回傳MIP I (yadr,b)而加以實施。
該非線性函數可被包含於一SubByte運算中。該非線性函數可被包含於一AES演算法之一SubByte運算中。
該區塊加密演算法可進一步包含一個或多個線性函數。該一或多個線性函數中至少一個可藉由對函數之變數進行互斥或(XOR)運算而遮蔽。
該區塊加密演算法可以是進階加密標準(AES)演算法。
根據本發明之進一步觀點係提供一種包含一電腦程式之電腦可讀取媒體,該電腦程式係配置以實施上述提及方法中之任何一種方法。
根據本發明之進一步觀點係提供一種自一二階遮蔽輸入計算一二階遮蔽Sbox函數之方法,該方法包含步驟:
(i)b ← rand(1)
(ii)for a=0 to 2n-1 do
(a)write(r 1aadr)
(b)cmpMIP I (r 2adrb)
(iii)Return R b 其中b係一表示一標記一暫存器之隨機位元之變數,且a係一表示一定義步驟(a)-(c)應被執行次數之指標之變數,r 1r 2係一組輸入遮罩,係一遮蔽值,其中,且s 1s 2係一組輸出遮罩,且adr係空閒記憶體位址,cmp係一標記一暫存器之位元變數且係函數MIP I (r 2adrb)之輸出,R cmp 係一微處理器之一暫存器之暫存器位址。典型地,在微處理器中至少使用兩個暫存器R0和R1(亦即cmp可以是0或1;若cmp=0,則第一暫存器R0被標記(indexed)/定址(addressed),且若cmp=1,則第二暫存器R1被標記/定址)。R b 係一微處理器之一暫存器之暫存器位址。典型地,在微處理器中至少使用兩個暫存器R0和R1(亦即b可以是0或1;若b=0,則暫存器R0被標記/定址,且若b=1,則暫存器R1被標記/定址)。MIP I (r 2adrb)係一隨機位元適位匹配函數,其定義為:
根據本發明之進一步觀點係提供一種包含一電腦程式之電腦可讀取媒體,該電腦程式係配置以實施上述計算一二階遮蔽Sbox函數之方法。
本發明將藉由實施例敍述之幫助以更佳地被了解,實施例係以範例和圖式圖解之方式呈現。
本發明之方法於AES加密演算法中之用途將詳加敍述。然而,需了解的是本發明之方法並不受限於與AES加密演算法一起使用;本發明之方法可在任何區塊加密 演算法中使用。
AES加密演算法係在一4x4位元組陣列si,j(稱作「體(state)」)上運算。對加密而言,AES加密演算法之各子部分(除了最後子部分外)包含以下四階段:
1. AddRoundKey:將體之各位元組對回合金鑰ki,j(該回合金鑰係由金鑰排程取得)進行互斥或運算:si,j ← si,j ⊕ ki,j
2. SubBytes:使用8-位元S-box函數將體之各位元組更新:si,j ← S(si,j)
S-box函數係定義為:S(x)=Aff(Inv(x))
其中Aff係一在GF(28)上之仿射函數(affine function)且Inv(x)=x254係一在GF(28)(0→0)上之反函數(inverse function)
3. ShiftRows:將體之位元組在各列中循環地平移一特定偏置量;第一列保持不變。
4. MixColumns:體之位元組依行進行以下之修飾:sI 0,c ← (02.s0,c)⊕(03.s1,c)⊕ s2,c ⊕ s3,c
sI 1,c ← s0,c ⊕(02.s1,c)⊕(03.s2,c)⊕ s3,c
sI 2,c ← s0,c ⊕ s1,c ⊕(02.s2,c)⊕(03.s3,c)
sI 3,c ← (03.s0,c)⊕ s1,c ⊕ s2,c ⊕(02.s3,c)
具有128位元金鑰之AES加密虛擬程式碼係顯示於第1圖。字組(word)陣列「w」包含由一金鑰排程演算法所產生的回合金鑰(ki,i)。
對解密而言,每一回合(除了最後一回合外)包含以下運算:
1. InvShiftRows:係ShiftRows運算(加密之第三階段)之反運算。體之位元組(使用於AES加密之中間變數集合,定義於第[0025]段)係在各行中循環地平移一特定偏置量;位元組之第一列保持不變。
2. InvSubBytes:係SubBytes運算(加密之第二階段)之反運算。反S-box(S-1)以下方之公式應用於體之各位元組:S-1(x)=Inv(Aff-1(x))
3. AddRoundKey:此運算等於其本身之反運算。
4. InvMixColumns:係MixColumns(加密之第四階段)之反運算。體之位元組依列進行以下之修飾:sI 0,c ← (0e.s0,c)⊕(0b.s1,c)⊕(0d.s2,c)⊕(09.s3,c)
sI 1,c ← (09.s0,c)⊕(0e.s1,c)⊕(0b.s2,c)⊕(0d.s3,c)
sI 2,c ← (0d.s0,c)⊕(09.s1,c)⊕(0e.s2,c)⊕(0b.s3,c)
sI 3,c ← (0b.s0,c)⊕(0d.s1,c)⊕(09.s2,c)⊕(0e.s3,c)
解密演算法之虛擬程式碼係顯示於第2圖。
最後,回合金鑰排程(ki,i)係基於以下運算:
1. SubWord:取一4位元組輸入字組,將S-box(S(x))應用至該4位元組之各位元組。
2. RotWord:取一字組[a0;a1;a2;a3]作為輸入及執行一循環性排列以回傳[a1;a2;a3;a0]。
3. Xor with Rcon:取一32位元之字組作為輸入及對該字組與回合常數字組陣列Rcon[i]=[(02)i-1;00;00;00],於1≦i≦10之間進行互斥或運算。我們參考[5]作為金鑰排程之完整敍述。
如簡介所述,遮蔽防禦方法之原理係使用一個或多個隨機遮罩遮蔽每一個中間變數。在二階d=2之遮蔽防禦方法之案例中,使用兩個遮罩,其分成總計三股(share)。更精確而言,任何體變數p(於AES中表示成一位元組)係依以下關係式被分成三股(p0;p1;p2):p=p0 ⊕ p1 ⊕ p2其中股p1和p2被稱為遮罩。
該三股p0、p1和p2必須以在整個加密演算法執行過程中保有其先前關係之方式而加以處理。要注意的是同樣地,該回合金鑰之每個位元組k必須分成三股(k0;k1;k2),使得k=k0 ⊕k1 ⊕k2
區塊加密之線性部分係容易處理的。當以下關係成立時,函數f被稱為線性:f(x ⊕ y)=f(x)⊕ f(y) 等式(1)
則對此類線性函數而言,當該三股(p0;p1;p2)被給定作為輸入時,使得:p=p0 ⊕ p1 ⊕ p2以上便足以分別計算出f(p0)、f(p1)及f(p2)且自等式(1)可得出: f(p)=f(p0)⊕ f(p1)⊕f(p2)因此,該三輸出股f(p0)、f(p1)及f(p2)係輸出f(p)之一有效分享(valid sharing)。對於AES加密而言,AddRoundKey、ShiftRows和MixColumns運算均為線性函數且因此可以用此方式加以處理。然而,SubBytes運算(例如在AES案例中之S-box函數)係一非線性函數且必須以不同方式處理。
為了處理在AES案例中諸如S-box函數此類的非線性函數,一演算法可被定義如下:S:{0;1}n → {0;1}m注意對AES而言,n=m=8。該演算法較佳地包含一遮蔽函數compare b ,其定義如下: 其中x和y係compare b 函數之輸入變數。
自一二階遮蔽輸入計算一二階遮蔽S-box函數之方法可以如下執行:Input:一遮蔽值,其中r 1r 2係一組輸入遮罩,且s1、s2 F m 2係一組輸出遮罩。
Output:遮蔽S-box函數輸出S(x)⊕ s1 ⊕ s2
1. b ← rand(1)
2. for a=0 to 2n-1 do
(a)cmp ← compare b (r1 ⊕ a;r2)
3. Return Rb
其中r1 ⊕ a;r2compare b 函數之輸入變數,a=r1 ⊕ r2, 則cmp=compare b (r1 ⊕ a;r2)=compare b (r2;r2)=b,得出如所求之
於此特殊實施例中,在實施compare b 函數時需小心謹慎。換言之,compare b (x;y)函數較佳地不應藉由直接計算x ⊕ y來實施,因為在上述演算法中如此做法相當於計算加入之(r1 ⊕ r2 ⊕ a),而如此將產生二階遺漏(second-order leakage)。
實施compare b 函數而可避免任何發生在x ⊕ y之一階旁通道遺漏之方法於現在敍述:記得compare b 函數係定義為:
實施方法需要RAM中具有一2n個位元之表格T。該表格T進行如下之前處理:
1. r3 ← {0;1}n
3. T[r3] ← b以上完成了前處理之步驟。
此前處理步驟結束時,表格T係滿足以下關係: compare b 函數可用以下方式實施:return T[(x ⊕ r3)⊕ y]於此案例中,在計算過程中所有的中間變數均與x ⊕ y無關;如此便可避免任何發生在x ⊕ y之一階旁通道遺漏。
上述之compare b 實施方法係習知技藝。上述compare b 實施方法之缺點是缺乏效率;compare b 演算法需要2n個位元的RAM;然而實務上使用2n個位元組的RAM可能較為便利,因為除此之外必須使用位元存取技術,而如此為要安全地實施將導致速度遲緩而沒效率。前處理需要2n+1次記憶體轉移;此類前處理必須在每次呼叫RDP2演算法之前完成。每次呼叫compare b 則需要進行兩次互斥或運算和一次記憶體轉移。對於n=8之AES而言,compare b 函數於前處理過程中因此需要256個位元組的RAM和257次的記憶體轉移。總計,RDP2演算法需要6×2n次互斥或運算、3×2n+1次的記憶體轉移和產生n+1個隨機位元。
根據本發明之方法係基於compare b 函數之不同實施方法,且特別是基於使用適位匹配函數之實施方法。
任一處理器具有於記憶體某位址adr讀取和寫入某些資料之一般指令dataread(adr)和write(data;adr)。於適位匹配技術中,處理器具有額外的函數MIP(dataadr)其係依以下方式作用:
換言之,資料係於記憶體位置adr被匹配且位於位址adr之數值永不離開記憶體。
於本發明中提供額外函數MIP I ,其係MIP函數之隨機位元版本,其定義如下:
較佳地係存在以下關係:
使用MIP I 函數時,compare b 函數可以簡單地以下面方式實施,其中adr係記憶體中之空閒位址。
compare b (x;y):
1. Write(x;adr)
2. Return MIP I (y;adr;b)一旦x被寫入記憶體中之位址adr後,若x=y,則MIP I (y;adr;b)回傳b且若是其他情形,則回傳,如compare b 函數所要求的。
使用MIP I 函數時,自一二階遮蔽輸入進行一二階遮蔽S-box函數之計算係變成以下方式:Input:一遮蔽值、一組輸出遮罩s 1s 2 F n 2、一空閒記憶體位址adr
Output:遮蔽S-box函數輸出S(x)⊕ s1 ⊕ s2
1. b ← rand(1)
2. for a=0 to 2n-1 do
(a)write(r 1 a;adr)
(b)cmp ← MIPI(r 2 ;adr;b)
3. Return Rb
基於MIP I 函數而實施compare b 函數係滿足了以原本方式實施compare b 函數之相同特性;換言之,所有中間變數均與x ⊕ y無關。
注意的是隨機函數MIP I (y;adr;b)係較佳的。若是改用函數MIP(y;adr)(藉由先計算MIP(y;adr),然後再回傳MIP(y;adr)⊕),則此實施方式將不安全,因為中間變數MIP(y; adr)係不與x ⊕ y無關。
第3圖顯示一表格,其比較了compare b 函數之原本實施方式之效率及根據本發明之compare b 函數實施方式(意即使用MIP I 函數)之效率。清楚可見的是根據本發明實施compare b 函數所需的運算和RAM係較少。
第4圖顯示一表格,其比較了遮蔽演算法原本實施方式之效率與根據本發明之遮蔽演算法實施方式(意即使用MIP I 函數)之效率。對於n=8之AES,本發明需要1個位元組的RAM(而非2n個)、1024次互斥或運算(而非1536次)及512次記憶體轉移(而非769次)。如果互斥或運算和記憶體轉移花費相同的成本,則本發明之變化態樣與原本實施方式比較係快了33%。因此,對於同樣的安全性程度,本發明係提供了一種快速且僅需較少RAM之防禦方法。
本發明所述實施例之不同修飾及變化態樣對於本領域之技術人員在不背離由所附申請專利範圍所定義之發明範圍下係明顯可知的。雖然本發明已經由特定較佳實施例加以敍述,應該了解的是所主張的發明內容不應該受到此類特定實施例不必要的限制。
第1圖係顯示AES加密之虛擬程式碼;第2圖係顯示AES解密之虛擬程式碼;第3圖係顯示一包含記憶體轉移次數(前處理階段)、XOR運算和記憶體轉移次數(主要階段)以及原本實施compare b 函數和根據本發明實施compare b 函數所需記憶 體之表格;以及第4圖係顯示一包含XOR運算次數、記憶體轉移次數以及使用本發明方法實施compare b 函數以實施全二階Rivain-Dottax-Prouff(RDP2)演算法時所需記憶體之表格。

Claims (11)

  1. 一種旁通道攻擊的防禦方法,該方法包含執行一區塊加密演算法以遮蔽中間變數,其中該區塊加密演算法包含一個或多個非線性函數,其特徵在於該非線性函數中之至少一個係使用一適位匹配函數加以實施。
  2. 如申請專利範圍第1項之方法,其中該適位匹配函數係一隨機位元適位匹配函數(MIP I (dataadr,b))。
  3. 如申請專利範圍第2項之方法,其中該隨機位元適位匹配函數係定義為: 其中adr係記憶體位址,data係一可儲存在記憶體位址之變數,且b係當data變數等於出現在記憶體位址adr中之實際資料時所回傳之數值;否則回傳b之補數。
  4. 如申請專利範圍第3項之方法,其中,其中b之補數。
  5. 如申請專利範圍第2項之方法,其中該非線性函數中之至少一個係包含一compare b 函數,該compare b 函數係定義為: 其中x係該compare b 函數之第一輸入變數且y係該compare b 函數之第二輸入變數,且b係當x等於y時所回傳之數值,且係當x不等於y時所回傳之數值,使得該compare b 函數可藉由將變數x寫入記憶體位址 adr、執行定義為 之隨機位元適位匹配函數以及回傳MIP I (yadr,b)而加以實施。
  6. 如申請專利範圍第1項之方法,其中該非線性函數係被包含於一SubByte運算。
  7. 如申請專利範圍第1項之方法,其中該區塊加密演算法進一步包含一個或多個線性函數,其中該一或多個線性函數中至少一個係藉由對函數之變數進行互斥或(XOR)運算而加密。
  8. 如申請專利範圍第1項之方法,其中該區塊加密演算法係一進階加密標準(AES)演算法。
  9. 一種包含一電腦程式之電腦可讀取媒體,該電腦程式係配置以實施如申請專利範圍第1項所述之方法。
  10. 一種自一二階遮蔽輸入計算一二階遮蔽Sbox函數之方法,包含步驟:(i)b ← rand(1) (ii)for a=0 to 2n-1 do (a)write(r 1aadr) (b)cmpMIP I (r 2adrb) (iii)Return R b 其中b係一表示一標記一暫存器之隨機位元之變數,且a係一表示一定義步驟(a)-(c)被執行次數之指標之變數,r 1r 2係一組輸入遮罩,係一遮蔽值,其中 ,且s 1s 2係一組輸出遮罩,且adr係空閒記憶體位址,cmp係一標記一暫存器之位元變數且係函數MIP I (r 2adrb)之輸出,且R cmp R b 各係一微處理器之一暫存器之暫存器位址,其中MIP I (r 2adrb)係一定義為 之隨機位元適位匹配函數。
  11. 一種包含一電腦程式之電腦可讀取媒體,該電腦程式係配置以實施如申請專利範圍第10項所述之方法。
TW101126541A 2011-07-26 2012-07-24 旁通道攻擊的防禦方法 TW201312982A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP11029033 2011-07-26

Publications (1)

Publication Number Publication Date
TW201312982A true TW201312982A (zh) 2013-03-16

Family

ID=48482709

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101126541A TW201312982A (zh) 2011-07-26 2012-07-24 旁通道攻擊的防禦方法

Country Status (1)

Country Link
TW (1) TW201312982A (zh)

Similar Documents

Publication Publication Date Title
JP5892887B2 (ja) サイドチャネル攻撃に対抗する方法
US8199909B2 (en) Method and device for carrying out a cryptographic calculation
US8325928B2 (en) Security countermeasure for power analysis attacks
CN107005404B (zh) 实现密码算法的可执行的白盒掩码实施的处理器装置
US8553877B2 (en) Substitution table masking for cryptographic processes
US8515057B2 (en) Method and device for executing crytographic calculation
US9515820B2 (en) Protection against side channels
CN113940028B (zh) 实现白盒密码的方法和装置
US10210776B2 (en) DPA protection of a rijndael algorithm
US10243728B2 (en) Verification of the resistance of an electronic circuit to side-channel attacks
US8644500B2 (en) Apparatus and method for block cipher process for insecure environments
US10187198B2 (en) Protection of a rijndael algorithm
Sasdrich et al. White-Box Cryptography in the Gray Box: –A Hardware Implementation and its Side Channels–
KR102327771B1 (ko) 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법
CN106936822B (zh) 针对sms4抗高阶旁路分析的掩码实现方法及***
Fukushima et al. Fault injection attack on Salsa20 and ChaCha and a lightweight countermeasure
KR20100079060A (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
EP3286869B1 (en) High-speed aes with transformed keys
KR101203474B1 (ko) 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법
TW201312982A (zh) 旁通道攻擊的防禦方法
Serpa et al. A Secure White Box Implementation of AES Against First Order DCA
Bock¹ et al. and Alexander Treff¹
Lin et al. Software Tamper Resistance Based on White-Box SMS4 Implementation