專利名稱:數(shù)據(jù)處理設(shè)備以及操作所述設(shè)備的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及操作一個具有集成電路的數(shù)據(jù)處理設(shè)備的方法,特別是操作一個芯片卡或智能卡的方法,所述集成電路包括一個中央處理單元(CPU)和一個或者多個協(xié)處理器,其中,該集成電路執(zhí)行密碼操作,其在權(quán)利要求1的前序部分定義。本發(fā)明還涉及一個具有集成電路的數(shù)據(jù)處理設(shè)備,特別是芯片卡或智能卡,所述集成電路包括一個中央處理單元(CPU)和一個或者多個協(xié)處理器,其在權(quán)利要求10的前序部分定義。
在許多具有集成電路的數(shù)據(jù)處理設(shè)備中,密碼操作例如用于保護(hù)這些設(shè)備的運(yùn)行或保護(hù)存儲在該設(shè)備中的數(shù)據(jù)。為此目的所需要的計算操作由標(biāo)準(zhǔn)處理單元(CPU)和專用密碼處理單元(協(xié)處理器)執(zhí)行。典型的例子是芯片卡或IC卡,諸如智能卡。數(shù)據(jù)或者在這方面所使用的中間結(jié)果通常是與安全相關(guān)的信息,諸如密碼鍵字或操作數(shù)。
在由集成電路執(zhí)行的處理操作中,例如為計算密碼算法,在操作數(shù)和中間結(jié)果之間執(zhí)行邏輯組合。取決于使用的技術(shù),這些運(yùn)算,特別是給空的或者先前刪除的存儲器或寄存器加載數(shù)據(jù),會導(dǎo)致數(shù)據(jù)處理設(shè)備較高的電流消耗。在諸如CMOS技術(shù)的互補(bǔ)邏輯電路中,較高的電流消耗發(fā)生在位存儲器單元的值改變時,亦即當(dāng)其值從“0”變?yōu)椤?”時。增加的功耗依賴于存儲器或寄存器中改變的位位置的數(shù)目。換句話說,加載先前刪除的寄存器所增加的電流消耗與寫入該空寄存器的操作數(shù)的哈明權(quán)重(其值為“1”的位數(shù))成正比。通過相應(yīng)分析這一電流變化有可能提取有關(guān)計算操作的信息,使得能夠成功地進(jìn)行密碼分析秘密的操作數(shù),諸如密碼鍵字。通過執(zhí)行數(shù)據(jù)處理設(shè)備內(nèi)的多個電流測量,能夠例如以非常小的信號變化抽取足夠信息。另一方面,多個電流測量能使一個或許需要的扣除成為可能。這一類密碼分析也稱為“差分功率分析(Differential Power Analysis)”,通過該種分析,局外人可以在未授權(quán)的情況下成功地執(zhí)行密碼操作、操作數(shù)和數(shù)據(jù)的密碼分析,只需通過觀察數(shù)據(jù)處理設(shè)備的電流消耗中的變化即可。這樣,“差分功率分析”提供在其純粹功能外附帶獲取集成電路內(nèi)部信息的可能性。
使用上述智能卡的一個典型領(lǐng)域例如是使用智能卡作為安全信息存儲器的應(yīng)用。密碼操作能安全地訪問這些應(yīng)用,在于智能卡獨(dú)立地執(zhí)行為驗(yàn)證目的的加密運(yùn)算。這一點(diǎn)只有通過使用由適合的軟件控制的特殊的智能卡控制器(微控制器)才可能。在智能卡控制器和智能卡終端之間的通信通道借助密碼方法直接保護(hù),所述密碼方法的安全等級基本依賴于所用的密碼算法。
為能夠偽造對智能卡的驗(yàn)證過程,必須能夠通過復(fù)制模擬驗(yàn)證協(xié)議。在安全協(xié)議下,這只有通過分析存儲在智能卡上的秘密的密碼鍵字才可能。
因?yàn)橹悄芸刂破魇强芍貜?fù)操作的機(jī)器,因此通過分析在操作期間智能卡的間接輻射,例如通過使用上述差分功率分析測量電流消耗的時間變化,可以決定智能卡控制器中的內(nèi)部處理器,并最終可以發(fā)現(xiàn)秘密鍵字。然后分析為一個智能卡控制電路的相等程序序列的可重復(fù)的確定性的電流曲線。
US 4,813,024公開一種存儲和處理秘密數(shù)據(jù)的集成電路,其中存儲器包括一個模擬存儲器單元,其具有和迄今未被編程的存儲器單元相同的電流消耗。從而只為存儲器單元消除了電流和電壓波動,而并未為處理該數(shù)據(jù)消除電流和電壓波動。
本發(fā)明的一個目的是提供一種改進(jìn)的方法和一種改進(jìn)的上述類型的數(shù)據(jù)處理設(shè)備,它消除了上述缺點(diǎn),并盡可能使差分功率分析復(fù)雜化。
這一目的通過在權(quán)利要求1中定義的上述類型的方法和在權(quán)利要求10中定義的上述類型的數(shù)據(jù)處理設(shè)備解決。
根據(jù)本發(fā)明,在上述類型的方法中,至少兩個處理器,CPU和協(xié)處理器,在執(zhí)行集成電路中的密碼操作時同時和并行地執(zhí)行密碼操作。
其優(yōu)點(diǎn)是,在操作時,數(shù)據(jù)處理設(shè)備的電流消耗從在密碼操作期間至少兩個并行操作的處理器的每一電流消耗求和得出,使得單個電流變化不再可重構(gòu)造。從而不再能成功地執(zhí)行差分功率分析。
本方法另外的實(shí)施例的優(yōu)點(diǎn)在權(quán)利要求2到9中定義。
在一個優(yōu)選實(shí)施例中,只有一個處理器(CPU或協(xié)處理器)的密碼操作是有用的操作,所有其它的密碼操作都是虛操作(dummyoperation)其結(jié)果被拒絕,而隨意選擇哪一個處理器,是CPU還是協(xié)處理器,執(zhí)行有用操作是隨機(jī)控制的。
在另一個可選的優(yōu)選的實(shí)施例中,密碼操作在電流消耗的意義上分為兩個相互互補(bǔ)的操作。當(dāng)兩個相同的協(xié)處理器同時執(zhí)行該互補(bǔ)密碼操作時,把電流變化也互補(bǔ)地加上,使得DPA不再能被成功執(zhí)行或者必須更精心制作。
為對在差分功率分析中所用的電流曲線進(jìn)行非常好的加密,以及為補(bǔ)償在相同構(gòu)造的協(xié)處理器內(nèi)可能的不對稱,把密碼操作分成兩個子操作。選擇哪一個協(xié)處理器互補(bǔ)地或非互補(bǔ)地執(zhí)行哪一個操作是隨機(jī)控制的。
在另一個可選的實(shí)施例中,密碼操作分成至少兩個子操作,由處理器(CPU和協(xié)處理器)同時和并行地執(zhí)行該兩個子操作,同時隨后把相應(yīng)子結(jié)果組合為總密碼操作的一個總結(jié)果。另外可選,分割密碼操作為子操作是隨機(jī)控制的。例如,子操作是按照DES(數(shù)據(jù)加密標(biāo)準(zhǔn))的一種加密的一部分。
在根據(jù)本發(fā)明的數(shù)據(jù)處理設(shè)備中,集成電路包括一個控制單元,其以下述方式控制處理器(CPU和協(xié)處理器)即在密碼操作的場合,至少兩個處理器同時和并行地執(zhí)行該密碼操作。
其優(yōu)點(diǎn)是,數(shù)據(jù)處理設(shè)備的電流消耗從在密碼操作期間至少兩個并行操作的處理器的相關(guān)電流消耗求和得出,使得單個電流變化不再可重構(gòu)造。因此不再能成功執(zhí)行差分功率分析。
該數(shù)據(jù)處理設(shè)備的另外優(yōu)選的實(shí)施例在權(quán)利要求11到14中定義。
在一個優(yōu)選的實(shí)施例中,控制單元包括一個分割器,它把密碼操作分割為至少兩個子操作,并為同時處理而將其提供給該集成電路的兩個分開的處理器,CPU和協(xié)處理器,控制單元另外包括一個重組合器,其重組合由處理器同時執(zhí)行的子操作的每一子結(jié)果。
為防止在密碼操作期間成功分析電流消耗曲線,以下述方式形成分割器,即至少一個子操作是虛操作,和重組合器以這樣一種方式形成,即它拒絕曾執(zhí)行虛操作的處理器的有關(guān)結(jié)果。
通過使集成電路另外包括一個隨機(jī)發(fā)生器,該隨機(jī)發(fā)生器以隨機(jī)控制的方式連接到分割器,獲得電流消耗曲線的一個非常好的加密。
參考下面說明的實(shí)施例,本發(fā)明的這些以及其它方面將十分明顯并且得以說明。
附圖
中唯一的附圖是根據(jù)本發(fā)明的數(shù)據(jù)處理裝置的一部分集成電路的方框圖。
唯一的附圖表示一個數(shù)據(jù)處理設(shè)備的一部分集成電路(未進(jìn)一步表示),該數(shù)據(jù)處理設(shè)備例如是一個智能卡或芯片卡。所述集成電路包括一個中央處理單元(CPU)或一個協(xié)處理器A10、一個協(xié)處理器B12、一個數(shù)據(jù)輸入14和一個數(shù)據(jù)輸出16。在由該集成電路執(zhí)行一個密碼操作的情況下,一個分割器18安排在數(shù)據(jù)輸入14和CPU或者協(xié)處理器A10或協(xié)處理器B12之間,分割該操作為第一和第二子操作,其形式為第一數(shù)據(jù)部分20和第二數(shù)據(jù)部分22。第一數(shù)據(jù)部分20施加在CPU或者協(xié)處理器A10上,而第二數(shù)據(jù)部分22施加在協(xié)處理器B12上,由借助預(yù)定密碼操作進(jìn)行處理。分割器18還有一個隨機(jī)輸入24,通過它隨機(jī)控制分割成數(shù)據(jù)部分20、22。
CPU或者協(xié)處理器A10和協(xié)處理器B12同時和并行地執(zhí)行密碼操作。從而使相應(yīng)電流消耗曲線(相對于時間的電流消耗振幅)彼此疊加,使得各個設(shè)備10、12的各個曲線和在處理器10、12中分開執(zhí)行的各個處理不再能被分析。
第一結(jié)果26來自CPU或者協(xié)處理器A10,第二結(jié)果28來自協(xié)處理器B12,它們在重組合器30中重新組合成一個總結(jié)果,并施加在數(shù)據(jù)輸出16上。分割器18通過連接32通知重組合器30以什么方式重組合子結(jié)果26、28。這是必需的,因?yàn)榉指钇?8的分割總是由于隨機(jī)輸入24而以隨機(jī)不同的方式執(zhí)行。
箭頭或時間軸34表示相對于時間通過按照本發(fā)明的設(shè)備的數(shù)據(jù)流。數(shù)據(jù)到達(dá)數(shù)據(jù)輸入14,在附圖中在該設(shè)備的左側(cè),通過兩條平行的數(shù)據(jù)路徑20、22到達(dá)處理器10、12,進(jìn)一步在處理器10、12中處理,并經(jīng)由路徑26、28重新組合,之后,它們通過數(shù)據(jù)輸出16在圖的右側(cè)離開該設(shè)備。在數(shù)據(jù)輸入14一側(cè),這些數(shù)據(jù)包括例如密碼鍵字或?yàn)轵?yàn)證目的遞交給處理器10、12中的密碼操作的操作數(shù),同時只當(dāng)一個預(yù)定結(jié)果到達(dá)數(shù)據(jù)輸出16時才認(rèn)為一個驗(yàn)證是成功或肯定的。
為加密在密碼操作期間電流消耗的時序波動,該種電流消耗能夠允許導(dǎo)出密碼操作或在差分功率分析中的正確的密碼鍵字,使用由分割器18和重組合器30形成的控制單元以下述方式控制處理器,即兩個處理器10、12同時和并行地執(zhí)行密碼操作,使得它們的電流消耗曲線彼此疊加,不再能夠被單獨(dú)分析。換句話說,不再可能分開總電流的外部可測量的時間變化。
密鑰被分割成例如兩個在處理器10、12中受單獨(dú)密碼操作的數(shù)據(jù)部分20,22,并將各個結(jié)果重新組合。另外可選的方案為,在兩個處理器10、12中執(zhí)行完全同樣的密碼操作,但是只有一個處理器10或12例如CPU或協(xié)處理器A10接收正確的鍵字,而其它處理器,例如協(xié)處理器B12接收錯誤的鍵字。分割器18通過連接32通知重組合器30它必須拒絕第二結(jié)果29而應(yīng)該只把第一結(jié)果26從CPU或協(xié)處理器A10傳遞到數(shù)據(jù)輸出16。當(dāng)施加到協(xié)處理器B12的錯誤鍵字是施加到CPU或協(xié)處理器A10的正確鍵字的補(bǔ)時,于是在執(zhí)行密碼操作時在兩個處理器10、12中得到使差分功率分析實(shí)際不可能的互補(bǔ)電流消耗值。
以下述方式執(zhí)行分割密碼操作到兩個處理器10、12,亦即使單一電路部分10、12的密碼操作的典型電流消耗特征在沒有并行操作另一電路部分10、12亦即CPU或協(xié)處理器A10或協(xié)處理器B12的話永遠(yuǎn)不可見。
控制單元18、30執(zhí)行分割成部分的操作,例如在于以隨機(jī)控制方式?jīng)Q定哪一個電路部分10、12執(zhí)行相關(guān)的密碼操作。此刻不相關(guān)的電路部分10、12與之并行地執(zhí)行一個適當(dāng)?shù)拿艽a操作(虛操作),其表示為在電流特征上完全等價但對總計算是必需的。
DES(數(shù)據(jù)加密標(biāo)準(zhǔn))加密的部分例如連續(xù)交換,或者只有左或右的部分加密在兩個電路部分10、12內(nèi)僅部分地以隨機(jī)選擇循環(huán)交換。
另外可選的方案為當(dāng)計算三重DES(多級加密)時在兩個電路部分10和12之間隨機(jī)分布有關(guān)的DES操作,使得永遠(yuǎn)不能預(yù)測哪一個電路部分10或12在執(zhí)行有關(guān)密碼操作的過程中。在兩個電路部分10、12的控制中,應(yīng)該注意,它們典型的頻率譜應(yīng)該至少部分相同,使得兩電流消耗曲線的疊加不能通過富里葉變換在頻率空間內(nèi)分開。
權(quán)利要求
1.操作一個具有集成電路的數(shù)據(jù)處理設(shè)備,特別是芯片卡或智能卡的方法,所述集成電路包括一個中央處理單元(CPU)和一個或者多個協(xié)處理器,其中,該集成電路執(zhí)行密碼操作,其特征在于,在執(zhí)行集成電路中的密碼操作時至少兩個處理器,CPU和協(xié)處理器,同時和并行地執(zhí)行該密碼操作。
2.如權(quán)利要求1所述方法,其特征在于,只有一個處理器,CPU或協(xié)處理器,的密碼操作是有用的操作,所有其它密碼操作都是虛操作,其結(jié)果被拒絕。
3.如權(quán)利要求2所述方法,其特征在于,隨機(jī)控制選擇哪一個處理器,CPU或協(xié)處理器,執(zhí)行有用操作。
4.如前述權(quán)利要求中任何一個權(quán)利要求所述方法,其特征在于,密碼操作分割為至少兩個子操作,和至少兩個處理器并行和同時執(zhí)行該子操作。
5.如權(quán)利要求4所述方法,其特征在于,在電流消耗的意義上,一個密碼操作分割為兩個互補(bǔ)的操作。
6.如權(quán)利要求5所述方法,其特征在于,隨機(jī)控制選擇哪一個處理器執(zhí)行互補(bǔ)操作或非互補(bǔ)操作。
7.如權(quán)利要求1所述方法,其特征在于,密碼操作分割為至少兩個子操作,由處理器,CPU和協(xié)處理器,同時和并行地執(zhí)行該子操作,而隨后組合相應(yīng)子結(jié)果為總密碼操作的一個總結(jié)果。
8.如權(quán)利要求7所述方法,其特征在于,隨機(jī)控制分割所述密碼操作為子操作。
9.如權(quán)利要求7或8所述方法,其特征在于,所述子操作是根據(jù)DES(數(shù)據(jù)加密標(biāo)準(zhǔn))的加密的部分。
10.一種具有集成電路的特別是用于執(zhí)行前述權(quán)利要求中任何一個權(quán)利要求的方法的數(shù)據(jù)處理設(shè)備,特別是芯片卡或智能卡,所述集成電路包括一個中央處理單元(CPU)(10)和一個或者多個協(xié)處理器(12),其特征在于,所述集成電路包括一個控制單元(18,30),其這樣控制處理器,CPU(10)和協(xié)處理器(12),使得在密碼操作的情況下,至少兩個處理器同時和并行地執(zhí)行該密碼操作。
11.如權(quán)利要求10所述數(shù)據(jù)處理設(shè)備,其特征在于,控制單元包括一個分割器(18),它把一個密碼操作分割成至少兩個子操作(20,22),并且為同時處理而把它們提供給集成電路的兩個單獨(dú)的處理器,CPU(10)和協(xié)處理器(12)。
12.如權(quán)利要求11所述數(shù)據(jù)處理設(shè)備,其特征在于,控制單元另外包括一個重組合器(30),它重新組合由處理器(10,12)同時執(zhí)行的子操作(20,22)的每一個子結(jié)果(26,28)。
13.如權(quán)利要求12所述數(shù)據(jù)處理設(shè)備,其特征在于,所述分割器(18)這樣形成,使得至少一個子操作(20,22)是虛操作,和所述重組合器(30)這樣形成,使得它拒絕已執(zhí)行一個虛操作的處理器(10,12)的相關(guān)結(jié)果(26,28)。
14.如權(quán)利要求11到13中任何一個權(quán)利要求所述數(shù)據(jù)處理設(shè)備,其特征在于,所述集成電路另外包括一個隨機(jī)發(fā)生器(24),其連接到分割器(18)上,該連接方式使得其以隨機(jī)控制的方式而工作。
全文摘要
本發(fā)明涉及一種具有集成電路的數(shù)據(jù)處理設(shè)備,特別是芯片卡或智能卡,以及一種操作該種設(shè)備的方法,所述集成電路包括一個中央處理單元(CPU)(10)和一個或者多個協(xié)處理器(12)。所述集成電路包括一個控制單元(18,30),其這樣控制處理器,CPU(10)和協(xié)處理器(12),使得在密碼操作的情況下,至少兩個處理器同時和并行地執(zhí)行該密碼操作。
文檔編號G06F21/75GK1304116SQ0110124
公開日2001年7月18日 申請日期2001年1月4日 優(yōu)先權(quán)日2000年1月8日
發(fā)明者T·維勒, W·哈斯 申請人:皇家菲利浦電子有限公司