專利名稱:電子電路和遮蔽電子電路的電流要求的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電子電路,具體地,涉及一種包含微控制器或硬連接線 (hardwired)邏輯電路(例如,狀態(tài)機)的安全裝置。本發(fā)明還涉及一種遮蔽(masking)電 子電路的電流要求的方法。另外,本發(fā)明涉及一種程序元件。最后,本發(fā)明涉及一種計算機 可讀介質(zhì)。
背景技術(shù):
使用諸如智能卡之類的裝置上微處理器和相關(guān)邏輯電路或者使用硬連接線邏輯 電路和(秘密)協(xié)處理器實現(xiàn)了許多密碼裝置。一般需要確保在智能卡上存儲的重要數(shù)據(jù) 保持安全,例如秘密密鑰等。已經(jīng)公布了許多電流/功率分析技術(shù),來促使從在正常輸入和 輸出操作中安全加密的智能卡中獲得數(shù)據(jù)。具體地,可以將執(zhí)行加密或解密操作的邏輯電 路的電流/功率消耗的分析用于找到在加密或解密操作中使用的輪密鑰(round key)。這就是例如智能卡、電子護照、電子票、無鑰匙訪問授權(quán)以及所謂的安全NFC之類 的每一種安全應(yīng)用不得不總是提供改進方式來保護應(yīng)用程序的敏感數(shù)據(jù)抵抗黑客攻擊的 原因。為了確保這種保護,在硬件側(cè)和軟件側(cè)兩者中顯著的努力是必要的,以便達到所需要 的系統(tǒng)安全級別。對于電子電路或智能卡芯片的每一個操作條件,(針對所述操作條件)強制實行 理想地固定并且恒定的相應(yīng)電流/功率消耗,以便覆蓋在所述可操作條件中涉及的硬件模 塊的實際消耗。這就是所謂的電流源原理,對于每一個操作條件,向外部世界示出了恒定的 電流吸收。為了遮蔽例如智能卡的電子電路的電流/功率要求,并且因此減小對于智能卡的 黑客攻擊或破解的成功嘗試的可能性,已知的是保持流入到智能卡中的電流恒定,而與電 子電路執(zhí)行何種操作無關(guān)、或者隨機地執(zhí)行電流/功率電平變化。然而實際上,這種“遮蔽”從來都不是理想的,例如按照獲得與外部世界通信的重 要元素(例如公鑰)的方式受到差分功率分析(DPA)攻擊的攻擊,所述DPA攻擊通過放大 其缺陷來作用。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提供一種可選的電子電路,以及一種遮蔽電子電路的電流要 求的可選方法,所述方法具有遮蔽電流要求的改進能力,由此能夠增強系統(tǒng)抵抗差分功率 分析(DPA)攻擊的硬件安全等級。為了實現(xiàn)上述目的,提供了根據(jù)獨立權(quán)利要求的一種電子電路、一種遮蔽電子電 路的電流要求的方法、一種程序元件和一種計算機可讀介質(zhì)。根據(jù)本發(fā)明典型實施例的方面,提出了一種遮蔽電子電路的電流要求的方法,其 中所述方法包括以下步驟確定電子電路對于電子電路的正確工作所要求的電流電平和當 所述電子電路要求電流電平時相應(yīng)的時間點;選擇等于或高于所確定的電流電平的電流電平;以及在偏離所確定的時間點的時刻,將提供給所述電子電路/所述電子電路消耗的電 流電平切換到選定的電流電平。根據(jù)本發(fā)明的另一個典型方面,提出了一種電子電路,所述電子電路包括確定單 元,適用于確定電子電路對于電子電路的正確工作所要求的電流電平和當所述電子電路要 求電流電平時相應(yīng)的時間點;選擇單元,適用于選擇等于或高于所確定的電流電平的電流 電平;以及切換單元,適用于在偏離所確定的時間點的時刻,將提供給所述電子電路/所述 電子電路消耗的電流電平切換到選定的電流電平。具體地,所述電子電路還可以包括隨機 數(shù)發(fā)生器,適用于產(chǎn)生隨機時間偏移值,其中所述切換單元可以利用所述隨機時間偏移以 便確定所述時刻。根據(jù)本發(fā)明的另一個典型方面,提供了一種程序元件,所述程序元件適用于當由 處理器執(zhí)行時,控制或執(zhí)行根據(jù)本發(fā)明典型方面的方法。根據(jù)本發(fā)明的另一個典型方面,提出了一種計算機可讀介質(zhì),在所述計算機可讀 介質(zhì)中存儲了計算機程序,所述程序適用于當由處理器執(zhí)行時,控制或執(zhí)行根據(jù)本發(fā)明典 型方面的方法。在該申請中,術(shù)語“電子電路”可以具體表示任意類型的電子電路,例如集成電路 或芯片,在接觸式應(yīng)用和未接觸式應(yīng)用中,所述電子電路在安全裝置中實現(xiàn),例如微控制 器、協(xié)處理器和存儲器。這種安全裝置可以是可能具有雙接口或三接口的智能卡、所謂的安 全NFC、或電子護照(或e_護照)。具體地,所述電子電路可以包括微控制器或CPU和協(xié)處理器。因此,根據(jù)該典型方面,提供了一種方法,所述方法在與實際時間點不同的時刻處 切換電流電平,此時新的電流或電流電平對于在智能卡中實現(xiàn)的電子電路必要的。因此,遮 蔽了智能卡的電子電路(例如密碼協(xié)處理器)的激活的實際時間點,從而減小了 DPA攻擊 的可能性。具體地,要求特定電流電平的時間點和實際切換電流電平的時刻之間的差是可 變的,并且可以對于每一次切換隨機地設(shè)定。因此,可以忽略現(xiàn)有技術(shù)的缺點,即,典型是在 電子電路(或模塊)請求開始操作與電流源端口值的相應(yīng)更新之間的恒定時間,以及對于 模塊開始工作的必然讓步。由于該恒定時間促使在潛在的DPA攻擊期間觸發(fā)了監(jiān)測動作, 該恒定時間代表了現(xiàn)有技術(shù)系統(tǒng)的潛在弱點??梢酝ㄟ^各種裝置切換電流電平,例如能夠切換不同電流電平的電流源,其中將 當前沒有用于電子電路的正確工作的過剩電流或功率饋送至電阻器,電阻器將所述過剩功 率轉(zhuǎn)換為熱。然而,可以設(shè)想通過恒壓源或恒流源向電子電路供電。在這種情況下,可以通 過其電阻值能夠被設(shè)定的電阻器來“消耗”過剩的熱。在這種情況下,可以容易地設(shè)想能夠 使用晶體管來代替電阻器,晶體管更易于在集成電路中實現(xiàn)??梢酝ㄟ^計一種算機程序來實現(xiàn)根據(jù)本發(fā)明典型方面的方法,即通過軟件,或者 通過使用硬件形式的一個或更多個專用電子優(yōu)化電路或者通過軟件部件和硬件部件的混 合方式。在有利的實施例中,通過在給出特定電流要求的時間點和電流源切換至與所述特 定電流要求相對應(yīng)的電流電平的時刻之間引入可變和/或隨機時間間隔,來遮蔽電子電路 或模塊的實際電流要求。因此,遮蔽了電子電路(例如密碼協(xié)處理器)開始操作的實際時 間點,從而阻礙了可能的DPA攻擊。應(yīng)該注意的是,在一些切換動作中,時間偏離可以是0,即,也可以在不得不改變提供給電子電路/電子電路消耗的電流電平的時間點處執(zhí)行所述 切換,然而根據(jù)本發(fā)明的典型實施例,所述時刻可以與所述時間點不同。此外,為了遮蔽所 述切換時間,可以隨機地選擇所提供的電流電平。然而應(yīng)該注意的是,所選擇的電流電平應(yīng) 該確保電子電路或整個安全裝置(例如智能卡)是可操作的。接下來描述遮蔽電流要求的方法的另一典型實施例。然而,這些實施例也可以應(yīng) 用于電子電路、程序元件和計算機可讀介質(zhì)。根據(jù)典型實施例,所述方法還包括以下步驟向所述電子電路供應(yīng)與所選擇的電 流電平相對應(yīng)的電流。具體地,可以通過電流源將所述電流供應(yīng)給電子電路,所述電流源適 用于在不同的電流電平之間切換,例如高電流電平和低電流電平。當討論智能卡時,該電流 源可以位于智能卡內(nèi),所述智能卡包括本發(fā)明的電子電路;或者該電流源可以位于插入了 所述智能卡的終端中。然而,電流源的位置不局限于智能卡或終端。根據(jù)所述方法的另一典型實施例,隨機地選擇所述時間偏離。具體地,可以利用隨 機數(shù)發(fā)生器(RNG)來選擇或確定所述時間偏離。RNG的使用可以確保所述時間偏離或時間 偏移,并且因此真正隨機地選擇切換時刻,這意味著在電子電路請求電流電平的時間點和 給出實際切換時間的時間點之間沒有恒定的時間。因此,降低了成功的DPA攻擊的可能性。 例如,所述時間偏移可以具有正值、負值或者可以是零,并且可以通過將電子電路要求所述 電子電平的時間點和所述偏移時間相加來確定切換的時刻。具體地,執(zhí)行切換的時刻可以 是在比將電流或電流電平切換至更高電平情況下(例如從低電平切換至高電平)所確定的 時間點更早的時間,而執(zhí)行切換的時刻可以是在比在將電流或電流電平切換至較低電平情 況下(例如從高電平到切換至低電平)所確定的時間點更晚的時間。如已經(jīng)描述的,可以 偶然性地選擇零時間偏離/偏移。然而,與已知方法相反,可能的黑客不會依賴于不存在時 間偏移這一事實,從而阻礙了可能的DPA攻擊。根據(jù)所述方法的典型實施例,隨機地選擇選定的電流電平。通過確定隨機選擇的 電流電平或電流偏移,使得能夠?qū)崿F(xiàn)額外的遮蔽電流要求。例如,對于電流電平的每一次切 換,可以選擇不同的電流偏移,使得成功的DPA攻擊變?yōu)椴豢赡?。與接觸式應(yīng)用相結(jié)合,這 種電流偏移可能特別有利,例如在用電池或電源向電子電路供電的應(yīng)用中,例如機頂盒或 移動電話。最后,如果使用功率電平來代替電流電平,所述方法尤其有利。具體地,如果電子 電路的電源電壓有波動,可以確定、選擇和切換功率電平來代替電流電平。按照這種方式, 可以遮蔽本發(fā)明的電子電路的功耗。通常,經(jīng)由電流和電壓來測量功率。然而,也應(yīng)該注意 到可以只使用電阻器的電壓降(功率U除以R)來測量功率。在這種情況中,隱含地測量了 電流(U除以R)。根據(jù)下文所述的實施例示例,本發(fā)明的上述方面和典型實施例以及另外方面將變 得顯而易見,并且將參考實施例的這些示例進行解釋。應(yīng)該注意的是結(jié)合一個典型實施例 或典型方面描述的特征可以與其他典型實施例和其他典型方面結(jié)合。
下文中將參考示例實施例詳細地描述本發(fā)明,但是本發(fā)明不局限于此。圖1示意性地示出了智能卡,所述智能卡適用于執(zhí)行根據(jù)典型實施例的方法。
5
圖2示意性地示出了電流電平的時序圖。
具體實施例方式附圖中的說明是示意性的。在不同的圖中,類似或相同的元件配置有類似或相同 的參考符號。圖1示意性地示出了智能卡(IC、或電子電路)100,包括CPU 101、密碼協(xié)處理器 102、非易失性存儲器103和電流源106。另外,示意性地描述了電流輸入路徑104和輸出路 徑105。在圖IA中所示的操作狀態(tài)中,只有CPU 101是激活的,密碼協(xié)處理器102是非激活 的,而在圖IB中所示的工作狀態(tài)中,密碼協(xié)處理器102也是激活的。CPU可以包括或者可以 形成確定單元,適用于確定電子電路所要求的電流電平和電子電路要求所述電流電平時 的相應(yīng)時間點;選擇單元,適用于選擇與等于或高于所要求的電流電平相對應(yīng)的電流電平; 以及切換單元??梢酝ㄟ^在CPU中實現(xiàn)的以及在非易失性存儲器存儲的軟件、硬件連線電 路或混合來形成這些單元,。圖2示意性地示出了與不同方法和操作狀態(tài)相對應(yīng)的時序圖。圖2A示出了與圖 IA中所示的操作狀態(tài)相對應(yīng)的時序圖。圖2A中對于操作狀態(tài)的時序圖示出了根據(jù)已知方 法的電流遮蔽。圖2A在第一行中示出了 CPUlOl隨時間所要求的電流,在第二行中示出了密 碼協(xié)處理器102所要求的電流,在第三行中示出了經(jīng)由電流輸入路徑104由電流源106提 供的電流。因為只有CPU 101是激活的,只有CPU 101要求例如ImA的峰值電流。為了具有 安全余量,將電流源106設(shè)定至1. 5mA。應(yīng)該注意的是實際上存在消耗能量、而CPU 101不 需要的部件,因此保持從電源焊接點吸收的電流理想地恒定在1. 5mA。為了簡潔起見,在圖 1中并未示出這些部件(例如,為了“消耗”過剩能量并且與CPU 101并聯(lián)開關(guān)的電阻器或 晶體管)。因此在圖IA和2A中所示的工作狀態(tài),理想上黑客只能看見觸點或端子處1. 5mA 的恒定電流。圖2B示出了與使用已知方法的公知智能卡的圖IB中所示的工作狀態(tài)相對應(yīng)的時 序圖,即在第一行示出了 CPU 101隨時間所要求的電流,在第二行示出了密碼協(xié)處理器102 所要求的電流,以及第三行示出了經(jīng)由電流輸入路徑104通過電流源106提供電流。由于 CPU 101和密碼協(xié)處理器102兩者均是激活的,密碼協(xié)處理器102要求例如另一個2. 5mA的 峰值電流。為了具有安全余量,將電流源106設(shè)置為4. 0mA。具體地,在給定示例中的非常 短時間內(nèi),這種已知智能卡要求從1. 5mA的電流Il到4. OmA的電流12的迅速更新。通常, 所述時間在約1ns,或者小于電流源寄存器的典型地固定時間窗口,例如在0.5和1.5個時 鐘周期之間。無論何時協(xié)處理器或存儲器模塊請求CPU(或者更簡單的情況下請求狀態(tài)機) 開始工作,就會發(fā)生這種更新和相應(yīng)切換。為了說明性目的,圖2B中示出了一些特定的時 間點。智能卡100變成激活的時間點(即激活CPU 101的時間點)由虛線201表示。協(xié)處 理器變成激活的時間點由虛線202表示,而虛線230表示協(xié)處理器再次變?yōu)榉羌せ畹臅r間 點,以及虛線204表示智能卡100再次變?yōu)榉羌せ畹臅r間點。圖2C示出了與在實現(xiàn)根據(jù)典型實施例的本發(fā)明方法的智能卡的圖IB中所示的工 作狀態(tài)相對應(yīng)的時序圖。圖2C中所示的時序圖與圖2B中所示的時序圖類似。然而,在不 同的時間點進行切換。具體地,引入額外時間間隔,用于確定電流源切換到另一個電流電平 的時刻。在有利的實施例中,限制所述時間間隔使得存在時間跨度205、206、207和208,在
6此期間可以進行隨機切換。時間跨度205表示當電流源106開始向CPUlOl提供足夠電流的時刻范圍,并因此 激活智能卡100。圖2c清楚了示出了與如虛線201所示實際上當CPU 101變?yōu)榧せ顣r的時 刻不同的時刻。這意味著CPU 101的激活不必與電流源106的切換相一致。時間寬度206 表示當電流源106開始向CPUlOl和協(xié)處理器102提供足夠電流的時刻范圍。再次,所述時 刻與如虛線202所示實際上協(xié)處理器102變?yōu)榧せ畹臅r間點不同。因為協(xié)處理器102再次 變?yōu)榉羌せ睿瑫r間跨度207表示當電源106開始僅向CPU 101提供足夠電流的時刻范圍,。 該時刻與虛線203所示協(xié)處理器102實際上變?yōu)榉羌せ畹臅r間點不同。最后,時間跨度208 表示當電源106停止向智能卡100供應(yīng)電流的時刻范圍,其中所述時刻與虛線204所示智 能卡100實際上變?yōu)榉羌せ畹臅r間點不同。應(yīng)該注意的是可以隨機地選擇切換時間。然而,應(yīng)該確??偸菍⑺蟮碾娏?電平提供給智能卡,即所提供的電流電平至少匹配智能卡的所有部件的電流要求,這在特 定的時間點是必須的(例如,通過選擇覆蓋具有上述合理安全余量的峰值消耗的恒定電流 值)。最后應(yīng)該注意的是,上述實施例是說明而不是限制本發(fā)明,并且本領(lǐng)域普通技術(shù) 人員在不脫離所附權(quán)利要求所限定的本發(fā)明范圍的情況下,能夠設(shè)計許多替代實施例。在 權(quán)利要求中,括號中放置的任意參考符號不應(yīng)該解釋為限制權(quán)利要求。總體上,詞語“包括” 及其變形不排除存在除了在任意權(quán)利要求或說明書中所列舉的元件或步驟之外的元件或 步驟的存在。單數(shù)形式的元件部排除多個這種元件,反之亦然。在枚舉了幾種裝置的設(shè)備 權(quán)利要求中,這些裝置的幾個可以由一個條目或相同條目來實現(xiàn)。唯一的事實在于在相互 不同的獨立權(quán)利要求中引用的特定措施不表示不可以有利的使用這些措施的組合。
權(quán)利要求
一種遮蔽電子電路(100)的電流要求的方法,所述方法包括以下步驟確定電子電路(100)對于電子電路的正確工作所要求的電流電平和當所述電子電路(100)要求所述電流電平時相應(yīng)的時間點;選擇等于或高于所確定的電流電平的電流電平;以及在偏離所確定的時間點的時刻,將提供給所述電子電路(100)/由所述電子電路(100)消耗的電流電平切換到選定的電流電平。
2.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟向所述電子電路(100)提供與所述 選定的電流電平相對應(yīng)的電流。
3.根據(jù)權(quán)利要求1所述的方法,其中隨機地選擇時間偏離。
4.根據(jù)權(quán)利要求1所述的方法,其中隨機地選擇所述選定的電流電平。
5.根據(jù)權(quán)利要求1-4中任一項所述的方法,其中使用功率電平來代替電流電平。
6.一種電子電路(100),包括確定單元,適用于確定電子電路對于電子電路的正確工作所要求的電流電平和當所述 電子電路(100)要求電流電平時相應(yīng)的時間點;選擇單元,適用于選擇等于或高于所確定的電流電平的電流電平;以及切換單元,適用于在偏離所確定的時間點的時刻,將提供給所述電子電路/由所述電 子電路消耗的電流電平切換到選定的電流電平。
7.根據(jù)權(quán)利要求6所述的電子電路(100),還包括隨機數(shù)發(fā)生器,適用于產(chǎn)生隨機時間 偏移值。
8.一種程序元件,所述程序元件適用于當由處理器執(zhí)行時,控制或執(zhí)行權(quán)利要求1所 述的方法。
9.一種計算機可讀介質(zhì),在所述計算機可讀介質(zhì)中存儲了計算機程序,所述計算機程 序適用于當由處理器執(zhí)行時,控制或執(zhí)行根據(jù)權(quán)利要求1所述的方法。
全文摘要
提出了一種遮蔽電子電路(100)的電流要求的方法,其中所述方法包括以下步驟確定電子電路(100)所要求的電流電平和當所述電子電路(100)要求電流電平時相應(yīng)的時間點;選擇與等于或高于所確定的電流電平相對應(yīng)的電流電平;以及在偏離所確定的時間點的時刻,將提供給所述電子電路(100)/所述電子電路(100)消耗的電流電平切換到選定的電流電平。
文檔編號H04L9/06GK101897148SQ200880120254
公開日2010年11月24日 申請日期2008年12月4日 優(yōu)先權(quán)日2007年12月13日
發(fā)明者哈拉德·威斯汀, 米歇爾·巴卡羅 申請人:Nxp股份有限公司