TWI740409B - Verification of identity using a secret key - Google Patents

Verification of identity using a secret key Download PDF

Info

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
Application number
TW109107607A
Other languages
Chinese (zh)
Other versions
TW202038123A (en
Inventor
安東尼諾 蒙代洛
艾伯多 特洛亞
Original Assignee
美商美光科技公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商美光科技公司 filed Critical 美商美光科技公司
Publication of TW202038123A publication Critical patent/TW202038123A/en
Application granted granted Critical
Publication of TWI740409B publication Critical patent/TWI740409B/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0442Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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/3268Cryptographic 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3271Cryptographic 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/3278Cryptographic 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

A method includes receiving, by a computing device, a message from a host device. In response to receiving the message, the computing device generates an identifier, a certificate, and a key. The identifier is associated with an identity of the computing device, and the certificate is generated using the message. The computing device sends the identifier, the certificate, and the key to the host device. The host device verifies the identity of the computing device using the identifier, the certificate, and the key.

Description

使用密鑰之身份驗證Authentication using key

本文所揭示之至少一些實施例大體上係關於身份驗證,且更特定言之(但不限於),本文所揭示之至少一些實施例係關於使用一密鑰之身份驗證。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 more processors 143 that control the operation of the identification component 147 and/or other functions of the computing device 141.

識別符、憑證及密鑰由識別組件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 identification component 147 and based on the device secret 149. In one example, the device secret 149 is a unique device secret (UDS) stored in the memory of the computing device 141. In an example, the identification component 147 uses UDS as an original key for implementing one of the DICE-RIoT protocols. The identifier, certificate, and key are output from layer L 1 of the DICE-RIoT protocol (for example, refer to FIG. 6). In one embodiment, the identity of layer L 1 corresponds to the identity of the computing device 141, the manufacturer of the computing device 141, the manufacturer of the computing device 141 as one of the components, and/or the memory stored in the computing device 141 An application or other software in the body. In one example, the application identity (such as an ID number) is used for a unique combination of text and numbers to identify things such as a mobile phone, a TV, an STB, and so on.

在一實例中,層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 memory 145 by the computing device 141. The identification component 147 uses the key as an input of a message authentication code (MAC) to generate a derived secret. In one example, the derived secret is the Fusion Derived Secret (FDS) in the DICE-RIoT protocol.

在一實例中,記憶體145包含儲存用於啟動運算裝置141之初始啟動碼之唯讀記憶體(ROM)。FDS係在一啟動操作期間由處理器143提供至初始啟動碼之一密鑰。在一實例中,ROM對應於DICE-RIoT協定之層L0In one example, the memory 145 includes a read-only memory (ROM) that stores an initial activation code used to activate the computing device 141. The FDS is a key provided by the processor 143 to the initial startup code during a startup operation. In one example, the ROM corresponds to layer L 0 of the DICE-RIoT protocol.

主機裝置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 identification component 147 to implement the DICE-RIoT protocol to associate the unique signature with a trust chain corresponding to the computing device 141. The arithmetic device 141 establishes layers L 0 and L 1 . The chain of trust is continued by the host device 151 that establishes layer L 2... In one example, a unique identifier can be assigned to every object, person, and animal in any defined environment (eg, a trust zone defined by geographic parameters).

在一實施例中,運算裝置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 memory 145. In one example, the UDS can be consistent and shared with a customer who will use the computing device 141 to perform additional manufacturing operations. In another example, the UDS may be randomly generated by the original manufacturer and then transmitted to the customer using a secure infrastructure (for example, via a network, such as the Internet).

在一實例中,客戶可為併入運算裝置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 memory 145 of the computing device 141. In one example, immutable information is used to generate a unique FDS, and not only as a distinguisher. Customer immutable information is used to distinguish various objects manufactured by customers. For example, customer immutable information can be a combination of letters and/or numbers to define the original information (for example, some or all of the following information: date, time, lot location, wafer location, x, y in a wafer Location etc.).

例如,在諸多情況中,不可變資訊亦包含來自由一使用者(例如自一製造商接收一裝置之一客戶)執行之密碼特徵組態之資料。此組態或設定可僅藉由使用鑑別命令(需要知道待執行之一密鑰之命令)完成。使用者知道密鑰(例如基於自製造商經由一安全基礎設施提供密鑰)。不可變資訊表示一運算裝置之密碼身份之一形式,其不同於裝置之唯一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 identification component 107 and a verification component 109 according to an embodiment. A host system 101 communicates with a memory system 105 via a bus 103. A processing device 111 of the memory system 105 reads/writes access to the memory areas 111, 113,..., 119 of the non-volatile memory 121. In one example, the host system 101 also reads data from the volatile memory 123 and writes data to the volatile memory 123. In one example, the identification component 107 supports layers L 0 and L 1 of the DICE-RIoT protocol. In one example, the non-volatile memory 121 stores the activation code.

驗證組件109用於驗證記憶體系統105之一身份。驗證組件109使用包含由識別組件107回應於自主機系統101接收一主機訊息而生成之一識別符、憑證及密鑰之三元組,例如上文所描述。The verification component 109 is used to verify the identity of one of the memory systems 105. The verification component 109 uses a triple including an identifier, a certificate, and a key generated by the identification component 107 in response to receiving a host message from the host system 101, such as described above.

識別組件107係圖1之識別組件147之一實例。驗證組件109係圖1之驗證組件153之一實例。The identification component 107 is an example of the identification component 147 in FIG. 1. The verification component 109 is an example of the verification component 153 in FIG. 1.

記憶體系統105包含密鑰儲存器157及密鑰生成器159。在一實例中,密鑰儲存器157可儲存根密鑰、會話密鑰、一UDS (DICE-RIoT)及/或用於藉由記憶體系統105之密碼操作之其他密鑰。The memory system 105 includes a key storage 157 and a key generator 159. In one example, the key storage 157 may store the root key, the session key, a UDS (DICE-RIoT), and/or other keys used for cryptographic operations by the memory system 105.

在一實例中,密鑰生成器159生成發送至主機系統101以用於由驗證組件109驗證之一公鑰。發送公鑰作為亦包含一識別符及憑證之三元組之部分,如上文所描述。In an example, the key generator 159 generates a public key that is sent to the host system 101 for verification by the verification component 109. The public key is sent as part of the triplet that also contains an identifier and certificate, as described above.

記憶體系統105包含一鮮度生成器155。在一實例中,鮮度生成器155可用於鑑別命令。在一實例中,可使用多個鮮度生成器155。在一實例中,鮮度生成器155可用於由主機系統101使用。The memory system 105 includes a freshness generator 155. In an example, the freshness generator 155 can be used to authenticate commands. In an example, multiple freshness generators 155 may be used. In an example, the freshness generator 155 may be used by the host system 101.

在一實例中,處理裝置111及記憶體區域111、113、...、119位於相同晶片或晶粒上。在一些實施例中,記憶體區域儲存在機器學習處理期間由主機系統101及/或處理裝置111使用之資料或由執行於主機系統101或處理裝置111上之(若干)軟體程序生成之其他運行時間資料。In one example, the processing device 111 and the memory regions 111, 113, ..., 119 are located on the same chip or die. In some embodiments, the memory area stores data used by the host system 101 and/or the processing device 111 during the machine learning process or other operations generated by the software program(s) running on the host system 101 or the processing device 111 Time information.

運算系統可包含記憶體系統105中之一寫入組件,其選擇一記憶體區域111 (例如快閃記憶體之一紀錄片段)用於記錄來自主機系統101之新資料。運算系統100可進一步包含主機系統101中之一寫入組件,其與記憶體系統105中之寫入組件107協調以至少促進選擇記憶體區域111。The computing system may include a writing component in the memory system 105, which selects a memory area 111 (for example, a record segment of flash memory) for recording new data from the host system 101. The computing system 100 may further include a writing component in the host system 101, which coordinates with the writing component 107 in the memory system 105 to at least facilitate the selection of the memory area 111.

在一實例中,揮發性記憶體123用作為主機系統101之一處理裝置(圖中未展示)之系統記憶體。在一實施例中,主機系統101之一程序選擇用於寫入資料之記憶體區域。在一實例中,主機系統101可部分基於來自感測器及/或執行於一自主車輛上之軟體程序之資料選擇一記憶體區域。在一實例中,上述資料由主機系統101提供至選擇記憶體區域之處理裝置111。In one example, the volatile memory 123 is used as a system memory of a processing device (not shown in the figure) of the host system 101. In one embodiment, a program of the host system 101 selects a memory area for writing data. In one example, the host system 101 may select a memory area based in part on data from sensors and/or software programs running on an autonomous vehicle. In one example, the aforementioned data is provided by the host system 101 to the processing device 111 that selects the memory area.

在一些實施例中,主機系統101或處理裝置111包含識別組件107及/或驗證組件109之至少一部分。在其他實施例中或在組合中,處理裝置111及/或主機系統101中之一處理裝置包含識別組件107及/或驗證組件109之至少一部分。例如,處理裝置111及/或主機系統101之一處理裝置可包含實施識別組件107及/或驗證組件109之邏輯電路。例如,主機系統101之一控制器或處理裝置(例如一CPU、FPGA或GPU)可經組態以執行儲存於記憶體中之指令以執行本文所描述之識別組件107及/或驗證組件109之操作。In some embodiments, the host system 101 or the processing device 111 includes at least a part of the identification component 107 and/or the verification component 109. In other embodiments or in combination, one of the processing device 111 and/or the host system 101 includes at least a part of the identification component 107 and/or the verification component 109. For example, the processing device 111 and/or one of the processing devices of the host system 101 may include logic circuits that implement the identification component 107 and/or the verification component 109. For example, a controller or processing device (such as a CPU, FPGA, or GPU) of the host system 101 can be configured to execute instructions stored in memory to execute the identification component 107 and/or the verification component 109 described herein. operate.

在一些實施例中,識別組件107以安置於記憶體系統105中之一積體電路晶片實施。在其他實施例中,主機系統101中之驗證組件109係主機系統101之一作業系統、一裝置驅動器或一應用程式之部分。In some embodiments, the identification component 107 is implemented as an integrated circuit chip disposed in the memory system 105. In other embodiments, the verification component 109 in the host system 101 is a part of an operating system, a device driver, or an application program of the host system 101.

記憶體系統105之一實例係經由一記憶體匯流排連接至一中央處理單元(CPU)之一記憶體模組。記憶體模組之實例包含一雙列直插記憶體模組(DIMM)、一小外型DIMM (SO-DIMM)、一非揮發性雙列直插記憶體模組(NVDIMM)等等。在一些實施例中,記憶體系統可為提供記憶體功能及儲存功能兩者之一混合記憶體/儲存系統。一般而言,一主機系統可利用包含一或多個記憶體區域之一記憶體系統。主機系統可提供儲存於記憶體系統處之資料且可請求自記憶體系統擷取之資料。在一實例中,一主機可存取包含揮發性及非揮發性記憶體之各種類型之記憶體。An example of the memory system 105 is a memory module connected to a central processing unit (CPU) via a memory bus. Examples of memory modules include a dual in-line memory module (DIMM), a small form factor DIMM (SO-DIMM), a non-volatile dual in-line memory module (NVDIMM), and so on. In some embodiments, the memory system may be a hybrid memory/storage system that provides one of memory functions and storage functions. Generally speaking, a host system can utilize a memory system that includes one or more memory areas. The host system can provide data stored in the memory system and can request data retrieved from the memory system. In one example, a host can access various types of memory including volatile and non-volatile memory.

主機系統101可為一運算裝置,諸如一車輛中之一控制器、一網路伺服器、一行動裝置、一蜂巢式電話、一嵌入式系統(例如具有一單晶片系統(SOC)及內部或外部記憶體之一嵌入式系統)或包含一記憶體及一處理裝置之任何運算裝置。主機系統101可包含或耦合至記憶體系統105,使得主機系統101可自記憶體系統105讀取資料或將資料寫入至記憶體系統105。主機系統101可經由一實體主機介面耦合至記憶體系統105。如本文所使用,「耦合至」大體上係指組件之間的一連接,其可為一間接通信連接或直接通信連接(例如無介入組件)(有線或無線),包含諸如電、光學、磁性等等之連接。一實體主機介面之實例包含(但不限於)一串列先進技術附件(SATA)介面、一快速週邊組件互連(PCIe)介面、通用串列匯流排(USB)介面、光纖通道、串列附接SCSI (SAS)、一雙倍資料速率(DDR)記憶體匯流排等等。實體主機介面可用於在主機系統101與記憶體系統105之間傳輸資料。實體主機介面可提供用於在記憶體系統105與主機系統101之間傳遞控制、位址、資料及其他信號之一介面。The host system 101 can be a computing device, such as a controller in a vehicle, a web server, a mobile device, a cellular phone, an embedded system (for example, having a single chip system (SOC) and internal or External memory (an embedded system) or any computing device including a memory and a processing device. The host system 101 can include or be coupled to the memory system 105 so that the host system 101 can read data from the memory system 105 or write data to the memory system 105. The host system 101 can be coupled to the memory system 105 via a physical host interface. As used herein, "coupled to" generally refers to a connection between components, which can be an indirect communication connection or a direct communication connection (for example, no intervening components) (wired or wireless), including electrical, optical, magnetic Wait for the connection. Examples of a physical host interface include (but are not limited to) a Serial Advanced Technology Attachment (SATA) interface, a Peripheral Component Interconnect (PCIe) interface, a Universal Serial Bus (USB) interface, Fibre Channel, Serial Attachment Connect to SCSI (SAS), a double data rate (DDR) memory bus, etc. The physical host interface can be used to transfer data between the host system 101 and the memory system 105. The physical host interface can provide an interface for transferring control, address, data, and other signals between the memory system 105 and the host system 101.

圖2繪示一記憶體系統105作為一實例。一般而言,主機系統101可經由一相同通信連接、多個單獨通信連接及/或通信連接之一組合存取多個記憶體系統。FIG. 2 shows a memory system 105 as an example. Generally speaking, the host system 101 can access multiple memory systems via a same communication connection, multiple individual communication connections, and/or a combination of communication connections.

主機系統101可包含一處理裝置及一控制器。主機系統101之處理裝置可為(例如)一微處理器、一中央處理單元(CPU)、一處理器之一處理核心、一執行單元等等。在一些例項中,主機系統之控制器可指稱一記憶體控制器、一記憶體管理單元及/或一引發器。在一實例中,控制器經由匯流排103控制主機系統101與記憶體系統105之間的通信。此等通信包含發送用於驗證記憶體系統105之身份之一主機訊息,如上文所描述。The host system 101 may include a processing device and a controller. The processing device of the host system 101 may be, for example, a microprocessor, a central processing unit (CPU), a processing core of a processor, an execution unit, and so on. In some examples, the controller of the host system may refer to a memory controller, a memory management unit, and/or an initiator. In an example, the controller controls the communication between the host system 101 and the memory system 105 via the bus 103. These communications include sending a host message for verifying the identity of the memory system 105, as described above.

主機系統101之一控制器可與記憶體系統105之一控制器通信以執行諸如在非揮發性記憶體121之記憶體區域處讀取資料、寫入資料或擦除資料之操作。在一些例項中,控制器整合於處理裝置111之相同封裝內。在其他例項中,控制器與處理裝置111之封裝分離。控制器及/或處理裝置可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體、一快取記憶體或其等之一組合。控制器及/或處理裝置可為一微控制器、專用邏輯電路(例如一場可程式化閘陣列(FPGA)、一專用積體電路(ASIC)等等)或另一適合處理器。A controller of the host system 101 can communicate with a controller of the memory system 105 to perform operations such as reading data, writing data, or erasing data at the memory area of the non-volatile memory 121. In some examples, the controller is integrated in the same package of the processing device 111. In other cases, the controller and the processing device 111 are packaged separately. The controller and/or processing device may include hardware, such as one or more integrated circuits and/or discrete components, a buffer memory, a cache memory, or a combination thereof. The controller and/or processing device can be a microcontroller, a dedicated logic circuit (such as a field programmable gate array (FPGA), a dedicated integrated circuit (ASIC), etc.), or another suitable processor.

在一實施例中,記憶體區域111、113、...、119可包含不同類型之非揮發性記憶體組件之任何組合。另外,記憶體區域之記憶體胞元可分組為記憶體頁面或資料區塊,其可係指用於儲存資料之一單元。在一些實施例中,揮發性記憶體123可為(但不限於)隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)。In an embodiment, the memory areas 111, 113, ..., 119 may include any combination of different types of non-volatile memory components. In addition, the memory cells in the memory area can be grouped into memory pages or data blocks, which can refer to a unit for storing data. In some embodiments, the volatile memory 123 may be (but not limited to) random access memory (RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM).

在一實施例中,記憶體系統105之一或多個控制器可與記憶體區域111、113、...、119通信以執行諸如讀取資料、寫入資料或擦除資料之操作。各控制器可包含硬體,諸如一或多個積體電路及/或離散組件、一緩衝記憶體或其等之一組合。各控制器可為一微控制器、專用邏輯電路(例如一場可程式化閘陣列(FPGA)、一專用積體電路(ASIC)等等)或另一適合處理器。(若干)控制器可包含經組態以執行儲存於局部記憶體中之指令之一處理裝置(處理器)。在一實例中,控制器之局部記憶體包含一嵌入式記憶體,其經組態以儲存用於執行控制記憶體系統105之操作之各種程序、操作、邏輯流程及常式(包含處置記憶體系統105與主機系統101之間的通信)之指令。在一些實施例中,局部記憶體可包含儲存記憶體指標、找取資料等等之記憶體暫存器。局部記憶體亦可包含用於儲存微碼之唯讀記憶體(ROM)。In one embodiment, one or more controllers of the memory system 105 can communicate with the memory areas 111, 113,... 119 to perform operations such as reading data, writing data, or erasing data. Each controller may include hardware, such as one or more integrated circuits and/or discrete components, a buffer memory, or a combination thereof. Each controller can be a microcontroller, a dedicated logic circuit (such as a field programmable gate array (FPGA), a dedicated integrated circuit (ASIC), etc.) or another suitable processor. The controller(s) may include a processing device (processor) that is configured to execute instructions stored in local memory. In one example, the local memory of the controller includes an embedded memory that is configured to store various programs, operations, logic flows, and routines (including processing memory) used to perform operations that control the memory system 105 The communication between the system 105 and the host system 101) commands. In some embodiments, the local memory may include a memory register for storing memory indicators, searching for data, and so on. The local memory may also include read-only memory (ROM) for storing microcode.

