5 (例如nMOS晶體管)組成并 且針對Sl=l被啟用W及針對S1=0被禁用;W及形式為第Sn溝道陽T306和第四n溝道 FET308 (例如nMOS晶體管)的預充電器件,該預充電器件針對S0=1被啟用W及針對S0=0 被禁用。
[0085] 依據(jù)一個實施例,ICBC-X的物理設計在ICBC-X布局方面是足夠(即不必完全地) 對稱的,即其器件的尺寸(柵極寬度和長度)有源區(qū)域、多晶柵極、接觸、金屬連接性等是對 稱的,W便確保適當和穩(wěn)健的ICBC-X轉(zhuǎn)移特性并且確保即便通過最靠近可能的布局檢查 也沒有辦法得出關(guān)于ICBC-X的身份(ICBC-1或ICBC-0)的任何結(jié)論。
[0086] 例如,ICBC-X300至少具有對稱的nMOS和pMOS柵極的尺寸,即第一P溝道晶體 管301和第二P溝道晶體管304具有相同的柵極尺寸,第一n溝道晶體管303和第二n溝 道晶體管305具有相同的柵極尺寸并且第=n溝道晶體管306和第四n溝道晶體管308具 有相同的柵極尺寸。
[0087]ICBC-X通過如下被提供有偽裝的屬性; 第一P溝道晶體管301和第二P溝道晶體管304具有不同的闊值電壓Vthy(p)和Vthz(p) 及 (任選地)第一n溝道晶體管303和第二n溝道晶體管305具有不同的闊值電壓Vthz(n) 和Vthy(n)。
[008引例如,闊值電壓Vthz和Vthy分別對應于高的Vth和規(guī)則的VthCMOS工藝選擇。
[0089] 闊值電壓的差別導致在用輸入樣式挑戰(zhàn)時ICBC-X的穩(wěn)健傳遞特性,該輸入樣式 將會另外(即在相等的闊值電壓的情況下)對應于亞穩(wěn)狀態(tài),例如在其中電路的邏輯狀態(tài)是 未定義的邏輯狀態(tài)的狀態(tài)(因為其實際的物理狀態(tài)不能夠被預確定,并且例如取決于未知 的工藝波動或噪聲等)。
[0090] 對于下面的考慮而言,邏輯值0意味著更低的供給電壓VSS并且邏輯1意味著更 高的供給電壓VDD。
[0091]ICBC-X在如下時是ICBC-1;
[0092] 它能夠呈現(xiàn)兩個穩(wěn)定的狀態(tài); 在預充電(PRECHARGE)狀態(tài)(S1=0、S0=1)中,輸出信號化、BR在邏輯上不是有效的(但 在物理上被很好地定義并且關(guān)于ICBC-0是相同的,即(化、BR) =(0、0)),然而 在有效(VALID)狀態(tài)(S1=1、S0=0)中,輸出總是處于邏輯1,即被定義為(BL、BR)= (1、 0)〇
[0093]ICBC-X在如下時是ICBC-0;
[0094] 它能夠呈現(xiàn)兩個穩(wěn)定的狀態(tài): 在預充電狀態(tài)(S1=0、S0=1)中,輸出在邏輯上不是有效的(但在物理上被很好地定義并 且關(guān)于ICBC-1是相同的,即(化、BR)= (0、0)),然而 在有效狀態(tài)(Sl=l、S0=0)中,輸出對于上面的示例總是處于邏輯0,即被定義為(BL、BR)= (0、1)。
[0095] 在下面,參考圖4來描述設定場效應晶體管的闊值電壓的可能性。
[0096] 圖4示出場效應晶體管(陽T) 400。
[0097] 陽T400包含源極區(qū)域401、漏極區(qū)域402、柵極403和溝道區(qū)域404。溝道區(qū)域 404可W處于襯底中或在襯底內(nèi)的阱中。
[0098] 源極區(qū)域401具有延伸部405和暈狀物(halo) 406。類似地,漏極區(qū)域402具有 延伸部407和暈狀物408。
[0099]FET400的闊值電壓能夠通過設定在溝道區(qū)域404中的適當滲雜濃度、設定暈狀 物406、408的適當滲雜濃度和/或設定延伸部405、407中的滲雜濃度來設定。
[0100] 任何偽裝技術(shù)的價值是隱藏物理結(jié)構(gòu)中的信息,所述物理結(jié)構(gòu)在典型的逆向工程 工藝中不是可見的。已知先進的偽裝單元設計使用例如晶體管漏極或溝道注入的修改W直 接更改功能。該樣的偽裝設計使特別的晶體管器件和對應的非標準單元的構(gòu)建成為必要。 該能夠是附加可靠性風險的來源和昂貴的工藝,特別地在生產(chǎn)應當在代工廠中完成的情況 下。該樣的設計通常包含由大量的晶體管構(gòu)成的一組看起來同樣的超級單元。該些單元具 有不同的邏輯功能,其中修改的晶體管確定不同的邏輯功能。該樣的單元典型地能夠在規(guī) 則的標準單元當中被容易地識別,該規(guī)則的標準單元針對最小的晶體管計數(shù)而被優(yōu)化。偽 裝保護在于找出嵌入在巧片中的大量單元的邏輯功能的困難。基本上,成功的克隆攻擊要 求多次探測W獲得所有該些單元的真值表。
[0101] 對比之下,基于ICBC-X的W防逆向工程的保護能夠被視為單獨基于典型地例如 在混合vth設計中可用的標準器件。ICBC-X能夠被視為使用隱藏的信息。借助于典型的 逆向工程來識別ICBC-X的有效狀態(tài)(VALIDState)是不可能的,即ICBC- 1和ICBC-0實例關(guān)于典型的逆向工程方法是不可區(qū)分的。泄露隱藏的信息例如要求強加輸入信號并 且探測ICBC-X的輸出信號。
[0102] 在ICBC-X中,隱藏的信息是單個布爾值,其能夠例如被用來改變隨后組合邏輯 的邏輯功能。例如,實施例可W A. 直接使用一個或多個ICBC-X單元的隱藏的布爾變量作為到組合邏輯網(wǎng)絡的輸入; 和/或 B. 將ICBC-X結(jié)構(gòu)嵌入在更大的超級單元中,其實現(xiàn)了更復雜(n,m)-布爾函數(shù)F (X)(即n輸入、m輸出的布爾函數(shù))。
[0103] 方案A例如可W被用來隱藏秘密的二進制向量(例如被用作密鑰或配置)。該秘密 向量例如被選擇為足夠大W阻礙探測攻擊。攻擊努力應當至少隨著隱藏的位的數(shù)目線性增 加。例如,應當注意的是,不存在允許順序讀出秘密向量的幾個位(例如經(jīng)由移位寄存器鏈) 的電路。能夠期望的是,對于攻擊者的成功概率超線性地下降,因為幾乎每個探測點通常要 求FIB(聚焦離子束)修改。因此,對于單個FIB修改的成功概率被倍增。在該種情況下, 對于攻擊者的成功概率將會隨著位的數(shù)目而指數(shù)下降。
[0104] 利用方案B能夠?qū)崿F(xiàn)適少由典型的逆向工程)無法識別的邏輯功能。而且,可W 構(gòu)建具有同樣的布局但提供不同邏輯功能的單元。
[0105] 圖5示出ICBC-X標準單元500的示例。
[0106] ICBC-X標準單元500包含如上面參考圖3描述的ICBC-X501,其中輸入信號 S1是被第一反相器502反相的輸入信號S,輸入信號SO是輸入信號S,第一輸出信號Y是被 第二反相器503反相的輸出信號化并且第二輸出信號Z是被第S反相器504反相的輸出 信號BR。圖解地,輸入信號S1和輸出信號化和BR被緩沖W便使ICBC-X獨立于S1的輸 入斜率和化與BR處的輸出負載。
[0107] 對于ICBC- 1 的情況,即對于Vthz(p)〉Vthy(P),Vthz(n)〉Vthy(n),單元 500 (在該種情況下ICBC- 1單元)實現(xiàn)布爾方程 2T二麗, 然而,對于ICBC-0 的情況,即對于Vthz(p)<Vthy(p),Vthz(n)<Vthy(n), r'=I. 玄。
[010引因此,對于一般的ICBC-X的情況 F尤-+ 芽' 采 +'J, X..等-tA' :::::S1- 。
[0109] 圖6示出依據(jù)實施例的ICBC-X復用器600。
[0110] ICBC-X復用器600包含ICBC-X標準單元601,如在圖5中圖解的。
[01U] 輸出信號Y與輸入信號A-起被饋送到與或(AND0R) 口 602的第一或(OR)。
[0112] 輸出信號Z與輸入信號B-起被饋送到與或口 602的第二或(OR)。
[0113] 與或口 602的輸出信號由W下給出:
[0114] 該意味著在ICBC-X被啟用(即對于S= 1)的情況下,A或B被選擇是輸出C,然 而對于S= 0輸出C被設定到1。
[0115] 圖7示出依據(jù)另一個實施例的ICBC-X復用器700。
[0116] ICBC-X復用器700包含ICBC-X標準單元701,如在圖5中圖解的。
[0117] 輸出信號Y被反相并且與輸入信號A-起被饋送到與或口 702的第一或(OR)。
[0118] 進一步,輸出信號Y與輸入信號B-起被饋送到與或口 702的第二或(OR)。
[0119] 與或口 702的輸出信號由W下給出:
[0120] 該意味著在ICBC-X被啟用(即對于S= 1)的情況下,B或A被選擇是輸出C,然 而對于S= 0輸出C被設走到A。
[012。 因此,利用該個或類似的電路系統(tǒng),不可能實現(xiàn)數(shù)據(jù)路徑元件的抗逆向工程排列, 例如S盒排列或不同ALU配置。
[0122] 逆向工程的復雜性甚至能夠通過連結(jié)ICBC-X,即通過將ICBC-X輸出連接到另 一個ICBC-X誦同類型(即ICBC- 0或ICBC- 1)或不同類型中的任一個)的選擇輸入 (即針對輸入信號S的輸入端子)來增加。在該種方式下,能夠?qū)崿F(xiàn)復雜無法識別的邏輯功 能。
[0123] 用于加密或解密密鑰的靜態(tài)分量(份額)能夠通過使用幾個ICBC-X單元來實現(xiàn)。 該意味著隱藏的值X被用來通過應用某一(例如密碼)函數(shù)G(即Z=G(X,Y))修改存儲 在非易失性存儲器中的某些秘密值Y。值Z能夠例如被用作用于巧片的配置設定、用作加密 密鑰(例如用于存儲器、例如用于AES搞級加密標準)加密)等。
[0124] 為了使得ICBC-X單元的個別表征更難,單元可W幾乎總是被保持在禁用模式中 (即在預充電狀態(tài)中)除了在其隱藏的值(對于X而言0或1)被讀出時短的時間間隔W外。 該值例如可W被立即使用,例如在某一狀態(tài)機中或作為密鑰的值,并且然后該單元被切換 回到預充電模式。在單元被讀取的時間間隔能夠被隨機化W進一步增加針對成功攻擊的努 力。
[0125] 作為第二選擇,ICBC-X單元能夠被保持禁用,除了在其中隱藏的值被復制到某 一瞬態(tài)存儲器元件(例如寄存器、鎖存器或RA^O的短的時間段內(nèi)^外。然后,ICBC-X單元 被再次禁用并且邏輯功能/秘密的值僅僅通過從存儲器元件重新得到它而可獲得。因此, 秘密的值在巧片的每次掉電中被刪除,該增加了安全性。
[0126]ICBC-X單元能夠與順序器件例如與主從觸發(fā)器組合,W便隱藏觸發(fā)器的初始 值。在圖8中示出示例。
[0127] 圖8示出觸發(fā)器初始化電路800。
[012引 電路800包含ICBC-X單元801,如在圖5中圖解的。
[0129] 輸入信號S和輸出信號Y被饋送到或與(0RAND) 口 802的第一與(AND)。
[0130] 輸入信號A和反相的輸入信號S被饋送到或與口 802的第二與。
[0131] 電路800進一步包含D觸發(fā)器803,其被供給有在其時鐘輸入處的時鐘信號CKW 及在其D輸入處的或與口 802的輸出信號D。
[0132] 為了初始化,S被設定到1從而啟用ICBC-X單元801并且利用或與復用器802 來選擇Y用于觸發(fā)器的輸入D,使得Y在其時鐘CK的上升沿時被寫入到觸發(fā)器803中。當 S然后被再次重置到0時,ICBC-X單元801被重置到預充電并且對于D"規(guī)則"輸入A被 復用器802選擇。
[0133] 將該個資口(dodge)應用到狀態(tài)機,即在A是Q的函數(shù)(并且表示狀態(tài)機的當前狀 態(tài)的其它觸發(fā)器輸出)的情況下,可能的是,利用不能夠被(典型的)逆向工程識別的秘密狀 態(tài)來初始化狀態(tài)機并且增加其它分析方法的努力。順序切換單元的示例被圖解在圖9中。
[0134] 圖9示出ICBC-X切換觸發(fā)器電路900。
[0135] 電路900包含ICBC-X單元901,如在圖5中圖解的。
[0136] 輸入信號S和輸出信號Y被饋送到或與口 902的第一與。
[0137]D觸發(fā)器903的反相的輸出信號Q和反相的輸入信號S被饋送到或與口 802的第 二與。
[0138]D觸發(fā)器903被供給有在其時鐘輸入處的時鐘信號CKW及在其D輸入處的或與口 902的輸出信號D。
[0139] 如上述的,ICBC-X單元901表示本征和隱藏的布爾值。在如由電路900實施的 順序切換單元中,附加的復用器(或與902)和觸發(fā)器903被附著到ICBC-X單元901。在 重置(信號S使能)時,觸發(fā)器903從ICBC-X單元901取得X值。每一次活動的時鐘邊沿 被時鐘信號CK施加,在觸發(fā)器并且由此觸發(fā)器輸出信號Q中的值被互補。
[0140] 電路900能夠被使用在有限狀態(tài)機或計數(shù)器類型的結(jié)構(gòu)W實施具有隱藏編碼的 下一個狀態(tài)函數(shù)。應當注意的是,ICBC-X、復用器和觸發(fā)器的電路系統(tǒng)能夠被組合并且集 成在一個單個優(yōu)化的電路中。
[0141] 圖10示出依據(jù)另一個實施例的ICBC-X1000。
[0142] 在ICBC-X1000中,P溝道陽T和n溝道陽T的角色關(guān)于在圖3中示出的ICBC-X300被互換。
[014引ICBC-X1000包含第一P溝道陽T(場效應晶體管)1001,其源極端子被連接到 高的供給電勢(V孤),其漏極被連接到第一n溝道FET1003的漏極端子并且其柵極被連接 到第一n溝道陽T1003的柵極。第一n溝道陽T1003的源極被禪合到接收輸入信號SO 的第一輸入端子1002。
[0144]ICBC-X1000進一步包含第二P溝道陽T1004,其源極端子被連接到高的供給 電勢,其漏極被連接到第二n溝道FET1005的漏極