欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

防止通過分析無意旁生信道信號來提取數(shù)據(jù)的數(shù)據(jù)處理方法

文檔序號:6626069閱讀:297來源:國知局
專利名稱:防止通過分析無意旁生信道信號來提取數(shù)據(jù)的數(shù)據(jù)處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)保密。特別是,本發(fā)明涉及降低未經(jīng)授權(quán)而使用數(shù)據(jù)的風(fēng)險(xiǎn)。
本發(fā)明
背景技術(shù)
密碼系統(tǒng)傳統(tǒng)上被描述為帶有密碼(加密或解密)的黑盒子,其中輸入數(shù)據(jù)(無論明碼文或密碼文)在其內(nèi)部使用密鑰進(jìn)行處理,并且唯一離開該黑盒子的信息是預(yù)期輸出數(shù)據(jù)。
旁生信道信息,例如由設(shè)備產(chǎn)生的伴生發(fā)射的電磁波的輻射或功率波動(dòng),在以監(jiān)測正在被處理的信息為目的的攻擊中,可以被容易并有效地利用,這一技術(shù)近來已經(jīng)出現(xiàn)(例如,見于P.Kocher,J.Jaffe和B.Jun所著的Differential Power Analysis,Advance inCryptology-Proceeding of Crypto’99,Lecture Notes in ComputerScience,Vol.1666,Springer-Verlag,1999)。這使提取密鑰比傳統(tǒng)的密碼分析方式更加容易,使我們相信,即使噪音很嚴(yán)重,此后對內(nèi)部處理的直接監(jiān)測也變得可以被攻擊者利用了。
在加密操作中重復(fù)地使用一個(gè)密鑰的情況下,攻擊者通??梢栽趲讉€(gè)操作中通過監(jiān)測和分析旁生信道信息來獲取該密鑰,而不需要借助傳統(tǒng)的密碼分析技術(shù)。必須被觀測到以提取密鑰值(或重復(fù)使用的任何內(nèi)部數(shù)據(jù))的操作的最小重復(fù)次數(shù),與試圖監(jiān)測的信號功率和噪聲功率的比值(信噪比)成反比變化。例如,通過改進(jìn)硬件使該比值減小100倍(即20dB),那么攻擊者將對加密操作監(jiān)測大約100次以提取密鑰。
旁生信道的信噪比的降低存在著應(yīng)用上和經(jīng)濟(jì)上的限制,例如使用屏蔽和附加噪聲。當(dāng)安全處理器(例如集成電路卡)落到一個(gè)潛在的攻擊者手中時(shí),他可以通過提供輸入信號很容易地反復(fù)激勵(lì)該處理器同時(shí)在在近處監(jiān)測旁生信道信號。集成電路卡的實(shí)例包括銀行卡和收費(fèi)電視卡。通過花費(fèi)很少的資金和時(shí)間,攻擊者能夠通過統(tǒng)計(jì)技術(shù)破解他所感興趣的信息,在此稱為DPA(差分功率分析DifferentialPower Analysis)。這樣命名是因?yàn)樽畛R姷挠糜诩呻娐房ǖ呐陨诺辣O(jiān)測是對該設(shè)備產(chǎn)生的功率波動(dòng)進(jìn)行監(jiān)測。DPA技術(shù)還可以應(yīng)用于秘密接收和分析由計(jì)算執(zhí)行數(shù)據(jù)操作所產(chǎn)生的射頻信號。
對于簡單的集成電路卡設(shè)計(jì),對幾個(gè)類似波形組的平均值之間的差異分析可以使得加密數(shù)據(jù)被推導(dǎo)出來。這是一階DPA攻擊的一個(gè)例子。已經(jīng)證實(shí),目前可行的商用集成電路卡,幾乎沒有例外,對這樣具有可用于大多數(shù)確定了的參量的辦法的攻擊是脆弱的。通過適當(dāng)?shù)乃惴ㄔO(shè)計(jì)并包含隨機(jī)性,使得在面臨一階甚至高階DPA攻擊時(shí),使數(shù)據(jù)保密成為可能。
DPA攻擊的階次可以由中間變量的最小個(gè)數(shù)來定義,通過這些變量,可以獲取任何處于該攻擊下的數(shù)據(jù),這里,這些中間變量都是通過對大量監(jiān)測數(shù)據(jù)進(jìn)行的平均處理得到的監(jiān)測數(shù)據(jù)中獲取的。更加直觀(但不精確)的定義可以是該階次是內(nèi)部數(shù)字狀態(tài)的數(shù)目,該數(shù)字內(nèi)部狀態(tài)(如果存在噪聲)會(huì)控制旁生信道觀測,以獲取與攻擊者所需的信息相關(guān)的任何信息。
通過更加高級的數(shù)據(jù)處理(所謂的高階DPA攻擊)和大量的監(jiān)測數(shù)據(jù),仍然能以一定的可靠性,從理論上推斷任何保密數(shù)據(jù)正在被處理,盡管所需要的監(jiān)測數(shù)據(jù)的數(shù)量可以被做得驚人的大。
此處說明的本發(fā)明的技術(shù)目的是減少攻擊者可以從旁生信道信號中獲取的有用信息的數(shù)量,并增加成功攻破行為的最小復(fù)雜度和困難度。該技術(shù)包括對一階和高階攻擊的防御。
一般的,對涉及數(shù)據(jù)保密的安全設(shè)備的設(shè)計(jì)目的是在保密期間使關(guān)于保密數(shù)據(jù)的信息泄露數(shù)量保持低于可接受的限制水平。這可以通過加密裝置實(shí)現(xiàn),該加密裝置完成這樣一個(gè)過程將少量的泄露信息組合成一個(gè)難以進(jìn)行運(yùn)算的可用的整體。這一目的還可以通過以下方法實(shí)現(xiàn)限制信息的泄漏部分的比例,以使在信息的保密期間累積(根據(jù)信息理論常識定義)的有關(guān)保密的泄露內(nèi)容處于可接受的較低程度,以實(shí)現(xiàn)本發(fā)明目的。
數(shù)學(xué)基礎(chǔ)可以以一種方式,將一組數(shù)據(jù)(例如幾個(gè)比特)映射為另一組數(shù)據(jù),這種方法使得既使第二組數(shù)據(jù)對檢測者是已知的,先前的那一組數(shù)據(jù)對檢測者仍是完全未知的。如果知道映射的選取方法,則可以從經(jīng)映射后的數(shù)據(jù)(第二組)中恢復(fù)出初始數(shù)據(jù)(第一組)。為了保持?jǐn)?shù)據(jù)的保密性,映射的選取方法對檢測者必須是未知的,并且對新的每一組數(shù)據(jù)的映射必須被隨機(jī)地選擇,這樣,每一組可能的原始數(shù)據(jù)組可以以相同的幾率被映射成為每一種可能的映射后表示法。本發(fā)明就采用了這一原理。
算子(將一個(gè)或多個(gè)操作對象結(jié)合到一個(gè)結(jié)果中)在密碼設(shè)計(jì)中被當(dāng)做積木使用。這些算子的例子包括查詢表-一元算子-模塊加法或減法、全字位對位異或和模p乘法(數(shù)值集合1至p-1,p是質(zhì)數(shù))-后者都是二進(jìn)制算子。著名的IDEA密碼(由Xuejia Lai和JamesMassey設(shè)計(jì))使用了三個(gè)這樣的二元算子,并且著名的DES密碼使用了查詢表、逐位或非算子和位置換。
一般的,獨(dú)立任意地選擇的一對一的映射可以分別被應(yīng)用于任意算子的輸入和輸出。這樣,可以定義一個(gè)等價(jià)的算子,使得對于每一種選定的映射,從映射后輸入值產(chǎn)生正確的映射輸出。對于每一種給定的算子,可以存在一組這樣的映射,以致這一等價(jià)算子與原始算子相同,并滿足沒有對原始數(shù)據(jù)具有啟示作用的信息的必要條件。包括同樣的算子約束的這一原則,通常被稱為隱蔽,雖然可用于一般算子的映射區(qū)間的范圍是幾乎不會(huì)被獲知的。
例如,模加法運(yùn)算的映射-x+y≡z(mod m)-在這一約束下,算子保持不變,以允許從(x,y,z)到(xi,yi,zi)的映射,其中xi≡aix+bi(modm),yi≡aiy+ci(mod m),zi≡aiz+bi+ci(mod m),其中ai與m互為質(zhì)數(shù)的任何數(shù),而bi和ci是任意數(shù)。其中m是2的乘方(即m=2n),ai有m/2個(gè)可能的取值,而bi和ci中的任一個(gè)都有m個(gè)可能的取值。很多種算子(比如加法,乘法和求冪)將顯示出相似的性質(zhì)。
多位的全字異或運(yùn)算(這里我們看做是兩個(gè)n個(gè)元素的向量在數(shù)域Z2上的相加,加和乘分別相當(dāng)于二進(jìn)制的“異或”和“與”運(yùn)算,并且我們用小寫字母表示向量而用大寫字母表示矩陣)——x+y=z——在算法維持不變的情況下,它具有比模2n加法更多的數(shù)據(jù)映射選擇。這些具有這樣的形式xi=Aix+bi,yi=Aiy+ci和zi=Aiz+bi+ci。Ai可以是 矩陣中的任何一個(gè)——有逆矩陣的那些——并且bi和ci可以分別為2n的任意值,對于每一個(gè)值給出 個(gè)不同的映射(忽略共用矩陣Ai暗含的限制)。當(dāng)n=8比特時(shí),就有大約270.2個(gè)這樣的映射。
可用于異或運(yùn)算的大量的映射集合可以顯著降低旁生信道信號的可用性,并且這樣做可以允許折衷用于保密的某些必要條件。當(dāng)泄漏給攻擊者的信息數(shù)量保持在可以接受的較低程度時(shí),這一折衷(如重復(fù)使用所選擇的映射)可以在運(yùn)算法則的最終設(shè)計(jì)中有效降低其復(fù)雜性。
多重映射可以連續(xù)地用于同一數(shù)據(jù)以構(gòu)成復(fù)合映射-如xi=fi(x),xij=fj(xi)。雖然這相當(dāng)于單一映射xk=fk(x),其中fk=fi0fj,但是如果安排恰當(dāng),攻擊者必須獲得關(guān)于多個(gè)獨(dú)立的數(shù)據(jù)組(例中為三個(gè)-xk,fi,fj)的信息才能獲得任何關(guān)于原始數(shù)據(jù)的信息。這就增加了DPA攻擊的階次(一般等于獨(dú)立數(shù)據(jù)組的個(gè)數(shù))和所需要的監(jiān)測的數(shù)量(一般相當(dāng)于獨(dú)立數(shù)據(jù)組個(gè)數(shù)的乘方),才能從監(jiān)測中提取出有用的信息。
一階算子(例如查詢表或位置換)仍然應(yīng)用在加密中。允許算子保持不變的映射只有在操作中有數(shù)據(jù)丟失(如多對一)時(shí)才是受到限制的,不過在這種情況下改變算子是更有意義的,例如通過使用映射-從屬查詢表。
Kocher、Jaffe和Jun的國際公開號WO99/67919提出了改進(jìn)DES密碼術(shù)協(xié)議的方法和設(shè)備,通過減少對信號處理期間的可用信息的泄漏數(shù)量(和信噪比)來防止外來監(jiān)測的攻擊。該發(fā)明所實(shí)施的一項(xiàng)改進(jìn)的DES改為使用兩個(gè)56位密鑰(K1和K2)和兩個(gè)64位明文報(bào)文(M1和M2),它們每一個(gè)都相關(guān)于一個(gè)排列(即K1P,K2P和M1P,M2P),以使K1P{K1}XOR K2P{K2}等于“標(biāo)準(zhǔn)”DES密鑰K,并且M1P{M1}XORM2P{M2}等于“標(biāo)準(zhǔn)”報(bào)文。在該設(shè)備操作期間,運(yùn)算表最好定時(shí)更新,通過比信息泄漏更快地引入刷新平均信息量到該表中,使得攻擊者無法通過分析檢測結(jié)果獲得該表中的內(nèi)容。該技術(shù)可以應(yīng)用于加密集成電路卡(智能卡)、防篡改芯片和所有類型的安全處理系統(tǒng)。在使用了隱蔽的情況下,為了通過旁生信道提取有效信息所需要的監(jiān)測結(jié)果的數(shù)量與該信道的SNR的乘方之間的關(guān)系不同于前述的成反比關(guān)系,并且在該申請中沒有給出對這一原理的認(rèn)識的跡象。在該申請中使用了隱蔽的情況下(有或沒有排列),所需要的監(jiān)測的數(shù)量應(yīng)當(dāng)與乘方SNR的平方(即SNR的四次方)相反地變化。
本發(fā)明概述本發(fā)明的技術(shù)提供了對密碼術(shù)及其他方法的實(shí)用和有效的修正,該修正是基于改變用于計(jì)算和存儲(chǔ)的所有秘密和中間數(shù)據(jù)的映射的數(shù)據(jù)保密而做出的。這些數(shù)據(jù)例如可以是密鑰、被存儲(chǔ)和被傳送的數(shù)據(jù)。
當(dāng)被映射的數(shù)據(jù)或被選擇的映射(或所使用的復(fù)合映射中的所有映射)是未知的時(shí),沒有關(guān)于加密數(shù)據(jù)的信息可以被確定。該技術(shù)具有有效減少從旁生信道泄漏中獲取有關(guān)原始數(shù)據(jù)的信息的能力,使得可監(jiān)測的旁生信道泄漏足夠低。
秘密數(shù)據(jù),尤其是密碼密鑰,從不必要以原始形式存在(沒有應(yīng)用映射),除非它們在初始映射中使用,并被隨機(jī)地基于每用原則重映射,以避免容易受到DPA攻擊的數(shù)據(jù)重復(fù)出現(xiàn)。
這一技術(shù)具有很高的價(jià)值的一個(gè)例子是用于集成電路卡,在某些情況下DPA僅僅通過對泄漏出來的旁生信道信號的分析,可以在短短幾分鐘內(nèi)使非法用戶使用這些集成電路卡。另一種可能的應(yīng)用是應(yīng)用于計(jì)算設(shè)備中的數(shù)據(jù)計(jì)算與存儲(chǔ),這里電磁輻射將會(huì)危及數(shù)據(jù)的安全。
因此,為了實(shí)現(xiàn)本發(fā)明的優(yōu)點(diǎn),這里提供了一種處理數(shù)據(jù)的方法,以降低通過諸如DPA等方法對數(shù)據(jù)繼續(xù)擰非法訪問的風(fēng)險(xiǎn),該方法包括以下步驟- 算法設(shè)計(jì),獨(dú)特而并非專用的密碼,以最大受益于這項(xiàng)技術(shù);- 將公知的數(shù)據(jù)隱蔽技術(shù)引申為較大的映射組;- 將算法工具改進(jìn)以應(yīng)用于已經(jīng)映射的數(shù)據(jù);- 用于存儲(chǔ)數(shù)據(jù)的初始映射,尤其是密鑰;- 通過使用二級映射,對每一個(gè)在先的數(shù)據(jù)映射進(jìn)行數(shù)據(jù)映射轉(zhuǎn)換;- 映射輸入數(shù)據(jù)以輸入給修正的算法執(zhí)行程序;并
- 映射從修正的算法輸出的數(shù)據(jù)以進(jìn)一步使用。
該方法可以包括保持秘密數(shù)據(jù)和映射的選擇方法的數(shù)據(jù)保密性。
數(shù)據(jù)映射和二次數(shù)據(jù)映射可以是查詢表、具有映射選取方法數(shù)據(jù)的算法或其它類似的形式。
該方法包括復(fù)合地(級聯(lián)地)而不是單獨(dú)地應(yīng)用映射,以減少攻擊者通過有限數(shù)量的監(jiān)測可以獲得的信息的數(shù)量,并增加成功進(jìn)行DPA攻擊的最小階次。
已經(jīng)映射的數(shù)據(jù)和映射選擇方法被傳送給遠(yuǎn)程單元。
通過下面的描述、非限制性的實(shí)施例以及附圖,可以更好地理解本發(fā)明。