一般而言,記憶體系統105之(若干)控制器可自主機系統101及/或處理裝置111接收命令或操作且可將命令或操作轉換為指令或適當命令以達成基於記憶體區域之資料寫入計數器選擇一記憶體區域。控制器亦可負責其他操作,諸如磨損均衡、廢棄項目收集操作、錯誤偵測及錯誤校正碼(ECC)操作、加密操作、快取操作及與記憶體區域相關聯之一邏輯區塊位址與一實體區塊位址之間的位址變換。控制器可進一步包含主機介面電路以經由實體主機介面與主機系統101通信。主機介面電路可將自主機系統接收之命令轉換為命令指令以存取記憶體區域之一或多者及將與記憶體區域相關聯之回應轉換為主機系統101之資訊。Generally speaking, the controller(s) of the memory system 105 can receive commands or operations from the host system 101 and/or the processing device 111 and can convert the commands or operations into commands or appropriate commands to achieve data writing based on the memory area Enter the counter to select a memory area. The controller can also be responsible for other operations, such as wear leveling, discarded item collection operations, error detection and error correction code (ECC) operations, encryption operations, cache operations, and a logical block address associated with the memory area. Address conversion between addresses of a physical block. The controller may further include a host interface circuit to communicate with the host system 101 via the physical host interface. The host interface circuit can convert commands received from the host system into command commands to access one or more of the memory areas and convert responses associated with the memory areas into information of the host system 101.

