用于經由邏輯門加密來提高機密性的系統(tǒng)和方法
【專利說明】
[0001] 相關專利申請的交叉引用
[0002] 本申請涉及于2014年10月1日提交的名稱為"Systems and Methods f or Enhancing Confidentiality Via Logic Gate Encryption"、列出的發(fā)明人為Robert Michael Muchsel^Donald Wood Loomis III^Edward Tangkwai Ma、Hung Thanh Nguyen、 Nancy Kow Iida和Mark Alan Lovell的美國臨時申請62/058564并要求享有其優(yōu)先權的權 益,此處通過引用的方式將該美國臨時申請的全部內容并入全文。
技術領域
[0003] 本發(fā)明涉及數字電子設備中的安全應用,并且更具體地涉及為數字邏輯門加密的 系統(tǒng)、設備和方法。
【背景技術】
[0004] 用于逆向操縱(reverse engineer)物理IP的方法日益強大、可自動化并且可負擔 得起。當今,富有經驗的攻擊者不怎么費力就能訪問并逆向操縱嵌入在硬件中的秘密加密 及解密密鑰。不到15,000美元就能獲取數字電路的完整、帶注釋的分層網絡表。這包括無法 獲得專利或以其它方式受保護的電路一一公開所有權信息。這對芯片制造商及其顧客造成 若干嚴重的問題。一個相關問題是因失竊和設備的未授權分配而導致的密鑰暴露。例如,分 包商可能銷售過量的制造設備給他人,或以另一商標名稱轉售未能符合承包商生產規(guī)格的 不達標的設備。
[0005] 結果,制造商被迫花費可觀的時間及金錢來開發(fā)對策以威懾對手。長期以來在軟 件領域使用了若干加密、混淆和隱藏信息的方法。然而迄今,在硬件領域還沒有可行的等效 方法。也沒有產生能夠實施這種技術的硬件。
[0006] 需要的是允許理想地使用兼容現有制造工具和過程的自動化步驟來保護硬件域 中的有價值的IP和信息的有效系統(tǒng)和方法。
【附圖說明】
[0007] 參考本發(fā)明的實施例,可以在附圖中示出其示例。這些圖片旨在進行說明、而非進 行限制。雖然一般在這些實施例的背景下描述本發(fā)明,但應該理解,這并不旨在將本發(fā)明的 范圍限制于這些特定的實施例。
[0008] 圖片("圖")1A顯示了用于雙輸入NAND門的現有技術真值表。
[0009] 圖1B顯示了用NAND邏輯表示的邏輯函數的現有技術示例。
[0010] 圖2是根據本發(fā)明的各實施例的用于解密邏輯密鑰的總體圖示。
[0011] 圖3A顯示了具有四個邏輯門的示例性邏輯函數。
[0012] 圖3B示出了根據本發(fā)明的各實施例的用于圖3A中的示例性邏輯函數的邏輯密鑰 比特。
[0013] 圖4示出了根據本發(fā)明的各實施例的使用普通邏輯塊的示例性邏輯函數。
[0014] 圖5示出了根據本發(fā)明的各實施例的通用可配置邏輯單元。
[0015] 圖6示出了根據本發(fā)明的各實施例的圖5中所示的通用可配置邏輯單元的細節(jié)。
[0016] 圖7示出了根據本發(fā)明的各實施例的用于圖5和圖6的通用可配置邏輯單元的示例 性邏輯單元構造。
[0017] 圖8為根據本發(fā)明的各實施例的用于圖5和圖6的通用可配置邏輯單元的示例性邏 輯單元輸出。
[0018] 圖9示出了通過使用無效或錯誤密鑰來解密邏輯函數的效果。
[0019] 圖10示出了根據本發(fā)明的各實施例的使用安全的物理元件的邏輯密鑰保護。
[0020] 圖11A和11B示出了根據本發(fā)明的各實施例的由初始邏輯函數計算等效信息。
[0021] 圖12示出了根據本發(fā)明的各實施例的應用于圖3A的邏輯函數的修改版本的軟件 處理。
[0022] 圖13為根據本發(fā)明的各實施例的用于確定邏輯密鑰的說明性過程的流程圖。
【具體實施方式】
[0023] 在下面的描述中,出于解釋的目的,闡述了具體細節(jié)以提供對本發(fā)明的理解。然 而,對于本領域技術人員顯而易見的是,無需這些細節(jié)也能實現本發(fā)明。本領域技術人員會 意識到,可以以多種方式并且使用多種手段來實現下述的本發(fā)明的實施例。本領域技術人 員還會意識到,額外的修改、應用和實施例都在本發(fā)明的范圍內,如本發(fā)明可以提供實用性 的額外領域。因此,下述實施例說明了本發(fā)明的具體實施例并且意在避免使本發(fā)明難以理 解。
[0024] 本說明書中引用"一個實施例"或"實施例"意指在本發(fā)明的至少一個實施例中包 含結合實施例所描述的特定特征、結構、特性或功能。在本說明書中不同地方出現的短語 "在一個實施例中"、"在實施例中"等未必指的是同一實施例。
[0025] 此外,附圖中的部件之間或方法步驟之間的連接不限于直接作用的連接。相反,可 以通過增加中間部件或方法步驟來修改或以其它方式改變部件或方法步驟之間的附圖所 示的連接,而不會背離本發(fā)明的教導。
[0026] 圖1A顯示了用于雙輸入NAND門的現有技術真值表。公知的是能夠使用諸如門等邏 輯元件的基本塊來表示數字邏輯。在非常基礎的級別,任何任意的數字邏輯函數都能排他 地用NAND門或N0R門來實施。實踐中,標準的單元庫包含比僅有NAND門更復雜的器件,但應 用的原理相同。為了更好地理解本發(fā)明,本文只顯示了簡單的門。
[0027]圖1中的真值表100顯示了用于兩個輸入X和Y的NAND門的輸出值F,其指示邏輯函 數的輸出由其輸入確定。圖1B顯示了用NAND門表示邏輯函數的示例。能夠任意或按照慣例 選擇邏輯值160。彼此適當連接的五個NAND門的塊能夠用于輸出圖1B所示的邏輯函數170中 的任一個。作為示例,表150中的值#010表示AND函數180,假如使用NAND門的適當組合,AND 函數180能由表達式N0T(N0T(X AND Y) )190表示?;谶@一原理,能夠通過將多個基本NAND 門組合成較大的邏輯構建塊來表示任何邏輯函數。
[0028]現在,如果邏輯函數的結果不僅由其輸入確定,另外還由密鑰(之后稱為"邏輯密 鑰")確定,如本發(fā)明所示的,那么不能僅通過逆向操縱邏輯函數本身來確定該邏輯函數的 功能,因為邏輯密鑰保持未知,并且邏輯函數的輸出能夠具有任何可能的結果。
[0029] 邏輯密鑰通常為能夠存儲在例如防篡改存儲元件中的加密密鑰。在本發(fā)明的一個 實施例中,邏輯密鑰用于確定給定邏輯構建塊的物理布線,以實際上為邏輯構建塊加密。結 果,在不了解邏輯密鑰的情況下對構建塊的逆向操縱只顯示構建塊能夠用來表示任何可能 的邏輯函數。然而,逆向操縱的邏輯塊不會暴露邏輯的實際函數??梢灾苯邮褂眠壿嬅荑€, 即無中間存儲,使得每個比特控制一個邏輯元件。在一個實施例中,通過使用秘密的解密密 鑰解密數據來創(chuàng)建邏輯密鑰。
[0030] 圖2是根據本發(fā)明的各實施例的用于解密邏輯密鑰的總體圖示。加密的邏輯密鑰d 204和解密密鑰X 206用于使用數學函數f(d,x)208生成解密的邏輯密鑰k 210。邏輯密鑰k 210最終為給定的邏輯構建塊(未示出)確定適當的連接,如前所述。需要秘密的解密密鑰X 206和加密的邏輯密鑰d 204來計算k 210。在一個實施例中,解密密鑰X 206與解密的邏輯 密鑰210的長度不同。例如,X可以是用于解密相對較長的邏輯密鑰k 204的128比特AES密 鑰。本領域普通技術人員會理解可以使用對稱以及非對稱密碼。
[0031] 加密的邏輯密鑰204可以存儲在安全的存儲器中。將關于圖10來討論間接存儲邏 輯密鑰的另一示例。本領域普通技術人員會理解,每個方法具有其自己的優(yōu)點,取決于給定 系統(tǒng)的實現方式和細節(jié)。本領域普通技術人員也將理解,對于能夠如何布置和實施邏輯構 建塊存在若干可能,本文僅詳細討論其中的某些可能性。
[0032] 在一個實施例中,為給定的要加密的邏輯電路(例如,執(zhí)行敏感算法的二維x-y電 路)自動確定加密的邏輯密鑰d 204。理想地,算法已經被測試并且其適當的工作條件已經 被驗證。
[0033]圖3A顯示了具有四個邏輯門的示例性邏輯函數。如圖3A所示,數字邏輯300中的四 個邏輯門302-308互相連接,并用其序列號S0 302至S3 308標記,其中S0 302為0R門,S1 304為AND門,S2 306為NOT門,并且S3 308為NAND門。對于任何給定的輸入320w、x、y和z,邏 輯300輸出函數N0T(AND(z,0R(N0T(y),AND(w,x))))。根據本發(fā)明的各實施例,圖3B顯示了 對應于每個邏輯門類型370的邏輯密鑰比特360。邏輯密鑰比特360的串聯(lián)為此處的示例性 函數生成完整的邏輯密鑰011010001000