圖1示出,加密過程的現(xiàn)有技術(shù)的示意圖;圖2示出,圖1的加密過程中旁生信道信息的泄漏的示意圖;圖3示出,用映射后數(shù)據(jù)等價(jià)物替換雙輸入運(yùn)算的示意圖;圖4示出,連續(xù)映射的結(jié)合的示意圖;圖5示出,加密器由其修正后的等價(jià)物代替的示意圖;圖6示出,用于儲(chǔ)存的密鑰的初始映射的示意圖;圖7示出,密鑰的重復(fù)映射的示意圖;圖8示出了一個(gè)示意圖,用最簡單的密碼說明的映射過程;和圖9說明了實(shí)施例3的情況使DES密碼抵抗1st-和2nd-階DPA攻擊。
圖1中,附圖標(biāo)記10一般地表示了一個(gè)傳統(tǒng)意義上的“黑盒子”密碼運(yùn)算。在運(yùn)算10中,輸入數(shù)據(jù)12使用密鑰14轉(zhuǎn)換成輸出信號16。
圖2中,附圖標(biāo)記20一般地表示了一個(gè)傳統(tǒng)的密碼運(yùn)算,例如圖1中所示的加密運(yùn)算,并進(jìn)一步指出旁生信道泄漏。運(yùn)算20包括數(shù)據(jù)的輸入22、使用密鑰24將輸入數(shù)據(jù)轉(zhuǎn)換成輸出數(shù)據(jù)26和信號的泄漏28。
圖3中,附圖標(biāo)記30一般地表示了數(shù)據(jù)隱蔽等價(jià)物代替雙輸入運(yùn)算的過程。在運(yùn)算30中,通過在算子31中被運(yùn)算的輸入32和34實(shí)現(xiàn)一個(gè)標(biāo)準(zhǔn)雙輸入運(yùn)算,以產(chǎn)生輸出36。數(shù)據(jù)隱蔽運(yùn)算再次接收輸入32和34,隨后,在由算子33進(jìn)行運(yùn)算之前,通過映射35和37被映射。合成后的輸出隨后由輸出映射39進(jìn)行映射,以提供隱秘的輸出36。
圖4中,附圖標(biāo)記40一般地表示了通過級聯(lián)運(yùn)算實(shí)現(xiàn)的圖3的連續(xù)映射的組合。算子41和47相當(dāng)于圖3中的運(yùn)算33的兩個(gè)不同的運(yùn)算。映射43相當(dāng)于涉及算子41的輸出映射39,而映射45相當(dāng)于涉及算子47的輸入映射(如35或37)。映射49(fcd)是由43和45結(jié)合而來的單一的復(fù)合映射,它不會(huì)產(chǎn)生任何與原始數(shù)據(jù)相關(guān)聯(lián)的數(shù)據(jù),即使是中間值。
圖5中,附圖標(biāo)記50一般地表示密碼由其修正后的等價(jià)物替換(作為本發(fā)明的最終實(shí)現(xiàn)的中間步驟)??梢园l(fā)現(xiàn)在未修正的運(yùn)算中,輸入數(shù)據(jù)52通過使用密鑰51的加密運(yùn)算53而起作用,提供輸出54。在修正后的等價(jià)物中,在通過修正后的加密器57使用具有映射后的形式的密鑰而起作用之前,輸入數(shù)據(jù)52由轉(zhuǎn)換運(yùn)算56轉(zhuǎn)換成映射后的形式,提供映射后的輸出,通過使用轉(zhuǎn)換算法58可以從中得到原始輸出54。
在圖6中,附圖標(biāo)記60表示進(jìn)行映射的不可預(yù)知的選擇的步驟。根據(jù)得出的選擇結(jié)果,對未經(jīng)映射的密鑰62進(jìn)行映射63,并儲(chǔ)存為64。映射選擇方法被存儲(chǔ)為68,以供經(jīng)映射的密鑰使用。
在圖7中,附圖標(biāo)記70表示進(jìn)行二級映射的不可預(yù)知選擇的步驟。通過使用所選擇的二級映射,對先前被映射過的密鑰72執(zhí)行進(jìn)一步的映射73,并儲(chǔ)存為74,以代替72。根據(jù)選擇二級映射的選擇經(jīng)驗(yàn),對先前儲(chǔ)存的映射選擇結(jié)果76進(jìn)行處理,以產(chǎn)生對于74可用的映射選擇,并且儲(chǔ)存為78,用于替換76。
在圖8中,附圖標(biāo)記80一般地表示用對經(jīng)映射后的數(shù)據(jù)進(jìn)行的運(yùn)算算法代替原有的運(yùn)算算法。加密器83對輸入正文81和密鑰82進(jìn)行運(yùn)算,以產(chǎn)生輸出文本塊84。替換后,輸入正文通過適當(dāng)?shù)挠成浔挥成?5。對初始密鑰82執(zhí)行類似的隨意映射86,以產(chǎn)生映射密鑰89。可選擇地,89可以由一個(gè)加密運(yùn)算的輸出中得到,并已經(jīng)是經(jīng)過映射的形式。86進(jìn)一步涉及反復(fù)改變的應(yīng)用于密鑰的映射。修正的加密器87對映射后的數(shù)據(jù)進(jìn)行運(yùn)算,并且通過映射運(yùn)算器,它的映射輸出被隨機(jī)地進(jìn)行運(yùn)算88,以產(chǎn)生與未修正的加密器所產(chǎn)生的同樣的數(shù)據(jù)84?;蛘哌€可以是87的輸出可以直接與映射選擇數(shù)據(jù)一起,用在對等價(jià)物85和86的相似的修正算法,以避免未經(jīng)映射的數(shù)據(jù)。
圖9中,附圖標(biāo)記90總的表示將位變換替換成對經(jīng)過映射后的數(shù)據(jù)和映射方法的選取數(shù)據(jù)都進(jìn)行這種處理,以獨(dú)立地對映射后的數(shù)據(jù)位應(yīng)用映射。附圖標(biāo)記91表示對一個(gè)數(shù)據(jù)位的復(fù)制同樣的替換,這一替換沒有引入不同的映射法則,而是要警惕這些數(shù)據(jù)再組合時(shí)導(dǎo)致多余的不可預(yù)料的消除。附圖標(biāo)記92表示同樣的替換操作,除了引入了不可預(yù)知的信息95以避免91中所涉及的消除。附圖標(biāo)記93類似地指出了異或運(yùn)算的替換。附圖標(biāo)記94表示以使用映射值的、一個(gè)預(yù)先計(jì)算好的查詢表代替DES S函數(shù)查詢表(有六個(gè)輸入位和四個(gè)輸出位)。在預(yù)先計(jì)算中,不可預(yù)知數(shù)據(jù)96和所有可能的輸入值97都與原始表結(jié)合,以產(chǎn)生所有映射后輸入-輸出組合98,用于寫入映射后查詢表99。根據(jù)設(shè)計(jì)的選擇,該預(yù)先計(jì)算可以在每次或多次使用查詢表之前進(jìn)行。之后,查詢表99被使用于對映射后數(shù)據(jù)操作的充分獨(dú)立的重映射運(yùn)算(異或)中。圖中沒有兩個(gè)數(shù)據(jù)位向量可以被用來重構(gòu)原始數(shù)據(jù)。為獲得足夠的隔離度,在信號路徑中引入延遲(比如通過在異或運(yùn)算之間使用定時(shí)鎖存器)。
本發(fā)明的詳細(xì)介紹密碼設(shè)計(jì)應(yīng)對密碼算法的選擇給予考慮。適當(dāng)?shù)拿艽a設(shè)計(jì)可以使下一步驟(密碼修正)中的密碼處理費(fèi)用增加得很少。選擇用于密碼實(shí)施的設(shè)備,對于具有盡量小的復(fù)雜度和在其面臨旁生信道攻擊時(shí),具有盡量大的數(shù)據(jù)保密程度是非常重要的。理解下述技術(shù)在設(shè)計(jì)中是很必要的。
對多組數(shù)據(jù)重復(fù)使用同一運(yùn)算法則中的一個(gè)映射將會(huì)給攻擊者提供潛在的易攻破的缺陷,不過這一缺陷并非很嚴(yán)重(例如只需抵御一階DPA攻擊時(shí)),這樣通過使用加法器可實(shí)現(xiàn)很大的節(jié)約。在算法設(shè)計(jì)中一定要記住這一點(diǎn)。
新的映射選擇可以用于遍及加密裝置的每一個(gè)數(shù)據(jù)值(包括每次運(yùn)算的輸出),否則映射可能被固定地用于兩個(gè)運(yùn)算之間。當(dāng)這兩個(gè)運(yùn)算是無關(guān)的,后者明顯是不可能的,只有在保持低復(fù)雜性的情況下才可能是有用的。必須注意與所有中間計(jì)算值結(jié)合的映射要保證隱秘要求(例如,當(dāng)兩個(gè)具有相同的映射應(yīng)用的數(shù)值通過異或算子相結(jié)合時(shí),之前的零輸出將總是被映射成零值)。
如圖3所示,每一個(gè)運(yùn)算器由執(zhí)行等價(jià)運(yùn)算而且使所有數(shù)值都被映射的運(yùn)算器所代替。輸出映射39(fc)由輸入映射35、37(fa和fb)和中心運(yùn)算的任何改變來確定。例如,在輸入映射是將每一個(gè)加法器的輸入都分別加上一個(gè)任選值的情況下,那么輸出映射就是從輸出中減掉任意值的總和,這里假定中心運(yùn)算是不變的。
原始值32、34和36(a,b,c)仍然在圖3中出現(xiàn),然而在應(yīng)用了下一步之后就不會(huì)出現(xiàn)了。如果找出適當(dāng)?shù)目晒┻x擇的方法是不切實(shí)際的,那么,一般將在在映射數(shù)值上執(zhí)行的運(yùn)算選擇為與以前相同的運(yùn)算(如對于加法),不過如果替換是合理的,也可能選取不同的運(yùn)算(如對于隨機(jī)查詢表)。
下一步是將來自級聯(lián)的運(yùn)算41和47的連續(xù)的映射43和45(fc和fd)合并為單一的映射49(fcd),如圖4中所示。這個(gè)映射絕不能,即使是中間計(jì)算值,也不能產(chǎn)生原始數(shù)據(jù)或任何與原始數(shù)據(jù)有關(guān)的數(shù)據(jù)。當(dāng)映射49僅由不能被用于從映射后的值導(dǎo)出與原始數(shù)據(jù)有關(guān)的信息的信息構(gòu)成時(shí),這通常可以實(shí)現(xiàn)。出現(xiàn)相關(guān)數(shù)據(jù)會(huì)給DPA攻擊提供主要目標(biāo)。例如,如果兩個(gè)映射43和45是對各個(gè)隨機(jī)值的模加法,映射49將是這些數(shù)值總和的加法,從中無法推導(dǎo)出關(guān)于每個(gè)映射選擇的信息。與相鄰的運(yùn)算聯(lián)系起來,這個(gè)映射可以被簡化。這里連續(xù)映射43和45的選取是有關(guān)聯(lián)的(即其中一個(gè)的選取影響另一個(gè)的選取),復(fù)合映射可以稍微簡單一些或者甚至變?yōu)橄嗤倪\(yùn)算(因此被省略)。
當(dāng)級聯(lián)算子41和47無關(guān)時(shí),如映射49(fcd)所執(zhí)行的復(fù)合運(yùn)算將是必要的。如果必要,它將通過使用查詢表或其它算法來執(zhí)行。如果相鄰運(yùn)算中的一個(gè)是查詢表,因而導(dǎo)致級聯(lián)的查詢表將被結(jié)合為一個(gè)。這一步驟之后,除了輸入數(shù)據(jù)、密鑰數(shù)據(jù)、輸出數(shù)據(jù)之外,所有計(jì)算過程中的數(shù)據(jù)通過映射保持保密狀態(tài)。這些外部映射將在下一步中被分別處理。
通過精心的密碼設(shè)計(jì)的選擇和映射選擇的限制,在忽略修正后的密碼57外部的映射選擇、運(yùn)算和映射的情況下,修正后密碼的復(fù)雜程度不一定比原始密碼的大。每一個(gè)運(yùn)算中的涉及映射的計(jì)算量保持為最小狀態(tài)。圖5中示出了由此得到的數(shù)學(xué)等效加密器。
密鑰的初始存儲(chǔ)圖5中,原始密鑰、輸入數(shù)據(jù)和輸出數(shù)據(jù)仍顯示為沒有應(yīng)用映射的形式,并且當(dāng)它們被某一運(yùn)算讀取時(shí),特別是進(jìn)行映射處理時(shí),仍然可以成為DPA攻擊的目標(biāo)。密鑰必須僅以映射后的形式被存儲(chǔ),其中映射的選擇具有必要的隨機(jī)性。此外,把映射的選取方法譯成密碼的信息必須儲(chǔ)存起來。這一初始存儲(chǔ)只有當(dāng)初始的或主密鑰被下載時(shí)(典型地在受到保護(hù)的環(huán)境中)才是必要的,而且從不針對在加密中信息中所下載的密鑰(見加密器輸出數(shù)據(jù)的映射)。這可以被表示為最先通過應(yīng)用映射k0=f0(k)存儲(chǔ)密鑰k,同時(shí)存儲(chǔ)識別映射f0的選定方法的信息。映射族將根據(jù)用于加密器中的算子最普通地進(jìn)行選擇,其中密鑰用于避免不必要的重復(fù)映射。
每用密鑰映射即使如密鑰的初始存儲(chǔ)中那樣,通過一個(gè)應(yīng)用映射進(jìn)行了存儲(chǔ),反復(fù)讀取可能導(dǎo)致通過一階DPA技術(shù)(例如通過分析監(jiān)測記錄組的平均值)重現(xiàn)出秘密數(shù)據(jù)和映射信息。因此,在每次使用密鑰之前,映射應(yīng)當(dāng)被更換為新的、隨機(jī)選定的映射,這種映射受到由設(shè)計(jì)強(qiáng)加的約束。密鑰的原始數(shù)據(jù)絕不能被計(jì)算出,即使只是在這一過程中作為臨時(shí)變量。這導(dǎo)致派生出以ki=gi(ki-1)和fi=gi0fi-1形式存在的值。后者意味著派生出fi以致fi(q)=gi(fi-1(q))對任意q成立。數(shù)值ki和fi將代替已存儲(chǔ)的值ki-1和fi-1。這些數(shù)值將通過等式ki=fi(k)保持關(guān)系。
加密器輸入數(shù)據(jù)映射輸入數(shù)據(jù)52(圖5中x)首先通過為這些輸入所選定的映射關(guān)系進(jìn)行映射。這類似于密鑰的初始映射(見密鑰的初始存儲(chǔ)),只是所有的數(shù)據(jù)都將被處理,例如接收到的將被解密的秘文或供傳送的將被加密的明文。其中極機(jī)密數(shù)據(jù)(如密鑰)將被加密,它們必須已經(jīng)以映射后的形式被存儲(chǔ),并被進(jìn)行了適當(dāng)?shù)挠成涮鎿Q(如每用密鑰映射中所述)。
加密器輸出數(shù)據(jù)映射輸出將被映射成它的原始值,此時(shí)它的秘密性已經(jīng)無關(guān)緊要(例如已經(jīng)產(chǎn)生了用于傳送的秘文)。當(dāng)這一數(shù)據(jù)必須保持秘密狀態(tài)時(shí)(例如傳送后的密鑰),它們和映射選定方法信息應(yīng)當(dāng)被存儲(chǔ)且不被逆映射回原始形式。因此,上面提到的密鑰的初始映射不會(huì)用于接收的和解密的密鑰。這就使下載密鑰的過程可以抵御DPA。
例1實(shí)現(xiàn)基于“異或”的加密器的DPA防御在本例中,一個(gè)很簡單的加密器完全由模2加法-異或-以八位字節(jié)運(yùn)算(每個(gè)八字節(jié)的向量)和一個(gè)單一的查詢表構(gòu)成,以對于每個(gè)8位輸入產(chǎn)生8位輸出。由于加密器的過于簡單的性質(zhì),相應(yīng)于密鑰的使用,只有單個(gè)一組數(shù)據(jù)可以被安全地加密(如在Vernam加密器或一次延長器中),不過對同一數(shù)據(jù)的反復(fù)加密可以實(shí)現(xiàn)對一階DPA的抵御。每用密鑰映射沒有說明,但是它在對DPA的防御中是必要的。本例試圖說明用于嚴(yán)格限定的計(jì)算環(huán)境中的密碼器設(shè)計(jì),例如用于集成電路卡的加密器設(shè)計(jì)。他使用了一個(gè)單一的查詢表代換。
在本例中,所述的映射被應(yīng)用于每一個(gè)8位數(shù)據(jù),具有kni=Aikn+bi、xni=Aixn+ci和yni=Aiyn+di的形式。下標(biāo)n和i分別代表每個(gè)數(shù)據(jù)組中8位字節(jié)的選擇和加密器使用計(jì)數(shù)。Ai是一個(gè)隨機(jī)選取的比特的滿秩8×8矩陣,每一個(gè)bi、ci和di都是隨機(jī)選取的8位字節(jié)。
下面結(jié)合圖8中的運(yùn)算說明本例。一個(gè)典型的加密器(加密或解密)可能使用很多運(yùn)算,并且每一個(gè)k、x、y的數(shù)據(jù)大小一般至少是64位。每一個(gè)箭頭代表一個(gè)8位字節(jié)的流向。圖表示出數(shù)據(jù)的映射的等效運(yùn)算。密鑰的初始的和遞增的(在每用密鑰映射中做出說明)映射都被示出在密鑰映射中。
初始映射后的密鑰kn,0=A0kn+b0和映射f0=A0,b0)被儲(chǔ)存。
最好在使用密鑰之前,通過選定新的Gi和hi來確定一個(gè)新的映射。我們將kn,i-1替換為kn,i=Gikn,i-1+hi,將Ai-1替換為Ai=GiAi-1,將bi- 1替換為bi=Gibi-i+hi。
每一個(gè)查詢表s被替換成它的等效值si,以對映射后的值進(jìn)行運(yùn)算,定義為si(z)=Ais(Ai-1(z+bi+ci))+di。使用相關(guān)映射xn,i=Aixn+ci對輸入數(shù)據(jù)8位字節(jié)xn進(jìn)行映射。使用原始加密程序而不是被替換后的查詢表對映射后的輸入加密。除了每密鑰映射、替換后的查詢表、初始映射和最終映射之外,沒有涉及加密程序的計(jì)算變化。
最后,當(dāng)輸出y保持秘密狀態(tài)時(shí),例如通過密鑰,使用yi、Ai和di而不是y。如果將它映射成其原始狀態(tài),這將被表示為yn=Ai-1yn,i+di。
得出一個(gè)重要的觀測結(jié)果,就是由于可能的映射的數(shù)量巨大(270.2),相同的映射可以用于不止一個(gè)8位數(shù)據(jù)的有效加密。一個(gè)簡單的映射不能保證多個(gè)字節(jié)充分安全抵御DPA。應(yīng)當(dāng)盡量減少基于相同映射的重復(fù)使用的簡化,并且應(yīng)是可行的,為不同的數(shù)據(jù)組選擇的映射,應(yīng)當(dāng)是分別選出的。
既然映射(Ai,bi)和映射后的數(shù)據(jù)d在每次使用中都會(huì)改變,那么被處理的數(shù)據(jù)(包括密鑰)就和原始數(shù)據(jù)無關(guān)。只有數(shù)據(jù)的幾個(gè)比特和映射的函數(shù)與原始數(shù)據(jù)有關(guān)。原始數(shù)據(jù)的每一位可以被表示為被處理的一個(gè)17位的函數(shù)。
本例應(yīng)用于強(qiáng)大的加密器,可以被有效應(yīng)用于當(dāng)前使用的集成電路卡,包括使用8位處理器和存儲(chǔ)空間不大的集成電路卡。
例2實(shí)現(xiàn)IDEA加密器的DPA防御這個(gè)例子說明了應(yīng)用于一個(gè)在設(shè)計(jì)時(shí)沒有任何抵御DPA意圖的公知的加密器時(shí)這個(gè)概念的使用。
IDEA加密器,基于簡單容易地應(yīng)用于大多數(shù)常規(guī)用途計(jì)算機(jī)的目的,被有意設(shè)計(jì)成由三個(gè)互不相容的算子組成-16位值的二進(jìn)制異或、加法和乘法。為了使該加密器實(shí)現(xiàn)DPA防御,由于算子之間互不相容,將在每個(gè)數(shù)據(jù)路徑中引入一個(gè)查詢表,目的是為了將映射后的數(shù)值從一個(gè)算子映射到下一個(gè)。
和上面的例子一樣,每次異或都具有一個(gè)映射,除非向量的長度增加到16位。上文所述的“每次”意味在整個(gè)加密過程中,沒有將隨機(jī)映射限定為同一個(gè)映射,而且只要執(zhí)行再映射,就可以獨(dú)立地選擇映射。
加法器比異或算子具有較小的映射選擇自由。乘法器與加法器具有相同的映射選擇自由。映射必須是從一個(gè)適當(dāng)?shù)脑O(shè)備中隨機(jī)選取的,必須據(jù)此對密鑰和數(shù)據(jù)進(jìn)行映射,必須產(chǎn)生查詢表,且必須執(zhí)行加密程序。
這里,系統(tǒng)管理的是若干查詢表、用于辨識對密鑰所施加的映射的信息的存儲(chǔ),和當(dāng)有運(yùn)算被執(zhí)行時(shí)處理兩倍的查詢的系統(tǒng)工作量,其中系統(tǒng)所管理的每一個(gè)查詢表都具有65536個(gè)16位字。
在典型的現(xiàn)代計(jì)算機(jī)中,這些資源是隨時(shí)可用的。如本例展示,使用本技術(shù),許多現(xiàn)有的應(yīng)用程序可以被容易地保護(hù)起來,以抵御大部分的DPA攻擊。采用這種方法,使得利用偷偷截取從執(zhí)行加密操作的計(jì)算機(jī)發(fā)射出來的電磁波的DPA變得不可行了。
必須確立這樣的概念當(dāng)需要處理大量的數(shù)據(jù)時(shí),這些數(shù)據(jù)的映射在該處理過程中應(yīng)當(dāng)不時(shí)地更新。
例3實(shí)現(xiàn)DES加密的DPA防御數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)加密法被廣泛地使用,雖然它的56位密鑰長度使得它容易受到窮舉搜索攻擊,但是仍然得到廣泛應(yīng)用。它還被用于更安全的同義密符,例如三重?cái)?shù)據(jù)加密算法(TDEA,更一般地稱為三重-DES)和DESX(由DES派生出的一種加密法)。由此,考慮將本發(fā)明用于DES是適當(dāng)?shù)摹?br> DES的設(shè)計(jì)沒有考慮DPA。在通常情況下,用于增加密碼的長度的方法,減小了后續(xù)操作中有可能使用的映射的兼容性。三個(gè)重要的運(yùn)算被應(yīng)用于DES-模2加法(異或)、展開(很像置換,只是將某些或所有的輸入位復(fù)制成兩個(gè))和八個(gè)6到4位查詢表(被稱為S或選擇函數(shù))。移位、位置換(重排)和寄存器互換在本討論中不予考慮,因?yàn)檫@些針對每個(gè)數(shù)據(jù)位的映射選擇被簡單地跟蹤(假設(shè)信號保持孤立),無須把它們當(dāng)做與所選擇的映射策略截然不同的運(yùn)算。用包括追蹤映射選擇的修正后的位移動(dòng)代替未修正的位移動(dòng)在90中得以說明。
雖然特殊的置換、展開和異或運(yùn)算的使用允許對數(shù)據(jù)(包括密鑰)的大量映射集合,但任何涉及多位的映射必須被重映射,以允許每次僅使用六個(gè)數(shù)據(jù)位作為對每個(gè)S函數(shù)的輸入。在這一場合,將禁止將這8個(gè)S函數(shù)整體地看做一個(gè)單一的實(shí)體。為了簡單起見,涉及多于一個(gè)數(shù)據(jù)位的映射在此將不被考慮。這并不意味著具有幾乎每次運(yùn)算之后的重映射的比較復(fù)雜的映射必須是復(fù)雜的。
這里將要考慮的映射包括在算法中對所處理的每一個(gè)數(shù)據(jù)位的單獨(dú)選取。盡管這里需要尤其注意確保DPA防御的階次不低于所要求的階次,但為減少對新的隨機(jī)數(shù)據(jù)的需求,仍可以采取折衷的辦法,使得選擇是相關(guān)的。本例將不包括對這種折衷方法的實(shí)現(xiàn)。
假設(shè)本例中我們要求2nd階DPA防御。為達(dá)到這一要求,我們將使用這樣的原理在能夠重建出關(guān)于原始數(shù)據(jù)任何信息之前,所需的獨(dú)立數(shù)字量的值必須是一個(gè)較高的值,即3。由于數(shù)字信號間以多種無法預(yù)料的方式相互影響,因此不能假定該信號是獨(dú)立的,除非對它進(jìn)行適當(dāng)?shù)母綦x。
通用處理器中的信號隔離通常比功能描述中所暗含的隔離度要少得多。例如,將一個(gè)數(shù)值加載到諸如象累加器這樣的一個(gè)寄存器中,可以達(dá)到隱藏的作用,以備將來使用,例如判斷該值是否為零。在載入新的數(shù)據(jù)之前的一個(gè)時(shí)間段之后,從電路中刪除數(shù)據(jù),這種作法一般可以提供足夠的隔離,即使發(fā)生細(xì)微的相互作用(象數(shù)據(jù)相互加熱或離子移動(dòng))。不直接訪問的字RAM中的數(shù)據(jù)值之間的相互作用,在執(zhí)行其它訪問期間,由于執(zhí)行了尋址邏輯,因而這種相互作用仍然是明顯的。這里,我們假設(shè)由具有適當(dāng)性質(zhì)的數(shù)據(jù)存儲(chǔ)寄存器來實(shí)現(xiàn)硬件。這些性質(zhì)中的第一項(xiàng)是一旦數(shù)據(jù)從電路中被刪除并經(jīng)過適當(dāng)?shù)臅r(shí)間間隔(例如一個(gè)時(shí)鐘周期)之后,那么在這個(gè)電路中將沒有與后續(xù)數(shù)據(jù)之間的相互影響。第二項(xiàng)性質(zhì)是分立電路中數(shù)據(jù)之間的相互影響是可以忽略的,雖然這一性質(zhì)的較保守形式是分立電路中數(shù)據(jù)之間的相互影響被合適地隔離,使得在同一時(shí)間所有電路都沒有數(shù)據(jù)關(guān)聯(lián)信號越遷產(chǎn)生。需要注意的是,同時(shí)處理的不同的數(shù)據(jù)位通常不能被假定為隔離的,因此不應(yīng)將其視為獨(dú)立的。
我們假設(shè)所有用于算法的輸入數(shù)據(jù)都是映射后的形式(映射后數(shù)據(jù)的一個(gè)單一位被描述成單一位),對每個(gè)數(shù)據(jù)位,有兩個(gè)獨(dú)立應(yīng)用的映射,每個(gè)映射具有唯一的獨(dú)立的一個(gè)映射選擇信息的不可預(yù)知的位。每個(gè)映射都是從兩個(gè)組成的一組中挑選出的。該組中第一個(gè)映射使數(shù)據(jù)位保持不變,第二個(gè)交換兩個(gè)可能值??梢园l(fā)現(xiàn),如果利用一個(gè)異或操作,對與原始位相關(guān)的三個(gè)位進(jìn)行組合,則可以導(dǎo)出原始位。省略三個(gè)中的任何一位將會(huì)使原始數(shù)據(jù)實(shí)現(xiàn)保密(假設(shè)每種映射選擇是不可預(yù)知的,每種情況有相同的可能性,而且每種選擇之間沒有相關(guān)的形式)。
在修正DES加密法的過程中,任何映射后的數(shù)據(jù)位受到和從前一樣的任何變換,并跟蹤相關(guān)的映射位(90)。對于展開也是一樣,除了進(jìn)行位復(fù)制時(shí)(包括所有位被復(fù)制的情況),這樣的復(fù)制應(yīng)是獨(dú)立進(jìn)行的,除非進(jìn)一步的分析指出這是沒有必要的(在如91中的修正的情況時(shí))。使用兩個(gè)獨(dú)立選擇的映射(需要兩位隨機(jī)數(shù)據(jù)),可以構(gòu)成合成映射。引入的映射數(shù)據(jù)可以應(yīng)用于這兩對映射(分別使用異或操作對每個(gè)復(fù)制數(shù)據(jù)進(jìn)行再映射),加上對于用于每個(gè)復(fù)制結(jié)果的、為兩個(gè)映射選擇中的任意一個(gè)導(dǎo)出的組合映射。這涉及四個(gè)不可預(yù)知的新選擇位,可以省略與每個(gè)引入的映射相聯(lián)系的其中一個(gè),而不會(huì)降低安全性(如92所示)。兩個(gè)復(fù)制結(jié)果之間互相不相關(guān),并可以一起在隨后的操作中使用而不用擔(dān)心隨后的結(jié)合會(huì)引入DPA可攻擊缺陷。DES加密法中的異或操作在這一映射下保持不變,盡管為應(yīng)用于每個(gè)數(shù)據(jù)位的第一和第二映射推導(dǎo)出了組合映射。這一限定可以在硬件中進(jìn)行-當(dāng)兩個(gè)映射數(shù)據(jù)位的異或被發(fā)現(xiàn),每個(gè)選擇位與使用相同操作的其它數(shù)據(jù)映射的相應(yīng)選擇位結(jié)合(93)。產(chǎn)生的三個(gè)數(shù)據(jù)位隨后被作為屏蔽數(shù)據(jù)位和兩個(gè)應(yīng)用映射。選擇有時(shí)可以被明智地做成相關(guān)的方式,而不減少有效的DPA攻擊的最小階次,其結(jié)果是可以減小附加的計(jì)算復(fù)雜性和不可預(yù)測數(shù)據(jù)需求。
上述情況中必須注意到的是,本發(fā)明的描述中建議的某些簡化已經(jīng)應(yīng)用在本例中了。尤其是,對上級操作的輸出進(jìn)行的映射與應(yīng)用于異或操作的輸入一樣,把重映射簡化為相同的操作(可以將其省略)。通過數(shù)據(jù)展開(92),只有添加了足夠的附加不可預(yù)知值(95),才能確保后續(xù)操作不會(huì)降低DPA防御能力。后續(xù)的基于映射選擇的故意相關(guān)的簡化成為可能。
在本例中,S函數(shù)是保持被尋址的唯一區(qū)域。通過使被選取的映射的類型保持彼此相差懸殊,我們將限定完成本例目的映射的選擇范圍,以對獨(dú)立的數(shù)據(jù)位進(jìn)行映射。當(dāng)引入簡化時(shí),有多種可以采用的方法。這里采用的方法是用根據(jù)函數(shù)(查詢表)的輸入而選取新的映射,對輸入數(shù)據(jù)進(jìn)行重映射(因此允許多次使用該表),并將輸入映射和查詢表的輸出映射的不可預(yù)測情況進(jìn)行結(jié)合。當(dāng)修正S函數(shù)查詢表(94)時(shí),在這里使用了重映射方法,不過必須緊記S函數(shù)的輸出位應(yīng)當(dāng)與輸入位無關(guān)。在使用之前,我們從所有其它的映射中為每一個(gè)S函數(shù)的輸入和輸出位隨機(jī)地并獨(dú)立地選取兩個(gè)映射(96),用于每個(gè)可能的輸入(在本例中由計(jì)數(shù)器97產(chǎn)生)。S函數(shù)表的替換條目被寫入(98)。之后,對經(jīng)映射的輸入數(shù)據(jù)執(zhí)行重映射,利用寫入了映射的S函數(shù)查詢表,并且選取的輸出映射與輸入映射一塊傳送,并用于添加的不可預(yù)知性,盡管可能執(zhí)行簡化。S函數(shù)查詢表被存儲(chǔ)在硬件寄存器中(全部寄存器寄存位的總和將是2048位以實(shí)現(xiàn)八個(gè)S函數(shù))或RAM中。存儲(chǔ)在該存儲(chǔ)器中的值必須是從應(yīng)用映射預(yù)先計(jì)算好的,從某種意義上講,這可以保證對2nd階DPA攻擊的所需的抵御。每個(gè)合成的映射后輸入值被用于對寄存器文件編址并且映射后的值被儲(chǔ)存于選定的四個(gè)寄存器位。
為了數(shù)據(jù)展開而引入的隨機(jī)數(shù)據(jù)位(如修正92中的95)通常費(fèi)用昂貴。在這種情況下(假設(shè)S函數(shù)輸出映射是無關(guān)的),則因?yàn)槊看味际欠蔷€性相關(guān)的復(fù)制結(jié)果作為異或操作的輸入,因此可以省去。由于多個(gè)密鑰為復(fù)制結(jié)果,因此,刷新的S函數(shù)輸出映射需要確保這一非相關(guān)性。還要考慮的是每個(gè)密鑰位被使用差不多平均14次。
用于每一個(gè)DES循環(huán)(每次加密法應(yīng)用有16個(gè)循環(huán))的新的一組S函數(shù)表的計(jì)算包括對應(yīng)于每個(gè)輸出位獲取兩個(gè)隨機(jī)位(每個(gè)循環(huán)有32個(gè)),這是非常浪費(fèi)的。在硬件中,有可能實(shí)現(xiàn)對應(yīng)加密的每個(gè)循環(huán)重新計(jì)算S函數(shù)表。由于這項(xiàng)支出,一個(gè)典型的執(zhí)行程序可以不變更地重復(fù)使用這些查詢表,以進(jìn)行不止一個(gè)的查詢,并且甚至可能同樣地進(jìn)行不止一個(gè)的加密算法的調(diào)用。這就違反了前面的在不同的循環(huán)中輸出數(shù)據(jù)位的輸出映射之間非線性相關(guān)的假設(shè),并且必須注意確定,這在什么情況下會(huì)降低可行的DPA攻擊的最小階次。此外,旁生信號的強(qiáng)度與內(nèi)部數(shù)據(jù)位的使用次數(shù)有關(guān),并且在確定信號的泄漏是否足夠小時(shí)必須要考慮這一情況。在某些情況下,保持隨機(jī)地重映射是必要的,尤其是對一個(gè)密鑰位(它被多次使用)。另一個(gè)由這種簡化導(dǎo)致的限制是,一個(gè)S函數(shù)的一個(gè)數(shù)據(jù)位的輸入映射在更換查詢表內(nèi)容之前的每次使用中都是相同的。不對獨(dú)立數(shù)據(jù)位所使用的映射(包括密鑰)進(jìn)行約束,而是必須用可應(yīng)用于對S函數(shù)的輸入的一對映射來替換對該數(shù)據(jù)的映射。這應(yīng)當(dāng)分兩步完成(通過兩個(gè)獨(dú)立的異或操作),分別應(yīng)用兩個(gè)映射的組合(一個(gè)應(yīng)用于S函數(shù),一個(gè)應(yīng)用于數(shù)據(jù))。
對2nd階防御增加的復(fù)雜性,除了對修改后的中心密碼器外部的數(shù)據(jù)所使用的映射,總計(jì)為將近異或操作和用經(jīng)過可變映射的S函數(shù)輸入和輸出的三倍,包括隨機(jī)數(shù)據(jù)的使用。外表上,被應(yīng)用于其上的數(shù)據(jù)必須用映射后的數(shù)據(jù)和映射選擇數(shù)據(jù)替換,必須對密鑰執(zhí)行初始映射,接著,對其執(zhí)行遞增映射,并對其進(jìn)行存儲(chǔ),其中還存儲(chǔ)了附加映射數(shù)據(jù)。本例中,映射后數(shù)據(jù)的存儲(chǔ)需求增至三倍。輸出數(shù)據(jù),在這里是用于DES的一個(gè)密鑰,必須以這種形式儲(chǔ)存,以備將來使用,除了輸出位之間的輸出映射的相關(guān)性,以及由于可以利用一個(gè)刷新的映射選擇,通過對輸出執(zhí)行遞增映射,可以消除相對靜態(tài)的S函數(shù)映射。
值得注意的是,直到考慮了S函數(shù),具有映射選取數(shù)據(jù)的隱蔽數(shù)值的使用與多重“共享”-相當(dāng)于數(shù)據(jù)通過使用運(yùn)算法則被結(jié)合以確定原始數(shù)據(jù)-之間的區(qū)別表面上不是明顯的。特別是,對映射選取數(shù)據(jù)執(zhí)行的操作等于這一點(diǎn)對于那些對映射后數(shù)據(jù)執(zhí)行的操作是相似的。然而,對于S函數(shù)(和任何無關(guān)于或更復(fù)雜于映射操作的函數(shù)),可以看到應(yīng)用于映射選取數(shù)據(jù)的運(yùn)算與映射的選取有關(guān),并與算法的運(yùn)算間接相關(guān)。在對S函數(shù)的輸入輸出的映射過程中,映射選取數(shù)據(jù)的處理完全不同于加在由原始數(shù)據(jù)得來的“共享”上的相似操作。
優(yōu)點(diǎn)增加DPA攻擊階次的方法(本質(zhì)上是被觀測信號中被續(xù)被組合起來以得到原始數(shù)據(jù)的點(diǎn)的數(shù)量)。這就使得該攻擊更加煩瑣和復(fù)雜。
通過擴(kuò)展以前關(guān)于隱蔽所有(或至少是較多)的可能存在的映射以允許核心運(yùn)算保持不變的概念,使得攻擊者作業(yè)更加困難。出于經(jīng)濟(jì)的原因,使應(yīng)用于一個(gè)數(shù)據(jù)位的映射選取方法與另一個(gè)數(shù)據(jù)位的映射選取方法相關(guān)聯(lián),大量的可能存在的映射可以實(shí)現(xiàn)合理的簡化,而不會(huì)導(dǎo)致過多的數(shù)據(jù)泄漏。
進(jìn)一步地,從有噪聲的旁生信道監(jiān)測中提取原始數(shù)據(jù)所必須的監(jiān)測次數(shù)被充分地增加,比硬件屏蔽實(shí)現(xiàn)效果更加明顯,提供的硬件屏蔽足夠高。這一增加甚至可以有效應(yīng)用于高階DPA攻擊。
再進(jìn)一步,所需的數(shù)據(jù)存儲(chǔ)和處理沒有某些相關(guān)方案中增加的那么多。這些方案的一個(gè)例子是,每個(gè)數(shù)據(jù)位由一對數(shù)據(jù)位代表,第一個(gè)值是隨機(jī)選擇的并且當(dāng)?shù)谝晃皇橇銜r(shí)第二個(gè)是原始位,當(dāng)?shù)谝晃皇且粫r(shí)是它的布爾變換(二進(jìn)制“異或”)。
又進(jìn)一步,包含密碼組分的系統(tǒng)保持不受影響(例如,協(xié)議保持不變),雖然密碼選擇被最優(yōu)化以使本技術(shù)的使用容易實(shí)現(xiàn)。
更進(jìn)一步,這一技術(shù)可以應(yīng)用于對稱(具有單一、共用的密鑰)和不對稱(具有不同而相關(guān)的密鑰)密碼。
此外,本技術(shù)還可以應(yīng)用于與其它用于提高DPA防御能力的技術(shù)的結(jié)合體中,通過使用一個(gè)復(fù)雜的函數(shù)連續(xù)修正密鑰,在加密和解密中采取相同的形式。
權(quán)利要求
1.一種用來降低對數(shù)據(jù)進(jìn)行未授權(quán)訪問的風(fēng)險(xiǎn)的數(shù)據(jù)處理方法,該方法包括,以下列任何順序的一個(gè)或多個(gè)步驟(a)給處理器輸入第一保密數(shù)據(jù)組,包括可能存在的后續(xù)的這一步驟的重復(fù);(b)給該處理器提供一個(gè)不可預(yù)知數(shù)據(jù)源;(c)給該處理器提供一種方法,用于使用不可知數(shù)據(jù)選擇合適的映射;(d)給該處理器提供至少一種算法,用于將第一保密數(shù)據(jù)組映射成映射形式;(e)對第一保密數(shù)據(jù)組進(jìn)行初始映射,用于是通過使用不可預(yù)知地選擇的映射,將其以映射后的形式儲(chǔ)存;(f)修正算法執(zhí)行程序以對映射后的數(shù)據(jù)和包括不可預(yù)知數(shù)據(jù)的其它數(shù)據(jù)進(jìn)行運(yùn)算,以使得輸出是映射后數(shù)據(jù)和映射選擇,它對原始輸入數(shù)據(jù)運(yùn)算的原始算法的輸出與上述的輸出之間相關(guān)的可能性極?。?g)通過使用利用了不可預(yù)知信息的二級映射,從先前的數(shù)據(jù)映射改變?yōu)閼?yīng)用于任何數(shù)據(jù)的數(shù)據(jù)映射;(h)對輸入的數(shù)據(jù)進(jìn)行映射,以輸入給修正后的算法執(zhí)行程序;和(i)對從修正后的算法執(zhí)行程序輸出的數(shù)據(jù)進(jìn)行映射,以備進(jìn)一步使用。
2.如權(quán)利要求1所述的方法,其中步驟(a)的保密數(shù)據(jù)組是選自一個(gè)密鑰和/或一個(gè)隨機(jī)值。
3.如權(quán)利要求1或2中所述的方法,其中步驟(b)中的不可預(yù)知數(shù)據(jù)源選自一個(gè)硬件或一個(gè)偽隨機(jī)數(shù)發(fā)生器和/或所儲(chǔ)存的保密數(shù)據(jù)。
4.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中在步驟(g)中其映射發(fā)生改變的數(shù)據(jù)是存儲(chǔ)的、傳送來的或中間計(jì)算數(shù)據(jù)。
5.如上述任何一項(xiàng)權(quán)利要求所述的方法,包括將通過使用不可預(yù)知信息選取的二級映射施加于映射后數(shù)據(jù)和/或該數(shù)據(jù)的映射的步驟。
6.如上述任何一項(xiàng)權(quán)利要求所述的方法,包括對映射為存儲(chǔ)的初始數(shù)據(jù)的隱藏。
7.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中數(shù)據(jù)映射和/或二級數(shù)據(jù)映射表現(xiàn)為查詢表。
8.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中數(shù)據(jù)映射和/或二級映射表現(xiàn)為映射選擇數(shù)據(jù)或參數(shù)的一種算法。
9.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中映射后的數(shù)據(jù)和/或映射被傳送給一個(gè)遠(yuǎn)程單元。
10.如上述任何一項(xiàng)權(quán)利要求所述的方法,映射作為選取的一組映射被執(zhí)行,以致當(dāng)輸入操作對象通過使用該映射而被替代時(shí),通過使用來自輸入映射的映射原始輸出,從輸出結(jié)果中被恢復(fù)出來。
11.如權(quán)利要求10所述的方法,其中對于任何操作對象,所有輸入映射的集合可以從輸出映射中確定出來。
12.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中映射的選取是任意的,以致每個(gè)數(shù)據(jù)可以被映射成為由該映射選擇所確定的范圍內(nèi)的任意值。
13.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中原始算法的運(yùn)算是記為x+y≡z(mod m)的模-m加法,并且修正后的算法內(nèi)所使用的相應(yīng)運(yùn)算保持不變,可以使用的映射被記為xi≡aix+bi(mod m)、yi≡aiy+ci(mod m)和zi≡aiz+bi+ci(mod m),其中映射ai是與m互為質(zhì)數(shù),并且bi和ci是任意值,所以ai、bi和ci被限制在0到m-1的范圍之內(nèi)。
14.如權(quán)利要求13所述的方法,其中m具有m=2n的形式,所以對于相應(yīng)于ai的所有奇數(shù)值和bi的所有值的輸入x,有22n-1個(gè)有效的映射選擇,并且對于這些選擇中的每一個(gè),對于相應(yīng)于ci的所有值的輸出y,有2n個(gè)有效的映射選擇,其中ai、bi和ci被限制在0到m-1的范圍之內(nèi)。
15.如權(quán)利要求1-12中任何一項(xiàng)所述的方法,其中相應(yīng)于記為xy≡z(mod m)的模-m乘法的原始算法的運(yùn)算,與應(yīng)用于修正后的加密法的相應(yīng)運(yùn)算保持不變,可以使用的映射被記為xi≡bixai(mod m)、yi≡ciyai(mod m)和zi≡bicizai(mod m),其中映射ai是與Φ(m)(m的歐拉Φ函數(shù))互為質(zhì)數(shù)的任意值,并且bi和ci是與m互為質(zhì)數(shù)的任意值。
16.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中映射包括兩個(gè)n維向量在Z2域上的加法。
17.如權(quán)利要求16所述的方法,其中應(yīng)用于至少一個(gè)向量的映射具有xi≡Aix+bi的形式(這里表示表示一個(gè)向量而大寫表示一個(gè)矩陣),其中Ai是具有逆矩陣的矩陣 中的任何一個(gè),其中bi是2n個(gè)值中的任意值。
18.如權(quán)利要求17所述的方法,包括Ai和/或bi的確定的、受限制的或隨機(jī)的選擇機(jī)構(gòu),其中矩陣Ai包括單位矩陣和向量的位置換。
19.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中的算法包括一元算子的使用。
20.如權(quán)利要求19所述的方法,其中算子被修正為幾乎允許在算子的輸入輸出路徑上執(zhí)行任意的映射。
21.一種處理數(shù)據(jù)以降低對數(shù)據(jù)的未授權(quán)訪問的風(fēng)險(xiǎn)的方法,該方法包括通過數(shù)據(jù)隱蔽,這是通過改變對某些或所有被處理的數(shù)據(jù)的映射,以便將其映射為用于計(jì)算和/或存儲(chǔ)的一種映射形式而實(shí)現(xiàn)的。
22.一種處理數(shù)據(jù)以降低或減弱對數(shù)據(jù)的未授權(quán)訪問的風(fēng)險(xiǎn)的計(jì)算機(jī)系統(tǒng)或算法,該系統(tǒng)包括以下一個(gè)或多個(gè)步驟(a)一個(gè)處理器,用于利用由該處理器使用的第一密鑰,處理第一數(shù)據(jù)組;(b)使該處理器至少具有一種用于將第一數(shù)據(jù)組和密鑰中的至少一個(gè)映射為映射后形式的算法;(c)一個(gè)存儲(chǔ)裝置,用于以映射形式存儲(chǔ)第一數(shù)據(jù)組和密鑰中的至少一個(gè);(d)修正算法執(zhí)行程序,以對映射后的數(shù)據(jù)進(jìn)行運(yùn)算;(e)通過使用二次映射,周期性地從在先的數(shù)據(jù)映射改變數(shù)據(jù)映射;(f)對輸入數(shù)據(jù)進(jìn)行映射,以輸入給修正后的算法執(zhí)行程序;和(g)映射從修正后的算法輸出的數(shù)據(jù),以備進(jìn)一步使用。
23.如權(quán)利要求22所述的系統(tǒng)或算法,進(jìn)一步包括數(shù)據(jù)輸入裝置和數(shù)據(jù)輸出裝置。
24.如權(quán)利要求22或23所述的系統(tǒng)或算法,進(jìn)一步包括通訊裝置,以與遠(yuǎn)程計(jì)算機(jī)或終端進(jìn)行通訊。
25.如上述任何一項(xiàng)權(quán)利要求所述的方法,其中映射選取方法通過任意方法被確定,包括確定使用可預(yù)知或不可預(yù)知信息、具有在可能的或有效的選擇方法上的均勻和不均勻可能性,并具有應(yīng)用于可用于任何前提的選取方法的范圍的限制的方法。
全文摘要
本發(fā)明提供一種處理和存儲(chǔ)數(shù)據(jù)的方法以降低實(shí)現(xiàn)未經(jīng)授權(quán)的數(shù)據(jù)訪問的風(fēng)險(xiǎn),特別是通過對旁生信道信號的監(jiān)測進(jìn)行的未授權(quán)數(shù)據(jù)訪問。該方法包括算法設(shè)計(jì)的各個(gè)步驟,尤其是加密法,為了從該技術(shù)獲得最大收益,對算法的執(zhí)行程序進(jìn)行修正以對經(jīng)映射后的數(shù)據(jù)進(jìn)行操作,最初的數(shù)據(jù)的映射,尤其是密鑰,被儲(chǔ)存,通過使用二次映射從先前的數(shù)據(jù)映射改變數(shù)據(jù)映射,對輸入數(shù)據(jù)進(jìn)行映射以作為修正后的算法執(zhí)行程序的輸入,對從修正后的算法輸出的數(shù)據(jù)進(jìn)行映射以備進(jìn)一步使用。該方法使原始數(shù)據(jù)和對這些數(shù)據(jù)進(jìn)行的映射的保密性得到提高。數(shù)據(jù)映射和二次數(shù)據(jù)映射可以是查詢表、具有映射選擇數(shù)據(jù)的算法或其它類似的形式。該數(shù)據(jù)映射可以作為級聯(lián)映射被執(zhí)行,以進(jìn)一步減小未授權(quán)訪問的風(fēng)險(xiǎn)。
文檔編號G06F21/55GK1413398SQ00817503
公開日2003年4月23日 申請日期2000年10月19日 優(yōu)先權(quán)日1999年10月25日
發(fā)明者曼弗雷德·馮維利希 申請人:塞弗曼克斯顧問有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
陕西省| 安远县| 包头市| 左云县| 龙口市| 娱乐| 闻喜县| 镇平县| 金华市| 新沂市| 青岛市| 土默特右旗| 和林格尔县| 忻城县| 濉溪县| 文安县| 汤原县| 越西县| 巍山| 德庆县| 鄂尔多斯市| 德保县| 新巴尔虎右旗| 宾阳县| 正阳县| 明光市| 尚志市| 马鞍山市| 孝感市| 怀柔区| 肃南| 阳东县| 旬阳县| 江永县| 武邑县| 龙口市| 遂昌县| 勃利县| 册亨县| 河源市| 科尔|