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