TW201918923A - 安全邏輯系統及操作安全邏輯系統的方法 - Google Patents
安全邏輯系統及操作安全邏輯系統的方法 Download PDFInfo
- Publication number
- TW201918923A TW201918923A TW107120726A TW107120726A TW201918923A TW 201918923 A TW201918923 A TW 201918923A TW 107120726 A TW107120726 A TW 107120726A TW 107120726 A TW107120726 A TW 107120726A TW 201918923 A TW201918923 A TW 201918923A
- Authority
- TW
- Taiwan
- Prior art keywords
- string
- encrypted
- circuit
- function
- physical non
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
安全邏輯系統包含物理不可複製函數裝置、物理不可複製函數暫存器及加密電路。物理不可複製函數裝置根據物理不可複製函數裝置的至少一部分隨機物理特徵建立加密字串。物理不可複製函數暫存器耦接於物理不可複製函數裝置,並自物理不可複製函數裝置載出加密字串。加密電路耦接於物理不可複製函數暫存器,並利用加密字串來操作系統字串以產生加密資料。
Description
本發明是有關於一種安全邏輯系統,特別是一種利用物理不可複製函數(physically unclonable function,PUF)的安全邏輯系統。
隨著對實體智慧財產(physical intellectual property)之逆向工程的自動化,實體攻擊和旁通道(side-channel)攻擊變得越來越強大並且越來越符合經濟效益,使得敏感資訊被暴露的疑慮也隨之提升。為了避免有價值的技術被競爭對手抄襲,同時避免私人裝置被未授權者存取,製程和裝置的主控者常需花費大量的時間及金錢來研發反監控的方法以避免威脅入侵。
為了保護系統免於外來攻擊,並提升逆向工程的困難度,物理不可複製函數(physical unclonable function,PUF)之積體電路的特性使其成為了一個可行的方法。
物理不可複製函數之積體電路可以根據其製造過程中所產生之無法預期的物理特性來產生特徵字串。由於製程的差異可能來自於控制過程中的微小變化、材料內容及/或環境參數的偏移。這些自然的變異不僅在製造過程中難以避免,同時也非常難以重建,因此想要複製出相同的特徵字串非常困難。
一般而言,在系統啟動且其中的電路元件進入穩態之後,物理不可複製函數便會產生一組特定的特徵字串,這組特徵字串會與元件的物理微結構部分相關。由於物理微結構的生成條件會隨時間和環境而變化,因此根據其物理微結構的生成條件的差異,就足以讓每個元件具有其獨特的性質。然而,雖然物理不可複製函數能夠提供系統安全的基礎,但如何將物理不可複製函數有效且便宜地應用到系統當中以確保資訊安全仍然是目前需探討的議題。
本發明之一實施例提供一種安全邏輯系統,安全邏輯系統包含物理不可複製函數(physically unclonable function,PUF)裝置、物理不可複製函數暫存器、及加密電路。
物理不可複製函數裝置根據物理不可複製函數裝置的至少一部分隨機物理特徵建立加密字串。物理不可複製函數暫存器耦接於物理不可複製函數裝置,並自物理不可複製函數裝置載出加密字串。加密電路耦接於物理不可複製函數暫存器,並利用加密字串來操作系統字串以產生加密資料。
本發明之另一實施例提供一種操作安全邏輯系統的方法,安全邏輯系統包含物理不可複製函數裝置、物理不可複製函數暫存器及加密電路。
操作安全邏輯系統的方法方法包含物理不可複製函數裝置根據物理不可複製函數裝置的至少一部分隨機物理特徵建立加密字串,物理不可複製函數暫存器自物理不可複製函數裝置載出加密字串,及加密電路利用加密字串來操作系統字串以產生加密資料。
第1圖為本發明一實施例之安全邏輯系統100的示意圖。安全邏輯系統100包含物理不可複製函數裝置110,物理不可複製函數暫存器120,及加密電路130。
物理不可複製函數裝置110可以根據物理不可複製函數裝置110的至少一部分隨機物理特徵建立加密字串P1。在矽製程中的微小變異使得物理不可複製函數裝置110能夠產生獨特的加密字串P1,而加密字串P1則可以協助提供深入的安全保護。舉例來說,安全邏輯系統100可以藉由將物理不可複製函數裝置110所產生的加密字串P1與看似尋常且簡明的邏輯結構糾結纏繞(entangled)後來確保資訊的機密性,使得每個裝置都具有獨特的控制路徑及/或資料型式。
物理不可複製函數暫存器120耦接於物理不可複製函數裝置110,並可自物理不可複製函數裝置110中載出加密字串P1。物理不可複製函數暫存器120可設計成能夠即時抹除,也就是其內容可以被控制成被全部清除或者重新打亂。
在本發明的有些實施例中,物理不可複製函數裝置110可包含一個以上的物理不可複製函數單元,也就是說,物理不可複製函數裝置110可以產生複數個獨特的字串。在此情況下,加密字串P0及P1的位址可以在裝置初始化的階段中由韌體決定,或者是在系統上電重置(reset)時根據其預設值來決定。
在有些實施例中,用來載出加密字串P0及P1的系統初始化條件可以儲存在安全的環境或一次性寫入(one-time programming)電路中,例如反熔絲(anti-fuse)電路。在此情況下,倘若物理不可複製函數暫存器120因為安全威脅而被重置時,物理不可複製函數裝置110就可以根據先前儲存的初始化條件重新產生加密字串P0及P1,使得系統得以重建。
加密電路130耦接於物理不可複製函數暫存器120,且加密電路130可利用加密字串P1來操作系統字串S1以產生加密資料S1e。系統字串S1可例如但不限於為記憶體位址、記憶體資料或指令。也就是說,加密電路130可以利用布林方程式或其他的演算法來將加密字串P1與欲保護的系統字串S1相混合。
舉例來說,加密電路130可以將加密字串P1做為種子以在系統字串S1中選擇並反相至少一位元來對系統字串S1執行超N碼二元編碼(Excess-N binary coding)。也就是說,獨特的加密字串P1可以用來決定系統字串S1中的哪些位元會產生變異。
舉例來說,如果加密字串P1的值為1,則加密電路130可以將系統字串S1中的第0位元反向,亦即超1碼(Excess-1)。如果加密字串P1的值為2,則加密電路130可以將系統字串S1中的第1位元反向,亦即超2碼(Excess-2)。如果加密字串P1的值為4,則加密電路130可以將系統字串S1中的第2位元反向,亦即超4碼(Excess-4)。再者,如果加密字串P1的值為3,則加密電路130可以將系統字串S1中的第0位元及第1位元皆反向,亦即超3碼(Excess-3)。
透過超N碼二元編碼的機制,就可以輕易地利用加密字串P1來操作系統字串S1以創造出難以預期的變異。在系統字串S1為記憶體位址的情況下,此難以預期的變異還可超越實體位址空間而擴展至虛擬的位址空間,使得儲存單元的邏輯組態能具有更多層的保護。
再者,在有些實施例中,由於大部分的儲存定址機制都是多維的,因此透過從物理不可複製函數裝置110中相異之物理不可複製函數單元載出彼此不相關的加密字串,就可以對記憶體位址中的段(segment)、列及行分別進行加密,使得記憶體定址更加難以預測。
此外,當需要利用系統字串S1來執行系統所需的操作時,超N碼二元編碼也可輕易地利用加密字串P1來解碼。在第1圖中,安全邏輯系統100還可包含解密電路140及系統功能電路150。
解密電路140可耦接至物理不可複製函數暫存器120,並可根據自物理不可複製函數暫存器120中取出的加密字串P1以對加密資料S1e進行解密來還原出系統字串S1。舉例來說,解密電路140可以根據加密字串P1將加密資料S1e中先前被反向的位元再次反向以還原得出系統字串S1。
在系統字串S1被解密電路140還原之後,耦接至解密電路140的系統功能電路150就可以根據系統字串S1執行對應的操作。舉例來說,如果系統字串S1是記憶體位址,系統功能電路150就可根據系統字串S1所指示的位址向對應的儲存空間執行讀取操作或寫入操作。
在有些實施例中,解密電路140可以設置在加密電路130與系統功能電路150的訊號路徑上,且解密電路140可以在系統字串S1即將傳入系統功能電路150之前,才對解碼資料S1e進行解碼以還原出系統字串S1,如此一來,便可減少已被還原的系統字串S1被逆向工程或旁通道攻擊所擷取。
此外,在有些實施例中,系統字串S1為記憶體位址,且由加密字串P1所製造出的變異主要是用來減少存取記憶體時的可預測性,在此情況下,加密資料S1_e也可在不被解密的情況下,直接用做記憶體系統的實體位址以存取內部的資料。也就是說,解密電路140可選擇性的設置。舉例來說,記憶體系統或系統功能電路150可以直接使用加密資料S1e,而無需另外透過解密電路140進行解密,如此一來,便可在每個裝置上創造出獨特的記憶體映射(mapping)機制。
再者,為了讓存取物理不可複製函數裝置110的過程更加隨機而難以預測,在第1圖中,自物理不可複製函數裝置110中取得的加密字串P0亦可用來對物理不可複製函數裝置110的位址進行加密。也就是說,當系統要求自物理不可複製函數裝置110中取出不可預測的字串時,系統原先所使用的預設位址也可利用加密字串P0及上述相似的方法來操作。舉例來說,預設的位址可以和加密字串P0糾結纏繞後以產生出用來載出加密字串的位址。如此一來,就能夠保護物理不可複製函數裝置110的存取過程,並進一步提升系統安全。
雖然加密電路130可以透過超N碼二元編碼機制將加密字串P1帶入系統當中,然而本發明並不以此為限。舉例來說,在有些實施例中,如果任意邏輯函數(arbitrary logic function)可由兩條互斥的路徑來實作,例如透過反及閘及反或閘實作,則對於特定的操作,加密電路130也可根據加密資料S1e來選擇僅啟用兩條可能路徑中的其中一條,使得內部運作的邏輯更加複雜。
第2圖為本發明另一實施例之安全邏輯系統200的示意圖。安全邏輯系統200與安全邏輯系統100具有相似的結構。然而在安全邏輯系統200中,加密電路230可包含複數個邏輯電路232[0]至232[N-1],其中N為正整數。每一個邏輯電路232[0]至232[N-1]可以接收系統字串S2中的一個位元S2[0]至S2[N-1]以及加密字串P2中的一個位元P2[0]至P2[N-1],並可對系統字串S2的其中一個的位元S2[0]至S2[N-1]以及加密字串P2的其中一個位元P2[0]至P2[N-1]執行邏輯運算以產生出加密資料S2e中的一個位元。
舉例來說,邏輯電路232[0]可以對加密字串P2的位元P2[0]及系統字串S2中的位元S2[0]執行邏輯運算,而邏輯電路232[N-1]可以對加密字串P2的位元P2[N-1]及系統字串S2中的位元S2[N-1]執行邏輯運算。
在有些實施例中,由於系統字串S2可能必須被還原以執行後續的操作,因此可選擇讓邏輯電路232[0]至232[N-1]執行可逆的邏輯運算。例如但不限於,邏輯電路232[0]至232[N-1]可為互斥或(XOR)閘。也就是說,加密資料S2e是透過對加密字串P2及系統字串S2執行互斥或的運算所產生。在此情況下,於後續的操作中,便可透過對加密資料S2e與加密字串P2執行互斥或的運算來還原取出原來的系統字串S2。
在第2圖中,安全邏輯系統200還可包含解碼器260,解碼器260可耦接至物理不可複製函數暫存器120以自物理不可複製函數裝置110中取得獨特的加密字串P3。解碼器260可為N對2N
的解碼器(在此實施例中可例如為2對4解碼器),並可將輸入的訊號解碼以輸出解碼資料D。表1為解碼器260在輸入訊號為兩位元之系統字串S30之情況下所得出的真值表。表2為解碼器260在輸入訊號為兩位元之加密資料S3e之情況下所得出的真值表,其中加密資料S3e是透過對系統字串S3及加密字串P3執行互斥或運算所取得。在第2圖的實施例中,加密資料S3e可以利用安全邏輯系統200中的加密電路230’產生。
表1
表2
在表2中,同樣根據表1所示的系統字串S3,會因為用以加密之加密字串P3的值而得出四種不同的結果。如此一來,加密字串P3就可以與一般的邏輯運算相混合,因此能夠透過物理不可預測函數所主控的邏輯路徑,創造出足以改變裝置能量損耗及傳遞延遲的可組態(configurable)的邏輯結構,使得逆向工程更加困難。在第2圖中,安全邏輯系統200還可包含路徑選擇器270。在此情況下,在路徑選擇器270所提供的多條資料路徑中,安全邏輯系統200便可根據解碼資料D來選擇對應的資料路徑。
在第2圖中,安全邏輯系統200可包含解密電路240及系統功能電路250。解密電路240可耦接至物理不可預測函數暫存器120,並可根據自物理不可預測函數暫存器120中取得的加密字串P2來對加密資料S2e進行解密以還原出系統字串S2。在此情況下,解密電路240可以根據解碼資料D追蹤分析出加密資料S2e,並可對加密資料S2e及加密字串P2執行互斥或的運算以還原出原始的系統字串S2。
然而,本發明的加密電路230並不限於執行互斥或運算。在有些實施例中,加密電路230也可執行其他的邏輯運算,包含非及(NAND) 運算、及(AND)運算、非或(NOR)運算、或(OR)運算、互斥或(XOR)運算、互斥非或(XNOR)運算及非(NOT)運算中的至少一者,以產生出加密資料S2e,而解密電路240則會根據對應的運算將加密資料S2e還原成系統字串S2。在有些實施例中,混合的邏輯運算可以在應用在加密電路230或者是應用在其他的邏輯路徑及邏輯結構中,使得系統的行為更難預測。
在系統字串S2被還原之後,耦接至解密電路240的系統功能電路250就可以根據系統字串S2來執行對應的操作。舉例來說,若系統字串S2是需被寫入的資料,則系統功能電路250便會將系統字串S2儲存在對應的儲存空間中。
在第2圖中,安全邏輯系統200還可包含設置在解密電路240及解碼器260之間的路徑選擇器270。路徑選擇器270可以自多條可能的路徑中選擇出一條傳輸路徑供加密資料S2e傳輸使用,如此一來,就可將傳輸流程變得更加複雜,並讓系統行為更加難以分析。在有些實施例中,路徑選擇器270可以根據解碼資料D來選擇加密資料S2e的傳輸路徑。
在有些實施例中,路徑選擇器270也可以根據系統產生的亂數或物理不可複製函數裝置110所產生的另一個獨特字串來選擇傳輸路徑。
在此情況下,設置在路徑選擇器270及系統功能電路250之間的解密電路240可在靠近系統功能電路250處將加密資料S2e還原成系統字串S2,以避免系統字串S2在傳輸的過程中,被旁通道攻擊或逆向工程擷取。
再者,這種糾結纏繞的解碼技術也可應用在傳輸路徑上以保護敏感的資訊。舉例來說,在有些實施例中,也可根據解碼資料D自記憶體中選擇特定的資料直接傳送至系統功能電路250。
然而,在有些實施例中,如果在安全性考量上允許的話,也可以在系統功能電路250需要利用系統字串S2之前,直接將加密資料S2e傳送至解密電路240來進行解密,而不再另外經過路徑選擇器270。此外,在有些其他實施例中,在儲存敏感資訊時,路徑選擇器270也可和記憶體組(memory bank)共同用來選擇每個裝置上的特定資料。
舉例來說,第3圖為本發明另一實施例之安全邏輯系統300的示意圖。安全邏輯系統200及安全邏輯系統300具有相似的結構。然而,在安全邏輯系統300中,系統功能電路250’為儲存裝置。在此情況下,路徑選擇器270’可耦接至系統功能電路250’以作為位址排線,而記憶體380可以耦接至系統功能電路250’以提供輸入資料DI。在第3圖中,解碼資料可被分為兩個部分,亦即部分解碼資料D1及部分解碼資料D2,以分別作為路徑選擇器270’及記憶體380的輸入資訊。然而,在有些實施中,路徑選擇器270’及記憶體380的輸入也可根據系統的需求而改以兩個不同的解碼器來產生。在此情況下,儲存資料的安全性也可進一步提升。
也就是說,本發明所列舉之實施例中的技術可以獨立應用,也可以根據系統的需求以任意的順序來互相組合。第4圖為本發明另一實施例之安全邏輯系統400的示意圖。安全邏輯系統400包含物理不可複製函數裝置110、物理不可複製函數暫存器120、加密電路130及230、記憶體480、路徑選擇器270、解密電路240及系統功能電路250。
在第4圖中,加密電路130可藉由操作系統字串S1來產生加密資料S1e,而解碼器260還可對加密資料S1e進行解碼以產生解碼資料D以作為自記憶體480中取得系統字串S2的位址。加密電路230可以對系統字串S2進行加密以產生加密資料S2e。也就是說,安全邏輯系統100及200所使用的加密方法可以組合成安全邏輯系統400所使用的方法以對資料路徑提供完整的保護。不僅如此,在第4圖中,路徑選擇器270還可提供多條可能的資料路徑,而安全邏輯系統400可根據加密字串P3從路徑選擇器270所提供的多條資料路徑中選出加密資料S2e的資料路徑。如此一來,資料路徑的選擇也可被隨機化,使得系統的行為更加難以預測。在加密資料S2e經由所選取的資料路徑傳送之後,解密電路240最終可根據加密字串P2來對加密資料S2e進行解密以還原出系統字串S2,加密資料S2e並可用於系統功能電路250的後續操作。
第5圖為安全邏輯系統100的操作方法500的流程圖。方法500包含步驟S510至S550。
S510: 物理不可複製函數裝置110根據物理不可複製函數裝置110的至少一部分隨機物理特徵建立加密字串P1;
S520: 物理不可複製函數暫存器120自物理不可複製函數裝置110載出加密字串P1;
S530: 加密電路130自物理不可複製函數暫存器120中取出加密字串P1;
S532: 加密電路130利用加密字串P1來操作系統字串S1以產生加密資料S1e;
S540: 解密電路140自物理不可複製函數暫存器120中取出加密字串P1;
S542: 解密電路140根據加密字串P1對加密資料S1e進行解密以還原出系統字串S1;
S550: 系統功能電路150根據系統字串S1執行對應功能。
根據方法500,系統字串S1可以與獨特的加密字串P1相混合,使得相同的資料在經過相同的操作之後會產生迥異的結果。在有些實施例中,系統字串S1可以是記憶體位址、記憶體資料或指令,而方法500可以利用不同的演算法或不同的布林操作來對各種類型的系統字串進行加密,使得系統中關鍵功能的操作流程和資料路徑變得複雜,並讓旁通路攻擊和逆向工程更加困難。
在有些實施例中,加密電路130可以在步驟S532中,將加密字串P1做為種子以在系統字串S1中選擇並反相至少一位元來對系統字串S1執行超N碼二元編碼。然而,在有些其他實施例中,加密電路130可能會採取其他的演算法或其他的邏輯運算來操作系統字串S1。舉例來說,加密電路130可以對系統字串S1及加密字串P1執行互斥或操作以產生加密資料S1e。
在系統字串S1已經與與加密字串P1混合之後,加密電路140可在步驟S540中取出加密字串P1,並在步驟S542中據以將系統字串S1還原。如此一來,系統功能電路150就能夠在步驟S550中利用系統字串S1來執行後續的操作。
在有些實施例中,還可以透過無法預期的邏輯路徑來改變裝置的電能損耗和傳輸延遲等特性以進一步保護加密資料S1e。第6圖為安全邏輯系統200的操作方法600的流程圖。方法600包含步驟S610至S680。
S610: 物理不可複製函數裝置110根據物理不可複製函數裝置110的至少一部分隨機物理特徵建立加密字串P2及P3;
S620: 物理不可複製函數暫存器120自物理不可複製函數裝置110載出加密字串P2及P3;
S630: 加密電路230自物理不可複製函數暫存器120中取出加密字串P2;
S632: 加密電路230利用加密字串P2來操作系統字串S2以產生加密資料S2e;
S640: 解碼電路260自物理不可複製函數暫存器120中取出加密字串P3;
S642: 解碼電路260對另一筆加密資料S3e進行解碼以產生解碼資料D,其中加密資料S3e是由另一系統字串S3及加密字串P3加密產生;
S650: 路徑選擇器270根據解碼資料選擇加密資料S2e的傳輸路徑;
S660: 解密電路240自物理不可複製函數暫存器120中取出加密字串P2;
S670: 解密電路240根據加密字串P2對加密資料S2e進行解密以還原出系統字串S2;
S680: 系統功能電路250根據系統字串S2執行對應功能。
也就是說,在利用加密字串P2對系統字串S2加密之後,加密資料S2e會經由路徑選擇器270在步驟S650中根據解碼資料D所選擇的資料路徑傳送到解密電路240。因此,在步驟S670中,解密電路240可以對加密字串S2e進行解密以還原出系統字串S2,使得系統功能電路250可以在步驟S680中對應地執行後續操作。
在有些實施例中,若系統字串S2為指令或選擇指標,則解密電路240可能不必重新產生完整的系統字串S2。相反地,解密電路240可以將對應的訊號傳送到系統功能電路250,以利用加密字串P2分析加密資料S2e來執行對應的操作。
透過方法500和600,由物理不可複製函數裝置110所建立的加密字串可以和系統字串組合,使得每個裝置的控制路徑和資料流模式都是獨特的。另外,由於方法500和600能夠讓邏輯結構、流量控制和資料內容產生實體變化,導致旁通道攻擊和逆向工程所需的重要資訊,例如裝置的操作時序、能量損耗,熱量分佈,磁場分佈和功率特徵等,也會對應地發生變化,因此方法500和600可以有效地保護裝置中的重要資訊。此外,當方法500和600被應用在處理不同類型的系統字串時,還能夠進一步增強對重要資訊的保護。也就是說,方法500和600中所示的方法可以單獨執行或者可以與其他方法組合以滿足系統的安全要求。
綜上所述,本發明之實施例所提供的安全邏輯系統和操作安全邏輯系統的方法可以將系統字串與物理不可複製函數裝置所產生之不可預期的加密字串進行組合,使得每個裝置都具有其獨特的控制路徑和資料流模式。而且,由於每個裝置都可以具有自己獨特的操作時序、能量損耗,熱量分布,磁場分布和功率特徵等,因此可以有效保護關鍵訊息,並使旁通道攻擊和逆向工程變得非常困難。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100、200、300、400‧‧‧安全邏輯系統
110‧‧‧物理不可複製函數裝置
120‧‧‧物理不可複製函數暫存器
130、230、230’‧‧‧加密電路
140、240‧‧‧解密電路
150、250、250’‧‧‧系統功能電路
P0至P3‧‧‧加密字串
S1至S3‧‧‧系統字串
S1e、S2e、S3e‧‧‧加密資料
232[0]至232[N]‧‧‧邏輯電路
260‧‧‧解碼器
270、270’‧‧‧路徑選擇器
380、480‧‧‧記憶體
D‧‧‧解碼資料
D1、D2‧‧‧部分解碼資料
DI‧‧‧輸入資料
500、600‧‧‧方法
S510至S550、S610至S680‧‧‧步驟
第1圖為本發明一實施例之安全邏輯系統的示意圖。 第2圖為本發明另一實施例之安全邏輯系統的示意圖。 第3圖為本發明另一實施例之安全邏輯系統的示意圖。 第4圖為本發明另一實施例之安全邏輯系統的示意圖。 第5圖為第1圖之安全邏輯系統的操作方法的流程圖。 第6圖為第2圖之安全邏輯系統的操作方法的流程圖。
Claims (30)
- 一種安全邏輯系統,包含: 一物理不可複製函數(physically unclonable function,PUF)裝置,用以根據該物理不可複製函數裝置的至少一部分隨機物理特徵建立一加密字串; 一物理不可複製函數暫存器,耦接於該物理不可複製函數裝置,用以自該物理不可複製函數裝置載出該加密字串;及 一加密電路,耦接於該物理不可複製函數暫存器,用以利用該加密字串來操作一系統字串以產生一加密資料。
- 如請求項1所述之安全邏輯系統,其中該系統字串是一記憶體位址、一記憶體資料或一指令。
- 如請求項1所述之安全邏輯系統,其中: 該加密電路係將該加密字串做為一種子以在該系統字串中選擇並反相至少一位元來對該系統字串執行一超N碼二元編碼(Excess-N binary coding)。
- 如請求項1所述之安全邏輯系統,其中: 該加密電路包含複數個邏輯電路,每一邏輯電路用以接收該系統字串中的一位元以及該加密字串中的一位元,並對該系統字串中的該位元及該加密字串中的該位元執行一邏輯運算以產生該加密資料中的一位元。
- 如請求項4所述之安全邏輯系統,其中: 該些邏輯電路係為互斥或(exclusive or,XOR)閘。
- 如請求項1所述之安全邏輯系統,另包含一解碼器(decoder),耦接於該加密電路,用以對該加密資料進行解碼以輸出一解碼資料以使該加密資料的一傳輸路徑隨機化。
- 如請求項6所述之安全邏輯系統,另包含: 一解密(decryption)電路,耦接於該物理不可複製函數暫存器,並用以根據自該物理不可複製函數暫存器中取出的該加密字串對該解碼資料進行解密以還原出該系統字串;及 一系統功能電路,耦接於該解密電路,用以根據該系統字串執行對應功能。
- 如請求項7所述之安全邏輯系統,其中該解密電路是設置在該解碼器及該系統功能電路之間的一訊號路徑上,且該解密電路是在將該系統字串傳入該系統功能電路之前,才對該解碼資料進行解碼以還原出該系統字串。
- 如請求項1所述之安全邏輯系統,另包含: 一解密電路,耦接於該物理不可複製函數暫存器,用以根據自該物理不可複製函數暫存器中取出的該加密字串對該加密資料進行解密以還原出該系統字串;及 一系統功能電路,耦接於該解密電路,用以根據該系統字串執行對應功能。
- 如請求項9所述之安全邏輯系統,其中該解密電路是設置在該加密電路及該系統功能電路之間的一訊號路徑上,且該解密電路是在將該系統字串傳入該系統功能電路之前,才對該加密資料進行解碼以還原出該系統字串。
- 如請求項1所述之安全邏輯系統,其中用以載出在該物理不可複製裝置中之該加密字串的一位址是透過在一預設位址與另一加密字串糾結纏繞後所建立而來。
- 如請求項1所述之安全邏輯系統,其中用以產生該加密字串的一初始系統條件係儲存於一安全環境或一一次性寫入(one-time programming)電路。
- 如請求項1所述之安全邏輯系統,其中該加密資料是用以作為存取一記憶體時所需之一實體位址。
- 如請求項1所述之安全邏輯系統,其中該加密資料係用於與一般邏輯運算糾結纏繞後以建立複數個可組態(configurable)邏輯結構。
- 如請求項1所述之安全邏輯系統,另包含一路徑選擇器,用以接收該加密資料,及根據該物理不可複製組態裝置所提供的一字串選擇該加密資料的一資料路徑以使該加密資料的傳輸路徑隨機化。
- 一種操作安全邏輯系統的方法,該安全邏輯系統包含一物理不可複製函數(physically unclonable function,PUF)裝置、一物理不可複製函數暫存器及一加密電路,該方法包含: 該物理不可複製函數裝置根據該物理不可複製函數裝置的至少一部分隨機物理特徵建立一加密字串; 該物理不可複製函數暫存器自該物理不可複製函數裝置載出該加密字串;及 該加密電路利用該加密字串來操作一系統字串以產生一加密資料。
- 如請求項16所述之方法,其中該系統字串是一記憶體位址、一記憶體資料或一指令。
- 如請求項16所述之方法,其中: 該加密電路利用該加密字串來操作該系統字串以產生該加密資料係該加密電路將該加密字串做為一種子以在該系統字串中選擇並反相至少一位元來對該系統字串執行一超N碼二元編碼(Excess-N binary coding)。
- 如請求項16所述之方法,其中: 該加密電路利用該加密字串來操作該系統字串以產生該加密資料包含: 該加密電路接收該系統字串中的一位元以及該加密字串中的一位元;及 該加密電路對該系統字串中的該位元及該加密字串中的該位元執行一邏輯運算以產生該加密資料中的一位元。
- 如請求項19所述之方法,其中: 該邏輯運算包含互斥或(exclusive or,XOR)運算。
- 如請求項16所述之方法,其中該安全邏輯系統另包含一解碼器(decoder),及該方法另包含該解碼器對該加密資料進行解碼以輸出一解碼資料以使該加密資料的一傳輸路徑隨機化。
- 如請求項21所述之方法,其中該安全邏輯系統另包含一解密(decryption)電路及一系統功能電路,及該方法另包含: 該解密電路自該物理不可複製函數暫存器中取出該加密字串; 該解密電路根據該加密字串對該解碼資料進行解密以還原出該系統字串;及 該系統功能電路根據該系統字串執行對應功能。
- 如請求項22所述之安全邏輯系統,其中該解密電路是設置在該解碼器及該系統功能電路之間的一訊號路徑上,且該解密電路根據該加密字串對該解碼資料進行解密以還原出該系統字串是在將該系統字串傳入該系統功能電路之前執行。
- 如請求項16所述之方法,其中該安全邏輯系統另包含一解密(decryption)電路及一系統功能電路,及該方法另包含: 該解密電路自該物理不可複製函數暫存器中取出該加密字串; 該解密電路根據該加密字串對該加密資料進行解密以還原出該系統字串;及 該系統功能電路根據該系統字串執行對應功能。
- 如請求項24所述之安全邏輯系統,其中該解密電路是設置在該加密電路及該系統功能電路之間的一訊號路徑上,且該解密電路根據該加密字串對該加密資料進行解密以還原出該系統字串是在將該系統字串傳入該系統功能電路之前執行。
- 如請求項16所述之方法,另包含透過在一預設位址與另一加密字串糾結纏繞以建立用以載出在該物理不可複製裝置中之該加密字串的一位址。
- 如請求項16所述之方法,另包含將用以產生該加密字串的一初始系統條件儲存於一安全環境或一一次性寫入(one-time programming)電路。
- 如請求項16所述之方法,另包含將該加密資料作為一實體位址以存取一記憶體。
- 如請求項16所述之方法,另包含將該加密資料與一一般邏輯運算糾結纏繞以建立複數個可組態(configurable)邏輯結構。
- 如請求項16所述之方法,其中該安全邏輯系統另包含一路徑選擇器,及該方法另包含該路徑選擇器根據該物理不可複製組態裝置所提供的一字串選擇該加密資料的一資料路徑以使該加密資料的傳輸路徑隨機化。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762583499P | 2017-11-09 | 2017-11-09 | |
US62/583,499 | 2017-11-09 | ||
US15/928,101 | 2018-03-22 | ||
US15/928,101 US20190140851A1 (en) | 2017-11-09 | 2018-03-22 | Secure logic system with physically unclonable function |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201918923A true TW201918923A (zh) | 2019-05-16 |
Family
ID=66327800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107120726A TW201918923A (zh) | 2017-11-09 | 2018-06-15 | 安全邏輯系統及操作安全邏輯系統的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190140851A1 (zh) |
CN (1) | CN109765856A (zh) |
TW (1) | TW201918923A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11196574B2 (en) * | 2017-08-17 | 2021-12-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Physically unclonable function (PUF) generation |
CN115968540A (zh) * | 2020-06-26 | 2023-04-14 | 瑞典爱立信有限公司 | 安全组件和操作方法 |
US11962709B1 (en) * | 2020-07-15 | 2024-04-16 | Marvell Asia Pte, Ltd. | Structures and methods for deriving stable physical unclonable functions from semiconductor devices |
CN112130809B (zh) * | 2020-09-21 | 2022-04-29 | 太原理工大学 | 一种真随机数发生器 |
GB2601846A (en) * | 2021-03-15 | 2022-06-15 | Nordic Semiconductor Asa | Encoding |
US20220393859A1 (en) * | 2021-06-07 | 2022-12-08 | Micron Technology, Inc. | Secure Data Storage with a Dynamically Generated Key |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128387A (en) * | 1997-05-19 | 2000-10-03 | Industrial Technology Research Institute | Method and system for using a non-inversible transform and dynamic keys to protect firmware |
CN1192330C (zh) * | 2000-01-18 | 2005-03-09 | 因芬尼昂技术股份公司 | 微处理器加密装置 |
CN1938983A (zh) * | 2004-03-30 | 2007-03-28 | 松下电器产业株式会社 | 用于密码***的更新*** |
JP5548218B2 (ja) * | 2009-03-06 | 2014-07-16 | イントリンシツク・イー・デー・ベー・ベー | 物理的システムに依存する暗号鍵を確立するためのシステム |
JP5423088B2 (ja) * | 2009-03-25 | 2014-02-19 | ソニー株式会社 | 集積回路、暗号通信装置、暗号通信システム、情報処理方法、及び暗号通信方法 |
KR101271426B1 (ko) * | 2009-11-04 | 2013-06-05 | 한국전자통신연구원 | 방송 프로그램의 부분 암호화 녹화 장치와 방법 |
WO2012069545A2 (en) * | 2010-11-24 | 2012-05-31 | Intrinsic Id B.V. | Physical unclonable function |
US8700916B2 (en) * | 2011-12-02 | 2014-04-15 | Cisco Technology, Inc. | Utilizing physically unclonable functions to derive device specific keying material for protection of information |
WO2013112351A2 (en) * | 2012-01-23 | 2013-08-01 | The Trustees Of Columbia University In The City Of New York | Systems and methods for telecommunication using high-dimensional temporal quantum key distribution |
WO2013155522A1 (en) * | 2012-04-13 | 2013-10-17 | Lewis Innovative Technologies, Inc. | Electronic physical unclonable functions |
DE102012212471B3 (de) * | 2012-07-17 | 2013-11-21 | Siemens Aktiengesellschaft | Vorrichtung zum Realisieren einer physikalischen Degradations-/Tampererkennung eines digitalen ICs mittels einer (digitalen) PUF und Unterscheiden zwischen einer Degradation aufgrund von physikalischer Manipulation und aufgrund von Alterungsprozessen |
US9619658B2 (en) * | 2014-01-07 | 2017-04-11 | New York University | Homomorphically encrypted one instruction computation systems and methods |
CN104168264B (zh) * | 2014-07-11 | 2017-12-26 | 南京航空航天大学 | 一种低成本、高安全性物理不可克隆函数电路 |
US9483664B2 (en) * | 2014-09-15 | 2016-11-01 | Arm Limited | Address dependent data encryption |
US9875378B2 (en) * | 2015-06-12 | 2018-01-23 | QUALCOMOM Incorporated | Physically unclonable function assisted memory encryption device techniques |
KR20170032776A (ko) * | 2015-09-15 | 2017-03-23 | 삼성전자주식회사 | 선택적으로 영상을 암호화하는 영상 처리 장치 및 영상 처리 방법 |
US10564969B2 (en) * | 2015-12-03 | 2020-02-18 | Forrest L. Pierson | Enhanced protection of processors from a buffer overflow attack |
EP3270539B1 (en) * | 2016-07-10 | 2021-03-10 | IMEC vzw | Breakdown-based physical unclonable function |
US10223528B2 (en) * | 2016-09-27 | 2019-03-05 | Intel Corporation | Technologies for deterministic code flow integrity protection |
US10250572B2 (en) * | 2016-09-29 | 2019-04-02 | Amazon Technologies, Inc. | Logic repository service using encrypted configuration data |
US10579339B2 (en) * | 2017-04-05 | 2020-03-03 | Intel Corporation | Random number generator that includes physically unclonable circuits |
US20180358989A1 (en) * | 2017-06-09 | 2018-12-13 | Western Digital Technologies, Inc. | Non-volatile Storage Systems With Application-Aware Error-Correcting Codes |
CN107094074A (zh) * | 2017-06-28 | 2017-08-25 | 东信和平科技股份有限公司 | 一种数据加密方法及数据加密装置 |
-
2018
- 2018-03-22 US US15/928,101 patent/US20190140851A1/en not_active Abandoned
- 2018-06-15 TW TW107120726A patent/TW201918923A/zh unknown
- 2018-07-10 CN CN201810750309.0A patent/CN109765856A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20190140851A1 (en) | 2019-05-09 |
CN109765856A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9847872B2 (en) | Memory integrity | |
KR102059093B1 (ko) | 계산 메모리에서의 실행 파일의 암호화 | |
TW201918923A (zh) | 安全邏輯系統及操作安全邏輯系統的方法 | |
US9094190B2 (en) | Method of managing key for secure storage of data and apparatus therefor | |
US20170046281A1 (en) | Address dependent data encryption | |
KR101975027B1 (ko) | 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들 | |
US7606362B1 (en) | FPGA configuration bitstream encryption using modified key | |
US8826035B2 (en) | Cumulative integrity check value (ICV) processor based memory content protection | |
US20070172053A1 (en) | Method and system for microprocessor data security | |
TW201723920A (zh) | 硬體強制單向密碼學 | |
CN101673251A (zh) | 具有特许存储器的设备及其应用 | |
JP2002328845A (ja) | 半導体集積回路及びicカードのセキュリティー保護方法 | |
CN103154963A (zh) | 对地址的加扰和对需存储于存储设备中的写入数据的加密 | |
US10671546B2 (en) | Cryptographic-based initialization of memory content | |
US20180089108A1 (en) | Secure computing | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
JP2005122745A (ja) | 対称型マルチプロセッサを持つ電子機器におけるデータの暗号化 | |
KR20180059217A (ko) | 메모리 데이터 보안 처리 장치 및 방법 | |
CN103154967A (zh) | 修改元素的长度以形成加密密钥 | |
CN113536331B (zh) | 存储器和计算***的数据安全 | |
Badrignans et al. | Embedded systems security for FPGA | |
JP2011175464A (ja) | 情報処理装置および情報処理方法 | |
JP2009044630A (ja) | 暗号処理装置 |