TWI509405B - 用於一次可程式化的積體電路安全性的方法、系統及電腦程式產品 - Google Patents

用於一次可程式化的積體電路安全性的方法、系統及電腦程式產品 Download PDF

Info

Publication number
TWI509405B
TWI509405B TW103101294A TW103101294A TWI509405B TW I509405 B TWI509405 B TW I509405B TW 103101294 A TW103101294 A TW 103101294A TW 103101294 A TW103101294 A TW 103101294A TW I509405 B TWI509405 B TW I509405B
Authority
TW
Taiwan
Prior art keywords
otp memory
memory array
value
occurred
otp
Prior art date
Application number
TW103101294A
Other languages
English (en)
Other versions
TW201439748A (zh
Inventor
Asaf Ashkenazi
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201439748A publication Critical patent/TW201439748A/zh
Application granted granted Critical
Publication of TWI509405B publication Critical patent/TWI509405B/zh

Links

Classifications

    • 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
    • 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
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

用於一次可程式化的積體電路安全性的方法、系統及電 腦程式產品
本案係關於一次性可程式設計積體電路安全性。
包括積體電路(IC)的電子系統經常利用IC的安全記憶體(例如安全隨機存取記憶體(RAM))來儲存使用者期望或需要保密並保護免受駭客攻擊的置備資料。一般來說,置備資料可以是在製造後儲存在IC記憶體中的任何資料。儲存在安全記憶體中的置備資料可包括,例如但不限於代碼、金鑰、密碼、帳戶資訊、個人資訊、專有資訊和連絡人資訊。示例性的電子系統或端設備包括機上盒、個人電腦、膝上型電腦、掌上型設備、平板設備以及數據機。儲存在安全記憶體中的此類置備資料可能容易受到設計成獲得對安全記憶體的未經授權存取的駭客攻擊。為了保護安全記憶體中的置備資料,IC(可包括系統晶片(SoC)IC)能納入安全性系統,該安全性系統可利用硬體嵌入式安全性序列來決定IC是否曾經是駭客攻擊的物件。若IC曾經被攻擊,則安全性系統能 使IC阻止或限制對安全記憶體和其中儲存的置備資料的存取。
硬體嵌入式安全性序列可使用一次性可程式設計(OTP)記憶體來實現。OTP記憶體包括至少一個OTP記憶體裝置和任何相關聯的電子電路系統,包括但不限於取樣和捕捉電路系統以用於取樣和捕捉可程式設計裝置的已程式設計狀態。多個OTP記憶體裝置和相關聯的電子電路系統構成了OTP記憶體陣列。OTP記憶體裝置可以被程式設計一次並且不可以被再程式設計。OTP記憶體裝置的示例是熔絲和反熔絲。
在示例性的熔絲OTP記憶體陣列中,陣列之每一者熔絲裝置能存在於兩種狀態之一中。在初始的未程式設計狀態中,熔絲裝置能起到准許電流傳導的電子連接線的作用。一旦施加程式設計電壓或電流,每個熔絲裝置可轉換到已程式設計狀態,在已程式設計狀態中熔絲裝置可用作限制通過熔絲的電流傳導的開路。程式設計電壓或電流取決於構成熔絲的裝置。例如,若熔絲由電晶體形成,則程式設計電壓可以是稍高於電晶體的工作電壓的電壓。程式設計電壓能永久改變熔絲裝置及/或熔絲裝置的組成材料的電性質。經由選擇性地程式設計或「燃燒」陣列中的各個熔絲裝置,就可將值程式設計到熔絲OTP記憶體陣列中。
在對熔絲OTP記憶體陣列中的熔絲裝置的狀態的讀出或取樣期間,每個熔絲可對應於邏輯值「0」或「1」,該邏輯值能由相關聯的電子電路系統來取樣和捕捉。例如,未程式設計的熔絲可對應於邏輯值「0」,而已程式設計的熔絲可對應於邏輯值「1」。將陣列中已程式設計和未程式設計的熔 絲裝置的對應邏輯值並在一起就能決定陣列值。該陣列值可對應於硬體嵌入式安全性序列。
當製造包括OTP記憶體陣列的IC時,未程式設計OTP記憶體陣列可包括所有未程式設計裝置。一般來說,具有未程式設計OTP記憶體陣列的IC被稱為「原始晶片」。未程式設計OTP記憶體陣列中的所有可程式設計元件的取樣狀態可對應於同一邏輯值。例如,若未程式設計的OTP裝置可對應於邏輯值「0」,則原始晶片的OTP記憶體陣列之每一者可程式設計裝置的取樣狀態可以是「0」。在此情形中,未程式設計或即原始晶片OTP記憶體陣列值可以是0。在另一示例中,若未程式設計OTP裝置可對應於邏輯值「1」,則原始晶片的OTP記憶體陣列之每一者可程式設計裝置的取樣狀態可以是「1」。在此情形中,未程式設計或即原始晶片OTP記憶體陣列值可以是(2n -1)(例如,2的n次指數減1),其中指數n是等於OTP記憶體陣列中的可程式設計裝置數目的位元數;n可具有大於或等於1的值。
對IC的一種類型的駭客攻擊被稱為脈衝攻擊(glitch attack)。脈衝攻擊可以是對IC工作參數的實體擾動,該實體擾動能創生可被惡意利用的IC效能故障。實體擾動可以例如,以工作電壓變動、晶片溫度改變、所施加的電場以及入射的電磁輻射來實現。作為因脈衝攻擊導致的示例性故障,硬體嵌入式安全性序列可能受欺騙從而嘗試禁用或旁路掉被設計成保護例如IC的安全記憶體、處理常式、及/或任何其他功能、功能元件、或各態樣的IC安全性系統。
在對包括OTP記憶體陣列的IC的示例性脈衝攻擊中,晶片的實體狀況可被改變,從而在可程式設計裝置狀態的取樣期間,與每個可程式設計裝置的狀態對應的邏輯值不能被毫無疑義地解讀為「0」或「1」。作為由脈衝攻擊導致的示例性故障,已經用一序列(例如安全性序列)程式設計的OTP記憶體陣列的取樣OTP記憶體陣列值可能不等於已程式設計的序列,而是可以為欺騙值。在以上示例性攻擊中,OTP記憶體陣列可以是熔絲OTP記憶體陣列、反熔絲OTP記憶體陣列、或任何其他類型的OTP記憶體陣列或設備。
在一實施例中,IC能經由使用取樣OTP記憶體陣列值決定是否已發生IC效能故障來保護安全記憶體中的置備資料。若決定已經發生故障,則對安全記憶體的存取可被限制或阻止。結果,安全記憶體中的置備資料可能隨後至少被發起脈衝攻擊的駭客濫用的可能性可得以降低。
根據本案的一種保護積體電路中的記憶體資產的方法的示例包括:對多個OTP記憶體陣列之每一者陣列的值進行取樣,將每個OTP記憶體陣列的取樣值與每個其他OTP記憶體陣列的取樣值以及與未程式設計OTP記憶體陣列值進行比較,基於經比較的取樣值來決定是否已經發生積體電路效能故障,啟動積體電路,以及用由故障發生決定所決定的對記憶體的存取來操作積體電路。
此種方法的實現可包括以下特徵中的一者或多者。決定是否已經發生故障可包括:若至少一個OTP記憶體陣列的 取樣值等於未程式設計OTP記憶體陣列值並且若每個OTP記憶體陣列的取樣值不等於每個其他OTP記憶體陣列的取樣值,則決定已經發生故障。決定是否已經發生故障可包括:若每個OTP記憶體陣列的取樣值等於每個其他OTP記憶體陣列的取樣值並且每個OTP記憶體陣列的取樣值不等於未程式設計OTP記憶體陣列值,則決定未曾發生故障。未程式設計OTP記憶體陣列值可以是0。未程式設計OTP記憶體陣列值可以是(2n -1),其中n可以是位元數。
方法的一個示例性實現可包括決定安全性信號的指示。若決定未曾發生故障,則安全性信號可指示安全操作模式。若決定已經發生故障,則安全性信號可指示非安全操作模式。對記憶體的存取可包括在決定已經發生故障的情況下對安全記憶體的受限存取。啟動積體電路可以不受故障發生決定的影響。積體電路可以是系統晶片。
根據本案的一種保護積體電路中的記憶體資產的方法的示例可包括:對第一OTP記憶體陣列的值和第二OTP記憶體陣列的值進行取樣,將第一OTP記憶體陣列和第二OTP記憶體陣列的取樣值彼此進行比較以及與未程式設計OTP記憶體陣列值進行比較,基於經比較的取樣值來決定是否已經發生積體電路效能故障,啟動積體電路,以及用由故障發生決定所決定的對記憶體的存取來操作積體電路。
此種方法的實現可包括以下特徵中的一者或多者。決定是否已經發生故障可包括:若第一OTP記憶體陣列的取樣值等於未程式設計OTP記憶體陣列值或若第二OTP記憶體陣 列的取樣值等於未程式設計OTP記憶體陣列值或若第一和第二OTP記憶體陣列兩者的取樣值等於未程式設計OTP記憶體陣列值,則決定已經發生故障。決定是否已經發生故障可包括:若第一OTP記憶體陣列的取樣值不等於第二OTP記憶體陣列的取樣值,則決定已經發生故障。決定是否已經發生故障可包括:若第一OTP記憶體陣列的取樣值等於第二OTP記憶體陣列的取樣值且第一OTP記憶體陣列的取樣值不等於未程式設計OTP記憶體陣列值且第二OTP記憶體陣列的取樣值不等於未程式設計OTP記憶體陣列值,則決定未曾發生故障。未程式設計OTP記憶體陣列值可以是0。未程式設計OTP記憶體陣列值可以是(2n -1),其中n可以是位元數。
方法的一示例性實現可包括決定安全性信號的指示。若決定未曾發生故障,則安全性信號可指示安全操作模式。若故障發生被決定為已經發生,則安全性信號可指示非安全操作模式。對記憶體的存取可包括在決定已經發生故障的情況下對安全記憶體的受限存取。啟動積體電路可以不受故障發生決定的影響。積體電路可以是系統晶片。
根據本案的一種保護積體電路中的記憶體資產的系統的示例可包括:複數個OTP記憶體陣列、配置成對這複數個OTP記憶體陣列之每一者陣列的值進行取樣的電路系統、配置成將每個OTP記憶體陣列的取樣值與每個其他OTP記憶體陣列的取樣值以及與未程式設計OTP記憶體陣列值進行比較並基於經比較的取樣值來決定是否已經發生積體電路效能故障的比較邏輯區塊、以及配置成啟動積體電路並用由故障發生 決定所決定的對記憶體的存取來操作積體電路的至少一個處理模組。
系統的一個示例性實現可包括比較邏輯區塊被配置成:若至少一個OTP記憶體陣列的取樣值等於未程式設計OTP記憶體陣列值則決定已經發生故障,若每個OTP記憶體陣列的取樣值不等於每個其他OTP記憶體陣列的取樣值則決定已經發生故障,以及若每個OTP記憶體陣列的取樣值等於每個其他OTP記憶體陣列的取樣值且每個OTP記憶體陣列的取樣值不等於未程式設計OTP記憶體陣列值則決定未曾發生故障。未程式設計OTP記憶體陣列值可以是0。未程式設計OTP記憶體陣列值可以是(2n -1),其中n可以是位元數。
系統的一個示例可包括比較邏輯區塊被配置成決定安全性信號的指示。若決定未曾發生故障,則安全性信號可指示安全操作模式。若決定已經發生故障,則安全性信號可指示非安全操作模式。對記憶體的存取可包括在決定已經發生故障的情況下對安全記憶體的受限存取。啟動積體電路可以不受故障發生決定的影響。積體電路可以是系統晶片。
根據本案的一種用於保護積體電路中的記憶體資產的系統的示例可包括:用於對複數個OTP記憶體陣列之每一者OTP記憶體陣列的值進行取樣的裝置、用於將這複數個OTP記憶體陣列之每一者OTP記憶體陣列的取樣值與這複數個OTP記憶體陣列之每一者其他OTP記憶體陣列的取樣值以及與未程式設計OTP記憶體陣列值進行比較的裝置、用於基於經比較的取樣值來偵測積體電路效能故障發生的裝置、用於啟動積 體電路的裝置、以及用於用由故障發生決定所決定的對記憶體的存取來操作積體電路的裝置。
系統的一個示例性實現可包括:若至少一個OTP記憶體陣列的取樣值等於未程式設計OTP記憶體陣列值則決定已經發生故障,若每個OTP記憶體陣列的取樣值不等於每個其他OTP記憶體陣列的取樣值則決定已經發生故障,以及若每個OTP記憶體陣列的取樣值等於每個其他OTP記憶體陣列的取樣值且每個OTP記憶體陣列的取樣值不等於未程式設計OTP記憶體陣列值則決定未曾發生故障。未程式設計OTP記憶體陣列值可以是0。未程式設計OTP記憶體陣列值可以是(2n -1),其中n可以是位元數。
系統的一個示例可包括用於決定安全性信號的指示的裝置。若故障發生被決定為未曾發生,則安全性信號可指示安全操作模式。若決定已經發生故障,則安全性信號可指示非安全操作模式。對記憶體的存取可包括在決定已經發生故障的情況下對安全記憶體的受限存取。啟動積體電路可以不受故障發生決定的影響。積體電路可以是系統晶片。
根據本案的一種常駐在處理器可讀的非瞬態儲存媒體上的電腦程式產品的示例可包括處理器可讀取指令,這些處理器可讀取指令可由一或多個處理器執行以使電路系統對複數個OTP記憶體陣列之每一者OTP記憶體陣列的值進行取樣,使比較邏輯區塊將每個OTP記憶體陣列的取樣值與每個其他OTP記憶體陣列的取樣值以及與未程式設計OTP記憶體陣列值進行比較並基於經比較的取樣值來決定是否已經發生積 體電路效能故障,啟動積體電路,以及用由故障發生決定所決定的對記憶體的存取來操作積體電路。
電腦程式產品的一個示例性實現可包括使比較邏輯區塊執行以下操作的處理器可讀取指令:若至少一個OTP記憶體陣列的取樣值等於未程式設計OTP記憶體陣列值則決定已經發生故障,若每個OTP記憶體陣列的取樣值不等於每個其他OTP記憶體陣列的取樣值則決定已經發生故障,以及若每個OTP記憶體陣列的取樣值等於每個其他OTP記憶體陣列的取樣值且每個OTP記憶體陣列的取樣值不等於未程式設計OTP記憶體陣列值則決定未曾發生故障。未程式設計OTP記憶體陣列值可以是0。未程式設計OTP記憶體陣列值可以是(2n -1),其中n可以是位元數。
電腦程式產品的一個示例可包括使得比較邏輯區塊決定安全性信號的指示的處理器可讀取指令。若決定未曾發生故障,則安全性信號可指示安全操作模式。若決定已經發生故障,則安全性信號可指示非安全操作模式。對記憶體的存取可包括在決定已經發生故障的情況下對安全記憶體的受限存取。啟動積體電路可以不受故障發生決定的影響。積體電路可以是系統晶片。
根據本發明的各實現,可提供以下能力中的一者或多者。對積體電路的脈衝攻擊可經由決定已經發生故障來偵測。兩個或兩個以上OTP陣列的值可彼此進行比較並與未程式設計OTP陣列值進行比較。若比較結果決定已經發生故障,則積體電路中的記憶體資產可被保護。啟動積體電路是不受已 經發生故障的決定的影響的。本發明的這些和其他能力連同本發明本身將在閱覽以下附圖、詳細描述和申請專利範圍後得到更全面的理解。可提供其他能力並且並非要根據本案的每個實現皆必須提供所討論的能力中的任一種,更不必說必須提供所討論的全部能力。另外,經由不同於所述手段的其他手段來達成上述效果是可能的,並且所述項目/技術可未必產生所述效果。
100‧‧‧硬體嵌入式安全性系統
120‧‧‧OTP記憶體陣列塊
121‧‧‧熔絲裝置
123‧‧‧取樣和捕捉電路系統
124‧‧‧熔絲OTP記憶體陣列A
125‧‧‧熔絲裝置
127‧‧‧取樣和捕捉電路系統
128‧‧‧熔絲OTP記憶體陣列B
134‧‧‧位元線匯流排A
138‧‧‧位元線匯流排B
140‧‧‧比較邏輯區塊
145‧‧‧數位邏輯電路系統
160‧‧‧安全性信號
170‧‧‧處理模組
184‧‧‧非安全記憶體
188‧‧‧安全記憶體
200‧‧‧硬體嵌入式安全性方法
220‧‧‧階段
224‧‧‧階段
226‧‧‧階段
240‧‧‧階段
260‧‧‧階段
264‧‧‧階段
266‧‧‧階段
268‧‧‧階段
270‧‧‧階段
280‧‧‧階段
284‧‧‧階段
288‧‧‧階段
300‧‧‧硬體嵌入式安全性方法
320‧‧‧階段
340‧‧‧階段
360‧‧‧階段
364‧‧‧階段
366‧‧‧階段
368‧‧‧階段
370‧‧‧階段
380‧‧‧階段
圖1是圖示包括兩個熔絲OTP記憶體陣列的SoC中的硬體嵌入式安全性系統的實施例的方塊圖。
圖2是包括兩個熔絲OTP記憶體陣列的硬體嵌入式安全性方法的程序圖。
圖3是包括M個OTP記憶體陣列的硬體嵌入式安全性方法的程序圖。
本發明的各實施例提供了利用硬體嵌入式安全性系統來偵測或決定例如由脈衝攻擊引發的SoC效能故障的發生的技術。然而,以下所討論的技術是示例性的,且並不限定本發明,因為根據本案的其他實現是可能的。所描述的技術可被實現為方法、裝置或系統並且可在電腦可讀取媒體中實施。
熔絲OTP記憶體陣列值在SoC上電或復位時被取樣。將熔絲OTP記憶體陣列的值與未程式設計或原始晶片的熔絲OTP記憶體陣列值以及與一或多個其他熔絲OTP記憶體陣列 的值進行比較。若每個熔絲OTP記憶體陣列值皆是相等的並且沒有陣列值等於未程式設計值,則決定未曾發生故障,決定該SoC未曾是脈衝攻擊的物件,並且安全性信號被設置為指示安全操作模式。若熔絲OTP記憶體陣列的陣列值並非全部相等,或者至少一個陣列值等於未程式設計值,則決定已經發生故障,決定SoC曾是脈衝攻擊的物件,並且安全性信號被設置為指示非安全操作模式。根據針對安全操作模式和非安全操作模式兩者的相同規程來啟動SoC。在SoC被啟動後,在非安全操作模式中,回應於安全性信號指示,以對安全記憶體和其中儲存的任何置備資料的受限、受阻或另行受控的存取來操作SoC。在安全操作模式中,以對安全記憶體和其中儲存的任何置備資料的存取來操作SoC。在安全操作模式中,對安全記憶體和其中儲存的任何置備資料的存取的程度、等級或類型回應於安全性信號指示是不受限的,但可以回應於除安全性信號指示以外的參數而受限、受阻或另行受控。該規程在每次SoC上電或復位時重複。
參照圖1,示出了圖示用於保護SoC中的記憶體資產的硬體嵌入式安全性系統100的實施例的方塊圖。系統100是示例性的並且亦可以是另一種類型的IC且並不限於SoC。系統100是非限定性的並且例如可經由添加、移除或重新安排元件來改動。
系統100可以是電子系統或端設備(未在圖1中示出)的一部分。端設備可以是包括IC的任何電子系統,例如機上盒、個人電腦、膝上型電腦、手持設備、平板設備以及數 據機。
在一實施例中,系統100可包括OTP記憶體陣列塊120、比較邏輯區塊140、處理模組170、非安全記憶體184、以及安全記憶體188。OTP記憶體陣列塊120可包括兩個熔絲OTP記憶體陣列,即熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B 128。熔絲OTP記憶體陣列A 124可包括n個熔絲裝置121以及取樣和捕捉電路系統123,其中n是大於或等於1的整數。類似地,熔絲OTP記憶體陣列B 128可包括n個熔絲裝置125以及取樣和捕捉電路系統127,其中n具有與熔絲OTP記憶體陣列A相同的值。圖1中示出的熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B 128的各組件是示例性而非限定性的;這兩個熔絲OTP記憶體陣列亦可包括其他未圖示的元件。
取樣和捕捉電路系統123和127能分別對與這n個熔絲裝置121和125的已程式設計/未程式設計狀態相對應的邏輯值進行取樣和捕捉。
在一實施例中,未程式設計的熔絲可對應於邏輯值「0」,而已程式設計的熔絲可對應於邏輯值「1」。在某些示例性實現中,未程式設計的熔絲可對應於邏輯值「1」,而已程式設計的熔絲可對應於邏輯值「0」。在一實施例中,OTP記憶體陣列塊120可包括一或多個反相器裝置,該(些)反相器裝置可使未程式設計的熔絲OTP裝置對應於邏輯值「1」且使已程式設計的熔絲OTP裝置對應於邏輯值「0」。在示例性應用中,OTP記憶體陣列塊120可包括反熔絲裝置或任何其他類型的OTP裝置。
OTP記憶體陣列塊120可經由兩條位元線匯流排(位元線匯流排A 134和位元線匯流排B 138)被耦合至比較邏輯區塊140。每條位元線匯流排134和138能分別攜帶來自熔絲OTP記憶體陣列124和128的n個信號。這n個信號中的每一個信號可對應於這n個熔絲OTP裝置之一的取樣及/或擷取邏輯值。
比較邏輯區塊能被耦合至處理模組170。安全性信號160能經由電連接或配置成傳播信號的任何其他類型的連接從比較邏輯區塊140被發送至處理模組170。
處理模組170可被耦合至記憶體塊184和188,其可包括隨機存取記憶體(RAM)或任何其他類型的IC記憶體。記憶體塊184可以是非安全記憶體,而記憶體塊188可以是安全記憶體。非安全記憶體184和安全記憶體188兩者可包含置備資料。
圖1中在系統100的各元件之間示出的連接是示例性的。可以使用各元件之間的額外連接。在圖1中示出的元件與圖1中未圖示但包括在硬體嵌入式安全性系統及/或SoC或其他IC中的其他元件之間亦可存在連接。一或多個其他處理器(未圖示)可被包括在系統100中。
為了保護可被儲存在系統100的安全記憶體塊188中或儲存在處理模組170可存取的其他安全記憶體中的置備資料,可在晶片製造後(例如在包含系統100的電子系統或端設備的製造期間)用相同的安全性序列來程式設計熔絲OTP記憶體陣列A 124和B 128。
在一實施例中,OTP記憶體陣列塊120可包括以如下 方式配置的熔絲OTP裝置:對於原始晶片的未程式設計OTP記憶體陣列,熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B 128中的所有未程式設計熔絲裝置的取樣狀態可全部對應於同一邏輯值「0」。因此,在有n個未程式設計熔絲裝置的情況下,熔絲OTP記憶體陣列A 124的取樣狀態可對應於n位元的零值。同樣,熔絲OTP記憶體陣列B 128的取樣狀態可對應於n 位元的零值。在特定的示例性實現中,未程式設計OTP裝置的取樣狀態可對應於邏輯值「1」,而已程式設計OTP裝置的取樣狀態可對應於邏輯值「0」。因此,在此種示例性實現中,OTP記憶體陣列塊120之每一者OTP記憶體陣列的取樣n位值可以是(2n -1),對應於n位皆為邏輯值「1」。由n的值決定的該非零值(2n -1)可以是原始晶片的未程式設計OTP記憶體陣列值。
在一實施例中,熔絲OTP記憶體陣列A 124和B 128可用相同的安全性序列來程式設計。將安全性序列程式設計到熔絲OTP記憶體陣列A 124和B 128中可經由對這些OTP記憶體陣列中的熔絲進行選擇性程式設計來實現。在程式設計之後,熔絲OTP記憶體陣列A 124的取樣陣列值可以與熔絲OTP記憶體陣列B 128的取樣陣列值相同。此外,取樣陣列值可以不等於未程式設計原始晶片OTP記憶體陣列值。
在一實施例中,當包括系統100的SoC上電或復位時,熔絲OTP記憶體陣列A 124的n個熔絲裝置121的熔絲狀態以及熔絲OTP記憶體陣列B 128的n個熔絲裝置125的熔絲狀態可分別由用於熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B 128的取樣和捕捉電路系統123和127來取樣和捕捉。熔絲 OTP記憶體陣列A 124的取樣陣列值可經由位元線匯流排A 134被發送至比較邏輯區塊140。類似地,熔絲OTP記憶體陣列B 128的取樣陣列值可經由位元線匯流排B 138被發送至比較邏輯區塊140。
比較邏輯區塊140可包括數位邏輯電路系統145。數位邏輯電路系統145可包括但不限於及閘、反及閘、或閘、反或閘、異或閘及其任何組合。在一實施例中,數位邏輯電路系統145可將每個熔絲OTP記憶體陣列124和128的取樣值與未程式設計原始晶片陣列值進行比較,並且亦可將熔絲OTP記憶體陣列A 124的取樣值與熔絲OTP記憶體陣列B 128的取樣值進行比較。基於這些比較,比較邏輯區塊140可決定是否已經發生例如因脈衝攻擊導致的故障。
在某些實現中,每個陣列的未程式設計原始晶片值可以是0。在此情形中,可由數位邏輯電路系統145將每個熔絲OTP記憶體陣列124和128的取樣值與0進行比較。在其他示例性實現中,每個具有n個元件的陣列的未程式設計原始晶片值可以是(2n -1)。在此類實現中,每個熔絲OTP記憶體陣列124和128的取樣值可與(2n -1)進行比較。
在特定實現中,若熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B 128的取樣值相同且為非零,則比較邏輯區塊140可決定未曾發生故障。在此情形中,熔絲OTP記憶體陣列124和128兩者的取樣值可對應於可被程式設計到熔絲OTP記憶體陣列124和128兩者中的相同安全性序列。在另一特定實現中,若熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B 128的取樣值相同且不等於(2n -1),則比較邏輯區塊140可決定未曾發生故障。
在一實施例中,若熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B的取樣值不相同,則比較邏輯區塊140可決定已經發生故障。如以上所討論的,若已經發生(例如,因脈衝攻擊導致的)故障,則熔絲OTP記憶體陣列124及/或128的取樣值可能受欺騙並且因此可能既不相同亦不等於已程式設計的安全性序列。
在特定實現中,若熔絲OTP記憶體陣列A 124的取樣值及/或熔絲OTP記憶體陣列B 128的取樣值等於零,則比較邏輯區塊140可決定已經發生故障。該情形可能對應於原始晶片。
在特定實現中,若熔絲OTP記憶體陣列A 124的取樣值及/或熔絲OTP記憶體陣列B 128的取樣值對應於(2n -1),則比較邏輯區塊140可決定已經發生故障。該情形可能對應於原始晶片。
在原始晶片的情形中,關於已經發生故障的決定的假陽性可能變成現實。基於以上針對熔絲OTP記憶體陣列的取樣值描述的比較準則,比較邏輯區塊140可能指示已經發生例如因脈衝攻擊導致的故障,即使並沒有此種故障或攻擊。因為對原始晶片的安全記憶體的受阻或受限存取可能在晶片的操作中是不重要的(例如,由於原始晶片的安全記憶體可能並不包含需要及/或期望保護的置備資料),所以此種假陽性結果得到減輕。
基於故障發生決定,比較邏輯區塊140可產生能指示安全操作模式或非安全操作模式的安全性信號160。若比較邏輯區塊140決定已經發生故障,則安全性信號160可指示非安全操作模式。因為原始晶片可能產生關於故障發生的假陽性,故而安全性信號160可以在原始晶片情形中指示非安全操作模式。若比較邏輯區塊140決定未曾發生故障,則安全性信號160可指示安全操作模式。
安全性信號160可由比較邏輯區塊160發送至處理模組170。在一實施例中,處理模組170可根據相同的處理常式來啟動SoC,無論安全性信號指示安全操作模式還是非安全操作模式。啟動處理器常式可以不受對安全記憶體188的受限或受阻存取的影響。在特定應用中,處理模組170可測試SoC的裝置或功能。測試處理器常式可以不受對安全記憶體188的受限或受阻存取的影響。因此,至少對SoC的啟動和測試可以不受安全性信號指示的影響。
一旦SoC被啟動,SoC就能以由安全性信號指示所決定的對記憶體的存取來操作。若安全性信號160指示安全操作模式,則SoC可存取非安全記憶體184、安全記憶體188、連同可被儲存在其中的置備資料以及SoC操作中使用的任何其他記憶體。在一實施例中,在安全操作模式中,對安全記憶體和其中儲存的任何置備資料的存取可以是不受限的。在特定實施例中,在安全操作模式中,對安全記憶體和其中儲存的任何置備資料的存取可以回應於除安全性信號指示以外的參數而受限、受阻、或另行受控。相反,若安全性信號160指示 非安全操作模式,則回應於此安全性信號指示,SoC可限制或阻止對安全記憶體188連同可被儲存在其中的置備資料的存取。
在一實施例中,原始晶片情形中由假陽性產生的非安全操作模式的安全性信號指示可以不影響對SoC的啟動和測試。例如,因為原始晶片可能並沒有在安全記憶體188中包括置備資料,故在SoC操作期間對安全記憶體188的存取缺失、或受限存取可以是無關緊要的。
在包括系統100的電子系統或端設備的製造期間,安全性序列可被程式設計到OTP記憶體陣列塊120中。隨後,當置備資料被儲存在安全記憶體188中時,系統100可使用已程式設計的安全性序列來決定例如因脈衝攻擊、駭客攻擊、或其他實體擾亂導致的故障發生。回應於偵測到的或所決定的故障發生,系統100可經由阻止或限制對安全記憶體188的存取來保護安全記憶體188和任何可被儲存在其中的置備資料。
在操作中,參照圖2並進一步參照圖1,使用系統100的硬體嵌入式安全性方法200包括所示的階段。然而,方法200僅是示例性的而非限定性的。例如,可經由添加、移除或重新安排各階段來改動方法200。
方法200包括對熔絲OTP記憶體陣列進行取樣(220),比較所取樣的熔絲OTP記憶體陣列值(240),決定故障的發生(260),啟動SoC(270),以及操作SoC(280)。
在階段220,當SoC上電或復位時,OTP記憶體陣列塊120的各組成OTP記憶體陣列的熔絲裝置狀態被取樣和捕捉 。在階段224,由圖1中示出的取樣和捕捉電路系統123來取樣和捕捉熔絲OTP記憶體陣列A 124的n個熔絲裝置121的熔絲狀態。類似地,在階段226,由圖1中示出的取樣和捕捉電路系統127來取樣和捕捉熔絲OTP記憶體陣列B的n個熔絲裝置125的熔絲狀態。
在階段240,使用數位邏輯電路系統145,由位元線匯流排A 134和位元線匯流排B 138提供給比較邏輯區塊140的所取樣的熔絲OTP記憶體陣列值彼此進行比較並與原始晶片或未程式設計OTP記憶體陣列值進行比較。在一實施例中,取樣陣列值0對應於原始晶片值。在某些應用中,n位元全部為值「1」的取樣n位陣列值(2n -1)對應於原始晶片值。
在階段260,可決定故障發生。若熔絲OTP記憶體陣列A 124及/或熔絲OTP記憶體陣列B 128的取樣值指示原始晶片(亦即,在各種實施例中,兩個陣列的所有n個熔絲裝置121和125全為「1」或全為「0」),則在階段264決定已經發生故障。在原始晶片的情形中,故障偵測是假陽性。若熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B 128的取樣值不是相同的,則在階段266決定已經發生故障。若熔絲OTP記憶體陣列A 124和熔絲OTP記憶體陣列B的取樣值是相同的並且皆不指示原始晶片,則在階段268決定未曾發生故障。階段264、266和268是互斥的,因此在方法200的階段260只可能存在這些狀態之一。
另外,在階段260,由比較邏輯區塊140產生安全性信號160,從而經由決定例如由脈衝攻擊、駭客攻擊、或其他 實體擾亂產生的故障發生來決定安全性信號160的指示。若決定已經發生故障則產生非安全操作模式的安全性信號指示,而若決定未曾發生故障則產生安全操作模式的安全性信號指示。
在階段270,由處理模組170使用相同的處理常式來啟動SoC,無論安全性信號160的指示如何。SoC可在非安全操作模式和安全操作模式兩者中根據相同的常式或規程來啟動。SoC的啟動常式可以不需要對安全記憶體188的存取。在示例性實現中,亦可在階段270測試SoC組件。測試常式可以不需要對安全記憶體188的存取。測試常式或規程對於非安全操作模式和安全操作模式兩者可以是相同的。
在階段280,用由安全性信號160的指示所決定的對安全記憶體188的存取來操作SoC。對於非安全操作模式,以對安全記憶體188的受阻或受限存取來操作SoC,由此保護可被儲存在其中的置備資料。相反,對於安全操作模式,以對安全記憶體188和可被儲存在其中的置備資料的存取來操作SoC。在一實施例中,在安全操作模式中,對安全記憶體和其中儲存的任何置備資料的存取可以是不受限的。在特定實施例中,在安全操作模式中,對安全記憶體和其中儲存的任何置備資料的存取可能是回應於除安全性信號指示以外的參數而受限、受阻、或另行受控的。
如以上關於圖1討論的,因為啟動和測試常式可以不受對安全記憶體188的受阻存取的影響,故而與原始晶片相關聯的假陽性的負面牽連得到減輕。另外,原始晶片的安全記 憶體188可能不包括置備資料,並且因此對安全記憶體188的存取缺失對原始晶片可能是無關緊要的。
在一實施例中,方法200可在每次SoC上電或復位時重複。
進一步參照圖1,在一實施例中,OTP記憶體陣列塊120可包括複數個(M個)熔絲OTP記憶體陣列以及相關聯的取樣和捕捉電路系統,其中M是大於或等於2的整數。這M個熔絲OTP記憶體陣列之每一者熔絲OTP記憶體陣列可包括n個熔絲裝置,其中n是大於或等於1的整數並針對所有M個熔絲OTP記憶體陣列具有相同值。在特定應用中,OTP記憶體陣列塊120可包括利用反熔絲OTP裝置或任何其他類型的OTP裝置的M個OTP記憶體陣列。
在一實施例中,OTP記憶體陣列塊120可經由M條位元線匯流排被耦合至比較邏輯區塊140。每條位元線匯流排可攜帶來自這M個OTP記憶體陣列之一的n個信號。
在一實施例中,比較邏輯區塊140的數位邏輯電路系統145可將M個熔絲OTP記憶體陣列中的每一者的取樣值與未程式設計原始晶片陣列值以及與其餘(M-1)個熔絲OTP記憶體陣列中的每一者進行比較。如以上參照圖1所描述的,基於該比較,比較邏輯區塊140可決定是否已經發生故障。
在一實施例中,若M個熔絲OTP記憶體陣列的取樣值相同且不等於原始晶片值,則比較邏輯區塊140可決定未曾發生故障。在電子系統或端設備的製造期間,相同的安全性序列可被程式設計到所有M個熔絲OTP記憶體陣列中。在沒有故 障的情況下,這M個熔絲OTP記憶體陣列的取樣值可全都等於已程式設計的安全性序列。
在某些實現中,每個陣列的未程式設計原始晶片值可以是0。在此情形中,可由數位邏輯電路系統145將這M個熔絲OTP記憶體陣列中的每一者的取樣值與0進行比較。在其他示例性實現中,每個陣列的未程式設計原始晶片值可以是(2n -1)。在此類實現中,可將M個熔絲OTP記憶體陣列中的每一者的取樣值與(2n -1)進行比較。
在一實施例中,若所有M個熔絲OTP記憶體陣列的取樣值不相同或不相等,或者若這M個熔絲OTP記憶體陣列中的至少一者的取樣值等於零,則比較邏輯區塊140可決定已經發生故障。後一種情形可能對應於原始晶片。如以上所討論的,若已經發生故障,則這M個熔絲OTP記憶體陣列中的任一者或全部的取樣值可能受欺騙並且因此可能既不相同亦不等於已程式設計的安全性序列。
在一實現中,若這M個熔絲OTP記憶體陣列的取樣值不相同或者若這M個熔絲OTP記憶體陣列中的至少一者的取樣值等於(2n -1),則比較邏輯區塊140可決定已經發生故障。後一種情形可能對應於未程式設計的原始晶片。
在操作中,參照圖3並進一步參照圖1,硬體嵌入式安全性方法300包括所示的階段。然而,方法300僅是示例性的而非限定性的。例如,可經由添加、移除或重新安排各階段來改動方法300。
用於使用如上述及之系統100的實施例來標識SoC 晶片上的故障發生的方法實施例300可以類似於但不依賴於方法200,系統100包括複數個(M個)熔絲OTP記憶體陣列和相關聯的取樣和捕捉電路系統,其中M是大於或等於2的整數。
方法300包括對M個熔絲OTP記憶體陣列的值進行取樣(320),將每個熔絲OTP記憶體陣列的取樣值與每個其他熔絲OTP記憶體陣列值的取樣值進行比較(340),決定故障發生(360),啟動SoC(370),以及操作SoC(380)。
在階段320,當SoC上電或復位時,OTP記憶體陣列塊120中的M個熔絲OTP記憶體陣列的n個熔絲裝置狀態可被取樣和捕捉。
在一實施例中,在階段340,使用數位邏輯電路系統145,由M條位元線匯流排提供給比較邏輯區塊140的所取樣的熔絲OTP記憶體陣列值彼此進行比較並與未程式設計原始晶片OTP記憶體陣列值進行比較。
在一實施例中,在階段360,決定故障發生。若這M個熔絲OTP記憶體陣列中的至少一者的取樣值指示原始晶片(亦即,在各種實施例中,陣列值0或陣列值(2n -1)),則在階段364決定已經發生故障。對於原始晶片,該故障偵測是假陽性。若這M個熔絲OTP記憶體陣列的取樣值不相同且不等於原始晶片值,則在階段366決定已經發生故障。若這M個熔絲OTP記憶體陣列的取樣值是相同的並且皆不指示原始晶片,則在階段368決定未曾發生故障。階段364、366和368是互斥的,因此在方法300實施例的階段360只可能存在這些狀態之一。
在利用M個熔絲OTP記憶體陣列的方法300實施例中,階段370和380分別如以上關於方法200的階段270和280所述並如在圖2中示出的那樣進行。
其他實施例均落在本發明的範疇和精神之內。例如,由於軟體的本質,以上描述的功能可使用軟體、硬體、韌體、硬佈線或其任何組合來實現。實現功能的特徵亦可實體地位於各種位置,包括被分佈以使得功能的各部分在不同的實體位置處實現。
熟習此項技術者將理解,可使用各種各樣的不同技術和技藝中的任何技術和技藝來表示資訊和信號。例如,以上描述通篇引述的資料、指令、命令、資訊、信號、位元(位元)、符號、和碼片可由電壓、電流、電磁波、磁場或磁粒子、光場或光學粒子、或其任何組合來表示。
熟習此項技術者將進一步領會,結合本文揭示所描述的各種說明性邏輯區塊、模組、電路和演算法步驟可被實現為電子硬體、電腦軟體、或兩者的組合。為清楚地圖示硬體與軟體的這一可互換性,各種說明性元件、方塊、模組、電路和步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實現為硬體還是軟體取決於具體應用和施加於整體系統的設計約束。熟習此項技術者可針對每種特定應用以不同方式來實現所描述的功能性,但此類實現決策不應被解讀為致使脫離本案的範圍。
結合本文的揭示內容所描述的各種說明性邏輯區塊、模組以及電路可用被設計成用於執行本文中描述的功能的 通用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯裝置、個別閘或電晶體邏輯、個別的硬體元件、或其任何組合來實現或執行。通用處理器可以是微處理器,但替換地,處理器可以是任何一般的處理器、控制器、微控制器、或狀態機。處理器亦可以被實現為計算設備的組合,例如DSP與微處理器的組合、複數個微處理器、與DSP核心協調的一或多個微處理器、或任何其他此類配置。
結合本文的揭示內容所描述的方法或演算法的步驟可直接在硬體中、在由處理器執行的軟體模組中、或在這兩者的組合中實施。軟體模組可常駐在RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、可移除磁碟、CD-ROM、或此項技術中已知的任何其他形式的儲存媒體中。示例性儲存媒體耦合到處理器以使得處理器能從儲存媒體讀取資訊以及向儲存媒體寫入資訊。替換地,儲存媒體可以被整合到處理器。處理器和儲存媒體可常駐在ASIC中。ASIC可常駐在使用者終端中。替換地,處理器和儲存媒體可作為個別元件常駐在使用者終端中。
在一或多個示例性設計中,所描述的功能可以在硬體、軟體、韌體、或其任何組合中實現。若在軟體中實現,則各功能可以作為一或多數指令或代碼儲存在電腦可讀取媒體上或藉其進行傳送。電腦可讀取媒體包括電腦儲存媒體和通訊媒體兩者,包括促成電腦程式從一地向另一地轉移的任何媒體。儲存媒體包括促成將電腦程式從一地轉移到另一地 的任何媒體。儲存媒體可以是能被通用或專用電腦存取的任何可用媒體。作為示例而非限定,此類電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置、或能被用來攜帶或儲存指令或資料結構形式的期望程式碼手段且能被通用或專用電腦、或者通用或專用處理器存取的任何其他媒體。任何連接亦被正當地稱為電腦可讀取媒體。例如,若軟體是使用同軸電纜、光纖電纜、雙絞線、數位用戶線(DSL)、或諸如紅外、無線電、以及微波之類的無線技術從web網站、伺服器、或其他遠端源傳送而來,則同軸電纜、光纖電纜、雙絞線、DSL、或諸如紅外、無線電以及微波之類的無線技術就被包括在媒體的定義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中盤(disk)往往以磁的方式再現資料,而碟(disc)用鐳射以光學方式再現資料。上述的組合亦應被包括在電腦可讀取媒體的範圍內。
提供對本案的先前描述是為了使得任何熟習此項技術者皆能夠製作或使用本案。對本案的各種修改對於熟習此項技術者將是顯而易見的,並且本文中界定的普適原理可被應用於其他變形而不會脫離本案的範疇。由此,本案並非旨在被限定於本文中所描述的示例和設計,而是應被授予與本文中所揭示的原理和新穎性特徵相一致的最廣範疇。
此外,儘管以上描述稱為本發明,但描述可包括一個以上發明。
如本文(包括申請專利範圍中)所使用的,除非另外聲明,否則功能或操作「基於」項目或條件的陳述意指功能或操作基於所陳述的專案或條件並且亦可基於除所陳述的專案或條件以外的一或多個專案和/條件。
100‧‧‧硬體嵌入式安全性系統
120‧‧‧OTP記憶體陣列塊
121‧‧‧熔絲裝置
123‧‧‧取樣和捕捉電路系統
124‧‧‧熔絲OTP記憶體陣列A
125‧‧‧熔絲裝置
127‧‧‧取樣和捕捉電路系統
128‧‧‧熔絲OTP記憶體陣列B
134‧‧‧位元線匯流排A
138‧‧‧位元線匯流排B
140‧‧‧比較邏輯區塊
145‧‧‧數位邏輯電路系統
160‧‧‧安全性信號
170‧‧‧處理模組
184‧‧‧非安全記憶體
188‧‧‧安全記憶體

Claims (40)

  1. 一種保護一積體電路中的記憶體資產的方法(300),該方法包括以下步驟:對複數個一次性可程式設計(OTP)記憶體陣列(124、128)中的每一者的一值進行取樣(320);將該複數個OTP記憶體陣列之每一者OTP記憶體陣列的該取樣值與該複數個OTP記憶體陣列之每一者其他OTP記憶體陣列的該取樣值以及與一未程式設計OTP記憶體陣列值進行比較(340),其中該未程式設計OTP記憶體陣列值對應於相關聯於一製造時OTP記憶體陣列的一相同邏輯值的所有n個位元,n係該複數個OTP記憶體陣列的每一者中記憶體設備的一數量;若每一者OTP記憶體陣列的該取樣值等於該未程式設計OTP記憶體陣列值,則決定(360)已經發生一積體電路效能故障;及用由該故障發生決定所決定的對記憶體(184、188)的存取來操作(380)該積體電路。
  2. 如請求項1述及之方法,其中該決定已經發生該積體電路效能故障的步驟進一步包括以下步驟:若每個OTP記憶體陣列的該取樣值不等於每個其他OTP記憶體陣列的該取樣值,則決定已經發生該故障(366);及若每個OTP記憶體陣列的該取樣值等於每個其他OTP記憶體陣列的該取樣值並且每個OTP記憶體陣列的該取樣值不 等於該未程式設計OTP記憶體陣列值,則決定未曾發生該故障(368)。
  3. 如請求項1述及之方法,其中該未程式設計OTP記憶體陣列值為零。
  4. 如請求項1述及之方法,其中該未程式設計OTP記憶體陣列值是(2n -1)。
  5. 如請求項1述及之方法,其中包括決定一安全性信號(160)的一指示,其中若決定未曾發生該故障則該安全性信號(160)指示一安全操作模式(364、366),以及若決定已經發生該故障則該安全性信號(160)指示一非安全操作模式(368)。
  6. 如請求項1述及之方法,其中對記憶體的該存取包括:若決定已經發生該故障,對安全記憶體(188)的受限存取。
  7. 如請求項1述及之方法,其中啟動該積體電路不受該故障發生決定的影響。
  8. 如請求項1述及之方法,其中該積體電路包括一系統晶片(system-on-chip,SoC)。
  9. 一種保護一積體電路中的記憶體資產的方法(200),該方法包括以下步驟:對一第一一次性可程式設計(OTP)記憶體陣列(124)的一值和一第二OTP記憶體陣列(128)的一值進行取樣(220);將該第一OTP記憶體陣列(124)的該取樣值和該第二OTP記憶體陣列(128)的該取樣值彼此進行比較並與一未程式設計OTP記憶體陣列值進行比較(240),其中該未程式設計OTP記憶體陣列值對應於相關聯於一製造時OTP記憶體陣列的一相同邏輯值的所有n個位元,n係該第一OTP記憶體陣列及該第二OTP記憶體陣列的每一者中記憶體設備的一數量;若該第一OTP記憶體陣列及該第二OTP記憶體陣列的每一者的該取樣值等於該未程式設計OTP記憶體陣列值,則決定(260)已經發生一積體電路效能故障;及用由該故障發生決定所決定的對記憶體(184、188)的存取來操作(280)該積體電路。
  10. 如請求項9述及之方法,其中該決定已經發生該積體電路效能故障的步驟進一步包括以下步驟:若該第一OTP記憶體陣列的該取樣值不等於該第二OTP記憶體陣列的該取樣值,則決定已經發生該故障(266);及若該第一OTP記憶體陣列的該取樣值等於該第二OTP記憶體陣列的該取樣值且該第一OTP記憶體陣列的該取樣值不 等於該未程式設計OTP記憶體陣列值且該第二OTP記憶體陣列的該取樣值不等於該未程式設計OTP記憶體陣列值,則決定未曾發生該故障(268)。
  11. 如請求項9述及之方法,其中該未程式設計OTP記憶體陣列值為零。
  12. 如請求項9述及之方法,其中該未程式設計OTP記憶體陣列值是(2n -1)。
  13. 如請求項9述及之方法,其中包括決定一安全性信號(160)的一指示,其中若該故障發生被決定為未曾發生則該安全性信號(160)指示一安全操作模式(264、266),以及若決定已經發生該故障則該安全性信號(160)指示一非安全操作模式(268)。
  14. 如請求項9述及之方法,其中對記憶體的該存取包括:若決定已經發生該故障,對安全記憶體(188)的受限存取。
  15. 如請求項9述及之方法,其中啟動(270)該積體電路不受對該故障發生的該決定的影響。
  16. 如請求項9述及之方法,其中該積體電路包括一系統晶片 。
  17. 一種用於保護一積體電路中的記憶體資產的系統(100),該系統包括:複數個一次性可程式設計(OTP)記憶體陣列(124、128);配置成對該複數個OTP記憶體陣列(124、128)中的每一者的一值進行取樣的電路系統(123、127);一比較邏輯區塊,該比較邏輯區塊被配置成:將該複數個OTP記憶體陣列(124、128)之每一者OTP記憶體陣列的該取樣值與該複數個OTP記憶體陣列之每一者其他OTP記憶體陣列的該取樣值以及與一未程式設計OTP記憶體陣列值進行比較,其中該未程式設計OTP記憶體陣列值對應於相關聯於一製造時OTP記憶體陣列的一相同邏輯值的所有n個位元,n係該複數個OTP記憶體陣列的每一者中記憶體設備的一數量;及若每一者OTP記憶體陣列的該取樣值等於該未程式設計OTP記憶體陣列值,則決定已經發生一積體電路效能故障;及至少一個處理模組(170),該至少一個處理模組被配置成:用由該故障發生決定所決定的對記憶體(184、188)的存取來操作該積體電路。
  18. 如請求項17述及之系統(100),其中該比較邏輯區塊(140)進一步被配置成:若每個OTP記憶體陣列的該取樣值不等於每個其他OTP記憶體陣列的該取樣值,則決定已經發生該故障;及若每個OTP記憶體陣列的該取樣值等於每個其他OTP記憶體陣列的該取樣值並且每個OTP記憶體陣列的該取樣值不等於該未程式設計OTP記憶體陣列值,則決定未曾發生該故障。
  19. 如請求項17述及之系統(100),其中該未程式設計OTP記憶體陣列值為零。
  20. 如請求項17述及之系統(100),其中該未程式設計OTP記憶體陣列值是(2n -1)。
  21. 如請求項17述及之系統(100),其中該比較邏輯區塊(140)被配置成決定一安全性信號(160)的一指示,其中若決定未曾發生該故障則該安全性信號(160)指示一安全操作模式;及若該故障發生被決定為已經發生則該安全性信號(160)指示一非安全操作模式。
  22. 如請求項17述及之系統(100),其中對記憶體(184、188)的該存取包括:若決定已經發生該故障,限制對安全記憶 體的存取。
  23. 如請求項17述及之系統(100),其中該積體電路由不受該故障發生決定所影響的常式來啟動。
  24. 如請求項17述及之系統(100),其中該積體電路包括一系統晶片。
  25. 一種用於保護一積體電路中的記憶體資產的系統(100),該系統包括:用於對複數個一次性可程式設計(OTP)記憶體陣列(124、128)中的每一者的一值進行取樣的裝置(123、127);用於將該複數個OTP記憶體陣列(124、128)之每一者OTP記憶體陣列的該取樣值與該複數個OTP記憶體陣列之每一者其他OTP記憶體陣列的該取樣值以及與一未程式設計OTP記憶體陣列值進行比較的裝置(145),其中該未程式設計OTP記憶體陣列值對應於相關聯於一製造時OTP記憶體陣列的一相同邏輯值的所有n個位元,n係該複數個OTP記憶體陣列的每一者中記憶體設備的一數量;用於若每一者OTP記憶體陣列的該取樣值等於該未程式設計OTP記憶體陣列值則決定已經發生一積體電路效能故障的裝置(140);及用於用由該故障發生決定所決定的對記憶體(184、188)的存取來操作該積體電路的裝置(170)。
  26. 如請求項25述及之系統(100),其中用於決定已經發生該積體電路效能故障的裝置包括:用於若每個OTP記憶體陣列的該取樣值不等於每個其他OTP記憶體陣列的該取樣值則決定已經發生該積體電路效能故障的裝置;及用於若每個OTP記憶體陣列的該取樣值等於每個其他OTP記憶體陣列的該取樣值並且每個OTP記憶體陣列的該取樣值不等於該未程式設計OTP記憶體陣列值則決定並未發生該積體電路效能故障的裝置。
  27. 如請求項25述及之系統(100),其中該未程式設計OTP記憶體陣列值為零。
  28. 如請求項25述及之系統(100),其中該未程式設計OTP記憶體陣列值是(2n -1)。
  29. 如請求項25述及之系統(100),其中包括用於決定一安全性信號(160)的一指示的裝置,其中若決定未曾發生該故障則該安全性信號(160)指示一安全操作模式;及若決定已經發生該故障則該安全性信號(160)指示一非安全操作模式。
  30. 如請求項25述及之系統(100),其中對記憶體(184、188)的該存取包括:若決定已經發生該故障,對安全記憶體的受限存取。
  31. 如請求項25述及之系統(100),其中啟動該積體電路不受該故障發生決定的影響。
  32. 如請求項25述及之系統(100),其中該積體電路包括一系統晶片。
  33. 一種常駐在一處理器可讀的非揮發性儲存媒體上並且包括一處理器可讀取指令的電腦程式產品,該處理器可讀取指令能由一或多個處理器執行以:使電路系統(123、127)對複數個一次性可程式設計(OTP)記憶體陣列(124、128)中的每一者的一值進行取樣;使一比較邏輯區塊(140)進行:將該複數個OTP記憶體陣列(124、128)之每一者OTP記憶體陣列的該取樣值與該複數個OTP記憶體陣列之每一者其他OTP記憶體陣列的該取樣值以及與一未程式設計OTP記憶體陣列值進行比較,其中該未程式設計OTP記憶體陣列值對應於相關聯於一製造時OTP記憶體陣列的一相同邏輯值的所有n個位元,n係該複數個OTP記憶體陣列的每一者中記憶體設備的一數量,以及若每一者OTP記憶體陣列的該取樣值等於該未程式設 計OTP記憶體陣列值,則決定已經發生一積體電路效能故障;及用由該故障發生決定所決定的對記憶體(184、188)的存取來操作一積體電路。
  34. 如請求項33述及之電腦程式產品,其中包括處理器可讀取指令以使該比較邏輯區塊(140):若至少一個OTP記憶體陣列的該取樣值等於該未程式設計OTP記憶體陣列值,則決定已經發生該故障;若每個OTP記憶體陣列的取樣值不等於每個其他OTP記憶體陣列的該取樣值,則決定已經發生該故障;及若每個OTP記憶體陣列的該取樣值等於每個其他OTP記憶體陣列的該取樣值並且每個OTP記憶體陣列的該取樣值不等於該未程式設計OTP記憶體陣列值,則決定未曾發生該故障。
  35. 如請求項33述及之電腦程式產品,其中該未程式設計OTP記憶體陣列值為零。
  36. 如請求項33述及之電腦程式產品,其中該未程式設計OTP記憶體陣列值是(2n -1)。
  37. 如請求項33述及之電腦程式產品,其中包括處理器可讀取指令以使該比較邏輯區塊(140)決定一安全性信號(160 )的一指示,其中:若決定未曾發生該故障則該安全性信號(160)指示一安全操作模式;及若該故障發生被決定為已經發生則該安全性信號(160)指示一非安全操作模式。
  38. 如請求項33述及之電腦程式產品,其中對記憶體(184、188)的該存取包括:若決定已經發生該故障,限制對安全記憶體(188)的存取。
  39. 如請求項33述及之電腦程式產品,其中該積體電路由不受該故障發生決定的影響的常式來啟動。
  40. 如請求項33述及之電腦程式產品,其中該積體電路包括一系統晶片。
TW103101294A 2013-01-14 2014-01-14 用於一次可程式化的積體電路安全性的方法、系統及電腦程式產品 TWI509405B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/741,248 US9262259B2 (en) 2013-01-14 2013-01-14 One-time programmable integrated circuit security

Publications (2)

Publication Number Publication Date
TW201439748A TW201439748A (zh) 2014-10-16
TWI509405B true TWI509405B (zh) 2015-11-21

Family

ID=50073447

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103101294A TWI509405B (zh) 2013-01-14 2014-01-14 用於一次可程式化的積體電路安全性的方法、系統及電腦程式產品

Country Status (7)

Country Link
US (1) US9262259B2 (zh)
EP (1) EP2943908B1 (zh)
JP (1) JP6050523B2 (zh)
KR (1) KR101727678B1 (zh)
CN (1) CN104903911B (zh)
TW (1) TWI509405B (zh)
WO (1) WO2014110550A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262259B2 (en) * 2013-01-14 2016-02-16 Qualcomm Incorporated One-time programmable integrated circuit security
KR102132247B1 (ko) * 2014-04-03 2020-07-13 에스케이하이닉스 주식회사 원-타임 프로그램 메모리
US10095889B2 (en) * 2016-03-04 2018-10-09 Altera Corporation Techniques for protecting security features of integrated circuits
US10296738B2 (en) 2017-05-03 2019-05-21 Nuvoton Technology Corporation Secure integrated-circuit state management
US20190050570A1 (en) * 2017-08-14 2019-02-14 Qualcomm Incorporated Computer resource access control based on the state of a non-accessing component
US10659054B2 (en) 2018-02-23 2020-05-19 Nxp B.V. Trusted monotonic counter using internal and external non-volatile memory
WO2020086087A1 (en) * 2018-10-25 2020-04-30 Hewlett-Packard Development Company, L.P. Integrated circuit(s) with anti-glitch canary circuit(s)
CN109977049B (zh) * 2019-03-01 2020-06-23 京微齐力(深圳)科技有限公司 一种控制器及方法、系统
WO2021026914A1 (zh) * 2019-08-15 2021-02-18 深圳市汇顶科技股份有限公司 毛刺信号检测电路、安全芯片和电子设备
US11977662B2 (en) * 2020-04-30 2024-05-07 Dell Products, L.P. One-time programmable features for storage devices
CN112181896B (zh) * 2020-09-25 2024-03-29 加特兰微电子科技(上海)有限公司 运行控制设备、集成电路、无线电器件以及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944083B2 (en) * 2003-11-17 2005-09-13 Sony Corporation Method for detecting and preventing tampering with one-time programmable digital devices
US7398554B1 (en) * 2002-04-02 2008-07-08 Winbond Electronics Corporation Secure lock mechanism based on a lock word
US20110066878A1 (en) * 2009-09-17 2011-03-17 Kabushiki Kaisha Toshiba Non-volatile semiconductor storage device
TW201214104A (en) * 2010-09-24 2012-04-01 Advanced Risc Mach Ltd Debugging of a data processing apparatus
TW201229761A (en) * 2010-09-30 2012-07-16 Micron Technology Inc Security protection for memory content of processor main memory

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0194090A3 (en) * 1985-03-04 1987-12-23 Lattice Semiconductor Corporation Programmable data security circuit for programmable logic device
KR100274099B1 (ko) * 1991-08-02 2001-01-15 비센트 비.인그라시아 점진적으로 프로그램가능한 비휘발성 메모리 및 이를 구비한 집적 회로와 비휘발성 메모리 프로그래밍 방법
DE10162306A1 (de) * 2001-12-19 2003-07-03 Philips Intellectual Property Verfahren und Anordnung zur Verifikation von NV-Fuses sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
KR100440451B1 (ko) 2002-05-31 2004-07-14 삼성전자주식회사 전압 글리치 검출 회로, 그것을 구비하는 집적회로장치,그리고 전압 글리치 어택으로부터 집적회로장치를보호하는 장치 및 방법
US6707696B1 (en) 2003-05-15 2004-03-16 Broadcom Corporation Hacker-proof one time programmable memory
US8112618B2 (en) 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US7102951B2 (en) 2004-11-01 2006-09-05 Intel Corporation OTP antifuse cell and cell array
US7442583B2 (en) * 2004-12-17 2008-10-28 International Business Machines Corporation Using electrically programmable fuses to hide architecture, prevent reverse engineering, and make a device inoperable
US7818584B1 (en) 2005-01-25 2010-10-19 Altera Corporation One-time programmable memories for key storage
US20080086781A1 (en) 2006-10-06 2008-04-10 Stephane Rodgers Method and system for glitch protection in a secure system
US7917788B2 (en) 2006-11-01 2011-03-29 Freescale Semiconductor, Inc. SOC with low power and performance modes
US7593248B2 (en) 2006-11-16 2009-09-22 Aptina Imaging Corporation Method, apparatus and system providing a one-time programmable memory device
US8046571B1 (en) 2006-12-18 2011-10-25 Marvell International Ltd. System-on-a-chip (SoC) security using one-time programmable memories
GB2446658B (en) 2007-02-19 2011-06-08 Advanced Risc Mach Ltd Hibernating a processing apparatus for processing secure data
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US8594333B2 (en) 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US8230495B2 (en) * 2009-03-27 2012-07-24 International Business Machines Corporation Method for security in electronically fused encryption keys
US7969179B2 (en) 2009-03-31 2011-06-28 Freescale Semiconductor, Inc. Method and apparatus for increasing security in a system using an integrated circuit
EP2452297A4 (en) 2009-07-10 2014-05-28 Certicom Corp SYSTEM AND METHOD FOR MANAGING ELECTRONIC GOODS
US8261011B2 (en) * 2009-10-29 2012-09-04 Freescale Semiconductor, Inc. One-time programmable memory device and methods thereof
JP5118718B2 (ja) * 2010-03-25 2013-01-16 シャープ株式会社 半導体集積回路および電子機器
US9177152B2 (en) 2010-03-26 2015-11-03 Maxlinear, Inc. Firmware authentication and deciphering for secure TV receiver
JP2011210316A (ja) * 2010-03-30 2011-10-20 Renesas Electronics Corp 半導体装置及びヒューズ回路の状態判定方法
US8547736B2 (en) 2010-08-03 2013-10-01 Qualcomm Incorporated Generating a non-reversible state at a bitcell having a first magnetic tunnel junction and a second magnetic tunnel junction
CN103187095B (zh) * 2011-12-30 2017-03-08 联芯科技有限公司 efuse模块的控制方法及带efuse模块的芯片
US8913450B2 (en) * 2012-11-19 2014-12-16 Qualcomm Incorporated Memory cell array with reserved sector for storing configuration information
CN103035077A (zh) * 2012-11-29 2013-04-10 深圳市新国都技术股份有限公司 一种pos机数据信息保护电路
US9262259B2 (en) * 2013-01-14 2016-02-16 Qualcomm Incorporated One-time programmable integrated circuit security

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398554B1 (en) * 2002-04-02 2008-07-08 Winbond Electronics Corporation Secure lock mechanism based on a lock word
US6944083B2 (en) * 2003-11-17 2005-09-13 Sony Corporation Method for detecting and preventing tampering with one-time programmable digital devices
US20110066878A1 (en) * 2009-09-17 2011-03-17 Kabushiki Kaisha Toshiba Non-volatile semiconductor storage device
TW201214104A (en) * 2010-09-24 2012-04-01 Advanced Risc Mach Ltd Debugging of a data processing apparatus
TW201229761A (en) * 2010-09-30 2012-07-16 Micron Technology Inc Security protection for memory content of processor main memory

Also Published As

Publication number Publication date
US9262259B2 (en) 2016-02-16
EP2943908A1 (en) 2015-11-18
US20140201607A1 (en) 2014-07-17
JP2016507829A (ja) 2016-03-10
TW201439748A (zh) 2014-10-16
CN104903911A (zh) 2015-09-09
EP2943908B1 (en) 2017-07-05
CN104903911B (zh) 2017-05-10
JP6050523B2 (ja) 2016-12-21
WO2014110550A1 (en) 2014-07-17
KR20150106431A (ko) 2015-09-21
KR101727678B1 (ko) 2017-04-17

Similar Documents

Publication Publication Date Title
TWI509405B (zh) 用於一次可程式化的積體電路安全性的方法、系統及電腦程式產品
US10872154B2 (en) Secure device state apparatus and method and lifecycle management
TWI483139B (zh) 使用物理性不可複製功能的安全金鑰儲存器
TWI440352B (zh) 產生識別金鑰之裝置及方法
TWI613596B (zh) 產生數位值的裝置
TWI640863B (zh) 測試隨機性的儀器以及方法
TWI663604B (zh) 操作具非揮發性記憶胞電路的方法及使用所述方法的電路
JP2016507829A5 (zh)
US10331575B2 (en) Secured chip enable with chip disable
JP6518798B2 (ja) 安全な集積回路状態を管理する装置およびその方法
EP3407535B1 (en) Apparatus for generating identification key and management method thereof
KR101457305B1 (ko) 식별키 생성 장치 및 방법
Basak et al. Active defense against counterfeiting attacks through robust antifuse-based on-chip locks
TW202203216A (zh) 積體電路以及保護積體電路的上電時序之方法
CN114521261A (zh) 用于管理集成电路器件的安全性的未定义生命周期状态标识符
CN106935266B (zh) 从存储器中读取配置信息的控制方法、装置和系统
US20230139634A1 (en) Electronic fuse (efuse) designs for enhanced chip security
GB2487530A (en) Detection of illegal memory readout by using permanently programmed cells
CN115398862A (zh) 攻击检测方法和装置
CN112309483A (zh) 存储器验证
JP2007293773A (ja) 読み出し制御回路