記憶體系統105亦可包含額外電路或組件(圖中未繪示)。在一些實施例中,記憶體系統105可包含一快取或緩衝器(例如DRAM或SRAM)及可自一或多個控制器接收一位址且解碼位址以存取記憶體區域之位址電路(例如一列解碼器及一行解碼器)。The memory system 105 may also include additional circuits or components (not shown in the figure). In some embodiments, the memory system 105 may include a cache or buffer (such as DRAM or SRAM) and an address that can receive an address from one or more controllers and decode the address to access the memory area Circuits (such as a column decoder and a row decoder).

在一些實施例中,主機系統101或記憶體系統105中之一控制器及/或處理裝置111包含識別組件107及/或驗證組件109之至少一部分。例如,控制器及/或處理裝置111可包含實施識別組件107及/或驗證組件109之邏輯電路。例如,一處理裝置(處理器)可經組態以執行儲存於記憶體中之指令以執行提供識別組件107之記憶體區域之讀/寫存取之操作,如本文所描述。在一些實施例中,驗證組件109係一作業系統、一裝置驅動器或一應用程式之部分。In some embodiments, one of the controller and/or the processing device 111 in the host system 101 or the memory system 105 includes at least a part of the identification component 107 and/or the verification component 109. For example, the controller and/or the processing device 111 may include logic circuits that implement the identification component 107 and/or the verification component 109. For example, a processing device (processor) can be configured to execute instructions stored in the memory to perform operations that provide read/write access to the memory area of the identification component 107, as described herein. In some embodiments, the verification component 109 is part of an operating system, a device driver, or an application program.

圖3展示根據一實施例之一車輛100之一實例性運算裝置。例如,車輛100可為一自主車輛、一非自主車輛、一緊急車輛、一服務車輛或其類似者。FIG. 3 shows an exemplary computing device of a vehicle 100 according to an embodiment. For example, the vehicle 100 may be an autonomous vehicle, a non-autonomous vehicle, an emergency vehicle, a service vehicle, or the like.

車輛100包含一車輛運算裝置110,諸如一車載電腦。車輛運算裝置110係圖1之主機裝置151之一實例。在另一實例中,車輛運算裝置110係圖2之主機裝置101之一實例,且記憶體160係記憶體系統105之一實例。The vehicle 100 includes a vehicle computing device 110, such as an onboard computer. The vehicle computing device 110 is an example of the host device 151 in FIG. 1. In another example, the vehicle computing device 110 is an example of the host device 101 in FIG. 2, and the memory 160 is an example of the memory system 105.

車輛運算裝置110包含耦合至一車載通信組件130 (諸如一讀取器、寫入器及/或能夠執行下文將描述之功能之其他運算裝置)之一處理器120,車載通信組件130耦合至(或包含)一天線140。車載通信組件130包含耦合至一記憶體160 (諸如一非揮發性快閃記憶體)之一處理器150,但實施例不受限於此一種類之記憶體裝置。The vehicle computing device 110 includes a processor 120 coupled to an in-vehicle communication component 130 (such as a reader, writer, and/or other computing device capable of performing the functions described below), and the in-vehicle communication component 130 is coupled to ( Or include) an antenna 140. The in-vehicle communication component 130 includes a processor 150 coupled to a memory 160 (such as a non-volatile flash memory), but the embodiment is not limited to this type of memory device.

在一實例中,記憶體160經調適以依使得車輛100能夠在接近一檢查點時藉由使用一通信介面(例如所謂之DICE-RIoT協定)提供此資訊之一方式儲存與車輛有關之所有資訊(例如駕駛員、乘客及所運載之貨物),如下文將描述。In one example, the memory 160 is adapted to store all information related to the vehicle by providing this information by using a communication interface (such as the so-called DICE-RIoT protocol) when the vehicle 100 approaches a checkpoint. (For example, the driver, passengers, and cargo carried), as described below.

在一實例中,車輛資訊(諸如車輛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 vehicle memory 160, and the vehicle 100 can, for example, pass through the communication component 130 and by using a known DICE-RIoT protocol or a similar protocol Identify the electronic ID of the passenger and/or the ID of the carried luggage, cargo, and the like, and then store this information in the memory 160. In one example, the electronic ID, the luggage being transported and the cargo container are equipped with wireless transponders, NFC, Bluetooth, RFID, contactless sensors, magnetic sticks and the like, and the communication component 130 can use a reader and / Or the electromagnetic field obtains the required information from these remote sources.

在一實例中,所有乘客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 vehicle 100 can always be kept up to date. For this reason, the electronic ID of the passenger and/or the ID of the carried luggage and cargo are updated in real time due to the wireless transponder associated with the luggage and cargo or owned by the passenger (not shown in the figure).

在一實例中,經由DICE-RIoT協定發生車載通信組件130與接近源(例如貨物轉發器及其類似者)之間的通信。In one example, the communication between the in-vehicle communication component 130 and the proximity source (such as a cargo transponder and the like) occurs via the DICE-RIoT protocol.

在一實例中,車輛運算裝置110可控制車輛100之操作參數,諸如轉向及速度。例如,一控制器(圖中未展示)可耦合至一轉向控制系統170及一速度控制系統180。此外,車輛運算裝置110可耦合至一資訊系統190。資訊系統190可經組態以顯示一訊息(諸如路線資訊或一檢查點安全訊息)且可顯示視覺警告及/或輸出可聽警告。通信組件130可自額外運算裝置(諸如自一外部運算裝置(圖中未展示))接收資訊。In one example, the vehicle computing device 110 can control operating parameters of the vehicle 100, such as steering and speed. For example, a controller (not shown in the figure) may be coupled to a steering control system 170 and a speed control system 180. In addition, the vehicle computing device 110 can be coupled to an information system 190. The information system 190 can be configured to display a message (such as route information or a checkpoint safety message) and can display visual warnings and/or output audible warnings. The communication component 130 can receive information from an additional computing device (such as an external computing device (not shown in the figure)).

圖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 example system 390 having a host device 350 in communication with an example computing device of a vehicle 300, according to an embodiment. The computing device includes a passive communication component 310, such as a short-range communication device (such as an NFC tag). The communication component 310 may be located in the vehicle 300. The vehicle 300 may be configured as shown for the vehicle 100 in FIG. The communication component 310 includes a chip 320 (for example, a CPU or an application controller that implements the vehicle 300), which has one of storing information about the vehicle 300 (such as vehicle ID, driver/passenger information, carried cargo information, etc.) Non-volatile storage component 330. The communication component 310 may include an antenna 340.

主機裝置350係(例如)一主動通信裝置(例如,其包含一電源供應器),其可自通信組件310接收資訊及/或將資訊傳輸至通信組件310。在一些實例中,主機裝置350可包含一讀取器(例如一NFC讀取器)(諸如一通行費讀取器)或其他組件。主機裝置350可為配置(例如嵌入)於一檢查點附近(例如一信任區之邊界處)或一般而言,有限存取區域附近之一外部裝置。在一些實施例中,主機裝置350亦可由一警察攜帶以用作為一可攜式裝置。The host device 350 is, for example, an active communication device (for example, it includes a power supply), which can receive information from the communication component 310 and/or transmit information to the communication component 310. In some examples, the host device 350 may include a reader (eg, an NFC reader) (such as a toll reader) or other components. The host device 350 may be an external device configured (eg embedded) near a checkpoint (eg, at the boundary of a trusted zone) or generally, an external device near a limited access area. In some embodiments, the host device 350 can also be carried by a policeman for use as a portable device.

主機裝置350可包含一處理器360、一記憶體370 (諸如一非揮發性記憶體)及一天線380。記憶體370可包含允許主機裝置350與通信組件310通信之一NFC協定。例如,主機裝置350及通信組件310可使用NFC協定通信,諸如(例如)在約13.56百萬赫茲處且根據ISO/IEC 18000-3國際標準。可使用使用RFID標籤之其他方法。The host device 350 may include a processor 360, a memory 370 (such as a non-volatile memory), and an antenna 380. The memory 370 may include an NFC protocol that allows the host device 350 to communicate with the communication component 310. For example, the host device 350 and the communication component 310 may communicate using the NFC protocol, such as, for example, at about 13.56 MHz and in accordance with the ISO/IEC 18000-3 international standard. Other methods of using RFID tags can be used.

主機裝置350亦可與一伺服器或其他運算裝置通信(例如經由一無線網路與一中央操作中心通信)。例如,主機裝置350可無線耦合或硬連線至伺服器或通信中心。在一些實例中,主機裝置350可經由WIFI或經由網際網路與操作中心通信。當車輛300使天線340進入天線380之一通信距離內時,主機裝置350可供能給通信組件310。在一些實例中,主機裝置350可自操作中心接收即時資訊且可將該資訊傳輸至車輛300。在一些實施例中,通信組件310可自身具有電池。The host device 350 can also communicate with a server or other computing devices (for example, communicate with a central operation center via a wireless network). For example, the host device 350 may be wirelessly coupled or hard-wired to a server or a communication center. In some examples, the host device 350 may communicate with the operation center via WIFI or via the Internet. When the vehicle 300 brings the antenna 340 into one of the communication distances of the antenna 380, the host device 350 can provide power to the communication component 310. In some examples, the host device 350 can receive real-time information from the operation center and can transmit the information to the vehicle 300. In some embodiments, the communication component 310 may have its own battery.

在一實施例中,主機裝置350經調適以自車輛300讀取資訊/將資訊發送至車輛300,車輛300配備有經組態以允許資訊交換之通信組件310 (例如一主動裝置)。In one embodiment, the host device 350 is adapted to read/send information from the vehicle 300 to the vehicle 300. The vehicle 300 is equipped with a communication component 310 (such as an active device) configured to allow information exchange.

再次參考圖3,車輛100之車載通信組件130可內部起作用以即時拾取關於乘客ID、所運輸之行李及/或貨物之相關資訊(例如當配備有上文相對於圖4所討論之對應無線通信組件時)。車輛之運算裝置可在數米(例如2米至3米)之一空間範圍內偵測資訊,使得可獲取對應於乘客、行李及貨物之所有資料。在一實例中,此發生於車輛接近一特定接近度內之一外部通信組件(例如一伺服器或充當一主機裝置之其他運算裝置)使得通信可開始及/或變強時。通信距離係(例如) 2米至3米。Referring again to FIG. 3, the on-board communication component 130 of the vehicle 100 can function internally to instantly pick up relevant information about the passenger ID, luggage and/or cargo (for example, when equipped with the corresponding wireless device discussed above with respect to FIG. 4). Communication components). The computing device of the vehicle can detect information within a spatial range of several meters (for example, 2 meters to 3 meters), so that all data corresponding to passengers, luggage, and cargo can be obtained. In one example, this occurs when the vehicle approaches an external communication component (such as a server or other computing device acting as a host device) within a certain proximity so that communication can start and/or become stronger. The communication distance is (for example) 2 meters to 3 meters.

