国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在實現(xiàn)密鑰加密算法的電子元件中的對抗方法

      文檔序號:2394957閱讀:286來源:國知局
      專利名稱:在實現(xiàn)密鑰加密算法的電子元件中的對抗方法
      技術領域
      本發(fā)明涉及一種在實現(xiàn)密鑰加密算法的電子元件中的對抗方法。它們被用于對服務或數(shù)據(jù)的訪問被嚴格控制的情況下。它們具有在微處理器和存儲器周圍形成的結構,其中一個是含有密鑰的程序存儲器。
      這些元件尤其被用于某種用途的智能卡中。所述的用途例如有訪問某個數(shù)據(jù)庫,銀行應用或者遠方支付應用,例如電視費,汽油費或者高速公路的通行費。
      因此這些元件或這些卡執(zhí)行密鑰加密算法,最常用的一種算法是DES(數(shù)據(jù)加密標準)算法。其它的加密算法例如有RC5算法或COMP128算法。上面列出的當然并非窮舉。
      簡短并且一般地說,這些算法的功能是由主系統(tǒng)(服務器,自動柜員機等)和包含在卡中的密鑰由輸入(對于卡的輸入)提供的信息計算加密信息,并然后對主系統(tǒng)提供所述加密信息,這例如使得主系統(tǒng)準許所述元件或卡交換數(shù)據(jù)等。
      然而,已經發(fā)現(xiàn),這些元件或這些卡易于受到攻擊,其中包括差動電流消耗分析,這使得具有不良企圖的第三方能夠求出密鑰。這些攻擊被稱為DPA攻擊(差動功率分析)。
      DPA攻擊的原理基于這樣的事實,即執(zhí)行指令的微處理器的電流消耗按照被處理的數(shù)據(jù)而改變。
      尤其是,處理數(shù)據(jù)位的微處理器的指令根據(jù)所述數(shù)據(jù)位的值是“1”或者是“0”產生兩個不同的電流曲線。一般地說,如果指令正在處理“0”,則在執(zhí)行該指令的時刻具有一個第一消耗電流幅值,如果指令正在處理“1”,則具有和第一個不同的第二消耗電流幅值。
      加密算法的特征是公知的進行的計算和使用的參數(shù)是公知的。唯一未知的是含在程序存儲器中的密鑰。這不能從在輸入提供的唯一的已知信息和接著提供的加密信息導出。
      不過,在加密算法中,某個計算的數(shù)據(jù)只取決于在卡的輸入明確提供的信息和在卡中包含的密鑰。在所述算法中計算的其它數(shù)據(jù)也可以由加密信息(一般在卡對主系統(tǒng)的輸出被明確地提供)和卡中包含的密鑰被唯一地再次計算。更精確地說,這些特定數(shù)據(jù)項的每一位可以由輸入或輸出信息和密鑰的特定位的有限的數(shù)量確定。
      因而,特定數(shù)據(jù)項的每一位具有和其相應的由密鑰的位的特定的組構成的子密鑰。
      這些可以被預測的特定數(shù)據(jù)項的位在本文的其余部分被稱為目標位。
      因而DPA攻擊的基本思想是根據(jù)指令正在處理“1”或者“0”使用指令的電流消耗曲線(Current consumption Profile)的差別,并且能夠通過來自已知的輸入或輸出信息的算法的指令和假設相應的子密鑰計算目標位。
      因此DPA攻擊的原理是通過對大量的電流測量曲線(Currentmeasurement curves),每個曲線和攻擊者已知的輸入信息相關,應用布爾選擇函數(shù),子密鑰假設的函數(shù),以及利用對目標位預測的值對于每個曲線規(guī)定的函數(shù)檢測一個已知的子密鑰假設。
      作出有關的子密鑰假設事實上使得能夠預測對于給定的輸入或輸出這個目標位應當取“0”或者取“1”的值。
      然后,作為布爾選擇函數(shù),可以應用對于所考慮的子密鑰假設預測的目標位的值“0”或者“1”,以便按照子密鑰假設把這些曲線分成兩束第一束把目標位作為“0”被處理的曲線收集在一起,第二束以目標位作為“1”被處理的曲線收集在一起。
      通過計算每束中的電流消耗平均值,獲得用于第一束的平均消耗曲線M0(t)和用于第二束的平均消耗曲線M1(t)。
      如果子密鑰的假設是正確的,則第一束實際上收集了在N個曲線當中所有目標位以“0”被處理的曲線,第二束實際上收集了N個曲線當中目標位以“1”被處理的曲線。此時第一束的平均消耗曲線M0(t),除去在關鍵的指令被執(zhí)行的時刻之外,將任何時刻具有平均消耗,具有以“0”為目標位被處理的電流消耗曲線特征(曲線0)。換句話說,對于所有這些曲線,所有被處理的位具有“0”值的機會和具有“1”值的機會一樣多,除去總是具有“0”值的目標位之外。這可以被寫成M0(t)=〔(曲線0+曲線1)/2〕t≠tci+〔曲線0〕tci,即M(t)=〔Vmt〕t≠tci+〔曲線0〕tci其中tci代表關鍵指令被執(zhí)行時的關鍵時刻。
      類似地,第二束的平均消耗曲線M1(t)相應于除去在執(zhí)行關鍵指令的時刻的任何時間的平均消耗,具有以“1”為目標位被處理的電流消耗曲線特征(曲線1)??梢詫懗上率組1(t)=〔(曲線0+曲線1)/2〕t≠tci+〔曲線1〕tci,即M1(t)=〔Vmt〕t≠tci+〔曲線1〕tci可以看出,兩個曲線即曲線0和曲線1不相等。此時曲線M0(t)和M1(t)之間的差給出信號DPA(t),在處理這一位的關鍵指令被執(zhí)行的關鍵時刻tci,在

      圖1表示的例子中,在位置tc0到tc6,其幅值等于曲線0-曲線1,除去所述關鍵時刻之外,其幅值近似等于0。
      如果子密鑰的假設不正確,則所作的分類和實際不符。在統(tǒng)計上說,此時在每束中目標位實際上以“0”被處理的位的曲線的數(shù)量和目標位以“1”被處理的曲線的數(shù)量一樣多。此時合成的平均曲線M0(t)位于由(曲線0+曲線1)/2=Vm給出的平均值附近,因為,對于每個曲線,包括目標位在內的所有位,具有為“0”值的機會和具有為“1”值的機會一樣多。
      對第二束進行同樣的推理得到平均電流消耗曲線M1(t),其幅值位于由(曲線0+曲線1)/2=Vm給出的平均值附近。
      在這種情況下,由差M0(t)-M1(t)提供的信號DPA(t)基本上等于0。圖2說明在假的子密鑰假設的情況下的信號DPA(t)。
      因而,DPA攻擊使用在按照被處理的位執(zhí)行指令期間電流消耗曲線的差值,以便按照對于給定的子密鑰假設的布爾選擇函數(shù)進行電流消耗曲線分類。通過進行在所獲得的兩束曲線之間的平均電流消耗的差動分析,獲得信息信號DPA(t)。
      總之,DPA攻擊的步驟包括a取N個隨機信息(例如N等于1000);b使卡對于N個隨機信息的每個信息執(zhí)行算法,繪制每次的電流消耗(在元件的電源端測量的)曲線;c假設一個子密鑰;d對于每個隨機信息,預測由一個目標位取的值,所述的值僅僅和信息的位(輸入或輸出)以及假設的子密鑰有關,以便獲得布爾選擇函數(shù);e按照布爾選擇函數(shù)(即按照對在子密鑰假設下的每個曲線的這個目標位預測的值※§或※§)對分類進行分類;f在每束中計算最終的平均電流消耗曲線;g計算這些平均曲線的差,從而獲得信號DPA(t)。
      如果假設的子密鑰是正確的,則布爾選擇函數(shù)是正確的,并且在第一束中的曲線實際上相應于在輸入或輸出提供的信息在卡中在※§給出目標位的曲線,以及在第二束中的實際上相應于在輸入或輸出提供的信息在卡中在※§給出目標位的曲線。
      這是圖1的情況因此信號DPA(t)在相應于執(zhí)行關鍵指令(處理那些目標位的指令)的時刻tc0-tc6不為0。
      應當注意,攻擊者不需要精確地知道關鍵時刻。只知道在獲取時間間隔內的至少一個關鍵時刻便足夠了。
      如果子密鑰假設不正確,則分類和實際情況不符,此時在每束中具有和相應于在※§的目標位的曲線的數(shù)量一樣多的實際上相應于在※§的目標位的曲線。信號DPA(t)在任何時刻基本上是0(圖2所示的情況)。需要返回步驟c,并假設新的子密鑰。
      如果所作假設被證明是正確的,則程序可以進入判斷其它的子密鑰,直到所述密鑰盡可能被重構。例如,利用DES算法,利用64位密鑰,只有56位是有用的。利用DPA攻擊,至少可以重構56個有用的位中的48位。
      本發(fā)明的目的在于在電子元件中實現(xiàn)一種實現(xiàn)0信號的DPA(t)的對抗方法,即使在子密鑰假設是正確的情況下。
      用這種方式,不可能識別正確的子密鑰假設的情況和錯誤的子密鑰假設的情況。借助于所述對抗方法,可以確保電子元件能夠對付DPA攻擊。
      由GEMPLUS公司在1998,10,29申請的法國專利申請FR 98 13605可知,對于給定的目標位,設置信號DPA(t)是0是不夠的。
      這是因為,如果考慮由關鍵指令處理的相同數(shù)據(jù)項的若干個目標位取的值,曲線不需不再被分為兩束,而被分為若干束。其不再是二進制選擇函數(shù)??梢钥闯?,借助于接著把這些束以一種方式或另一種方式歸類在一起,可以獲得在正確的子密鑰假設的情況下不為0的信號DPA(t),而如果按照關于一個目標位的二進制選擇函數(shù)進行分類,將為0。
      例如,假如取相同數(shù)據(jù)項的兩個目標位。這兩個目標位可以取下面的22的值※§0※§1※§0※§1。
      通過對N=1000個測量的電流消耗曲線應用選擇函數(shù),獲得4束曲線。如果分類正確,大約250條第一束曲線相應于※§0,大約250條第二束曲線相應于※§1,大約250條第三束曲線相應于※§0,大約250條第四束曲線相應于※§1。
      如果把第一和第四束歸類于第一組,并把第二和第三束歸類于第二組,則獲得不相等的兩組。
      在第一組中,兩位具有取值※§0的機會和具有取值※§1的機會一樣多。在該組中的所有的消耗曲線的關鍵時刻的平均值可以被寫為M1(tci)=〔消耗(※§0)+消耗(※§1)〕/2在第二組中,兩位具有取值※§1的機會和具有取值※§0的機會一樣多。在該組中的所有的消耗曲線的關鍵時刻的平均值可以被寫為M1(tci)=〔消耗(※§1)+消耗(※§0)〕/2如果計算這兩個平均值之間的差,則獲得非0的信號DPA(t)。換句話說,其平均消耗被比較的兩組沒有相同的內容。
      在上述的法國專利申請中,試圖阻止在DPA攻擊檢測中獲得任何重要的信號。不論所取的目標位的數(shù)量是多少,不論為比較平均信號而進行的束的組合如何,信號DPA(t)始終是0。為此,需要獲得相等的束,不論被考慮的目標位的數(shù)量如何。
      作為這些不同技術問題的解決辦法,上述的法國專利申請?zhí)岢鲈诶迷谒惴ㄖ惺褂玫挠嬎愕钠骄档闹辽僖恍┹敵鰯?shù)據(jù)進行的異或操作中使用隨機值。
      由于使用所述的隨機值,由關鍵指令處理的數(shù)據(jù)成為不可預測的,雖然在算法的輸出具有正確的結果。
      然而,在本發(fā)明中,在算法被執(zhí)行中的明確確定的位置,尤其是在算法的輸入和輸出,確定攻擊可能仍然被繼續(xù)進行。
      本發(fā)明的目的在于提供一種對抗方法,利用所述方法,也使得這些攻擊是不可能的。按照本發(fā)明,在異或操作中使用被提供給加密算法的輸入?yún)?shù)的第二隨機值。所述第二隨機值通過整個算法傳播,因而使得不能被第一隨機值保護的數(shù)據(jù)由第二隨機值保護。
      因而,按照本發(fā)明,根據(jù)算法中的位置,數(shù)據(jù)或者被第一隨機值保護,或者由第二隨機值保護,或者由兩個隨機值的組合保護。
      因此,作為特征,本發(fā)明涉及一種在實行密鑰加密算法的電子元件中的對抗方法,所述算法的實施包括多個連續(xù)的計算循環(huán),以便由提供給第一循環(huán)的第一輸入數(shù)據(jù)提供在允許產生加密信息的最后循環(huán)的輸出的最后數(shù)據(jù),每個計算循環(huán)使用用于由輸入數(shù)據(jù)項提供輸出數(shù)據(jù)項的計算裝置,所述計算裝置包括應用第一隨機值(u),以便在輸出獲得一個不可預測的數(shù)據(jù)項,其特征在于,所述方法包括使用按照異或操作對所述第一輸入數(shù)據(jù)提供第二隨機值的裝置。
      本發(fā)明的其它的特征和優(yōu)點在下面給出的參照附圖進行的非限制的說明中說明了,其中已經說明的圖1和圖2表示信號DPA(t),所述信號可以按照DPA攻擊按照假設的密鑰K的子密鑰獲得;圖3和圖4是按照現(xiàn)有技術的DES的第一循環(huán)和最后循環(huán)的詳細流程圖;圖5是在圖3和圖4中表示的DES算法中使用的操作SBOX的方塊圖;圖6表示一個示例的常數(shù)表,其具有在圖5中說明的操作SBOX使用的一個輸入和一個輸出;圖7和圖8分別說明DES的執(zhí)行流程圖和第一循環(huán)的詳細流程圖,其相應于按照現(xiàn)有技術的對抗方法的一個示例的應用;圖9說明按照本發(fā)明的DES算法的執(zhí)行流程圖;以及圖10說明具有電子元件的智能卡的簡化的方塊圖,在所述電子元件中實施按照本發(fā)明的對抗方法。
      為了更好地理解本發(fā)明,首先說明沒有對抗方法的常規(guī)的DES密鑰加密算法。這種DES算法具有16個計算循環(huán),用T1-T16表示,如圖3和圖4所示。
      DES從對輸入信息M的初始排列IP開始。輸入信息M是一個64位的字f。在排列之后,獲得64位的字e,其被分成兩個,以便形成第一循環(huán)(T1)的輸入?yún)?shù)L0和R0。L0是一個32位的字d,含有字e的32位的最高有效位。R0是是一個32位的字h,含有字e的32位的最低有效位。
      密鑰K是一個64位的字q,其本身被排列和壓縮,以便提供一個56位的字r。
      第一循環(huán)包括對參數(shù)R0進行由擴展和排列構成的操作EXP PERM,以便在輸出提供一個48位的字1。
      字1在用XOR表示的異或類型的操作中和參數(shù)K1組合,以便提供48位的字b。作為48位的字m的參數(shù)K1由字r經過移動一個位置(圖3和圖4中用SHIFT表示的操作),接著進行排列和壓縮(由COMP PERM表示的操作)而獲得。
      字b被提供給由SBOX表示的操作,在其輸出,獲得一個32位的字a。這個具體的操作將結合圖5和圖6更詳細地說明。
      字a經過排列操作P PERM在輸出給出32位的字c。
      所述字c在由XOR表示的異或類型的邏輯操作中和第一循環(huán)T1的輸入?yún)?shù)L0組合,這在輸出提供32位的字g。
      第一循環(huán)的字h(=R0)提供下一個循環(huán)(T2)的輸入?yún)?shù)L1,第一循環(huán)的字g提供下一個循環(huán)的輸入?yún)?shù)R1。第一循環(huán)的字p提供下一個循環(huán)的輸入r。
      除去移動操作SHIFT根據(jù)考慮的循環(huán)在一個或兩個位置上進行之外,其它的循環(huán)T2-T6以類似的方式進行。
      因而,每個循環(huán)Ti在輸入接收參數(shù)Li-1,Ri-2和r,并在輸出提供用于下一個循環(huán)Ti+1的參數(shù)Li.,Ri和r。
      在DES算法結束時(圖4),由最后循環(huán)T16提供的參數(shù)L16和R16計算加密信息。
      所述加密信息C的計算實際上包括以下的操作通過顛倒字L16和R16的位置,并然后將它們串聯(lián),形成64位的字e*;開始應用排列IP-1,顛倒DES的排列,以便獲得形成加密信息C的64位字f*。
      圖5和圖6詳細示出了操作SBOX。其包括一個常數(shù)表TC0,用于提供作為輸入數(shù)據(jù)項b的函數(shù)的輸出數(shù)據(jù)項a。
      實際上,所述常數(shù)表TC0以8個基本的常數(shù)表TC01-TC08的形式出現(xiàn),每個常數(shù)表在其輸入只接收字b的6位,用于在輸出只提供字a的4位。
      因而,在圖6中說明的基本常數(shù)表TC01接收字b的位b1-b6作為輸入數(shù)據(jù),并提供字a的位a1-a4作為輸出數(shù)據(jù)。
      實際上,所述8個基本常數(shù)表TC01-TC08被存儲在電子元件的程序存儲器中。
      在第一循環(huán)T1的操作SBOX中,常數(shù)表TC0的輸出數(shù)據(jù)a的一個特定位只取決于在輸入提供的數(shù)據(jù)b的6位,即只取決于密鑰K和輸入信息(M)的6位。
      在最后的循環(huán)T16的操作SBOX中,常數(shù)表TC0的輸出數(shù)據(jù)a的一個特定位可以只用密鑰K和加密信息(C)的6位被重新計算。
      然而,回到DPA攻擊的原理可知,如果輸出數(shù)據(jù)a的一個或幾個位被選作目標位,則對于給定的輸入信息(M)或輸出信息(C),為了預測一個目標位或幾個目標位的值,只需假設6位的密鑰K便足夠了。換句話說,對于DES,進行6位的子密鑰的假設便足夠了。
      因此,在對于從給定的基本常數(shù)表產生的一組給定的目標位按照這種算法進行的DPA攻擊中,正確的子密鑰假設必須從64個可能的假設當中辨別出來。
      因而,從8個基本常數(shù)表TC01-TC08,通過對相應的目標位進行DPA攻擊,可以發(fā)現(xiàn)多達8×6=48位的密鑰。
      因此在DES中,在算法的開始和結束時,在DPA攻擊檢測中的關鍵的指令被發(fā)現(xiàn)。這些指令在法國專利申請FR 9813605中詳細說明了,該專利在此列為參考。
      并且,顯然,由關鍵指令處理的數(shù)據(jù)是從DES開始和結束SBOX操作的輸出數(shù)據(jù)項導出的輸出數(shù)據(jù)項或數(shù)據(jù)。
      在適用于DES算法的上述的法國專利申請中所述的對抗方法包括使由關鍵指令處理的每個數(shù)據(jù)項成為不可預測的。因而,不論使用的一個目標位或幾個目標位如何,信號DPA(t)將總是0。這種對抗方法適用于DES開始關鍵指令和DES結束關鍵指令。
      通過取SBOX操作作為第一計算裝置用于從輸入數(shù)據(jù)項E=b提供輸出數(shù)據(jù)項S=a,上述適用于DES算法的法國專利申請的對抗方法在于使用其它計算裝置代替第一個計算裝置,以便使輸出數(shù)據(jù)項成為不可預測的,因而使所述輸出數(shù)據(jù)項與/或由關鍵指令處理的導出數(shù)據(jù)都成為不可預測的。
      所述其它裝置可以包括各種裝置。它們從第一裝置被計算,其中對第一裝置的輸入和輸出數(shù)據(jù)的一個與/或另一個利用隨機值u(或一個導出的隨機值)實行異或運算。
      所述隨機值u被這樣使用,使得在算法的輸出結果,即加密的信息C,保持正確。
      圖7和圖8說明這種對抗方法的一種示例的應用,其相應于上述法國專利申請的圖10。
      在DES算法的常規(guī)的執(zhí)行中,已經看到每個循環(huán)包括使用在操作SBOX中的第一裝置TC0。
      在本例中,如圖7所示,通過利用隨機值u對第一裝置TC0的輸出數(shù)據(jù)進行異或操作,并通過利用一個導出值e(p(u))對第一裝置TC0的輸入數(shù)據(jù)進行異或操作,計算其它裝置。然后,對每一組應用相同的執(zhí)行序列SEQA,其中使用這些其它的計算裝置。
      因此,在這種方法中,利用隨機值u,其是一個32位的數(shù)據(jù)項。例如,可以取一個32位的隨機值,或者取一個4位的隨機值,并且復制8次,從而獲得32位的隨機值。
      然后計算等于e(p(u))的導出的變量,其中p(u)相應于施加于u的操作P PERM的結果,并且其中e(p(u))是對值p(u)應用操作EXP PERM的結果。
      然后,可以計算由這一對抗方法使用的其它裝置。
      在參照圖7說明的例子中,所述其它裝置包括第二裝置TC2和由CP表示的附加的異或操作。
      第二裝置TC2被在每個循環(huán)中使用。
      它們通過利用導出的隨機變量e(p(u))對輸入數(shù)據(jù)E進行異或操作并通過對第一裝置TC0的輸出數(shù)據(jù)S利用隨機值u進行異或操作被計算,這可以表示如下TC2=(Ee(p(u)),Su)。
      利用導出的隨機變量e(p(u))進行的附加的異或操作CP使得可以在第二裝置TC2的輸入獲得數(shù)據(jù)be(p(u))。這個操作在圖7和圖8中用CP(e(p(u)))表示。
      這個利用變量e(p(u))進行的附加的異或操作在第一和第二循環(huán)中可被置于不同位置,或者被置于操作EXP PERM和操作XOR之間,或者被置于操作XOR和操作SBOX之間。通過把這個附加的操作CP(p(u))置于操作EXP PERM之前,其可以用利用導出的隨機變量p(u)進行的附加的異或操作代替。1e(p(u))在輸出被獲得,因此這將給出be(p(u))。
      在所有這些情況下,數(shù)據(jù)be(p(u))在操作SBOX的輸入被獲得。
      然后,在算法執(zhí)行的開始,計算程序取計算導出的隨機變量e(p(u))并然后計算在執(zhí)行序列SEQA中使用的各個裝置,即計算第二裝置TC2的隨機值u,在本例中是一個4位的值。
      在每組的輸出,獲得作為輸出參數(shù)的正確的結果。因而,不論所取的隨機變量如何,第一組G1的輸出參數(shù)L4和R4,第二組G2的L8和R8,第三組G3的L12和R12,第四組G4的L16和R16是正確的。
      當所有循環(huán)都被進行過時,獲得正確的參數(shù)L16和R16,其將使得能夠計算正確的加密信息C。
      在另一方面,在這些組內,按照使用的序列,某個中間結果沒有相同的值,但是具有相應于利用隨機值u或利用導出的隨機值e(p(u))進行異或操作的值,這使得能夠獲得保護免遭DPA攻擊。
      圖8表示在序列SEQA中的第一組G1的4個循環(huán)T1,T2,T3和T4的詳細流程圖,其使得能夠揭示在每個循環(huán)中使用的第二裝置TC2的作用。按照它們的定義TC2=Ee(p(u)),Su;通過借助于附加的操作CP在輸入應用隨機修改的數(shù)據(jù)be(p(u)),在輸出獲得隨機修改的數(shù)據(jù)au。從循環(huán)T1到循環(huán)T4結束都使用這樣的推理,并且注意到p(u)p(u)=0,在循環(huán)T4的輸出獲得未被修改的數(shù)據(jù)L4,R4。
      利用這種對抗方法,必須取隨機值u并在DES開始時提供在執(zhí)行序列SEQA中使用的裝置的計算。這些在DES的每次執(zhí)行時計算的裝置在執(zhí)行時被存儲在工作存儲器中,用于計算的第一裝置TC0本身被存儲在程序存儲器中。
      因此,一般地說,按照現(xiàn)有技術的這種對抗方法在于至少對在算法的每個循環(huán)中使用的計算裝置的輸出應用隨機值u,留下某個明確的數(shù)據(jù)。在圖7和圖8中可以看出,輸入數(shù)據(jù)L0,R0以及其后的第一循環(huán)的數(shù)據(jù)h,l和b被明確地使用。
      類似地,數(shù)據(jù)R3,L4,R4,R7,L8,R8,R11,L12,R12,R15,L16和R16被明確地使用。
      一般地說,不論剛剛說明的現(xiàn)有技術的對抗方法的應用方式如何,在算法中至少輸入數(shù)據(jù)L0和R0以及輸出數(shù)據(jù)L16和R16被明確地使用。其它中間數(shù)據(jù)可以和前述的情況中那樣,其尤其取決于所考慮的現(xiàn)有技術的對抗方法的應用方式,圖7和圖8只表示一個示例的應用。
      因此,實際上,根據(jù)這些被明確使用的數(shù)據(jù),仍然可以對算法進行攻擊。
      因此,本發(fā)明提供一種對前述的對抗方法的改進,其借助于第一隨機值u或者借助于第二隨機值v,或者借助于兩者的組合,可以使在算法中使用的所有數(shù)據(jù)成為不可預測的。
      圖9所示是實施這種方法的一個例子。
      按照本發(fā)明,使用第二隨機值v,借助于異或操作將其施加于輸入數(shù)據(jù)L0和R0。
      因而,在算法的計算中實際使用的輸入數(shù)據(jù)是等于L0v和R0v的不可預測的數(shù)據(jù)。
      這第二隨機值通過算法的每個循環(huán)傳播。因此在第16個循環(huán)T16的輸出,獲得等于L16v和R16v的不可預測的數(shù)據(jù)作為輸出數(shù)據(jù)。
      為了再次求得使得可以獲得加密信息C的真實的輸出數(shù)據(jù)L16和R16,對這些數(shù)據(jù)項L16v和R16v的每一個應用利用第二隨機值進行的異或操作。
      兩個隨機值u和v組合使用使得可以獲得一種改進的對抗方法,使得能夠得到一種不受攻擊影響的DES算法。
      圖9表示實施按照本發(fā)明的對抗方法的一個實際例子的細節(jié)。
      如果取第一循環(huán)T1,則在輸入具有數(shù)據(jù)項L0v和R0V,對其連續(xù)地進行EXP PERM操作和XOR操作(利用密鑰K1)。因此,在下一個操作SBOX的輸入是數(shù)據(jù)bv。
      如同現(xiàn)有技術的對抗方法那樣,和這個操作SBOX相關的計算裝置TCM由從DES算法的原始常數(shù)表TC0導出的常數(shù)表。
      結合圖6可見,如果把這個原始常數(shù)表表示為TC0=(E,S),則新的計算裝置TCM被計算如下TCM=(Ee(v),Su)。
      用這種方式,按照現(xiàn)有技術的方法,考慮在每個循環(huán)的輸入應用于數(shù)據(jù)的第二隨機值,在操作SBOX的輸出仍然從第一隨機值u獲得利益。
      因而,使用計算裝置TCM,在操作SBOX的輸出獲得數(shù)據(jù)ap(u),對其應用操作P PERM,給出數(shù)據(jù)cp(u)。
      下面的利用輸入數(shù)據(jù)L0v進行的XOR操作在輸出提供數(shù)據(jù)gp(u)v。
      應當注意,在所述的現(xiàn)有技術中(圖8),在這一級獲得在第二循環(huán)T2的輸入使用的數(shù)據(jù)gp(u)。
      利用按照本發(fā)明的方法,第二循環(huán)的其它輸入是數(shù)據(jù)L1v=R0v,如圖9所示。
      因此,第二隨機值v通過算法的所有循環(huán)傳播。
      如果隨機值u不被從第一循環(huán)的輸出數(shù)據(jù)(R1(v)p(u))中消除,則需要為利用由TCM=Ee(v)e(p(u)),Su定義的在第二循環(huán)T2中的其它計算裝置TCM*作好準備。
      本發(fā)明的這種實施沒有大的好處,因為其需要計算兩個新的常數(shù)表TCM和TCM*,隨機值u不僅在輸出而且還在輸入被施加于常數(shù)表TCM*中。
      此外,按照本發(fā)明,如圖9所示,為了通過減少為實施本發(fā)明所需的計算來幫助利用兩個隨機變量u和v,并為了在每個循環(huán)中重復相同的操作,在每個循環(huán)結束時提供一個由CP(p(u))表示的附加的異或操作。因而,在第二循環(huán)T1的輸入,獲得數(shù)據(jù)R1v=(gp(u)v)p(u),即R1v=gv。
      然后每個循環(huán)跟隨前一個循環(huán),執(zhí)行相同的計算操作序列,因此,在第16個循環(huán)的輸出,獲得L16v和R16v作為輸出數(shù)據(jù)。通過利用第二隨機值v對這兩個數(shù)據(jù)項的每一個實行異或操作,獲得能夠產生加密信息C的數(shù)據(jù)L16和R16。
      通過應用按照本發(fā)明的對抗方法,所述方法組合使用在每個循環(huán)中提供的計算裝置中的第一隨機值u和在執(zhí)行第一循環(huán)之前在輸入提供的第二隨機值,使得在算法中使用的所有數(shù)據(jù)都成為不可預測的。根據(jù)在算法中的位置,或者借助于第一隨機值u,或者借助于第二隨機值v,或者借助于二者的組合,提供按照本發(fā)明的對抗保護。
      實際上,按照圖9所示的例子,在正確地執(zhí)行DES算法之前,需要執(zhí)行以下的操作取隨機值u和v,計算用于CP(p(u))操作的p(u),計算e(v),計算TCM=Ee(v),Su。
      隨機值v是具有和數(shù)據(jù)項L0,R0相同位數(shù)的數(shù)據(jù)項,在所示的例子中是32位。因此在所述方法中,利用為32位的數(shù)據(jù)項的隨機值v。例如,可以取一個32位的隨機值,或者取一個4位的隨機值然后復制8次,以便獲得32位的隨機值(隨機值u)。
      可以舉出其它例子的應用,其中尤其是可以提供不同的循環(huán)。所有這些按照所述的一般原理使用兩個隨機值的變型都落在本發(fā)明的范圍內。
      如圖10所示,一種利用DES密鑰加密算法實施按照本發(fā)明的對抗方法的電子元件1包括微處理器mP,程序存儲器2和工作存儲器3。各個計算裝置TC0和TCM實際上是被分別存儲在程序存儲器1和工作存儲器3中的常數(shù)表。為了能夠管理這些裝置的使用,提供產生隨機值的裝置4,參看圖7和圖11的程序流程圖可知,所述產生隨機值的裝置4在每次執(zhí)行DES時提供隨機值u和v。這種元件尤其適用7于智能卡5中,以便改進其不可侵犯性。
      權利要求
      1.一種在執(zhí)行密鑰(K)加密算法的電子元件中的對抗方法,所述算法的實施包括多個連續(xù)的計算循環(huán)(T1......T16),以便由提供給第一循環(huán)的第一輸入數(shù)據(jù)(L0,R0)提供在允許產生加密信息(C)的最后循環(huán)(T16)的輸出的最后數(shù)據(jù)(L16,R16),每個計算循環(huán)使用用于由輸入數(shù)據(jù)項(E)提供輸出數(shù)據(jù)項(S)的計算裝置(TC),所述計算裝置包括應用第一隨機值(u),以便在輸出獲得一個不可預測的數(shù)據(jù)項(Su),其特征在于,所述方法包括使用按照異或操作對所述第一輸入數(shù)據(jù)(L0,R0)提供第二隨機值(v)的裝置。
      2.如權利要求1所述的對抗方法,其特征在于,其還包括使用按照異或操作對由最后循環(huán)(T16)提供的最后數(shù)據(jù)提供第二隨機值(v)的裝置。
      3.如前述任何一個權利要求所述的對抗方法,其特征在于,在每個循環(huán)的結束,其包括執(zhí)行附加的操作(CP(p(u))),以便消除每個循環(huán)的輸出中的所述第一隨機值(u)。
      4.如前述任何一個權利要求所述的對抗方法,其特征在于,其包括取第一和第二隨機值(u,v),并計算在算法的每次新的執(zhí)行的每個循環(huán)中使用的計算裝置(TCM)。
      5.如權利要求4所述的對抗方法,其特征在于,通過對所述輸入數(shù)據(jù)(Ee(v))提供第二隨機值(v),并至少對第一計算裝置的所述輸出數(shù)據(jù)(Su)提供第一隨機值(u),從第一計算裝置(TC0)計算所述計算裝置(TCM),所述第一計算裝置對于輸入數(shù)據(jù)(E)確定相應的輸出數(shù)據(jù)(S)。
      6.如權利要求5所述的對抗方法,其特征在于,所述計算裝置(TC0,TCM)是常數(shù)表。
      7.一種實施按照權利要求5或6所述的任何一個對抗方法的電子安全元件,其特征在于,所述第一計算裝置(TC0)被固定在所述元件的程序存儲器(1)中,所述在每個循環(huán)中使用的計算裝置(TCM)在算法的每次新的執(zhí)行時被計算,并被存儲在工作存儲器(3)中,以及其包括用于產生用于計算所述計算裝置(TCM)的第一和第二隨機值(u,v)的裝置。
      8.一種包括按照權利要求7所述的電子安全元件的智能卡。
      全文摘要
      在使用一種密鑰加密算法K的電子元件中,操作包括若干連續(xù)的計算循環(huán)T1、T16以便由在第一循環(huán)提供的初始輸入數(shù)據(jù)L0,R0提供在最后循環(huán)的最后輸出數(shù)據(jù)L16,R16,該方法在于將第一隨機值u施加到為每個循環(huán)設計的計算裝置(TC
      文檔編號G09C1/00GK1358376SQ00807230
      公開日2002年7月10日 申請日期2000年2月7日 優(yōu)先權日1999年3月8日
      發(fā)明者O·伯努瓦 申請人:格姆普拉斯公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1