用于安全系統(tǒng)的電荷分配控制的制作方法
【專利說明】
【背景技術(shù)】
[0001]如今有許多安全應用,其中保護電子存儲和/或處理數(shù)據(jù)是十分重要的?,F(xiàn)今的安全應用可在許多領(lǐng)域進行,包括ATM卡,身份證,儲值卡,信用卡,移動電話(例如,SIM卡),計算機訪問控制,付費電視,以及醫(yī)學信息存儲。這些卡和應用的安全經(jīng)常依賴于嵌入卡的存儲器(或其它電路)的密鑰的密碼計算。攻擊者試圖從卡中抽取這些密鑰,以便修改卡的內(nèi)容,創(chuàng)建一復制的卡,或產(chǎn)生一未授權(quán)的交易。主動攻擊會留下清晰可見的干涉的標記,而被動攻擊通常不會留下標記。
[0002]在一個被動攻擊中,在信息與閱讀器交互時,信息從卡中收集。被動攻擊可以是旁路攻擊的形式。旁路攻擊包括基于卡或電路的物理實現(xiàn)中破譯密鑰,這是通過注意時間信息,功率消耗,電磁場,甚至聲音來實現(xiàn)的。例如,在邏輯門的切換期間的電流改變(以及導致的功率信號)可以通過供電線路監(jiān)視,并用于解碼密鑰,其中邏輯門是智能卡的組成部分。此類型的攻擊,也被稱為差分功率分析(DPA),對智能卡的持有者具有許多負面影響(例如,一 ATM卡可被侵入,并用于從卡擁有者的賬戶,未經(jīng)卡擁有者的授權(quán),提取現(xiàn)金)。保持數(shù)據(jù)安全,并保護它免于旁路攻擊,包括DPA攻擊,持續(xù)成為一個重要的設(shè)計考量。
【發(fā)明內(nèi)容】
[0003]本發(fā)明公開了一種安全電路、系統(tǒng)和方法。邏輯單元可保護不同應用的安全,包括提供運行加密算法的加密塊。
[0004]本文介紹了一種電荷分配控制,可以通過抑制信號和功能的方式來隔離電路系統(tǒng),
[0005]該信號和功能是通過電源或者接地線檢測到的電路或者邏輯塊產(chǎn)生的。在一些實施例中,電荷分配控制可以是一個時鐘充電機制。時鐘充電機制的計時可以是周期或隨機的(或包含隨意的周期)。在一些其它的實施例中,電荷分配控制可以包括一個自計時電路,例如,可以使用異步的,基于延遲的網(wǎng)絡。根據(jù)本發(fā)明,提供了一時鐘充電機制,它從電源中隔離了邏輯單元,并以一種可以使邏輯單元的狀態(tài)不被破譯的方式,不漏電的為邏輯單元充電。邏輯單元的時鐘充電機制抑制了邏輯單元的功率信號被讀出,這是通過從外部包括電源電壓和接地連接中,同時隔離邏輯單元的高和低電源電線來實現(xiàn)的。
[0006]本發(fā)明的實施例提供電容式的充電,用于運行一邏輯單元(和其他電路模塊)。電容式的充電通過至少一個邏輯轉(zhuǎn)換或切換周期,以一種充足的方式建立,以運行邏輯塊的設(shè)備。充電控制機制涉及一個或多個時鐘和/或自計時電路。在一個特定的時鐘例子中,提供至少兩個時鐘,一個時鐘用于以某一速度執(zhí)行單元的邏輯,而另一個時鐘用于在邏輯運算之間為一電荷存儲器件充放電。在一個非計時的實施例中,自定時電路可用于控制一個電荷存儲設(shè)備的充電和放電。
[0007]本發(fā)明的實施例的一個數(shù)字邏輯單元可包括一電容,電容可受控的充電和放電,以便在數(shù)字邏輯單元的邏輯塊和電源間提供一個“隔離”或“去耦”。
[0008]雖然數(shù)字邏輯單元和電路的電荷分配控制在本文中詳細描述,但實施例不限于數(shù)字邏輯單元和塊。各種實施例包括在同電源電壓和地面連接隔離時運行的模擬電路。
[0009]控制電容充放電的方法可通過切換操作進行,包括如下步驟:當電容從邏輯塊和電源中斷開時,連接電容的兩端,以便短路電容,并允許電容放電;在電容放電完成后,連接電容至電源,以為電容充電;在電源為電容充電完成后,把電容從電源中斷開;以及在電源為電容充電完成后,連接電容至邏輯塊,以為邏輯塊提供電力。在實施例中,在隔離的邏輯塊的導軌中,可能還包括附加組件,來支持電容沒有連接到邏輯塊的操作(或者如果電容沒有承載足夠的電量)。
[0010]此說明以一種簡化的方式有選擇的介紹了一些概念,這些概念會在下面進一步的詳細描述。此說明并未試圖標出本主題的關(guān)鍵特征或本質(zhì)特征,也未試圖用于限制本主題的范圍。
【附圖說明】
[0011]根據(jù)本發(fā)明,圖1是一個時鐘充電域邏輯(CXDL)單元的示意圖。
[0012]圖2A-2C顯示了本發(fā)明的某些實施例的使用金屬氧化物半導體場效應晶體管(M0SFET)放電開關(guān)的例子。
[0013]根據(jù)本發(fā)明,圖3A-3D說明了一個時鐘充電域邏輯單元操作方法。
[0014]根據(jù)本發(fā)明,圖4是一個時鐘充電域邏輯單元例子的示意圖。
[0015]根據(jù)本發(fā)明,圖5是邏輯單元的時鐘序列。
[0016]根據(jù)本發(fā)明,圖6是邏輯單元的結(jié)構(gòu)仿真圖。
[0017]圖7 —個電容放電圖。
[0018]根據(jù)本發(fā)明,圖8是一個電路圖。
[0019]根據(jù)本發(fā)明,圖9A-9D組合起來是一個2bit加密塊實施的電路圖。
[0020]圖10是圖11的加密塊操作的信號圖。
[0021 ]根據(jù)本發(fā)明,圖11是在一個(XDL單元內(nèi)內(nèi)部邏輯電線的輸出信號圖。
[0022]根據(jù)本發(fā)明,圖12是組成(XDL單元的一個AES加密核心電源信號圖。
[0023]圖13所示為一個可用于電荷分配控制的同步電荷分布時鐘發(fā)生器的例圖。
[0024]圖14所示為一個可用于電荷分配控制的不相關(guān)的電荷分布時鐘發(fā)生器的例圖。
[0025]圖15所示為一個可用于電荷分配控制的確定性電荷分布時鐘發(fā)生器的例圖。
[0026]圖16所示為一個可用于電荷分配控制的異步電荷分布時鐘發(fā)生器的例圖。
【具體實施方式】
[0027]本發(fā)明公開了一種安全電路、系統(tǒng)和技術(shù)。電荷分配控制用于實現(xiàn)芯片電路的隔離功能。在一些實施例中,電荷分配控制可以是一種時鐘充電機制。時鐘充電機制的計時可以是周期或隨機的(或包含隨機的周期)。在一些其它的實施例中,電荷分配控制可以包括一個自計時電路,例如,可以使用異步的基于延遲的網(wǎng)絡。邏輯單元和其它電路塊可以用于各種應用,包括涉及“加密”或“密碼”的塊的密碼應用,例如加密塊,認證引擎,硬件算術(shù)加速器,和協(xié)處理器。除了改善電路操作的安全性,如本文所述的電荷分布的各種實施和控制的實施可以減少含有安全信息的電流成分,減少或隱藏電路操作有關(guān)的從設(shè)備電流泄漏中獲得的信息,提高側(cè)通道抑制并降低功耗。
[0028]某些實施例也可以用來防止安全信息被側(cè)信道分析攻擊所檢測。旁路攻擊涉及一種攻擊方法,該方法基于密碼系統(tǒng)的物理實施獲取敏感信息,而不是通過加密算法或暴力的數(shù)學分析獲取敏感信息。各種類型的旁路攻擊可能被此中描述的系統(tǒng)和方法所抑制,它們包含但不僅限于,至少如下分析之一,分析包括:差分功率分析,簡單功率分析,漏電流分析,差分電磁場分析,時序分析,熱,聲學分析,故障注入和差分故障分析。
[0029]所描述的電荷分配控制和安全邏輯/電路塊的某些實施,能夠防止這類通過從其它組件(通過電荷分配控制)隔離邏輯/電路模塊的旁路攻擊,并從而抑制聲學,電磁,熱和/或功耗分析,故障注射,甚至物理侵入(只是一些例子)。
[0030]本發(fā)明的實施例提供一種電容充電,用于運行一個邏輯單元。這種電容充電是建立在一種通過,在某些情況下至少一個邏輯轉(zhuǎn)換或者切換循環(huán),以足夠運行邏輯塊設(shè)備的方式運行。電荷控制機制可以包括一個或多個時鐘和/或自定時電路。在一個時鐘實施中,至少需要兩個時鐘,一個時鐘用于以某一速度執(zhí)行單元的邏輯,而另一個時鐘用于在邏輯運算之間為一電荷存儲器件充放電。在非時鐘實施中,一個自定時電路可用于控制一個電荷存儲器件的充電和放電。
[0031]根據(jù)一個實施例,提供了一種充電機制,它從電源中隔離了一邏輯單元,并且以一種可以使邏輯單元的狀態(tài)不被破譯的方式,不顯示漏電的為邏輯電源充電。邏輯單元的充電控制機制抑制了邏輯單元的功率信號被讀出,這是通過從外部包括電源電壓和接地連接中,同時隔離邏輯單元的高和低電源電線來實現(xiàn)的。
[0032]硬件中的加密塊,諸如智能卡、近距離無線通訊(NFC)控制器(以及其它無線通信控制器和處理器),現(xiàn)場可編程門陣列(FPGA),和專用集成電路(ASIC)通常由進行加密或其它密碼算法的邏輯塊構(gòu)成。
[0033]在帶有標準靜態(tài)邏輯電路的密碼塊內(nèi),這些電路內(nèi)的邏輯狀態(tài)的轉(zhuǎn)換可由為密碼塊供電的電源(和接地)線而檢測到。此外,邏輯塊從低至高的邏輯狀態(tài)的轉(zhuǎn)換具有不同于由高至低轉(zhuǎn)換的功率信號。因此,通過監(jiān)視為密碼塊供電的供電線,密碼塊的操作可被解碼。此方法可稱為差分功率分析(DPA)。類似的,邏輯轉(zhuǎn)換期間的電磁泄漏可被密碼塊內(nèi)的解碼操作所監(jiān)視。使用這種旁路攻擊,加密塊中的加密密鑰可內(nèi)破譯,這產(chǎn)生了加密塊中數(shù)據(jù)處理的一個安全缺口。
[0034]本發(fā)明的實施例可提供在保護邏輯塊免于揭露邏輯狀態(tài)的轉(zhuǎn)換時,最小的區(qū)域經(jīng)費。此外,不僅是實施例隔離了邏輯單元的操作,以至于在邏輯單元的操作期間阻止了從輸電線中感知功率消耗,而且本發(fā)明的系統(tǒng)和方法也保護了充電免于從地線中被讀取。也可以保護I/O總線和其它信號線免于旁路攻擊探測器的威脅,這是通過阻止破譯信號線上的轉(zhuǎn)換信號來實現(xiàn)的。
[0035]在一個實施例中,電荷存儲器件用于為一邏輯單元提供一運行電壓,并被設(shè)置為在電源和邏輯塊中的媒介。在某些實施例中,每個邏輯單元塊可包括它自身的電荷存儲器件,用于獨立的抬升或降低電壓。在一個實施例中,電荷存儲器件是一個電容;然而,實施例并不僅限于此。因此,描述的“電容器”可以理解為,任何合適的電荷存儲器件都可以在電容器內(nèi)。此外,可以理解的是,一個電容器可以以各種方式來實現(xiàn),包括但不限于金屬氧化物半導體,金屬氧化物的金屬,金屬-絕緣體-金屬,以及其它片上電容器的配置。此外,在一些實施例中,雖然“電荷存儲器件”和“電容器”也被稱為單數(shù)的每個單元塊,但是多個裝置或部件也可以在一些實施中將電力提供給單元塊。
[0036]因為在電荷存儲器件,例如電容上的每套邏輯運算之后,剩下的電荷包含由邏輯塊在每套邏輯運算期間的完整的電力消耗信息,只從電源上的邏輯塊(或者使用時,一個充電電容)斷開的系統(tǒng)容易通過地線受到被動攻擊(例如DPA)。本發(fā)明的實施例通過同時從地線部分去耦邏輯塊和充電電容,免于遭受這樣一種易受攻擊的危險。
[0037]根據(jù)本發(fā)明的不同的實施例,伴隨著邏輯塊的每個邏輯轉(zhuǎn)換(或伴隨著一個預設(shè)數(shù)量的邏輯轉(zhuǎn)換,其它時間周期,或以一種隨機的方式),電荷存儲器件通過讓它的終端短路而進行放電至某一電勢。
[0038]在一個實施例中,可提供一個或多個數(shù)字邏輯單元。每個數(shù)字邏輯單元可包括一電荷存儲器件,電源連接器,以及一邏輯塊。每個邏輯塊可設(shè)置用于連接相同的電源。所述一個或多個數(shù)字邏輯單元的電荷分配控制,可過實施,以從電源中隔離數(shù)字邏輯單元的運行。有利的是,通過把電荷存儲器件分布在一個集成電路芯片上,電荷存儲器件所提供的電荷是充足的,而無需定制電荷分配控