在一實例中,車載通信組件130可使資料在傳送至外部實體及/或與內部實體通信時加密。在一些情況中,關於所運輸之行李、貨物或甚至乘客之資料可為機密或包含機密資訊(例如一乘客之健康狀態或機密文件或一危險材料)。在此一情況中,期望儲存於與車輛運算裝置相關聯之記憶體部分中之資訊及資料保持為加密資料。In one example, the in-vehicle communication component 130 can encrypt data when transmitting to an external entity and/or communicating with an internal entity. In some cases, information about the luggage, cargo, or even passengers being transported may be confidential or contain confidential information (for example, the health status of a passenger or a confidential document or a dangerous material). In this case, it is desirable that the information and data stored in the memory portion associated with the vehicle computing device remain encrypted data.

在下文將討論之各種實施例中,討論用於內部車輛運算裝置與外部實體(例如充當一主機裝置之一伺服器)之間的加密及解密通信之一方法。在一實例中,此方法甚至可應用於內部車輛運算裝置與與車上所搭載之乘客、行李及貨物相關聯之電子組件之間。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-vehicle communication component 130 sends a vehicle public key to the external communication component (for example, acting as a host device 151), and the external communication component sends an external public key to the in-vehicle communication component 130. These public keys (vehicle and external) can be used to encrypt data sent to each respective communication component and verify the identity of one of each communication component, and also exchange confirmations and other information. As an example, as will be further described below, the in-vehicle communication component 130 can use the received external public key to encrypt data and send the encrypted data to the external communication component. Similarly, the external communication component can use the received vehicle public key to encrypt data and send the encrypted data to the in-vehicle communication component 130. The data sent by the vehicle 100 may include car information, passenger information, cargo information, and the like. The information may be sent with a digital signature as appropriate to verify the identity of one of the vehicles 100. Furthermore, the information can be provided to the vehicle 100 and displayed on a dashboard of the vehicle 100 or sent to an e-mail of a computing device associated with the vehicle 100 (such as a user device or a central server that monitors the vehicle). The vehicle can be identified based on a vehicle identification, a VIN number, etc., and a vehicle digital signature.

在一實例中,車輛與外部實體之間所交換之資料可具有由另一者使用之一鮮度。作為一實例,由車輛發送至外部實體以指示相同指令之資料可在一特定時框之各者或針對所發送之特定資料量更改。此可防止一駭客攔截含於先前發送資料中之機密資訊且再次發送相同資料以導致相同結果。若資料已被略微更改,但仍指示一相同指令,則駭客可在一稍後時間點發送相同資訊,且歸因於接受者預料經更改資料實施相同指令而不會實施相同指令。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 vehicle 100 and an external entity (such as a computing system or device) (not shown in the figure), as will be described below. The security of the data can ensure that unauthorized activities are prevented from interfering with the operation of the vehicle 100 and external entities.

圖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-vehicle communication component 430" according to an embodiment of the present invention. When the vehicle is close to or near an external entity, the associated on-board communication component 430" of the vehicle can, for example, use a sensor (such as a radio frequency identification sensor or RFID or the like) to exchange data with the external entity , As described above.

在其他實施例中,組件430'可為位於一車輛中之一應用板,且組件430''可為亦位於車輛中之一主機裝置,其使用DICE-RIoT協定驗證組件430'之一身份(例如上文相對於圖1所討論)。In other embodiments, the component 430' can be an application board located in a vehicle, and the component 430" can be a host device also located in the vehicle, which uses the DICE-RIoT protocol to verify the identity of the component 430' ( For example, discussed above with respect to Figure 1).

在一實施例中,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 vehicle communication component 430". The transmitted data may include a public external identification, a certificate (for example, an external identification certificate), and/or an external public key, as will be shown in conjunction with FIG. 6. The layer 2 L 2 of the in- vehicle communication component 430" can receive the transmitted data, and execute the data in the operation of the operating system OS (for example, a first application App 1 and a second application App 2).

同樣地,車載通信組件430''可傳輸資料(如由箭頭410''所繪示),其包含一公共車輛識別、一憑證(例如一車輛識別憑證)及/或一車輛公鑰。作為一實例,在鑑別之後(例如在驗證憑證之後),車載通信組件430''可發送一車輛識別號VIN以進一步鑑別、識別及/或驗證車輛。Similarly, the in-vehicle communication component 430" can transmit data (as shown by the arrow 410"), which includes a public vehicle identification, a certificate (for example, a vehicle identification certificate), and/or a vehicle public key. As an example, after authentication (for example, after verifying the certificate), the in-vehicle communication component 430" may send a vehicle identification number VIN to further authenticate, identify and/or verify the vehicle.

如圖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. Arrows 510' and 510" in FIG. 6 correspond to arrows 410' and 410" in FIG. 5B, respectively. In addition, the layer in FIG. 6 corresponds to the layer in FIG. 5B.

在另一實施例中,來自主機裝置之一訊息(「主機訊息」)藉由型樣(資料)合併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 encryptors 530. In one example, the host message is concatenated with the external public key. The generated parameters include triples sent to a host device and used to verify the identity of an arithmetic device. For example, the external public identification, the external certificate, and the external public key are used by a verification component of the host device to verify the identity. In one example, the host device is the host device 151 of FIG. 1.

如圖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, FDS 0 L0 layer from the layer sent to a 1 L 1 and an asymmetric ID generator for generating a public and a private identification to identify IDlkpublic IDlkprivate. In the abbreviation "IDlkpublic", "lk" indicates a common layer k (in this example, layer 1 L 1 ), and "public" indicates that the identification is publicly shared. The public identification IDlkpublic is shown as shared by the arrows extending to the right and outside of layer 1 L 1 of the external communication components. The generated private identification IDlkprivate is used as a key input to an encryptor 530. The encryptor 530 can be, for example, any processor, computing device, etc. used to encrypt data.

