專利名稱:用于執(zhí)行加密計算的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼學(xué)領(lǐng)域,并且更具體地涉及加密算法所使用的密鑰的隱密性的保護。
加密算法的目的在于對數(shù)據(jù)進行加密。這種算法通常包括一系列集合在一起連續(xù)地應(yīng)用于待加密的數(shù)據(jù)項以獲得已加密的數(shù)據(jù)項的多個運算或計算。這些算法使用私密密鑰。
諸如這些的加密算法可能遭受到目的在于破壞所用密鑰的隱密性的“攻擊”。目前已知有多種類型的攻擊。
例如,一定的攻擊依賴于在加密算法執(zhí)行期間檢測到的信息泄漏。它們通?;谠趯?shù)據(jù)項加密的算法進行處理期間檢測到的信息泄漏與所用的私密密鑰或密鑰之間的相關(guān)性。例如,現(xiàn)公知有DPA(差分功耗分析)攻擊。通常,它們要求知道已加密的輸出數(shù)據(jù)。同樣,公知有基于簡單的功耗曲線分析的SPA(簡單功耗分析)攻擊,其在2000年蘇黎世瑞士聯(lián)邦理工大學(xué)電子工程分部的邁爾麗塔—蘇蒙爾(Rita Mayer-Sommer)的文獻“Smartly Analyzingthe Simplicity and the Power of Simple Power Analysis on Smartcards(對智能卡的簡單功耗分析的簡單性和功率的智能分析)”中有所描述。
加密算法通常包括多個線性和/或非線性的運算。對于待加密的初始數(shù)據(jù)項,在該算法的各個運算以后獲得加密中的中間數(shù)據(jù)項。
例如,DES(數(shù)據(jù)加密標(biāo)準(zhǔn))類型的算法或AES(高級加密標(biāo)準(zhǔn))算法包括非線性運算。在非線性運算執(zhí)行期間,DPA和SPA攻擊特別針對AES算法。
已經(jīng)提出了多種保護這類加密算法的方法,特別是通過屏蔽在AES算法中處理的加密中的數(shù)據(jù)。非線性運算通常以替換表的形式進行。因此,應(yīng)用于數(shù)據(jù)項x的與替換表tab〔i〕相對應(yīng)的非線性運算可以寫成以下形式y(tǒng)=tab〔x〕。
在非線性運算期間,使用隨機值掩碼屏蔽數(shù)據(jù)項有時較復(fù)雜。
本發(fā)明的目的在于提供一種基于至少一個針對DPA或SPA攻擊的私密密鑰而實現(xiàn)用于有效地保護加密算法計算執(zhí)行處理的簡單方法。
本發(fā)明的第一技術(shù)方案提出了一種在電子組件中根據(jù)確定的加密算法執(zhí)行加密計算的方法,該算法包括使用包括m個n比特的私密加密密鑰塊的私密加密密鑰對數(shù)據(jù)塊進行的至少一個私密密鑰運算,這里m,n為正整數(shù)。對于給定的私密加密密鑰塊,該方法包括以下步驟確定2n-1個n比特的不同的二級私密密鑰,各密鑰不同于所述私密加密密鑰塊;使用所述私密加密密鑰塊和所述二級私密密鑰對數(shù)據(jù)塊進行所述私密密鑰運算,并分別獲得加密中的數(shù)據(jù)塊和2n-1個二級數(shù)據(jù)塊;對所述加密中的數(shù)據(jù)塊和所述二級數(shù)據(jù)塊進行所述非線性運算;在所述加密中的數(shù)據(jù)塊的基礎(chǔ)上提供已加密的數(shù)據(jù)塊。
請注意,所述的二級私密密鑰為虛擬密鑰(dummy secret)。
通過這些設(shè)置的優(yōu)點,除了與對加密中的數(shù)據(jù)塊執(zhí)行的加密計算相關(guān)聯(lián)的信息泄漏之外,還產(chǎn)生了與對二級數(shù)據(jù)塊執(zhí)行的加密計算相關(guān)聯(lián)的信息泄漏。所以,這種信息泄漏的分析更加復(fù)雜并且因此比僅僅對加密中的數(shù)據(jù)塊的加密計算執(zhí)行期間信息泄漏的分析花費更多時間。因此,可保護該私密加密密鑰(secret cryptographic key)的隱密性。隨著使用不同的虛擬二級私密密鑰(secondary secret key)進行私密密鑰運算102的次數(shù)增加,增加了對這種算法的攻擊的復(fù)雜性。
該方法的目的在于為了使SPA或DPA攻擊更加長或甚至不可能而顯示相關(guān)性偏差(bias)。
因此,在本發(fā)明的實施方式中,為了保證該算法更好的隱密性,對于私密加密密鑰塊,確定n比特密鑰的所有可能值,即2n個值,或不同于所述私密加密密鑰塊的2n-1個n比特的虛擬二級私密密鑰。隨后,以該私密加密密鑰以及所有已確定的二級私密密鑰進行私密密鑰運算。因此獲得對其進行了非線性運算的加密中的數(shù)據(jù)塊和2n-1個二級數(shù)據(jù)塊。在這種情況下,所述私密加密密鑰是不可檢測的。
在本發(fā)明的實施方式中,對于私密加密密鑰塊,該方法包括以下步驟在包括所述私密加密密鑰塊的初始表中隨機地確定和設(shè)置所述二級私密密鑰;將與所述初始表中的所述私密加密密鑰塊相對應(yīng)的地址存儲在存儲器中;
使用所述初始表的密鑰對所述數(shù)據(jù)塊進行所述私密密鑰運算,并獲得2n個第一元素的第一轉(zhuǎn)換表,各第一元素與使用所述密鑰對所述數(shù)據(jù)塊進行所述私密密鑰運算的結(jié)果相對應(yīng),所述密鑰位于所述初始表中與所述第一元素相同的地址處;對所述第一轉(zhuǎn)換表的所述元素進行所述非線性運算,并獲得2n個第二元素的第二轉(zhuǎn)換表,各第二元素與對所述第一元素進行的所述非線性運算的結(jié)果相對應(yīng),所述第一元素位于所述第一轉(zhuǎn)換表中與所述第二元素相同的地址處;從所述第二轉(zhuǎn)換表中獲取所述元素,該元素與位于所述私密加密密鑰塊的地址處的所述加密中的數(shù)據(jù)塊相對應(yīng)。
該初始表優(yōu)選地包括所有可能的密鑰值。
通過這些設(shè)置,當(dāng)執(zhí)行私密密鑰運算和非線性運算時,所有可能的密鑰值以等概率的方式被使用。該方法保證了關(guān)于DPA和SPA攻擊對該算法隱密性的高度保護。
與所述加密中的數(shù)據(jù)塊相對應(yīng)的所述元素可通過抵抗SPA型攻擊的函數(shù)從所述第二轉(zhuǎn)換表中獲取,該函數(shù)采用給定的私密加密密鑰的地址作為參數(shù)。應(yīng)該理解,“抵抗SPA型攻擊的函數(shù)”的表達(dá)方式意味著對于該函數(shù)不可能以單獨的泄漏軌跡確定私密密鑰??紤]到對應(yīng)于電流或者磁場的泄漏信號W,對于該算法計算的字節(jié)α的使用期間,其形式為W(α)=H(α)+b其中,H(α)為泄漏模型,b為外部及內(nèi)在噪聲。
當(dāng)具有以下等式時,對字節(jié)α執(zhí)行的函數(shù)可認(rèn)為是抵抗SPA攻擊的函數(shù)|Wα-Wα′|≤b,其中,a’為另一字節(jié)。
當(dāng)加密算法包括確定數(shù)量的輪并且每輪包括至少一個在非線性運算之前通過替換表進行的私密加密密鑰運算時,該方法的步驟至少對于該加密算法的第一輪和最后一輪進行上述操作。
特別是AES算法的第一輪和最后一輪面對SPA和DPA型攻擊是最脆弱的。因此,通過將本發(fā)明實施方式的第一輪和最后一輪應(yīng)用于該方法,在限制為了保護該算法而增加的計算數(shù)量的同時,可保護該算法的隱密性。
在該表中的密鑰的隨機設(shè)置的步驟可以在加密算法的各開始處進行。
并且,使用私密加密密鑰塊和所述二級私密密鑰可同時進行所述私密密鑰運算和/或?qū)λ鰯?shù)據(jù)塊和所述二級數(shù)據(jù)塊同時進行所述非線性運算,以便提供關(guān)于該算法的計算執(zhí)行的良好性能。
在本發(fā)明的實施方式中,所述加密算法為AES。
在本發(fā)明的實施方式中,對于使用隨機值屏蔽的所述加密中的數(shù)據(jù)塊進行至少一個所述加密算法的運算。優(yōu)選地,對屏蔽的加密中的數(shù)據(jù)塊進行除了以二級私密密鑰進行的運算和對二級數(shù)據(jù)塊進行的運算以外的該算法的運算。
本發(fā)明的另一技術(shù)方案提供了一種適于根據(jù)確定的加密算法執(zhí)行加密計算的電子組件,該算法包括使用包括m個n比特的私密加密密鑰塊的私密加密密鑰對數(shù)據(jù)塊進行的至少一個私密密鑰運算和非線性運算,該組件包括設(shè)置用于實施前面所述方法的器件。
本發(fā)明的其它方案、目的以及優(yōu)點通過對其實施方式的說明將變得更加顯而易見。
結(jié)合附圖將更好地理解本發(fā)明,在附圖中
圖1示出了根據(jù)本發(fā)明實施方式的執(zhí)行加密計算的方法;圖2示出了AES型算法的主要步驟;圖3示出了根據(jù)本發(fā)明實施方式的私密密鑰運算;圖4示出了根據(jù)本發(fā)明實施方式的非線性運算的執(zhí)行;圖5示出了包括根據(jù)本發(fā)明實施方式執(zhí)行的加密計算的AES型算法第一輪的運算管理;圖6示出了包括根據(jù)本發(fā)明實施方式執(zhí)行的加密計算的AES型算法兩個連續(xù)輪之間的運算管理。
通常,加密算法包括對數(shù)據(jù)塊連續(xù)進行的多個運算,各操作應(yīng)用于由先前運算變換得到的數(shù)據(jù)塊。在算法輸出時,加密中的數(shù)據(jù)塊成為已加密的數(shù)據(jù)塊。
圖1示出了根據(jù)本發(fā)明實施方式的加密算法執(zhí)行加密計算的方法。該算法包括以私密加密密鑰103對數(shù)據(jù)塊101進行的至少一個私密密鑰運算102,以得到加密中的數(shù)據(jù)塊104。該算法還包括對該加密中的數(shù)據(jù)塊104進行的非線性運算107,以得到另一加密中的數(shù)據(jù)塊104。在私密密鑰運算102之前存在一個或者多個運算的情況下,數(shù)據(jù)塊101可以是先前運算的結(jié)果。在私密密鑰運算102為該算法的第一運算的情況下,數(shù)據(jù)塊101可以對應(yīng)于作為該算法輸入接收的待加密的數(shù)據(jù)塊100。
通過示例的方式,在以包括每字節(jié)16個私密加密密鑰塊的128比特的私密密鑰進行所述私密密鑰運算的情況下,每次使用各所述私密加密密鑰塊,則對一個字節(jié)的數(shù)據(jù)塊進行16次私密密鑰運算102。在確定了與相應(yīng)的私密加密密鑰塊103的值不同的二級私密密鑰值105以后,以確定的二級私密密鑰105對數(shù)據(jù)塊101進行私密密鑰運算102,以得到二級數(shù)據(jù)塊106。隨后,對該二級數(shù)據(jù)塊106進行非線性運算107以得到另一二級數(shù)據(jù)塊106。
作為該加密算法的輸出,得到已加密的數(shù)據(jù)塊108。
本發(fā)明覆蓋了所有可能的實施,也就是說,在使用私密加密密鑰塊的運算之前、同時或之后使用二級私密密鑰進行運算的情況。
假定非線性運算面對DPA或SPA型攻擊最脆弱,則它們可優(yōu)先受到保護。因此,當(dāng)該加密算法包括在非線性運算107以后的線性運算時,則優(yōu)選地僅對加密中的數(shù)據(jù)塊104進行這些運算,以便限制要執(zhí)行的計算數(shù)量。
以下描述的本發(fā)明應(yīng)用于AES型算法但不局限于該情況,并且更特別地應(yīng)用于使用16字節(jié)密鑰的AES算法。
圖2示出了根據(jù)AES型算法的加密方法。該算法采用待加密的初始數(shù)據(jù)塊201作為輸入,以提供相應(yīng)的已加密的數(shù)據(jù)塊208作為輸出。
該算法包括多輪。其一般基于主私密密鑰K。主密鑰可具有128比特、192比特或256比特的長度。該密鑰通常導(dǎo)出為多個標(biāo)記為Ki的密鑰。對于使用128比特密鑰的算法,該導(dǎo)出密鑰具有16字節(jié)的長度,對于使用192比特密鑰的算法具有24字節(jié)的長度,而對于使用256比特密鑰的算法具有32字節(jié)的長度。
通過示例可知,該主私密密鑰K為128比特的長度并導(dǎo)出為10個16字節(jié)的密鑰,各密鑰用于特定的輪中。
待加密的初始信息具有128比特的長度。其通常在一個字節(jié)的初始數(shù)據(jù)塊201中處理。用于該算法確定輪的一個字節(jié)的數(shù)據(jù)塊對應(yīng)于密鑰的字節(jié)。
該待加密的信息通常以16個8比特初始數(shù)據(jù)塊的4×4狀態(tài)矩陣的形式表示。對該8比特數(shù)據(jù)塊可連續(xù)或同時進行處理。本發(fā)明覆蓋了所有這些實施。
待加密的信息首先通過通常稱為“AddRoundKey”的私密密鑰運算202進行轉(zhuǎn)換。該運算202僅通過異或?qū)⒅髅荑€K 203加和到初始數(shù)據(jù)塊201。
在第一次應(yīng)用運算202期間使用主私密密鑰K 203,以獲得加密中的數(shù)據(jù)塊。隨后該數(shù)據(jù)塊進入第一輪204,對于128比特的密鑰,該算法通常包括9輪204,每輪包括以下相同的連續(xù)運算運算205,通常稱為“ByteSub”,其為通常以替換表的形式執(zhí)行的非線性函數(shù);運算206,通常稱為“ShiftRow”,其為對狀態(tài)矩陣進行行變換(row shift)的函數(shù);運算207,通常稱為“MixColum”,其為對狀態(tài)矩陣的列進行混合的函數(shù);以及使用對應(yīng)于輪Tr的密鑰Kr的運算202“AddRoundKey”。
隨后,再對在所述9輪完成后得到的加密中的數(shù)據(jù)塊進行運算205“ByteSub”、運算206“ShiftRow”以及最終使用密鑰K10的運算202“AddRoundKey”。
對于各輪Tr,r等于1到9,由主私密密鑰導(dǎo)出的私密密鑰Kr用于運算202“AddRoundKey”的執(zhí)行。
將在AES的Tr輪處的密鑰的第i字節(jié)的值記為Ki,r,其中i位于1和Lr之間,r位于1和Nr之間,在AES算法使用128比特密鑰的情況下,Nr=10且Lr=16,在AES算法使用192比特密鑰的情況下,Nr=12且Lr=24,以及在AES算法使用256比特密鑰的情況下,Nr=16且Lr=32。
M表示要由該算法加密的輸入信息,且Mi,i等于1到16,表示相應(yīng)的一個字節(jié)的初始數(shù)據(jù)塊。因此,將該私密加密密鑰的各所述一個字節(jié)的私密加密密鑰塊應(yīng)用到各要由該算法處理的一個字節(jié)的數(shù)據(jù)塊。
使用私密加密密鑰塊進行私密密鑰運算202“AddRoundKey”以獲得加密中的數(shù)據(jù)塊,并且還使用不同于私密加密密鑰塊且彼此不同的二級私密密鑰以獲得二級數(shù)據(jù)塊。二級私密密鑰的數(shù)量越大,破壞私密加密密鑰的隱密性就越復(fù)雜而且長。
為達(dá)到該目的,在優(yōu)選實施方式中,隨機構(gòu)建包括一個字節(jié)的所有可能值的初始表。因此,該表具體地包括要由運算202“AddRoundKey”應(yīng)用到該數(shù)據(jù)塊的私密加密密鑰塊。
該密鑰表包括256個元素,在1到256中取值。這些值以隨機順序設(shè)置。
在優(yōu)選的實施方式中,每次運行AES算法時都生成該表。
圖3示出了根據(jù)本發(fā)明實施方式的私密密鑰運算102。該運算可對應(yīng)于根據(jù)本發(fā)明實施方式改進的運算202“AddRoundKey”。
運算102為使用n比特私密加密密鑰塊K 304進行的運算。表301包括對應(yīng)于所有可能值的元素,即,隨機設(shè)置的2n個元素。通過示例的方式,n等于8。元素304對應(yīng)于私密密鑰運算102的私密加密密鑰塊。優(yōu)選地,通過對抗SPA攻擊的函數(shù)在表301中搜索該私密加密密鑰塊。對于本領(lǐng)域的技術(shù)人員來說,這類搜索函數(shù)是公知的,并且在本文中不再詳述。優(yōu)選地,隨后將該私密加密密鑰塊的地址存儲在存儲器中。
使用包括密鑰值的表301的所有元素對數(shù)據(jù)塊101同時或者順序地進行私密密鑰運算102。因此得到包括2n個元素,即256個元素,的轉(zhuǎn)換表303。這些元素中的每一個對應(yīng)于以位于表301中與該元素相同地址的私密密鑰對數(shù)據(jù)塊101進行運算102的結(jié)果。該表303具體包括對應(yīng)于加密中的數(shù)據(jù)塊的元素305,該塊成為以私密加密密鑰塊304進行的私密密鑰運算102的結(jié)果。
以等概率的方式使用所有可能的密鑰值進行該運算,該步驟可抵御涉及在計算執(zhí)行期間信息泄漏分析的任何攻擊。
隨后,在AES型算法中,在私密密鑰運算以后進行非線性運算107“ByteSub”。該運算可能為SPA或DPA攻擊期間有價值的信息源。所以,保護其執(zhí)行非常重要。因此,在本發(fā)明的優(yōu)選實施方式中,對表303中的所有元素執(zhí)行該運算。
圖4示出了根據(jù)本發(fā)明實施方式的非線性運算的執(zhí)行。因此,對表303中的所有元素同時或者順序地應(yīng)用非線性運算107以提供包括2n個元素,即256個元素,的表402。各元素與對于表303中位于相同地址的元素進行非線性運算的結(jié)果相對應(yīng)。
因此,一旦將包括密鑰的表301中的私密加密密鑰塊的地址存儲到存儲器中,就可以獲取加密中的數(shù)據(jù)塊403。
隨后,優(yōu)選地,通過抵抗SPA攻擊的函數(shù),在先前存儲在存儲器中的私密加密密鑰塊的地址基礎(chǔ)上,從表402中獲取加密中的數(shù)據(jù)塊403。
可僅對加密中的數(shù)據(jù)塊而不再對二級數(shù)據(jù)塊進行運算“ShiftRow”206和運算“MixColum”207,所述的運算由使用二級私密密鑰而不是使用私密加密密鑰塊的運算產(chǎn)生。然后,優(yōu)選地,通過對處理的加密中的數(shù)據(jù)塊應(yīng)用隨機值掩碼而直接運算“MixColum”207。
在AES型算法中,可全部或部分地進行根據(jù)本發(fā)明實施方式的運算“AddRoundKey”202。
在特定的情況下,人們希望僅部分執(zhí)行根據(jù)本發(fā)明實施方式的算法的運算AddRoundKey”202和“ByteSub”205。在這種情況下,優(yōu)選地,在算法開始處執(zhí)行根據(jù)本發(fā)明的運算AddRoundKey”202和“ByteSub”205,也就是說,在至少該算法的第一輪,或者在該算法至少最后一輪,即該算法的結(jié)束處執(zhí)行。
為了提高對先前所述攻擊的抵御,屏蔽已處理的加密中的數(shù)據(jù)塊是有利的。僅通過異或而加和隨機值就可輕易地進行該屏蔽。
圖5示出了用于根據(jù)AES型算法對16字節(jié)信息進行加密的步驟,該AES型算法包括根據(jù)本發(fā)明實施方式執(zhí)行的加密計算,且更具體地說示出了第一輪的運算。在該圖中,將包含所有密鑰值的表標(biāo)記為RAND[j]。該表包括從1到256隨機設(shè)置的值。待加密的該信息M由16個一字節(jié)的數(shù)據(jù)塊,Mi,i等于1到16,組成。
因此,在算法的開始處,首先處理該待加密的信息M的第一字節(jié)M1501。
在步驟502中,執(zhí)行根據(jù)本發(fā)明實施方式的運算“AddRoundKey”。因此,在第一步驟504中,首先通過抵抗SPA攻擊的函數(shù)在表RAND[j]中搜索私密加密密鑰塊Ki,1以得到其在該表中的位置,并且生成用于屏蔽處理的數(shù)據(jù)塊的隨機字節(jié)值A(chǔ)i。隨后,經(jīng)過步驟505、506和508執(zhí)行j等于1直到j(luò)=256的循環(huán),從而在執(zhí)行“ByteSub”運算之前使用表RAND[j]的所有密鑰進行“AddRoundKey”運算。當(dāng)已經(jīng)處理了表RAND[j]的所有元素時,在步驟511中,通過抵抗SPA攻擊的函數(shù),獲取對應(yīng)于使用相應(yīng)的私密加密密鑰塊對數(shù)據(jù)塊M1進行運算的結(jié)果的加密中的數(shù)據(jù)塊。
接下來,在步驟512中加和i。對于待加密的信息Mi的所有字節(jié)重復(fù)前述的所有運算。隨后,對因此得到的加密中的數(shù)據(jù)塊進行運算“ShiftRow”和“MixColum”,這些運算優(yōu)選地以屏蔽的方式進行。
圖6示出了用于根據(jù)AES型算法對16字節(jié)信息進行加密的步驟,該AES算法包括根據(jù)本發(fā)明實施方式執(zhí)行的加密計算,且更具體地示出了兩個連續(xù)輪之間的運算。
步驟602表示在該算法輪結(jié)束處執(zhí)行的運算“AddRoundKey”。步驟602和603與前述圖5的步驟相似。請注意,在步驟606中,通過經(jīng)異或而加和或者通過作為隨機值的掩碼B而屏蔽該計算。
因此,在對非線性運算的攻擊期間,由于對所有的二級數(shù)據(jù)塊和加密中的數(shù)據(jù)塊進行該運算,所以所有與非線性替換運算相關(guān)聯(lián)的信息泄漏以等概率的方式收集。這樣,在根據(jù)本發(fā)明實施方式的算法的計算執(zhí)行期間進行的DPA攻擊期間,以這種方式,可檢測256個偏差,一個偏差用于每一個密鑰字節(jié)f。所以,該類型的攻擊要驗證關(guān)于密鑰的所有假設(shè)。因此,可保護私密密鑰的隱秘性。
為了保護該加密算法的良好執(zhí)行性能,根據(jù)本發(fā)明執(zhí)行的部分計算可以優(yōu)選地同時并因此并行地進行。
權(quán)利要求
1.一種在電子組件中根據(jù)確定的加密算法執(zhí)行加密計算的方法,該算法包括使用包括m個n比特的私密加密密鑰塊的私密加密密鑰(103)對數(shù)據(jù)塊(101)進行的至少一個私密密鑰運算(102)和非線性運算(107),對于給定的私密加密密鑰塊,所述方法包括以下步驟確定2n-1個n比特的不同的二級私密密鑰(105),各密鑰不同于所述私密加密密鑰塊;使用所述私密加密密鑰塊(103)和所述二級私密密鑰對數(shù)據(jù)塊(101)進行所述私密密鑰運算(102),并分別獲取加密中的數(shù)據(jù)塊(104)和2n-1個二級數(shù)據(jù)塊(106);對所述加密中的數(shù)據(jù)塊(104)和所述二級數(shù)據(jù)塊(106)進行所述非線性運算(107);在所述加密中的數(shù)據(jù)塊的基礎(chǔ)上提供已加密的數(shù)據(jù)塊(108)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,對于私密加密密鑰塊,所述方法包括以下步驟(a)在包括所述私密加密密鑰塊的初始表中隨機地確定和設(shè)置所述二級私密密鑰;(b)將與所述初始表中的所述私密加密密鑰塊相對應(yīng)的地址存儲在存儲器中;(c)使用所述初始表(301)的密鑰對所述數(shù)據(jù)塊(101)進行所述私密密鑰運算,并獲得2n個第一元素的第一轉(zhuǎn)換表(303),各第一元素與使用所述密鑰對所述數(shù)據(jù)塊(101)進行所述私密密鑰運算(102)的結(jié)果相對應(yīng),所述密鑰位于所述初始表中與所述第一元素相同的地址處;(d)對所述第一轉(zhuǎn)換表(303)的所述元素進行所述非線性運算(107),并獲得2n個第二元素的第二轉(zhuǎn)換表(402),各第二元素與對所述第一元素進行的所述非線性運算(107)的結(jié)果相對應(yīng),所述第一元素位于所述第一轉(zhuǎn)換表(301)中與所述第二元素相同的地址處;(e)從所述第二轉(zhuǎn)換表(402)中獲取所述元素,該元素與位于所述私密加密密鑰塊的地址處的所述加密中的數(shù)據(jù)塊相對應(yīng)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,與所述加密中的數(shù)據(jù)塊(403)相對應(yīng)的所述元素可通過抵抗簡單功耗分析型攻擊的函數(shù)而從所述第二轉(zhuǎn)換表中獲取,該函數(shù)采用所述私密加密密鑰的地址作為參數(shù)。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述加密算法包括確定數(shù)量的輪,各輪包括至少一個在非線性運算之前的私密加密密鑰運算;并且至少對于該加密算法的第一輪和最后一輪執(zhí)行步驟(a)到(e)。
5.根據(jù)權(quán)利要求2到4中任一項所述的方法,其特征在于,在所述加密算法的開始處執(zhí)行隨機設(shè)置的步驟。
6.根據(jù)權(quán)利要求1到5中任一項所述的方法,其特征在于,使用一個所述私密加密密鑰塊和使用所述二級私密密鑰而同時進行所述私密密鑰運算(102),和/或?qū)λ鰯?shù)據(jù)塊和所述二級數(shù)據(jù)塊同時進行所述非線性運算。
7.根據(jù)權(quán)利要求1到6中任一項所述的方法,其特征在于,所述加密算法為高級加密標(biāo)準(zhǔn)。
8.根據(jù)權(quán)利要求1到7中任一項所述的方法,其特征在于,對于使用隨機值屏蔽的所述加密中的數(shù)據(jù)塊進行至少一個所述加密算法的運算。
9.一種適于根據(jù)確定的加密算法執(zhí)行加密計算的電子組件,該算法包括使用包括m個n比特的私密加密密鑰塊的私密加密密鑰(103)對數(shù)據(jù)塊(101)進行的至少一個私密密鑰運算(102)和非線性運算(107),該組件包括設(shè)置用于實施前述任一項權(quán)利要求所述方法的器件。
全文摘要
本發(fā)明涉及一種在電子組件中基于確定的加密算法執(zhí)行加密計算的方法,該算法包括使用包括m個n比特的私密加密密鑰塊的私密加密密鑰(103)對數(shù)據(jù)塊(101)進行的至少一個私密密鑰運算(102)以及非線性運算(107),其中m和n為正整數(shù)。該方法包括確定文檔編號H04L9/06GK1989726SQ200580024651
公開日2007年6月27日 申請日期2005年7月8日 優(yōu)先權(quán)日2004年7月22日
發(fā)明者赫維·派拉蒂 申請人:薩熱姆防務(wù)安全公司