TW202226018A - 在半導體裝置中之功能之客戶特定啟動 - Google Patents
在半導體裝置中之功能之客戶特定啟動 Download PDFInfo
- Publication number
- TW202226018A TW202226018A TW110132180A TW110132180A TW202226018A TW 202226018 A TW202226018 A TW 202226018A TW 110132180 A TW110132180 A TW 110132180A TW 110132180 A TW110132180 A TW 110132180A TW 202226018 A TW202226018 A TW 202226018A
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- generating
- random value
- code
- command
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
-
- 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/76—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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/78—Protecting 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
- G06F21/79—Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
所揭示實施例係關於安全地更新一半導體裝置。在一項實施例中,一種方法包括:接收一命令;藉由該半導體裝置回應於該命令而產生一回應碼;將該回應碼傳回至一處理裝置;接收替換該裝置之一儲存根金鑰之一命令;基於該回應碼產生一替換金鑰;及用該替換金鑰替換一現有金鑰。
Description
本文中所揭示之至少一些實施例大體上係關於半導體裝置,且特定而言係關於為半導體裝置提供安全的現場升級。
當前,許多半導體裝置(例如,半導體記憶體裝置)提供容許對裝置之製造後更新之可現場升級功能。例如,一記憶體裝置可提供在製造及安裝記憶體裝置之後更新記憶體裝置之韌體的能力。保全此等現場升級對於此等裝置之可靠且受信賴之操作而言至關重要。一些裝置利用對稱加密來保全現場升級。在此等裝置中,一製造商及半導體裝置共用一秘密金鑰且依賴於此等金鑰來加密及解密現場升級。在一對稱金鑰系統中,金鑰在雙方(例如,製造商與終端使用者)之間係唯一的。然而,此等系統中之金鑰分配遭受由所揭示實施例補救之諸多缺陷。
首先,許多系統排他性地依賴於基於雲端之金鑰分配技術。此等技術要求一終端使用者(例如,裝置所有者)連接至一公共網路以下載金鑰。然而,一公共網路連接之要求引入潛在的安全風險。其次,大多數基於雲端之系統依賴於唯一識別符(UID)值來使一終端使用者能夠自一基於雲端之平台請求一對稱金鑰。一般而言,此等UID值必須個別地自半導體裝置讀取且個別地上傳。因此,批量存取對稱金鑰係不可行的,因為UID值之電識別通常僅在製造期間當無法存取一公共網路時可用。此外,考慮到操作中所涉及之時間延時及由該延時引入之成本,在一高價值製造(HVM)環境中擷取對稱金鑰通常為不可行的。
本申請案係關於與本申請案同時申請之具有代理人檔案號120426-058400/US及120426-058500/US之共同擁有之申請案,該等案之揭示內容之全文以引用的方式併入。
所揭示實施例解決此項技術中之前述問題及其他問題。所揭示實施例容許終端使用者在一製造環境中使用對稱金鑰密碼編譯術來啟動半導體裝置中之能力,而無需至一公共網路之一連接及最終一基於雲端之金鑰管理系統(KMS)。此外,所揭示實施例支援一次請求多個對稱金鑰。此外,所揭示實施例保留防止端對端對稱曝露之能力,但在連接至一KMS時一次對多個裝置進行此。參考所揭示實施例更詳細地描述此等及其他特徵。
圖1係繪示根據本發明之一些實施例之一鑑認系統之一方塊圖。
所繪示系統包含一半導體裝置製造商(110)、KMS (102)、受信賴夥伴(TP) (104)、客戶系統(106)及複數個半導體裝置(108)。在所繪示實施例中,製造商(110)係裝置(108)之製造商。在所繪示實施例中,製造商(110)可經由一安全通道與KMS (102)進行通信。在一些實施例中,製造商(110)針對各裝置(108)將一對應唯一識別符(UID)及一裝置秘密金鑰(亦稱為製造商之儲存根金鑰(MFGSRK))上傳至KMS (102)。在所繪示實施例中,MFGSRK係在製造商(110)之一安全製造環境中產生。在一些實施例中,製造商(110)亦上傳購買或以其他方式與一裝置(108)相關聯之各客戶的一客戶識別符(CID)。在一些實施例中,製造商亦上傳與一CID相關聯之一客戶鑑認金鑰(CAK)。在一項實施例中,CAK限於一指定日期範圍,因此在該範圍之最後一天過去之後變得無效。UID、MFGSRK、CID及CAK值統稱為「製造資料」。
在所繪示實施例中,KMS (102)儲存自製造商(110)接收之前述資料。在一項實施例中,KMS (102)包括一伺服器或多個伺服器以儲存製造資料。在一些實施例中,KMS (102)利用一硬體安全模組(HSM)來保全製造資料。在所繪示實施例中,KMS (102)能夠產生經接收UID之各者之啟動碼。在一些實施例中,一啟動碼包括一整數或類似可處理值。在一些實施例中,KMS (102)回應於來自TP (104)之一請求而產生一啟動碼。
在所繪示實施例中,TP (104)包括安全地且通信地耦合至KMS (102)之一運算系統。在所繪示實施例中,TP (104)向KMS (102)發出對批量啟動碼(亦稱為啟動資料庫)之網路請求。在一項實施例中,對一啟動資料庫之請求包含CID、一日期範圍、一裝置類型及為一客戶所獨有且為KMS (102)已知之一臨時亂數(稱為「KMS臨時亂數」)。在一些實施例中,一客戶經由一網路通信會期與KMS (102)協商KMS臨時亂數,因此建立KMS臨時亂數之一眾所周知的值。在所繪示實施例中,TP (104)接收及儲存啟動資料庫之內容。在一些實施例中,TP (104)亦包含用於保全啟動資料庫之一HSM。在所繪示實施例中,TP (104)亦包含用於產生一給定客戶之一訊息鑑認碼(MAC)之處理能力。此外,在所繪示實施例中,TP (104)包含用於基於啟動資料庫中之啟動碼及自半導體裝置(108)接收之回應碼產生共用裝置秘密之一安全資料庫的處理能力。
在所繪示實施例中,客戶系統(106)與TP (104)進行通信。客戶系統(106)可包括用於處置半導體裝置(108)之一客戶製造線或其他系統。客戶系統(106)之運算裝置之特定配置在本文中不受限制。在一些實施例中,TP (104)包括安裝於一客戶系統(106)內之一或多個安全運算裝置。在其他實施例中,TP (104)係與客戶系統(106)分開之一運算系統。
在所繪示實施例中,客戶系統(106)與複數個半導體裝置(108a)、(108b)、(108c) (統稱為108)進行互動。裝置(108)包括半導體裝置,諸如但不限於記憶體裝置。例如,裝置可包括NOR或NAND快閃記憶體晶片、系統單晶片(SoC)裝置或其他類型之離散半導體封裝。
裝置(108)包含用於儲存諸如一CID及CAK之各種欄位及參數之複數個非揮發性儲存位置。裝置(108)額外地包含能夠執行諸如支援一MAC之運算之密碼編譯運算的硬體或韌體。此等運算之實例包含HMAC-SHA256、AES及CMAC運算。裝置(108)之細節在下圖2中更全面描述且在此不再重複。
圖2係繪示根據本發明之一些實施例之一半導體裝置之一方塊圖。
如所繪示,半導體裝置(108)包含一介面(230)、控制器(228)、密碼編譯引擎(232)及非揮發性儲存區(202)。在本文中描述此等組件之細節。裝置(108)可包含多於或少於圖2中所繪示之組件,且對包含於裝置(108)內之額外組件沒有限制。例如,裝置(108)可包括諸如一NAND快閃記憶體裝置之一記憶體裝置。在此實例中,裝置(108)可進一步包含NAND快閃記憶體晶片之一陣列及用於存取此等晶片之一控制器。
在所繪示實施例中,裝置(108)經由一介面(230)與外部裝置進行通信。在一項實施例中,介面(230)可包括用於傳達電子信號之任何介面。在一項實施例中,介面(230)可包括一串列周邊介面(SPI)或通用異步接收器-傳輸器(UART)介面。在替代實施例中,介面(230)可包括一快速周邊組件互連(PCIe)或一快速非揮發性記憶體(NVMe)介面。一般而言,可使用可用來傳輸及接收資料之任何合適匯流排。
介面(230)將命令及資料傳輸至控制器(228)。在一些實施例中,控制器(228)可執行各種命令以操作裝置(108)。所繪示實施例對可由控制器(228)處理之命令之類型沒有限制。
在所繪示實施例中,控制器(228)通信地耦合至一密碼編譯引擎(232)。在一些實施例中,密碼編譯引擎(232)整合為控制器(228)之部分。在其他實施例中,密碼編譯引擎(232)可包括一單獨處理元件。在一些實施例中,密碼編譯引擎(232)可包括一密碼編譯協同處理器。一般而言,密碼編譯引擎(232)對儲存於非揮發性儲存器(202)中或經由控制器(228)接收之資料執行各種密碼編譯運算。如所繪示,在一些實施例中,密碼編譯引擎(232)執行HMAC-SHA256 (224)及AES-CMAC (226)運算,但可利用其他演算法。在一些實施例中,運算(224、226)可被實施為韌體且藉由密碼編譯引擎(232)執行。在其他實施例中,運算(224、226)可在硬體(即,專用電路系統)中實施。
在所繪示實施例中,密碼編譯引擎(232)讀取及寫入儲存於非揮發性儲存器(202)中之各種欄位(204至220)。所繪示欄位(204至220)在本文中簡要描述,且參考圖3及圖4之描述,圖3及圖4在其中提供進一步細節。
非揮發性儲存器(202)包含一客戶識別符(CID)欄位(204)。在所繪示實施例中,一CID包括唯一地識別一客戶之一唯一識別符。如本文中所使用,一客戶指代利用半導體裝置之任何實體。例如,一客戶可包括包含半導體裝置之電子裝置之一製造商。在所繪示實施例中,客戶以及圖1中所描繪之所有實體知道CID。在一些實施例中,CID欄位(204)之內容可藉由密碼編譯引擎(232)或控制器(228)讀取。在一些實施例中,CID可藉由製造商(110)寫入。
非揮發性儲存器(202)包含一唯一ID (UID)欄位(206)。在所繪示實施例中,一UID指代唯一地識別半導體裝置(108)之一唯一識別符。在一些實施例中,UID可包括一序號、條碼或其他電可讀識別符。在製造期間,一製造商(110)可產生UID且將UID寫入至欄位(206)。直至客戶數位地讀取UID為止(例如,在一較大裝置之製造期間),可能不知道UID。在一些實施例中,UID係在製造期間讀取且因此「離線」執行(即,未連接至一網路裝置)。在一些實施例中,UID包含描述半導體裝置(108)之製造日期之一日期欄位。若包含一日期欄位,則UID亦可包含額外欄位。在一些實施例中,UID欄位(206)之內容可藉由密碼編譯引擎(232)或控制器(228)讀取。
非揮發性儲存器(202)包含一啟動碼欄位(218)。在所繪示實施例中,啟動碼包括用來啟動一新儲存根金鑰之一資料欄位,諸如SHRSRK (214)。在一項實施例中,啟動碼欄位(218)中之資料係藉由密碼編譯引擎(232)產生且被寫入至啟動碼欄位(218)。在一項實施例中,密碼編譯引擎(232)藉由使用一臨時亂數值(222)作為一訊息且使用一製造儲存根金鑰(210)作為金鑰執行一HMAC運算(224)而產生啟動,如本文中更詳細描述。在其他實施例中,將製造儲存根金鑰(210)用作金鑰且將臨時亂數值(222)用作訊息。本文中所描述之利用一臨時亂數值(222)作為一金鑰且利用根金鑰(210)作為一訊息之各項實施例可交換,且本文中不再重複對此等運算之類似描述。在一項實施例中,啟動碼未曝露於裝置(108)外部且因此,在一些實施例中,不可由控制器(228)讀取。
非揮發性儲存器(202)包含一回應碼欄位(220)。在一項實施例中,藉由密碼編譯引擎(232)產生回應碼欄位(220)。在一項實施例中,在填入啟動碼欄位(218)之後產生回應碼,如將論述。在一項實施例中,密碼編譯引擎(232)藉由使用單調計數器欄位(212)之值作為一訊息且使用私密啟動金鑰欄位(218)作為金鑰執行一HMAC運算(224)而產生回應碼。在其他實施例中,CID (204)或臨時亂數(222)可用作金鑰。
非揮發性儲存器(202)包含一單調計數器(MTC) (212)。在一項實施例中,控制器(228)更新MTC (212),而在其他實施例中,密碼編譯引擎(232)更新MTC (212)。在所繪示實施例中,MTC (212)包括一遞增值。在一些實施例中,MTC (212)係藉由密碼編譯引擎(232)回應於使MTC (212)遞增之一外部命令手動地遞增。在其他實施例中,可每當接收到一或多種類型之命令時更新MTC (212)。一般而言,MTC (212)可以各種方式更新以便履行提供一隨機值之目標。如上文所描述,MTC (212)之值可用來產生回應碼(220)。此用作容許回應碼(220)每當請求啟動時改變(下文描述)且確保回應碼為裝置(108)所獨有的一裝置產生之臨時亂數。
非揮發性儲存器(202)包含一客戶鑑認金鑰(CAK)欄位(208)。在一項實施例中,一CAK包括一對稱金鑰。在一項實施例中,一客戶系統(106)及製造商(110)兩者維持給定客戶之CAK。因此,製造商(110)可儲存各客戶之CAK,且各客戶儲存其自身CAK。在一項實施例中,週期性地(例如,以規則間隔)更新CAK。在所繪示實施例中,CAK (208)可在製造裝置時藉由製造商(110)寫入。如所論述,製造商(110)可將CID-CAK對週期性地傳輸至KMS (102)。KMS (102)可額外地將CAK連同用於多個裝置之啟動碼一起傳輸至TP (104)。
非揮發性儲存器(202)包含一裝置儲存根金鑰(MFGSRK)欄位(210)。在一項實施例中,MFGSRK (210)在製造期間藉由製造商(110)寫入。在一項實施例中,MFGSRK (210)與UID (206)唯一地配對。對由製造商(110)用來產生MFGSRK (210)之特定機制沒有限制;然而,一般利用經由一密碼編譯演算法產生之一固定寬度值。
非揮發性儲存器(202)包含一最終儲存根金鑰(SHRSRK)欄位(214)。在一項實施例中,SHRSRK (214)。非揮發性儲存器(202)額外地包含一候選儲存根金鑰(CSRK)欄位(216)。在一項實施例中,密碼編譯引擎(232)使用回應碼(220)及啟動碼(218)來產生CSRK。在一項實施例中,密碼編譯引擎(232)使用回應碼(220)作為訊息且使用啟動碼(218)作為金鑰來執行一HMAC運算(224)。將運算之結果儲存於CSRK欄位(216)中。接著,密碼編譯引擎(232)可接收提交CSRK欄位(216)之值之一第二命令。在一項實施例中,在驗證命令(例如,驗證一數位簽章)之後,密碼編譯引擎(232)將CSRK欄位(216)之內容複製至SHRSRK欄位(214)。在一些實施例中,在將候選金鑰寫入至SHRSRK欄位(214)之後,密碼編譯引擎(232)亦可擦除CSRK欄位(216)之內容。
非揮發性儲存器(202)包含一客戶臨時亂數值(222)。在一項實施例中,客戶臨時亂數值(222)係基於一外部臨時亂數值產生。在一項實施例中,此外部臨時亂數值係藉由一KMS產生且被傳輸至裝置(108)。在一項實施例中,藉由對CID (204)及經接收之外部臨時亂數執行一序連運算且對結果執行一SHA256運算而產生客戶臨時亂數值(222)。
參考圖3及圖4更詳細地描述密碼編譯引擎(232)之前述運算及各種欄位(204至222)之使用。
圖3係繪示根據一些實施例之用於佈建一或多個半導體裝置之一方法之一流程圖。在所繪示實施例中,一半導體裝置(108)自一主機處理器接收公共資料(例如,CID、KMS臨時亂數、MAC)且傳回一公共回應碼。回應碼將被提交給TP (104)以安全地產生一秘密金鑰。類似地,半導體裝置(108)將使用回應碼以在半導體裝置(108)上安全地產生一秘密候選金鑰。因此,由TP (104)及半導體裝置(108)儲存之秘密金鑰將為相同的。
在步驟302中,方法接收一佈建命令。在所繪示實施例中,方法藉由諸如一半導體裝置(108)之一半導體裝置來執行。在一項實施例中,經由一有線匯流排經由諸如一SPI、UART、I2C (內部積體電路)、SMBuS (系統管理匯流排)或類似介面之一介面接收佈建命令。在其他實施例中,可經由一無線收發器接收命令。
在一項實施例中,佈建命令包含一CID值、一KMS臨時亂數值及基於一CAK產生之一訊息鑑認碼(MAC)。先前已描述CID、KMS臨時亂數及CAK值,且在此不再重複描述。在一項實施例中,MAC包括由TP (104)產生之一簽章。在一項實施例中,客戶系統(106)向TP (104)發出產生一給定訊息之一MAC的一請求。接著,客戶系統(106)將此MAC插入至佈建命令中。
在步驟304中,方法讀取一CID及CAK。在一項實施例中,CID包括由半導體裝置儲存之一公共客戶識別符。在相同實施例中,CAK包括與CID唯一地相關聯且未公開曝露之一秘密金鑰。在一些實施例中,半導體裝置包含多個客戶之多個CAK,但僅一單一CID。在一項實施例中,CAK限於一指定日期範圍,因此在該範圍之最後一天過去之後變得無效。CAK及CID之細節提供於圖2之描述中且在此不再重複。在所繪示實施例中,方法使用自佈建命令本身提取之CID自一非揮發性儲存位置讀取CAK值。在一替代實施例中,CID值可在製造期間寫入至半導體裝置且因此自NV儲存器讀取。
在步驟306中,方法產生佈建命令之一候選MAC。在一項實施例中,半導體裝置之一密碼編譯引擎藉由使用CAK作為一金鑰且使用CID及KMS臨時亂數作為訊息運算一候選MAC而產生該MAC。在一些實施例中,可將額外資料新增至訊息。在所繪示實施例中,裝置存取儲存於NV儲存器中之CAK以運算MAC,且比較在裝置上運算之MAC與佈建命令之MAC以驗證命令。在一項實施例中,一AES-CMAC演算法用來產生及驗證MAC,但可使用其他MAC演算法。
在步驟308中,方法比較候選MAC與佈建命令之MAC。若比較失敗,則方法結束,且由於無法驗證該命令而不處理該命令。
在步驟310中,方法確認經接收MAC係有效的且繼續進行以處理命令。具體而言,在步驟310中,方法基於KMS臨時亂數值及CID值產生稱為「客戶臨時亂數」之一第二臨時亂數。在一項實施例中,方法序連KMS臨時亂數值及CID值且基於經運算值運算一SHA256值。即,
。當然,亦可使用用於產生一臨時亂數之其他技術。應注意,一CID及KMS臨時亂數值之使用將客戶臨時亂數與一特定客戶聯繫起來且有效地消除客戶間之臨時亂數衝突。
接下來,在步驟312中,方法基於客戶臨時亂數值及一製造商儲存根金鑰(MFGSRK)產生一啟動碼。如上文所論述,MFGSRK之值可為私密的且無法被外部裝置(包含一客戶系統(106))存取。在一項實施例中,方法使用MAC演算法產生啟動碼。在一項實施例中,MAC演算法包括一HMAC演算法。在一項實施例中,HMAC演算法包括一HMAC-SHA256演算法。如本文中將使用,HMAC-SHA256藉由
表示,其中
K表示一秘密金鑰,
M包括待編碼訊息,且
C表示由HMAC-SHA256演算法產生之密文。可使用其他演算法。在一些實施例中,啟動碼之固定長度等於客戶臨時亂數之固定長度。
在一些實施例中,將啟動碼寫入至半導體裝置(108)中之一非揮發性儲存位置。在一些實施例中,此位置暫時儲存啟動碼且在替換儲存根金鑰時被擦除(圖4中描述)。特別地,在所繪示實施例中,啟動碼未傳回至客戶系統,而是為半導體裝置(108)所私有的。
在步驟314中,方法使用啟動碼及一單調計數器值來產生一回應碼。在一項實施例中,方法使用一MAC演算法來產生一回應碼。在一項實施例中,MAC演算法包括一HMAC演算法。在一項實施例中,HMAC演算法包括一HMAC-SHA256演算法。可使用其他演算法。在一些實施例中,回應碼之固定長度等於啟動碼之固定長度。
在所繪示實施例中,使用單調計數器之值作為MAC訊息且使用啟動碼之值作為金鑰來產生回應碼。因此,
,其中第一參數(Activation Code)包括用作金鑰之一遞增單調計數器,且MTC之值包括訊息。所得碼包括一不可逆的256位元回應碼。
最後,在步驟316中,方法將回應碼傳回至發出佈建命令之裝置。在另一實施例中,方法可將回應碼直接傳回至TP (104),而在所繪示實施例中,裝置將回應碼傳回至客戶系統(106)。在一項實施例中,一客戶系統(106)讀取回應碼且將回應碼上傳至TP (104)。在一項實施例中,客戶系統(106)亦可連同在圖3中所繪示之方法中產生之回應碼一起傳輸裝置(108)之UID。如圖4中將描述,接著客戶系統(106)可請求一MAC以替換裝置(108)上之一金鑰且發出修改底層裝置之儲存根金鑰之命令。
在一項實施例中,圖3中所繪示之方法包含在步驟316之後執行之一額外步驟318。在此實施例中,步驟318包含基於回應碼及啟動碼產生一候選金鑰。在一項實施例中,方法使用一MAC演算法來產生一候選金鑰。在一項實施例中,MAC演算法包括一HMAC演算法。在一項實施例中,HMAC演算法包括一HMAC-SHA256演算法。可使用其他演算法。在一些實施例中,候選金鑰之固定長度等於MFGSRK值之固定長度。在一項實施例中,方法使用回應碼作為一MAC演算法之金鑰且使用啟動碼作為訊息來運算候選金鑰。因此,在一些實施例中,候選金鑰可被運算為:
。
在一些實施例中,可交換參數。在一些實施例中,半導體裝置(108)將傳回回應碼且接著產生候選金鑰。在其他實施例中,半導體裝置(108)可在傳回回應碼之前產生候選金鑰。如將論述,在其他實施例中,可替代地回應於自一主機處理器接收一命令而產生候選金鑰。
圖4係繪示根據一些實施例之用於替換一或多個半導體裝置之一儲存根金鑰的一方法之一流程圖。在所繪示實施例中,方法係在一半導體裝置產生且傳回一回應之後藉由該半導體裝置執行,如在圖3之描述中更完全描述。
在步驟402中,方法接收替換一儲存金鑰之一命令,其替代地稱為替換命令。在所繪示實施例中,替換一儲存金鑰之命令引起一半導體裝置(例如,108)提交候選金鑰作為半導體裝置之有效秘密金鑰。
在一項實施例中,替換命令包含一MAC。在一項實施例中,客戶系統(106)藉由向TP (104)發出一請求來產生MAC。在一項實施例中,MAC係基於一半導體裝置(108)之UID產生。接著,客戶系統(106)將MAC包含於替換命令中且向半導體裝置(108)發出命令。在一項實施例中,MAC係使用一AES-CMAC演算法產生且使用CAK之值作為金鑰。在一項實施例中,將KMS臨時亂數之值用作訊息。
在步驟404中,方法產生替換命令之一候選MAC。在一項實施例中,半導體裝置之一密碼編譯引擎藉由使用CAK作為一金鑰且使用KMS臨時亂數作為訊息運算一候選MAC而產生該MAC。在一些實施例中,可將額外資料新增至訊息。在所繪示實施例中,裝置存取儲存於NV儲存器中之CAK以運算MAC,且比較在裝置上運算之MAC與替換命令之MAC以驗證命令。在一項實施例中,一AES-CMAC演算法用來產生及驗證MAC,但可使用其他MAC演算法。
在步驟406中,方法比較候選MAC與替換命令之MAC。若比較失敗,則方法結束,且由於無法驗證命令而不處理該命令。
在步驟408中,方法基於回應碼及啟動碼產生一候選金鑰。如上文所描述,在一些實施例中,此步驟408係選用的,因為候選金鑰係回應於佈建命令而產生,如圖3之描述中所描述。
在一項實施例中,方法使用一MAC演算法來產生一候選金鑰。在一項實施例中,MAC演算法包括一HMAC演算法。在一項實施例中,HMAC演算法包括一HMAC-SHA256演算法。可使用其他演算法。在一些實施例中,候選金鑰之固定長度等於MFGSRK值之固定長度。在一項實施例中,方法使用回應碼作為一MAC演算法之金鑰且使用啟動碼作為訊息來運算候選金鑰。因此,在一些實施例中,候選金鑰可被運算為:
。
在一些實施例中,可交換參數。在步驟410中,方法用候選金鑰之值替換用作裝置之秘密金鑰之MFGSRK。如圖2之描述中更詳細描述,裝置(108)暫時將候選金鑰儲存於NV儲存器(202)中。裝置(108)額外地保持MFGSRK之值作為有效金鑰(210)。在步驟410期間,方法將候選金鑰之值複製至表示有效秘密金鑰之一位置。在一項實施例中,裝置(108)可不包含用於新金鑰之一單獨位置(214)。代替性地,裝置(108)可將候選金鑰儲存位置(216)之內容複製至儲存MFGSRK之位置(210),從而有效地覆寫MFGSRK之值。替代地,方法可將候選金鑰儲存位置(216)之內容複製至一單獨位置(214),且指示密碼編譯引擎(232)使用新金鑰(214)作為有效秘密金鑰。以此方式,儘管使用一新的有效秘密金鑰,但仍保留MFGSRK。在一項實施例中,密碼編譯引擎(232)可包含用以在資料被寫入至位置(214)時自動使用位置(214)之內容來代替位置(210)之內容的韌體及/或電路系統。在一些實施例中,方法將進一步在結束之前自任何暫時儲存位置擦除候選金鑰。
圖5係繪示根據本發明之一些實施例之一記憶體系統之一方塊圖。
如圖5中所繪示,一運算系統(500)包含經由一匯流排(504)通信地耦合至一記憶體系統(506)之一處理器(502)。記憶體系統(506)包括經由一匯流排/介面(512)通信地耦合至一或多個記憶體庫(508A至508N)之一控制器(220)。如所繪示,控制器(220)包含一本地快取區(514)、韌體(516)及ECC模組(518)。
在所繪示實施例中,處理器(502)可包括任何類型之運算處理器,諸如一中央處理單元、圖形處理單元或其他類型之通用或專用運算裝置。處理器(502)包含容許在處理器(502)與記憶體系統(506)之間傳輸位址、使用者及控制資料之一或多個輸出埠。在所繪示實施例中,經由匯流排(504)執行此通信。在一項實施例中,匯流排(504)包括一輸入/輸出(I/O)匯流排或類似類型之匯流排。
記憶體系統(506)負責管理一或多個記憶體庫(508A至508N)。在一項實施例中,庫(508A至508N)包括NAND快閃記憶體晶粒或非揮發性記憶體之其他組態。
庫(508A至508N)藉由控制器(220)管理。在一些實施例中,控制器(220)包括經組態以調解對及來自庫(508A至508N)之存取之一運算裝置。在一項實施例中,控制器(220)包括安裝於容置庫(508A至508N)之一印刷電路板上之ASIC或其他電路系統。在一些實施例中,控制器(220)可與庫(508A至508N)實體上分開。控制器(220)經由介面(512)與庫(508A至508N)進行通信。在一些實施例中,此介面(512)包括一實體上有線(例如,示蹤)介面。在其他實施例中,介面(512)包括用於與庫(508A至508N)進行通信之一標準匯流排。
控制器(220)包括各種模組(514至518)。在一項實施例中,各種模組(514至518)包括各種實體上相異之模組或電路。在其他實施例中,模組(514至518)可完全(或部分)在軟體或韌體中實施。
如所繪示,韌體(516)包括控制器之核心且管理控制器(220)之所有非密碼編譯運算。密碼編譯引擎(232)經提供用於密碼編譯運算,如圖2中更詳細描述。因此,韌體(516)針對非密碼編譯運算調解對庫(508A至508N)之存取。如所繪示,控制器(220)及引擎(232)兩者存取非揮發性(NV)儲存器(202)。存取NV儲存器(202)之細節在圖2之描述中提供且在此不再重複。
圖6係繪示展示在本發明之各項實施例中使用之一運算裝置之一實例實施例的一運算裝置之一方塊圖。裝置(600)可包括由製造商(110)、KMS (102)、TP (104)或客戶系統(106)使用之一運算裝置。此外,各種組件可包括包含一半導體裝置(108)之一裝置或可包括半導體裝置(108)本身。
運算裝置(600)可包含多於或少於圖6中所展示之組件之組件。例如,一伺服器運算裝置可不包含音訊介面、顯示器、小鍵盤、照明器、觸覺介面、GPS接收器、相機或感測器。
如圖中所展示,裝置(600)包含經由一匯流排(624)與一大容量記憶體(630)通信之一處理單元(CPU) (622)。運算裝置(600)亦包含一或多個網路介面(650)、一音訊介面(652)、一顯示器(654)、一小鍵盤(656)、一照明器(658)、一輸入/輸出介面(660)、一觸覺介面(662)、一選用全球定位系統(GPS)接收器(664)及一(若干)相機或其他光學、熱或電磁感測器(666)。裝置(600)可包含一個相機/感測器(666)或複數個相機/感測器(666),如熟習此項技術者所瞭解。(若干)相機/(若干)感測器(666)在裝置(600)上之定位可按照裝置(600)型號、裝置(600)能力及類似者或其等之某一組合而改變。
運算裝置(600)可視情況與一基地台(未展示)進行通信,或直接與另一運算裝置進行通信。網路介面(650)有時稱為收發器、收發裝置或網路介面卡(NIC)。
音訊介面(652)產生及接收諸如一人聲之聲音之音訊信號。例如,音訊介面(652)可經耦合至一揚聲器及麥克風(未展示)以實現與其他者之遠程通信(telecommunication)或產生對某一動作之一音訊認可。顯示器(654)可為一液晶顯示器(LCD)、氣體電漿、發光二極體(LED)或搭配一運算裝置使用之任何其他類型之顯示器。顯示器(654)亦可包含經配置以自諸如一觸控筆或來自一人手之一手指之一物件接收輸入的一觸敏螢幕。
小鍵盤(656)可包括經配置以自一使用者接收輸入之任何輸入裝置。照明器(658)可提供一狀態指示或提供光。
運算裝置(600)亦包括用於使用諸如USB、紅外線、Bluetooth™或類似者之通信技術與外部裝置進行通信的輸入/輸出介面(660)。觸覺介面(662)將觸覺回饋提供至用戶端裝置之一使用者。
選用GPS收發器(664)可判定運算裝置(600)在地球表面上之實體座標,其通常將一位置輸出為緯度及經度值。GPS收發器(664)亦可採用其他地理定位機制,包含但不限於三角量測、輔助GPS (AGPS)、E-OTD、CI、SAI、ETA、BSS或類似者,以進一步判定運算裝置(600)在地球表面上之實體位置。然而,在一項實施例中,運算裝置(600)可透過其他組件提供可用來判定裝置之一實體位置之其他資訊,包含例如一MAC位址、網際網路協定(IP)位址或類似者。
大容量記憶體(630)包含一RAM (632)、一ROM (634)及其他儲存構件。大容量記憶體(630)繪示用於儲存諸如電腦可讀指令、資料結構、程式模組或其他資料之資訊的電腦儲存媒體之另一實例。大容量記憶體(630)儲存用於控制運算裝置(600)之低階操作之一基本輸入/輸出系統(「BIOS」) (640)。大容量記憶體亦儲存用於控制運算裝置(600)之操作之一作業系統(641)。
應用程式(642)可包含電腦可執行指令,該等電腦可執行指令在藉由運算裝置(600)執行時執行先前在前圖之描述中所描述之方法(或方法之部分)之任何者。在一些實施例中,實施方法實施例之軟體或程式可自硬碟機(未繪示)讀取且藉由CPU (622)暫時儲存於RAM (632)中。接著,CPU (622)可自RAM (632)讀取軟體或資料,處理軟體或資料,且將軟體或資料再次儲存至RAM (632)。
本發明包含執行上文所描述之方法且實施上文所描述之系統的各種裝置,包含執行此等方法之資料處理系統,及含有指令之電腦可讀媒體,該等指令在於資料處理系統上執行時引起系統執行此等方法。
描述及圖式係闡釋性的且不應被解釋為限制性。描述諸多特定細節以提供一透徹理解。然而,在特定例項中,未描述熟知或習知細節以免使描述不清楚。在本發明中對一項或一實施例之引用不一定係對相同實施例之引用;而且,此等引用意謂至少一個。
在本說明書中對「一項實施例」或「一實施例」之引用意謂結合該實施例所描述之一特定特徵、結構或特性包含於本發明之至少一項實施例中。在說明書中之各個地方出現片語「在一項實施例中」不一定全部指代相同實施例,亦並非與其他實施例互斥之單獨或替代實施例。此外,描述可由一些實施例展現而未由其他實施例展現之各種特徵。類似地,描述可能為一些實施例之要求而非其他實施例之要求的各種要求。
在此描述中,各種功能及操作可被描述為由軟體程式碼執行或引起以簡化描述。然而,熟習此項技術者將認知,此等表達意謂功能係藉由一或多個處理器(諸如一微處理器、特定應用積體電路(ASIC)、圖形處理器及/或一場可程式化閘陣列(FPGA))執行程式碼而產生。替代地或組合地,可使用專用電路系統(例如,邏輯電路系統)在具有或不具有軟體指令之情況下實施功能及操作。實施例可使用硬接線電路系統在不具有軟體指令之情況下或結合軟體指令來實施。因此,技術不限於硬體電路系統及軟體之任何特定組合,亦不限於由一運算裝置執行之指令之任何特定來源。
雖然一些實施例可在功能齊全的電腦及電腦系統中實施,但各項實施例能夠以多種形式作為一運算產品分佈且能夠被應用而不管用來實際上實現分佈之機器或電腦可讀媒體之特定類型。
至少一些所揭示態樣可至少部分在軟體中體現。即,該等技術可在一運算裝置或其他系統中回應於其處理器(諸如一微處理器)執行一記憶體(諸如ROM、揮發性RAM、非揮發性記憶體、快取區或一遠端儲存裝置)中所含之指令序列而實行。
經執行以實施實施例之常式可實施為一作業系統、中間軟體、服務遞送平台、SDK (軟體開發套件)組件、網路服務或其他特定應用程式、組件、程式、物件、模組或稱為「電腦程式」之指令序列的部分。此等常式之調用介面可作為一API (應用程式設計介面)曝露於一軟體開發社群。電腦程式通常包括在一電腦中之各種記憶體及儲存裝置中在各種時間設定且在藉由一電腦中之一或多個處理器讀取並執行時引起電腦執行實行涉及各種態樣之要素所必需之操作的一或多個指令。
一機器可讀媒體可用來儲存軟體及資料,該軟體及資料在藉由一運算裝置執行時引起該裝置執行各種方法。可執行軟體及資料可儲存於各種位置中,包含例如ROM、揮發性RAM、非揮發性記憶體及/或快取區。此軟體及/或資料之部分可儲存於此等儲存裝置之任一者中。此外,可自集中式伺服器或同級間網路獲得資料及指令。可在不同時間且在不同通信會期中或在相同通信會期中自不同集中式伺服器及/或同級間網路獲得資料及指令之不同部分。可在執行應用程式之前整體獲得資料及指令。替代地,可在執行需要時及時地動態獲得資料及指令之部分。因此,在一特定時間例項,資料及指令不需要整體位於一機器可讀媒體上。
電腦可讀媒體之實例包含但不限於可記錄及不可記錄式媒體,尤其諸如揮發性及非揮發性記憶體裝置、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、快閃記憶體裝置、固態硬碟儲存媒體、可移除磁碟、磁碟儲存媒體、光學儲存媒體(例如,光碟唯讀記憶體(CD ROM)、數位多功能光碟(DVD)等)。電腦可讀媒體可儲存指令。
一般而言,一有形或非暫時性機器可讀媒體包含以可由一機器(例如,一電腦、行動裝置、網路裝置、個人數位助理、製造工具、具有一組一或多個處理器之任何裝置等)存取之一形式提供(例如,儲存)資訊的任何機構。
在各項實施例中,可結合軟體及韌體指令使用硬接線電路系統來實施技術。因此,技術既不限於硬體電路系統及軟體之任何特定組合,亦不限於由一運算裝置執行之指令之任何特定來源。
本文中所闡述之各項實施例可使用各種各樣的不同類型之運算裝置來實施。如本文中所使用,一「運算裝置」之實例包含但不限於一伺服器、一集中式運算平台、多個運算處理器及/或組件之一系統、一行動裝置、一使用者終端機、一車輛、一個人通信裝置、一可穿戴數位裝置、一電子資訊站(kiosk)、一通用電腦、一電子文件閱讀器、一平板電腦、一膝上型電腦、一智慧型電話、一數位相機、一住宅家用電器、一電視機或一數位音樂播放器。運算裝置之額外實例包含作為所謂「物聯網」(IOT)之部分之裝置。此等「事物」可能偶爾與其等所有者或管理員互動,該等所有者或管理員可監視事物或修改關於此等事物之設置。在一些情況中,此等所有者或管理員相對於「事物」裝置扮演使用者之角色。在一些實例中,一使用者之主要行動裝置(例如,一Apple iPhone)相對於由使用者佩戴之一經配對「事物」裝置(例如,一Apple手錶)可為一管理員伺服器。
在一些實施例中,運算裝置可為一電腦或主機系統,其被實施為例如一桌上型電腦、膝上型電腦、網路伺服器、行動裝置或包含一記憶體及一處理裝置之其他運算裝置。主機系統可包含或經耦合至一記憶體子系統,使得主機系統可自記憶體子系統讀取資料或將資料寫入至記憶體子系統。主機系統可經由一實體主機介面耦合至記憶體子系統。一般而言,主機系統可經由一相同通信連接、多個單獨通信連接及/或通信連接之一組合存取多個記憶體子系統。
在一些實施例中,運算裝置係包含一或多個處理裝置之一系統。處理裝置之實例可包含一微控制器、一中央處理單元(CPU)、專用邏輯電路系統(例如,一場可程式化閘陣列(FPGA)、一特定應用積體電路(ASIC)等)、一系統單晶片(SoC)或另一合適處理器。
儘管一些圖式以一特定順序繪示若干操作,但可對非順序相關之操作進行重新排序且可組合或分解其他操作。雖然明確地提及一些重新排序或其他群組,但其他重新排序或群組對於一般技術者而言將為顯而易見的,且因此並未呈現一詳盡的替代例清單。此外,應認知,階段可在硬體、韌體、軟體或其等之任何組合中實施。
在前述說明書中,本發明已參考其特定例示性實施例進行描述。將顯而易見的是,在不脫離如以下發明申請專利範圍中所闡述之更廣泛精神及範疇之情況下,可對本發明進行各種修改。因此,說明書及圖式應被視為闡釋性意義而非限制性意義。
102:金鑰管理系統(KMS)
104:受信賴夥伴(TP)
106:客戶系統
108:半導體裝置
108A:半導體裝置
108B:半導體裝置
108C:半導體裝置
110:半導體裝置製造商
202:非揮發性(NV)儲存區/非揮發性(NV)儲存器
204:客戶識別符(CID)欄位/客戶識別符(CID)
206:唯一識別符(UID)欄位/唯一識別符(UID)
208:客戶鑑認金鑰(CAK)欄位/客戶鑑認金鑰(CAK)
210:製造儲存根金鑰/裝置儲存根金鑰(MFGSRK)欄位/MFGSRK/有效金鑰/位置
212:單調計數器(MTC)欄位/單調計數器(MTC)
214:SHRSRK/最終儲存根金鑰(SHRSRK)欄位/位置
216:候選儲存根金鑰欄位/候選金鑰儲存位置
218:啟動碼欄位/私密啟動金鑰欄位/啟動碼
220:回應碼欄位/回應碼(圖2)/控制器(圖5)
222:客戶臨時亂數值/臨時亂數/欄位
224:HMAC-SHA256/HMAC運算
226:AES-CMAC/運算
228:控制器
230:介面
232:密碼編譯引擎
302:步驟
304:步驟
306:步驟
308:步驟
310:步驟
312:步驟
314:步驟
316:步驟
402:步驟
404:步驟
406:步驟
408:步驟
410:步驟
500:運算系統
502:處理器
504:匯流排
506:記憶體系統
508A至508N:記憶體庫
512:匯流排/介面
514:本地快取區/模組
516:韌體
518:模組
600:運算裝置
622:處理單元(CPU)
624:匯流排
630:大容量記憶體
632:隨機存取記憶體(RAM)
640:基本輸入/輸出系統(「BIOS」)
641:作業系統
642:應用程式
652:音訊介面
654:顯示器
656:小鍵盤
658:照明器
660:輸入/輸出介面
662:觸覺介面
664:全球定位系統(GPS)接收器/全球定位系統(GPS)收發器
666:相機/感測器
圖1係繪示根據本發明之一些實施例之一鑑認系統之一方塊圖。
圖2係繪示根據本發明之一些實施例之一半導體裝置之一方塊圖。
圖3係繪示根據一些實施例之用於佈建一或多個半導體裝置之一方法之一流程圖。
圖4係繪示根據一些實施例之用於替換一或多個半導體裝置之一儲存根金鑰的一方法之一流程圖。
圖5係繪示根據本發明之一些實施例之一記憶體系統之一方塊圖。
圖6係繪示展示在本發明之各項實施例中使用之一運算裝置之一實例實施例的一運算裝置之一方塊圖。
302:步驟
304:步驟
306:步驟
308:步驟
310:步驟
312:步驟
314:步驟
316:步驟
Claims (20)
- 一種方法,其包括: 藉由一半導體裝置接收一命令; 藉由該半導體裝置回應於該命令而產生一回應碼; 藉由該半導體裝置將該回應碼傳回至一處理裝置; 藉由該半導體裝置接收替換該裝置之一儲存根金鑰之一指令; 藉由該半導體裝置基於該回應碼產生一替換金鑰;及 藉由該半導體裝置用該替換金鑰替換一現有金鑰。
- 如請求項1之方法,其進一步包括基於一客戶ID及一第二臨時亂數值產生一第一臨時亂數值。
- 如請求項2之方法,其中該命令包含該客戶ID及該第二臨時亂數值。
- 如請求項2之方法,其中該產生該第一臨時亂數值包括:對該客戶ID及一第二臨時亂數值執行一散列運算。
- 如請求項2之方法,其進一步包括基於該第一臨時亂數值產生一啟動碼。
- 如請求項5之方法,其中產生該啟動碼包括:使用一製造商之儲存根金鑰作為一訊息鑑認碼(MAC)運算之一金鑰來對該第一臨時亂數值執行該MAC運算。
- 如請求項5之方法,其中產生該回應碼包括:使用一單調計數器值作為一訊息來對該啟動碼執行一MAC運算。
- 如請求項5之方法,其中產生該替換金鑰包括:使用該回應碼作為一MAC運算之一訊息來對該啟動碼執行該MAC運算。
- 一種裝置,其包括: 一非揮發性儲存區域;及 一控制器,其用於自一外部運算裝置接收一第一及一第二命令;及 一密碼編譯處理器,其經組態以: 回應於該第一命令而產生一回應碼; 將該回應碼傳回至該控制器; 回應於該第二命令而基於該回應碼產生一替換金鑰;及 用該替換金鑰替換一現有金鑰。
- 如請求項9之裝置,其中該密碼編譯處理器進一步經組態以基於一客戶ID及一第二臨時亂數值產生一第一臨時亂數值。
- 如請求項10之裝置,其中該命令包含該客戶ID及該第二臨時亂數值。
- 如請求項10之裝置,其中該產生該第一臨時亂數值包括:對該客戶ID及一第二臨時亂數值執行一散列運算。
- 如請求項10之方法,其中該密碼編譯處理器進一步經組態以基於該第一臨時亂數值產生一啟動碼。
- 如請求項13之裝置,其中產生該啟動碼包括:使用一製造商之儲存根金鑰作為一訊息鑑認碼(MAC)運算之一金鑰來對該第一臨時亂數值執行該MAC運算。
- 如請求項13之裝置,其中產生該回應碼包括:使用一單調計數器值作為一訊息來對該啟動碼執行一MAC運算。
- 如請求項13之裝置,其中產生該替換金鑰包括:使用該回應碼作為一MAC運算之一訊息來對該啟動碼執行該MAC運算。
- 一種用於有形地儲存能夠藉由一半導體裝置執行之電腦程式指令之非暫時性電腦可讀儲存媒體,該等電腦程式指令定義以下步驟: 接收一命令; 回應於該命令而產生一回應碼; 將該回應碼傳回至一處理裝置; 接收替換該裝置之一儲存根金鑰之一命令; 基於該回應碼產生一替換金鑰;及 用該替換金鑰替換一現有金鑰。
- 如請求項17之非暫時性電腦可讀儲存媒體,該等電腦程式指令進一步定義基於一客戶ID及一第二臨時亂數值產生一第一臨時亂數值之步驟。
- 如請求項18之非暫時性電腦可讀儲存媒體,該等電腦程式指令進一步定義基於該第一臨時亂數值產生一啟動碼之步驟。
- 如請求項19之非暫時性電腦可讀儲存媒體,其中產生該替換金鑰包括:使用該回應碼作為一MAC運算之一金鑰來對該啟動碼執行該MAC運算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/014,203 US11294582B2 (en) | 2020-09-08 | 2020-09-08 | Customer-specific activation of functionality in a semiconductor device |
US17/014,203 | 2020-09-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202226018A true TW202226018A (zh) | 2022-07-01 |
Family
ID=80629830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110132180A TW202226018A (zh) | 2020-09-08 | 2021-08-31 | 在半導體裝置中之功能之客戶特定啟動 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11294582B2 (zh) |
CN (1) | CN116034364A (zh) |
TW (1) | TW202226018A (zh) |
WO (1) | WO2022055897A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11444771B2 (en) | 2020-09-08 | 2022-09-13 | Micron Technology, Inc. | Leveraging a trusted party third-party HSM and database to securely share a key |
US11294582B2 (en) | 2020-09-08 | 2022-04-05 | Micron Technology, Inc. | Customer-specific activation of functionality in a semiconductor device |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291226B2 (en) * | 2006-02-10 | 2012-10-16 | Qualcomm Incorporated | Method and apparatus for securely booting from an external storage device |
US8908867B2 (en) | 2006-07-31 | 2014-12-09 | Lenovo (Singapore) Pte. Ltd. | Automatic recovery of TPM keys |
KR101213154B1 (ko) | 2006-11-16 | 2012-12-17 | 삼성전자주식회사 | 키 업데이트 방법 및 이를 이용한 키 업데이트 장치 |
US8064605B2 (en) | 2007-09-27 | 2011-11-22 | Intel Corporation | Methods and apparatus for providing upgradeable key bindings for trusted platform modules |
US8467532B2 (en) * | 2010-01-04 | 2013-06-18 | Tata Consultancy Services Limited | System and method for secure transaction of data between a wireless communication device and a server |
US8522322B2 (en) | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
JP6062828B2 (ja) * | 2013-08-26 | 2017-01-18 | 株式会社Nttドコモ | 加入者プロファイル転送方法、加入者プロファイル転送システム及びユーザ装置 |
US9407636B2 (en) * | 2014-05-19 | 2016-08-02 | Intel Corporation | Method and apparatus for securely saving and restoring the state of a computing platform |
US10091904B2 (en) * | 2016-07-22 | 2018-10-02 | Intel Corporation | Storage sled for data center |
KR20220101018A (ko) * | 2018-03-23 | 2022-07-18 | 마이크론 테크놀로지, 인크. | 저장 디바이스의 인증 변경 |
KR102567097B1 (ko) | 2018-12-05 | 2023-08-14 | 삼성전자주식회사 | 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법 |
DE112019007421T5 (de) * | 2019-05-31 | 2022-02-24 | Micron Technology, Inc. | Speichergerät mit sicherer testmoduseingabe |
CN113141259B (zh) * | 2019-09-12 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 在区块链网络中更换身份证书的方法和装置 |
GB2588813A (en) * | 2019-11-08 | 2021-05-12 | Jitsuin Ltd | Data structure storage optimisation |
JP2021118370A (ja) * | 2020-01-22 | 2021-08-10 | キオクシア株式会社 | メモリシステム、情報処理装置、および情報処理システム |
US11294582B2 (en) | 2020-09-08 | 2022-04-05 | Micron Technology, Inc. | Customer-specific activation of functionality in a semiconductor device |
-
2020
- 2020-09-08 US US17/014,203 patent/US11294582B2/en active Active
-
2021
- 2021-08-31 TW TW110132180A patent/TW202226018A/zh unknown
- 2021-09-07 CN CN202180054651.7A patent/CN116034364A/zh active Pending
- 2021-09-07 WO PCT/US2021/049317 patent/WO2022055897A1/en active Application Filing
-
2022
- 2022-03-31 US US17/710,675 patent/US11899946B2/en active Active
-
2024
- 2024-01-05 US US18/406,041 patent/US20240143202A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220221996A1 (en) | 2022-07-14 |
US20220075537A1 (en) | 2022-03-10 |
US11899946B2 (en) | 2024-02-13 |
WO2022055897A1 (en) | 2022-03-17 |
US20240143202A1 (en) | 2024-05-02 |
US11294582B2 (en) | 2022-04-05 |
CN116034364A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11533187B2 (en) | Device birth certificate | |
JP5576983B2 (ja) | 非ローカル記憶装置からのサブシステムのセキュアなブート及び構成 | |
JP5852265B2 (ja) | 計算装置、コンピュータプログラム及びアクセス許否判定方法 | |
US9246678B2 (en) | Secure cloud storage and encryption management system | |
US10454910B2 (en) | Management apparatus, computer program product, system, device, method, information processing apparatus, and server | |
US8005118B2 (en) | Method and apparatus for implementing secure clock in device having no internal power source | |
US20240143202A1 (en) | Customer-specific activation of functionality in a semiconductor device | |
JP2016521937A (ja) | ファームウェアトラステッドプラットフォームモジュールのためのエンドースメント鍵証明書をプロビジョニングするための装置および方法 | |
KR20200131035A (ko) | 블록체인에 저장된 푸시 메시지를 수신하는 전자 장치 및 방법 | |
KR20180005542A (ko) | 데이터 무결성 검증을 위한 장치 및 방법 | |
US20200274862A1 (en) | Runtime identity confirmation for restricted server communication control | |
US12047508B2 (en) | Leveraging a trusted party third-party HSM and database to securely share a key | |
US20230224169A1 (en) | Verifying secure software images using digital certificates | |
TWI854152B (zh) | 用於提供安全的現場升級之方法、相關電腦可讀儲存媒體及電子裝置 | |
US20140150123A1 (en) | Using receipts to control assignments of items of content to users | |
TW202213960A (zh) | 客戶特定對稱金鑰啟動資料庫之基於雲之產生 | |
WO2021241109A1 (ja) | 情報処理システム、サーバ装置、情報処理装置及び動作制御装置 | |
US20240275588A1 (en) | Electronic device for data isolation and method of operating the same | |
CN118283597A (zh) | 一种车辆升级方法、存储介质、电子设备及车辆 |