外部通信組件之層1 L1 可包含一非對稱密鑰生成器540。在至少一實例中,一隨機數生成器RND可視情況將一隨機數輸入至非對稱密鑰生成器540中。非對稱密鑰生成器540可生成與一外部通信組件(諸如圖5B中之外部通信組件430')相關聯之一公鑰KLkpublic (指稱一外部公鑰)及一私鑰KLkprivate (指稱一外部私鑰)。The layer 1 L 1 of the external communication component may include an asymmetric key generator 540. In at least one example, a random number generator RND can input a random number into the asymmetric key generator 540 as appropriate. The asymmetric key generator 540 can generate a public key KLkpublic (referring to an external public key) and a private key KLkprivate (referring to an external private key) associated with an external communication component (such as the external communication component 430′ in FIG. 5B). key).

外部公鑰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 encryptor 530.

加密器530可使用外部私密識別IDlkprivate及外部公鑰KLkpublic之輸入生成一結果K'。外部公鑰KLkprivate及結果K'可輸入至一額外加密器550中以導致輸出K''。輸出K''係傳輸至層2 L2 (或替代地,傳輸至驗證身份之一主機裝置)之外部憑證IDL1certificate。外部憑證IDL1certificate可提供驗證及/或鑑別自一裝置發送之資料之一起源之一能力。作為一實例,自外部通信組件發送之資料可藉由驗證憑證來與外部通信組件之一身份相關聯,如將結合圖7進一步描述。此外,外部公鑰KL1public key可傳輸至層2 L2 。因此,外部通信組件之公共識別IDl1public、憑證IDL1certificate及外部公鑰KL1public key可傳輸至車載通信組件之層2 L2The encryptor 530 can use the input of the external private identification IDlkprivate and the external public key KLkpublic to generate a result K′. The external public key KLkprivate and the result K′ can be input into an additional encryptor 550 to cause the output K″. Output K '' based transport layer to 2 L 2 (or alternatively, the transmission to verify the identity of one of the host device) of the external document IDL1certificate. The external certificate IDL1certificate can provide the ability to verify and/or authenticate the origin of data sent from a device. As an example, the data sent from the external communication component can be associated with the identity of one of the external communication components by verifying the certificate, as will be further described in conjunction with FIG. 7. In addition, the external public key KL1public key can be transmitted to layer 2 L 2 . Therefore, the public identification IDl1public, the certificate IDL1certificate, and the external public key KL1public key of the external communication component can be transmitted to the layer 2 L 2 of the in- vehicle communication component.

圖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 decryptors 730 and 750. The verification component implements a procedure to verify a credential according to an embodiment of the present invention.

在圖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 decryptor 730. The decryptor 730 can be any processor, computing device, etc., used to decrypt data. The decryption result of the certificate IDL1certificate and the external public key KL1public can be used together with the public identification IDL1public as an input to the decryptor 750 to cause an output. As shown in block 760, the external public key KL1public and the output from the decryptor 750 can indicate whether to verify the certificate to result in a "yes" or "no" as an output. The private key is associated with a single layer and a specific certificate can only be generated by a specific layer.

回應於驗證憑證(例如在鑑別之後),可接受、解密及/或處理自經驗證之裝置接收之資料。回應於未驗證憑證,可捨棄、移除及/或忽略自經驗證之裝置接收之資料。依此方式,可偵測及避免發送惡毒資料之未授權裝置。作為一實例,可識別發送待處理資料之一駭客且不處理駭侵資料。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 memory system 105 in FIG. 2. This triple is generated by the computing device 141 in response to receiving a host message from the host device. Before the IDL1 certificate is provided as one of the input of the decryptor 730, the IDL1 certificate and a message from the host device ("host message") are merged by the pattern (data) merge 731. In one example, one of the merged data is concatenated. The combined data is provided as input to the decryptor 730. Then, the verification procedure is performed in other ways, as described above.

圖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 vehicle computing device 810" (such as the vehicle computing device 110 in FIG. 3 or the computing device 141 in FIG. 1) can send the data Dat" to an external computing device 810' (or generally to any other computing device). The vehicle computing device 810" can use the vehicle private key KLkprivate to generate a signature Sk. The signature Sk can be transmitted to the external computing device 810'. The external computing device 810' can use the data Dat' and the previously received public key KLkpublic (for example, the vehicle public key) for verification. In this way, the signature verification is performed by encrypting the signature with a private key and decrypting the signature with a public key. In this way, the unique signature of each device can be kept secret from the device sending the signature, while allowing the receiving device to decrypt the signature for verification. This is in contrast to data encryption/decryption, which is encrypted by the sending device using the public key of the receiving device and decrypted by the receiving device using the private key of the receiver. In at least one example, the vehicle can verify the digital signature by using an internal cryptographic program, such as elliptic curve digital signature (ECDSA) or a similar program.

歸因於憑證及公鑰之交換及驗證,裝置能夠依一安全方式彼此通信。當一車輛接近一外部實體(例如一信任區邊界、一邊界安全實體或一般為一電子控制主機裝置)時,各自通信裝置(其具有驗證各自憑證之圖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 identification component 147 and the verification component 151 of FIG. 1.

儘管依一特定序列或順序展示,但除非另有指定,否則可修改程序之順序。因此,所繪示之實施例應僅被理解為實例,且所繪示之程序可依一不同順序執行,且一些程序可並行執行。另外,可在各種實施例中省略一或多個程序。因此,並非每個實施例中需要所有程序。其他程序流程係可行的。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 block 921, a message is received from a host device. For example, the computing device 141 receives a message (such as "host message" or "host message|freshness") from the host device 151.

在區塊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 identification component 147 generates an identifier, a credential, and a key to provide a triplet. In an example, triples are generated based on the DICE-RIoT protocol. In an example, triples are generated as shown in FIG. 6.

在一實例中,使用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, layer 0 cannot be accessed outside the component). UDS cannot be read by anyone, but it can be replaced (for example, only the customer can do so by using a security protocol). Examples of security protocols include security protocols based on authentication and replay protection commands and/or secret sharing algorithms (such as Diffie-Hellman (such as ECDH elliptic curve Diffie-Hellman)). In one example, the UDS is delivered to the customer (rather than the end user) by using a secure infrastructure. UDS can be customized by customers.

另外,組件辨識可在無一網際網路或其他網路連接之情況下工作。另外,方法可用於輕鬆檢查一信任區邊界(例如一國界、內部檢查點等等)處之事物、動物及人類之身份。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) device 121 according to an embodiment. The system provides a PUF structure 111 for generating a unique key 125 (or other value) from an output of a message authentication code (MAC) module 123. The MAC module 123 receives an input value from the PUF device 121.

圖10中之PUF裝置121可為(例如)各種不同已知類型之PUF之任何者。MAC模組123提供(例如)一單向函數,諸如SHA1、SHA2、MD5、CRC、TIGER等等。The PUF device 121 in FIG. 10 can be, for example, any of various known types of PUF. The MAC module 123 provides, for example, a one-way function, such as SHA1, SHA2, MD5, CRC, TIGER, and so on.

架構111可(例如)改良晶片之間所生成之PUF值或碼之漢明距離。MAC函數不可預測(例如,僅具有提供至MAC函數之一單位元差之輸入序列提供兩個完全不同輸出結果)。因此,無法在僅知道輸出時辨識或判定MAC函數之輸入。架構111亦可(例如)改良作為一偽隨機數生成器之PUF之均勻性。The framework 111 can, for example, improve the PUF value or Hamming distance of codes generated between chips. The MAC function is unpredictable (for example, only an input sequence with a unitary difference provided to the MAC function provides two completely different output results). Therefore, it is impossible to identify or determine the input of the MAC function when only the output is known. The architecture 111 can also, for example, improve the uniformity of PUF as a pseudo-random number generator.

在一實例中,由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 device 103 or another device) implements a cryptographic algorithm. In one example, the chip implementation uses a cryptographic function of HMAC-SHA256. In this case, the output from the MAC module 123 has a size N of 256 bits. The output from the MAC module 123 is used to provide a message length suitable for use as an output value of a key (without further compression or padding).

PUF架構111以一裝置(諸如所繪示之記憶體裝置103)實施,或可以其他類型之運算裝置(諸如(例如)在由一晶圓製造生產線提供之數個半導體晶片中實施之積體電路)實施。The PUF architecture 111 is implemented by a device (such as the memory device 103 shown), or can be implemented with other types of computing devices (such as, for example, an integrated circuit implemented in a number of semiconductor chips provided by a wafer manufacturing line ) Implementation.

在一實施例中,MAC模組123與密碼模組127協作及/或整合至密碼模組127中或作為密碼模組127之部分,例如,密碼模組127可提供記憶體裝置103之密碼功能。例如,歸因於MAC由記憶體裝置103用於其他密碼目的,MAC模組123之輸出可適合用作為一密鑰。In one embodiment, the MAC module 123 and the cryptographic module 127 cooperate and/or are integrated into the cryptographic module 127 or are part of the cryptographic module 127. For example, the cryptographic module 127 can provide the cryptographic function of the memory device 103 . For example, since the MAC is used by the memory device 103 for other cryptographic purposes, the output of the MAC module 123 can be suitably used as a key.

PUF架構111、密碼模組127及/或記憶體裝置103之其他功能之操作可由一控制器107控制。控制器107可包含(例如)一或多個微處理器。The operation of the PUF structure 111, the cryptographic module 127, and/or other functions of the memory device 103 can be controlled by a controller 107. The controller 107 may include, for example, one or more microprocessors.

在圖10中,一主機101可經由一通信通道與記憶體裝置103通信。主機101可為具有一或多個中央處理單元(CPU)之一電腦,經由電腦周邊裝置(諸如記憶體裝置103)可經由一互連件(諸如一電腦匯流排(例如周邊組件互連(PCI)、擴展PCI (PCI-X)、快速PCI (PCIe))、一通信部分及/或一電腦網路)附接CPU。In FIG. 10, a host 101 can communicate with the memory device 103 via a communication channel. The host 101 can be a computer with one or more central processing units (CPUs), via a computer peripheral device (such as a memory device 103), via an interconnect (such as a computer bus (such as a peripheral component interconnection (PCI)). ), Expansion PCI (PCI-X), Fast PCI (PCIe)), a communication part and/or a computer network) to attach the CPU.

在一實施例中,唯一密鑰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 memory device 103. The controller 107 implements layer 0 L 0 and layer 1 L 1 in a DICE-RIoT architecture. In response to receiving host messages from the host 101 via the host interface 105, the cryptographic module 127 performs processing to generate triples, as described above. The host 101 uses the triples to verify the identity of the memory device 103. The memory device 103 is an example of the computing device 141.

為了例示性繪示,應注意,通常存在兩個技術問題。一第一問題係證明至主機之板之身份。問題可藉由使用公共三元組及非對稱密碼來處置,例如上文針對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 memory device 103 can be used to store the data of the host 101 in, for example, a non-volatile storage medium 109. Examples of memory devices generally include hard disk drives (HDD), solid state drives (SSD), flash memory, dynamic random access memory, magnetic tape, network attached storage devices, and so on. The memory device 103 has a host interface 105 that uses a communication channel to implement communication with the host 101. For example, in one embodiment, the communication channel between the host 101 and the memory device 103 is a fast peripheral component interconnect (PCI Express or PCIe) bus; and the host 101 and the memory device 103 use the NVMe protocol (non-volatile Memory Host Controller Interface Specification (NVMHCI), also known as Fast NVM (NVMe)) communicate with each other.

在一些實施方案中,主機101與記憶體裝置103之間的通信通道包含一電腦網路,諸如一區域網路、一無線區域網路、一無線個人區域網路、一蜂巢式通信網路、一寬頻高速全時連接無線通信連接(例如一當代或後代行動網路鏈接);且主機101及記憶體裝置103可經組態以使用資料儲存管理及使用命令(類似於NVMe協定中之資料儲存管理及使用命令)彼此通信。In some embodiments, the communication channel between the host 101 and the memory device 103 includes a computer network, such as a local area network, a wireless local area network, a wireless personal area network, a cellular communication network, A broadband high-speed full-time connection wireless communication connection (such as a current or future generation mobile network link); and the host 101 and the memory device 103 can be configured to use data storage management and use commands (similar to the data storage in the NVMe protocol Management and use commands) to communicate with each other.

控制器107可運行韌體104以執行回應於來自主機101之通信之操作及/或其他操作。韌體一般為提供工程運算裝置之控制、監測及資料操縱之一電腦程式類型。在圖10中,韌體104在操作記憶體裝置103時控制控制器107之操作,諸如PUF架構111之操作,如下文將進一步討論。The controller 107 can run the firmware 104 to perform operations in response to communications from the host 101 and/or other operations. Firmware is generally a type of computer program that provides control, monitoring, and data manipulation of engineering computing devices. In FIG. 10, the firmware 104 controls the operation of the controller 107 when operating the memory device 103, such as the operation of the PUF architecture 111, as will be discussed further below.

