專利名稱:在使用密鑰密碼學(xué)算法的電子元件中的防范方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在使用密鑰的電子元件中的防范方法。它們被用于對(duì)服務(wù)和數(shù)據(jù)的訪問(wèn)被嚴(yán)格控制的情況下。這種元件具有基于微處理器和存儲(chǔ)器而形成的體系結(jié)構(gòu),包括含有密鑰的程序存儲(chǔ)器。
這些元件尤其被用于某些用途的智能卡中。這些用途例如涉及訪問(wèn)某個(gè)數(shù)據(jù)庫(kù),涉及銀行業(yè)務(wù),遠(yuǎn)程支付業(yè)務(wù),例如支付電視費(fèi)用,購(gòu)買汽油或者高速公路收費(fèi)。
因此這些元件或卡使用密鑰密碼學(xué)算法,其中最熟悉的是DES算法(在英國(guó)和美國(guó)文獻(xiàn)中的常用的數(shù)據(jù)加密標(biāo)準(zhǔn))。還有其它的密鑰算法,例如RCS算法或COMP128算法。當(dāng)然并不限于這些算法。
總而言之并且簡(jiǎn)要地說(shuō),這些算法的功能是由主系統(tǒng)(服務(wù)器,銀行分配器等)施加于輸入(卡)的信息和在卡中包含的密鑰計(jì)算加密的信息,并向主系統(tǒng)返回所述加密的信息,所述加密的信息例如能夠使主系統(tǒng)鑒別元件或卡,交換數(shù)據(jù)等等。密鑰密碼學(xué)算法的特征是公知的即進(jìn)行計(jì)算和利用參數(shù)。唯一未知的是包含在程序存儲(chǔ)器中的密鑰。這些密碼學(xué)算法的所有的安全性都和在所述卡中包含的這個(gè)密鑰有關(guān),所述密鑰對(duì)于所述卡的外部世界是未知的。這個(gè)密鑰不能從作為輸入施加的已知信息和返回的加密的信息唯一地導(dǎo)出。
然而,當(dāng)卡的微處理器運(yùn)行密碼學(xué)算法以便計(jì)算加密的信息時(shí),根據(jù)電流消耗和微分電流消耗分析,顯然,外部破譯使得存心不良的第三方能夠發(fā)現(xiàn)在所述卡中包含的密鑰。這些破譯被稱為DPA破譯,這是英語(yǔ)的“Differential Power Analysis”的首字母簡(jiǎn)略詞。
所述DPA破譯的原理基于這樣的事實(shí),即執(zhí)行指令的微處理器的電流消耗按照正被處理的數(shù)據(jù)而改變。
尤其是,當(dāng)被微處理器執(zhí)行的指令需要逐位地處理數(shù)據(jù)時(shí),根據(jù)被處理的位是1或者是0而有兩種不同的電流曲線。典型地說(shuō),如果微處理器處理0,在執(zhí)行時(shí)具有第一消耗的電流幅值,如果微處理器處理1,則有和第一個(gè)電流幅值不同的第二消耗的電流幅值。
因而,DPA破譯利用在按照被處理的位的值執(zhí)行指令的期間在所述卡中電流消耗的差值。簡(jiǎn)單地說(shuō),進(jìn)行DPA破譯包括識(shí)別一個(gè)或多個(gè)運(yùn)行算法的特定的周期,所述算法包括執(zhí)行至少一個(gè)逐位地處理數(shù)據(jù)的指令;在所述周期期間,讀取電流消耗曲線的非常大的數(shù)N,每個(gè)不同的信息有一條應(yīng)用所述算法的曲線;對(duì)于每個(gè)曲線,假定一個(gè)子密鑰,即使得能夠進(jìn)行預(yù)測(cè)的至少密鑰的一部分,預(yù)測(cè)數(shù)據(jù)的一位所取的值;按照相應(yīng)的布爾選擇函數(shù)對(duì)曲線進(jìn)行分類;獲得預(yù)測(cè)是1的第一曲線包和預(yù)測(cè)是0的第二曲線包。通過(guò)在獲得的兩個(gè)曲線包之間進(jìn)行平均電流消耗的微分分析,獲得一個(gè)信息信號(hào)DPA(t)。如果子密鑰假定不正確,則實(shí)際上每個(gè)包包括的相應(yīng)于處理1的曲線的數(shù)量等于相應(yīng)于處理0的曲線的數(shù)量。因而兩個(gè)包在電流消耗上是等效的,因而信息信號(hào)基本上是0。如果子密鑰假定正確,則一個(gè)包實(shí)際上包括相應(yīng)于處理0的曲線,而另一個(gè)包實(shí)際上包括相應(yīng)于處理0的曲線;信息信號(hào)DPA(t)不等于0其中包括由微處理器進(jìn)行的位處理的峰值,根據(jù)所述的位進(jìn)行分類。根據(jù)微處理器正在處理0或者1,這些峰值具有相應(yīng)于由微處理器消耗的電流的差的值。因而,可以逐步地解出包含在電子元件中的全部密鑰或一部分密鑰。
具有許多這樣的密鑰算法,微處理器在執(zhí)行這些算法時(shí)必須在某個(gè)時(shí)刻逐位地處理數(shù)據(jù)。
尤其是,所述算法一般包括要求微處理器進(jìn)行這種處理的排列。通過(guò)分析在所述逐位處理執(zhí)行期間的電流消耗,便能夠求出至少被處理的數(shù)據(jù)項(xiàng)的一些位的值。知道這個(gè)數(shù)據(jù)項(xiàng)便可以提供關(guān)于在執(zhí)行加密算法期間獲得的中間結(jié)果的信息,這又至少使得能夠求出使用的密鑰的一些位。
本發(fā)明的目的在于通過(guò)對(duì)進(jìn)行逐位處理的數(shù)據(jù)提供防范措施,即通過(guò)加擾,使得在所述數(shù)據(jù)的處理期間的電流消耗的分析不會(huì)揭示關(guān)于所述數(shù)據(jù)的信息不論在DPA破譯中假定的子密鑰或密鑰如何,信息信號(hào)DPA(t)將總是0,從而保護(hù)這些數(shù)據(jù)。
如權(quán)利要求所述,本發(fā)明涉及在使用利用密鑰K的加密算法的電子元件中的防范方法。
按照本發(fā)明,所述防范方法用于對(duì)輸入數(shù)據(jù)項(xiàng)進(jìn)行的并且包括至少一個(gè)逐位處理的操作或一系列操作,所述方法包括首先提取和第一數(shù)據(jù)項(xiàng)的長(zhǎng)度相同的第一隨機(jī)數(shù)據(jù)項(xiàng),通過(guò)在第一隨機(jī)數(shù)據(jù)項(xiàng)和輸入數(shù)據(jù)項(xiàng)之間進(jìn)行異或運(yùn)算計(jì)算第二隨機(jī)數(shù)據(jù)項(xiàng),接著對(duì)第一隨機(jī)數(shù)據(jù)項(xiàng)和第二隨機(jī)數(shù)據(jù)項(xiàng)進(jìn)行操作或一系列操作。
用這種方式,所述的操作或一系列操作只處理隨機(jī)數(shù)據(jù)項(xiàng),因而不再能夠?qū)崿F(xiàn)DPA破譯。
為了求出相應(yīng)于對(duì)輸入數(shù)據(jù)項(xiàng)應(yīng)用一系列步驟的輸出數(shù)據(jù)項(xiàng),計(jì)算第一和第二隨機(jī)結(jié)果之間的異或運(yùn)算便足夠了。
在應(yīng)用這種防范方法的第一種方法中,操作或一系列操作涉及由要被加密的信息計(jì)算的數(shù)據(jù)項(xiàng)。
在應(yīng)用按照本發(fā)明的防范方法的第二方法中,這種方法被應(yīng)用于直接和密鑰有關(guān)的操作,在所述算法的每個(gè)循環(huán)中使用子密鑰。
在應(yīng)用按照本發(fā)明的防范方法的方法中,采取措施使得實(shí)現(xiàn)按照上述方法的第一個(gè)一系列步驟,使得獲得第一隨機(jī)子密鑰和第二隨機(jī)子密鑰。
在這種改型中,對(duì)于有關(guān)的循環(huán),代替計(jì)算真的子密鑰,使用這些隨機(jī)子密鑰,因此每個(gè)循環(huán)的真的子密鑰不再清楚地出現(xiàn),只處理隨機(jī)子密鑰。
下面參照附圖詳細(xì)說(shuō)明本發(fā)明的其它特征和優(yōu)點(diǎn),所述說(shuō)明只用于說(shuō)明本發(fā)明,而不用于限制本發(fā)明,其中
圖1和圖2是DES算法的第一和第二循環(huán)的詳細(xì)流程圖;圖3示意地說(shuō)明應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)逐位處理的操作的按照本發(fā)明的防范方法;圖4說(shuō)明在執(zhí)行DES算法時(shí)應(yīng)用按照本發(fā)明的防范方法的第一個(gè)方法;圖5示意地說(shuō)明將本發(fā)明的方法應(yīng)用于處理密鑰的DES算法的操作的第二方法;以及圖6說(shuō)明應(yīng)用相應(yīng)于圖5所示的圖的防范方法時(shí)的詳細(xì)流程圖;以及圖7說(shuō)明其中可以執(zhí)行按照本發(fā)明的防范方法的智能卡的方塊圖。
DES密鑰加密算法(下文簡(jiǎn)稱為DES或DES算法)包括16個(gè)計(jì)算循環(huán),如圖1和圖2的T1到T16所示。
DES從在輸入信息M上一個(gè)初始排列IP開始(圖1)。輸入信息M是一個(gè)64位字。在排列之后,獲得64位字,其被分成兩個(gè),從而形成第一循環(huán)(T1)的輸入?yún)?shù)L0和R0。L0是一個(gè)32位字d,含有字e的32個(gè)最高有效位。R0是32位字h,含有字e的32個(gè)最低有效位。
密鑰K是一個(gè)64位字q,其本身被排列并被壓縮,以便提供一個(gè)56位字r。
第一循環(huán)包括對(duì)參數(shù)R0進(jìn)行EXP PERM操作,包括擴(kuò)展和排列,以便提供作為輸出的48位字1。
所述字1在由XOR表示的異或操作中和參數(shù)K1組合,以便提供48位字b。通過(guò)移動(dòng)一個(gè)位置(圖1和圖2的SHIFT表示的操作),由字r獲得參數(shù)K1,其是一個(gè)48位字m,從而提供48位字p,對(duì)所述字p進(jìn)行包括排列和壓縮的操作(由COMP PERM表示的操作)。
字b被提供給由SBOX表示的操作,在其輸出端獲得32位字a。這個(gè)特定的操作包括提供從按照輸入數(shù)據(jù)項(xiàng)b的常數(shù)TCO的表上取的輸出數(shù)據(jù)a。
字a被進(jìn)行排列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。
其它的循環(huán)T2到T16以類似的方式進(jìn)行,只是移位操作例外,其按照所涉及的循環(huán)對(duì)一個(gè)或兩個(gè)位置進(jìn)行。
因而,每個(gè)循環(huán)Ti接收作為輸入的參數(shù)Li-1,Ri-1和r,并提供作為輸出的參數(shù)Li和Ri以及r用于后面的循環(huán)Ti+1。
在DES算法的末尾(圖4),由最后循環(huán)T16提供的參數(shù)L16和R16計(jì)算加密的信息。
所述加密的信息C的計(jì)算實(shí)際上包括下列操作-通過(guò)顛倒字L16和R16的位置并連結(jié)它們而形成64位字e’;-應(yīng)用排列IP-1,其和DES的開始相反,以便獲得形成加密的信息C的64位的字f’。
可以看出,這種算法包括許多逐位地處理數(shù)據(jù)的操作,例如排列操作。
按照本發(fā)明的防范方法,當(dāng)計(jì)算加密的信息的微處理器實(shí)行逐位的處理時(shí),應(yīng)用軟件防范方法。用這種方式,被應(yīng)用于電流消耗曲線的DPA破譯的統(tǒng)計(jì)處理和布爾選擇函數(shù)不再能夠提供任何信息;不管子密鑰被如何假定,信號(hào)DPA(t)保持為0。
因而按照本發(fā)明的軟件防范方法使由微處理器處理的每個(gè)位成為不可預(yù)測(cè)的。
圖3說(shuō)明這種防范方法的原理。
設(shè)輸入數(shù)據(jù)項(xiàng)是D。
設(shè)具有一個(gè)要對(duì)所述輸入數(shù)據(jù)項(xiàng)D進(jìn)行計(jì)算的操作OPN,其結(jié)果由OPN(D)表示。所述操作OPN需要由微處理器對(duì)輸入數(shù)據(jù)項(xiàng)D進(jìn)行逐位處理;例如進(jìn)行排列。
按照本發(fā)明,不對(duì)輸入數(shù)據(jù)項(xiàng)D實(shí)行操作OPN,以便計(jì)算操作的結(jié)果OPN(D),而是執(zhí)行下面不同的步驟-取一個(gè)隨機(jī)值作為第一隨機(jī)項(xiàng)U,其長(zhǎng)度和輸入數(shù)據(jù)項(xiàng)D的長(zhǎng)度相同(例如32位);-通過(guò)在輸入數(shù)據(jù)項(xiàng)和第一隨機(jī)數(shù)據(jù)項(xiàng)之間進(jìn)行異或運(yùn)算計(jì)算第二隨機(jī)數(shù)據(jù)項(xiàng)VV=D XOR U;-對(duì)第一隨機(jī)數(shù)據(jù)項(xiàng)U計(jì)算操作OPN,產(chǎn)生第一隨機(jī)結(jié)果OPN(U);-對(duì)第二隨機(jī)數(shù)據(jù)項(xiàng)V計(jì)算操作OPN,產(chǎn)生第二隨機(jī)結(jié)果OPN(V);-通過(guò)在第一和第二隨機(jī)結(jié)果之間實(shí)行異或運(yùn)算計(jì)算結(jié)果OPN(D)OPN(D)=OPN(U)XOR OPN(V)。
這種方法同樣能夠很好地適用于單一運(yùn)算或一系列運(yùn)算。
應(yīng)用按照本發(fā)明的防范方法的第一方法涉及對(duì)由應(yīng)用所述算法的信息(M)計(jì)算出的數(shù)據(jù)的運(yùn)算。在這種情況下,輸入數(shù)據(jù)項(xiàng)D由信息M進(jìn)行計(jì)算。
實(shí)際上,圖4示出了一個(gè)應(yīng)用算法DES的第一方法的例子,所述方法一方面應(yīng)用于操作EXP PERM,在另一方面,應(yīng)用于操作P PERM,這兩者都包括需要對(duì)輸入數(shù)據(jù)項(xiàng)進(jìn)行逐位處理的排列。
在該圖中,對(duì)這些操作應(yīng)用的防范方法由CM(EXPPERM)和CM(PPERM)表示。
按照本發(fā)明的軟件防范方法,包括使用隨機(jī)變量U進(jìn)行按照?qǐng)D3所示的計(jì)算序列的運(yùn)算CM(EXPPERM)和CM(P PERM),代替每個(gè)操作P PERM和EXP PERM。因?yàn)樗鏊惴ǖ拿總€(gè)循環(huán)包括運(yùn)算EXP PERM和運(yùn)算P PERM,所以這種防范方法可以應(yīng)用于DES的每個(gè)循環(huán)。
實(shí)驗(yàn)表明,只有頭3次循環(huán)和最后3次循環(huán)能夠受到DPA破譯。然后,要預(yù)測(cè)這些位是非常困難的,甚至是不可能的。
因而,按照本發(fā)明的防范方法需要較小的計(jì)算時(shí)間,其實(shí)施只包括進(jìn)行DES的頭3個(gè)和最后3個(gè)循環(huán)。
按照本發(fā)明的防范方法的各種不同的應(yīng)用涉及提取隨機(jī)值作為第一隨機(jī)數(shù)據(jù)項(xiàng)U。根據(jù)是否可得到大量的計(jì)算時(shí)間,每次可以提取一個(gè)新的隨機(jī)值,用于實(shí)施按照本發(fā)明的防范方法的每次運(yùn)算或一系列的運(yùn)算。
因而,在圖4中,對(duì)于運(yùn)算CM(EXP PERM),提取U1作為隨機(jī)數(shù)據(jù)項(xiàng)U的值,對(duì)于運(yùn)算CM(P PERM),提取另一個(gè)值U2作為隨機(jī)數(shù)據(jù)項(xiàng)U。
否則,可以對(duì)于所述算法的每個(gè)循環(huán)提取一個(gè)新的隨機(jī)值,或者在算法的開始提取一個(gè)隨機(jī)值。
按照本發(fā)明的防范方法的實(shí)施主要和所涉及的應(yīng)用有關(guān),和是否具有大量的可用于防范的附加時(shí)間有關(guān)。
圖5示出了按照本發(fā)明的防范方法的第二種應(yīng)用方式。其中更具體地涉及對(duì)密鑰K進(jìn)行的計(jì)算操作,以便提供在所述算法的循環(huán)中使用的每個(gè)子密鑰K1。在DES的例子中,這些操作是接著的KEY PERM,其在DES的開始被執(zhí)行,以及在每次循環(huán)執(zhí)行的SHIFT和COMP PERM。在這些操作期間,在某些時(shí)刻,微處理器單獨(dú)處理密鑰的位,因而具有對(duì)這些位進(jìn)行DPA破譯的可能性。
按照本發(fā)明的防范方法用于在進(jìn)行這些操作之前保護(hù)數(shù)據(jù)項(xiàng),在這種情況下所述數(shù)據(jù)項(xiàng)是密鑰,使得不再能夠通過(guò)DPA破譯獲得信息。
因而,如圖5示意地所示,提取第一隨機(jī)數(shù)據(jù)項(xiàng)Y的一個(gè)隨機(jī)值,其具有和密鑰K相同的長(zhǎng)度。通過(guò)在密鑰K和第一隨機(jī)數(shù)據(jù)項(xiàng)Y之間進(jìn)行異或運(yùn)算,計(jì)算具有相同長(zhǎng)度的第二隨機(jī)數(shù)據(jù)項(xiàng)Z;Z=K XOR Y。
在所示的例子中,操作序列包括接著的操作KEY PERM,SHIFT,COMP PERM。然后把這個(gè)操作序列相繼應(yīng)用于兩個(gè)隨機(jī)數(shù)據(jù)項(xiàng)Y和Z中的每一個(gè)。因而,由作為輸入被相繼提供的這兩個(gè)數(shù)據(jù)項(xiàng)Y和Z,在操作KEY PERM,SHIFT,COMP PERM的輸出分別獲得Y’,PiY’,KiY’或者Z’,PiZ’,KiZ’。
圖6所示是一個(gè)應(yīng)用DES的實(shí)際例子。
在DES中,只在開始執(zhí)行一次KEY PERM操作,而在每個(gè)循環(huán)中執(zhí)行SHIFT,COMP PERM操作。
此外,循環(huán)Ti的操作SHIFT的輸出作為下一個(gè)循環(huán)Ti+1的操作SHIFT的輸入(見(jiàn)圖1和圖2)。
為了應(yīng)用按照應(yīng)用所述DES算法的第二方式的防范方法,然后對(duì)隨機(jī)數(shù)據(jù)Y和Z應(yīng)用第一操作KEY PERM,這產(chǎn)生兩個(gè)中間隨機(jī)數(shù)據(jù)Y’和Z’。這兩個(gè)中間隨機(jī)數(shù)據(jù)相繼被提供給第一循環(huán)T1的操作SHIFT,產(chǎn)生兩個(gè)中間隨機(jī)數(shù)據(jù)P1Y’和P1Z’。這兩個(gè)隨機(jī)數(shù)據(jù)在一方面被存儲(chǔ)在工作存儲(chǔ)器中,用于下一個(gè)循環(huán)(第二循環(huán))的SHIFT操作,在另一方面被相繼提供給第一循環(huán)的操作EXP PERM,以便提供第一中間結(jié)果K1Y’和K1Z’。
在每個(gè)循環(huán)中都執(zhí)行這些步驟。因而,在每個(gè)循環(huán)Ti,獲得第一隨機(jī)結(jié)果KiY’=EXP PERM(SHIFT(Y’)),和第二隨機(jī)結(jié)果KiZ’=EXPPERM(SHIFT(Z’));并且中間隨機(jī)數(shù)據(jù)SHIFT(Y’)=PiY’和SHIFT(Z’)=PiZ’被存儲(chǔ)在工作存儲(chǔ)器中用于隨后的循環(huán)Ti+1。
然后,對(duì)于每個(gè)循環(huán)Ti,應(yīng)該能夠通過(guò)在兩個(gè)隨機(jī)結(jié)果KiY’和KiZ’之間進(jìn)行異或運(yùn)算,重新計(jì)算相應(yīng)于對(duì)密鑰K進(jìn)行的該循環(huán)的操作序列KEY PERM,SHIFT和COMP PERM的相應(yīng)的子密鑰KiKi=KiY’XORKiZ’。
不過(guò),最好如圖6所示,不再重新計(jì)算循環(huán)Ti的子密鑰Ki。應(yīng)用第一隨機(jī)結(jié)果KiY’代替與由排列擴(kuò)展操作EXP PERM數(shù)據(jù)項(xiàng)l進(jìn)行的異或操作XOR中的子密鑰Ki。獲得之間結(jié)果b’。
通過(guò)對(duì)這個(gè)中間結(jié)果b’和第二隨機(jī)結(jié)果KiZ’進(jìn)行異或操作,求得輸出數(shù)據(jù)項(xiàng)b=XOR(l,Ki)。然后在每個(gè)循環(huán)Ti執(zhí)行隨后的操作,以便從l計(jì)算參數(shù)bb’=1XOR KiY’,以及b=b’XOR KiZ’,如圖6的第一和第二循環(huán)所示。
用這種方式,在計(jì)算加密的信息時(shí),不再使用子密鑰本身,而使用“隨機(jī)的子密鑰”,此時(shí)在執(zhí)行加密算法期間或執(zhí)行加密算法之前,密鑰被保護(hù),因?yàn)镵iY’、KiZ’是隨機(jī)的,元件(或卡的)的外部世界不知道,在每新執(zhí)行一次加密算法時(shí),它們?nèi)菀妆桓淖儭?yīng)當(dāng)注意,在按照本發(fā)明的防范方法應(yīng)用于計(jì)算和使用子密鑰時(shí),隨機(jī)值只在對(duì)密鑰進(jìn)行操作之前,在開始執(zhí)行算法時(shí)被提取一次。
對(duì)密鑰應(yīng)用按照本發(fā)明的防范方法的所述第二方式可以有利地和利用所述防范方法正確地計(jì)算加密的信息的第一方式組合,這種組合使得所述防范方法尤其有效。
本發(fā)明應(yīng)用于DES密鑰密碼學(xué)算法,其例子在上面已經(jīng)進(jìn)行了說(shuō)明。本發(fā)明可以通用于任何密鑰密碼學(xué)算法,其中由微處理器執(zhí)行的某些操作需要逐位地處理數(shù)據(jù)。
在DES密鑰密碼學(xué)算法中使用按照本發(fā)明的防范方法的電子元件1如圖7所示,其包括微處理器OP,程序存儲(chǔ)器2和工作存儲(chǔ)器3。具有用于產(chǎn)生隨機(jī)值的裝置4,每當(dāng)執(zhí)行密碼學(xué)算法時(shí),所述裝置4則參考圖3和圖5所示的流程圖提供所需長(zhǎng)度的U與/或Y值(U為32位,Y為64位)。這種元件特別適用于智能卡5中,用于改進(jìn)其防篡改的能力。
權(quán)利要求
1.一種在使用由密鑰K對(duì)輸入信息(M)加密的加密算法的電子元件中用于防范的方法,其特征在于,執(zhí)行的操作或操作序列包括對(duì)輸入數(shù)據(jù)項(xiàng)(D)的逐位處理,以便提供輸出數(shù)據(jù)項(xiàng)(OPN(D)),包括以下步驟提取第一隨機(jī)數(shù)據(jù)項(xiàng)(U)的隨機(jī)值,其具有和輸入數(shù)據(jù)項(xiàng)(D)相同的長(zhǎng)度;通過(guò)在第一隨機(jī)數(shù)據(jù)項(xiàng)(U)和輸入數(shù)據(jù)項(xiàng)之間進(jìn)行異或運(yùn)算計(jì)算第二隨機(jī)數(shù)據(jù)項(xiàng)(V);接著由第一隨機(jī)數(shù)據(jù)項(xiàng)(U)和第二隨機(jī)數(shù)據(jù)項(xiàng)(V)執(zhí)行操作(OPN)或執(zhí)行一個(gè)操作序列,分別提供第一隨機(jī)結(jié)果(OPN(U))和第二隨機(jī)結(jié)果(OPN(V))。
2.如權(quán)利要求1所述的防范方法,其特征在于還包括下列步驟通過(guò)在第一和第二隨機(jī)結(jié)果之間進(jìn)行異或運(yùn)算計(jì)算輸出數(shù)據(jù)項(xiàng)(OPN(D))。
3.如權(quán)利要求1或2所述的防范方法,其特征在于其適用于和由輸入信息(M)計(jì)算的數(shù)據(jù)有關(guān)的操作(EXP PERM,P PERM)。
4.如前面任何一個(gè)權(quán)利要求所述的防范方法,其特征在于在所述操作或操作序列的每個(gè)新的執(zhí)行時(shí)提取新的隨機(jī)值(U)。
5.如權(quán)利要求1所述的防范方法,其特征在于其適用于對(duì)所述密鑰(K)進(jìn)行的操作或操作序列(KEY PERM,SHIFT,COMP PERM)。
6.如權(quán)利要求5所述的防范方法,所述密碼學(xué)算法包括多個(gè)計(jì)算循環(huán),并且在每個(gè)循環(huán)(Ti)包括對(duì)密鑰K進(jìn)行一系列操作,以便提供相應(yīng)的子密鑰(K1),所述方法的特征在于,其適用于所述操作序列,以便在每個(gè)循環(huán)提供第一隨機(jī)結(jié)果(KiY’)和第二隨機(jī)結(jié)果(KiZ’)。
7.如權(quán)利要求6所述的防范方法,每個(gè)循環(huán)(Ti)在子密鑰(Ki)和輸入數(shù)據(jù)項(xiàng)(1)之間進(jìn)行異或運(yùn)算,以便提供輸出數(shù)據(jù)項(xiàng)(b),其特征在于,這個(gè)操作被下列操作代替-計(jì)算所述輸入數(shù)據(jù)(1)和第一隨機(jī)結(jié)果(KiY’)之間的異或,從而提供中間結(jié)果(b’);-計(jì)算所述中間結(jié)果(b’)和所述第二隨機(jī)結(jié)果(KiZ’)之間的異或,從而提供所述的輸出數(shù)據(jù)項(xiàng)(b)。
8.如權(quán)利要求1,2,3,5,6和7任何一個(gè)所述的防范方法,其特征在于在所述密碼學(xué)算法的每個(gè)新的執(zhí)行,提取新的隨機(jī)值(U或Z)。
9.如權(quán)利要求3或4所述的防范方法,其特征在于其和按照權(quán)利要求5到8的任何一個(gè)所述的防范方法組合。
10.如前面任何一個(gè)權(quán)利要求所述的防范方法,其特征在于其適用于DES算法。
11.一種實(shí)施如前面任何一個(gè)權(quán)利要求所述的防范方法的電子安全元件,其特征在于其包括用于產(chǎn)生隨機(jī)值的裝置(4)。
12.一種智能卡,包括按照權(quán)利要求9所述的電子安全元件。
全文摘要
本發(fā)明涉及一種在使用由密鑰K對(duì)輸入信息(M)加密的加密算法的電子元件中用于防范的方法,其特征在于,執(zhí)行的操作OPN或操作序列包括對(duì)輸入信息(D)的逐位處理,以便提供輸出數(shù)據(jù)項(xiàng)(OPN(D)),包括以下步驟提取第一隨機(jī)信息(U)的隨機(jī)值,其具有和輸入信息(D)相同的長(zhǎng)度;通過(guò)在第一隨機(jī)信息(U)和輸入信息之間進(jìn)行異或運(yùn)算計(jì)算第二隨機(jī)信息(V);對(duì)第一輸入信息(U)和第二隨機(jī)信息(V)執(zhí)行操作(OPN)或執(zhí)行一個(gè)操作序列,分別提供第一隨機(jī)結(jié)果(OPN(U))和第二隨機(jī)結(jié)果(OPN(V))。
文檔編號(hào)G06F21/55GK1630999SQ00806348
公開日2005年6月22日 申請(qǐng)日期2000年1月20日 優(yōu)先權(quán)日1999年2月17日
發(fā)明者J·-S·科倫, N·費(fèi)伊特, O·伯努瓦 申請(qǐng)人:格姆普拉斯公司