微電路中的對抗措施方法、微電路和包括該微電路的智慧卡的製作方法
2023-05-03 00:26:26 1
專利名稱:微電路中的對抗措施方法、微電路和包括該微電路的智慧卡的製作方法
技術領域:
本發明涉及微電路中的對抗措施方法。
本發明還涉及實施該方法的微電路和具有這種微電路的智慧卡型的可攜式媒體。
應該注意可攜式器件如智慧卡的微電路,具有圍繞包括控制器和通過總線連接到存儲器的算術和邏輯單元(ALU)的處理器(或微處理器)所形成的結構,該存儲器包括含有例如敏感數據項或密碼術算法項(密鑰)的非易失的程序存儲器。該控制器管理輸入/輸出信號I/O(指令,地址,數據)以及算術和邏輯單元按控制器的命令對數據的進行算術操作。
用於智慧卡的這種微電路有一些應用,例如用於訪問某些資料庫,用於銀行,用於例如電視、汽油分配或公路通過費的遙控收費。
本發明尤其可用於媒體如智慧卡中敏感數據的保密。它涉及由該微電路的處理器操作的秘密數據,並且該數據易於通過連接該存儲器與處理器的總線傳送。
本發明可應用於秘密信息的保密,如智慧卡用戶的秘密代碼或在加密計算操作中使用的電子密鑰,以供加密和/或鑑別和/或信息的電子籤名之用。
本發明尤其可用於實施密鑰密碼術算法或所謂的公共密鑰算法的情況。這些算法用於對服務或數據的訪問嚴格受控的應用中。
在密鑰密碼術算法中可以引用DES(數據加密標準)算法。也有其他密鑰算法,像RC5算法或COMP128算法。當然這些並不是全部。
在公共密鑰密碼術算法中可以引用RSA(Rivest Shamir和Adelman),E1 Gamal,Schnorr,Fiat Shamir,或DSA或DSS。
簡要而一般地說,這些算法的目的是進行主機系統(伺服器、現金分配器,等)和密鑰或包含在該卡中的公共密鑰和秘密密鑰的密碼計算,以及反過來給主機系統提供加密的信息或容許進行這種(卡式的)微電路的鑑別,或籤發信息。
這些密碼術算法的整體安全性依賴於能夠將需要保持秘密的數據保持秘密狀態的事實,這些數據必須保持處於秘密狀態。在密碼術算法情況下,密鑰或若干密鑰不能單從該卡和外部世界之間交換的信息的了解來導出。
然而,當密碼處理器或智慧卡處理器實行擔負操作秘密數據的運算時,根據電流消耗或差分電流消耗分析,已經出現來自外部的攻擊,這樣的操作使有不良企圖的第三者通過被稱為如DPA(差分功率分析)攻擊而實行攻擊,就能夠發現含在此卡中的密鑰。
這些DPA攻擊的原理依賴於這樣的事實,即執行指令的處理器的電流消耗是根據所操作的數據而變化的。
特別是,當處理器執行的指令需要逐位地操作數據項時,依賴於此位是等於「1」或「0」而存在兩種不同的電流型式。典型地,若處理器在操作「0」,那麼在該執行時刻存在消耗電流的第一幅度並且,若處理器在操作「1」,那麼就存在不同於第一幅度的消耗電流的第二幅度。
於是DPA攻擊的過程就根據操作的位值利用在指令執行期間卡中電流消耗型式的差別。簡單地說,在包括逐位操作數據項的執行至少一個指令的算法進展中,DPA攻擊行動在於識別一個或更多的具體時段;在此或這些時段中繪製很大數目N的電流消耗曲線,採用此算法的每一不同信息有一條曲線;對每條曲線進行預言,由該數據項的一個位為子密鑰即至少部分密鑰的假設取值,它容許作此預言;同時根據相應的布爾的(Boolean)選擇函數將這些曲線分類獲得的第一束曲線,對它的預言等於「1」,同時獲得的第二束曲線,對它的預言等於「0」。通過在獲得的兩束曲線之間進行平均電流消耗的差分分析,就能得到信息信號DPA(t)。
若子密鑰假設不正確,那麼每束曲線實際上包括像操作「0」的曲線那樣多的對應操作「1」的曲線。因此就電流消耗來說此兩束曲線是等價的,並且信息信號大體上是零。若子密鑰假設是正確的,那麼一束曲線實際上包括對應操作「1」的曲線並且另一束實際包括對應操作「0」的曲線獲得的信息信號DPA(t)不是零它包括據以分類的對應於由位處理器操作的消耗峰。這些峰有對應於處理器消耗的差的幅度,它依賴於是在操作「1」或「0」。因此,逐步地,發現含在微電路中的所有的或部分的密鑰是可能的。
存在著許多實施算法,其中處理器或有關計算單元(加密處理器)在某一時刻必須進行逐位數據操作。
像已述的那樣,對密碼術算法來說這是特別的情況。在這些逐位操作的執行期間通過分析電流消耗,發現操作數據項的至少某些位值是可能的。對該數據項的了解能夠提供關於密碼術算法執行期間得到的中間結果的信息,它們反過來使得發現所用密鑰的至少某些位成為可能。
申請人意識到,這樣的攻擊能夠從觀察電流消耗的變化來實現,此變化同微電路總線上二進位值的轉換有關。這是因為申請人觀察到,從一個數據項到另一個數據項,同樣重要的兩個位之間的狀態變化比之狀態不變的情況會產生較高的消耗。這樣,對在總線上流動的數據而言,轉換就留下記號。當然這種情況對這些數據是秘密數據是很不利的。
本發明的目的就是解決此問題。
它的目的是保護被逐位操作的數據,即對該數據施加對抗措施,也就是幹擾,結果一個數據項轉換到下一個通過總線的數據項期間,電流消耗的分析顯示在這些數據項上沒有信息信息信號DPA(t)在DPA攻擊中將總是一樣的。
如權利要求所述,本發明涉及微電路中的對抗措施方法,此電路包括能夠執行運算的處理器,其中之一在於操作至少一個秘密數據項,至少一個含有該秘密數據項或若干秘密數據項的非易失存儲器,和至少一個工作存儲器,上述存儲器由總線連接到上述處理器,原則上,其特徵在於該方法包括在源自處理器執行運算的數據項之間注入若干隨機數據項到總線上。
根據另一種特徵,該方法在於在秘密數據項或若干秘密數據項被操作的時段,激活注入若干隨機數據項到總線上,在此時段中,並且在這些時段之外禁止上述隨機數據項的注入。
根據另一種特徵,操作秘密數據項的運算由密碼術算法來執行。
該密碼術算法可以是秘密密鑰算法。
作為替代該密碼術算法可以是公共密鑰算法。
秘密數據項可以是個人識別代碼。
本發明也涉及智慧卡型可攜式器件的微電路,包括能執行運算的處理器,其中之一在於操作至少一個秘密數據項,至少一個包括該秘密數據項或若干秘密數據項的非易失存儲器,和至少一個工作存儲器,它們由總線連接到上述處理器,原則上,其特徵在於它包括隨機數據發生器和復用器,此復用器包括連接到隨機數據發生器輸出端的輸入端,為了按照處理器的指令將隨機數據項注入到此總線上,此輸入端連接到處理器的輸入/輸出總線。
隨機數據發生器被一頻率高於處理器頻率的時鐘信號所激活。
該時鐘信號可以是多個處理器時鐘信號,所述信號能夠在內部產生(處理器的內部)或來自外部(來自其中裝有微電路的智慧卡的連接區)。
微電路有能夠供給上述時鐘信號的邏輯電路,此時鐘信號是多個處理器時鐘信號。
當微電路有若干總線時,注入隨機數據項的裝置(means)是由宏指令來執行的。
本發明也涉及智慧卡,它包括如剛才介紹的微電路。
從閱讀下文提出的和通過非限制性實例給出的描述以及參看附圖,本發明的其他具體特徵和優點將清楚地顯現出來,在附圖中
圖1描述簡化的能執行根據本發明的方法的微電路結構;圖2A到2G描述微電路的運行信號;圖3描述根據本發明的微電路的一種實施方案的詳細實施圖。
圖1描述簡化的微電路,也就是說僅僅是了解本發明所必須的部分。
在裝配智慧卡情況下,微電路具有該卡的微模塊結構,即它具有包括控制器11的主處理單元1(稱為處理器),一個或更多的總線12用於將單元1連接到相關存儲器,這些存儲器包含至少一個程序存儲器M1(非易失ROM型),至少一個工作存儲器M2(RAM型),和至少一個電可編程的程序存儲器M3(EEPROM型)。該微電路也可以有計算單元2(密碼處理器)以供執行模數取冪計算,像例如實行RSA(Rivest Shamir Adelman)公共密鑰密碼術算法的情況那樣。
為實施根據本發明的對抗措施方法,圖1所示的微電路,也有由時鐘H激發的隨機數發生器3,和由控制其輸出S的信號C激發的復用器4。該微電路也有系統5用以管理由控制器11控制的在(有兩個輸入e1,e2和一個輸出S的復用器類型的)總線B上流動的信息。在從一個存儲器讀取的情況下,系統5使得將算術和邏輯單元12直接連接到存儲器M1、M2、M3上成為可能;在寫入到一個存儲器的情況下,復用器4的輸出至總線B。
微電路的控制器11按照已作的說明能夠與密碼算子(operator)2相連並操作一個或更多的秘密數據項。
為簡化起見,將採用單個操作秘密數據項情況(例如它是密鑰算法或PIN代碼(個人識別代碼)執行中的情況)。此數據項以保密方式存儲在與處理器11相關的非易失程序存儲器M1中。
在執行密碼運算或驗證識別代碼(PIN)期間,根據本發明,處理器將進行一次或多次中斷以便將隨機數據項注入到總線12上(通過該總線易於傳輸秘密數據項)。
事實上,在執行包括例如寫秘密數據項的指令期間,通過處理器啟動,於是後者(秘密數據項)通過總線B傳輸以便進入工作存儲器M2,目的在於以此數據項來執行處理。對每次執行的運算,一系列數據項因此通過總線B傳輸。根據本發明的方法,該處理器能夠發布中斷,此中斷能用秘密數據操作程序本身(在此情況下是密碼術程序)來觸發,中斷在執行中的指令的目的是保留寄存器中的前後關係和觸發(由發生器3產生的)隨機數據項導入到總線B上。中斷在執行中的指令的信號能夠用作復用器4的控制信號C。
圖2A到2G說明微電路的運行信號。
圖2A中說明處理器的時鐘信號CLK。
圖2B說明控制隨機發生器3的時鐘信號H的實例。
選取高於處理器時鐘信號CLK的時鐘頻率H,以便在執行指令的中斷時刻和其恢復時刻之間能夠注入若干隨機數據項DA1、DAn。於是在這兩個時刻之間,這些隨機數據項在由總線B傳送的數據項之間被注入。隨機數據項的目的是隨機地重新加載或卸載總線。
若干數據項的導入使獲得預期的結果成為可能。
選取快於處理器時鐘信號CLK的時鐘H,例如其中的多路系統,以便傳送至少兩個隨機數據項。
該數據項,命令或是要處理的數據,在圖2C的總線圖上作了說明。
圖2D說明執行指令的進展和它在接收中斷信號時的中斷。圖2E中說明,此中斷使產生控制復用器輸出的信號C成為可能。
圖2F說明由處理器發出的寫控制信號。
圖2G說明由隨機發生器3產生的數據項DA。
圖2E說明激發復用器3的控制信號C的一個實例。根據所說明的實例,當信號C處於0,復用器以其輸出S傳遞在其輸入E1上接收的信號,以及當信號C處於1,它就傳遞在其輸入E2上接收的數據;根據此實例,在由處理器發出中斷執行指令時,此信號C是處於1。
復用器4的輸入E1對應於處理器(ALU)的輸出數據。
在輸入E2上接收的數據是由發生器3發出的數據。
圖3說明本發明的一個實施方案的詳細實例。
當在智慧卡裡裝配了微電路時,它也有同外部世界相聯繫的接口13,在此圖中作了圖解說明。此接口包括用來接收時鐘信號CLK、電壓信號Vcc和Vss,復位到零信號的復位、以及輸入/輸出信號I/O的智慧卡的連接器。它也有異步的傳輸單元。
在將要描述的實施方案中,時鐘信號H由邏輯電路5乘時鐘信號CLK來獲得。此電路5包括例如順序引導延遲的門電路51。該延遲可以是T/4(T是時鐘CLK的周期),並在此情況下通過總線傳送的兩個數據項之間注入至少兩個隨機數據項成為可能。
控制信號C是由給那個終端編程的處理器產生的。
可以給那個終端裝配邏輯電路。
當微電路有若干總線時,剛才已描述的功能可以不通過電路而是通過提供給那個終端的宏指令來實施。
權利要求
1.微電路中的對抗措施方法,所述電路包括能實行運算的處理器,上述運算之一在於操作至少一個秘密數據項,並包括至少一個含有該秘密數據項或若干該秘密數據項的非易失存儲器,和至少一個工作存儲器,上述存儲器由總線連接到上述處理器,其特徵在於該方法包括在源於由處理器執行運算的數據項之間注入若干隨機數據項到總線上,這些隨機數據項的目的是隨機地重新加載或卸載總線。
2.根據權利要求1的微電路中的對抗措施方法,其特徵在於它在操作秘密數據項或若干秘密數據項的時段中將若干隨機數據項激發注入到總線上,而在這些時段之外禁止上述隨機數據項的注入。
3.根據權利要求1或2的對抗措施方法,其特徵在於操作秘密數據項的運算由密碼術算法來執行。
4.根據權利要求3的對抗措施方法,其特徵在於該密碼術算法是秘密密鑰算法。
5.根據權利要求3的對抗措施方法,其特徵在於該密碼術算法是公共密鑰算法。
6.根據權利要求1或2的對抗措施方法,其特徵在於該秘密數據項是個人識別代碼。
7.智慧卡型可攜式器件的微電路,包括能執行運算的處理器,上述運算之一在於操作至少一個秘密數據項,並包括至少一個含有該秘密數據項或若干該秘密數據項的非易失存儲器(M1,M3),和至少一個由總線(B)連接到上述處理器的工作存儲器(M2),其特徵在於它有按照處理器的命令將隨機數據項注入到此總線上的裝置。
8.根據權利要求7的可攜式器件的微電路,其特徵在於將隨機數據項注入到此總線上的裝置包括隨機數據發生器(3),和與隨機數據發生器輸出相連的輸入(E2)的復用器(4),上述隨機數據發生器連接到總線(B)。
9.根據權利要求8的可攜式器件的微電路,其特徵在於隨機數據發生器被頻率高於處理器頻率的時鐘信號(H)觸發。
10.根據權利要求8和9的可攜式器件的微電路,其特徵在於該時鐘信號(H)是多個處理器時鐘信號(CLK)。
11.根據權利要求8到10的任一項的可攜式器件的微電路,其特徵在於它有能供給上述時鐘信號(H)的邏輯電路(5),該時鐘信號是多個處理器時鐘信號。
12.根據權利要求7的可攜式器件的微電路,其特徵在於,當該微電路有若干總線時,注入隨機數據項的裝置是由宏指令來執行的。
13.智慧卡,其特徵在於它包含根據權利要求7到12的任一項的微電路。
全文摘要
本發明涉及一種微電路中的對抗措施方法,此電路包含能執行運算的處理器,其中之一在於處理至少一種秘密數據,上述微電路包含至少一種含有該秘密數據或若干秘密數據的非易失存儲器,至少一種工作存儲器,上述存儲單元通過總線連接到上述處理器。本發明的特徵在於,該方法包括將來自由處理器執行運算的數據之間的幾個隨機數據注入到總線上,上述隨機數據用來隨機地重新加載或卸載總線。本發明可用於智慧卡。
文檔編號G06K19/073GK1426573SQ01808650
公開日2003年6月25日 申請日期2001年4月18日 優先權日2000年4月28日
發明者N·達鮑斯, D·納卡徹 申請人:格姆普拉斯公司