記憶體裝置103具有非揮發性儲存媒體109,諸如塗佈於剛性磁碟上之磁性材料及/或一積體電路中之記憶體胞元。儲存媒體109係非揮發性的,因為無需電力來維持儲存於非揮發性儲存媒體109中之資料/資訊,該資料/資訊可在非揮發性儲存媒體109斷電且接著再次通電之後擷取。記憶體胞元可使用各種記憶體/儲存技術(諸如基於NAND閘之快閃記憶體、相變記憶體(PCM)、磁性記憶體(MRAM)、電阻式隨機存取記憶體及3D XPoint)實施,使得儲存媒體109係非揮發性的且可在無電力之情況下保存儲存於其內之資料達數天、數月及/或數年。The memory device 103 has a non-volatile storage medium 109, such as a magnetic material coated on a rigid disk and/or a memory cell in an integrated circuit. The storage medium 109 is non-volatile, because power is not required to maintain the data/information stored in the non-volatile storage medium 109, and the data/information can be retrieved after the non-volatile storage medium 109 is powered off and then powered on again. Memory cells can be implemented using various memory/storage technologies (such as flash memory based on NAND gate, phase change memory (PCM), magnetic memory (MRAM), resistive random access memory and 3D XPoint) , So that the storage medium 109 is non-volatile and can store the data stored in it for days, months, and/or years without power.

記憶體裝置103包含用於儲存運行時間資料及指令之揮發性動態隨機存取記憶體(DRAM) 106,運行時間資料及指令由控制器107用於提高控制器107之運算效能及/或提供在主機101與非揮發性儲存媒體109之間傳送之資料之緩衝器。DRAM 106係揮發性的,因為其需要電力來維持儲存於其內之資料/資訊,當電力中斷時,該資料/資訊即時或迅速丟失。The memory device 103 includes a volatile dynamic random access memory (DRAM) 106 for storing run-time data and commands. The run-time data and commands are used by the controller 107 to improve the computing performance of the controller 107 and/or provide it in A buffer for data transferred between the host 101 and the non-volatile storage medium 109. The DRAM 106 is volatile because it needs power to maintain the data/information stored in it. When the power is interrupted, the data/information is lost instantly or quickly.

揮發性DRAM 106通常具有比非揮發性儲存媒體109少之延時,但在移除電力時快速丟失其資料。因此,有利地使用揮發性DRAM 106來暫時儲存用於使控制器107進行其當前運算任務之指令及資料以提高效能。在一些例項中,將揮發性DRAM 106替換為在一些應用中使用比DRAM少之電力之揮發性靜態隨機存取記憶體(SRAM)。當非揮發性儲存媒體109具有與揮發性DRAM 106相當之資料存取效能(例如在延時、讀/寫速度上)時,可消除揮發性DRAM 106;且控制器107可藉由操作非揮發性儲存媒體109上之指令及資料而非操作揮發性DRAM 106來執行運算。The volatile DRAM 106 generally has less delay than the non-volatile storage medium 109, but loses its data quickly when power is removed. Therefore, it is advantageous to use the volatile DRAM 106 to temporarily store the instructions and data for the controller 107 to perform its current operation tasks to improve performance. In some cases, the volatile DRAM 106 is replaced with a volatile static random access memory (SRAM) that uses less power than DRAM in some applications. When the non-volatile storage medium 109 has the same data access performance as the volatile DRAM 106 (for example, in terms of delay and read/write speed), the volatile DRAM 106 can be eliminated; and the controller 107 can operate the non-volatile The instructions and data on the storage medium 109 are not operated on the volatile DRAM 106 to perform calculations.

例如,交叉點儲存及記憶體裝置(例如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 volatile DRAM 106. A cross-point memory device uses non-transistor memory elements, each of which has a memory cell and a selector stacked together as a column. The memory element pillars are connected via two vertical wire layers, one of which is located above the memory element pillar and the other layer is located below the memory element pillar. Each memory device can be individually selected at one of the intersections of one of the wires on each of the two layers. The cross-point memory device is fast and non-volatile and can be used as a unified memory pool for processing and storage.

在一些例項中,控制器107具有處理器內快取記憶體,其具有優於揮發性DRAM 106及/或非揮發性儲存媒體109之資料存取效能。因此,在控制器107之運算操作期間,在控制器107之處理器內快取記憶體中快取用於當前運算任務中之指令及資料之部分。在一些例項中,控制器107具有多個處理器,其等各自身具有處理器內快取記憶體。In some examples, the controller 107 has an in-processor cache, which has better data access performance than the volatile DRAM 106 and/or the non-volatile storage medium 109. Therefore, during the operation of the controller 107, the part of the instruction and data used in the current operation task is cached in the cache memory in the processor of the controller 107. In some cases, the controller 107 has multiple processors, each of which has its own internal cache memory.

控制器107視情況使用組織於記憶體裝置103中之資料及/或指令執行資料密集型記憶體內處理。例如,回應於來自主機101之一請求,控制器107執行儲存於記憶體裝置103中之一組資料之一即時分析且回應性地將一減小資料組傳送至主機101。例如,在一些應用中,記憶體裝置103連接至即時感測器以儲存感測器輸入;且控制器107之處理器經組態以基於感測器輸入執行機器學習及/或型樣辨識以支援至少部分經由記憶體裝置103及/或主機101實施之一人工智慧(AI)系統。The controller 107 uses the data and/or instructions organized in the memory device 103 to perform data-intensive in-memory processing as appropriate. For example, in response to a request from the host 101, the controller 107 performs real-time analysis of a set of data stored in the memory device 103 and responsively transmits a reduced data set to the host 101. For example, in some applications, the memory device 103 is connected to a real-time sensor to store sensor input; and the processor of the controller 107 is configured to perform machine learning and/or pattern recognition based on the sensor input It supports the implementation of an artificial intelligence (AI) system at least partially through the memory device 103 and/or the host 101.

在一些實施方案中,控制器107之處理器在電腦晶片製造中與記憶體(例如106或109)整合以實現記憶體內處理且因此克服范紐曼(von Neumann)瓶頸,其由於由一處理器與根據范紐曼架構所單獨組態之記憶體之間的資料移動之延時引起之一處理量限制而限制運算效能。處理及記憶體之整合提高處理速度及記憶體傳送速率且減少延時及電力使用。In some embodiments, the processor of the controller 107 is integrated with the memory (such as 106 or 109) in the manufacture of computer chips to achieve in-memory processing and thus overcome the von Neumann bottleneck, which is due to the combination of a processor and The delay of data movement between the memory separately configured according to the Van Neumann architecture causes a limitation of the processing capacity and limits the computing performance. The integration of processing and memory improves processing speed and memory transfer rate and reduces latency and power usage.

記憶體裝置103可用於各種運算系統中,諸如一雲端運算系統、一邊緣運算系統、一霧運算系統及/或一獨立電腦。在一雲端運算系統中,遠端電腦伺服器在一網路中連接以儲存、管理及處理資料。一邊緣運算系統藉由在靠近資料源之電腦網路之邊緣處執行資料處理來最佳化雲端運算且因此減少與一中央伺服器及/或資料儲存器之通信。一霧運算系統使用一或多個終端使用者裝置或靠近使用者邊緣裝置儲存資料且因此減少或消除將資料儲存於一中央資料倉儲中之需要。The memory device 103 can be used in various computing systems, such as a cloud computing system, an edge computing system, a fog computing system, and/or a stand-alone computer. In a cloud computing system, remote computer servers are connected in a network to store, manage, and process data. An edge computing system optimizes cloud computing by performing data processing at the edge of a computer network close to the data source and thus reduces communication with a central server and/or data storage. A fog computing system uses one or more end-user devices or devices close to the user's edge to store data and therefore reduces or eliminates the need to store data in a central data warehouse.

本文所揭示之至少一些實施例可使用由控制器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 controller 107. In some cases, the hardware circuit can be used to implement at least some of the functions of the firmware 104. The firmware 104 can be initially stored in the non-volatile storage medium 109 or another non-volatile device and loaded into the volatile DRAM 106 and/or the in-processor cache for execution by the controller 107.

例如,韌體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 module 123 can be used to provide, for example, a key or a seed value. In other embodiments, the output can be used to generate one or more session keys.

在一實施例中,來自MAC模組123之輸出可傳輸至另一運算裝置。例如,唯一密鑰125可經由主機介面105傳輸至主機101。In one embodiment, the output from the MAC module 123 can be transmitted to another computing device. For example, the unique key 125 can be transmitted to the host 101 via the host interface 105.

圖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 MAC 123 according to an embodiment. The MAC 123 is free to a selector module 204 to select one or more PUF devices to receive input. According to an embodiment, the system uses a PUF architecture similar to the architecture 111 of FIG. 10 but including a plurality of PUF devices 202 and selector modules 204 to generate a unique key 125 from one of the MAC modules 123 output. The MAC module 123 frees the selector module 204 to select one or more PUF devices 202 to receive input. In an example, PUF device 202 includes PUF device 121.

PUF裝置202可(例如)相同或不同(例如基於不同隨機物理現象)。在一實施例中,選擇器模組204充當一智慧PUF選擇區塊或電路以選擇將自其獲得值作為輸入提供至MAC模組123之PUF裝置202之一或多者。The PUF devices 202 may, for example, be the same or different (e.g., based on different random physical phenomena). In one embodiment, the selector module 204 acts as a smart PUF selection block or circuit to select one or more of the PUF devices 202 that provide the value obtained therefrom as input to the MAC module 123.

在一實施例中,選擇器模組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 PUF device 202 based at least in part on the results from the test PUF device 202. For example, the selector module 204 can test the repeatability of each PUF device 202. If any PUF device 202 fails the test, the selector module 204 refuses to use the failed device to provide an input value to the MAC module 123. In one example, failed devices can be eliminated temporarily or indefinitely.

在一些實施方案中,選擇器模組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 MAC module 123.

在一實施例中,選擇器模組204用於同時使用多個PUF裝置202作為用於自MAC模組123計算一改良PUF輸出之源。例如,選擇器模組204可鏈接來自一第一PUF裝置之一值與來自一第二PUF裝置之一值以作為一輸入提供至MAC模組123。在一些實施方案中,此架構容許歸因於其取決於若干不同物理現象而獲得一穩健PUF輸出。In one embodiment, the selector module 204 is used to simultaneously use multiple PUF devices 202 as a source for calculating an improved PUF output from the MAC module 123. For example, the selector module 204 can link a value from a first PUF device and a value from a second PUF device to provide as an input to the MAC module 123. In some implementations, this architecture allows a robust PUF output to be obtained due to its dependence on several different physical phenomena.

圖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 modules 123 output. Except for including a monotonic counter 302 to provide the value to the selector module 204, the PUF structure shown in FIG. 12 is similar to the PUF structure shown in FIG. 11. In various embodiments, the monotonic counter 302 can be implemented using hardware and/or software.

MAC模組123自一或多個PUF裝置202接收輸入且自單調計數器302接收一輸入。在一實例中,自PUF裝置202及單調計數器302獲得之值鏈接且接著作為一輸入提供至MAC模組123。在一些實施方案中,單調計數器302係僅在被請求時遞增其值之一非揮發性計數器。在一些實施例中,單調計數器302在一晶片之各通電循環之後遞增。The MAC module 123 receives input from one or more PUF devices 202 and an input from the monotonic counter 302. In one example, the values obtained from the PUF device 202 and the monotonic counter 302 are linked and connected as an input and provided to the MAC module 123. In some embodiments, the monotonic counter 302 is a non-volatile counter that increments only one of its values when requested. In some embodiments, the monotonic counter 302 is incremented after each power cycle of a wafer.

在一些實施方案中,圖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 monotonic counter 302 is incremented before each calculation of a PUF, which ensures that the input of the MAC module 123 is different in each cycle, and the provided output (and/or output pattern) is therefore different. In some instances, this method can be used to generate a session key, where each session key is different.

在一些實施例中,選擇器模組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 MAC module 123.

在一些實施例中,單調計數器302亦由密碼模組127使用。在一些實施例中,包含單調計數器之一PUF架構可用作為一會話密鑰生成器以保證各循環中之一不同密鑰。在一些實施方案中,所生成之會話密鑰依此方式受保護:會話密鑰=MAC [一或多個PUF|MTC或其他鮮度]。In some embodiments, the monotonic counter 302 is also used by the cryptographic module 127. In some embodiments, a PUF architecture including a monotonic counter can be used as a session key generator to ensure that a different key in each cycle is different. In some implementations, the generated session key is protected in this way: session key=MAC [one or more PUF|MTC or other freshness].

在其他實施例中,一機構使用如下: 會話密鑰=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 MAC module 123 or any other type existing on the chip Key. The above-mentioned MAC key_based function is, for example, a MAC algorithm based on a key. For example, there can be two types of MAC algorithms in a password: 1. An algorithm based on a key, such as (for example) the HMAC family (HMAC-SHA256 is based on a key); 2. One that is not based on a key Algorithms, such as SHA256 (SHA alone is not based on keys). It should be noted that the key-based MAC can be converted in the non-key-based MAC by setting the key to a known value (for example, 0x000...0xFFFF, etc.).

圖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 memory device 103 of FIG. 10.

圖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 more PUF devices 202 and an input from a monotonic counter 302 (and/or from another The organization (such as NONCE, time stamp, etc.) receives an input)) and adds an additional MAC module 504 to use a key input to generate a session key. In this embodiment, the MAC module 123 provides the root key 502 as the output from the MAC module 123. The root key 502 is an input of the MAC module 504, and the MAC module 504 can use a MAC function, such as session key=MAC key_based [Root_Key, MTC or other freshness mechanism], as described above. The root key input in this key-based function can be the root key 502 shown.

