TWI740409B - Verification of identity using a secret key - Google Patents
Verification of identity using a secret key Download PDFInfo
- Publication number
- TWI740409B TWI740409B TW109107607A TW109107607A TWI740409B TW I740409 B TWI740409 B TW I740409B TW 109107607 A TW109107607 A TW 109107607A TW 109107607 A TW109107607 A TW 109107607A TW I740409 B TWI740409 B TW I740409B
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- identifier
- computing device
- data
- certificate
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- 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/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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
-
- 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/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
-
- 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
-
- 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/3247—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 involving digital signatures
-
- 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/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
Description
本文所揭示之至少一些實施例大體上係關於身份驗證,且更特定言之(但不限於),本文所揭示之至少一些實施例係關於使用一密鑰之身份驗證。At least some of the embodiments disclosed herein are generally about identity verification, and more specifically (but not limited to), at least some of the embodiments disclosed herein are about identity verification using a key.
一物理不可複製功能(PUF)提供(例如)可充當一半導體裝置(諸如一微處理器)之一唯一識別之一數位值。PUF係基於(例如)在半導體製造期間自然發生且容許區分其他相同半導體晶片之物理變動。A physical uncopyable function (PUF) provides, for example, a digital value that can serve as a unique identifier for a semiconductor device (such as a microprocessor). PUF is based on, for example, physical changes that occur naturally during semiconductor manufacturing and allow to distinguish between other identical semiconductor wafers.
PUF通常用於密碼學中。一PUF可為(例如)以一物理結構體現之一物理實體。PUF通常以積體電路實施,且通常用於具有高安全要求之應用中。例如,PUF可用作為一唯一且不可篡改裝置識別符。PUF亦可用於安全密鑰生成,且用作為隨機性之一來源。PUF is commonly used in cryptography. A PUF can be, for example, a physical entity embodied in a physical structure. PUF is usually implemented as an integrated circuit and is usually used in applications with high safety requirements. For example, PUF can be used as a unique and non-tamperable device identifier. PUF can also be used for security key generation and used as a source of randomness.
在關於裝置識別之一實例中,Microsoft® Azure® IoT平台係由Microsoft提供之一組雲端服務。Azure® IoT平台支援裝置識別組合引擎(DICE)及諸多不同種類之硬體安全模組(HSM)。DICE係用於裝置識別及認證之可信運算組(TCG)之一未來標準,其使製造商能夠使用矽閘極來產生基於硬體之裝置識別。HSM用於使裝置識別安全且提供諸如基於硬體之裝置認證及零接觸供應之進階功能。In an example of device identification, the Microsoft® Azure® IoT platform is a set of cloud services provided by Microsoft. The Azure® IoT platform supports Device Identification Combination Engine (DICE) and many different types of hardware security modules (HSM). DICE is a future standard of the Trusted Computing Group (TCG) for device identification and authentication, which enables manufacturers to use silicon gates to generate hardware-based device identification. HSM is used to make device identification secure and provide advanced functions such as hardware-based device authentication and zero-touch provisioning.
DICE提供一可擴展安全框架,其使用一HSM足跡來錨定信任以用於構建諸如鑑別、安全啟動及遠端認證之安全解決方案。DICE用於以IoT裝置為特徵之約束運算之當前環境且替代更傳統安全框架標準,諸如可信運算組(TCG)及可信平台模組(TPM)。Azure® IoT平台對來自一些矽供應商之HSM中之DICE提供HSM支援。DICE provides an extensible security framework that uses an HSM footprint to anchor trust for building security solutions such as authentication, secure boot, and remote authentication. DICE is used in the current environment of constrained computing featuring IoT devices and replaces more traditional security framework standards, such as the Trusted Computing Group (TCG) and Trusted Platform Module (TPM). The Azure® IoT platform provides HSM support for DICE in HSM from some silicon vendors.
在關於信任服務之一實例中,穩健物聯網(RIoT)係用於向運算裝置提供信任服務之一架構。信任服務包含裝置識別、認證及資料完整性。RIoT架構可用於遠端重建已由惡意軟體損害之裝置之信任。另外,RIoT服務可以低成本提供於甚至非常小裝置上。In an example of trust services, the Robust Internet of Things (RIoT) is an architecture used to provide trust services to computing devices. Trust services include device identification, authentication, and data integrity. The RIoT framework can be used to remotely rebuild the trust of devices that have been compromised by malware. In addition, RIoT services can be provided on even very small devices at low cost.
改良安全技術需要領域產品更頻繁軟體更新。然而,必須在無人參與之情況下管理及驗證此等更新。RIoT可用於解決此等技術問題。Improved security technology requires more frequent software updates for field products. However, these updates must be managed and verified without any involvement. RIoT can be used to solve these technical problems.
RIoT提供密碼操作之一基礎及諸多安全方案之密鑰管理。鑑別、完整性驗證及資料保護需要密碼密鑰來加密及解密且需要機構來雜湊及標記資料。大多數網際網路連接裝置亦使用密碼來使與其他裝置通信安全。RIoT provides a basis for cryptographic operations and key management of many security solutions. Authentication, integrity verification, and data protection require cryptographic keys to encrypt and decrypt, and institutions to hash and mark data. Most Internet-connected devices also use passwords to secure communications with other devices.
由RIoT提供之密碼服務包含裝置識別、資料保護及認證。關於裝置識別,裝置通常藉由證明擁有一密碼密鑰來自我鑑別。若提取及複製與一裝置相關聯之密鑰,則可偽裝裝置。The cryptographic services provided by RIoT include device identification, data protection and authentication. Regarding device identification, the device usually authenticates itself by proving that it possesses a cryptographic key. If the key associated with a device is extracted and copied, the device can be disguised.
關於資料保護,裝置通常使用密碼來加密及完整性保護本端儲存資料。若密碼密鑰僅可存取授權碼,則未授權軟體無法解密或修改資料。Regarding data protection, devices usually use passwords to encrypt and integrity protect data stored locally. If the password key can only access the authorization code, unauthorized software cannot decrypt or modify the data.
關於認證,裝置有時需要報告其在運行之代碼及其安全組態。例如,認證用於證明一裝置在運行最新代碼。Regarding authentication, the device sometimes needs to report its running code and its security configuration. For example, certification is used to prove that a device is running the latest code.
若僅以軟體管理密鑰,則軟體組件之漏洞會導致密鑰洩露。針對純軟體系統,在一密鑰洩露之後恢復信任之主要方式係安裝更新軟體且供應裝置之新密鑰。此對伺服器及行動裝置而言很耗時,且不適用於裝置無法物理存取時。If only the software is used to manage the key, the vulnerability of the software component will cause the key to be leaked. For pure software systems, the main way to restore trust after a key is leaked is to install updated software and supply a new key for the device. This is time-consuming for servers and mobile devices, and is not suitable for when the device cannot be physically accessed.
使遠端重新供應安全之一些方法使用基於硬體之安全。軟體級攻擊可允許駭客使用硬體保護密鑰但無法提取其,因此,硬體保護密鑰係用於受損系統之安全重新供應之一有用構建塊。可信平台模組或TPM係提供密鑰之硬體保護且亦允許裝置報告(認證)其在運行之軟體的安全模組之一實例。因此,一配備TPM之受損裝置可安全發出新密鑰,且可提供認證報告。Some methods for remotely re-provisioning security use hardware-based security. Software-level attacks can allow hackers to use hardware-protected keys but cannot extract them. Therefore, hardware-protected keys are a useful building block for the secure re-supply of compromised systems. A trusted platform module or TPM is an example of a security module that provides hardware protection of keys and also allows a device to report (authenticate) its running software. Therefore, a compromised device equipped with a TPM can safely issue a new key and provide an authentication report.
TPM可廣泛用於運算平台上(例如使用SoC整合及處理器模式隔離韌體TPM)。然而,TPM通常不實用。例如,一小IoT裝置無法在不大量增加成本及電力需要之情況下支援一TPM。TPM can be widely used in computing platforms (for example, using SoC integration and processor mode isolation firmware TPM). However, TPM is generally not practical. For example, a small IoT device cannot support a TPM without a large increase in cost and power requirements.
RIoT可用於提供小運算裝置之裝置安全,但其亦可應用於任何處理器或電腦系統。若RIoT核心外部之軟體組件受損,則RIoT提供安全修補及重新供應。RIoT亦將一不同方法用於密碼密鑰保護。由RioT框架使用之最受保護的密碼密鑰僅在啟動期間短暫可用。RIoT can be used to provide device security for small computing devices, but it can also be applied to any processor or computer system. If the software components outside the RIoT core are damaged, RIoT provides security repairs and re-supply. RIoT also uses a different method for cryptographic key protection. The most protected cryptographic key used by the RioT framework is only temporarily available during startup.
根據本發明之一態樣,一種方法包括:由一運算裝置自一主機裝置接收一訊息;由該運算裝置生成一識別符、一憑證及一密鑰,其中該識別符與該運算裝置之一身份相關聯,且該憑證使用該訊息生成;及由該運算裝置將該識別符、該憑證及該密鑰發送至該主機裝置,其中該主機裝置經組態以使用該識別符、該憑證及該密鑰驗證該運算裝置之該身份。According to an aspect of the present invention, a method includes: receiving a message from a host device by an arithmetic device; generating an identifier, a certificate, and a key by the arithmetic device, wherein the identifier is one of the arithmetic device The identity is associated, and the certificate is generated using the message; and the computing device sends the identifier, the certificate, and the key to the host device, where the host device is configured to use the identifier, the certificate, and The key verifies the identity of the computing device.
根據本發明之一態樣,一種系統包括:至少一處理器;及記憶體,其含有指令,該等指令經組態以指示該至少一處理器:將一訊息發送至一運算裝置;自該運算裝置接收一識別符、一憑證及一密鑰,其中該識別符與該運算裝置之一身份相關聯,且該憑證由該運算裝置使用該訊息生成;及使用該識別符、該憑證及該密鑰驗證該運算裝置之該身份。According to one aspect of the present invention, a system includes: at least one processor; and a memory containing instructions configured to instruct the at least one processor to send a message to a computing device; The computing device receives an identifier, a certificate, and a key, where the identifier is associated with an identity of the computing device, and the certificate is generated by the computing device using the message; and using the identifier, the certificate, and the key The key verifies the identity of the computing device.
根據本發明之一態樣,一種非暫時性電腦儲存媒體儲存指令,該等指令在執行於一運算裝置上時引起該運算裝置至少:自一主機裝置接收一訊息;生成一識別符、一憑證及一密鑰,其中該識別符對應於該運算裝置之一身份,且該憑證使用該訊息生成;及將該識別符、該憑證及該密鑰發送至該主機裝置以用於驗證該運算裝置之該身份。According to one aspect of the present invention, a non-transitory computer storage medium stores instructions that, when executed on a computing device, cause the computing device to at least: receive a message from a host device; generate an identifier and a certificate And a key, wherein the identifier corresponds to an identity of the computing device, and the certificate is generated using the message; and the identifier, the certificate, and the key are sent to the host device for verifying the computing device Of the identity.
相關申請案Related applications
本申請案係關於Pisasale等人於2018年5月3日申請之名稱為「Key Generation and Secure Storage in a Noisy Environment」之美國非臨時申請案第15/970,660號,該申請案之全部內容以宛如全文闡述引用的方式併入本文中。This application is related to the U.S. Non-Provisional Application No. 15/970,660 named "Key Generation and Secure Storage in a Noisy Environment" filed by Pisasale et al. on May 3, 2018. The entire content of the application is as if The full description of the citation method is incorporated into this article.
本申請案係關於Mondello等人於2017年12月22日申請之名稱為「PHYSICAL UNCLONABLE FUNCTION USING MESSAGE AUTHENTICATION CODE」之美國非臨時申請案第15/853,498號,該申請案之全部內容以宛如全文闡述引用的方式併入本文中。This application is related to the U.S. non-provisional application No. 15/853,498 named "PHYSICAL UNCLONABLE FUNCTION USING MESSAGE AUTHENTICATION CODE" filed by Mondello et al. on December 22, 2017. The entire content of the application is described as if it were in full. The way of reference is incorporated into this article.
本申請案係關於Mondello等人於2018年4月27日申請之名稱為「SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER」之美國非臨時申請案第15/965,731號,該申請案之全部內容以宛如全文闡述引用的方式併入本文中。This application is related to the U.S. non-provisional application No. 15/965,731 filed by Mondello et al. on April 27, 2018, entitled "SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER". The entire content of the application is as if The full description of the citation method is incorporated into this article.
本文之至少一實施例係關於一或多個運算裝置之身份驗證。在各種實施例中,一主機裝置藉由將一訊息發送至一運算裝置來驗證運算裝置之身份。運算裝置使用訊息生成發送至主機裝置之一識別符、一憑證及一密鑰。主機裝置使用所生成之識別符、憑證及密鑰驗證運算裝置之身份。At least one embodiment of this document relates to the authentication of one or more computing devices. In various embodiments, a host device verifies the identity of the computing device by sending a message to a computing device. The computing device uses the message to generate an identifier, a certificate, and a key sent to the host device. The host device uses the generated identifier, certificate, and key to verify the identity of the computing device.
在一些實例中,運算裝置可為一快閃記憶體裝置。在一些實例中,快閃記憶體用於在一運算系統(例如一自主車輛之一應用控制器)中添加一強安全能力等級。In some examples, the computing device may be a flash memory device. In some instances, flash memory is used to add a strong security capability level in a computing system (such as an application controller of an autonomous vehicle).
快閃記憶體用於諸多電腦系統中。現今存在各種類型之快閃記憶體,其包含串列NOR (「反或」)、並行NOR、串列NAND (「反及」)、並行NAND、e.MMC、UFS等等。此等插座用於跨各種行業及應用之大多數嵌入式系統中。Flash memory is used in many computer systems. Various types of flash memory exist today, including serial NOR ("inverse OR"), parallel NOR, serial NAND ("inverse AND"), parallel NAND, e.MMC, UFS, and so on. These sockets are used in most embedded systems across various industries and applications.
例如,串列NOR用於如醫療裝置、工廠自動化板、汽車ECU、智慧電表及網際網路閘道之各種應用中。鑑於跨此等應用使用之晶片組架構(處理器、控制器或SoC)、作業系統及供應鏈之多樣性,快閃記憶體係此等系統中之一公分母構建塊。For example, serial NOR is used in various applications such as medical devices, factory automation boards, automotive ECUs, smart meters, and Internet gateways. In view of the diversity of chipset architectures (processors, controllers or SoCs), operating systems, and supply chains used across these applications, flash memory systems are one of the common denominator building blocks in these systems.
電腦系統韌性現今通常以整合至裝置中且由解決方案用於裝置提供之安全功能之可信根之位置為特徵。關於可信根之更多資訊,參閱由(美國)國家標準技術局(NIST)特別出版物800-164產生之定義。既有產業使用系統級可信根之變動實施方案,其使用硬體及軟體能力之一混合以導致方法分段及安全等級混亂之技術問題。此一系列困惑選項亦遭受如何維護其中儲存關鍵代碼及資料之非揮發性記憶體之密鑰限制。Computer system resilience nowadays is usually characterized by the location of the root of trust integrated into the device and used by the solution for the security functions provided by the device. For more information about the root of trust, refer to the definition produced by the National Institute of Standards and Technology (NIST) Special Publication 800-164. The existing industry uses a system-level root-of-trust change implementation plan, which uses a combination of hardware and software capabilities to cause technical problems such as method segmentation and confusion of security levels. This series of confused options is also subject to the limitation of how to maintain the key of the non-volatile memory in which the key code and data are stored.
既有方法依靠處理器及其他安全元件(如硬體安全模組(HSM))來向其系統提供關鍵安全服務。此已在其中離散快閃記憶體組件儲存系統關鍵代碼及資料之諸多系統之最低啟動級處產生一安全缺口。快閃已成為諸多駭客產生可將本身偽裝成較高級代碼以防被移除之進階持續性威脅(APT)之目標。在諸多此等情況中,快閃記憶體由新惡意代碼重塑或改寫,其破壞該裝置之完整性。Existing methods rely on processors and other secure components (such as hardware security modules (HSM)) to provide critical security services to their systems. This has created a security gap at the lowest startup level of many systems where the discrete flash memory components store system key codes and data. Flash has become a target for many hackers to generate advanced persistent threats (APT) that can disguise themselves as higher-level codes to prevent them from being removed. In many of these cases, the flash memory is reshaped or rewritten by new malicious code, which destroys the integrity of the device.
本發明之各種實施例提供上述技術問題之一技術解決方案。在一些實施例中,一運算裝置將基於硬體之可信根整合至一快閃記憶體裝置中以實現IoT裝置之強密碼識別及健康管理。藉由移動記憶體中之基本安全基元,保護收容於記憶體本身內之代碼及資料之完整性變得更簡單。此方法可顯著增強系統級完整性,同時最小化實施方案之複雜性及成本。Various embodiments of the present invention provide a technical solution to one of the above-mentioned technical problems. In some embodiments, a computing device integrates a hardware-based root of trust into a flash memory device to implement strong password identification and health management of the IoT device. With the basic security element in the mobile memory, it becomes easier to protect the integrity of the code and data contained in the memory itself. This method can significantly enhance system-level integrity while minimizing the complexity and cost of implementation.
在一實施例中,一新IoT裝置管理能力藉由Microsoft® Azure® IoT雲端使用快閃記憶體及相關聯軟體實現裝置機載及管理來利用快閃記憶體。在一實例中,解決方案提供成為關鍵裝置供應服務(例如Azure IoT中心裝置供應服務(DPS))之基礎之一密碼識別。在一實例中,此DPS可與啟用記憶體一起實現裝置至正確IoT中心及其他服務之零接觸供應。In one embodiment, a new IoT device management capability utilizes flash memory by implementing device onboard and management using flash memory and associated software in the Microsoft® Azure® IoT cloud. In one example, solution provisioning becomes one of the foundations of key device provisioning services (such as Azure IoT Center Device Provisioning Service (DPS)) for password identification. In one example, this DPS can be used with memory to enable zero-touch provisioning of devices to the correct IoT center and other services.
在一些實施例中,使用裝置識別組合引擎(DICE)來實施上述能力(DICE係來自可信運算組(TCG)之一未來標準)。在一實例中,啟用記憶體僅容許可信硬體存取Microsoft Azure IoT雲端。在一實例中,在其中通常儲存關鍵代碼之記憶體中驗證一IoT裝置之健康及身份。各IoT裝置之唯一身份現可提供一新級端對端裝置完整性以開始啟動程序。此可實現額外功能,如基於硬體之裝置認證及供應及裝置之管理修復(若需要)。In some embodiments, the device recognition combination engine (DICE) is used to implement the above capabilities (DICE is a future standard from the Trusted Computing Group (TCG)). In one instance, enabling memory only allows trusted hardware to access the Microsoft Azure IoT cloud. In one example, the health and identity of an IoT device are verified in the memory in which key codes are usually stored. The unique identity of each IoT device can now provide a new level of end-to-end device integrity to start the boot process. This can achieve additional functions, such as hardware-based device authentication and supply, and device management and repair (if needed).
在一實施例中,一種方法包含:由一運算裝置(例如一串列NOR快閃記憶體裝置)自一主機裝置(例如一CPU、GPU、FPGA或一車輛之一應用控制器)接收一訊息;由運算裝置生成一識別符(例如一公共識別符IDL1 公鑰)、一憑證(例如IDL1 憑證)及一密鑰(例如KL1 公鑰),其中識別符與運算裝置之一身份相關聯,且憑證使用訊息生成;及由運算裝置將識別符、憑證及密鑰發送至主機裝置,其中主機裝置經組態以使用識別符、憑證及密鑰驗證運算裝置之身份。In one embodiment, a method includes: receiving a message from a host device (such as a CPU, GPU, FPGA, or an application controller of a vehicle) by a computing device (such as a serial NOR flash memory device) ; Generated by the computing device an identifier (such as a public identifier ID L1 public key), a certificate (such as ID L1 certificate) and a secret key (such as K L1 public key), where the identifier is related to an identity of the computing device And the certificate usage message is generated; and the identifier, certificate, and key are sent by the computing device to the host device, where the host device is configured to use the identifier, certificate, and key to verify the identity of the computing device.
在一些實施例中,上述運算裝置(例如一快閃記憶體裝置)整合DICE-RIoT功能,其用於生成上述識別符、憑證及密鑰且由主機裝置用於驗證運算裝置之身份。在一實例中,運算裝置儲存充當一原始密鑰之一裝置秘密,DICE-RIoT協定之層之間的識別步驟之序列係基於原始密鑰。在一實例中,在運算裝置中使用硬體及/或軟體實施DICE-RIoT功能之層L0 及L1 。在一實例中,層L0 僅以硬體實施。In some embodiments, the aforementioned computing device (such as a flash memory device) integrates the DICE-RIoT function, which is used to generate the aforementioned identifier, certificate, and key, and is used by the host device to verify the identity of the computing device. In one example, the computing device stores a device secret that serves as an original key, and the sequence of identification steps between the layers of the DICE-RIoT protocol is based on the original key. In one example, hardware and/or software are used in the computing device to implement the layers L 0 and L 1 of the DICE-RIoT function. In one example, layer L 0 is implemented only in hardware.
圖1展示根據一實施例之驗證一運算裝置141之身份之一主機裝置151。主機裝置151將一訊息發送至運算裝置141。在一實施例中,主機裝置151包含一鮮度機構(圖中未展示),其生成用於將訊息發送至運算裝置141以避免重播攻擊之一鮮度。在一實例中,發送至運算裝置141之各訊息包含由一單調計數器生成之一鮮度。FIG. 1 shows a host device 151 for verifying the identity of a computing device 141 according to an embodiment. The host device 151 sends a message to the computing device 141. In one embodiment, the host device 151 includes a freshness mechanism (not shown in the figure), which generates freshness for sending messages to the computing device 141 to avoid replay attacks. In one example, each message sent to the computing device 141 includes a freshness generated by a monotonic counter.
在一實例中,訊息係一空串、一習知串(主機裝置151之製造商或操作者已知之文數串)或可為另一值(例如賦予運算裝置之一識別值)。在一實例中,訊息係裝置之一唯一識別(UID)。In an example, the message is an empty string, a conventional string (a string of text numbers known to the manufacturer or operator of the host device 151), or another value (for example, an identification value assigned to the computing device). In one example, the message is a unique identification (UID) of the device.
回應於接收訊息,運算裝置141生成一識別符、一憑證及一密鑰。識別符與運算裝置141之一身份相關聯。運算裝置141包含控制識別組件147之操作及/或運算裝置141之其他功能之一或多個處理器143。In response to receiving the message, the computing device 141 generates an identifier, a certificate and a key. The identifier is associated with an identity of the computing device 141. The computing device 141 includes one or
識別符、憑證及密鑰由識別組件147生成且基於裝置秘密149。在一實例中,裝置秘密149係儲存於運算裝置141之記憶體中之一唯一裝置秘密(UDS)。在一實例中,識別組件147使用UDS作為實施DICE-RIoT協定之一原始密鑰。識別符、憑證及密鑰係來自DICE-RIoT協定之層L1
之輸出(例如參閱圖6)。在一實施例中,層L1
之身份對應於運算裝置141本身之身份、運算裝置141之製造商、包含運算裝置141作為一組件之一事物之製造商及/或儲存於運算裝置141之記憶體中之一應用程式或其他軟體。在一實例中,應用身份(例如一ID號)用於文字及數字之一唯一組合用於識別事物之一行動電話、一TV、一STB等等。The identifier, credential, and key are generated by the
在一實例中,層L1 之身份係一ASCII串。例如,身份可為與一事物名稱串連之一製造商名稱(例如LG | TV_model_123_year_2018等等)。在一實例中,身份可以十六進位形式表示(例如53 61 6D 73 75 6E 67 20 7C 20 54 56 5F 6D 6F 64 65 6C 5F 31 32 33 5F 79 65 61 72 5F 32 30 31 38)。In one example, the identity of layer L 1 is an ASCII string. For example, the identity may be a manufacturer's name concatenated with a thing name (for example, LG | TV_model_123_year_2018, etc.). In an example, the identity can be represented in hexadecimal form (for example, 53 61 6D 73 75 6E 67 20 7C 20 54 56 5F 6D 6F 64 65 6C 5F 31 32 33 5F 79 65 61 72 5F 32 30 31 38).
在一實施例中,一製造商可將一UDS用於所生產之一類或一組物品。在其他實施例中,各物品自身可具有唯一UDS。例如,一TV之UDS可為UDS=0x12234...4444,且一膝上型電腦之UDS可為UDS=0xaabb...00322。In one embodiment, a manufacturer can use a UDS for a type or group of items produced. In other embodiments, each item itself may have a unique UDS. For example, the UDS of a TV can be UDS=0x12234...4444, and the UDS of a laptop computer can be UDS=0xaabb...00322.
在一實施例中,裝置秘密149係由運算裝置141儲存於記憶體145中之一密鑰。識別組件147使用密鑰作為一訊息鑑別碼(MAC)之一輸入以生成一衍生秘密。在一實例中,衍生秘密係DICE-RIoT協定中之融合衍生秘密(FDS)。In one embodiment, the device secret 149 is a key stored in the
在一實例中,記憶體145包含儲存用於啟動運算裝置141之初始啟動碼之唯讀記憶體(ROM)。FDS係在一啟動操作期間由處理器143提供至初始啟動碼之一密鑰。在一實例中,ROM對應於DICE-RIoT協定之層L0
。In one example, the
主機裝置151使用識別符、憑證及密鑰作為驗證組件153之輸入,驗證組件153驗證運算裝置141之身份。在一實施例中,驗證組件153使用識別符執行至少一解密操作以提供一結果。比較結果與密鑰以判定運算裝置141之身份是否有效。若有效,則主機裝置151使用自運算裝置141接收之密鑰執行與運算裝置141之進一步通信。例如,一旦主機裝置151已驗證「三元組」(識別符、憑證及密鑰),則密鑰可用於認證在運算裝置141與主機裝置151之間交換的任何其他資訊。The host device 151 uses the identifier, the certificate, and the key as the input of the verification component 153, and the verification component 153 verifies the identity of the computing device 141. In one embodiment, the verification component 153 uses the identifier to perform at least one decryption operation to provide a result. The result is compared with the key to determine whether the identity of the computing device 141 is valid. If it is valid, the host device 151 uses the key received from the computing device 141 to perform further communication with the computing device 141. For example, once the host device 151 has verified the "triple" (identifier, certificate, and key), the key can be used to authenticate any other information exchanged between the computing device 141 and the host device 151.
在一實施例中,將一數位識別賦予諸多「事物」(例如按照物聯網)。在一實例中,事物係一實體物件,諸如一車輛或存在於車輛內部之一實體物品。在一實例中,事物係一人或動物。例如,各人或動物可被賦予一唯一數位識別符。In one embodiment, a number of "things" are assigned to a digital identification (for example, according to the Internet of Things). In one example, the thing is a physical object, such as a vehicle or a physical object existing in the vehicle. In one example, the thing is a person or animal. For example, each person or animal can be assigned a unique digital identifier.
在一些情況中,產品之製造商期望各產品可被證明為真品。當前,此問題藉由僅自一可信賣家購買事物或使用確保所購買之事物係真品之某種合法憑證自其他人購買事物來解決。然而,在盜竊一事物之情況中,若事物不具有一電子身份,則難以阻斷或定位事物使得事物無法不當使用。在一實例中,定位係基於事物試圖與公共基礎設施互動時之身份。在一實例中,阻斷係基於想要使用一公共基礎設施之一事物無法證明身份。In some cases, the manufacturer of the product expects each product to be certified as authentic. Currently, this problem is solved by buying things from only a trusted seller or buying things from other people using some kind of legal certificate to ensure that the things purchased are genuine. However, in the case of theft of a thing, if the thing does not have an electronic identity, it is difficult to block or locate the thing so that the thing cannot be used improperly. In one instance, positioning is based on the identity of the thing when it tries to interact with the public infrastructure. In one instance, the blocking is based on the inability to prove the identity of a thing that wants to use a public infrastructure.
在一實施例中,運算裝置141使用識別組件147實施DICE-RIoT協定以使唯一簽章與對應於運算裝置141之一信任鏈相關聯。運算裝置141建立層L0
及L1
。信任鏈由建立層L2
...之主機裝置151繼續。在一實例中,一唯一識別符可賦予任何界定環境(例如由地理參數界定之一信任區)中之每個物件、人及動物。In one embodiment, the computing device 141 uses the
在一實施例中,運算裝置141係期望被賦予一身份之事物中之一組件。例如,事物可為包含運算裝置141之一自主車輛。例如,運算裝置141可為由車輛之一應用控制器使用之快閃記憶體。In one embodiment, the computing device 141 is a component of things that are expected to be given an identity. For example, the thing may be an autonomous vehicle including the computing device 141. For example, the computing device 141 may be a flash memory used by an application controller of the vehicle.
當製造運算裝置141時,製造商可將一UDS注入至記憶體145中。在一實例中,UDS可與將使用運算裝置141執行額外製造操作之一客戶一致及共用。在另一實例中,UDS可由原始製造商隨機生成且接著使用一安全基礎設施(例如經由一網路,諸如網際網路)傳送至客戶。When manufacturing the computing device 141, the manufacturer can inject a UDS into the
在一實例中,客戶可為併入運算裝置141之一車輛之一製造商。在諸多情況中,車輛製造商期望改變UDS,使得其不被運算裝置141之賣家知道。在此等情況中,客戶可使用由主機裝置151提供至運算裝置141之一鑑別替換命令替換UDS。In one example, the customer may be a manufacturer of a vehicle that incorporates the computing device 141. In many cases, the vehicle manufacturer desires to change the UDS so that it is not known by the seller of the computing device 141. In these cases, the client can replace the UDS with one of the authentication replacement commands provided by the host device 151 to the computing device 141.
在一些實施例中,客戶可將客戶不可變資訊注入至運算裝置141之記憶體145中。在一實例中,不可變資訊用於生成一唯一FDS,且非僅用作為一區分符。客戶不可變資訊用於區分由客戶製造之各種物件。例如,客戶不可變資訊可為字母及/或數字之一組合以界定原始資訊(例如一些或所有以下資訊之一組合:日期、時間、批位置、晶圓位置、一晶圓中之x, y位置等等)。In some embodiments, the customer can inject customer immutable information into the
例如,在諸多情況中,不可變資訊亦包含來自由一使用者(例如自一製造商接收一裝置之一客戶)執行之密碼特徵組態之資料。此組態或設定可僅藉由使用鑑別命令(需要知道待執行之一密鑰之命令)完成。使用者知道密鑰(例如基於自製造商經由一安全基礎設施提供密鑰)。不可變資訊表示一運算裝置之密碼身份之一形式,其不同於裝置之唯一ID (UID)。在一實例中,不可變資訊組中包含密碼組態向使用者提供用於自我客製化不可變資訊之一工具。For example, in many cases, immutable information also includes data from a password feature configuration executed by a user (for example, a customer who receives a device from a manufacturer). This configuration or setting can be done only by using an authentication command (a command that needs to know a key to be executed). The user knows the key (for example, based on the key provided by the manufacturer via a secure infrastructure). Immutable information represents a form of the cryptographic identity of a computing device, which is different from the unique ID (UID) of the device. In one example, the password configuration included in the immutable information group provides users with a tool for self-customizing immutable information.
在一實施例中,運算裝置141包含生成一鮮度之一鮮度機構。鮮度可在發送至主機裝置151時與識別符、憑證及密鑰一起提供。鮮度亦可與主機裝置151之其他通信一起使用。In one embodiment, the computing device 141 includes a freshness mechanism for generating a freshness. The freshness may be provided together with the identifier, the certificate, and the key when it is sent to the host device 151. Freshness can also be used with other communications of the host device 151.
在一實施例中,運算裝置141係一應用板上之一組件。應用板上之另一組件(圖中未展示)可使用裝置秘密149之知識(例如一注入UDS之知識)驗證運算裝置141之身份。組件請求運算裝置141使用一訊息鑑別碼生成一輸出以證明擁有UDS。例如,訊息鑑別碼可為如下:HMAC (UDS, 「應用板訊息|鮮度」)。In one embodiment, the computing device 141 is a component on an application board. Another component on the application board (not shown in the figure) can use the knowledge of the device secret 149 (for example, a knowledge injected into UDS) to verify the identity of the computing device 141. The component requests the computing device 141 to use a message authentication code to generate an output to prove the possession of the UDS. For example, the message authentication code can be as follows: HMAC (UDS, "Application Board Message|Freshness").
在另一實施例中,FDS亦可用作為證明擁有裝置之準則(例如(若干)密鑰之知識)。FDS依此方式自UDS導出:FDS=HMAC-SHA256 [ UDS, SHA256(「L1 之身份」)]。因此,訊息鑑別碼可為如下:HMAC (FDS,「應用板訊息|鮮度」)。In another embodiment, FDS can also be used as a criterion to prove possession of the device (for example, knowledge of key(s)). FDS is derived from UDS in this way: FDS=HMAC-SHA256 [UDS, SHA256 ("L 1 Identity")]. Therefore, the message authentication code can be as follows: HMAC (FDS, "Application Board Message|Freshness").
圖2展示根據一實施例之具有一識別組件107及一驗證組件109之一實例性運算系統。一主機系統101經由一匯流排103與一記憶體系統105通信。記憶體系統105之一處理裝置111讀/寫存取至非揮發性記憶體121之記憶體區域111、113、...、119。在一實例中,主機系統101亦自揮發性記憶體123讀取資料及將資料寫入至揮發性記憶體123。在一實例中,識別組件107支援DICE-RIoT協定之層L0
及L1
。在一實例中,非揮發性記憶體121儲存啟動碼。FIG. 2 shows an example computing system with an
驗證組件109用於驗證記憶體系統105之一身份。驗證組件109使用包含由識別組件107回應於自主機系統101接收一主機訊息而生成之一識別符、憑證及密鑰之三元組,例如上文所描述。The verification component 109 is used to verify the identity of one of the
識別組件107係圖1之識別組件147之一實例。驗證組件109係圖1之驗證組件153之一實例。The
記憶體系統105包含密鑰儲存器157及密鑰生成器159。在一實例中,密鑰儲存器157可儲存根密鑰、會話密鑰、一UDS (DICE-RIoT)及/或用於藉由記憶體系統105之密碼操作之其他密鑰。The
在一實例中,密鑰生成器159生成發送至主機系統101以用於由驗證組件109驗證之一公鑰。發送公鑰作為亦包含一識別符及憑證之三元組之部分,如上文所描述。In an example, the key generator 159 generates a public key that is sent to the
記憶體系統105包含一鮮度生成器155。在一實例中,鮮度生成器155可用於鑑別命令。在一實例中,可使用多個鮮度生成器155。在一實例中,鮮度生成器155可用於由主機系統101使用。The
在一實例中,處理裝置111及記憶體區域111、113、...、119位於相同晶片或晶粒上。在一些實施例中,記憶體區域儲存在機器學習處理期間由主機系統101及/或處理裝置111使用之資料或由執行於主機系統101或處理裝置111上之(若干)軟體程序生成之其他運行時間資料。In one example, the
運算系統可包含記憶體系統105中之一寫入組件,其選擇一記憶體區域111 (例如快閃記憶體之一紀錄片段)用於記錄來自主機系統101之新資料。運算系統100可進一步包含主機系統101中之一寫入組件,其與記憶體系統105中之寫入組件107協調以至少促進選擇記憶體區域111。The computing system may include a writing component in the
在一實例中,揮發性記憶體123用作為主機系統101之一處理裝置(圖中未展示)之系統記憶體。在一實施例中,主機系統101之一程序選擇用於寫入資料之記憶體區域。在一實例中,主機系統101可部分基於來自感測器及/或執行於一自主車輛上之軟體程序之資料選擇一記憶體區域。在一實例中,上述資料由主機系統101提供至選擇記憶體區域之處理裝置111。In one example, the
在一些實施例中,主機系統101或處理裝置111包含識別組件107及/或驗證組件109之至少一部分。在其他實施例中或在組合中,處理裝置111及/或主機系統101中之一處理裝置包含識別組件107及/或驗證組件109之至少一部分。例如,處理裝置111及/或主機系統101之一處理裝置可包含實施識別組件107及/或驗證組件109之邏輯電路。例如,主機系統101之一控制器或處理裝置(例如一CPU、FPGA或GPU)可經組態以執行儲存於記憶體中之指令以執行本文所描述之識別組件107及/或驗證組件109之操作。In some embodiments, the
在一些實施例中,識別組件107以安置於記憶體系統105中之一積體電路晶片實施。在其他實施例中,主機系統101中之驗證組件109係主機系統101之一作業系統、一裝置驅動器或一應用程式之部分。In some embodiments, the
記憶體系統105之一實例係經由一記憶體匯流排連接至一中央處理單元(CPU)之一記憶體模組。記憶體模組之實例包含一雙列直插記憶體模組(DIMM)、一小外型DIMM (SO-DIMM)、一非揮發性雙列直插記憶體模組(NVDIMM)等等。在一些實施例中,記憶體系統可為提供記憶體功能及儲存功能兩者之一混合記憶體/儲存系統。一般而言,一主機系統可利用包含一或多個記憶體區域之一記憶體系統。主機系統可提供儲存於記憶體系統處之資料且可請求自記憶體系統擷取之資料。在一實例中,一主機可存取包含揮發性及非揮發性記憶體之各種類型之記憶體。An example of the
主機系統101可為一運算裝置,諸如一車輛中之一控制器、一網路伺服器、一行動裝置、一蜂巢式電話、一嵌入式系統(例如具有一單晶片系統(SOC)及內部或外部記憶體之一嵌入式系統)或包含一記憶體及一處理裝置之任何運算裝置。主機系統101可包含或耦合至記憶體系統105,使得主機系統101可自記憶體系統105讀取資料或將資料寫入至記憶體系統105。主機系統101可經由一實體主機介面耦合至記憶體系統105。如本文所使用,「耦合至」大體上係指組件之間的一連接,其可為一間接通信連接或直接通信連接(例如無介入組件)(有線或無線),包含諸如電、光學、磁性等等之連接。一實體主機介面之實例包含(但不限於)一串列先進技術附件(SATA)介面、一快速週邊組件互連(PCIe)介面、通用串列匯流排(USB)介面、光纖通道、串列附接SCSI (SAS)、一雙倍資料速率(DDR)記憶體匯流排等等。實體主機介面可用於在主機系統101與記憶體系統105之間傳輸資料。實體主機介面可提供用於在記憶體系統105與主機系統101之間傳遞控制、位址、資料及其他信號之一介面。The
圖2繪示一記憶體系統105作為一實例。一般而言,主機系統101可經由一相同通信連接、多個單獨通信連接及/或通信連接之一組合存取多個記憶體系統。FIG. 2 shows a
主機系統101可包含一處理裝置及一控制器。主機系統101之處理裝置可為(例如)一微處理器、一中央處理單元(CPU)、一處理器之一處理核心、一執行單元等等。在一些例項中,主機系統之控制器可指稱一記憶體控制器、一記憶體管理單元及/或一引發器。在一實例中,控制器經由匯流排103控制主機系統101與記憶體系統105之間的通信。此等通信包含發送用於驗證記憶體系統105之身份之一主機訊息,如上文所描述。The
主機系統101之一控制器可與記憶體系統105之一控制器通信以執行諸如在非揮發性記憶體121之記憶體區域處讀取資料、寫入資料或擦除資料之操作。在一些例項中,控制器整合於處理裝置111之相同封裝內。在其他例項中,控制器與處理裝置111之封裝分離。控制器及/或處理裝置可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體、一快取記憶體或其等之一組合。控制器及/或處理裝置可為一微控制器、專用邏輯電路(例如一場可程式化閘陣列(FPGA)、一專用積體電路(ASIC)等等)或另一適合處理器。A controller of the
在一實施例中,記憶體區域111、113、...、119可包含不同類型之非揮發性記憶體組件之任何組合。另外,記憶體區域之記憶體胞元可分組為記憶體頁面或資料區塊,其可係指用於儲存資料之一單元。在一些實施例中,揮發性記憶體123可為(但不限於)隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)。In an embodiment, the
在一實施例中,記憶體系統105之一或多個控制器可與記憶體區域111、113、...、119通信以執行諸如讀取資料、寫入資料或擦除資料之操作。各控制器可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體或其等之一組合。各控制器可為一微控制器、專用邏輯電路(例如一場可程式化閘陣列(FPGA)、一專用積體電路(ASIC)等等)或另一適合處理器。(若干)控制器可包含經組態以執行儲存於局部記憶體中之指令之一處理裝置(處理器)。在一實例中,控制器之局部記憶體包含一嵌入式記憶體,其經組態以儲存用於執行控制記憶體系統105之操作之各種程序、操作、邏輯流程及常式(包含處置記憶體系統105與主機系統101之間的通信)之指令。在一些實施例中,局部記憶體可包含儲存記憶體指標、找取資料等等之記憶體暫存器。局部記憶體亦可包含用於儲存微碼之唯讀記憶體(ROM)。In one embodiment, one or more controllers of the
一般而言,記憶體系統105之(若干)控制器可自主機系統101及/或處理裝置111接收命令或操作且可將命令或操作轉換為指令或適當命令以達成基於記憶體區域之資料寫入計數器選擇一記憶體區域。控制器亦可負責其他操作,諸如磨損均衡、廢棄項目收集操作、錯誤偵測及錯誤校正碼(ECC)操作、加密操作、快取操作及與記憶體區域相關聯之一邏輯區塊位址與一實體區塊位址之間的位址變換。控制器可進一步包含主機介面電路以經由實體主機介面與主機系統101通信。主機介面電路可將自主機系統接收之命令轉換為命令指令以存取記憶體區域之一或多者及將與記憶體區域相關聯之回應轉換為主機系統101之資訊。Generally speaking, the controller(s) of the
記憶體系統105亦可包含額外電路或組件(圖中未繪示)。在一些實施例中,記憶體系統105可包含一快取或緩衝器(例如DRAM或SRAM)及可自一或多個控制器接收一位址且解碼位址以存取記憶體區域之位址電路(例如一列解碼器及一行解碼器)。The
在一些實施例中,主機系統101或記憶體系統105中之一控制器及/或處理裝置111包含識別組件107及/或驗證組件109之至少一部分。例如,控制器及/或處理裝置111可包含實施識別組件107及/或驗證組件109之邏輯電路。例如,一處理裝置(處理器)可經組態以執行儲存於記憶體中之指令以執行提供識別組件107之記憶體區域之讀/寫存取之操作,如本文所描述。在一些實施例中,驗證組件109係一作業系統、一裝置驅動器或一應用程式之部分。In some embodiments, one of the controller and/or the
圖3展示根據一實施例之一車輛100之一實例性運算裝置。例如,車輛100可為一自主車輛、一非自主車輛、一緊急車輛、一服務車輛或其類似者。FIG. 3 shows an exemplary computing device of a
車輛100包含一車輛運算裝置110,諸如一車載電腦。車輛運算裝置110係圖1之主機裝置151之一實例。在另一實例中,車輛運算裝置110係圖2之主機裝置101之一實例,且記憶體160係記憶體系統105之一實例。The
車輛運算裝置110包含耦合至一車載通信組件130 (諸如一讀取器、寫入器及/或能夠執行下文將描述之功能之其他運算裝置)之一處理器120,車載通信組件130耦合至(或包含)一天線140。車載通信組件130包含耦合至一記憶體160 (諸如一非揮發性快閃記憶體)之一處理器150,但實施例不受限於此一種類之記憶體裝置。The
在一實例中,記憶體160經調適以依使得車輛100能夠在接近一檢查點時藉由使用一通信介面(例如所謂之DICE-RIoT協定)提供此資訊之一方式儲存與車輛有關之所有資訊(例如駕駛員、乘客及所運載之貨物),如下文將描述。In one example, the
在一實例中,車輛資訊(諸如車輛ID/車牌號)已儲存於車輛記憶體160中,且車輛100能夠(例如)透過通信組件130且藉由使用一已知DICE-RIoT協定或一類似協定識別乘客之電子ID及/或所運載之行李、貨物及其類似者之ID,且接著將此資訊儲存於記憶體160中。在一實例中,電子ID、所運輸之行李及貨物集裝箱配備有無線轉發器、NFC、Bluetooth、RFID、無接觸感測器、磁棒及其類似者,且通信組件130可使用讀取器及/或電磁場自此等遠端源獲取所需資訊。In one example, vehicle information (such as vehicle ID/license plate number) has been stored in the
在一實例中,所有乘客ID及/或所運載之行李、貨物及其類似者之ID配備有能夠與一通信組件交換資料之電子裝置。該等電子裝置可為主動或被動元件,就其可為主動而言,因為由電力供應或可由僅在電裝置位於其附近時提供所需供電之一外部供電源啟動及供電。In one example, all passenger IDs and/or IDs of carried luggage, cargo, and the like are equipped with electronic devices capable of exchanging data with a communication component. The electronic devices can be active or passive components, as far as they can be active, because they are powered by electricity or can be activated and powered by an external power source that only provides the required power when the electrical device is located nearby.
租賃車輛或自主車輛可使用讀取器及/或電磁場獲取車輛內部或附近之資訊或作為一替代,可甚至自遠端源接收資訊,例如當一租賃車輛之駕駛員已由於一先前預訂而為租賃系統所知時。當駕駛員過來提車時,可即時執行一進一步檢查。A rental vehicle or autonomous vehicle can use a reader and/or electromagnetic field to obtain information in or near the vehicle or as an alternative, it can even receive information from a remote source, such as when the driver of a rental vehicle has already made a reservation due to a previous reservation. When the rental system is known. When the driver comes to pick up the car, a further inspection can be performed immediately.
類似地,關於由車輛100運載之運輸行李及貨物(及亦關於乘客)之所有資訊可總是維持為最新的。為此,乘客之電子ID及/或所運載之行李及貨物之ID歸因於與行李及貨物相關聯或為乘客(圖中未展示)所有之無線轉發器而即時更新。Similarly, all information about the luggage and cargo (and also about passengers) carried by the
在一實例中,經由DICE-RIoT協定發生車載通信組件130與接近源(例如貨物轉發器及其類似者)之間的通信。In one example, the communication between the in-
在一實例中,車輛運算裝置110可控制車輛100之操作參數,諸如轉向及速度。例如,一控制器(圖中未展示)可耦合至一轉向控制系統170及一速度控制系統180。此外,車輛運算裝置110可耦合至一資訊系統190。資訊系統190可經組態以顯示一訊息(諸如路線資訊或一檢查點安全訊息)且可顯示視覺警告及/或輸出可聽警告。通信組件130可自額外運算裝置(諸如自一外部運算裝置(圖中未展示))接收資訊。In one example, the
圖4展示根據一實施例之具有與一車輛300之一實例性運算裝置通信之一主機裝置350之一實例性系統390。運算裝置包含一被動通信組件310,諸如一短程通信裝置(例如一NFC標籤)。通信組件310可位於車輛300中,車輛300可如圖3中針對車輛100所展示般組態且包含車輛100之組件及通信組件310,通信組件310可組態為車載通信組件130。通信組件310包含一晶片320 (例如實施車輛300之一CPU或應用控制器),其具有儲存關於車輛300之資訊(諸如車輛ID、駕駛員/乘客資訊、所運載之貨物資訊等等)之一非揮發性儲存組件330。通信組件310可包含一天線340。4 shows an
主機裝置350係(例如)一主動通信裝置(例如,其包含一電源供應器),其可自通信組件310接收資訊及/或將資訊傳輸至通信組件310。在一些實例中,主機裝置350可包含一讀取器(例如一NFC讀取器)(諸如一通行費讀取器)或其他組件。主機裝置350可為配置(例如嵌入)於一檢查點附近(例如一信任區之邊界處)或一般而言,有限存取區域附近之一外部裝置。在一些實施例中,主機裝置350亦可由一警察攜帶以用作為一可攜式裝置。The
主機裝置350可包含一處理器360、一記憶體370 (諸如一非揮發性記憶體)及一天線380。記憶體370可包含允許主機裝置350與通信組件310通信之一NFC協定。例如,主機裝置350及通信組件310可使用NFC協定通信,諸如(例如)在約13.56百萬赫茲處且根據ISO/IEC 18000-3國際標準。可使用使用RFID標籤之其他方法。The
主機裝置350亦可與一伺服器或其他運算裝置通信(例如經由一無線網路與一中央操作中心通信)。例如,主機裝置350可無線耦合或硬連線至伺服器或通信中心。在一些實例中,主機裝置350可經由WIFI或經由網際網路與操作中心通信。當車輛300使天線340進入天線380之一通信距離內時,主機裝置350可供能給通信組件310。在一些實例中,主機裝置350可自操作中心接收即時資訊且可將該資訊傳輸至車輛300。在一些實施例中,通信組件310可自身具有電池。The
在一實施例中,主機裝置350經調適以自車輛300讀取資訊/將資訊發送至車輛300,車輛300配備有經組態以允許資訊交換之通信組件310 (例如一主動裝置)。In one embodiment, the
再次參考圖3,車輛100之車載通信組件130可內部起作用以即時拾取關於乘客ID、所運輸之行李及/或貨物之相關資訊(例如當配備有上文相對於圖4所討論之對應無線通信組件時)。車輛之運算裝置可在數米(例如2米至3米)之一空間範圍內偵測資訊,使得可獲取對應於乘客、行李及貨物之所有資料。在一實例中,此發生於車輛接近一特定接近度內之一外部通信組件(例如一伺服器或充當一主機裝置之其他運算裝置)使得通信可開始及/或變強時。通信距離係(例如) 2米至3米。Referring again to FIG. 3, the on-
在一實例中,車載通信組件130可使資料在傳送至外部實體及/或與內部實體通信時加密。在一些情況中,關於所運輸之行李、貨物或甚至乘客之資料可為機密或包含機密資訊(例如一乘客之健康狀態或機密文件或一危險材料)。在此一情況中,期望儲存於與車輛運算裝置相關聯之記憶體部分中之資訊及資料保持為加密資料。In one example, the in-
在下文將討論之各種實施例中,討論用於內部車輛運算裝置與外部實體(例如充當一主機裝置之一伺服器)之間的加密及解密通信之一方法。在一實例中,此方法甚至可應用於內部車輛運算裝置與與車上所搭載之乘客、行李及貨物相關聯之電子組件之間。In various embodiments to be discussed below, a method for encrypting and decrypting communication between an internal vehicle computing device and an external entity (for example, a server serving as a host device) is discussed. In one example, this method can even be applied between the internal vehicle computing device and the electronic components associated with the passengers, luggage, and cargo carried on the vehicle.
在一實例中,車載通信組件130將一車輛公鑰發送至外部通信組件(例如充當一主機裝置151),且外部通信組件將一外部公鑰發送至車載通信組件130。此等公鑰(車輛及外部)可用於加密發送至每個各自通信組件之資料及驗證各通信組件之一身份,且亦交換確認及其他資訊。作為一實例,如下文將進一步描述,車載通信組件130可使用所接收之外部公鑰加密資料且將加密資料發送至外部通信組件。同樣地,外通信組件可使用所接收之車輛公鑰加密資料且將加密資料發送至車載通信組件130。由車輛100發送之資料可包含汽車資訊、乘客資訊、貨物資訊及其類似者。資訊可視情況使用一數位簽章發送以驗證車輛100之一身份。再者,資訊可提供至車輛100且在車輛100之一儀表板上顯示或發送至與車輛100相關聯之一運算裝置(例如監測車輛之一使用者裝置或中心伺服器)之一電子郵件。可基於車輛之一識別、一VIN號等等及一車輛數位簽章辨識車輛。In one example, the in-
在一實例中,車輛與外部實體之間所交換之資料可具有由另一者使用之一鮮度。作為一實例,由車輛發送至外部實體以指示相同指令之資料可在一特定時框之各者或針對所發送之特定資料量更改。此可防止一駭客攔截含於先前發送資料中之機密資訊且再次發送相同資料以導致相同結果。若資料已被略微更改,但仍指示一相同指令,則駭客可在一稍後時間點發送相同資訊,且歸因於接受者預料經更改資料實施相同指令而不會實施相同指令。In an example, the data exchanged between the vehicle and the external entity may have a freshness that is used by the other. As an example, the data sent by the vehicle to the external entity to indicate the same instruction can be changed for each of a specific time frame or for a specific amount of data sent. This prevents a hacker from intercepting the confidential information contained in the previously sent data and sending the same data again to cause the same result. If the data has been slightly changed, but the same command is still instructed, the hacker can send the same information at a later point in time, and the same command will not be executed because the recipient expects the same command to be executed by changing the data.
可使用諸多加密及/或解密方法執行在車輛100與一外部實體(例如一運算系統或裝置)(圖中未展示)之間交換資料,如下文將描述。資料之安全可確保防止未授權活動干擾車輛100及外部實體之操作。Many encryption and/or decryption methods can be used to exchange data between the
圖5A展示根據一實施例之生成包含發送至一主機裝置之一識別符、憑證及密鑰之三元組之一應用板。主機裝置使用三元組驗證應用板之一身份。應用板係圖1之運算裝置141之一實例。主機裝置係圖1之運算裝置151之一實例。FIG. 5A shows an application board that generates a triple including an identifier, a credential, and a key sent to a host device according to an embodiment. The host device uses triples to verify the identity of one of the application boards. The application board is an example of the computing device 141 in FIG. 1. The host device is an example of the computing device 151 in FIG. 1.
在一實施例中,應用板及主機包含使用一裝置識別組合引擎(DICE)-穩健物聯網(RIoT)協定執行通信之加密及/或解密操作(例如關於資訊及資料)之通信組件。在一實例中,DICE-RIoT協定應用於車載通信組件與一外部通信組件之間的通信及在車載通信組件與各種無線電子裝置(其與乘客ID、行李、貨物及其類似者之各者相關聯)之間的車輛環境內部執行之一通信。In one embodiment, the application board and the host include a communication component that uses a device recognition combination engine (DICE)-Robust Internet of Things (RIoT) protocol to perform communication encryption and/or decryption operations (for example, information and data). In one example, the DICE-RIoT protocol is applied to the communication between the in-vehicle communication component and an external communication component, and the in-vehicle communication component and various wireless electronic devices (which are related to each of the passenger ID, luggage, cargo, and the like) One of the communication is performed within the vehicle environment.
圖5B展示根據一實施例之在使用層之階段中啟動之一實例性運算系統。系統包含根據本發明之一實施例之一外部通信組件430'及一車載通信組件430''。當車輛靠近外部實體或在其附近時,車輛之相關聯車載通信組件430''可(例如)使用一感測器(例如一射頻識別感測器或RFID或其類似者)與外部實體交換資料,如上文所描述。FIG. 5B shows an example computing system activated in the stage of using the layer according to an embodiment. The system includes an external communication component 430' and an in-
在其他實施例中,組件430'可為位於一車輛中之一應用板,且組件430''可為亦位於車輛中之一主機裝置,其使用DICE-RIoT協定驗證組件430'之一身份(例如上文相對於圖1所討論)。In other embodiments, the component 430' can be an application board located in a vehicle, and the
在一實施例中,DICE-RIoT協定由一運算裝置用於在使用層之階段中啟動,其中各層鑑別及加載一後續層且在各層處提供越來越複雜運行時間服務。因此,一層可由一先前層服務且服務一後續層以藉此產生累積於下層上且服務較階層之層之一互連網頁。替代地,可使用其他協定替代DICE-RIoT協定。In one embodiment, the DICE-RIoT protocol is used by a computing device to start in the stage of using layers, where each layer identifies and loads a subsequent layer and provides increasingly complex runtime services at each layer. Therefore, a layer can be served by a previous layer and a subsequent layer can be served to thereby generate one of the interconnected web pages that accumulate on the lower layer and serve the higher layer. Alternatively, other protocols can be used to replace the DICE-RIoT protocol.
在通信協定之一實例性實施方案中,通信協定之安全係基於一秘密值,其係在製造期間(或亦稍後)設定之一裝置秘密(例如一UDS)。裝置秘密UDS存在於裝置秘密UDS供應於其上之裝置內(例如儲存為圖1之裝置秘密149)。In an exemplary implementation of the communication protocol, the security of the communication protocol is based on a secret value, which is a device secret (such as a UDS) set during manufacturing (or later). The device secret UDS exists in the device on which the device secret UDS is supplied (for example, stored as the device secret 149 of FIG. 1).
裝置秘密UDS可在啟動時間存取至第一階段基於ROM之啟動加載程式。接著,系統提供使裝置秘密在下一啟動循環之前無法存取之一機制,且僅啟動加載程式(例如啟動層)可永遠存取裝置秘密UDS。因此,在此方法中,啟動在以裝置秘密UDS開始之一特定架構中分層。The device secret UDS can be accessed to the first stage ROM-based boot loader at boot time. Then, the system provides a mechanism to make the device secret inaccessible before the next boot cycle, and only the boot loader (such as the boot layer) can permanently access the device secret UDS. Therefore, in this method, the activation is layered in a specific architecture starting with the device secret UDS.
如圖5B中所繪示,層0 L0 及層1 L1 位於外部通信組件430'內。層0 L0 可提供一融合衍生秘密FDS密鑰至層1 L1 。FDS密鑰可基於層1 L1 中之代碼之識別及其他安全相關資料。一特定協定(諸如穩健物聯網(RIoT)核心協定)可使用FDS驗證其加載之層1 L1 之核心。在一實例中,特定協定可包含一裝置識別組合引擎(DICE)及/或RIoT核心協定。作為一實例,FDS可包含一層1 L1 韌體影像本身、加密識別授權層1 L1 韌體之一顯示、一安全啟動實施之背景中之有符號韌體之一韌體版本號及/或裝置之安全-關鍵組態設定。裝置秘密UDS可用於產生FDS,且儲存於外通信組件之記憶體中。因此,層0 L0 從不揭露實際裝置秘密UDS且其提供一衍生密鑰(例如FDS密鑰)至啟動鏈中之下一層。As shown in FIG. 5B, layer 0 L 0 and layer 1 L 1 are located in the external communication component 430'. Layer 0 L 0 can provide a fusion derived secret FDS key to layer 1 L 1 . The FDS key can be based on the identification of the code in layer 1 L 1 and other security-related information. A specific protocol (such as the Robust Internet of Things (RIoT) core protocol) can use FDS to verify the core of the layer 1 L 1 it loads. In one example, the specific protocol may include a device identification combination engine (DICE) and/or RIoT core protocol. As an example, FDS may include a layer of 1 L 1 firmware image itself, a display of one of the encrypted identification authorization layer 1 L 1 firmware, a firmware version number of a signed firmware in the background of a secure boot implementation, and/or Safety-critical configuration settings of the device. The device secret UDS can be used to generate FDS and stored in the memory of the external communication component. Therefore, layer 0 L 0 never reveals the actual device secret UDS and it provides a derived key (such as an FDS key) to the next layer in the boot chain.
外部通信組件430'經調適以傳輸資料(如由箭頭410'所繪示)至車載通信組件430''。所傳輸之資料可包含係一公共外部識別、一憑證(例如一外部識別憑證)及/或一外部公鑰,如將結合圖6繪示。車載通信組件430''之層2 L2
可接收所傳輸之資料,在作業系統OS (例如一第一應用程式App1
及一第二應用程式App2
上)之操作中執行資料。The external communication component 430' is adapted to transmit data (as shown by the arrow 410') to the
同樣地,車載通信組件430''可傳輸資料(如由箭頭410''所繪示),其包含一公共車輛識別、一憑證(例如一車輛識別憑證)及/或一車輛公鑰。作為一實例,在鑑別之後(例如在驗證憑證之後),車載通信組件430''可發送一車輛識別號VIN以進一步鑑別、識別及/或驗證車輛。Similarly, the in-
如圖5B及圖6中所展示,在一實例性操作中,外部通信組件430'可讀取裝置秘密DS,雜湊層1 L1 之一身份,且執行以下計算:As shown in FIG. 5B and FIG. 6, in an example operation, the external communication component 430' can read the device secret DS, an identity of the hash layer 1 L 1 , and perform the following calculations:
FDS=KDF [UDS, 雜湊(「不可變資訊」)]FDS=KDF [UDS, hash ("immutable information")]
其中KDF係一密碼單向密鑰導出函數(例如HMAC-SHA256)。在上述計算中,雜湊可為任何密碼基元,諸如SHA256、MD5、SHA3等等。KDF is a cryptographic one-way key derivation function (such as HMAC-SHA256). In the above calculation, the hash can be any cryptographic primitive, such as SHA256, MD5, SHA3, and so on.
在至少一實例中,車輛可使用一匿名登錄或一鑑別登錄之任一者通信。鑑別登錄可允許車輛獲得在一匿名模式中通信時無法存取之額外資訊。在至少一實例中,鑑別可包含提供車輛識別號VIN及/或鑑別資訊,諸如公鑰之一交換,如下文將描述。在匿名模式及鑑別模式之任一者中,外部實體(例如一信任區之一邊界處之一檢查點警察)可與車輛通信以將與外部實體相關聯之外部公鑰提供至車輛。In at least one example, the vehicle can communicate using either an anonymous login or an authenticated login. The authentication log allows the vehicle to obtain additional information that cannot be accessed when communicating in an anonymous mode. In at least one example, authentication may include providing a vehicle identification number VIN and/or authentication information, such as an exchange of a public key, as described below. In either of the anonymous mode and the authentication mode, an external entity (such as a checkpoint police at a border of a trusted zone) can communicate with the vehicle to provide an external public key associated with the external entity to the vehicle.
圖6展示根據一實施例之使用非對稱生成器生成一識別符、憑證及密鑰之一實例性運算裝置。在一實施例中,運算裝置實施一程序以判定參數(例如在一外部裝置之層L1 內或在替代實施例中,在一內部運算裝置之層L1 內)。FIG. 6 shows an exemplary computing device that uses an asymmetric generator to generate an identifier, credential, and key according to an embodiment. In one embodiment, the arithmetic apparatus according to a program to determine parameters (e.g., a layer L 1 of an external device or alternative embodiments, L 1 in the inner layer of the apparatus in an internal operation).
在一實施例中,判定包含接著發送(如由箭頭510'所指示)至車載通信組件(例如參考圖5B中之430'')之層2 L2
之外部公共識別、外部憑證及外部公鑰之參數。圖6之箭頭510'及510''分別對應於圖5B之箭頭410'及410''。另外,圖6中之層對應於圖5B之層。In one embodiment, the determining comprises transmitting followed (e.g., 510 'indicated to the vehicle communications component (e.g., with reference to the FIG. 5B by arrow 430)'') of the outer layer 2 L 2 is identified in common, the external public key certificates and external The parameters.
在另一實施例中,來自主機裝置之一訊息(「主機訊息」)藉由型樣(資料)合併531與外部公鑰合併以提供合併資料用於加密。合併資料係加密器530之一輸入。在一實例中,主機訊息與外部公鑰串連。所生成之參數包含發送至一主機裝置且用於驗證一運算裝置之一身份之三元組。例如,外部公共識別、外部憑證及外部公鑰由主機裝置之一驗證組件用於驗證身份。在一實例中,主機裝置係圖1之主機裝置151。In another embodiment, a message from the host device ("host message") is merged with an external public key by pattern (data) merge 531 to provide merged data for encryption. The combined data is input by one of the
如圖6中所展示,來自層0 L0之FDS發送至層1 L1
且由一非對稱ID生成器用於生成一公共識別IDlkpublic及一私密識別IDlkprivate。在縮寫「IDlkpublic」中,「lk」指示一通用層k (在此實例中,層1 L1
),且「public」指示識別被公開共用。公共識別IDlkpublic繪示為由延伸至外部通信組件之層1 L1
右邊及外部之箭頭共用。所生成之私密識別IDlkprivate用作為至一加密器530中之一密鑰輸入。加密器530可為(例如)用於加密資料之任何處理器、運算裝置等等。Shown in Figure 6,
外部通信組件之層1 L1
可包含一非對稱密鑰生成器540。在至少一實例中,一隨機數生成器RND可視情況將一隨機數輸入至非對稱密鑰生成器540中。非對稱密鑰生成器540可生成與一外部通信組件(諸如圖5B中之外部通信組件430')相關聯之一公鑰KLkpublic (指稱一外部公鑰)及一私鑰KLkprivate (指稱一外部私鑰)。The layer 1 L 1 of the external communication component may include an asymmetric
外部公鑰KLkpublic可為至加密器530中之一輸入(作為「資料」)。如上文所提及,在一些實施例中,先前自主機裝置接收作為一身份驗證程序之部分之一主機訊息與KLkpublic合併以提供合併資料作為加密器530之輸入資料。The external public key KLkpublic can be input to one of the encryptors 530 (as "data"). As mentioned above, in some embodiments, the host message previously received from the host device as part of an authentication process is combined with KLkpublic to provide the combined data as the input data of the
加密器530可使用外部私密識別IDlkprivate及外部公鑰KLkpublic之輸入生成一結果K'。外部公鑰KLkprivate及結果K'可輸入至一額外加密器550中以導致輸出K''。輸出K''係傳輸至層2 L2
(或替代地,傳輸至驗證身份之一主機裝置)之外部憑證IDL1certificate。外部憑證IDL1certificate可提供驗證及/或鑑別自一裝置發送之資料之一起源之一能力。作為一實例,自外部通信組件發送之資料可藉由驗證憑證來與外部通信組件之一身份相關聯,如將結合圖7進一步描述。此外,外部公鑰KL1public key可傳輸至層2 L2
。因此,外部通信組件之公共識別IDl1public、憑證IDL1certificate及外部公鑰KL1public key可傳輸至車載通信組件之層2 L2
。The
圖7展示根據一實施例之使用解密操作驗證一運算裝置之身份之一驗證組件。驗證組件包含解密器730、750。驗證組件實施一程序以根據本發明之一實施例驗證一憑證。FIG. 7 shows a verification component that uses a decryption operation to verify the identity of a computing device according to an embodiment. The verification component includes
在圖7所繪示之實例中,一公鑰KL1public、一憑證IDL1certificate及一公共識別IDL1public自外部通信組件(例如自圖5B中之外部通信組件430'之層1 L1 )提供。In the example shown in FIG. 7, a public key KL1public, a certificate IDL1certificate, and a public identification IDL1public are provided from an external communication component (for example, from the layer 1 L 1 of the external communication component 430' in FIG. 5B).
憑證IDL1certificate及外部公鑰KL1public之資料可用作為至解密器730中之輸入。解密器730可為用於解密資料之任何處理器、運算裝置等等。憑證IDL1certificate及外部公鑰KL1public之解密結果可與公共識別IDL1public一起用作為至解密器750中之一輸入以導致一輸出。如區塊760中所繪示,外部公鑰KL1public及來自解密器750之輸出可指示是否驗證憑證以導致一「是」或「否」作為一輸出。私鑰與單一層相關聯且一特定憑證僅可由一特定層生成。The information of the certificate IDL1certificate and the external public key KL1public can be used as input to the
回應於驗證憑證(例如在鑑別之後),可接受、解密及/或處理自經驗證之裝置接收之資料。回應於未驗證憑證,可捨棄、移除及/或忽略自經驗證之裝置接收之資料。依此方式,可偵測及避免發送惡毒資料之未授權裝置。作為一實例,可識別發送待處理資料之一駭客且不處理駭侵資料。In response to the verification certificate (for example, after authentication), the data received from the verified device can be accepted, decrypted, and/or processed. In response to an unverified certificate, you can discard, remove, and/or ignore the data received from the verified device. In this way, unauthorized devices that send malicious data can be detected and avoided. As an example, it is possible to identify a hacker who sends one of the data to be processed and does not process the hacking data.
在一替代實施例中,公鑰KL1public、一憑證IDL1certificate及一公共識別IDL1public自圖1之運算裝置141或自圖2之記憶體系統105提供。此三元組由運算裝置141回應於自主機裝置接收一主機訊息而生成。在提供IDL1certificate作為解密器730之一輸入之前,IDL1certificate及來自主機裝置之一訊息(「主機訊息」)由型樣(資料)合併731合併。在一實例中,合併係資料之一串連。合併資料提供為解密器730之輸入。接著,驗證程序依其他方式進行,如上文所描述。In an alternative embodiment, the public key KL1public, a certificate IDL1certificate, and a public identification IDL1public are provided from the computing device 141 in FIG. 1 or from the
圖8展示根據一實施例之驗證一憑證之一實例性程序之一方塊圖。在其中一裝置發送可經驗證以避免後續否認之資料之情況中,一簽章可生成且與資料一起發送。作為一實例,一第一裝置可向一第二裝置提出一請求,且一旦第二裝置執行請求,則第一裝置可指示第一裝置從未提出過此一請求。一防否認方法(諸如使用一簽章)可避免由第一裝置否認且確保第二裝置可在無後續困難之情況下執行請求任務。FIG. 8 shows a block diagram of an exemplary procedure for verifying a certificate according to an embodiment. In the case where a device sends data that can be verified to avoid subsequent denial, a signature can be generated and sent with the data. As an example, a first device can make a request to a second device, and once the second device executes the request, the first device can indicate that the first device has never made such a request. An anti-repudiation method (such as using a signature) can avoid denial by the first device and ensure that the second device can perform the requested task without subsequent difficulties.
一車輛運算裝置810'' (例如圖3中之車輛運算裝置110或圖1之運算裝置141)可將資料Dat''發送至一外部運算裝置810' (或一般發送至任何其他運算裝置)。車輛運算裝置810''可使用車輛私鑰KLkprivate生成一簽章Sk。簽章Sk可傳輸至外部運算裝置810'。外部運算裝置810'可使用資料Dat'及先前所接收之公鑰KLkpublic (例如車輛公鑰)驗證。依此方式,簽章驗證藉由使用一私鑰加密簽章且使用一公鑰解密簽章來操作。依此方式,各裝置之一唯一簽章可對發送簽章之裝置保密,同時允許接收裝置能夠解密簽章用於驗證。此與資料之加密/解密形成對比,其由發送裝置使用接收裝置之公鑰加密且由接收裝置使用接收器之私鑰解密。在至少一實例中,車輛可藉由使用一內部密碼程序(例如橢圓曲線數位簽章(ECDSA)或一類似程序)來驗證數位簽章。A
歸因於憑證及公鑰之交換及驗證,裝置能夠依一安全方式彼此通信。當一車輛接近一外部實體(例如一信任區邊界、一邊界安全實體或一般為一電子控制主機裝置)時,各自通信裝置(其具有驗證各自憑證之圖7中所展示之能力)交換憑證且彼此通信。在鑑別之後(例如在自外部實體接收/驗證憑證及公鑰之後),車輛因此能夠傳送與之有關且儲存於其記憶體中之所有所需資訊,諸如車牌號/ID、VIN、保險號、駕駛員資訊(例如ID、邊界過渡之最終許可)、乘客資訊、所運輸之貨物資訊及其類似者。接著,在檢查所接收之資訊之後,外部實體將過渡請求之結果傳送至車輛,此資訊可能使用接收器之公鑰加密。交換訊息/資訊可使用上述DICE-RIoT協定加密/解密。在一些實施例中,所謂之不可變資訊(諸如車牌號/ID、VIN、保險號)未加密,而其他資訊加密。換言之,在交換訊息中,可存在未加密資料及加密資料:資訊因此可加密或不加密或混合。接著,藉由使用憑證/公鑰驗證訊息之內容有效來確保訊息之正確性。Due to the exchange and verification of certificates and public keys, devices can communicate with each other in a secure manner. When a vehicle approaches an external entity (such as a trusted zone boundary, a border security entity, or generally an electronic control host device), the respective communication devices (which have the ability to verify the respective certificates shown in Figure 7) exchange certificates and Communicate with each other. After authentication (for example, after receiving/verifying the certificate and public key from an external entity), the vehicle can therefore transmit all required information related to it and stored in its memory, such as license plate number/ID, VIN, insurance number, Driver information (such as ID, final permission for border transition), passenger information, cargo information and the like. Then, after checking the received information, the external entity sends the result of the transition request to the vehicle. This information may be encrypted with the public key of the receiver. The exchange of messages/information can be encrypted/decrypted using the aforementioned DICE-RIoT protocol. In some embodiments, so-called immutable information (such as license plate number/ID, VIN, insurance number) is not encrypted, and other information is encrypted. In other words, in the exchange of messages, there can be unencrypted data and encrypted data: information can therefore be encrypted or unencrypted or mixed. Then, the correctness of the message is ensured by using the certificate/public key to verify that the content of the message is valid.
圖9展示根據一實施例之使用一識別符、憑證及一密鑰驗證一運算裝置之一身份之一方法。例如,圖9之方法可以圖1至圖7之系統實施。FIG. 9 shows a method of verifying the identity of an computing device using an identifier, a certificate, and a key according to an embodiment. For example, the method of FIG. 9 can be implemented in the system of FIG. 1 to FIG. 7.
圖9之方法可由可包含硬體(例如處理裝置、電路、專用邏輯、可程式化邏輯、微碼、一裝置之硬體、積體電路等等)、軟體(例如在一處理裝置上運行或執行之指令)或其等之一組合之處理邏輯執行。在一些實施例中,圖9之方法至少部分由圖1之識別組件147及驗證組件151執行。The method of FIG. 9 may include hardware (such as processing devices, circuits, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuits, etc.), software (such as running on a processing device or The executed instruction) or a combination of processing logic is executed. In some embodiments, the method of FIG. 9 is at least partially executed by the
儘管依一特定序列或順序展示,但除非另有指定,否則可修改程序之順序。因此,所繪示之實施例應僅被理解為實例,且所繪示之程序可依一不同順序執行,且一些程序可並行執行。另外,可在各種實施例中省略一或多個程序。因此,並非每個實施例中需要所有程序。其他程序流程係可行的。Although shown in a specific sequence or order, unless otherwise specified, the order of the program can be modified. Therefore, the illustrated embodiments should only be understood as examples, and the illustrated procedures may be executed in a different order, and some procedures may be executed in parallel. In addition, one or more procedures may be omitted in various embodiments. Therefore, not all procedures are required in every embodiment. Other procedures are feasible.
在區塊921中,自一主機裝置接收一訊息。例如,運算裝置141自主機裝置151接收一訊息(例如「主機訊息」或「主機訊息|鮮度」)。In
在區塊923中,生成一識別符、一憑證及一密鑰(例如一公鑰KL1 public)。識別符與一運算裝置之一身份相關聯。憑證使用來主機裝置之訊息(例如「主機訊息」)生成。在一實施例中,訊息在加密之前與公鑰合併。此加密使用私密識別符IDL1 private作為一密鑰。私密識別符IDL1 private與公共識別符IDL1 public相關聯(例如由非對稱ID生成器520生成之一相關聯對)。In block 923, an identifier, a certificate, and a secret key (for example, a public key K L1 public) are generated. The identifier is associated with an identity of a computing device. The certificate is generated using the message from the host device (such as "host message"). In one embodiment, the message is combined with the public key before encryption. This encryption uses the private identifier ID L1 private as a key. The private identifier ID L1 private is associated with the public identifier ID L1 public (for example, an associated pair generated by the asymmetric ID generator 520).
在一實例中,識別組件147生成識別符、憑證及密鑰來提供三元組。在一實例中,基於DICE-RIoT協定生成三元組。在一實例中,如圖6中所繪示般生成三元組。In one example, the
在一實例中,使用DICE-RIoT協定,各層(Lk )將一組密鑰及憑證提供至下一層(Lk+1 ),且各憑證可由接收層驗證。融合衍生秘密(FDS)計算如下: FDS=HMAC-SHA256 [UDS, SHA256(「L1 之身份」)]In one example, using the DICE-RIoT protocol, each layer (L k ) provides a set of keys and certificates to the next layer (L k+1 ), and each certificate can be verified by the receiving layer. The Fusion Derived Secret (FDS) is calculated as follows: FDS=HMAC-SHA256 [UDS, SHA256(" identity of L 1 ")]
在一實例中,一DICE-RIoT架構中之層1 L1 使用由主機裝置發送之一主機訊息生成憑證。層1將兩個相關聯密鑰對計算如下: (IDlk public , IDlk private )及(KLk public , KLk private )In one example, a DICE-RIoT architecture of layer 1 L 1 using the credentials generated by one of the host device sending host message. Layer 1 calculates the two associated key pairs as follows: (ID lk public , ID lk private ) and (KL k public , KL k private )
層1亦將兩個簽章計算如下: K'=加密(IDlk private , KLk public |主機訊息) K''=加密(KLk private , K')Layer 1 also calculates the two signatures as follows: K'=encryption (ID lk private , KL k public | host message) K''=encryption (KL k private , K')
自上述處理,層1將三元組提供如下: KL1 ={IDL1 public , IDL1 憑證, KL1 public } 更具體而言,各層將三元組提供如下: KLk ={密鑰及憑證之組},其中k=1:N 使用各自三元組,各層能夠向下一層證明其身份。Since the above processing, layer 1 provides triples as follows: K L1 = {ID L1 public , ID L1 credential, K L1 public } More specifically, each layer provides triples as follows: K Lk = {key and credential The group}, where k=1:N uses their own triples, and each layer can prove its identity to the next layer.
在一實例中,層2對應於應用韌體,且後續層對應於一作業系統及/或主機裝置之應用程式。In one example, layer 2 corresponds to application firmware, and subsequent layers correspond to an application program of an operating system and/or host device.
在區塊925中,將所生成之識別符、憑證及密鑰發送至主機裝置。主機裝置使用識別符、憑證及密鑰驗證運算裝置之身份。在一實例中,主機裝置151自運算裝置141接收識別符、憑證及密鑰。主機裝置151使用驗證組件153驗證運算裝置之身份。In block 925, the generated identifier, certificate, and key are sent to the host device. The host device uses the identifier, certificate, and key to verify the identity of the computing device. In an example, the host device 151 receives the identifier, the credential, and the key from the computing device 141. The host device 151 uses the verification component 153 to verify the identity of the computing device.
在一實例中,驗證組件153執行解密操作作為驗證程序之部分。解密包含在使用自運算裝置141接收之密鑰解密之前合併來自主機之訊息與憑證。在一實例中,如圖7中所繪示般執行運算裝置之身份之驗證。In one example, the verification component 153 performs a decryption operation as part of the verification process. Decryption includes combining the message and certificate from the host before decryption using the key received by the self-calculating device 141. In one example, the verification of the identity of the computing device is performed as shown in FIG. 7.
在一實例中,解密操作執行如下: 使用KL1 public 解密(IDL1 certificate)以提供K' 使用IDL1 public 解密K'以提供結果 比較結果與KL1 public 。若結果等於KL1 public ,則驗證身份。在一實例中,驗證一應用板身份。In an example, the decryption operation is performed as follows: Use KL 1 public to decrypt (ID L1 certificate) to provide K'Use ID L1 public to decrypt K'to provide the result of comparison with KL 1 public . If the result is equal to KL 1 public , the identity is verified. In one example, the identity of an application board is verified.
在一實例中,證明一人或動物之一身份。類似於驗證一運算裝置141之身份(如上文所描述)般執行一人之身份之驗證。在一實例中,運算裝置141整合至一人之一護照中。已發放護照之一國家之一公共行政部門可使用專用於一類文件(例如駕照、護照、ID卡等等)之一UDS。例如,義大利西西里美西納護照局之UDS=0x12234...4444。德國巴伐利亞慕尼黑護照局之UDS=0xaabb...00322。In one example, the identity of a person or one of the animals is proved. Similar to the verification of the identity of a computing device 141 (as described above), the verification of the identity of a person is performed. In one example, the computing device 141 is integrated into a passport of one person. A public administration in a country that has issued a passport can use a UDS dedicated to a type of document (such as a driver’s license, passport, ID card, etc.). For example, the UDS of the Messina Passport Office in Sicily, Italy = 0x12234...4444. UDS=0xaabb...00322 of the Munich Passport Office of Bavaria, Germany.
在關於護照之一實例中,L1之身份係如下ASCII串: 國家|文件類型|等等(例如「義大利西西里美西納護照局」) 分配之「粒度」可由各國之公共行政判定。In an example of a passport, the identity of L1 is the following ASCII string: Country|Document Type|etc (e.g. "Italy, Sicily, Messina Passport Office") The "granularity" of the distribution can be determined by the public administration of each country.
圖9之方法之各種實施例提供各種優點。例如,一事物可經識別及認證為由一特定工廠而非使用一第三方密鑰基礎設施生產(例如PKI=公鑰基礎設施)。歸因於受重播保護而防止中間惡意或駭客攻擊。方法可用於大量生產事物。Various embodiments of the method of Figure 9 provide various advantages. For example, a thing can be identified and authenticated as being produced by a specific factory instead of using a third-party key infrastructure (for example, PKI=Public Key Infrastructure). Prevent malicious or hacking attacks due to being protected by replays. The method can be used for mass production of things.
此外,客戶UDS受硬體級保護(例如無法在組件外部存取層0)。UDS無法由任何人讀取,但其可被替換(例如,僅客戶可藉由使用一安全協定來如此做)。安全協定之實例包含基於鑑別重播保護命令及/或秘密共用演算法(如迪菲-赫爾曼(Diffie-Hellman)(例如ECDH橢圓曲線迪菲-赫爾曼))之安全協定。在一實例中,藉由使用安全基礎設施將UDS傳送至客戶(而非終端使用者)。UDS可由客戶客製化。In addition, the client UDS is protected at the hardware level (for example,
另外,組件辨識可在無一網際網路或其他網路連接之情況下工作。另外,方法可用於輕鬆檢查一信任區邊界(例如一國界、內部檢查點等等)處之事物、動物及人類之身份。In addition, component identification can work without an Internet or other network connection. In addition, the method can be used to easily check the identity of things, animals, and humans at the borders of a trust zone (such as a national border, internal checkpoints, etc.).
在一實例中,UDS之知識容許主機裝置安全替換UDS。例如,可在以下情況下進行替換:主機期望改變一事物之身份或主機期望其他任何人(包含原製造商)不知道事物之身份。In one example, the knowledge of UDS allows the host device to safely replace the UDS. For example, it can be replaced in the following situations: the host expects to change the identity of a thing or the host expects that anyone else (including the original manufacturer) does not know the identity of the thing.
在另一實例中,一替換命令由主機裝置使用。例如,主機裝置可將一替換UDS命令發送至運算裝置。替換命令包含既有UDS及賦予運算裝置之新UDS。在一實例中,替換命令具有包含如下之一雜湊值之一欄位:雜湊(既有UDS|新UDS)。In another example, a replacement command is used by the host device. For example, the host device can send a replacement UDS command to the computing device. The replacement command includes the existing UDS and the new UDS assigned to the computing device. In one example, the replacement command has a field containing one of the following hash values: hash (existing UDS|new UDS).
在另一實例中,使用具有如下之一欄位之一鑑別重播保護命令:Replace_command|鮮度|簽章 其中簽章=MAC[密鑰, Replace_command|鮮度|雜湊(既有UDS|新UDS)] 密鑰係一額外密鑰且係用於存在於裝置上之鑑別命令之密鑰。例如,密鑰可為一會話密鑰,如下文將描述(例如參閱圖12)。In another example, one of the following fields is used to identify the replay protection command: Replace_command|Freshness|Signature Where signature=MAC[key, Replace_command|freshness|hash (existing UDS|new UDS)] The key is an additional key and is a key used for authentication commands existing on the device. For example, the key may be a session key, as will be described below (for example, refer to FIG. 12).
在一實施例中,一方法包括:由一運算裝置(例如運算裝置141)自一主機裝置(例如主機裝置151)接收一訊息;由運算裝置生成一識別符、一憑證及一密鑰,其中識別符與運算裝置之一身份相關聯,且憑證使用訊息生成;及由運算裝置將識別符、憑證及密鑰發送至主機裝置,其中主機裝置經組態以使用識別符、憑證及密鑰驗證運算裝置之身份。In one embodiment, a method includes: receiving a message from a host device (such as host device 151) by a computing device (such as computing device 141); generating an identifier, a certificate, and a key by the computing device, wherein The identifier is associated with an identity of the computing device, and a certificate use message is generated; and the computing device sends the identifier, certificate, and key to the host device, where the host device is configured to use the identifier, certificate, and key to verify The identity of the computing device.
在一實施例中,驗證運算裝置之身份包括串連訊息及憑證以提供第一資料。In one embodiment, the verification of the identity of the computing device includes a concatenated message and a certificate to provide the first data.
在一實施例中,驗證運算裝置之身份進一步包括使用密鑰解密第一資料以提供第二資料。In one embodiment, verifying the identity of the computing device further includes using a key to decrypt the first data to provide the second data.
在一實施例中,驗證運算裝置之身份進一步包括使用識別符解密第二資料以提供一結果及比較結果與密鑰。In one embodiment, verifying the identity of the computing device further includes using the identifier to decrypt the second data to provide a result and a comparison result and a key.
在一實施例中,識別符係一公共識別符,且運算裝置儲存一密鑰,方法進一步包括:使用密鑰作為一訊息鑑別碼之一輸入以生成一衍生秘密;其中公共識別符使用衍生秘密生成為一非對稱生成器之一輸入。In one embodiment, the identifier is a public identifier, and the computing device stores a secret key. The method further includes: using the secret key as an input of a message authentication code to generate a derived secret; wherein the public identifier uses the derived secret Generated as an input of an asymmetric generator.
在一實施例中,識別符係一第一公共識別符,且運算裝置儲存用於生成第一公共識別符之一第一裝置秘密,方法進一步包括:自主機裝置接收一替換命令;回應於接收替換命令,將第一裝置秘密替換為一第二裝置秘密;及將使用第二裝置秘密生成之一第二公共識別符發送至主機裝置。In one embodiment, the identifier is a first public identifier, and the computing device stores a first device secret used to generate the first public identifier. The method further includes: receiving a replacement command from the host device; and responding to receiving The replacement command replaces the first device secret with a second device secret; and sends a second public identifier generated using the second device secret to the host device.
在一實施例中,密鑰係一公鑰,且生成憑證包含串連訊息與公鑰以提供用於加密之一資料輸入。In one embodiment, the key is a public key, and the generated certificate includes a concatenated message and the public key to provide a data input for encryption.
在一實施例中,識別符係一公共識別符,且一第一非對稱生成器生成公共識別符及一私密識別符作為一相關聯對;密鑰係一公鑰,且一第二非對稱生成器生成公鑰及一私鑰作為一相關聯對;且生成憑證包括:串連訊息與公鑰以提供第一資料;使用私密識別符加密第一資料以提供第二資料;及使用私鑰加密第二資料以提供憑證。In one embodiment, the identifier is a public identifier, and a first asymmetric generator generates a public identifier and a private identifier as an associated pair; the key is a public key, and a second asymmetric The generator generates a public key and a private key as an associated pair; and generating a certificate includes: concatenating the message and the public key to provide the first data; encrypting the first data with a private identifier to provide the second data; and using the private key Encrypt the second data to provide credentials.
在一實施例中,密鑰係一公鑰,方法進一步包括生成一隨機數作為一非對稱密鑰生成器之一輸入,其中公鑰及一相關聯私鑰使用非對稱密鑰生成器生成。In one embodiment, the key is a public key, and the method further includes generating a random number as an input of an asymmetric key generator, wherein the public key and an associated private key are generated using the asymmetric key generator.
在一實施例中,隨機數使用一物理不可複製功能(PUF)生成。In one embodiment, the random number is generated using a physical uncopyable function (PUF).
在一實施例中,一系統包括:至少一處理器;及記憶體,其含有指令,指令經組態以指示至少一處理器:將一訊息發送至一運算裝置;自運算裝置接收一識別符、一憑證及一密鑰,其中識別符與運算裝置之一身份相關聯,且憑證由運算裝置使用訊息生成;及使用識別符、憑證及密鑰驗證運算裝置之身份。In one embodiment, a system includes: at least one processor; and memory, which contains instructions configured to instruct at least one processor: send a message to a computing device; receive an identifier from the computing device A certificate and a key, wherein the identifier is associated with an identity of the computing device, and the certificate is generated by the computing device using information; and the identifier, the certificate and the key are used to verify the identity of the computing device.
在一實施例中,驗證運算裝置之身份包括:串連訊息及憑證以提供第一資料;使用密鑰解密第一資料以提供第二資料;使用識別符解密第二資料以提供一結果;及比較結果與密鑰。In one embodiment, verifying the identity of the computing device includes: concatenating a message and a certificate to provide first data; using a key to decrypt the first data to provide second data; using an identifier to decrypt the second data to provide a result; and Compare the result with the key.
在一實施例中,識別符係一第一公共識別符,運算裝置儲存用於生成第一公共識別符之一第一裝置秘密,且指令經進一步組態以指示至少一處理器:將一替換命令發送至運算裝置,替換命令引起運算裝置將第一裝置秘密替換為一第二裝置秘密;及自運算裝置接收使用第二裝置秘密生成之一第二公共識別符。In one embodiment, the identifier is a first public identifier, the computing device stores a first device secret used to generate the first public identifier, and the instruction is further configured to instruct at least one processor: replace a The command is sent to the arithmetic device, and the replacement command causes the arithmetic device to replace the first device secret with a second device secret; and the self-calculating device receives and generates a second public identifier using the second device secret.
在一實施例中,運算裝置經組態以使用第二裝置秘密作為提供一衍生秘密之一訊息鑑別碼之一輸入及使用衍生秘密生成第二公共識別符。In one embodiment, the computing device is configured to use the second device secret as an input to provide a message authentication code of a derived secret and use the derived secret to generate the second public identifier.
在一實施例中,替換命令包含具有基於第一裝置秘密之一值之一欄位。In one embodiment, the replacement command includes a field having a value based on the first device secret.
在一實施例中,系統進一步包括經組態以生成一鮮度之一鮮度機構,其中發送至運算裝置之訊息包括鮮度。In one embodiment, the system further includes a freshness mechanism configured to generate a freshness, wherein the message sent to the computing device includes freshness.
在一實施例中,運算裝置之身份包含一文數串。In one embodiment, the identity of the computing device includes a string of words and numbers.
在一實施例中,一非暫時性電腦儲存媒體儲存指令,指令在執行於一運算裝置上時引起運算裝置至少:自一主機裝置接收一訊息;生成一識別符、一憑證及一密鑰,其中識別符對應於運算裝置之一身份,且憑證使用訊息生成;及將識別符、憑證及密鑰發送至主機裝置以用於驗證運算裝置之身份。In one embodiment, a non-transitory computer storage medium stores instructions, which when executed on a computing device, cause the computing device to at least: receive a message from a host device; generate an identifier, a certificate, and a key, The identifier corresponds to an identity of the computing device, and the certificate use message is generated; and the identifier, the certificate and the key are sent to the host device for verifying the identity of the computing device.
在一實施例中,識別符係與一私密識別符相關聯之一公共識別符,密鑰係與一私鑰相關聯之一公鑰,且生成憑證包括:串連訊息與公鑰以提供第一資料;使用私密識別符加密第一資料以提供第二資料;及使用私鑰加密第二資料以提供憑證。In one embodiment, the identifier is a public identifier associated with a private identifier, the key is a public key associated with a private key, and generating a certificate includes: concatenating a message with the public key to provide the first One data; the first data is encrypted with the private identifier to provide the second data; and the second data is encrypted with the private key to provide the certificate.
在一實施例中,驗證運算裝置之身份包括使用識別符執行一解密操作以提供一結果及比較結果與密鑰。使用物理不可複製功能 (PUF) 生成值 In one embodiment, verifying the identity of the computing device includes using an identifier to perform a decryption operation to provide a result and a comparison result and a key. Use Physical Uncopyable Function (PUF) to generate values
下文將揭示之至少一些實施例提供使用一物理不可複製功能(PUF)生成值之一改良架構。在一些實施例中,PUF值本身可用作為一裝置秘密或用於生成一裝置秘密。在一實例中,PUF值用作為用於與DICE-RIoT協定一起使用之一唯一裝置秘密(UDS),如上文所描述(例如參閱圖5A及圖5B)。在一實例中,由一PUF生成之一值用作為一訊息鑑別碼(MAC)之一輸入。來自MAC之輸出用作為UDS。At least some of the embodiments to be disclosed below provide an improved architecture that uses a physical uncopyable function (PUF) to generate values. In some embodiments, the PUF value itself can be used as a device secret or used to generate a device secret. In an example, the PUF value is used as one of the unique device secrets (UDS) for use with the DICE-RIoT protocol, as described above (for example, see FIGS. 5A and 5B). In one example, a value generated by a PUF is used as an input of a message authentication code (MAC). The output from MAC is used as UDS.
在一些實施例中,PUF值或自PUF值生成之一值可用作為一隨機數(例如一裝置特定隨機數)。在一實例中,當經由上述非對稱密鑰生成器(例如參閱圖6)生成相關聯公鑰及私鑰時,隨機數(例如RND)用作為一輸入。In some embodiments, the PUF value or a value generated from the PUF value can be used as a random number (for example, a device-specific random number). In one example, when generating the associated public key and private key via the aforementioned asymmetric key generator (for example, refer to FIG. 6), a random number (for example, RND) is used as an input.
一般而言,以下架構藉由將自一或多個PUF提供之輸入饋送至一訊息鑑別碼(MAC)中來生成一輸出。來自MAC之輸出提供改良PUF (例如上述UDS)。Generally speaking, the following architecture generates an output by feeding input provided from one or more PUFs into a message authentication code (MAC). The output from the MAC provides an improved PUF (such as the UDS described above).
一般而言,半導體晶片製造商面臨密鑰注入之問題,其係針對(例如)自一半導體晶圓提供之各晶片或晶粒程式化一唯一密鑰。期望在一安全環境中程式化密鑰注入以避免洩漏或揭示注入至晶片中之密鑰。亦期望確保密鑰不會在生產晶片之後被盜用或回讀。例如,在一些情況中,密鑰注入程序由一第三方基礎設施認證或執行。Generally speaking, semiconductor chip manufacturers face the problem of key injection, which is to program a unique key for each chip or die provided from a semiconductor wafer, for example. It is desirable to program key injection in a secure environment to avoid leakage or reveal the key injected into the chip. It is also desirable to ensure that the key will not be stolen or read back after the chip is produced. For example, in some cases, the key injection procedure is certified or executed by a third-party infrastructure.
晶片製造商期望降低包含加密能力之晶片之生產成本。晶片製造商亦期望簡化生產流程,同時維持製造晶片之一致安全效能水準。然而,密鑰注入係一較昂貴生產步驟。Chip manufacturers expect to reduce the production cost of chips that include encryption capabilities. Chip manufacturers also expect to simplify the production process while maintaining a consistent level of safety performance for manufacturing chips. However, key injection is a relatively expensive production step.
晶片製造商亦面臨PUF在用作為一偽隨機數生成器時改良均勻性之問題。在一些情況中,此問題可包含由於由PUF提供之一晶種值所基於之現象之晶粒之間的一互相關。Chip manufacturers also face the problem of improving uniformity when PUF is used as a pseudo-random number generator. In some cases, this problem may include a cross-correlation between crystal grains due to the phenomenon on which a seed value provided by the PUF is based.
一PUF係基於各晶粒之唯一不可預測物理現象,諸如(例如)晶片上寄生效應、晶片上路徑延遲等等。此等現象用於(例如)提供一偽隨機數生成器之一晶種值。A PUF is based on unique unpredictable physical phenomena of each die, such as, for example, on-chip parasitics, on-chip path delays, and so on. These phenomena are used, for example, to provide a seed value of a pseudo-random number generator.
生產線中所選擇之兩個不同晶片必須具有不同PUF值。在裝置之壽命期間,各晶片中所生成之PUF值不能改變。若兩個晶片具有類似密鑰(例如,晶片之間存在一低漢明(Hamming)距離),則可使用一晶片之一密鑰來猜測另一晶片之密鑰(例如原像駭客攻擊)。The two different wafers selected in the production line must have different PUF values. During the life of the device, the PUF value generated in each chip cannot be changed. If two chips have similar keys (for example, there is a low Hamming distance between the chips), one of the chips can be used to guess the key of the other chip (for example, hacking) .
使用下文將描述之改良PUF架構可藉由提供適合於在各晶片或晶粒上提供一PUF之功能之輸出值來提供一或多個上述問題之一解決方案。以下改良PUF架構使用一PUF,其使各晶片或晶粒能夠在晶片或晶粒各自通電時自動生成一唯一安全密鑰。安全密鑰無需儲存於可能被駭侵或否則損害之一非揮發性記憶體中。Using the improved PUF architecture described below can provide a solution to one or more of the above problems by providing output values suitable for providing a PUF function on each chip or die. The following improved PUF architecture uses a PUF, which enables each chip or die to automatically generate a unique security key when each chip or die is powered on. The security key does not need to be stored in a non-volatile memory that may be hacked or otherwise damaged.
改良PUF架構進一步使用一MAC生成改良PUF輸出(例如一唯一密鑰)來供(例如)整合至半導體晶片中之密碼功能或程序使用。使用MAC可(例如)增大不同晶片上所生成之密鑰之間的漢明距離。The improved PUF architecture further uses a MAC to generate an improved PUF output (such as a unique key) for use in, for example, cryptographic functions or programs integrated into a semiconductor chip. Using MAC can, for example, increase the Hamming distance between keys generated on different chips.
在本文所揭示之至少一些實施例中,提供使用來自一MAC之輸出之一改良PUF架構作為生成晶種或其他值之一方式。因此,改良PUF架構提供(例如)執行密鑰注入之一方式,其降低製造成本且改良最終晶片上之PUF操作之可靠性及/或均勻性。In at least some embodiments disclosed herein, an improved PUF architecture using one of the outputs from a MAC is provided as a way to generate seeds or other values. Therefore, the improved PUF architecture provides, for example, a way to perform key injection, which reduces manufacturing costs and improves the reliability and/or uniformity of PUF operations on the final chip.
在一實施例中,一方法包含:由至少一PUF提供至少一值;及基於一MAC生成一第一輸出,其中MAC使用由至少一PUF提供之至少一值作為一輸入用於生成第一輸出。In one embodiment, a method includes: providing at least one value from at least one PUF; and generating a first output based on a MAC, wherein the MAC uses at least one value provided by the at least one PUF as an input for generating the first output .
在一實施例中,一系統包含:至少一PUF裝置;一訊息鑑別碼(MAC)模組,其經組態以基於由至少一PUF裝置提供之至少一值接收一第一輸入;至少一處理器;及記憶體,其含有指令,指令經組態以指示至少一處理器基於第一輸入自MAC模組生成一第一輸出。在各種實施例中,MAC模組可使用硬體及/或軟體實施。In one embodiment, a system includes: at least one PUF device; a message authentication code (MAC) module configured to receive a first input based on at least one value provided by at least one PUF device; at least one processing器; and memory, which contains instructions configured to instruct at least one processor to generate a first output from the MAC module based on the first input. In various embodiments, the MAC module can be implemented using hardware and/or software.
在一實施例中,系統進一步包含一選擇器模組,其用於選擇用於將值提供至MAC模組之PUF模組之一或多者。例如,自若干PUF裝置提供之值可鏈接且提供為MAC模組之一輸入。在各種實施例中,選擇器模組可使用硬體及/或軟體實施。In one embodiment, the system further includes a selector module for selecting one or more of the PUF modules used to provide the value to the MAC module. For example, values provided from several PUF devices can be linked and provided as one of the inputs of the MAC module. In various embodiments, the selector module can be implemented using hardware and/or software.
圖10展示根據一實施例之用於自一物理不可複製功能(PUF)裝置121接收一輸入之一訊息鑑別碼(MAC) 123之一輸出生成一唯一密鑰125之一系統。系統提供用於自訊息鑑別碼(MAC)模組123之一輸出生成唯一密鑰125 (或其他值)之一PUF架構111。MAC模組123接收自物理不可複製功能(PUF)裝置121獲得之一輸入值。FIG. 10 shows a system for generating a unique key 125 by receiving an input, a message authentication code (MAC), and an output from a physical uncopyable function (PUF)
圖10中之PUF裝置121可為(例如)各種不同已知類型之PUF之任何者。MAC模組123提供(例如)一單向函數,諸如SHA1、SHA2、MD5、CRC、TIGER等等。The
架構111可(例如)改良晶片之間所生成之PUF值或碼之漢明距離。MAC函數不可預測(例如,僅具有提供至MAC函數之一單位元差之輸入序列提供兩個完全不同輸出結果)。因此,無法在僅知道輸出時辨識或判定MAC函數之輸入。架構111亦可(例如)改良作為一偽隨機數生成器之PUF之均勻性。The
在一實例中,由PUF架構111生成之值(例如唯一密鑰125或另一值)可為具有N個位元之一數字,其中N取決於在包含PUF架構111之一晶片(例如記憶體裝置103或另一裝置)上實施之一密碼演算法。在一實例中,晶片實施使用HMAC-SHA256之一密碼函數,在該情況中,來自MAC模組123之輸出具有256個位元之一大小N。使用來自MAC模組123之輸出提供適合用作為一密鑰之輸出值之一訊息長度(無需進一步壓縮或填充)。In one example, the value generated by the PUF structure 111 (for example, the unique key 125 or another value) may be a number with N bits, where N depends on the chip containing the PUF structure 111 (for example, memory The
PUF架構111以一裝置(諸如所繪示之記憶體裝置103)實施,或可以其他類型之運算裝置(諸如(例如)在由一晶圓製造生產線提供之數個半導體晶片中實施之積體電路)實施。The
在一實施例中,MAC模組123與密碼模組127協作及/或整合至密碼模組127中或作為密碼模組127之部分,例如,密碼模組127可提供記憶體裝置103之密碼功能。例如,歸因於MAC由記憶體裝置103用於其他密碼目的,MAC模組123之輸出可適合用作為一密鑰。In one embodiment, the
PUF架構111、密碼模組127及/或記憶體裝置103之其他功能之操作可由一控制器107控制。控制器107可包含(例如)一或多個微處理器。The operation of the
在圖10中,一主機101可經由一通信通道與記憶體裝置103通信。主機101可為具有一或多個中央處理單元(CPU)之一電腦,經由電腦周邊裝置(諸如記憶體裝置103)可經由一互連件(諸如一電腦匯流排(例如周邊組件互連(PCI)、擴展PCI (PCI-X)、快速PCI (PCIe))、一通信部分及/或一電腦網路)附接CPU。In FIG. 10, a
在一實施例中,唯一密鑰125用作為一UDS以提供記憶體裝置103之一身份。控制器107在一DICE-RIoT架構中實施層0 L0
及層1 L1
。回應於自主機101經由主機介面105接收主機訊息,密碼模組127執行處理以生成三元組,如上文所描述。主機101使用三元組驗證記憶體裝置103之身份。記憶體裝置103係運算裝置141之一實例。In one embodiment, the unique key 125 is used as a UDS to provide an identity of the
為了例示性繪示,應注意,通常存在兩個技術問題。一第一問題係證明至主機之板之身份。問題可藉由使用公共三元組及非對稱密碼來處置,例如上文針對DICE-RIoT所討論。此方法係安全及簡明,但在一些情況中,會因太昂貴/耗時而無法由一電路板本身直接使用。一第二問題係向板證明板上之記憶體之身份(例如為了避免未授權記憶體替換)(此(例如)在各通電之後執行)。第二問題可使用上述公共三元組及非對稱密碼解決。然而,僅基於一MAC函數之一較輕安全機構通常足以處置第二問題。For illustrative purposes, it should be noted that there are usually two technical problems. The first question is to prove the identity of the board to the host. The problem can be handled by using public triples and asymmetric ciphers, as discussed above for DICE-RIoT. This method is safe and simple, but in some cases, it is too expensive/time-consuming to be directly used by a circuit board itself. A second question is to prove the identity of the memory on the board to the board (for example, to avoid unauthorized memory replacement) (this (for example) is executed after each power-on). The second problem can be solved using the above-mentioned public triples and asymmetric ciphers. However, a lighter security mechanism based only on a MAC function is usually sufficient to deal with the second problem.
記憶體裝置103可用於將主機101之資料儲存於(例如)非揮發性儲存媒體109中。記憶體裝置之實例一般包含硬碟機(HDD)、固態硬碟(SSD)、快閃記憶體、動態隨機存取記憶體、磁帶、網路附接儲存裝置等等。記憶體裝置103具有使用通信通道實施與主機101之通信之一主機介面105。例如,在一實施例中,主機101與記憶體裝置103之間的通信通道係一快速周邊組件互連(快速PCI或PCIe)匯流排;且主機101及記憶體裝置103使用NVMe協定(非揮發性記憶體主機控制器介面規範(NVMHCI),亦稱為快速NVM (NVMe))彼此通信。The
在一些實施方案中,主機101與記憶體裝置103之間的通信通道包含一電腦網路,諸如一區域網路、一無線區域網路、一無線個人區域網路、一蜂巢式通信網路、一寬頻高速全時連接無線通信連接(例如一當代或後代行動網路鏈接);且主機101及記憶體裝置103可經組態以使用資料儲存管理及使用命令(類似於NVMe協定中之資料儲存管理及使用命令)彼此通信。In some embodiments, the communication channel between the
控制器107可運行韌體104以執行回應於來自主機101之通信之操作及/或其他操作。韌體一般為提供工程運算裝置之控制、監測及資料操縱之一電腦程式類型。在圖10中,韌體104在操作記憶體裝置103時控制控制器107之操作,諸如PUF架構111之操作,如下文將進一步討論。The
記憶體裝置103具有非揮發性儲存媒體109,諸如塗佈於剛性磁碟上之磁性材料及/或一積體電路中之記憶體胞元。儲存媒體109係非揮發性的,因為無需電力來維持儲存於非揮發性儲存媒體109中之資料/資訊,該資料/資訊可在非揮發性儲存媒體109斷電且接著再次通電之後擷取。記憶體胞元可使用各種記憶體/儲存技術(諸如基於NAND閘之快閃記憶體、相變記憶體(PCM)、磁性記憶體(MRAM)、電阻式隨機存取記憶體及3D XPoint)實施,使得儲存媒體109係非揮發性的且可在無電力之情況下保存儲存於其內之資料達數天、數月及/或數年。The
記憶體裝置103包含用於儲存運行時間資料及指令之揮發性動態隨機存取記憶體(DRAM) 106,運行時間資料及指令由控制器107用於提高控制器107之運算效能及/或提供在主機101與非揮發性儲存媒體109之間傳送之資料之緩衝器。DRAM 106係揮發性的,因為其需要電力來維持儲存於其內之資料/資訊,當電力中斷時,該資料/資訊即時或迅速丟失。The
揮發性DRAM 106通常具有比非揮發性儲存媒體109少之延時,但在移除電力時快速丟失其資料。因此,有利地使用揮發性DRAM 106來暫時儲存用於使控制器107進行其當前運算任務之指令及資料以提高效能。在一些例項中,將揮發性DRAM 106替換為在一些應用中使用比DRAM少之電力之揮發性靜態隨機存取記憶體(SRAM)。當非揮發性儲存媒體109具有與揮發性DRAM 106相當之資料存取效能(例如在延時、讀/寫速度上)時,可消除揮發性DRAM 106;且控制器107可藉由操作非揮發性儲存媒體109上之指令及資料而非操作揮發性DRAM 106來執行運算。The
例如,交叉點儲存及記憶體裝置(例如3D XPoint記憶體)具有與揮發性DRAM 106相當之資料存取效能。一交叉點記憶體裝置使用無電晶體記憶體元件,其等之各者具有一起堆疊為一柱之一記憶體胞元及一選擇器。記憶體元件柱經由兩個垂直導線層連接,其中一層位於記憶體元件柱上方且另一層位於記憶體元件柱下方。各記憶體元件可個別選擇於兩個層之各者上之一導線之一交叉點處。交叉點記憶體裝置係快速及非揮發性的且可用作為用於處理及儲存之一統一記憶體池。For example, cross-point storage and memory devices (such as 3D XPoint memory) have data access performance equivalent to that of the
在一些例項中,控制器107具有處理器內快取記憶體,其具有優於揮發性DRAM 106及/或非揮發性儲存媒體109之資料存取效能。因此,在控制器107之運算操作期間,在控制器107之處理器內快取記憶體中快取用於當前運算任務中之指令及資料之部分。在一些例項中,控制器107具有多個處理器,其等各自身具有處理器內快取記憶體。In some examples, the
控制器107視情況使用組織於記憶體裝置103中之資料及/或指令執行資料密集型記憶體內處理。例如,回應於來自主機101之一請求,控制器107執行儲存於記憶體裝置103中之一組資料之一即時分析且回應性地將一減小資料組傳送至主機101。例如,在一些應用中,記憶體裝置103連接至即時感測器以儲存感測器輸入;且控制器107之處理器經組態以基於感測器輸入執行機器學習及/或型樣辨識以支援至少部分經由記憶體裝置103及/或主機101實施之一人工智慧(AI)系統。The
在一些實施方案中,控制器107之處理器在電腦晶片製造中與記憶體(例如106或109)整合以實現記憶體內處理且因此克服范紐曼(von Neumann)瓶頸,其由於由一處理器與根據范紐曼架構所單獨組態之記憶體之間的資料移動之延時引起之一處理量限制而限制運算效能。處理及記憶體之整合提高處理速度及記憶體傳送速率且減少延時及電力使用。In some embodiments, the processor of the
記憶體裝置103可用於各種運算系統中,諸如一雲端運算系統、一邊緣運算系統、一霧運算系統及/或一獨立電腦。在一雲端運算系統中,遠端電腦伺服器在一網路中連接以儲存、管理及處理資料。一邊緣運算系統藉由在靠近資料源之電腦網路之邊緣處執行資料處理來最佳化雲端運算且因此減少與一中央伺服器及/或資料儲存器之通信。一霧運算系統使用一或多個終端使用者裝置或靠近使用者邊緣裝置儲存資料且因此減少或消除將資料儲存於一中央資料倉儲中之需要。The
本文所揭示之至少一些實施例可使用由控制器107執行之電腦指令(諸如韌體104)實施。在一些例項中,硬體電路可用於實施韌體104之至少一些功能。韌體104最初可儲存於非揮發性儲存媒體109或另一非揮發性裝置中且加載至揮發性DRAM 106及/或處理器內快取記憶體中由控制器107執行。At least some of the embodiments disclosed herein can be implemented using computer commands (such as firmware 104) executed by the
例如,韌體104可經組態以使用下文將討論之技術操作PUF架構。然而,下文將討論之技術不受限於用於圖10之電腦系統及/或上文所討論之實例中。For example, the firmware 104 can be configured to operate the PUF architecture using the techniques discussed below. However, the techniques discussed below are not limited to use in the computer system of FIG. 10 and/or the examples discussed above.
在一些實施方案中,MAC模組123之輸出可用於提供(例如)一根密鑰或一晶種值。在其他實施方案中,輸出可用於生成一或多個會話密鑰。In some embodiments, the output of the
在一實施例中,來自MAC模組123之輸出可傳輸至另一運算裝置。例如,唯一密鑰125可經由主機介面105傳輸至主機101。In one embodiment, the output from the
圖11展示根據一實施例之用於自MAC 123之一輸出生成唯一密鑰125之一系統,MAC 123自由一選擇器模組204選擇之一或多個PUF裝置接收輸入。根據一實施例,系統使用類似於圖10之架構111但包含多個PUF裝置202及選擇器模組204之一PUF架構自MAC模組123之一輸出生成唯一密鑰125。MAC模組123自由選擇器模組204選擇之一或多個PUF裝置202接收輸入。在一實例中,PUF裝置202包含PUF裝置121。FIG. 11 shows a system for generating a unique key 125 from an output of the
PUF裝置202可(例如)相同或不同(例如基於不同隨機物理現象)。在一實施例中,選擇器模組204充當一智慧PUF選擇區塊或電路以選擇將自其獲得值作為輸入提供至MAC模組123之PUF裝置202之一或多者。The
在一實施例中,選擇器模組204使PUF裝置202之選擇至少部分基於來自測試PUF裝置202之結果。例如,選擇器模組204可測試各PUF裝置202之重複性。若任何PUF裝置202測試失敗,則選擇器模組204拒絕將失敗裝置用於提供一輸入值至MAC模組123。在一實例中,可暫時或無限期排除失敗裝置。In one embodiment, the selector module 204 makes the selection of the
在一些實施方案中,選擇器模組204容許在生產期間及/或現場使用期間測試各晶片之PUF功能(例如藉由檢查由各PUF裝置202提供之值之重複性)。若由一給定PUF裝置提供之兩個或更多個值不同,則PUF裝置被判定為失敗且被拒絕用作為MAC模組123之一輸入。In some implementations, the selector module 204 allows the PUF function of each chip to be tested during production and/or during field use (for example, by checking the repeatability of the values provided by each PUF device 202). If two or more values provided by a given PUF device are different, the PUF device is judged as a failure and rejected as one of the inputs of the
在一實施例中,選擇器模組204用於同時使用多個PUF裝置202作為用於自MAC模組123計算一改良PUF輸出之源。例如,選擇器模組204可鏈接來自一第一PUF裝置之一值與來自一第二PUF裝置之一值以作為一輸入提供至MAC模組123。在一些實施方案中,此架構容許歸因於其取決於若干不同物理現象而獲得一穩健PUF輸出。In one embodiment, the selector module 204 is used to simultaneously use
圖12展示根據一實施例之用於自一MAC之一輸出生成一唯一密鑰之一系統,MAC自一或多個PUF裝置接收輸入且自一單調計數器302接收一輸入(及/或自另一鮮度機構(如NONCE、時戳等等)接收一輸入)。根據一實施例,系統自MAC模組123之一輸出生成唯一密鑰125。除包含一單調計數器302來將值提供至選擇器模組204之外,圖12中所繪示之PUF架構類似於圖11中所繪示之PUF架構。在各種實施例中,單調計數器302可使用硬體及/或軟體實施。Figure 12 shows a system for generating a unique key from an output of a MAC according to an embodiment. The MAC receives input from one or more PUF devices and an input from a monotonic counter 302 (and/or from another A freshness institution (such as NONCE, time stamp, etc.) receives an input). According to an embodiment, the system generates a unique key 125 from one of the
MAC模組123自一或多個PUF裝置202接收輸入且自單調計數器302接收一輸入。在一實例中,自PUF裝置202及單調計數器302獲得之值鏈接且接著作為一輸入提供至MAC模組123。在一些實施方案中,單調計數器302係僅在被請求時遞增其值之一非揮發性計數器。在一些實施例中,單調計數器302在一晶片之各通電循環之後遞增。The
在一些實施方案中,圖12之PUF架構可用於提供在一半導體晶片與一應用(諸如(例如)一公鑰機構)中之其他組件之間安全共用密鑰之一方式。In some embodiments, the PUF architecture of FIG. 12 can be used to provide a way to securely share keys between a semiconductor chip and other components in an application (such as, for example, a public key mechanism).
在一些實施方案中,單調計數器302在一PUF之各計算之前遞增,其確保MAC模組123之輸入在各循環中不同,且所提供之輸出(及/或輸出之型樣)因此不同。在一些實例中,此方法可用於生成一會話密鑰,其中各會話密鑰係不同的。In some implementations, the
在一些實施例中,選擇器模組204可選擇性包含或排除單調計數器302 (或其他鮮度機構,如NONCE、時戳)提供一計數器值作為MAC模組123之一輸入。In some embodiments, the selector module 204 can selectively include or exclude the monotonic counter 302 (or other freshness mechanism, such as NONCE, time stamp) to provide a counter value as an input of the
在一些實施例中,單調計數器302亦由密碼模組127使用。在一些實施例中,包含單調計數器之一PUF架構可用作為一會話密鑰生成器以保證各循環中之一不同密鑰。在一些實施方案中,所生成之會話密鑰依此方式受保護:會話密鑰=MAC [一或多個PUF|MTC或其他鮮度]。In some embodiments, the
在其他實施例中,一機構使用如下:
會話密鑰=MACkey_based
[Root_Key、MTC或其他鮮度機構]
其中Root_Key=自上述MAC模組123提供之一輸出值或存在於晶片上之任何其他種類之密鑰。
上述MACkey_based
函數係(例如)基於一密鑰之一MAC演算法。例如,密碼中可存在兩種類型之MAC演算法:
1. 基於一密鑰之一演算法,如(例如) HMAC家族(HMAC-SHA256係基於密鑰);
2. 不基於一密鑰之一演算法,例如SHA256 (SHA獨自並非基於密鑰)。
應注意,基於密鑰之一MAC可在不基於密鑰之一MAC中藉由將密鑰設定為一已知值(例如0x000...0xFFFF等等)來變換。In other embodiments, a mechanism is used as follows: Session key=MAC key_based [Root_Key, MTC, or other freshness mechanism] Where Root_Key=an output value provided from the above-mentioned
圖13展示根據一實施例之自使用自一或多個PUF提供之一或多個輸入之一MAC生成一輸出之一方法。例如,圖13之方法可在圖10之記憶體裝置103中實施。FIG. 13 shows a method of generating an output from one or more inputs provided by one or more PUFs from a MAC according to an embodiment. For example, the method of FIG. 13 can be implemented in the
圖13之方法包含在區塊411中,由至少一PUF提供一或多個值(例如自PUF裝置202之一或多者提供值)。The method of FIG. 13 includes in block 411, one or more values are provided by at least one PUF (for example, values are provided from one or more of PUF devices 202).
在區塊413中,可測試PUF之一或多者之重複性,例如上文所描述。此測試係選用的。In block 413, the repeatability of one or more of the PUFs may be tested, for example, as described above. This test is optional.
在區塊415中,若已在區塊413中執行測試且已判定一PUF裝置測試失敗,則拒絕失敗PUF裝置將一輸入提供至MAC。此排除可由(例如)選擇器模組204執行,如上文所討論。In block 415, if the test has been performed in block 413 and it has been determined that a PUF device has failed the test, the failed PUF device is rejected and provides an input to the MAC. This exclusion can be performed by, for example, the selector module 204, as discussed above.
在區塊417中,自一單調計數器(例如單調計數器302)提供一值。在PUF架構中使用單調計數器係選用的。In block 417, a value is provided from a monotonic counter (eg, monotonic counter 302). The use of monotonic counters in the PUF architecture is optional.
在區塊419中,自MAC生成一輸出,MAC使用由PUF提供之一或多個值(及視情況來自單調計數器之至少一值)作為MAC之輸入。In block 419, an output is generated from the MAC, and the MAC uses one or more values provided by the PUF (and optionally at least one value from the monotonic counter) as the input of the MAC.
現將在下文描述在一運算裝置中實施之一方法之各種其他實施例,方法包含:由至少一物理不可複製功能(PUF)提供至少一值;及基於一訊息鑑別碼(MAC)生成一第一輸出,其中MAC使用由至少一PUF提供之至少一值作為一輸入用於生成第一輸出。Various other embodiments of a method implemented in a computing device will now be described below. The method includes: providing at least one value by at least one physical uncopyable function (PUF); and generating a second value based on a message authentication code (MAC) An output, where the MAC uses at least one value provided by at least one PUF as an input for generating the first output.
在一實施例中,運算裝置係一第一運算裝置,且方法進一步包括將第一輸出傳輸至一第二運算裝置,其中第一輸出係第一運算裝置之一唯一識別符。In one embodiment, the computing device is a first computing device, and the method further includes transmitting the first output to a second computing device, wherein the first output is a unique identifier of the first computing device.
在一實施例中,提供至少一值包括自一第一PUF選擇一第一值及自一第二PUF選擇一第二值。In one embodiment, providing at least one value includes selecting a first value from a first PUF and selecting a second value from a second PUF.
在一實施例中,方法進一步包括:自一單調計數器提供一值;其中生成第一輸出進一步包括使用來自單調計數器之值作為MAC之一額外輸入用於生成第一輸出。In one embodiment, the method further includes: providing a value from a monotonic counter; wherein generating the first output further includes using the value from the monotonic counter as an additional input of the MAC for generating the first output.
在一實施例中,方法進一步包括:基於由MAC提供之各自輸出生成複數個會話密鑰,其中單調計數器提供用作為MAC之輸入之值;及在生成會話密鑰之各者之後遞增單調計數器。In one embodiment, the method further includes: generating a plurality of session keys based on respective outputs provided by the MAC, wherein the monotonic counter provides a value used as an input to the MAC; and incrementing the monotonic counter after each of the session keys is generated.
在一實施例中,方法進一步包括:測試至少一PUF之一第一PUF之重複性;及基於判定第一PUF測試失敗,拒絕第一PUF在生成第一輸出時將任何輸入提供至MAC。In one embodiment, the method further includes: testing the repeatability of the first PUF of one of the at least one PUF; and based on determining that the first PUF test fails, rejecting the first PUF to provide any input to the MAC when generating the first output.
在一實施例中,測試包括比較由第一PUF提供之兩個或更多個值。In one embodiment, the test includes comparing two or more values provided by the first PUF.
在一實施例中,運算裝置係一記憶體裝置,且記憶體裝置包括經組態以儲存使用MAC生成之一輸出值之一非揮發性儲存媒體。In one embodiment, the computing device is a memory device, and the memory device includes a non-volatile storage medium configured to store an output value generated using MAC.
在一實施例中,方法進一步包括由至少一處理器執行至少一密碼函數,其中執行至少一密碼函數包括使用使用MAC生成之一輸出值。In an embodiment, the method further includes executing at least one cryptographic function by at least one processor, wherein executing the at least one cryptographic function includes generating an output value using MAC.
在一實施例中,一非暫時性電腦儲存媒體儲存指令,指令在執行於一記憶體裝置(例如記憶體裝置103)上時引起記憶體裝置執行一方法,方法包括:由至少一物理不可複製功能(PUF)提供至少一值;及基於一訊息鑑別碼(MAC)生成一第一輸出,其中MAC使用由至少一PUF提供之至少一值作為一輸入用於生成第一輸出。In one embodiment, a non-transitory computer storage medium stores instructions. When the instructions are executed on a memory device (such as memory device 103), the memory device causes the memory device to execute a method. The method includes: The function (PUF) provides at least one value; and generates a first output based on a message authentication code (MAC), wherein the MAC uses at least one value provided by the at least one PUF as an input for generating the first output.
在下文將描述之各種其他實施例中,圖4之方法可在一系統上執行,方法包含:至少一物理不可複製功能(PUF)裝置;一訊息鑑別碼(MAC)模組,其經組態以基於由至少一PUF裝置提供之至少一值接收一第一輸入;至少一處理器;及記憶體,其含有指令,指令經組態以指示至少一處理器基於第一輸入自MAC模組生成一第一輸出。In various other embodiments to be described below, the method of FIG. 4 can be executed on a system, and the method includes: at least one physical uncopyable function (PUF) device; a message authentication code (MAC) module, which is configured Receive a first input based on at least one value provided by at least one PUF device; at least one processor; and memory, which contains instructions configured to instruct at least one processor to generate from the MAC module based on the first input A first output.
在一實施例中,MAC模組包含一電路。在一實施例中,來自MAC模組之第一輸出係識別一晶粒之一密鑰。在一實施例中,來自MAC模組之第一輸出係一根密鑰,且指令經進一步組態以指示至少一處理器使用來自MAC模組之一輸出生成一會話密鑰。In one embodiment, the MAC module includes a circuit. In one embodiment, the first output from the MAC module is to identify a key of a die. In one embodiment, the first output from the MAC module is a key, and the instructions are further configured to instruct at least one processor to use one of the outputs from the MAC module to generate a session key.
在一實施例中,系統係一半導體晶片之部分(例如自一半導體晶圓獲得之若干晶片之一晶片),來自MAC模組之第一輸出係識別晶片之一唯一值,且指令經進一步組態以指示至少一處理器將唯一值傳輸至一運算裝置。In one embodiment, the system is part of a semiconductor chip (for example, one of several chips obtained from a semiconductor wafer), the first output from the MAC module is a unique value of the identification chip, and the commands are further grouped State to instruct at least one processor to transmit the unique value to an arithmetic device.
在一實施例中,至少一PUF裝置包括複數個PUF裝置(例如PUF裝置202),且系統進一步包括經組態以選擇提供至少一值之至少一PUF裝置之一選擇器模組。In one embodiment, at least one PUF device includes a plurality of PUF devices (such as PUF device 202), and the system further includes a selector module configured to select at least one PUF device that provides at least one value.
在一實施例中,選擇器模組經進一步組態以藉由鏈接來自一第一PUF裝置之一第一值及來自一第二PUF裝置之一第二值來生成MAC模組之第一輸入。In one embodiment, the selector module is further configured to generate the first input of the MAC module by linking a first value from a first PUF device and a second value from a second PUF device .
在一實施例中,系統進一步包括經組態以提供一計數器值之一單調計數器,且指令經進一步組態以指示至少一處理器藉由鏈接計數器值與由至少一PUF裝置提供之至少一值來生成第一輸入。In one embodiment, the system further includes a monotonic counter configured to provide a counter value, and the instruction is further configured to instruct at least one processor to link the counter value with at least one value provided by the at least one PUF device To generate the first input.
在一實施例中,系統進一步包括經組態以選擇提供至少一值之至少一PUF裝置之一選擇器模組,其中鏈接計數器值與由至少一PUF裝置提供之至少一值由選擇器模組執行。In one embodiment, the system further includes a selector module configured to select at least one PUF device that provides at least one value, wherein the link counter value and the at least one value provided by the at least one PUF device are provided by the selector module implement.
在一實施例中,單調計數器經進一步組態以在生成第一輸入之後遞增計數器值以提供一遞增值;且指令經進一步組態以指示至少一處理器基於遞增值及由至少一PUF裝置提供之至少一新值自MAC模組生成一第二輸出。In one embodiment, the monotonic counter is further configured to increment the counter value to provide an increment value after generating the first input; and the instruction is further configured to instruct at least one processor to be based on the increment value and provided by at least one PUF device The at least one new value is generated from the MAC module to generate a second output.
圖14展示根據一實施例之用於自一MAC之一輸出生成一根密鑰且添加一額外MAC來生成一會話密鑰之一系統,MAC自一或多個PUF裝置接收輸入及自一單調計數器接收一輸入(及/或自另一鮮度機構(如NONCE、時戳等等)接收一輸入)。Figure 14 shows a system for generating a key from an output of a MAC and adding an additional MAC to generate a session key according to an embodiment. The MAC receives input from one or more PUF devices and from a monotonic The counter receives an input (and/or receives an input from another freshness mechanism (such as NONCE, time stamp, etc.)).
在一實施例中,系統根據一實施例自一MAC之一輸出生成根密鑰(MAC自一或多個PUF裝置202接收輸入及自一單調計數器302接收一輸入(及/或自另一鮮度機構(如NONCE、時戳等等)接收一輸入))且添加一額外MAC模組504以使用一根密鑰輸入生成一會話密鑰。在此實施例中,MAC模組123提供根密鑰502作為來自MAC模組123之輸出。根密鑰502係MAC模組504之一輸入,MAC模組504可使用一MAC函數,諸如會話密鑰=MACkey_based
[Root_Key、MTC或其他鮮度機構],如上文所描述。此基於密鑰之函數中之根密鑰輸入可為所繪示之根密鑰502。In one embodiment, the system generates a root key from an output of a MAC according to an embodiment (MAC receives input from one or
另外,在一實施例中,單調計數器302可提供MAC模組504之一輸入。在其他實施例中,不是使用單調計數器302,而是可提供一不同單調計數器或來自晶片之其他值作為MAC模組504之一輸入。在一些情況中,單調計數器302將一計數器值提供至MAC模組504而非選擇器模組204。在其他情況中,計數器值可提供至兩個MAC模組或自兩個模組排除。密鑰生成及安全儲存 In addition, in one embodiment, the
如上文所提及,PUF可用於安全密鑰生成。下文將討論之各種實施例係關於使用至少一PUF生成一初始密鑰、施加處理以增加初始密鑰之混淆及將最終混淆密鑰儲存於一非揮發性記憶體中。最終混淆密鑰及/或用於生成最終混淆密鑰之一中間密鑰可與另一運算裝置共用且用於與另一運算裝置安全通信(例如基於一共用密鑰使用對稱密碼傳遞訊息)。在一些實施例中,針對用於汽車應用中之運算裝置(例如一自主車輛中之一控制器)進行安全密鑰生成。As mentioned above, PUF can be used for security key generation. The various embodiments discussed below relate to generating an initial key using at least one PUF, applying processing to increase the obfuscation of the initial key, and storing the final obfuscated key in a non-volatile memory. The final obfuscation key and/or an intermediate key used to generate the final obfuscation key can be shared with another computing device and used for secure communication with another computing device (for example, using a symmetric cipher to transmit messages based on a shared key). In some embodiments, security key generation is performed for a computing device used in automotive applications (for example, a controller in an autonomous vehicle).
在替代實施例中,依無需使用至少一上述PUF裝置之其他方式生成初始密鑰。在一實施例中,可藉由使用一注入密鑰生成初始密鑰。例如,初始密鑰歸因於在一工廠或其他安全環境中注入而存在於一晶片中。在此情況中,藉由對注入密鑰施加混淆處理來執行施加處理以增加初始密鑰之混淆。In an alternative embodiment, the initial key is generated in other ways that do not require the use of at least one of the aforementioned PUF devices. In one embodiment, the initial key can be generated by using an injected key. For example, the initial key exists in a chip due to being injected in a factory or other secure environment. In this case, the application process is performed by applying the obfuscation process to the injected key to increase the confusion of the initial key.
汽車環境存在在密鑰生成階段期間引入「雜訊」之技術問題。以下各種實施例藉由使用一方法減少或避免密鑰變動來提供此問題之一技術解決方案,密鑰變動歸因於將一混淆密鑰儲存於一非揮發性記憶體區域內部誘發之此雜訊。The automotive environment has a technical problem of introducing "noise" during the key generation phase. The following various embodiments provide a technical solution to this problem by using a method to reduce or avoid key changes. The key changes are attributed to the confusion induced by storing an obfuscated key in a non-volatile memory area. News.
汽車環境可依各種方式影響密鑰生成。例如,引擎通電可引起施加至一運算裝置之電力下降以導致依錯誤方式生成一密鑰。溫度極值亦會影響生成密鑰之電路。其他源(諸如來自電源線之磁場)可引起符號間干擾或串擾以使一主機無法辨識裝置。The automotive environment can affect key generation in various ways. For example, powering on an engine can cause the power applied to a computing device to drop, causing a key to be generated in an erroneous manner. The extreme temperature will also affect the circuit that generates the key. Other sources (such as magnetic fields from power lines) can cause inter-symbol interference or crosstalk so that a host cannot recognize the device.
相比而言,若密鑰在一安全環境中生成且儲存於記憶體中,則其將免受雜訊。一安全環境可(例如)直接安裝於一汽車、一測試環境或一工廠(例如,其製造生成密鑰之運算裝置),其取決於用於在運算裝置產品之終端使用者/客戶之間傳播密鑰之策略。In contrast, if the key is generated in a secure environment and stored in memory, it will be protected from noise. A secure environment can, for example, be directly installed in a car, a test environment, or a factory (for example, it manufactures computing devices that generate keys), depending on the use of computing device products for dissemination between end users/customers Key strategy.
在一實例中,車輛中所使用之ADAS或其他運算系統經受電力供應變動。此可發生於(例如)發動車輛、制動、對引擎供電等等期間。In one example, ADAS or other computing systems used in vehicles are subject to power supply changes. This can occur during, for example, starting the vehicle, braking, powering the engine, and so on.
如下文將討論,用於生成及儲存一密鑰之各種實施例提供實質上獨立於外部因數(例如電力供應變動、溫度及其他外部雜訊源)之優點。在一些實施例中,另一優點係(例如)在每個循環內生成密鑰向量係相同的。As will be discussed below, various embodiments for generating and storing a key provide the advantage of being substantially independent of external factors such as power supply fluctuations, temperature, and other external noise sources. In some embodiments, another advantage is that, for example, the key vector generated in each cycle is the same.
當儲存密鑰時,一些實施例中所提供之另一優點係密鑰實質上免受硬體攻擊(例如駭客可做到之硬體攻擊)。例如,一此攻擊係監測一裝置之通電電流以使電流變動相關聯於與密鑰相關聯之位元。其他攻擊可使用(例如)電壓量測(例如一Vdd供應電壓)。一些攻擊可使用(例如)溫度變動來干擾一裝置之操作。When storing the key, another advantage provided in some embodiments is that the key is substantially protected from hardware attacks (such as hardware attacks that can be done by hackers). For example, an attack is to monitor the power-on current of a device so that current changes are associated with the bits associated with the key. Other attacks can use (for example) voltage measurement (for example a Vdd supply voltage). Some attacks can use, for example, temperature changes to interfere with the operation of a device.
在一些實施例中,初始密鑰可使用上文針對圖10至圖14所描述之方法及/或架構生成。例如,一PUF用於在儲存密鑰之運算裝置之每個通電循環內生成密鑰。在替代實施例中,其他方法可用於生成初始密鑰。In some embodiments, the initial key may be generated using the method and/or architecture described above with respect to FIGS. 10-14. For example, a PUF is used to generate the secret key in each power-on cycle of the computing device storing the secret key. In alternative embodiments, other methods may be used to generate the initial key.
在一例示性方法中,如上文早先所討論,密鑰注入使用至少一PUF及一MAC演算法(例如SHA256)來生成顯著不同於其他裝置(例如位於一晶圓上之相鄰晶粒)之一裝置之一密鑰。MAC密碼演算法提供增大由PUF生成之位元之熵之益處。In an exemplary method, as discussed earlier above, the key injection uses at least one PUF and one MAC algorithm (such as SHA256) to generate significantly different from other devices (such as adjacent dies located on a wafer) One key for one device. The MAC encryption algorithm provides the benefit of increasing the entropy of the bits generated by the PUF.
在一實施例中,在對密鑰執行預處理之後將所生成之密鑰(例如自一PUF及接著一MAC演算法提供之初始密鑰)儲存於裝置之一非揮發性區域中以減少或避免駭客攻擊且亦提高儲存密鑰之可靠性。在一實施例中,在儲存密鑰之後,可停用生成密鑰之電路。預處理在本文中一般指稱混淆處理。在一實例中,電路及/或其他邏輯用於對裝置實施混淆處理。在一實例中,所儲存之密鑰可由裝置讀取,因為密鑰獨立於外部雜訊源。一內部機構用於讀取裝置之任何資料。In one embodiment, after performing preprocessing on the key, the generated key (for example, the initial key provided from a PUF and then a MAC algorithm) is stored in a non-volatile area of the device to reduce or Avoid hacker attacks and also improve the reliability of storage keys. In one embodiment, after storing the key, the circuit for generating the key can be disabled. Preprocessing is generally referred to as obfuscation in this article. In one example, circuits and/or other logic are used to obfuscate the device. In one example, the stored key can be read by the device because the key is independent of external noise sources. An internal mechanism is used to read any data of the device.
在各種實施例中,如本文所描述般儲存密鑰增大防雜訊邊限。另外,此使一駭客難以(例如)使用一電力監測或其他駭侵方法讀取所儲存之密鑰。In various embodiments, storing the key as described herein increases the anti-noise margin. In addition, this makes it difficult for a hacker, for example, to use a power monitoring or other hacking methods to read the stored key.
本文之至少一些實施例使用一PUF及一加密演算法(例如HMAC-SHA256)來獨立於外部因數(諸如原本會引起裝置之一通電之密鑰不同於下一通電之溫度或電壓)生成密鑰。若此發生,則一主機可能難以與裝置交換訊息。各種實施例藉由將所儲存之密鑰放置於記憶體中使得其不受外部因數影響來更穩健地生成密鑰。At least some embodiments herein use a PUF and an encryption algorithm (such as HMAC-SHA256) to generate a key independently of external factors (such as the key that would cause one of the devices to be powered on differently from the temperature or voltage of the next power on) . If this happens, it may be difficult for a host to exchange messages with the device. Various embodiments generate the key more robustly by placing the stored key in the memory so that it is not affected by external factors.
在一實施例中,密鑰在一裝置上生成一次且儲存於裝置之非揮發性記憶體中。在一實例中,在將一重設施加於一SRAM之前,可使用SRAM之內容生成密鑰。密鑰(其係PUF之一函數)使用來自PUF之偽隨機值輸出生成。在重設設備或其他裝置之前讀取SRAM之內容。亦可根據期望在其他時間透過一命令序列再生密鑰。在一實例中,所生成之密鑰用作為DICE-RIoT協定中之一UDS,如上文所描述。在一實例中,命令序列使用一替換命令將一先前生成之UDS替換為一新UDS,如上文所描述。In one embodiment, the key is generated once on a device and stored in the non-volatile memory of the device. In one example, before adding a heavy facility to an SRAM, the contents of the SRAM can be used to generate a key. The key (which is a function of the PUF) is generated using the pseudo-random value output from the PUF. Read the contents of SRAM before resetting equipment or other devices. It is also possible to regenerate the key through a command sequence at other times as desired. In an example, the generated key is used as one of the UDS in the DICE-RIoT protocol, as described above. In one example, the command sequence uses a replacement command to replace a previously generated UDS with a new UDS, as described above.
在一實施例中,密鑰生成獨立於由裝置實施之加密。所生成之密鑰與一主機共用。此實施例依避免一攻擊者猜到密鑰且內部使用密鑰(諸如(例如)藉由分析裝置在密鑰使用期間吸收之電流之形狀)之一方式儲存密鑰及/或讀取裝置中之密鑰。In one embodiment, the key generation is independent of the encryption implemented by the device. The generated key is shared with a host. This embodiment prevents an attacker from guessing the key and internally using the key (such as, for example, by analyzing the shape of the current drawn by the analysis device during the key use period) to store the key and/or in the reading device. The key.
另外,例如,在非對稱密碼中,所生成之密鑰變成可變通行碼,其係系統之密鑰。密鑰不與其他共用。針對公鑰密碼,密鑰用於生成一對應公鑰。In addition, for example, in an asymmetric cipher, the generated key becomes a variable pass code, which is the key of the system. The key is not shared with others. For public key cryptography, the key is used to generate a corresponding public key.
在各種實施例中,一初始密鑰使用一注入密鑰或使用一或多個PUF生成(例如用於提供一初始密鑰PUF0)。接著,初始密鑰經受混淆處理之一或多個步驟以提供中間密鑰(例如PUF1、PUF2、...、PUF5),諸如下文將描述。來自此處理之輸出(例如PUF5)係儲存於裝置之非揮發性記憶體中之一混淆密鑰。當使用一注入密鑰時,將混淆處理施加於注入密鑰,類似於下文針對PUF0之非限制性實例所描述。In various embodiments, an initial key is generated using an injection key or one or more PUFs (for example, to provide an initial key PUF0). Next, the initial key is subjected to one or more steps of obfuscation processing to provide an intermediate key (for example, PUF1, PUF2, ..., PUF5), such as will be described below. The output from this process (e.g. PUF5) is an obfuscated key stored in the non-volatile memory of the device. When an injected key is used, obfuscation is applied to the injected key, similar to what is described below for the non-limiting example of PUF0.
在一實施例中,如上文所提及,就一初始注入密鑰而言,一機構使用如下: 會話密鑰=MACkey_based [Root_Key、MTC或其他鮮度機構] 其中:Root_Key=存在於晶片上之任何其他種類之密鑰(例如,密鑰可為在一工廠或其他安全環境中注入晶片中之一初始密鑰)In one embodiment, as mentioned above, for an initial injection key, a mechanism uses the following: Session key=MAC key_based [Root_Key, MTC or other freshness mechanism] Where: Root_Key=existing on the chip Any other kind of key (for example, the key can be an initial key injected into the chip in a factory or other secure environment)
在一實施例中,在一裝置之第一通電中,一特殊序列喚醒裝置之至少一電路(例如一讀取電路)且驗證(若干)電路在適當運行。接著,裝置生成一初始密鑰PUF0,如上文所提及。此密鑰可被儲存或經進一步處理以使其更穩健地用於安全儲存,如下文將描述。In one embodiment, during the first power-up of a device, a special sequence wakes up at least one circuit of the device (eg, a read circuit) and verifies that the circuit(s) are operating properly. Next, the device generates an initial key PUF0, as mentioned above. This key can be stored or further processed to make it more robust for secure storage, as will be described below.
藉由串連PUF0與一預定位元序列(例如由其他已知之一序列)以生成PUF1來生成一中間密鑰PUF1。在一實施例中,PUF1用於驗證裝置正確讀取密鑰及確保雜訊(諸如電力供應之波動)不影響所生成之密鑰之能力。An intermediate key PUF1 is generated by concatenating PUF0 with a predetermined bit sequence (for example, a sequence known from another) to generate PUF1. In one embodiment, PUF1 is used to verify that the device reads the key correctly and to ensure that noise (such as fluctuations in power supply) does not affect the ability of the generated key.
生成下一中間密鑰PUF2。PUF1與一反相位元型樣(例如藉由使PUF1之位元反相來形成,且本文有時指稱反相PUF1)交錯以生成PUF2。Generate the next intermediate key PUF2. PUF1 is interleaved with an inverted phase element pattern (for example, formed by inverting the bits of PUF1, and sometimes referred to as inverted PUF1 herein) to generate PUF2.
在一實施例中,PUF2具有0及1之相同位元數。此使用於任何密鑰(例如儲存於裝置上之任何密鑰)之裝置電流之形狀實質上相同。此降低一駭客藉由在密鑰由裝置讀取時查看裝置電流之形狀來猜到密鑰值之可能性。In one embodiment, PUF2 has the same bit number of 0 and 1. The shape of the device current used for any key (for example, any key stored on the device) is substantially the same. This reduces the possibility that a hacker can guess the key value by looking at the shape of the device current when the key is read by the device.
生成下一中間密鑰PUF3。PUF2之位元與偽隨機位元交錯以形成PUF3。此有助於進一步混淆密鑰。在一實施例中,偽隨機位元藉由使用一雜湊函數來自PUF1或PUF2導出。例如,此等導出位元添加至PUF2以形成PUF3。Generate the next intermediate key PUF3. The bits of PUF2 are interleaved with pseudo-random bits to form PUF3. This helps to further obfuscate the key. In one embodiment, the pseudo-random bits are derived from PUF1 or PUF2 by using a hash function. For example, these derived bits are added to PUF2 to form PUF3.
生成下一中間密鑰PUF4。錯誤校正碼(ECC)由裝置之內部電路生成(例如在程式化期間)。ECC之位元添加至PUF3以生成PUF4。在一實施例中,ECC位元有助於預防可由(例如)裝置耐久限度、X射線及粒子引起之非揮發性記憶體(例如NVRAM)老化之效應。非揮發性記憶體老化亦可由(例如)可引起位元翻轉之NV胞元中之電子數增加引起。Generate the next intermediate key PUF4. The Error Correction Code (ECC) is generated by the internal circuitry of the device (for example, during programming). ECC bits are added to PUF3 to generate PUF4. In one embodiment, the ECC bit helps prevent the aging effects of non-volatile memory (such as NVRAM) caused by, for example, the endurance limit of the device, X-rays, and particles. The aging of non-volatile memory can also be caused by, for example, an increase in the number of electrons in NV cells that can cause bit flips.
生成下一中間密鑰PUF5。PUF5係PUF4之若干複本之一串連。使多個PUF4複本之冗餘存在於PUF5中藉由增加能夠在一稍後時間正確讀取密鑰之可能性來進一步提高穩健性。在一實施例中,PUF5之若干複本儲存於非揮發性記憶體儲存器之各種區域中以進一步提高穩健性。例如,即使PUF5在一區域中受到破壞,但PUF5可自其他區域讀取且因此可提取正確密鑰。Generate the next intermediate key PUF5. PUF5 is one of several copies of PUF4 in series. Make the redundancy of multiple PUF4 copies exist in PUF5 by increasing the possibility of being able to read the key correctly at a later time to further improve the robustness. In one embodiment, several copies of PUF5 are stored in various areas of the non-volatile memory storage to further improve the robustness. For example, even if PUF5 is damaged in one area, PUF5 can be read from other areas and therefore the correct key can be extracted.
在一實施例中,PUF1或PUF3係與一主機共用於對稱密碼或用於生成非對稱密碼之一公鑰之密鑰。在一實施例中,PUF4及PUF5不與終端使用者或一主機共用。In one embodiment, PUF1 or PUF3 is shared with a host for a symmetric cipher or a key used to generate a public key of an asymmetric cipher. In one embodiment, PUF4 and PUF5 are not shared with end users or a host.
上述方法係模組化的,因為無需PUF2、PUF3、PUF4及/或PUF5用於生成一混淆密鑰。相反地,在各種實施例中,上述混淆步驟之一或多者可應用於初始密鑰,且可進一步變動排序。例如,已知不具有Vdd電壓供應下降之一系統可減少混淆步驟數目。The above method is modular, because PUF2, PUF3, PUF4, and/or PUF5 are not required to generate an obfuscated key. On the contrary, in various embodiments, one or more of the aforementioned obfuscation steps can be applied to the initial key, and the order can be further changed. For example, a known system that does not have a Vdd voltage supply drop can reduce the number of aliasing steps.
在一實施例中,當儲存混淆密鑰時,位元型樣將實體分散於非揮發性儲存媒體中(例如呈不同列及字)。例如,裝置能夠同時讀取位元且防止多位元錯誤。In one embodiment, when the obfuscated key is stored, the bit pattern disperses the entities in the non-volatile storage medium (for example, in different rows and words). For example, the device can read bits at the same time and prevent multi-bit errors.
圖15展示根據一實施例之用於將一混淆密鑰635儲存於非揮發性記憶體(例如非揮發性儲存媒體109)中之一運算裝置603。運算裝置603係圖1之運算裝置141之一實例。在一實例中,混淆密鑰用作為一UDS。(應注意)例如,混淆將熵添加至密鑰之位元以避免一駭客可能試圖理解密鑰之值。裝置總是能夠藉由移除用作為混淆之添加位元來提取密鑰。在一實例中,一共同駭客攻擊由藉由使用統計工具處理由裝置在一些特定時框內吸收之電流分佈來猜測裝置內部所生成/精心設計之密鑰組成。FIG. 15 shows an
基於由至少一物理不可複製功能裝置121提供之一值生成一初始密鑰625。基於初始密鑰625生成混淆密鑰635。在生成之後,將混淆密鑰635儲存於非揮發性儲存媒體109中。An
在一實施例中,一訊息鑑別碼(MAC) 123使用來自PUF裝置121之值作為一輸入且提供初始密鑰625作為一輸出。在一實施例中,混淆處理模組630用於對初始密鑰625執行處理以提供混淆密鑰635 (例如PUF5),例如上文所討論。In one embodiment, a message authentication code (MAC) 123 uses the value from the
在一實施例中,將混淆密鑰635安全分配給另一運算裝置,如Mondello等人於2018年4月27日申請之名稱為「SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER」之相關美國非臨時申請案第15/965,731號中所描述,該案之全部內容以宛如全文闡述引用的方式併入本文中。在其他實施例中,可依相同或一類似方式安全分配初始密鑰625及/或來自本文所描述之混淆處理之中間密鑰之任何一或多者。一終端使用者/客戶視情況使用上述方法讀取一初始密鑰(例如PUF0)、一中間密鑰及/或一最終混淆密鑰(例如PUF5)之值。例如,終端使用者可驗證由裝置內部生成密鑰之適當執行及/或監測密鑰生成之統計品質。In one embodiment, the obfuscation key 635 is securely distributed to another computing device, such as the related U.S. non-temporary "SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER" filed by Mondello et al. on April 27, 2018. As described in Application No. 15/965,731, the entire content of the case is incorporated into this article as if it were cited in its entirety. In other embodiments, any one or more of the
圖16展示根據一實施例之由混淆處理模組630在一混淆程序期間生成之一中間密鑰(PUF2)之一實例。如上文所提及,PUF1之位元經反相以提供反相位元702。位元702與所繪示之PUF1之位元交錯。例如,所繪示之密鑰中之每第二位元係一交錯反相位元702。FIG. 16 shows an example of an intermediate key (PUF2) generated by the obfuscation module 630 during an obfuscation process according to an embodiment. As mentioned above, the bits of PUF1 are inverted to provide an
圖17展示根據一實施例之圖16之混淆程序期間所生成之另一中間密鑰(PUF3)之一實例(在此實例中,PUF3係基於PUF2)。如上文所提及,PUF2之位元進一步與偽隨機位元802交錯。如圖中所繪示,位元802與PUF2交錯。例如,所繪示之密鑰中之每第三位元係一交錯偽隨機位元802。FIG. 17 shows an example of another intermediate key (PUF3) generated during the obfuscation procedure of FIG. 16 according to an embodiment (in this example, PUF3 is based on PUF2). As mentioned above, the bits of PUF2 are further interleaved with
圖18展示根據一實施例之用於生成一混淆密鑰(例如混淆密鑰635)且將混淆密鑰儲存於一非揮發性記憶體(例如非揮發性儲存媒體109)中之一方法。在一實例中,圖2之記憶體系統105將混淆密鑰儲存於非揮發性記憶體121中。FIG. 18 shows a method for generating an obfuscated key (such as obfuscated key 635) and storing the obfuscated key in a non-volatile memory (such as non-volatile storage medium 109) according to an embodiment. In one example, the
在區塊911中,基於由至少一物理不可複製功能(PUF)提供之一值生成一初始密鑰。In
在其他實施例中,在區塊911中,藉由密鑰注入生成初始密鑰。例如,在製造期間,初始密鑰可僅為在製造期間注入至一晶片中之一值。In other embodiments, in
在區塊913中,基於初始密鑰生成一混淆密鑰。例如,所生成之混淆密鑰係PUF3或PUF5。In block 913, an obfuscated key is generated based on the initial key. For example, the generated obfuscated key is PUF3 or PUF5.
在區塊915中,將混淆密鑰儲存於一運算裝置之一非揮發性記憶體中。例如,將混淆密鑰儲存於一NAND快閃記憶體或一EEPROM中。In
在一實施例中,一方法包含:使用密鑰注入生成一初始密鑰;基於初始密鑰生成一混淆密鑰;及將混淆密鑰儲存於非揮發性記憶體中。例如,初始密鑰可為在製造時之一密鑰注入程序期間注入之密鑰。In one embodiment, a method includes: generating an initial key using key injection; generating an obfuscated key based on the initial key; and storing the obfuscated key in a non-volatile memory. For example, the initial key may be a key injected during a key injection procedure at the time of manufacture.
在一實施例中,一方法包括:生成由密鑰注入提供或基於由至少一物理不可複製功能(PUF)提供之一值之一初始密鑰;基於初始密鑰生成一混淆密鑰;及將混淆密鑰儲存於運算裝置之一非揮發性記憶體中。In one embodiment, a method includes: generating an initial key provided by key injection or based on a value provided by at least one physical uncopyable function (PUF); generating an obfuscated key based on the initial key; and The obfuscated key is stored in a non-volatile memory of the computing device.
在一實施例中,生成初始密鑰包括使用來自PUF之值(或例如晶片上之另一值)作為一訊息鑑別碼(MAC)之一輸入來生成初始密鑰。In one embodiment, generating the initial key includes using a value from the PUF (or another value on the chip, for example) as an input of a message authentication code (MAC) to generate the initial key.
在一實施例中,混淆密鑰儲存於使用者可定址記憶體空間外部之非揮發性記憶體中。In one embodiment, the obfuscated key is stored in a non-volatile memory outside the user-addressable memory space.
在一實施例中,生成混淆密鑰包括串連初始密鑰與位元之一預定型樣。In one embodiment, generating the obfuscated key includes concatenating the initial key and a predetermined pattern of bits.
在一實施例中,串連初始密鑰與位元之預定型樣提供一第一密鑰(例如PUF1);且生成混淆密鑰進一步包括使第一密鑰與一反相位元型樣交錯,其中反相位元型樣藉由使第一密鑰之位元反相來提供。In one embodiment, concatenating the initial key and the predetermined pattern of bits provides a first key (such as PUF1); and generating the obfuscated key further includes interleaving the first key with an inverse phase element pattern , Where the inverted phase element pattern is provided by inverting the bits of the first key.
在一實施例中,使第一密鑰與反相位元型樣交錯提供一第二密鑰(例如PUF2);且生成混淆密鑰進一步包括使第二密鑰與偽隨機位元交錯。In one embodiment, interleaving the first key and the inverse phase element pattern provides a second key (such as PUF2); and generating the obfuscated key further includes interleaving the second key with pseudo-random bits.
在一實施例中,方法進一步包括使用一雜湊函數自第一密鑰或第二密鑰導出偽隨機位元。In one embodiment, the method further includes using a hash function to derive pseudo-random bits from the first key or the second key.
在一實施例中,使第二密鑰與偽隨機位元交錯提供一第三位元(例如PUF3);且生成混淆密鑰進一步包括串連第三密鑰與錯誤校正碼位元。In one embodiment, interleaving the second key and pseudo-random bits to provide a third bit (such as PUF3); and generating the obfuscated key further includes concatenating the third key and error correction code bits.
在一實施例中,運算裝置係一第一運算裝置,方法進一步包括與一第二運算裝置共用初始密鑰、第一密鑰或第三密鑰之至少一者及自第二運算裝置接收使用初始密鑰、第一密鑰或第三密鑰之至少一共用者加密之訊息。In one embodiment, the computing device is a first computing device, and the method further includes sharing at least one of the initial key, the first key, or the third key with a second computing device and receiving and using it from the second computing device A message encrypted by at least one of the initial key, the first key, or the third key.
在一實施例中,串連第三密鑰與錯誤校正碼位元提供一第四密鑰(例如PUF4);且生成混淆密鑰進一步包括串連第四密鑰與第四密鑰之一或多個複本。In an embodiment, concatenating the third key and the error correction code bit provides a fourth key (such as PUF4); and generating the obfuscated key further includes concatenating one of the fourth key and the fourth key or Multiple copies.
在一實施例中,串連第四密鑰與第四密鑰之一或多個複本提供一第五密鑰(例如PUF5);且儲存混淆密鑰包括將第五密鑰之一第一複本儲存於不同於第五密鑰之一第二複本儲存於其上之一列或區塊之非揮發性記憶體之一列或區塊之至少一者上。In an embodiment, concatenating one or more copies of the fourth key and the fourth key provides a fifth key (for example, PUF5); and storing the obfuscated key includes storing the first copy of the fifth key Stored in at least one of the rows or blocks of non-volatile memory on which the second copy of the fifth key is different from that of the row or block.
在一實施例中,一系統包括:至少一物理不可複製功能(PUF)裝置(例如PUF裝置121),其經組態以提供一第一值;一非揮發性記憶體(例如非揮發性儲存媒體109),其經組態以儲存一混淆密鑰(例如密鑰635);至少一處理器;及記憶體,其含有指令,指令經組態以指示至少一處理器:基於由至少一PUF裝置提供之第一值生成一初始密鑰;基於初始密鑰生成混淆密鑰;且將混合密鑰儲存於非揮發性記憶體中。In one embodiment, a system includes: at least one physical non-copyable function (PUF) device (such as PUF device 121) configured to provide a first value; a non-volatile memory (such as non-volatile storage) Medium 109), which is configured to store an obfuscated key (such as key 635); at least one processor; and memory, which contains instructions configured to instruct at least one processor: based on at least one PUF The first value provided by the device generates an initial key; generates an obfuscated key based on the initial key; and stores the mixed key in a non-volatile memory.
在一實施例中,系統進一步包括經組態以接收由至少一PUF裝置提供之值之一訊息鑑別碼(MAC)模組(例如MAC 123),其中生成初始密鑰包括使用第一值作為MAC模組之一輸入來生成初始密鑰。In one embodiment, the system further includes a message authentication code (MAC) module (such as MAC 123) configured to receive one of the values provided by the at least one PUF device, wherein generating the initial key includes using the first value as the MAC Enter one of the modules to generate the initial key.
在一實施例中,生成混淆密鑰包括以下之至少一者:串連一密鑰與位元之一預定型樣;使一第一密鑰與第一密鑰之一反相位元型樣交錯;使一密鑰與偽隨機位元交錯;串連一密鑰與錯誤校正碼位元;或串連一第二密鑰與第二密鑰之一或多個複本。In one embodiment, generating the obfuscated key includes at least one of the following: concatenating a key and a predetermined pattern of bits; making a first key and an inverse phase element pattern of the first key Interleaving; interleaving a key and pseudo-random bits; concatenating a key and error correction code bits; or concatenating a second key and one or more copies of the second key.
在一實施例中,所儲存之混淆密鑰具有相等數目個0位元及1位元。In one embodiment, the stored obfuscated key has an equal number of 0 bits and 1 bit.
在一實施例中,生成混淆密鑰包括串連初始密鑰與位元之一第一型樣。In one embodiment, generating the obfuscated key includes concatenating the initial key and a first pattern of bits.
在一實施例中,串連初始密鑰與位元之第一型樣提供一第一密鑰;且生成混淆密鑰進一步包括使第一密鑰與位元之一第二型樣交錯。In one embodiment, concatenating the initial key and the first pattern of bits provides a first key; and generating the obfuscated key further includes interleaving the first key with a second pattern of bits.
在一實施例中,生成混淆密鑰進一步包括使一密鑰與偽隨機位元交錯。In one embodiment, generating the obfuscated key further includes interleaving a key with pseudo-random bits.
在一實施例中,生成混淆密鑰進一步包括串連一密鑰與錯誤校正碼位元。In one embodiment, generating the obfuscated key further includes concatenating a key and error correction code bits.
在一實施例中,一非暫時性電腦儲存媒體儲存指令,指令在執行於一運算裝置上時引起運算裝置執行一方法,方法包括:使用至少一物理不可複製功能(PUF)生成一初始密鑰;基於初始密鑰生成一混淆密鑰;及將混淆密鑰儲存於非揮發性記憶體中。In one embodiment, a non-transitory computer storage medium stores instructions that, when executed on a computing device, cause the computing device to execute a method. The method includes: using at least one physical uncopyable function (PUF) to generate an initial key ; Generate an obfuscated key based on the initial key; and store the obfuscated key in non-volatile memory.
圖19展示根據一實施例之用於基於密鑰注入1010生成初始密鑰625、混淆初始密鑰及將混淆密鑰儲存於非揮發性記憶體中之運算裝置1003。FIG. 19 shows a computing device 1003 for generating an
在一實施例中,藉由使用注入密鑰1010生成初始密鑰625。例如,初始密鑰625藉由在製造或其他組裝或測試期間在一工廠或其他安全環境中注入來存在於一晶片中。在一實例中,初始密鑰625用作為運算裝置1003之一初始UDS。混淆亦可施加於UDS。UDS係DICE-RIoT開始用於生成密鑰及憑證之安全生成之秘密。藉由將混淆處理(經由模組630)施加於注入密鑰(例如來自密鑰注入1010之值)來執行施加處理以增加初始密鑰之混淆。在其他實施例中,混淆處理可施加於可儲存或否則存在於一晶片或晶粒上之任何其他值。密鑰生成及安全儲存之變動 In one embodiment, the
現將在下文描述各種額外非限制性實施例。在一實施例中,在一系統板之第一通電之後(或期間),啟動一特殊序列以發動含有一密碼引擎(例如密碼模組127)之裝置。序列進一步喚醒內部PUF及驗證其功能,接著,PUF生成一初始值PUF0,例如上文所描述。PUF0值由一晶片上演算法(例如由混淆處理模組630)處理且寫入於一非揮發性陣列之一特殊區域(在使用者可定址空間外)中。在替代實施例中,一注入密鑰替代PUF0值由晶片上演算法類似處理(如下文將描述)以提供一混淆密鑰用於儲存。Various additional non-limiting embodiments will now be described below. In one embodiment, after (or during) the first power-on of a system board, a special sequence is initiated to activate a device containing a cryptographic engine (such as a cryptographic module 127). The sequence further wakes up the internal PUF and verifies its function. Then, the PUF generates an initial value PUF0, such as described above. The PUF0 value is processed by an on-chip algorithm (for example, by the obfuscation processing module 630) and written in a special area (outside the user addressable space) of a non-volatile array. In an alternative embodiment, an injection key instead of the PUF0 value is similarly processed by the on-chip algorithm (as described below) to provide an obfuscated key for storage.
在一實施例中,執行混淆處理以防止Vdd (電壓)及/或溫度故障駭客攻擊。此處理包含串連PUF0與一熟知型樣(例如,其含有固定量之0/1位元)。此等位元容許在裝置(例如晶片)之壽命期間在內部讀取PUF值時判定讀取電路是否能夠適當區別0/1位元。例如,PUF1=PUF0 || 010101…01。In one embodiment, obfuscation is performed to prevent Vdd (voltage) and/or temperature fault hacking attacks. This process involves concatenating PUF0 with a well-known pattern (for example, it contains a fixed amount of 0/1 bits). These bits allow to determine whether the reading circuit can properly distinguish 0/1 bits when reading the PUF value internally during the life of the device (such as a chip). For example, PUF1=PUF0 || 010101…01.
接著,上述處理之結果(例如PUF1)進一步體現為虛擬位元(例如為了避免Icc駭客分析)。具體而言,例如,PUF1之位元與PUF1之一反相型式(即,反相PUF1,其藉由使PUF1之各位元反相來形成)交錯。例如,PUF2=PUF1交錯反相PUF1。Then, the result of the above processing (for example, PUF1) is further embodied as virtual bits (for example, to avoid Icc hacker analysis). Specifically, for example, the bits of PUF1 are interleaved with an inverted version of PUF1 (ie, inverted PUF1, which is formed by inverting the bits of PUF1). For example, PUF2=PUF1 interleaved inverted PUF1.
在一實施例中,交錯之規則取決於存在於晶片/裝置上之行解碼器(例如一NV非揮發性陣列之行解碼器)之種類。裝置確保在PUF值(來自非揮發性陣列)之各讀取中,讀取電路處理(在一單次中)來自PUF1及反相PUF1之相同數目個位元。此確保讀取具有值0及1之相同數目個位元,其提供供應電流(Idd)之一規則形狀。In one embodiment, the interleaving rule depends on the type of row decoder (such as a row decoder of an NV non-volatile array) existing on the chip/device. The device ensures that in each reading of the PUF value (from the non-volatile array), the reading circuit processes (in a single time) the same number of bits from PUF1 and inverted PUF1. This ensures that the same number of bits with
接著,PUF2之位元進一步與偽隨機位元交錯。在一實例中,交錯取決於非揮發性陣列行解碼器結構。在一實施例中,輸出使相同數目個PUF2位元填滿特定數目個偽隨機位元(例如為了混淆可存在於PUF2型樣中之一最終殘差相關)。Then, the bits of PUF2 are further interleaved with pseudo-random bits. In one example, the interleaving depends on the non-volatile array row decoder structure. In one embodiment, the output is such that the same number of PUF2 bits are filled with a specific number of pseudo-random bits (for example, one final residual correlation may exist in the PUF2 pattern for confusion).
在一實施例中,偽隨機位元可藉由使用一雜湊函數來自PUF1或PUF2導出。亦可使用其他替代方法。In one embodiment, the pseudo-random bits can be derived from PUF1 or PUF2 by using a hash function. Other alternative methods can also be used.
在一實施例中,為減少或防止歸因於非揮發性老化之位元損失,PUF3之位元視情況與錯誤校正碼(ECC)位元串連。在一實施例中,PUF4之位元視情況重複一或多次(其亦擴展ECC能力)。例如,上述情況可在一NAND記憶體上實施。在一實施例中,PUF5=PUF4 || PUF4 || ... || PUF4。In one embodiment, to reduce or prevent bit loss due to non-volatile aging, PUF3 bits are concatenated with error correction code (ECC) bits as appropriate. In one embodiment, the bit of PUF4 is repeated one or more times as appropriate (it also extends ECC capability). For example, the above situation can be implemented on a NAND memory. In one embodiment, PUF5=PUF4 || PUF4 || ... || PUF4.
在一實施例中,PUF5之值可在一非揮發性記憶體陣列之不同列及/或區塊上寫入兩次或更多次。In one embodiment, the value of PUF5 can be written two or more times in different rows and/or blocks of a non-volatile memory array.
由於(例如)上述混淆處理,一旦將最終PUF值寫入至一非揮發性陣列區塊中,則可在減少或不關心密鑰可靠性(例如歸因於雜訊或電荷損失)或任何試圖藉由Idd分析來推斷其值或藉由Vdd故障攻擊來強迫其值之情況下使用值。Due to (for example) the above-mentioned obfuscation process, once the final PUF value is written into a non-volatile array block, the key reliability (for example due to noise or charge loss) or any attempt can be reduced or ignored. Use the value when inferring its value by Idd analysis or forcing its value by Vdd fault attack.
在一實施例中,一旦已完成混淆處理,則可顯示PUF電路。在一實施例中,在停用之後,PUF裝置可提供內部用於一裝置上用於其他目的(例如在非揮發性陣列內部使用一標準讀取操作)。In one embodiment, once the obfuscation processing has been completed, the PUF circuit can be displayed. In one embodiment, after deactivation, the PUF device can provide internal use on a device for other purposes (for example, using a standard read operation inside the non-volatile array).
在一實施例中,當自PUF3提取一密鑰時,區別密鑰位元與隨機位元。例如,儲存一密鑰之一裝置之內部邏輯知道位置及自PUF 5恢復至一先前或原始PUF (例如PUF3)所需之方法。In one embodiment, when extracting a key from PUF3, the key bits are distinguished from random bits. For example, the internal logic of a device that stores a key knows the location and the method required to restore from PUF 5 to a previous or original PUF (such as PUF3).
在一實施例中,藉由裝置提取密鑰來知道密鑰位元之位元位置。例如,裝置之內部邏輯可取決於設計選擇而接收中間PUF或最終密鑰PUF5之一者。接著,依相反順序施加(若干)操作將獲得原始PUF。例如,執行自PUF1至PUF5之處理步驟以依一駭客必須進行以下兩者之一方式儲存混淆PUF:讀取內容(例如密鑰位元)及亦知道經施加以恢復及判定原始密鑰之(若干)操作。結論 In one embodiment, the device extracts the key to know the bit position of the key bit. For example, the internal logic of the device may receive one of the intermediate PUF or the final key PUF5 depending on the design choice. Then, applying the operation(s) in the reverse order will obtain the original PUF. For example, the processing steps from PUF1 to PUF5 are executed in order to store obfuscated PUF in one of the following two ways: read the content (such as the key bits) and also know what is applied to restore and determine the original key (Several) operations. in conclusion
一非暫時性電腦儲存媒體可用於儲存韌體104之指令或儲存處理器143或處理裝置111之指令。當指令由(例如)記憶體裝置103或運算裝置603之控制器107執行時,指令引起控制器107執行上文所討論之方法之任何者。A non-transitory computer storage medium can be used to store the instructions of the firmware 104 or store the instructions of the
在[實施方式]中,各種功能及操作可描述為由電腦指令執行或引起以簡化描述。然而,熟習技術者應認識到,此等表述意謂功能源自由一或多個控制器或處理器(諸如一微處理器)執行電腦指令。替代地或組合地,可在具有或不具有軟體指令之情況下使用專用電路實施功能及操作,諸如使用專用積體電路(ASIC)或場可程式化閘陣列(FPGA)。實施例可在無軟體指令之情況下或結合軟體指令使用固線式電路實施。因此,技術既不受限於硬體電路及軟體之任何特定組合,又不受限於由資料處理系統執行之指令之任何特定源。In the [Embodiment Mode], various functions and operations can be described as being executed or caused by computer instructions to simplify the description. However, those skilled in the art should realize that these expressions mean that the functions are derived from the execution of computer instructions by one or more controllers or processors (such as a microprocessor). Alternatively or in combination, dedicated circuits can be used to implement functions and operations with or without software instructions, such as dedicated integrated circuits (ASIC) or field programmable gate arrays (FPGA). The embodiments can be implemented without software instructions or in combination with software instructions using fixed-wire circuits. Therefore, the technology is neither limited to any specific combination of hardware circuits and software, nor is it limited to any specific source of instructions executed by the data processing system.
儘管一些實施例可以完全運作電腦及電腦系統實施,但各種實施例能夠以各種形式分佈為一運算產品且能夠被應用,不管用於實際影響分佈之特定類型之機器或電腦可讀媒體如何。Although some embodiments can be implemented by fully operating computers and computer systems, various embodiments can be distributed as a computing product in various forms and can be applied, regardless of the specific type of machine or computer-readable medium used to actually affect the distribution.
所揭示之至少一些態樣可至少部分以軟體體現。即,技術可回應於其處理器(諸如一微處理器或微控制器)執行含於一記憶體(諸如ROM、揮發性RAM、非揮發性記憶體、快取或一遠端儲存裝置)中之指令之序列而實施於一電腦系統或其他資料處理系統中。At least some aspects disclosed may be at least partially embodied in software. That is, the technology can be implemented in a memory (such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device) in response to its processor (such as a microprocessor or microcontroller). The sequence of commands is implemented in a computer system or other data processing system.
經執行以實施實施例之常式可實施為一作業系統或一特定應用、組件、程式、物件、模組或指令序列之部分(指稱「電腦程式」)。電腦程式通常包括一電腦中之各種記憶體及儲存裝置中各種時間設定之一或多個指令,且指令在由一電腦中之一或多個處理器讀取及執行時引起電腦執行執行涉及各種態樣之元素所需之操作。The routines executed to implement the embodiments can be implemented as part of an operating system or a specific application, component, program, object, module, or command sequence (referred to as "computer program"). A computer program usually includes one or more instructions of various time settings in various memories and storage devices in a computer, and when the instructions are read and executed by one or more processors in a computer, they cause the computer to execute and execute. The operations required for the elements of the state.
一有形、非暫時性電腦儲存媒體可用於儲存軟體及資料,軟體及資料在由一資料處理系統執行時引起系統執行各種方法。可執行軟體及資料可儲存於包含(例如) ROM、揮發性RAM、非揮發性記憶體及/或快取之各種位置中。此軟體及/或資料之部分可儲存於此等儲存裝置之任何者中。此外,資料及指令可自中央伺服器或點對點網路獲得。資料及指令之不同部分可在不同時間及不同通信會話或一相同通信會話自不同中央伺服器及/或點對點網路獲得。可在執行應用程式之前獲得全部資料及指令。替代地,可僅在需要執行時動態即時地獲得資料及指令之部分。因此,無需全部資料及指令在一特定時間點位於一機器可讀媒體上。A tangible, non-transitory computer storage medium can be used to store software and data, which, when executed by a data processing system, cause the system to execute various methods. Executable software and data can be stored in various locations including, for example, ROM, volatile RAM, non-volatile memory, and/or cache. Part of this software and/or data can be stored in any of these storage devices. In addition, data and commands can be obtained from a central server or a peer-to-peer network. Different parts of the data and commands can be obtained from different central servers and/or peer-to-peer networks at different times and in different communication sessions or in the same communication session. All data and instructions can be obtained before running the application. Alternatively, the part of the data and instructions can be obtained dynamically and in real time only when it needs to be executed. Therefore, it is not necessary for all the data and instructions to be on a machine-readable medium at a specific point in time.
電腦可讀儲存媒體之實例包含(但不限於)可記錄及不可記錄型媒體,諸如揮發性及非揮發性記憶體裝置、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、快閃記憶體裝置、軟碟及其他可抽換磁碟、磁碟儲存媒體及光學儲存媒體(例如光碟唯讀硬體(CD ROM)、數位多功能光碟(DVD)等等)等等。指令可體現於一暫時性媒體(諸如電、光學、聲學或其他形式之傳播信號,諸如載波、紅外線信號、數位信號等等)中。一暫時性媒體通常用於傳輸指令,但不應被視為能夠儲存指令。Examples of computer-readable storage media include (but are not limited to) recordable and non-recordable media, such as volatile and non-volatile memory devices, read-only memory (ROM), random access memory (RAM), fast Flash memory devices, floppy disks and other removable disks, disk storage media and optical storage media (such as CD ROM, digital versatile disc (DVD), etc.), etc. The instructions may be embodied in a temporary medium (such as electrical, optical, acoustic, or other forms of propagated signals, such as carrier waves, infrared signals, digital signals, etc.). A temporary medium is usually used to transmit instructions, but it should not be regarded as capable of storing instructions.
在各種實施例中,固線式電路可與軟體指令組合使用以實施技術。因此,技術既不受限於硬體電路及軟體之任何特定組合,又不受限於由資料處理系統執行之指令之任何特定源。In various embodiments, fixed-wire circuits can be used in combination with software commands to implement the technology. Therefore, the technology is neither limited to any specific combination of hardware circuits and software, nor is it limited to any specific source of instructions executed by the data processing system.
儘管一些圖式依一特定順序繪示若干操作,但與順序無關之操作可重新排序且其他操作可組合或中斷。儘管具體提及一些重新排序或其他分組,但一般技術者應明白其他重新排序或分組且因此不呈現一替代方案窮舉列表。再者,應認識到,階段可以硬體、韌體、軟體或其等之任何組合實施。Although some figures show several operations in a specific order, operations that are not related to the order can be reordered and other operations can be combined or interrupted. Although some reordering or other groupings are specifically mentioned, those skilled in the art should be aware of other reorderings or groupings and therefore do not present an exhaustive list of alternatives. Furthermore, it should be recognized that the stages can be implemented in hardware, firmware, software, or any combination thereof.
以上描述及圖式係繪示性且不應被解釋為限制。描述諸多具體細節以提供一透徹理解。然而,在特定例項中,未描述熟知或習知細節以避免使描述不清楚。參考本發明中之一實施例未必係參考相同實施例;且此等參考意謂「至少一」。The above description and drawings are illustrative and should not be construed as limiting. Describe many specific details to provide a thorough understanding. However, in specific examples, well-known or well-known details are not described in order to avoid making the description unclear. Reference to one embodiment of the present invention does not necessarily refer to the same embodiment; and these references mean "at least one."
在以上說明中,已參考本發明之特定例示性實施例來描述本發明。顯而易見,可在不背離以下申請專利範圍中所闡述之較廣精神及範疇之情況下對本發明作出各種修改。因此,本說明書及圖式應被視為意在繪示而非限制。In the above description, the present invention has been described with reference to specific exemplary embodiments of the present invention. Obviously, various modifications can be made to the present invention without departing from the broader spirit and scope described in the scope of the following patent applications. Therefore, this specification and drawings should be regarded as intended to illustrate rather than limit.
100:運算系統/車輛 101:主機系統/主機 103:匯流排/記憶體裝置 104:韌體 105:記憶體系統/主機介面 106:揮發性動態隨機存取記憶體(DRAM) 107:識別組件/寫入組件/控制器 109:驗證組件/非揮發性儲存媒體 110:車輛運算裝置 111:處理裝置/記憶體區域/物理不可複製功能(PUF)架構 113, ..., 119:記憶體區域 120:處理器 121:非揮發性記憶體/PUF裝置 123:揮發性記憶體/訊息鑑別碼(MAC)模組 125:唯一密鑰 127:密碼模組 130:車載通信組件 140:天線 141:運算裝置 143:處理器 145:記憶體 147:識別組件 149:裝置秘密 150:處理器 151:主機裝置 153:驗證組件 155:鮮度生成器 157:密鑰儲存器 159:密鑰生成器 160:記憶體 170:轉向控制系統 180:速度控制系統 190:資訊系統 202:PUF裝置 204:選擇器模組 300:車輛 302:單調計數器 310:被動通信組件 320:晶片 330:非揮發性儲存組件 340:天線 350:主機裝置 360:處理器 370:記憶體 380:天線 390:系統 410':箭頭 410'':箭頭 411:區塊 413:區塊 415:區塊 417:區塊 419:區塊 430':外部通信組件 430'':車載通信組件 502:根密鑰 504:MAC模組 510':箭頭 510'':箭頭 520:非對稱ID生成器 530:加密器 531:型樣(資料)合併 540:非對稱密鑰生成器 550:額外加密器 603:運算裝置 625:初始密鑰 630:混淆處理模組 635:混淆密鑰 702:反相位元 730:解密器 731:型樣(資料)合併 750:解密器 760:區塊 802:偽隨機位元 810':外部運算裝置 810'':車輛運算裝置 911:區塊 913:區塊 915:區塊 921:區塊 923:區塊 925:區塊 1003:運算裝置 1010:密鑰注入/注入密鑰100: computing system/vehicle 101: host system/host 103: bus/memory device 104: Firmware 105: Memory System/Host Interface 106: Volatile Dynamic Random Access Memory (DRAM) 107: Identify component/write component/controller 109: Verify components/non-volatile storage media 110: Vehicle computing device 111: Processing device/memory area/physical non-copyable function (PUF) architecture 113, ..., 119: memory area 120: processor 121: Non-volatile memory/PUF device 123: Volatile memory/message authentication code (MAC) module 125: unique key 127: Password Module 130: In-vehicle communication components 140: Antenna 141: arithmetic device 143: Processor 145: Memory 147: Identify components 149: Device Secret 150: processor 151: host device 153: Verification component 155: Freshness Generator 157: Key Storage 159: Key Generator 160: memory 170: Steering Control System 180: Speed control system 190: Information System 202: PUF device 204: Selector Module 300: Vehicle 302: Monotonic Counter 310: Passive communication components 320: chip 330: Non-volatile storage components 340: Antenna 350: host device 360: processor 370: Memory 380: Antenna 390: System 410': Arrow 410'': Arrow 411: Block 413: Block 415: Block 417: Block 419: Block 430': External communication components 430'': On-board communication components 502: Root Key 504: MAC module 510': Arrow 510'': Arrow 520: Asymmetric ID generator 530: Encryptor 531: pattern (data) merge 540: Asymmetric key generator 550: Extra Encryptor 603: Computing Device 625: initial key 630: Obfuscation Processing Module 635: Confusion key 702: Inverse Phase Element 730: Decryptor 731: Pattern (data) merger 750: Decryptor 760: block 802: pseudo-random bit 810': External computing device 810'': Vehicle computing device 911: block 913: block 915: Block 921: block 923: block 925: block 1003: computing device 1010: Key injection/key injection
附圖中依舉例而非限制方式繪示實施例,其中相同元件符號指示類似元件。The drawings illustrate the embodiments by way of example rather than limitation, wherein the same element symbols indicate similar elements.
圖1展示根據一實施例之驗證一運算裝置之身份之一主機裝置。FIG. 1 shows a host device for verifying the identity of a computing device according to an embodiment.
圖2展示根據一實施例之具有一識別組件及一驗證組件之一實例性運算系統。Figure 2 shows an exemplary computing system with an identification component and a verification component according to an embodiment.
圖3展示根據一實施例之一車輛之一實例性運算裝置。Fig. 3 shows an exemplary computing device of a vehicle according to an embodiment.
圖4展示根據一實施例之與一車輛之一實例性運算裝置通信之一實例性主機裝置。Figure 4 shows an example host device in communication with an example computing device of a vehicle according to an embodiment.
圖5A展示根據一實施例之生成一主機裝置之一識別符、憑證及密鑰之一應用板。FIG. 5A shows an application board for generating an identifier, a certificate, and a key of a host device according to an embodiment.
圖5B展示根據一實施例之在使用層之階段中啟動之一實例性運算系統。FIG. 5B shows an example computing system activated in the stage of using the layer according to an embodiment.
圖6展示根據一實施例之使用非對稱生成器生成一識別符、憑證及密鑰之一實例性運算裝置。FIG. 6 shows an exemplary computing device that uses an asymmetric generator to generate an identifier, credential, and key according to an embodiment.
圖7展示根據一實施例之使用解密操作驗證一運算裝置之身份之一驗證組件。FIG. 7 shows a verification component that uses a decryption operation to verify the identity of a computing device according to an embodiment.
圖8展示根據一實施例之驗證一憑證之一實例性程序之一方塊圖。FIG. 8 shows a block diagram of an exemplary procedure for verifying a certificate according to an embodiment.
圖9展示根據一實施例之使用一識別符、憑證及一密鑰驗證一運算裝置之一身份之一方法。FIG. 9 shows a method of verifying the identity of an computing device using an identifier, a certificate, and a key according to an embodiment.
圖10展示根據一實施例之用於自一物理不可複製功能(PUF)裝置接收一輸入之一訊息鑑別碼(MAC)之一輸出生成一唯一密鑰之一系統。FIG. 10 shows a system for generating a unique key by receiving an input, a message authentication code (MAC), and an output from a physical uncopyable function (PUF) device according to an embodiment.
圖11展示根據一實施例之用於自由一選擇器模組選擇之一或多個PUF裝置接收輸入之一MAC之一輸出生成一唯一密鑰之一系統。FIG. 11 shows a system for freely a selector module to select one or more PUF devices to receive a MAC and output a unique key according to an embodiment.
圖12展示根據一實施例之用於自一或多個PUF裝置接收輸入及自一單調計數器接收一輸入(及/或自另一鮮度機構(諸如NONCE、時戳等等)接收一輸入)之一MAC之一輸出生成一唯一密鑰之一系統。Figure 12 shows a method for receiving input from one or more PUF devices and receiving an input from a monotonic counter (and/or receiving an input from another freshness mechanism (such as NONCE, time stamp, etc.)) according to an embodiment One output of a MAC generates a unique key system.
圖13展示根據一實施例之自使用自一或多個PUF提供之一或多個輸入值之一MAC生成一輸出之一方法。FIG. 13 shows a method of generating an output from one or more input values provided by one or more PUFs from a MAC according to an embodiment.
圖14展示根據一實施例之用於自一MAC之一輸出生成一根密鑰且添加一額外MAC來生成一會話密鑰之一系統,MAC自一或多個PUF裝置接收輸入及自一單調計數器接收一輸入(及/或自另一鮮度機構(如NONCE、時戳等等)接收一輸入)。Figure 14 shows a system for generating a key from an output of a MAC and adding an additional MAC to generate a session key according to an embodiment. The MAC receives input from one or more PUF devices and from a monotonic The counter receives an input (and/or receives an input from another freshness mechanism (such as NONCE, time stamp, etc.)).
圖15展示根據一實施例之用於將一混淆密鑰儲存於非揮發性記憶體中之一運算裝置。FIG. 15 shows an arithmetic device for storing an obfuscated key in a non-volatile memory according to an embodiment.
圖16展示根據一實施例之一混淆程序期間生成之一中間密鑰之一實例。Figure 16 shows an example of an intermediate key generated during an obfuscation procedure according to an embodiment.
圖17展示根據一實施例之圖16之混淆程序期間生成之另一中間密鑰之一實例。FIG. 17 shows an example of another intermediate key generated during the obfuscation procedure of FIG. 16 according to an embodiment.
圖18展示根據一實施例之用於生成一混淆密鑰且將混淆密鑰儲存於一非揮發性記憶體中之一方法。Figure 18 shows a method for generating an obfuscated key and storing the obfuscated key in a non-volatile memory according to an embodiment.
圖19展示根據一實施例之用於基於密鑰注入生成一初始密鑰、混淆初始密鑰及將混淆密鑰儲存於非揮發性記憶體中之一運算裝置。FIG. 19 shows an operation device for generating an initial key based on key injection, obfuscating the initial key, and storing the obfuscated key in non-volatile memory according to an embodiment.
921:區塊 921: block
923:區塊 923: block
925:區塊 925: block
Claims (18)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/363,196 US11323275B2 (en) | 2019-03-25 | 2019-03-25 | Verification of identity using a secret key |
US16/363,196 | 2019-03-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202038123A TW202038123A (en) | 2020-10-16 |
TWI740409B true TWI740409B (en) | 2021-09-21 |
Family
ID=72605209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109107607A TWI740409B (en) | 2019-03-25 | 2020-03-09 | Verification of identity using a secret key |
Country Status (7)
Country | Link |
---|---|
US (2) | US11323275B2 (en) |
EP (1) | EP3949265A4 (en) |
JP (1) | JP2022528641A (en) |
KR (1) | KR20210131438A (en) |
CN (1) | CN113615125A (en) |
TW (1) | TWI740409B (en) |
WO (1) | WO2020197718A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230308453A1 (en) * | 2022-03-22 | 2023-09-28 | AT&T Global Network Services Belgium Luxembourg SPRL | Method and system for adaptive trust recovery in mixed environment communications |
TWI849977B (en) * | 2023-06-15 | 2024-07-21 | 臺灣網路認證股份有限公司 | Audit verification system based on digital nameplate and method thereof |
TWI850002B (en) * | 2023-06-29 | 2024-07-21 | 辰晧電子股份有限公司 | Individual encrypted signature system and signing method thereof |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11271755B2 (en) * | 2019-03-25 | 2022-03-08 | Micron Technology, Inc. | Verifying vehicular identity |
US11233650B2 (en) | 2019-03-25 | 2022-01-25 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
US11361660B2 (en) * | 2019-03-25 | 2022-06-14 | Micron Technology, Inc. | Verifying identity of an emergency vehicle during operation |
US11218330B2 (en) | 2019-03-25 | 2022-01-04 | Micron Technology, Inc. | Generating an identity for a computing device using a physical unclonable function |
JP2020167509A (en) * | 2019-03-29 | 2020-10-08 | コベルコ建機株式会社 | Information processing system, information processing method, and program |
US11552781B2 (en) * | 2019-04-05 | 2023-01-10 | Honeywell International Inc. | Using error detection bits for cryptographic integrity and authentication |
EP3913880B1 (en) * | 2020-05-19 | 2024-10-02 | Continental Automotive Technologies GmbH | Method of and system for secure data export from an automotive engine control unit |
US11893141B2 (en) | 2021-02-18 | 2024-02-06 | PUFsecurity Corporation | Method and control circuit for managing information of electronic device |
CN113329371B (en) * | 2021-04-29 | 2022-12-20 | 北京航空航天大学 | 5G Internet of vehicles V2V anonymous authentication and key agreement method based on PUF |
US20220385485A1 (en) * | 2021-06-01 | 2022-12-01 | Micron Technology, Inc. | Identity theft protection with no password access |
DE112022003238T5 (en) * | 2021-06-24 | 2024-04-25 | Google Llc | PROTECTIVE ENVIRONMENT FOR AUTHENTICATION AND SEALING USING A DEVICE IDENTIFIER COMPOSITION ENGINE |
US20230015693A1 (en) * | 2021-07-09 | 2023-01-19 | Harman International Industries, Incorporated | Restoration of corrupted keys in a secure storage system |
US11977640B2 (en) * | 2021-07-12 | 2024-05-07 | Dell Products, L.P. | Systems and methods for authenticating the identity of an information handling system |
KR102665448B1 (en) * | 2021-12-14 | 2024-05-10 | 인하대학교 산학협력단 | Hybrid digital signature method |
KR102391791B1 (en) * | 2021-12-24 | 2022-04-28 | 쌍용자동차 주식회사 | Active vehicle cyber hacking countermeasure apparatus and method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWM356972U (en) * | 2008-12-17 | 2009-05-11 | Univ Kun Shan | Portable storage device with local and remote identity recognition function |
TW201136266A (en) * | 2009-12-17 | 2011-10-16 | Sandisk Corp | Content control method using certificate revocation lists |
US20140093074A1 (en) * | 2012-09-28 | 2014-04-03 | Kevin C. Gotze | Secure provisioning of secret keys during integrated circuit manufacturing |
US20170104580A1 (en) * | 2015-10-12 | 2017-04-13 | Microsoft Technology Licensing, Llc | Migrating secrets using hardware roots of trust for devices |
Family Cites Families (120)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119105A (en) | 1996-06-17 | 2000-09-12 | Verifone, Inc. | System, method and article of manufacture for initiation of software distribution from a point of certificate creation utilizing an extensible, flexible architecture |
US7155590B2 (en) | 2000-04-11 | 2006-12-26 | Mathis Richard M | Method and apparatus for computer memory protection and verification |
KR100427323B1 (en) | 2001-08-31 | 2004-04-14 | 현대자동차주식회사 | Garage door auto open and closed controlling device and method thereof |
US20030147534A1 (en) | 2002-02-06 | 2003-08-07 | Ablay Sewim F. | Method and apparatus for in-vehicle device authentication and secure data delivery in a distributed vehicle network |
US7840803B2 (en) | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
US7600114B2 (en) | 2002-06-28 | 2009-10-06 | Temic Automotive Of North America, Inc. | Method and system for vehicle authentication of another vehicle |
US6977580B2 (en) | 2002-09-26 | 2005-12-20 | International Business Machines Corporation | Apparatus, system and method of securing perimeters of security zones from suspect vehicles |
US7502933B2 (en) * | 2002-11-27 | 2009-03-10 | Rsa Security Inc. | Identity authentication system and method |
US7165181B2 (en) | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
JP4621200B2 (en) | 2004-04-15 | 2011-01-26 | パナソニック株式会社 | Communication apparatus, communication system, and authentication method |
EP1781504A2 (en) | 2004-08-25 | 2007-05-09 | The Marenco Group | Anti-carjacking apparatus, systems, and methods for hi-speed pursuit avoidance and occupant safety |
US7525435B2 (en) | 2005-08-02 | 2009-04-28 | Performance Partners, Llc | Method, apparatus, and system for securing areas of use of vehicles |
US7613891B2 (en) | 2006-05-04 | 2009-11-03 | Intel Corporation | Methods and apparatus for providing a read access control system associated with a flash device |
US9794247B2 (en) | 2006-08-22 | 2017-10-17 | Stmicroelectronics, Inc. | Method to prevent cloning of electronic components using public key infrastructure secure hardware device |
KR100823738B1 (en) * | 2006-09-29 | 2008-04-21 | 한국전자통신연구원 | Method for integrity attestation of a computing platform hiding its configuration information |
US9830637B2 (en) | 2007-02-23 | 2017-11-28 | Epona Llc | System and method for processing vehicle transactions |
EP2003813B1 (en) | 2007-06-15 | 2009-03-18 | NTT DoCoMo, Inc. | Method and Apparatus for Authentication |
US20090179775A1 (en) | 2008-01-10 | 2009-07-16 | Gm Global Technology Operations, Inc. | Secure information system |
US8761390B2 (en) | 2008-06-30 | 2014-06-24 | Gm Global Technology Operations | Production of cryptographic keys for an embedded processing device |
US8484486B2 (en) | 2008-08-06 | 2013-07-09 | Silver Spring Networks, Inc. | Integrated cryptographic security module for a network node |
WO2010055171A1 (en) | 2008-11-17 | 2010-05-20 | Intrinsic-Id B.V. | Distributed puf |
FR2941343B1 (en) | 2009-01-20 | 2011-04-08 | Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst | CIRCUIT OF CRYPTOGRAPHY, PROTECTS IN PARTICULAR AGAINST ATTACKS BY OBSERVATION OF LEAKS OF INFORMATION BY THEIR ENCRYPTION. |
US8499154B2 (en) | 2009-01-27 | 2013-07-30 | GM Global Technology Operations LLC | System and method for establishing a secure connection with a mobile device |
US8184812B2 (en) | 2009-06-03 | 2012-05-22 | Freescale Semiconductor, Inc. | Secure computing device with monotonic counter and method therefor |
JP5612514B2 (en) | 2010-03-24 | 2014-10-22 | パナソニック株式会社 | Nonvolatile memory controller and nonvolatile storage device |
US8499155B2 (en) | 2010-03-24 | 2013-07-30 | GM Global Technology Operations LLC | Adaptive certificate distribution mechanism in vehicular networks using variable inter-certificate refresh period |
US8667265B1 (en) | 2010-07-28 | 2014-03-04 | Sandia Corporation | Hardware device binding and mutual authentication |
US20120038489A1 (en) | 2010-08-12 | 2012-02-16 | Goldshmidt Ehud | System and method for spontaneous p2p communication between identified vehicles |
JP2012118805A (en) | 2010-12-01 | 2012-06-21 | Sony Corp | Information processing apparatus, removable storage device, information processing method and information processing system |
US8526606B2 (en) | 2010-12-20 | 2013-09-03 | GM Global Technology Operations LLC | On-demand secure key generation in a vehicle-to-vehicle communication network |
US9467293B1 (en) | 2010-12-22 | 2016-10-11 | Emc Corporation | Generating authentication codes associated with devices |
EP2479731B1 (en) | 2011-01-18 | 2015-09-23 | Alcatel Lucent | User/vehicle-ID associating access rights and privileges |
US20120183135A1 (en) | 2011-01-19 | 2012-07-19 | Verayo, Inc. | Reliable puf value generation by pattern matching |
KR101881167B1 (en) | 2011-06-13 | 2018-07-23 | 주식회사 케이티 | Car control system |
US8924737B2 (en) | 2011-08-25 | 2014-12-30 | Microsoft Corporation | Digital signing authority dependent platform secret |
US8700916B2 (en) | 2011-12-02 | 2014-04-15 | Cisco Technology, Inc. | Utilizing physically unclonable functions to derive device specific keying material for protection of information |
JP5710460B2 (en) | 2011-12-16 | 2015-04-30 | 株式会社東芝 | Encryption key generation apparatus and program |
EP2805470B1 (en) | 2012-01-20 | 2018-09-12 | Interdigital Patent Holdings, Inc. | Identity management with local functionality |
DE102012201164B4 (en) | 2012-01-26 | 2017-12-07 | Infineon Technologies Ag | DEVICE AND METHOD FOR GENERATING A MESSAGE AUTHENTICATION CODE |
US8750502B2 (en) | 2012-03-22 | 2014-06-10 | Purdue Research Foundation | System on chip and method for cryptography using a physically unclonable function |
US9172538B2 (en) | 2012-04-20 | 2015-10-27 | T-Mobile Usa, Inc. | Secure lock for mobile device |
US10079678B2 (en) | 2012-07-24 | 2018-09-18 | Intel Corporation | Providing access to encrypted data |
US8525169B1 (en) | 2012-08-10 | 2013-09-03 | International Business Machines Corporation | Reliable physical unclonable function for device authentication |
WO2014053286A1 (en) | 2012-10-04 | 2014-04-10 | Intrinsic Id B.V. | System for generating a cryptographic key from a memory used as a physically unclonable function |
JP5967822B2 (en) | 2012-10-12 | 2016-08-10 | ルネサスエレクトロニクス株式会社 | In-vehicle communication system and apparatus |
JP5939126B2 (en) | 2012-10-17 | 2016-06-22 | 株式会社デンソー | In-vehicle device and vehicle antitheft system |
US8885819B2 (en) | 2012-12-27 | 2014-11-11 | Intel Corporation | Fuse attestation to secure the provisioning of secret keys during integrated circuit manufacturing |
US8938792B2 (en) | 2012-12-28 | 2015-01-20 | Intel Corporation | Device authentication using a physically unclonable functions based key generation system |
JP2014158105A (en) | 2013-02-14 | 2014-08-28 | Panasonic Corp | Terminal device |
US20140245010A1 (en) | 2013-02-25 | 2014-08-28 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
DE102013203415B4 (en) | 2013-02-28 | 2016-02-11 | Siemens Aktiengesellschaft | Create a derived key from a cryptographic key using a non-cloning function |
EP2965254B1 (en) | 2013-03-08 | 2020-05-13 | Robert Bosch GmbH | Systems and methods for maintaining integrity and secrecy in untrusted computing platforms |
US9858208B2 (en) | 2013-03-21 | 2018-01-02 | International Business Machines Corporation | System for securing contents of removable memory |
US9906372B2 (en) | 2013-06-03 | 2018-02-27 | Intel Deutschland Gmbh | Authentication devices, key generator devices, methods for controlling an authentication device, and methods for controlling a key generator |
US9769658B2 (en) | 2013-06-23 | 2017-09-19 | Shlomi Dolev | Certificating vehicle public key with vehicle attributes |
KR101521412B1 (en) | 2013-07-11 | 2015-05-19 | 가톨릭관동대학교산학협력단 | Protocol Management System for Aggregating Massages based on certification |
US20150256522A1 (en) * | 2013-09-16 | 2015-09-10 | Clutch Authentication Systems, Llc | System and method for communication over color encoded light patterns |
US9992031B2 (en) * | 2013-09-27 | 2018-06-05 | Intel Corporation | Dark bits to reduce physically unclonable function error rates |
KR102271978B1 (en) | 2013-10-08 | 2021-07-02 | 주식회사 아이씨티케이 홀딩스 | Network security apparatus for vehicle and design method thereof |
FR3013138B1 (en) | 2013-11-12 | 2015-10-30 | Morpho | METHOD AND SYSTEM FOR CONTROLLING ACCESS TO OR EXITING A ZONE |
DE102013227087A1 (en) | 2013-12-23 | 2015-06-25 | Siemens Aktiengesellschaft | Secured provision of a key |
EP4027576B1 (en) * | 2014-01-13 | 2023-11-22 | Visa International Service Association | Efficient methods for protecting identity in authenticated transmissions |
CN104901931B (en) | 2014-03-05 | 2018-10-12 | 财团法人工业技术研究院 | certificate management method and device |
US9147075B1 (en) | 2014-03-20 | 2015-09-29 | Juniper Networks, Inc. | Apparatus and method for securely logging boot-tampering actions |
US10958451B2 (en) | 2014-04-09 | 2021-03-23 | Ictk Holdings Co., Ltd. | Authentication apparatus and method |
WO2015195978A1 (en) * | 2014-06-18 | 2015-12-23 | Visa International Service Association | Efficient methods for authenticated communication |
CN105337725B (en) | 2014-08-08 | 2019-04-23 | 中国科学院数据与通信保护研究教育中心 | A kind of key management apparatus and method |
WO2016058793A1 (en) | 2014-10-13 | 2016-04-21 | Intrinsic Id B.V. | Cryptographic device comprising a physical unclonable function |
US9935937B1 (en) | 2014-11-05 | 2018-04-03 | Amazon Technologies, Inc. | Implementing network security policies using TPM-based credentials |
EP4254875A3 (en) | 2014-11-13 | 2023-11-15 | Panasonic Intellectual Property Corporation of America | Key management method, vehicle-mounted network system, and key management device |
US9584329B1 (en) | 2014-11-25 | 2017-02-28 | Xilinx, Inc. | Physically unclonable function and helper data indicating unstable bits |
US9740863B2 (en) | 2014-11-25 | 2017-08-22 | Intel Corporation | Protecting a secure boot process against side channel attacks |
US9569601B2 (en) | 2015-05-19 | 2017-02-14 | Anvaya Solutions, Inc. | System and method for authenticating and enabling functioning of a manufactured electronic device |
JP7122964B2 (en) * | 2015-07-03 | 2022-08-22 | アフェロ インコーポレイテッド | Apparatus and method for establishing a secure communication channel in an Internet of Things (IoT) system |
US9604651B1 (en) | 2015-08-05 | 2017-03-28 | Sprint Communications Company L.P. | Vehicle telematics unit communication authorization and authentication and communication service provisioning |
US10402792B2 (en) | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
US9667427B2 (en) | 2015-10-14 | 2017-05-30 | Cambridge Blockchain, LLC | Systems and methods for managing digital identities |
DE102015220224A1 (en) | 2015-10-16 | 2017-04-20 | Volkswagen Aktiengesellschaft | Method for protected communication of a vehicle |
DE102015220227A1 (en) | 2015-10-16 | 2017-04-20 | Volkswagen Aktiengesellschaft | Method and system for asymmetric key derivation |
CN108352984B (en) | 2015-11-05 | 2021-06-01 | 三菱电机株式会社 | Security device and security method |
KR101782483B1 (en) | 2015-12-03 | 2017-10-23 | 현대오토에버 주식회사 | Method and apparatus for generating certificate of vehicle in vehicular ad-hoc network |
JP5991561B2 (en) | 2015-12-25 | 2016-09-14 | パナソニックIpマネジメント株式会社 | Wireless device |
JP6684690B2 (en) | 2016-01-08 | 2020-04-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Fraud detection method, monitoring electronic control unit and in-vehicle network system |
CA2955277C (en) | 2016-01-28 | 2020-07-07 | TrustPoint Innovation Technologies, Ltd. | System and method for certificate selection in vehicle-to-vehicle applications to enhance privacy |
DE102016205198A1 (en) | 2016-03-30 | 2017-10-05 | Siemens Aktiengesellschaft | Demonstrate the authenticity of a device by means of a credential |
WO2017194335A2 (en) | 2016-05-09 | 2017-11-16 | Intrinsic Id B.V. | Programming device arranged to obtain and store a random bit string in a memory device |
EP3474488A4 (en) | 2016-06-17 | 2019-11-06 | KDDI Corporation | System, certification authority, vehicle-mounted computer, vehicle, public key certificate issuance method, and program |
KR102562786B1 (en) | 2016-07-07 | 2023-08-03 | 엘지이노텍 주식회사 | Driver assistance apparatus and parking control system comprising same |
KR102598613B1 (en) | 2016-07-21 | 2023-11-07 | 삼성전자주식회사 | System and method for providing vehicle information based on personal certification and vehicle certification |
US10390221B2 (en) | 2016-07-25 | 2019-08-20 | Ford Global Technologies, Llc | Private vehicle-to-vehicle communication |
US20180060813A1 (en) | 2016-08-23 | 2018-03-01 | Ford Global Technologies, Llc | Autonomous delivery vehicle system |
US10397215B2 (en) | 2016-09-27 | 2019-08-27 | Visa International Service Assocation | Secure element installation and provisioning |
US10297147B2 (en) | 2016-12-06 | 2019-05-21 | Flir Commercial Systems, Inc. | Methods and apparatus for monitoring traffic data |
EP3563521A1 (en) | 2016-12-30 | 2019-11-06 | INTEL Corporation | Service provision to iot devices |
PH12017000044B1 (en) | 2017-02-13 | 2018-08-20 | Samsung Electronics Co Ltd | Vehicle parking area access management system and method |
CN110419069B (en) | 2017-03-03 | 2023-08-18 | 福特全球技术公司 | Vehicle parking control |
US11341251B2 (en) | 2017-04-19 | 2022-05-24 | Quintessencelabs Pty Ltd. | Encryption enabling storage systems |
US10984136B2 (en) | 2017-04-21 | 2021-04-20 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
US10783600B2 (en) | 2017-05-25 | 2020-09-22 | GM Global Technology Operations LLC | Method and system using a blockchain database for data exchange between vehicles and entities |
JP6754325B2 (en) | 2017-06-20 | 2020-09-09 | 国立大学法人東海国立大学機構 | Authentication method for in-vehicle authentication system, in-vehicle authentication device, computer program and communication device |
US20190027044A1 (en) | 2017-07-19 | 2019-01-24 | Aptiv Technologies Limited | Automated secured-area access system for an automated vehicle |
JP6773617B2 (en) | 2017-08-21 | 2020-10-21 | 株式会社東芝 | Update controller, software update system and update control method |
JP6903529B2 (en) | 2017-09-11 | 2021-07-14 | 株式会社東芝 | Information processing equipment, information processing methods and programs |
US11140141B2 (en) | 2017-09-18 | 2021-10-05 | Fiske Software Llc | Multiparty key exchange |
CA3020431A1 (en) | 2017-10-11 | 2019-04-11 | Marc Chelnik | Vehicle parking authorization assurance system |
EP4254248A3 (en) | 2017-10-22 | 2023-11-15 | LG Electronics Inc. | Cryptographic methods and systems for managing digital certificates |
US10812257B2 (en) | 2017-11-13 | 2020-10-20 | Volkswagen Ag | Systems and methods for a cryptographically guaranteed vehicle identity |
US11323249B2 (en) | 2017-12-20 | 2022-05-03 | Lg Electronics, Inc. | Cryptographic methods and systems for authentication in connected vehicle systems and for other uses |
US11011056B2 (en) | 2018-01-29 | 2021-05-18 | Fujitsu Limited | Fragmentation-aware intelligent autonomous intersection management using a space-time resource model |
US10917237B2 (en) | 2018-04-16 | 2021-02-09 | Microsoft Technology Licensing, Llc | Attestable and destructible device identity |
US10778661B2 (en) | 2018-04-27 | 2020-09-15 | Micron Technology, Inc. | Secure distribution of secret key using a monotonic counter |
US10742406B2 (en) | 2018-05-03 | 2020-08-11 | Micron Technology, Inc. | Key generation and secure storage in a noisy environment |
CN112912939A (en) | 2018-10-12 | 2021-06-04 | 美光科技公司 | Improved vehicle communication |
US11482017B2 (en) | 2018-10-12 | 2022-10-25 | Micron Technology, Inc. | Method and apparatus to recognize transported passengers and goods |
US10868667B2 (en) | 2018-11-06 | 2020-12-15 | GM Global Technology Operations LLC | Blockchain enhanced V2X communication system and method |
KR20200091689A (en) | 2019-01-23 | 2020-07-31 | 한국전자통신연구원 | Security management system for vehicle communication and operating method thereof, messege processing method of vehicle communication service providing system having the same |
US11233650B2 (en) | 2019-03-25 | 2022-01-25 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
US11361660B2 (en) | 2019-03-25 | 2022-06-14 | Micron Technology, Inc. | Verifying identity of an emergency vehicle during operation |
US11218330B2 (en) | 2019-03-25 | 2022-01-04 | Micron Technology, Inc. | Generating an identity for a computing device using a physical unclonable function |
US11271755B2 (en) | 2019-03-25 | 2022-03-08 | Micron Technology, Inc. | Verifying vehicular identity |
-
2019
- 2019-03-25 US US16/363,196 patent/US11323275B2/en active Active
-
2020
- 2020-03-03 WO PCT/US2020/020781 patent/WO2020197718A1/en unknown
- 2020-03-03 EP EP20777381.3A patent/EP3949265A4/en not_active Withdrawn
- 2020-03-03 JP JP2021557289A patent/JP2022528641A/en active Pending
- 2020-03-03 CN CN202080023861.5A patent/CN113615125A/en active Pending
- 2020-03-03 KR KR1020217033939A patent/KR20210131438A/en not_active Application Discontinuation
- 2020-03-09 TW TW109107607A patent/TWI740409B/en active
-
2022
- 2022-03-31 US US17/710,591 patent/US20220224550A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWM356972U (en) * | 2008-12-17 | 2009-05-11 | Univ Kun Shan | Portable storage device with local and remote identity recognition function |
TW201136266A (en) * | 2009-12-17 | 2011-10-16 | Sandisk Corp | Content control method using certificate revocation lists |
US20140093074A1 (en) * | 2012-09-28 | 2014-04-03 | Kevin C. Gotze | Secure provisioning of secret keys during integrated circuit manufacturing |
US20170104580A1 (en) * | 2015-10-12 | 2017-04-13 | Microsoft Technology Licensing, Llc | Migrating secrets using hardware roots of trust for devices |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230308453A1 (en) * | 2022-03-22 | 2023-09-28 | AT&T Global Network Services Belgium Luxembourg SPRL | Method and system for adaptive trust recovery in mixed environment communications |
TWI849977B (en) * | 2023-06-15 | 2024-07-21 | 臺灣網路認證股份有限公司 | Audit verification system based on digital nameplate and method thereof |
TWI850002B (en) * | 2023-06-29 | 2024-07-21 | 辰晧電子股份有限公司 | Individual encrypted signature system and signing method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20200313909A1 (en) | 2020-10-01 |
EP3949265A4 (en) | 2022-12-21 |
CN113615125A (en) | 2021-11-05 |
KR20210131438A (en) | 2021-11-02 |
JP2022528641A (en) | 2022-06-15 |
EP3949265A1 (en) | 2022-02-09 |
US11323275B2 (en) | 2022-05-03 |
TW202038123A (en) | 2020-10-16 |
US20220224550A1 (en) | 2022-07-14 |
WO2020197718A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI740409B (en) | Verification of identity using a secret key | |
US11962701B2 (en) | Verifying identity of a vehicle entering a trust zone | |
US20220078035A1 (en) | Generating an identity for a computing device using a physical unclonable function | |
US20220277650A1 (en) | Verifying Identity of an Emergency Vehicle During Operation | |
US20150317495A1 (en) | Protecting Critical Data Structures in an Embedded Hypervisor System | |
US11615207B2 (en) | Security processor configured to authenticate user and authorize user for user data and computing system including the same | |
CN114491682A (en) | Virtual subscriber identity module and virtual smart card | |
KR20210132721A (en) | Secure communication when accessing the network | |
US20210334416A1 (en) | Storage device providing function of securely discarding data and operating method thereof | |
CN115037492A (en) | Online security services based on security features implemented in memory devices | |
US11677560B2 (en) | Utilization of a memory device as security token | |
CN117077142A (en) | Tracking activity of components in endpoints having secure memory devices via authentication | |
CN115021949A (en) | Method and system for identification management of endpoints having memory devices protected for reliable authentication | |
CN115021950A (en) | Online service store for endpoints | |
CN115037494A (en) | Cloud service login without pre-customization of endpoints | |
CN115037493A (en) | Monitoring integrity of endpoints with secure memory devices for identity authentication | |
CN115037491A (en) | Subscription sharing in a group of endpoints with memory devices protected for reliable authentication | |
CN115037496A (en) | Endpoint customization via online firmware stores |