TW201843594A - 管理安全性積體電路狀態之裝置及其方法 - Google Patents

管理安全性積體電路狀態之裝置及其方法 Download PDF

Info

Publication number
TW201843594A
TW201843594A TW106134982A TW106134982A TW201843594A TW 201843594 A TW201843594 A TW 201843594A TW 106134982 A TW106134982 A TW 106134982A TW 106134982 A TW106134982 A TW 106134982A TW 201843594 A TW201843594 A TW 201843594A
Authority
TW
Taiwan
Prior art keywords
state
bit
lock
characters
array
Prior art date
Application number
TW106134982A
Other languages
English (en)
Other versions
TWI625627B (zh
Inventor
赫詩曼 日弗
塔米 尤希
摩瑞 丹
Original Assignee
新唐科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Application granted granted Critical
Publication of TWI625627B publication Critical patent/TWI625627B/zh
Publication of TW201843594A publication Critical patent/TW201843594A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

本發明揭露一種管理安全性積體電路狀態之裝置及其方法。此裝置包括一非揮發性記憶體及一控制器。該控制器係被配置為於該非揮發性記憶體儲存一狀態陣列,其包括複數個字元。於各字元中,一或複數個位元被配置為鎖定位元。該控制器進一步被配置基於該狀態陣列之鎖定位元設置該裝置之一操作狀態。透過(i) 比對該字元中之該鎖定位元之對應的鎖定值以判定於該狀態陣列中的各字元是被鎖定或被解鎖,(ii)如果狀態陣列中的所有字元都被判定為被鎖定,則設置該設備為一鎖定狀態,(iii)如果狀態陣列中的所有字元都被判定為被解鎖,則設置該設備為一解鎖狀態,且(iv)如果一或複數個字元被發現為被鎖定,且一或複數個字元被發現為被解鎖,設置該設備為一錯誤狀態。

Description

管理安全性積體電路狀態之裝置及其方法
本發明係關於一種安全性資料儲存的技術領域,且特別是用於保全性積體電路(IC)狀態管理之方法及系統。
在不同的系統及應用中,安全性積體電路係儲存敏感資料,例如:儲存於快閃記憶體或其他非揮發性記憶體(NVM)中。習知技藝中,有不同技術係用於避免非揮發性記憶體中的資料被未授權的存存取。例如,美國專利8,151,072, 其所揭露的內容通過引用併入本文,所描述的電子裝置包括一具有複數個字元1…N的非揮發性記憶體,其存取和/或寫入的權限可以被鎖定。保護暫存器係由二保護字元A和B所形成,二個保護字元A和B可根據在該可程式化記憶體中字元1…N的連續鎖定狀態而可選地啟動和非啟動。保護暫存器的狀態係透過啟動字元而定義。在初始主動字元之內容被複製到非啟動字元之前,初始啟動字元不會被刪除。當初始主動字元之內容根據鎖定命令而改變,保護暫存器的初始被動字元變成主動字元。
美國專利9,202,073,其公開內容通過引用併入本文,描述了於積體電路上保護、遮蔽資料或敏感訊號的安全性措施。根據其所揭露的系統和方法,當存取權限未被鎖定時允許擦除敏感資料,於正常操作時透過直接或間接的手段鎖定存取敏感資料的通道,並遮蔽敏感訊號免於侵入式的探測或操作。
美國專利9,262,259, 其公開內容通過引用併入本文,描述了一次性的可程式化(One-Time Programmable)積體電路的安全保護技術。其揭露的示範方法包含:取樣複數個OTP記憶體陣列之數值,並對OTP記憶體陣列之取樣數值之間進行比較,以及將每一OTP記憶體陣列之取樣數值與未編程的OTP記憶體陣列內的數值進行比較。此方法進一步包含根據取樣數值的比較結果決定積體電路是否發生錯誤。
美國專利5,954,818,其公開內容通過引用併入本文,其描述於包括第一和第二記憶體陣列的一快閃記憶體裝置中寫入記憶體元件的一種方法,該第一記憶體陣列包括複數個記憶體模組。該獨立的第二記憶體陣列包括分別對應複數個記憶體區塊的區塊鎖定位元(block lock-bit)。寫入第一記憶體陣列的記憶體區塊之一的記憶體元件的方法包括發出寫入記憶體元件的命令,判斷獨立的第二記憶體陣列中相應的區塊鎖定位元是否被設置,如果相應的區塊鎖定位元未設置,則可寫入記憶體元件。
美國專利6,073,243,其公開內容通過引用併入本文,其描述一快閃記憶體裝置包括一第一記憶體陣列、區塊鎖定電路、以及控制電路。記憶體陣列包括複數個記憶體區塊。區塊鎖定電路包括複數個區塊鎖定位元及一主要鎖定位元。各區塊鎖定位元係對應於至少一記憶體模組,並指出該對應的記憶體模組是否被鎖定。主要鎖定位元係指出複數個鎖定位元是否被鎖定。控制電路被配置為接收一通行碼以使該控制電路覆寫該主要鎖定位元。
本文描述的本發明的實施例提供了一種包括非揮發性記憶體(NVM)和控制器的裝置。控制器被配置為在非揮發性記憶體中儲存包括多個字元的狀態陣列。在每個字元中,一個或複數個位元被指定為鎖定位元。控制器還被配置為基於狀態陣列的鎖定位元來設置裝置的操作狀態,通過(i)透過將該字元的鎖定位元與分別對應的鎖定值比對,判定狀態陣列中個字元是已鎖定或未鎖定,(ii)如果狀態陣列中的所有字元被發現為已鎖定,則將裝置設置為鎖定狀態,(iii)如果發現狀態陣列中的所有字元為已解鎖,則將該裝置設置為解鎖狀態 ,和(iv)如果一或複數個字元被發現為已鎖定且其他一或複數個字元被發現為已解鎖,設置該裝置為一錯誤狀態。
在一些實施例中,控制器被配置為指定狀態陣列中,非鎖定位元的其他位元中的一或複數個位元為密碼位元,並且透過密碼位元以推導出一密碼以執行加密操作。在一個實施例中,控制器被配置為將密碼位元和鎖定位元儲存在非揮發性記憶體的交錯式記憶體單元中。在一個公開的實施例中,控制器被用於設置預設鎖定值,將給定字元中鎖定位元與預設鎖定值比對,以及設定預設鎖定值等於給定字元中密碼位元的函數。
在一些實施例中,當裝置被設置為錯誤狀態時,控制器被用於執行保護動作以避免存取儲存於積體電路中的資料。在示例性實施例中,當電源開啟(UPON POWER UP)時,控制器設定操作狀態。在一些實施例中,控制器被配置為從唯讀硬體存取預設鎖定值。
根據本發明的實施例,另外提供了一種操作積體電路(IC)的方法。該方法包括在非揮發性記憶體(NVM)中儲存包括複數個字元的狀態陣列,其中每個字元中的一個或複數個位元被指定為鎖定位元。積體電路的操作狀態是基於狀態陣列的鎖定位元而決定,其通過(i)將字元中的鎖定位元與相應的預設鎖定值進行比對,以決定狀態陣列中的各個字元是已鎖定或已解鎖,(ii)如果狀態陣列中的所有字都為已鎖定,則將積體電路設置為鎖定狀態,(iii)如果發現狀態陣列中的所有字元都為已解鎖,則將積體電路設置為已解鎖狀態,以及(iv) 如果發現一個或複數個字元已鎖定並且發現其他一個或複數個字元已解鎖,則將積體電路設置為錯誤狀態。
透過下面結合附圖對本發明的實施例的詳細描述,將更充分地理解本發明,其中:
本文描述的本發明的實施例提供了用於防止未經授權的存取安全性積體電路中資料的改進方法和系統。在示例性實施例中,所公開的技術保護非揮發性記憶體(NVM)中所儲存的敏感資料以抵抗外部篡改,例如雷射或電磁干擾(EMI, Electromagnetic Interference)攻擊。
在一些實施例中,安全性積體電路包括非揮發性記憶體和控制器。除其他功能外,控制器使用一個或多個加密密碼對儲存在非揮發性記憶體或其他記憶體上的資料(例如,資料和/或軟體程式)執行加密操作(例如,加密,解密和/或認證),並且還依照多種操作狀態操作積體電路。
其中一個狀態是「解鎖狀態」,可以自由存取(例如:寫入、存取或刪除)非揮發性記憶體,操作各種調試功能(例如JTAG)和測試模式,存取內部記憶體如:隨機存取記憶體(RAM)和硬體暫存器,和/或以其他方式自由操作積體電路功能。這種狀態可以在例如開發期間或在生產期間,用於將保全積體電路傳遞給其最終用戶之前使用。另一個狀態是積體電路處於其功能模式的「鎖定狀態」。通常,在這種狀態下,積體電路的調試功能關閉,積體電路只能透過特意設置功能接口進行存取和使用。鎖定狀態通常是提供給最終用戶的唯一狀態。第三個狀態是積體電路未被鎖定的「錯誤狀態」,也不會被合法解鎖。可以當檢測到非揮發性記憶體被嘗試篡改而響應達到該狀態。其他附加的狀態也可以被定義為適當的。
在一些實施例中,非揮發記憶體保存被稱為「狀態陣列」的多個字元的陣列。狀態陣列用於維持積體電路的操作狀態並用於維持單一密碼或複數個密碼以防止外部篡改。使用狀態陣列可防止未授權方存取(例如,存取,修改或刪除)安全資料內容,並防止使用其調試功能進一步存取積體電路。在狀態陣列的每個字元中,一個或多個位元被指定為「密碼位元」,並且一個或多個其他位元被指定為「鎖定位元」。密碼位元於產生加密密碼或複數個密碼。鎖定位元用於檢測對於非揮發性記憶體的外部攻擊。
在一些實施例中,狀態陣列的每個字元的鎖定位元決定該字元的狀態。如果該字元的所有鎖定位元都等於相應的預設鎖定值,則狀態陣列的給定字元被視為已鎖定,否則視為已解鎖。一個字元的鎖定值(指示該字元被鎖定的鎖定位元值的預期組合)可以根據不同的狀態陣列中而有不同。如果狀態陣列中的所有字元為已鎖定,則認為該積體電路被鎖定(即:處於已鎖定狀態)。如果狀態陣列中的所有字元都為已解鎖,則認為積體電路被解鎖(即:處於被解鎖狀態)。如果一個或複數個字元已鎖定,並且一個或複數個其他字元已解鎖,則認為積體電路係處於錯誤狀態。
密碼位元位和鎖定位元的設置位置通常彼此交錯,並且可能因不同的字元而不同。由於鎖定位元和密碼位彼此緊密地物理接近,所以對於鎖定位的任何外部篡改都很可能損壞一個或複數個密碼位元。因此,即使外部攻擊以某種方式成功解鎖所有單詞,也很可能會損壞許多密碼位元,並使單一加密密碼或複數個密碼不可恢復。
在典型的實施例中,控制器在電源開啟時檢查狀態陣列並為積體電路設置適當的操作狀態。對於狀態陣列中的每個字元,控制器將鎖定位元與相應的預設鎖定值進行比較,並判定該字元是已鎖定或已解鎖。如果找到一個或多個字元已鎖定並且發現其他一個或多個字元已解鎖,則控制器將判定已經被攻擊,而將積體電路設置為錯誤狀態。例如,控制器此時可以刪除非揮發性記憶體的整個內容,禁止對積體電路的進一步存取,和/或採取其他合適的保護措施。
第1圖是示意性地示出了根據本發明的實施例的安全性積體電路(IC)20的方塊圖。積體電路20可以安全地儲存用於主機22的資料。積體電路20可以用於在任何合適的系統中服務任何合適的主機22,例如在安全性儲存設備中。
積體電路22包括將資料儲存在快閃記憶體28中的控制器24。此處所描述的實施例主要涉及快閃記憶體,但是所公開的技術可應用於任何其它合適類型的非揮發性記憶體。在本示例中,積體電路20還包括儲存控制器24的軟體的啟動唯讀記憶體(ROM)32。在一個實施例中,儲存在啟動唯讀記憶體32中的軟體包括啟動軟體,即:從啟動唯讀記憶體32啟動控制器24開啟電源的程式碼。
第1圖所示的系統和記憶體配置是純粹為了概念清晰而描繪的示例配置。在不同實施例中,可以使用任何其它合適的配置。控制器24和快閃記憶體28通常被配置為,使得:(i)將快閃記憶體和控制器彼此分離是完全不可能的,並且(ii)快閃記憶體只能透過來自控制器的授權來存取。在一個實施例中,控制器24和快閃記憶體28可以製造在相同的積體電路封裝中或同一矽晶片上。為了清楚起見,圖中省略了對於公開的技術的理解不強制的要素。
各種實施例中,可以使用諸如專用積體電路(ASIC, Application-Specific Integrated Circuit )或現場可程式化閘陣列(FPGA, Field-Programmable Gate Array)中的任何合適的硬體來實現第1圖中所示的不同系統元件。或者,積體電路20的一些功能,例如控制器24的功能,可以以軟體或使用軟體和硬體元件的組合來實現。
在一些實施例中,控制器24包括通用處理器,其透過軟體程式碼以執行本文所述的功能。該軟體可以以電子形式,通過網路或從主機22下載到處理器中,或者可替代地或另外地將其提供和/或存儲在非瞬時有形介質上,例如磁、光、 或電子記憶體。
在一些實施例中,控制器24對資料進行加密操作,例如,使用一個或多個加密密碼(簡稱為「密碼」)在快閃記憶體28上儲存資料。例如,控制器可以在將資料存儲在快閃記憶體28之前對從主機22接收的用於儲存的使用者資料進行加密,並且在將其發送到主機22之前,解密從快閃記憶體28存取的資料。另外或者替代地,控制器可以加密內部標碼或其他管理資料、驗證和/或加密內部軟體程式,或執行任何其他合適的加密操作。這些加密操作中的每一個可以使用不同的密碼。
在本發明的一些實施例中,控制器24將狀態陣列40儲存在快閃記憶體28中。
狀態陣列40的一個例子顯示在第1圖底部的附圖中。從圖中可以看出,狀態陣列40包括多個字元44。在每個字元44中,一個或複數個位元被指定為「密碼位元」(在圖中表示為「K」),並且指定一個或多個其他位元作為「鎖定位元」(在圖中表示為「L」)。
在第1圖的示例中,狀態陣列40包括總共128個字元,每個字元包括16位元,其中5個被指定為鎖定位元,11個被指定為密碼位元。這些數值以及第1圖所示的密碼位元和鎖定位元的具體位置僅僅是通過示例來描繪的。在替代實施例中,可以使用任何其它合適的狀態陣列進行配置。
控制器24使用密碼位元來產生加密密碼。例如,控制器24可以通過將哈希函數(hash function)例如:SHA,應用於某些或全部密碼位元來產生密碼。在一個實施例中,為了簡化實施方式,控制器24可以通過將哈希函數應用於包括密碼位元和鎖定位元的整個狀態陣列來產生密碼。鎖定位元用於檢測針對非揮發性記憶體的外部攻擊。
字元44和狀態陣列40之間的密碼位元和鎖定位元的位置通常彼此交錯。這種交錯通常意味著密碼位元和鎖定位元儲存在彼此物理交錯的快閃記憶體單元中,在具有多級單元(MLC, Multi-Level Cell)快閃記憶體的情況下甚至可能儲存在相同的記憶體單元中。
因此,篡改一個或多個鎖定位元可能會損壞至少一個密碼位元。換句話說,即使攻擊者成功解鎖積體電路並得以完全存取狀態陣列40,對鎖定位元的物理攻擊(例如,透過用雷射或聚焦電磁輻射外部照射積體電路20的選定區域)將很可能使加密密碼不可恢復。
在所公開的實施例中,如果該字元的所有鎖定位元都等於相應的預設鎖定值,則控制器24將狀態陣列40的任何字元44視為鎖定。否則,該字元被視為解鎖。在狀態陣列40中,預設鎖定值可以因字元44不同而改變。如果狀態陣列40的所有字元44已鎖定,則整個積體電路20總體上被視為已鎖定。如果狀態陣列中的所有字元44已解鎖,則整個積體電路20亦被認為是已解鎖。如果一個或複數個字元44已鎖定,並且其他一個或複數個其他字元44已解鎖,則控制器24將積體電路20視為處於錯誤狀態。
當設定鎖定值時,通常需要選擇快閃記憶體28首次通電時,不會無意中產生的值。通常,在第一次開啟電源時,狀態陣列預期處於未鎖定狀態。因此,無意中產生的鎖定值可能導致不可恢復的錯誤狀態。
在一些實施例中,各種字元44的鎖定值被預先定義並儲存在例如為啟動唯讀記憶體32的唯讀硬體中。在另一個實施例中,鎖定位元和密碼位元可以邏輯地合併在一起。例如,在一些實施例中,每個字元44的鎖定值被定義為相同字元的密碼位元的函數。例如,每個鎖定位元可以被定義為複數個密碼位元的異或邏輯(XOR)。在一些實施例中,字元44的鎖定值被定義為符合該字元的密碼位元的錯誤檢測方程式。任何合適的錯誤檢測方程式或錯誤檢測程式碼都可以用於此目的。在一個示例性實施例中,透過在該字元的密碼位元上計算循環冗餘校驗(CRC, Cyclic Redundancy Check)來計算每個字元44的鎖定值。循環冗餘校驗的結果用作為鎖定值(密碼位元的預期值)。
在一些實施例中,控制器24係用於評估積體電路20的狀態,作為電源開啟時啟動過程的一部分。控制器的啟動軟體通常將每個字元44的鎖定位元與預設鎖定值進行比較,並且確定積體電路是為已鎖定、已解鎖或處於錯誤狀態。當鎖定值儲存在啟動唯讀記憶體32中時,啟動軟體通常從啟動唯讀記憶體存取鎖定值以執行比對。當鎖定值被運算為密碼位元的錯誤檢測功能時,啟動軟體通常透過每個字元44的密碼位元來計算錯誤檢測功能,並將結果與該字元的鎖定位元進行比對。
第2圖示意性地示出了根據本發明的實施例的積體電路20的操作狀態的狀態圖。在本實施例中,如上所述,控制器24根據三種可能的狀態,即:解鎖狀態50、鎖定狀態54和錯誤狀態58來操作積體電路20。
在一個示例性實施例中,三個狀態定義如下:
解鎖狀態是初始電源開啟時積體電路啟動的出廠預設狀態。在這種狀態下,通常也被稱為開發狀態,通常包括有工程測試模式和調試功能(例如JTAG)。積體電路20整體可能不發揮功能。控制器24通常能夠寫入資料至快閃記憶體28中,或從快閃記憶體28中讀取資料。
鎖定狀態通常是將積體電路20遞交給最終用戶的完整功能狀態。這通常是最終用戶被允許使用的唯一狀態。其對積體電路的存取受限於設備規範的預期功能用途。例如,可信平台模組(TPM, Trusted Platform Module)接口可以被定義為符合「TCG PC Client Platform TPM Profile(PTP)」, Family “2.0”, Level 00, Revision 00.43,於2015年1月26日的規定。其相關內容由此併入引用作為參考。
在錯誤狀態下,控制器24會判定為遭受攻擊,並採取適當的保護措施,以防止存取快閃記憶體28或其他積體電路20中的安全資料。示例保護措施可包括例如:刪除某些或所有的快閃記憶體28中的內容,阻止對積體電路20的一個或複數個功能的存取,將積體電路20轉換到積體電路不再起作用的故障模式,和/或任何其它合適的措施。
為了從解鎖狀態50轉換到鎖定狀態54(「鎖定積體電路」),將鎖定值(鎖定位的期望值)寫入狀態陣列40中的適當位置。密碼位元也被寫入狀態陣列40中的適當位置。在填充狀態陣列之後,積體電路20可以關閉電源。
當電源開啟時,積體電路20在鎖定狀態54啟動。
在啟動過程中,控制器24檢查狀態陣列40。並對每個字元44,控制器24將鎖定位元的值與相應的鎖定值進行比對。如果位元值吻合,則控制器24將該字元視為已解鎖。如果位元值不吻合,則控制器24將該字元視已鎖定。如果發現所有字元44已鎖定,則控制器24保持在鎖定狀態54。如果發現所有字元44已解鎖,則控制器24轉換到解鎖狀態50。如果發現狀態陣列40不一致(即,一個或複數個字元44已鎖定, 其他一個或多個字元44已解鎖),控制器24則判定積體電路20可能已經遭受攻擊,此時轉換到錯誤狀態58。如上所述,在錯誤狀態,控制器24中採取適當的保護措施來防止未經授權的存取積體電路20中的資料。
第2圖的狀態圖,包括狀態定義和狀態之間的轉換,是純粹為了釐清概念而繪示的示例狀態圖。在替代的實施例中,可以使用任何其它合適的狀態和轉換。
儘管這裡描述的實施例主要涉及TPM,但是本文描述的方法和系統也可以用於其他應用中,例如在具有嵌入式非揮發性記憶體的智慧卡或其他安全設備中。
因此,應當理解,上述實施例是作為示例引用的,並且本發明不限於上文具體示出和描述的內容。相反地,本發明的範圍包括上文描述的各種特徵的組合和子組合,以及本領域技術人員在閱讀前述描述後將會想到的變化和修改,並且在現有技術在本專利申請中通過引用併入的文件被認為是應用的組成部分,除了在與本說明書中明確或隱含地定義的定義相衝突的方式之外,應當考慮本說明書中的定義。
20‧‧‧積體電路
22‧‧‧主機
24‧‧‧控制器
28‧‧‧快閃記憶體
32‧‧‧啟動唯讀記憶體
40‧‧‧狀態陣列
44‧‧‧字元
50‧‧‧解鎖狀態
54‧‧‧鎖定狀態
58‧‧‧錯誤狀態
第1圖示意性地示出了根據本發明的實施例的包括非揮發性記憶體的安全性積體電路的方塊圖;以及
第2圖示意性地示出了根據本發明第1圖的積體電路操作狀態實施例的狀態圖。

Claims (14)

  1. 一種管理安全性積體電路狀態之裝置,包括: 一非揮發性記憶體(NVM);以及 一控制器,係被配置為: 於該非揮發性記憶體中儲存一狀態陣列,該狀態陣列包括複數個字元,其中,於各該字元中,一或多個位元被指定為鎖定位元;以及 根據該狀態陣列之該鎖定位元設置用於該裝置之一操作狀態,係透過下列步驟: 透過比對該字元中之該鎖定位元與分別對應的一預設鎖定值,以判定於該狀態陣列中各字元是已鎖定或已解鎖; 如果該狀態陣列中所有字元確認為已鎖定,設定該裝置至一鎖定狀態; 如果該狀態陣列中所有字元確認為已解鎖,設定該裝置至一未鎖定狀態;以及 如果一或複數個該字元確認為已鎖定且其他一或複數個字元確認為未鎖定,設定該裝置至一錯誤狀態。
  2. 如申請專利範圍第1項所述之裝置,其中該控制器係被配置為指定該狀態陣列中非該鎖定位元之其他位元的一或複數個位元為一密碼位元,透過該密碼位元所推導出一密碼,執行一加密操作。
  3. 如申請專利範圍第2項所述之裝置,其中該控制器係被配置為儲存該密碼位元及該鎖定位元於該非揮發性記憶體之一交錯式記憶體單元。
  4. 如申請專利範圍第2項所述之裝置,其中該控制器係被配置為設置該預設鎖定值,而一給定字元中之該鎖定位元係與該預設鎖定值比對,以及使該給定字元相等於該密碼位元之一方程式。
  5. 如申請專利範圍第1項所述之裝置,其中當設定該裝置為該錯誤狀態,該控制器係被設置為執行一保護動作以避免存取儲存於該裝置中之資料。
  6. 如申請專利範圍第1 項所述之裝置,其中當電源開啟(UPON POWER UP)時,該控制器係設定該操作狀態。
  7. 如申請專利範圍第1項所述之裝置,其中該控制器係從一唯唯讀唯讀硬體存取該預設鎖定值。
  8. 一種管理安全性積體電路狀態之方法,該方法包括: 儲存一狀態陣列於一非揮發性記憶體(NVM),其包括複數個字元,其中,於各字元中,一或複數個位元係被指定為一鎖定位元;以及 設定一操作狀態,係基於該狀態陣列之該鎖定位元以用於該積體電路,其透過下列步驟: 透過將字元中之該鎖定位元與一預設鎖定值比對,以決定該狀態陣列之各字元是已鎖定或已解鎖; 如果於該狀態陣列中之所有字元被確認為被鎖定,設定該積體電路為一鎖定狀態; 如果於該狀態陣列中之所有字元被確認為被解鎖,設定該積體電路為一解鎖狀態;以及 如果一或複數個字元被確認為鎖定狀態,且一或複數個字元確認為解鎖狀態,則設定該積體電路至一錯誤狀態。
  9. 如申請專利範圍第8項所述之方法,其所儲存之該狀態陣列包括指定,係指定該狀態陣列中非鎖定位元之複數個字元為密碼位元,以由該密碼位元執行一加密操作。
  10. 如申請專利範圍第9項所述之方法,其所儲存之該狀態陣列包括儲存該密碼位元及該鎖定位元於該非揮發性記憶體之一交錯式記憶體單元上。
  11. 如申請專利範圍第9項所述之方法,其包括設定該預設鎖定值,以使一給定字元中之該鎖定位元與該預設鎖定值比對,使該給定字元相等於該鎖定位元之一方程式。
  12. 如申請專利範圍第8項所述之方法,其中設定該積體電路為該錯誤狀態包括執行一保護動作以避免存取儲存於該積體電路中之資料。
  13. 如申請專利範圍第8項所述之方法,其中當電源開啟(UPON POWER UP)時,設定該操作狀態。
  14. 如申請專利範圍第8項所述之方法,其中比對該鎖定位元與該預設鎖定值包括從一唯讀硬體存取該預設鎖定值。
TW106134982A 2017-05-03 2017-10-12 管理安全性積體電路狀態之裝置及其方法 TWI625627B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/585,260 US10296738B2 (en) 2017-05-03 2017-05-03 Secure integrated-circuit state management
US15/585,260 2017-05-03

Publications (2)

Publication Number Publication Date
TWI625627B TWI625627B (zh) 2018-06-01
TW201843594A true TW201843594A (zh) 2018-12-16

Family

ID=63255966

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106134982A TWI625627B (zh) 2017-05-03 2017-10-12 管理安全性積體電路狀態之裝置及其方法

Country Status (4)

Country Link
US (1) US10296738B2 (zh)
JP (1) JP6518798B2 (zh)
CN (1) CN108804352B (zh)
TW (1) TWI625627B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
EP3663959B1 (en) * 2018-12-06 2021-08-11 Mastercard International Incorporated An integrated circuit, method and computer program
US11321458B2 (en) * 2020-01-28 2022-05-03 Nuvoton Technology Corporation Secure IC with soft security countermeasures
US11600332B2 (en) * 2020-10-20 2023-03-07 Micron Technology, Inc. Programmable atomic operator resource locking

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3178909B2 (ja) 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
US5394367A (en) * 1994-03-18 1995-02-28 Ramtron International Corporation System and method for write-protecting predetermined portions of a memory array
US5954818A (en) 1997-02-03 1999-09-21 Intel Corporation Method of programming, erasing, and reading block lock-bits and a master lock-bit in a flash memory device
US6073243A (en) 1997-02-03 2000-06-06 Intel Corporation Block locking and passcode scheme for flash memory
FR2810152A1 (fr) 2000-06-13 2001-12-14 St Microelectronics Sa Memoire eeprom securisee comprenant un circuit de correction d'erreur
CN1378146A (zh) * 2001-04-03 2002-11-06 李长珍 计算机用信息安全智能保护锁
US7398554B1 (en) 2002-04-02 2008-07-08 Winbond Electronics Corporation Secure lock mechanism based on a lock word
US6842371B2 (en) * 2003-06-03 2005-01-11 Micron Technology, Inc. Permanent master block lock in a memory device
US20060059372A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Integrated circuit chip for encryption and decryption having a secure mechanism for programming on-chip hardware
JP4367482B2 (ja) * 2006-12-20 2009-11-18 株式会社カシオ日立モバイルコミュニケーションズ 携帯端末及びプログラム
EP1970813B1 (fr) * 2007-03-13 2011-01-12 EM Microelectronic-Marin SA Procédé de verrouillage de mots d'une mémoire non volatile dans un dispositif électronique équipé de moyens de communication RF
CN101320355B (zh) * 2007-06-04 2010-12-22 群联电子股份有限公司 存储装置、存储卡存取装置及其读写方法
US20090125726A1 (en) 2007-11-14 2009-05-14 Mcm Portfolio Llc Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices
JP2010009421A (ja) * 2008-06-27 2010-01-14 Sony Corp 集積回路
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8572334B2 (en) * 2010-04-23 2013-10-29 Psion, Inc. System and method for locking portions of a memory card
US8369149B2 (en) * 2010-09-30 2013-02-05 Sandisk Technologies Inc. Multi-step channel boosting to reduce channel to floating gate coupling in memory
CN102385556B (zh) * 2011-11-08 2014-11-26 聚辰半导体(上海)有限公司 串行非易失性存储器及解除存储器写保护的方法
TWI454959B (zh) * 2011-12-08 2014-10-01 Phison Electronics Corp 儲存裝置保護系統及其儲存裝置上鎖與解鎖方法
US8803548B2 (en) * 2012-04-19 2014-08-12 Microsemi SoC Corporation Apparatus and methods for a tamper resistant bus for secure lock bit transfer
US9390278B2 (en) * 2012-09-14 2016-07-12 Freescale Semiconductor, Inc. Systems and methods for code protection in non-volatile memory systems
US11068620B2 (en) * 2012-11-09 2021-07-20 Crossbar, Inc. Secure circuit integrated with memory layer
US9202073B2 (en) 2012-11-21 2015-12-01 Fairchild Semiconductor Corporation Security measures for data protection
US9262259B2 (en) 2013-01-14 2016-02-16 Qualcomm Incorporated One-time programmable integrated circuit security
US10452567B2 (en) * 2013-04-29 2019-10-22 Hewlett Packard Enterprise Development Lp Non-volatile memory to store resettable data
US9940048B2 (en) * 2014-02-26 2018-04-10 Macronix International Co., Ltd. Nonvolatile memory data protection using nonvolatile protection codes and volatile protection codes

Also Published As

Publication number Publication date
CN108804352A (zh) 2018-11-13
CN108804352B (zh) 2021-05-28
JP2018190386A (ja) 2018-11-29
TWI625627B (zh) 2018-06-01
JP6518798B2 (ja) 2019-05-22
US20180322278A1 (en) 2018-11-08
US10296738B2 (en) 2019-05-21

Similar Documents

Publication Publication Date Title
US10872154B2 (en) Secure device state apparatus and method and lifecycle management
US10680809B2 (en) Physical unclonable function for security key
EP3407335B1 (en) Non-volatile memory based physically unclonable function with random number generator
TWI736837B (zh) 記憶體設備、非揮發性雙直列記憶體模組、記憶體系統、及加密方法
US9064108B2 (en) Storage device, storage system, and authentication method
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
US9443111B2 (en) Device security using an encrypted keystore data structure
TWI625627B (zh) 管理安全性積體電路狀態之裝置及其方法
US7043636B2 (en) Data integrity mechanisms for static and dynamic data
US11409872B2 (en) Confirming a version of firmware loaded to a processor-based device
US20080148001A1 (en) Virtual Secure On-Chip One Time Programming
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
KR20070048960A (ko) 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
TW201832128A (zh) 具有彈性限制之碼簽名之驗證
US20210211281A1 (en) Apparatus and method for securely managing keys
US9471413B2 (en) Memory device with secure test mode
TWI716685B (zh) 電子系統及其操作方法
JP6107191B2 (ja) Icカード
CN111357003A (zh) 预操作系统环境中的数据保护
WO2022006353A1 (en) Secure key storage systems methods and devices
EP2945092A1 (en) Memory device with secure test mode