另外,在一實施例中,單調計數器302可提供MAC模組504之一輸入。在其他實施例中,不是使用單調計數器302,而是可提供一不同單調計數器或來自晶片之其他值作為MAC模組504之一輸入。在一些情況中,單調計數器302將一計數器值提供至MAC模組504而非選擇器模組204。在其他情況中,計數器值可提供至兩個MAC模組或自兩個模組排除。密鑰生成及安全儲存 In addition, in one embodiment, the monotonic counter 302 can provide one of the inputs of the MAC module 504. In other embodiments, instead of using the monotonic counter 302, a different monotonic counter or other value from the chip can be provided as one of the inputs of the MAC module 504. In some cases, the monotonic counter 302 provides a counter value to the MAC module 504 instead of the selector module 204. In other cases, the counter value can be provided to or excluded from both MAC modules. Key generation and secure storage

如上文所提及,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 arithmetic device 603 for storing an obfuscated key 635 in a non-volatile memory (such as a non-volatile storage medium 109) according to an embodiment. The arithmetic device 603 is an example of the arithmetic device 141 in FIG. 1. In one example, the obfuscated key is used as a UDS. (Note) For example, obfuscation adds entropy to the bits of the key to prevent a hacker from trying to understand the value of the key. The device can always extract the key by removing the added bits used as obfuscation. In one example, a co-hacking attack consists of guessing the generated/designed secret key inside the device by using statistical tools to process the current distribution absorbed by the device in certain time frames.

基於由至少一物理不可複製功能裝置121提供之一值生成一初始密鑰625。基於初始密鑰625生成混淆密鑰635。在生成之後,將混淆密鑰635儲存於非揮發性儲存媒體109中。An initial key 625 is generated based on a value provided by at least one physical non-copyable function device 121. The obfuscated key 635 is generated based on the initial key 625. After the generation, the obfuscated key 635 is stored in the non-volatile storage medium 109.

在一實施例中,一訊息鑑別碼(MAC) 123使用來自PUF裝置121之值作為一輸入且提供初始密鑰625作為一輸出。在一實施例中,混淆處理模組630用於對初始密鑰625執行處理以提供混淆密鑰635 (例如PUF5),例如上文所討論。In one embodiment, a message authentication code (MAC) 123 uses the value from the PUF device 121 as an input and provides the initial key 625 as an output. In one embodiment, the obfuscation processing module 630 is used to perform processing on the initial key 625 to provide an obfuscation key 635 (such as PUF5), such as discussed above.

在一實施例中,將混淆密鑰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 initial key 625 and/or the intermediate key from the obfuscation process described herein can be securely distributed in the same or a similar manner. An end user/customer uses the above method to read the value of an initial key (for example, PUF0), an intermediate key, and/or a final obfuscated key (for example, PUF5) as appropriate. For example, the end user can verify the proper execution of keys generated by the device and/or monitor the statistical quality of key generation.

圖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 inverted phase element 702. Bit 702 is interleaved with the bit of PUF1 shown. For example, every second bit in the illustrated key is an interleaved inverse phase element 702.

圖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 pseudo-random bits 802. As shown in the figure, bits 802 are interleaved with PUF2. For example, every third bit in the illustrated key is an interleaved pseudo-random bit 802.

圖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 memory system 105 of FIG. 2 stores the obfuscated key in the non-volatile memory 121.

在區塊911中,基於由至少一物理不可複製功能(PUF)提供之一值生成一初始密鑰。In block 911, an initial key is generated based on a value provided by at least one physically uncopyable function (PUF).

在其他實施例中,在區塊911中,藉由密鑰注入生成初始密鑰。例如,在製造期間,初始密鑰可僅為在製造期間注入至一晶片中之一值。In other embodiments, in block 911, the initial key is generated by key injection. For example, during manufacturing, the initial key may only be one value injected into a wafer during manufacturing.

在區塊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 block 915, the obfuscated key is stored in a non-volatile memory of a computing device. For example, the obfuscated key is stored in a NAND flash memory or an EEPROM.

在一實施例中,一方法包含:使用密鑰注入生成一初始密鑰;基於初始密鑰生成一混淆密鑰;及將混淆密鑰儲存於非揮發性記憶體中。例如,初始密鑰可為在製造時之一密鑰注入程序期間注入之密鑰。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 initial key 625 based on key injection 1010, obfuscating the initial key, and storing the obfuscated key in a non-volatile memory according to an embodiment.

在一實施例中,藉由使用注入密鑰1010生成初始密鑰625。例如,初始密鑰625藉由在製造或其他組裝或測試期間在一工廠或其他安全環境中注入來存在於一晶片中。在一實例中,初始密鑰625用作為運算裝置1003之一初始UDS。混淆亦可施加於UDS。UDS係DICE-RIoT開始用於生成密鑰及憑證之安全生成之秘密。藉由將混淆處理(經由模組630)施加於注入密鑰(例如來自密鑰注入1010之值)來執行施加處理以增加初始密鑰之混淆。在其他實施例中,混淆處理可施加於可儲存或否則存在於一晶片或晶粒上之任何其他值。密鑰生成及安全儲存之變動 In one embodiment, the initial key 625 is generated by using the injected key 1010. For example, the initial key 625 exists in a chip by being injected in a factory or other secure environment during manufacturing or other assembly or testing. In an example, the initial key 625 is used as an initial UDS of the computing device 1003. Confusion can also be imposed on UDS. UDS is the secret that DICE-RIoT started to use to generate keys and credentials for secure generation. The application process is performed by applying the obfuscation process (via the module 630) to the injected key (for example, the value from the key injection 1010) to increase the obfuscation of the initial key. In other embodiments, the obfuscation process can be applied to any other value that can be stored or otherwise existed on a chip or die. Changes in key generation and secure storage

