TWI744892B - 電子系統及電子系統的操作方法 - Google Patents
電子系統及電子系統的操作方法 Download PDFInfo
- Publication number
- TWI744892B TWI744892B TW109114975A TW109114975A TWI744892B TW I744892 B TWI744892 B TW I744892B TW 109114975 A TW109114975 A TW 109114975A TW 109114975 A TW109114975 A TW 109114975A TW I744892 B TWI744892 B TW I744892B
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit
- string
- activation
- key
- challenge
- Prior art date
Links
Images
Classifications
-
- 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/75—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 by inhibiting the analysis of circuitry or operation
-
- 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
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/3236—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 cryptographic hash functions
- H04L9/3242—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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Telephone Function (AREA)
Abstract
電子系統包含第一電路及第二電路。第一電路包含第一啟動單元及第一功能單元。第一啟動單元接收第一挑戰字串,根據第一挑戰字串及第一金鑰產生第一回應字串,並輸出第一回應字串。第一功能單元執行第一特定功能。第二電路包含第二啟動單元及第二功能單元。第二啟動單元在第一啟動操作中,發送第一挑戰字串至第一電路,及根據第一挑戰字串、第一回應字串及第一金鑰判斷第一啟動操作是否通過驗證。在第一啟動操作被判定為通過驗證時,第二功能單元執行第二特定功能。
Description
本發明是有關於一種電子系統,特別是指一種能夠進行自我驗證的電子系統。
隨著系統晶片(system-on-chip,SoC)的功能日益複雜,設計者常常會使用來自不同公司的智權產品(intellectual properties,IPs)來簡化設計的複雜度。舉例來說,系統晶片的處理器及快閃記憶體可能是由不同的公司設計。在此情況下,由於這些電路設計公司,例如處理器及記憶體的設計公司,並不負責實際的製造,因此常常是以硬體描述語言檔案的形式來提供他們所設計的電路。
在超大型積體電路(very large-scale integration,VLSI)的領域中,智權產品常被稱為巨集(macro),且主要可分為兩大類,硬巨集(hard macro)及軟巨集(soft macro)。硬巨集一般是針對特定的積體電路製程技術來設計,因此會根據製程的設計規則,對功耗、面積及時序...等性能做最佳化。因此,在實體設計上,設計者只能夠存取硬巨集的接腳,而無法取得內部的結構。舉例來說,記憶體區塊通常會以硬巨集的形式提供。
然而,用來執行複雜運算的電路,例如處理器或控制器,則常會以軟巨集的形式提供。相較於硬巨集,軟巨集在可組態的性能上提供了較大的彈
性。舉例來說,軟巨集可以由標準單元來合成,而不限定實際上使用的製程。因此,軟巨集的功耗、面積和時序...等性能通常是無法預測的。
然而,軟巨集的在設計上的彈性也可能導致其原始碼被未授權的系統或裝置使用而造成安全上的風險。也就是說,系統晶片的設計者可能會在未支付使用許可費用的情況下,在其他的系統中重複使用原始碼所描述的處理器或控制器,造成處理器或控制器的設計公司的損失。
本發明的一實施例提供一種電子系統。電子系統包含第一電路及第二電路。
第一電路包含第一啟動單元及第一功能單元。第一啟動單元接收第一挑戰字串,根據第一挑戰字串及第一金鑰產生第一回應字串,並輸出第一回應字串。第一功能單元執行第一特定功能。
第二電路包含第二啟動單元及第二功能單元。第二啟動單元在第一啟動操作中,發送第一挑戰字串至第一電路,並根據第一挑戰字串、第一回應字串及第一金鑰判斷第一啟動操作是否通過驗證。在第一啟動操作被判定為通過驗證時,第二功能單元執行第二特定功能,而在第一啟動操作被判定為未通過驗證時,第二功能單元不執行第二特定功能。
本發明的另一實施例提供一種操作電子系統的方法。電子系統包含第一電路及第二電路。
操作電子系統的方法包含在第二電路開始執行特定功能之前,執行第一啟動操作,在第一啟動操作中,第二電路發送第一挑戰字串至第一電路,第一電路根據第一挑戰字串及第一金鑰產生第一回應字串,第一電路輸出第一回應字串至第二電路,第二電路根據第一挑戰字串、第一回應字串及第一金鑰
判斷第一啟動操作是否通過驗證。當第一啟動操作被判斷已通過驗證時,第二電路執行特定功能,而當第一啟動操作被判斷未通過驗證時,第二電路不執行特定功能。
100、200、300、400:電子系統
110、210、310、410:第一電路
120、220:第二電路
112、212、312、412:第一啟動單元
114、214、314、414:第一功能電路
122、222、422:第二啟動單元
124、424:第二功能單元
1121、2121:加密區塊
1122、1222、2122、2222、3122:金鑰產生器
K1至KN:金鑰
1223:偽隨機數生成器
1221、2221:解密區塊
CS1、CS2:挑戰字串
RS1、RS2:回應字串
IDX1、IDX2:金鑰索引
2141:物理不可複製函數區塊
K0:包裹加密金鑰
K1,:包裹金鑰
430:第三電路
432:第三啟動單元
434:第三功能單元
第1圖示本發明一實施例的電子系統的示意圖。
第2圖示本發明另一實施例的電子系統的示意圖。
第3圖示本發明另一實施例的電子系統的示意圖。
第4圖示本發明另一實施例的電子系統的示意圖。
第5圖是操作電子系統的方法的流程圖。
第1圖示本發明一實施例的電子系統100的示意圖。電子系統100包含第一電路110及第二電路120。
第一電路110包含第一啟動單元112及第一功能單元114。第二電路120包含第二啟動單元122及第二功能單元124。在有些實施例中,第一電路110及第二電路120可以各自用來執行特定的功能,而功能單元14及124則可以執行其特定功能所需的操作。舉例來說,第一電路110可以是能夠執行讀取操作及寫入操作的記憶體,而第二電路120則可以是用來執行電子系統100所需之邏輯操作的控制器。
在有些實施例中,第二電路120所執行的邏輯操作可以與第一電路110所儲存的資料有關。舉例來說,第一功能單元114可以儲存複數個隨機位元,而第二功能單元124則可以取出第一功能單元114中的至少一隨機位元來做系統
授權的相關運算。例如,第一功能單元114可以執行讀取操作及寫入操作以存取隨機位元,而第二功能單元124可以利用儲存在第一功能單元114中的隨機位元來執行邏輯操作,以完成橢圓曲線密碼學(elliptic-curve cryptography,ECC)或進階加密標準(advanced encryption standard,AES)所需的運算。
在有些實施例中,電子系統100可以是系統晶片(system-on-chip,SoC),其中第一電路110可以是以硬巨集(hard macro)提供,而第二電路120則可以是以軟巨集(soft macro)提供。在此情況下,為了保護第二電路120在未被授權的情況下被重複使用,便可利用第一電路110中的啟動單元112及第二單元120中的啟動單元122來進行驗證。
舉例來說,第一電路110及第二電路120可以儲存相同的金鑰K1,而在第二功能單元124開始執行其特定功能之前,第一電路110及第二電路120可以利用金鑰K1執行第一啟動操作。在第一啟動操作中,第二啟動單元122可以發送挑戰字串CS1至第一電路110。第一啟動單元112可以接收挑戰字串CS1,並根據挑戰字串CS1及金鑰K1產生回應字串RS1。接著,第一啟動單元112可以將回應字串RS1輸出至第二啟動單元122,而第二啟動單元122則可根據挑戰字串CS1、回應字串RS1及金鑰K1來判斷第一啟動操作是否通過驗證。
在有些實施例中,第二功能單元124只有在第一啟動操作被判定為通過驗證時才可以執行其特定功能,而在第一啟動操作被判定為未通過驗證時,則會拒絕執行其特定功能。也就是說,第二電路120只有在與第一電路110通過第一啟動操作的驗證後,才能夠執行其特定功能。如此一來,雖然第二電路120是以軟巨集提供,卻仍然可以透過以硬巨集提供的第一電路110來進行驗證,並避免第二電路120在未授權的情況下被重複使用。再者,由於第二電路122的第二功能單元124及第二啟動單元122是一起合成(synthesize)產生接線網路(netlist)檔案,因此在軟巨集中,難以分辨出第二功能單元124及第二啟動單元122,也
因此使得啟動機制更加安全。
在有些實施例中,第一啟動單元112可以透過對挑戰字串CS1及金鑰K1執行可逆的邏輯運算來產生回應字串RS1。舉例來說,可以對挑戰字串CS1及金鑰K1執行互斥或(exclusive OR)運算以產生回應字串RS1。在此情況下,若挑戰字串CS1為“10010101”,而金鑰K1為“01101100”,則回應字串RS1即為“11111001”。在此情況下,第二啟動單元122可以對挑戰字串CS1及回應字串RS1執行互斥或運算以產生一計算結果,並將計算結果與金鑰K1相比較,以判斷第一啟動操作是否通過驗證。如此一來,當計算結果與金鑰K1相同時,第二啟動單元122便會判斷第一啟動操作通過驗證。舉例來說,在此實施例中,若計算結果與金鑰K1皆為“01101100”,則表示第一啟動操作通過驗證。然而,若計算結果與金鑰K1不同,或是第二啟動單元122在預定時間內並未接收到回應字串RS1,則第二啟動單元122將會判斷第一啟動操作未通過驗證。
在有些實施例中,第一啟動單元112可包含用以產生回應字串RS1的加密區塊1121,而第二啟動單元122可包含用以解密回應字串RS1並產生計算結果的解密區塊1221。雖然加密區塊1121及解密區塊1221可以如同先前所述地執行互斥或運算來進行加密及解密,然而在有些其他實施例中,加密區塊1121及解密區塊1221也可根據系統的需求,而使用其他類型的可逆運算來進行加密及解密。舉例來說,加密區塊1121可以透過雜湊訊息辨別碼(Hash-based message authentication code,HMAC)或密碼訊息辨別碼(Cipher-based Message Authentication Code,CMAC)來產生回應字串RS1,而解密區塊1221則可對應地對回應字串RS1進行解密。
此外,在有些實施例中,第一啟動單元112可包含金鑰產生器1122以儲存複數個金鑰K1至KN,其中N是大於1的整數。第二啟動單元122也可包含金鑰產生器1222以儲存複數個金鑰K1至KN。在此情況下,當第一啟動操作開始
時,第一啟動單元112的金鑰產生器1122可以發送金鑰索引至第二啟動單元122,使得第二啟動單元122能夠從金鑰K1至KN中選取要用來加密的對應金鑰。舉例來說,如果要使用金鑰K1來產生回應字串RS1,則第一啟動單元112的金鑰產生器1122將可發送金鑰K1的金鑰索引IDX1至第二啟動單元122,而第二啟動單元122的金鑰產生器1222則將根據金鑰索引IDX1選取金鑰K1來進行這次的驗證。如此一來,金鑰K1至KN的資料就不會直接在第一電路110及第二電路120的外部傳輸,因此可以避免金鑰K1至KN的資訊在第一電路110及第二電路120的通訊過程中被竊取。
再者,在有些實施例中,啟動操作也可能在第二功能單元124執行其特定操作的過程中被執行。舉例來說,在第二功能單元124執行其特定操作的過程中,電子系統100也可以執行第二啟動操作來判斷是否可繼續執行其特定功能。
在第1圖中,在第二啟動操作中,第二啟動單元122可以發送挑戰字串CS2至第一電路110,而第一啟動單元112可以根據挑戰字串CS2及金鑰K2產生回應字串RS2。在有些實施例中,第一啟動單元112也可以發送金鑰索引IDX2至第二啟動單元122以使第二啟動單元122能夠選取對應的金鑰來進行第二啟動操作。接著,第二啟動單元122會根據挑戰字串CS2、回應字串RS2及金鑰K2判斷第二啟動操作是否通過驗證。
在有些實施例中,第一啟動單元112可以根據隨機的順序來決定所欲使用的金鑰,因此在不同的確認操作中所使用的金鑰可能不同且無法預測,以此加強對第二電路120的保護。此外,在有些實施例中,在不同確認操作中所使用的挑戰字串,如挑戰字串CS1及CS2,也可以不同且無法預測。舉例來說,挑戰字串CS1及CS2可以是一次性數值(numbers used once,NONCE),而第二啟動單元122可包含偽隨機數生成器(pseudorandom number generator,PRNG)1223以
產生挑戰字串CS1及CS2。
此外,在有些實施例中,在第二功能單元124執行其特定功能時,可以週期性地執行啟動操作以強化對電子系統100的保護。舉例來說,第二啟動操作可以在第一啟動操作執行一預定時間後執行,而在第二啟動操作執行一預定時間後則可執行第三啟動操作,並依此類推。透過在第二功能單元124執行特定操作的過程中執行多次的啟動操作,就可以讓啟動操作所使用的挑戰字串及/或金鑰更加難以預測,進而強化對電子系統100的保護。
再者,在有些其他實施例中,啟動操作不一定要以週期性的方式執行,而可以在第二功能單元124執行其特定功能時隨機地執行啟動操作,以提升保護效果。舉例來說,每兩次啟動操作的間隔時間可以由一個隨機序列來決定,使得啟動操作更加難以預測。
第2圖是本發明一實施例的電子系統200的示意圖。電子系統100及200具有相似的結構,並且可根據相似的原理操作。然而,在第2圖中,第一電路210可產生金鑰K1至KN,且第一電路210可將金鑰K1至KN包裹後傳送至第二電路220。
舉例來說,第一功能單元214可包含物理不可複製函數(physical unclonable function,PUF)區塊2141,而物理不可複製函數區塊2141可以提供隨機位元給第一啟動單元212的金鑰產生器2122以產生金鑰K1至KN。此外,金鑰產生器2122及2222可儲存相同的包裹加密金鑰K0。在此情況下,當欲選擇金鑰K1來進行啟動操作時,金鑰產生器2122便可根據包裹加密金鑰K0來對金鑰K1進行加密以產生包裹金鑰K1’。包裹金鑰K1’可被傳送至第二電路220,而第二啟動單元222中的金鑰產生器2222則可將利用包裹加密金鑰K0將包裹金鑰K1’解密以取得啟動操作所使用的金鑰K1。
如此一來,金鑰K1至KN的資訊就不會直接顯露在第一電路210及第
二電路220之外,因此可以避免金鑰K1至KN的資訊在第一電路210與第二電路220在通訊過程中被竊取或紀錄。在此情況下,加密區塊2121及解密區塊2221仍然可以利用金鑰K1來產生回應字串RS1或解密回應字串以執行啟動操作。再者,由於第二啟動單元222可以利用包裹加密金鑰K0來取得啟動操作所需的金鑰,因此第二啟動單元222可以只儲存包裹加密金鑰K0而不需要儲存金鑰K1至KN,而第一啟動單元212則可依據需求即時產生金鑰K1至KN,使得驗證過程更加難以預測。
在有些實施例中,可以對金鑰K1及包裹加密金鑰K0執行可逆邏輯運算來產生包裹金鑰K1’,例如但不限於,利用互斥或運算。然而,有些其他實施例中,也可使用其他類型的可逆邏輯運算來打包金鑰K1。
在第2圖中,金鑰K1至KN可以利用物理不可複製函數區塊2141所產生的隨機位元來生成,然而,在有些其他實施例中,金鑰K1至KN也可以事先儲存在第一啟動單元212中,或利用物理不可複製函數區塊2141以外的其他方式產生。
第3圖是本發明一實施例的電子系統300的示意圖。電子系統200及300具有相似的結構,並且可根據相似的原理操作。然而,在第3圖中,第一功能單元314可不包含物理不可複製函數區塊2141,而金鑰K1至KN可以在第一電路310中生成。在此情況下,金鑰產生器3122可以儲存金鑰K1至KN及包裹加密金鑰K0。由於金鑰產生器2222也可以儲存相同的包裹加密金鑰K0,因此第一電路310及第二電路220仍然可以利用與電子系統200相似的原理來進行驗證。
再者,在有些實施例中,第一電路110、210及310可以用來保護一個以上的軟巨集。第4圖是本發明一實施例的電子系統400的示意圖。電子系統400包含第一電路410、第二電路420及第三電路430。第一電路410包含第一啟動單元412及第一功能單元414。第二電路420包含第二啟動單元422及第二功能單元
424。第三電路430包含第三啟動單元432及第三功能單元434。
在有些實施例中,第一電路410可以是硬巨集,而第二電路420及第三電路430則可以是硬軟巨集。此外,第一電路410可以用來對第二電路420及第三電路430進行驗證。舉例來說,第一電路410、第二電路420及第三電路430可以儲存相同的金鑰K1至KN。在此情況下,第二電路420可以在第二功能單元424執行其特定功能之前,執行啟動操作並向第一電路410發送挑戰字串CS1。第一電路410可以從金鑰K1至KN中選擇一把金鑰來對挑戰字串CS1進行加密以產生回應字串RS1,並可將回應字串RS1發送至第二電路420。接收到回應字串RS1之後,第二電路就可利用第一電路410所選取的金鑰及/或挑戰字串CS1來對回應字串RS1進行解密,以判斷該啟動操作是否通過驗證。
相似地,第三電路430可以在第三功能單元434執行其特定功能之前,執行啟動操作。第三電路430可以向第一電路410發送挑戰字串CS2,而第一電路410可以從金鑰K1至KN中選擇另一把金鑰來對挑戰字串CS2進行加密以產生回應字串RS2。回應字串RS2會被發送至第三電路430,而第三電路430則可利用第一電路410所選取的金鑰及/或挑戰字串CS2來對回應字串RS2進行解密,以判斷該啟動操作是否通過驗證。也就是說,第一電路410可以根據系統的需求,而用來保護一個以上的軟巨集。
在有些實施例中,第一電路410可以利用第一電路110來實作,而第二電路420及第三電路430則分別可以利用第二電路120來實作。然而,在有些其他實施例中,第一電路410也可以利用第一電路210或310來實作,而第二電路420及第三電路430則分別可以利用第二電路220來實作。
第5圖是操作電子系統100的方法500的流程圖。方法500包含步驟S510至S580。
S510:在第二電路120執行特定功能之前,執行第一啟動操作;
S520:在第一啟動操作中,第二電路120發送挑戰字串CS1至第一電路110;S530:第一電路110根據挑戰字串及金鑰K1產生回應字串RS1;S540:第一電路110輸出回應字串RS1至第二電路120;S550:第二電路120根據挑戰字串CS1、回應字串RS1及金鑰K1判斷第一啟動操作是否通過驗證;S560:若第一啟動操作被判斷為通過驗證,則進入步驟S570,否則進入步驟S580;S570:第二電路120執行特定功能;S580:第二電路120拒絕執行特定功能。
在有些實施例中,步驟S530及S550可以利用互斥或運算來執行。舉例來說,在步驟S530中,第一電路110可以對挑戰字串CS1及金鑰K1執行互斥或運算以產生回應字串RS1。而在步驟S550中,第二電路120也可以對挑戰字串CS1及回應字串RS1執行互斥或運算以產生一計算結果,而第二電路120可以將計算結果與金鑰K1相比較以判斷第一啟動操作是否通過驗證。在有些實施例中,如果第二電路120無法在預定時間內接收到回應字串RS1,則第二電路120也會判斷第一啟動操作失敗而未通過驗證。此外,在有些實施例中,步驟S530及S550也可以利用其他類型的可逆邏輯運算來執行,例如系統可以根據需求而改以利用雜湊訊息辨別碼(Hash-based message authentication code,HMAC)或密碼訊息辨別碼(Cipher-based Message Authentication Code,CMAC)的方式來對挑戰字串CS1加密,並對回應字串RS1解密。
如此一來,以硬巨集提供的第一電路110就可以用來保護以軟巨集提供的第二電路120。
在有些實施例中,在第二電路120執行其特定功能的過程中,可以週
期性或隨機地執行啟動操作以強化對第二電路120的保護。
綜上所述,本發明的實施例所提供的電子系統及操作電子系統的方法可以在電路開始執行特定功能之前,透過執行啟動操作來自我驗證。如此一來,以硬巨集提供的電路就可以保護以軟巨集提供的電路,因此可以減少軟巨集電路被未授權者重複使用的可能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:電子系統
110:第一電路
120:第二電路
112:第一啟動單元
114:第一功能電路
122:第二啟動單元
124:第二功能單元
1121:加密區塊
1122、1222:金鑰產生器
K1至KN:金鑰
1223:偽隨機數生成器
1221:解密區塊
CS1、CS2:挑戰字串
RS1、RS2:回應字串
Claims (18)
- 一種電子系統,包含:一第一電路,包含:一第一啟動單元,用以接收一第一挑戰字串,根據該第一挑戰字串及一第一金鑰產生一第一回應字串,及輸出該第一回應字串;及一第一功能單元,用以執行一第一特定功能;及一第二電路,包含:一第二啟動單元,用以在一第一啟動操作中,發送該第一挑戰字串至該第一電路,及根據該第一挑戰字串、該第一回應字串及該第一金鑰判斷該第一啟動操作是否通過驗證;及一第二功能單元,用以在該第一啟動操作被判定為通過驗證時,執行一第二特定功能,並在該第一啟動操作被判定為未通過驗證時,不執行該第二特定功能;其中:該第一電路是以一硬巨集(hard macro)提供;及該第二電路是以一軟巨集(soft macro)提供。
- 如請求項1所述之電子系統,其中:該第一功能單元是用以執行讀取操作及寫入操作的一記憶體;及該第二功能單元是用以執行該電子系統所需之運算的一控制器。
- 一種電子系統,包含:一第一電路,包含: 一第一啟動單元,用以接收一第一挑戰字串,根據該第一挑戰字串及一第一金鑰產生一第一回應字串,及輸出該第一回應字串;及一第一功能單元,用以執行一第一特定功能;及一第二電路,包含:一第二啟動單元,用以在一第一啟動操作中,發送該第一挑戰字串至該第一電路,及根據該第一挑戰字串、該第一回應字串及該第一金鑰判斷該第一啟動操作是否通過驗證;及一第二功能單元,用以在該第一啟動操作被判定為通過驗證時,執行一第二特定功能,並在該第一啟動操作被判定為未通過驗證時,不執行該第二特定功能;其中:在該第二功能單元執行該第二特定功能時,該電子系統執行一第二啟動操作以判斷是否繼續執行該第二特定功能;及在該第二啟動操作中:該第二啟動單元發送一第二挑戰字串至該第一電路;該第一啟動單元根據該第二挑戰字串及一第二金鑰產生一第二回應字串;及該第二啟動單元根據該第二挑戰字串、該第二回應字串及該第二金鑰判斷該第二啟動操作是否通過驗證。
- 如請求項1或3所述之電子系統,其中該第一金鑰及該第二金鑰相異。
- 如請求項3所述之電子系統,其中該第一挑戰字串及該第二挑戰 字串相異。
- 如請求項3所述之電子系統,其中:該第二啟動單元包含一偽隨機數生成器(pseudorandom number generator,PRNG),用以產生該第一挑戰字串及該第二挑戰字串。
- 如請求項3所述之電子系統,其中:該第二啟動操作是在該第一啟動操作執行後一固定的預定時間後或一隨機決定的時間後執行。
- 如請求項3所述之電子系統,其中:在該第二啟動操作執行後的一預定時間後,該電子系統執行一第三啟動操作以判斷是否持續執行該第二特定功能。
- 如請求項1或3所述之電子系統,其中:該第一啟動單元是對該第一挑戰字串及該第一金鑰執行一互斥或(exclusive OR)運算以產生該第一回應字串。
- 如請求項9所述之電子系統,其中:該第二啟動單元是對該第一挑戰字串及該第一回應字串執行一互斥或運算以產生一計算結果,及比較該計算結果及該第一金鑰是否相同以判斷該第一啟動操作是否通過驗證。
- 如請求項10所述之電子系統,其中: 當該計算結果與該第一金鑰相異或該第二啟動單元並未在一預定時間內接收到該第一回應字串時,該第二啟動單元判斷該第一啟動操作未通過驗證;及當該計算結果與該第一金鑰相同時,該第二啟動單元判斷該第一啟動操作通過驗證。
- 一種電子系統,包含:一第一電路,包含:一第一啟動單元,用以接收一第一挑戰字串,根據該第一挑戰字串及一第一金鑰產生一第一回應字串,及輸出該第一回應字串;及一第一功能單元,用以執行一第一特定功能;及一第二電路,包含:一第二啟動單元,用以在一第一啟動操作中,發送該第一挑戰字串至該第一電路,及根據該第一挑戰字串、該第一回應字串及該第一金鑰判斷該第一啟動操作是否通過驗證;及一第二功能單元,用以在該第一啟動操作被判定為通過驗證時,執行一第二特定功能,並在該第一啟動操作被判定為未通過驗證時,不執行該第二特定功能;其中:該第一啟動單元另用以儲存複數個金鑰;該第二啟動單元另用以儲存該些金鑰;及該第一啟動單元另用以傳送一金鑰索引至該第二啟動單元以使該第二啟動單元自該些金鑰中選取對應的該第一金鑰。
- 如請求項12所述之電子系統,其中:該第一功能單元包含一物理不可複製函數(physical unclonable function,PUF)區塊,用以提供該第一啟動單元複數個隨機位元以產生複數個金鑰。
- 一種操作電子系統的方法,該電子系統包含一第一電路及一第二電路,該方法包含:在該第二電路開始執行一特定功能之前,執行一第一啟動操作;在該第一啟動操作中,該第二電路發送一第一挑戰字串至該第一電路;該第一電路根據該第一挑戰字串及一第一金鑰產生一第一回應字串;該第一電路輸出該第一回應字串至該第二電路;該第二電路根據該第一挑戰字串、該第一回應字串及該第一金鑰判斷該第一啟動操作是否通過驗證;當該第一啟動操作被判斷已通過驗證時,該第二電路執行該特定功能;及當該第一啟動操作被判斷未通過驗證時,該第二電路不執行該特定功能;其中:該第一電路是以一硬巨集(hard macro)提供;及該第二電路是以一軟巨集(soft macro)提供。
- 如請求項14所述之方法,其中:在該第二電路元執行該第二特定功能時,執行一第二啟動操作以判斷是否繼續執行該第二特定功能;及在該第二啟動操作中:該第二電路發送一第二挑戰字串至該第一電路; 該第一電路根據該第二挑戰字串及一第二金鑰產生一第二回應字串;該第一電路輸出該第二回應字串至該第二電路;及該第二電路根據該第二挑戰字串、該第二回應字串及該第二金鑰判斷該第二啟動操作是否通過驗證。
- 如請求項15所述之方法,其中:該第二啟動操作是在該第一啟動操作執行後一固定的預定時間後或一隨機決定的時間後執行。
- 如請求項15所述之方法,另包含:在該第二啟動操作執行後的一預定時間後,執行一第三啟動操作以判斷是否持續執行該第二特定功能。
- 如請求項14所述之方法,其中:該第一電路根據該第一挑戰字串及該第一金鑰產生該第一回應字串包含該第一電路對該第一挑戰字串及該第一金鑰執行一互斥或(exclusive OR)運算以產生該第一回應字串;及該第二電路根據該第一挑戰字串、該第一回應字串及該第一金鑰判斷該第一啟動操作是否通過驗證包含:該第二電路是對該第一挑戰字串及該第一回應字串執行一互斥或運算以產生一計算結果;及比較該計算結果及該第一金鑰是否相同以判斷該第一啟動操作是否通過驗證。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962859209P | 2019-06-10 | 2019-06-10 | |
US62/859,209 | 2019-06-10 | ||
US16/801,168 US11121884B2 (en) | 2019-06-10 | 2020-02-26 | Electronic system capable of self-certification |
US16/801,168 | 2020-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202046100A TW202046100A (zh) | 2020-12-16 |
TWI744892B true TWI744892B (zh) | 2021-11-01 |
Family
ID=73651757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109114975A TWI744892B (zh) | 2019-06-10 | 2020-05-06 | 電子系統及電子系統的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11121884B2 (zh) |
CN (1) | CN112069553B (zh) |
TW (1) | TWI744892B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201346618A (zh) * | 2011-12-29 | 2013-11-16 | Intel Corp | 使用物理性不可複製功能的安全金鑰儲存器 |
US20150278527A1 (en) * | 2012-09-28 | 2015-10-01 | Siemens Aktiengesellschaft | Self-Test of a Physical Unclonable Function |
TW201610745A (zh) * | 2012-11-21 | 2016-03-16 | 蘋果公司 | 電子器件、用於建立及強制實行與一存取控制元件相關聯之一安全性原則之方法及安全元件 |
US20170180140A1 (en) * | 2014-03-25 | 2017-06-22 | Carnegie Mellon University | Methods for generating reliable responses in physical unclonable functions (pufs) and methods for designing strong pufs |
CN108234132A (zh) * | 2017-12-07 | 2018-06-29 | 深圳市中易通安全芯科技有限公司 | 一种主控芯片与加密芯片的安全通信***及方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872917A (en) | 1995-06-07 | 1999-02-16 | America Online, Inc. | Authentication using random challenges |
US6904527B1 (en) * | 2000-03-14 | 2005-06-07 | Xilinx, Inc. | Intellectual property protection in a programmable logic device |
TW538250B (en) * | 2000-04-21 | 2003-06-21 | Ind Tech Res Inst | Built-in self-verification circuit applied in system chip design |
US7685418B1 (en) * | 2005-01-19 | 2010-03-23 | Altera Corporation | Mechanisms and techniques for protecting intellectual property |
US8156545B2 (en) * | 2007-02-09 | 2012-04-10 | Sony Corporation | Method and apparatus for authorizing a communication interface |
US9734496B2 (en) * | 2009-05-29 | 2017-08-15 | Paypal, Inc. | Trusted remote attestation agent (TRAA) |
US8402401B2 (en) * | 2009-11-09 | 2013-03-19 | Case Western University | Protection of intellectual property cores through a design flow |
US20140211944A1 (en) * | 2012-09-24 | 2014-07-31 | Daniel Joseph Lutz | System and method of protecting, storing and decrypting keys over a computerized network |
US9344747B2 (en) * | 2013-02-21 | 2016-05-17 | Broadcom Corporation | Mobile payTV DRM architecture |
US9705678B1 (en) * | 2014-04-17 | 2017-07-11 | Symantec Corporation | Fast CAN message authentication for vehicular systems |
KR102446384B1 (ko) * | 2015-09-18 | 2022-09-22 | 삼성전자주식회사 | 사용자 단말 및 서버 장치 |
US10897363B2 (en) * | 2015-11-17 | 2021-01-19 | Cryptography Research, Inc. | Authenticating a secondary device based on encrypted tables |
WO2018101797A1 (en) * | 2016-12-01 | 2018-06-07 | Samsung Electronics Co., Ltd. | Automatic self-activation of universal integrated circuit card |
US10421432B2 (en) * | 2017-05-30 | 2019-09-24 | Intel Corporation | Tamper resistant lock assembly having physical unclonable functions |
EP3454318B1 (en) * | 2017-09-12 | 2022-05-11 | eMemory Technology Inc. | Security system with entropy bits generated by a puf |
US10984108B2 (en) * | 2018-10-05 | 2021-04-20 | International Business Machines Corporation | Trusted computing attestation of system validation state |
-
2020
- 2020-02-26 US US16/801,168 patent/US11121884B2/en active Active
- 2020-05-06 TW TW109114975A patent/TWI744892B/zh active
- 2020-05-08 CN CN202010384008.8A patent/CN112069553B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201346618A (zh) * | 2011-12-29 | 2013-11-16 | Intel Corp | 使用物理性不可複製功能的安全金鑰儲存器 |
US20150278527A1 (en) * | 2012-09-28 | 2015-10-01 | Siemens Aktiengesellschaft | Self-Test of a Physical Unclonable Function |
TW201610745A (zh) * | 2012-11-21 | 2016-03-16 | 蘋果公司 | 電子器件、用於建立及強制實行與一存取控制元件相關聯之一安全性原則之方法及安全元件 |
US20170180140A1 (en) * | 2014-03-25 | 2017-06-22 | Carnegie Mellon University | Methods for generating reliable responses in physical unclonable functions (pufs) and methods for designing strong pufs |
CN108234132A (zh) * | 2017-12-07 | 2018-06-29 | 深圳市中易通安全芯科技有限公司 | 一种主控芯片与加密芯片的安全通信***及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200389328A1 (en) | 2020-12-10 |
CN112069553A (zh) | 2020-12-11 |
US11121884B2 (en) | 2021-09-14 |
CN112069553B (zh) | 2024-04-26 |
TW202046100A (zh) | 2020-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6998435B2 (ja) | メモリ動作の暗号化 | |
Trimberger et al. | FPGA security: Motivations, features, and applications | |
CN1914849B (zh) | 受信移动平台体系结构 | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
CN104252881B (zh) | 半导体集成电路及*** | |
CN103221961B (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
US9703945B2 (en) | Secured computing system with asynchronous authentication | |
JPH10154976A (ja) | タンパーフリー装置 | |
CN102347834A (zh) | 受信移动平台体系结构 | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
CN114091123A (zh) | 安全集成电路芯片及其保护方法 | |
Nannipieri et al. | Hardware design of an advanced-feature cryptographic tile within the european processor initiative | |
CN1996830B (zh) | 具有高级加密标准核的集成电路及验证该标准核的外包 | |
JP4845152B2 (ja) | マスタ機器及びデータ処理システム | |
TW201209710A (en) | Microprocessor, method of protection and method of revoking first password | |
TWI744892B (zh) | 電子系統及電子系統的操作方法 | |
US20080104396A1 (en) | Authentication Method | |
TWI549020B (zh) | 運算裝置、方法與系統 | |
Mohammad et al. | Required policies and properties of the security engine of an SoC | |
JP6203556B2 (ja) | 情報処理システム | |
JP2015026892A (ja) | 情報処理システム | |
CN105897405B (zh) | 一种128位对称密钥生成及保护装置 | |
Moraitis | FPGA Bitstream Modification: Attacks and Countermeasures | |
JP6069120B2 (ja) | 情報処理システム | |
CN102236754B (zh) | 数据保密方法以及使用此数据保密方法的电子装置 |