現將在下文描述各種額外非限制性實施例。在一實施例中,在一系統板之第一通電之後(或期間),啟動一特殊序列以發動含有一密碼引擎(例如密碼模組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 values 0 and 1 are read, which provides a regular shape of the supply current (Idd).

接著,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 processor 143 or the processing device 111. When the instruction is executed by, for example, the controller 107 of the memory device 103 or the computing device 603, the instruction causes the controller 107 to perform any of the methods discussed above.

在[實施方式]中,各種功能及操作可描述為由電腦指令執行或引起以簡化描述。然而,熟習技術者應認識到,此等表述意謂功能源自由一或多個控制器或處理器(諸如一微處理器)執行電腦指令。替代地或組合地,可在具有或不具有軟體指令之情況下使用專用電路實施功能及操作,諸如使用專用積體電路(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)

一種身份驗證方法,其包括:由一運算裝置自一主機裝置接收一訊息;由該運算裝置生成一識別符、一憑證及一密鑰,其中該識別符與該運算裝置之一身份相關聯,且該憑證使用該訊息生成;及由該運算裝置將該識別符、該憑證及該密鑰發送至該主機裝置,其中該主機裝置經組態以使用該識別符、該憑證及該密鑰驗證該運算裝置之該身份,其中該識別符係一第一公共識別符,且該運算裝置儲存用於生成該第一公共識別符之一第一裝置秘密,該方法進一步包括:自該主機裝置接收一替換命令;回應於接收該替換命令,將該第一裝置秘密替換為一第二裝置秘密;及將使用該第二裝置秘密生成之一第二公共識別符發送至該主機裝置。 An identity verification method comprising: 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 associated with an identity of the arithmetic device, And the certificate is generated using the message; and the computing device sends the identifier, the certificate, and the key to the host device, wherein the host device is configured to use the identifier, the certificate, and the key to verify The identity of the computing device, wherein the identifier is a first public identifier, and the computing device stores a first device secret for generating the first public identifier, the method further includes: receiving from the host device A replacement command; in response to receiving the replacement command, replace the first device secret with a second device secret; and send a second public identifier generated using the second device secret to the host device. 如請求項1之方法,其中驗證該運算裝置之該身份包括串連該訊息及該憑證以提供第一資料。 Such as the method of claim 1, wherein verifying the identity of the computing device includes concatenating the message and the certificate to provide the first data. 如請求項2之方法,其中驗證該運算裝置之該身份進一步包括使用該密鑰解密該第一資料以提供第二資料。 Such as the method of claim 2, wherein verifying the identity of the computing device further includes using the key to decrypt the first data to provide the second data. 如請求項3之方法,其中驗證該運算裝置之該身份進一步包括使用該 識別符解密該第二資料以提供一結果及比較該結果與該密鑰。 Such as the method of claim 3, wherein verifying the identity of the computing device further includes using the The identifier decrypts the second data to provide a result and compares the result with the key. 如請求項1之方法,其中該識別符係該第一公共識別符,且該運算裝置儲存一密鑰,該方法進一步包括:使用該密鑰作為一訊息鑑別碼之一輸入來生成一衍生秘密;其中該第一公共識別符使用該衍生秘密生成作為一非對稱生成器之一輸入。 For example, the method of claim 1, wherein the identifier is the first public identifier, and the computing device stores a key, the method further includes: using the key as an input of a message authentication code to generate a derived secret ; Wherein the first public identifier is generated using the derived secret as an input of an asymmetric generator. 如請求項1之方法,其中該密鑰係一公鑰,且生成該憑證包含串連該訊息與該公鑰以提供一資料輸入用於加密。 Such as the method of request 1, wherein the key is a public key, and generating the certificate includes concatenating the message and the public key to provide a data input for encryption. 如請求項1之方法,其中:該識別符係該第一公共識別符,且一第一非對稱生成器生成該第一公共識別符及一私密識別符作為一相關聯對;該密鑰係一公鑰,且一第二非對稱生成器生成該公鑰及一私鑰作為一相關聯對;且生成該憑證包括:串連該訊息與該公鑰以提供第一資料;使用該私密識別符加密該第一資料以提供第二資料;及使用該私鑰加密該第二資料以提供該憑證。 Such as the method of claim 1, wherein: the identifier is the first public identifier, and a first asymmetric generator generates the first public identifier and a private identifier as an associated pair; the key is A public key, and a second asymmetric generator generates the public key and a private key as an associated pair; and generating the certificate includes: concatenating the message and the public key to provide the first data; using the private identification Encrypting the first data to provide the second data; and using the private key to encrypt the second data to provide the certificate. 如請求項1之方法,其中該密鑰係一公鑰,該方法進一步包括生成一隨機數作為一非對稱密鑰生成器之一輸入,其中該公鑰及一相關聯私鑰使 用該非對稱密鑰生成器生成。 For example, the method of claim 1, wherein the key is a public key, 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 use Use this asymmetric key generator to generate. 如請求項8之方法,其中該隨機數使用一物理不可複製功能(PUF)生成。 Such as the method of claim 8, wherein the random number is generated using a physical uncopyable function (PUF). 一種身份驗證系統,其包括:至少一處理器;及記憶體,其含有指令,該等指令經組態以指示該至少一處理器:將一訊息發送至一運算裝置;自該運算裝置接收一識別符、一憑證及一密鑰,其中該識別符與該運算裝置之一身份相關聯,且該憑證由該運算裝置使用該訊息生成;及使用該識別符、該憑證及該密鑰驗證該運算裝置之該身份,其中該識別符係一第一公共識別符,該運算裝置儲存用於生成該第一公共識別符之一第一裝置秘密,且該等指令經進一步組態以指示該至少一處理器:將一替換命令發送至該運算裝置,該替換命令引起該運算裝置將該第一裝置秘密替換為一第二裝置秘密;及自該運算裝置接收使用該第二裝置秘密生成之一第二公共識別符。 An identity verification system, comprising: at least one processor; and a memory, which contains instructions configured to instruct the at least one processor: send a message to a computing device; receive a message from the computing device An identifier, 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 the message; and the identifier, the certificate, and the key are used to verify the The identity of the computing device, wherein the identifier is a first public identifier, the computing device stores a first device secret used to generate the first public identifier, and the instructions are further configured to indicate the at least A processor: sending a replacement command to the computing device, the replacement command causing the computing device to replace the first device secret with a second device secret; and receiving from the computing device using the second device secret to generate one The second public identifier. 如請求項10之系統,其中驗證該運算裝置之該身份包括:串連該訊息及該憑證以提供第一資料; 使用該密鑰解密該第一資料以提供第二資料;使用該識別符解密該第二資料以提供一結果;及比較該結果與該密鑰。 For example, the system of claim 10, wherein verifying the identity of the computing device includes: concatenating the message and the certificate to provide the first data; Use the key to decrypt the first data to provide the second data; use the identifier to decrypt the second data to provide a result; and compare the result with the key. 如請求項10之系統,其中該運算裝置經組態以使用該第二裝置秘密作為提供一衍生秘密之一訊息鑑別碼之一輸入且使用該衍生秘密生成該第二公共識別符。 Such as the system of claim 10, wherein 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. 如請求項10之系統,其中該替換命令包含具有基於該第一裝置秘密之一值之一欄位。 Such as the system of claim 10, wherein the replacement command includes a field having a value based on the first device secret. 如請求項10之系統,其進一步包括經組態以生成一鮮度之一鮮度機構,其中發送至該運算裝置之該訊息包括該鮮度。 Such as the system of claim 10, which further includes a freshness mechanism configured to generate a freshness, wherein the message sent to the computing device includes the freshness. 如請求項10之系統,其中該運算裝置之該身份包含一文數串。 Such as the system of claim 10, wherein the identity of the computing device includes a string of characters and numbers. 一種非暫時性電腦儲存媒體,其儲存指令,該等指令在執行於一運算裝置上時引起該運算裝置至少:自一主機裝置接收一訊息;生成一識別符、一憑證及一密鑰,其中該識別符對應於該運算裝置之一身份,且該憑證使用該訊息生成;及將該識別符、該憑證及該密鑰發送至該主機裝置用於驗證該運算裝置之該身份,其中該識別符係一第一公共識別符,且該運算裝置儲存用於 生成該第一公共識別符之一第一裝置秘密,且該等指令進一步引起該運算裝置至少:自該主機裝置接收一替換命令;回應於接收該替換命令,將該第一裝置秘密替換為一第二裝置秘密;及將使用該第二裝置秘密生成之一第二公共識別符發送至該主機裝置。 A non-transitory computer storage medium that stores instructions that, when executed on an arithmetic device, cause the arithmetic device to at least: receive a message from a host device; generate an identifier, 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 identity of the computing device, wherein the identification Symbol is a first public identifier, and the arithmetic device stores it for A first device secret of the first public identifier is generated, and the instructions further cause the computing device to at least: receive a replacement command from the host device; in response to receiving the replacement command, replace the first device secret with a A second device secret; and sending a second public identifier secretly generated using the second device to the host device. 如請求項16之非暫時性電腦儲存媒體,其中該識別符係與一私密識別符相關聯之該第一公共識別符,該密鑰係與一私鑰相關聯之一公鑰,且生成該憑證包括:串連該訊息與該公鑰以提供第一資料;使用該私密識別符加密該第一資料以提供第二資料;及使用該私鑰加密該第二資料以提供該憑證。 For example, the non-transitory computer storage medium of claim 16, wherein the identifier is the first public identifier associated with a private identifier, the key is a public key associated with a private key, and the The certificate includes: concatenating the message and the public key to provide first data; using the private identifier to encrypt the first data to provide second data; and using the private key to encrypt the second data to provide the certificate. 如請求項16之非暫時性電腦儲存媒體,其中驗證該運算裝置之該身份包括使用該識別符執行一解密操作以提供一結果及比較該結果與該密鑰。For example, the non-transitory computer storage medium of claim 16, wherein verifying the identity of the computing device includes using the identifier to perform a decryption operation to provide a result and comparing the result with the key.
TW109107607A 2019-03-25 2020-03-09 Verification of identity using a secret key TWI740409B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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