AUTHENTICATED READING OF STORAGE SYSTEM DATA

By exchanging and updating keys between host and storage systems for authorized access to protected regions, the solution addresses vulnerabilities in existing storage systems, ensuring secure and efficient data protection and verification.

DE102022127769B4Active Publication Date: 2026-01-29MICRON TECHNOLOGY INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102022127769
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-05-20
Filing Date
2022-10-20
Publication Date
2026-01-29
Estimated Expiration
2042-10-20

AI Technical Summary

Technical Problem

Existing storage systems face vulnerabilities in protecting data from malicious access and lack secure data protection schemes, such as asymmetric key verification and dynamic adjustment of protected region attributes, leading to inefficiencies in accessing protected regions.

Method used

A host system and storage system exchange symmetric or asymmetric keys to access protected regions, which are periodically updated, and the storage system verifies the host's authorization through signature verification, allowing dynamic adjustment of protected region sizes and ranges.

Benefits of technology

This enhances security by thoroughly protecting data from malicious access and verifying the data source, enabling secure and efficient access to protected storage regions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Host system (105, 105-a, 405) that includes the following: a controller (106, 106-a) configured to couple with a storage system (110, 110-a, 410), wherein the controller (106, 106-a) is configured to cause the device (100, 200) to do the following: Transferred (415, 705) from one or more keys (310-a, 310-b, 310-c, 310-d) associated with a host system (105, 105-a, 405) to the storage system (110, 110-a, 410), each of the one or more transferred keys (310-a, 310-b, 310-c, 310-d) serving to assign to a respective protection region of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) on the storage system (110, 110-a, 410); Transfer (440, 710) of a signed instruction to read data from a first protection region (305-a) of the one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) to the storage system (110, 110-a, 410), wherein the signed instruction (435) is at least partially signed based on a counterpart key corresponding to a first transmitted key (310-a) of the one or more transmitted keys (310-a, 310-b, 310-c, 310-d), and wherein the first protection region (305-a) is associated with the first transmitted key (310-a) associated with the host system (105, 105-a, 405); Receiving (715) the data at least partially based on the transmission (440, 710) of the signed command; and Transmitting a command to adapt the first protection region (305-a) from a first size to a second size, to adapt the first protection region (305-a) from a first address range to a second address range, or both, wherein the adapted first protection region is associated with the first transmitted public key (310-a) associated with the host system (105, 105-a, 405).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The following explanations generally concern one or more storage systems and, in particular, the authenticated reading of storage system data.

[0002] Storage devices are commonly used to store information in various electronic devices, such as computers, wireless communication devices, cameras, digital displays, and the like. Information is stored by programming memory cells within a storage device to different states. For example, binary memory cells can be programmed to one of two supported states, often corresponding to a logical 1 or a logical 0. In some examples, a single memory cell can support more than two possible states, each of which can be stored by the memory cell. To access information stored by a storage device, a component can read or capture the state of one or more memory cells within the storage device.To store information, a component can write or program one or more memory cells within the storage device into appropriate states.

[0003] There are various types of memory devices, including magnetic hard disks, random access memory (RAM), read-only memory (ROM), dynamic random-access memory (DRAM), synchronous dynamic RAM (SDRAM), static RAM (SRAM), ferroelectric RAM (FeRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), flash memory, phase-change memory (PCM), three-dimensional cross-point memory (3D cross-point), not-or (NOR) and not-and (NAND) memory devices, and others. Memory devices can be volatile or non-volatile. Volatile memory cells (e.g., DRAM cells) can lose their programmed states over time unless they are periodically refreshed by an external power source. Non-volatile memory cells (e.g.,NAND memory cells can retain their programmed states for extended periods of time, even without an external power source.

[0004] US 2011 / 0239004A1 describes a storage system with a host and a storage device, where the storage system has multiple protected data areas. The host device uses a certificate issued by a certificate authority with access rights to specific areas. Authentication is performed using public-key cryptography: The host device transmits its certificate, which is verified by the storage device. Subsequently, a shared bus key is generated via a challenge-response procedure. The storage device grants access only to areas that are specified as permitted in the certificate. This process utilizes asymmetric key pairs from the host device and the certificate authority.

[0005] The problems mentioned above are solved by the features of the independent patent claims. Advantageous embodiments are described in the respective dependent claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 illustrates an example of a system that supports authenticated reading of storage system data according to the examples disclosed in this document. Fig. Figure 2 illustrates an example of a system that supports authenticated reading of storage system data according to the examples disclosed in this document. Fig. Figure 3 illustrates an example of a system that supports authenticated reading of storage system data according to the examples disclosed in this document. Fig. Figure 4 illustrates an example of a process flow that supports authenticated reading of storage system data according to the examples disclosed in this document. Fig. Figure 5 shows a block diagram of a host device that supports authenticated reading of storage system data according to the examples disclosed in this document. Fig. Figure 6 shows a block diagram of a storage device that supports authenticated reading of storage system data according to examples disclosed in this document. Fig. 7 and Fig. Figure 8 shows flowcharts illustrating one or more procedures that support authenticated reading of storage system data according to examples disclosed in this document. DETAILED DESCRIPTION

[0006] Some computing platforms can include one or more host systems that can communicate with one or more storage systems (e.g., directly or indirectly). For example, a host system can send access commands, such as a read command, to a storage system to access data stored in a secure location, such as a replay-protected memory block (RPMB), using pairs of symmetric keys stored on the host system and the storage system. In some cases, the storage system can sign the data associated with the access command to verify to the host system that the data originated from memory.However, some approaches to executing read commands from protected regions of the storage device may involve removing the region's protected state during data retrieval, which can leave the storage system vulnerable to malicious actors attempting to access the data while the region is unprotected. Furthermore, some approaches to protecting storage device regions, such as using an RPMB, may not allow more secure data protection schemes, such as using asymmetric keys to sign and verify data or updating host system or storage system keys over time. Additionally, some approaches may not allow custom configuration or dynamic adjustment of protected region attributes, such as the size of the protected region or the range of addresses associated with it.Efficient techniques for accessing protected regions of a storage device are desired.

[0007] As described in this disclosure, a host system and a storage system can exchange keys used to grant the host system access to one or more protected regions of the storage system. The keys can be symmetric (e.g., the host system and the storage system can share the same key) or asymmetric (e.g., both the host system and the storage system can have a unique private key and each can share a corresponding public key with the other) and can be updated periodically (e.g., according to a crypto-period determined by the host system or the storage system). Furthermore, the host system and the storage system can exchange separate keys for different protected regions of the storage system.

[0008] In some cases, the host system can transmit a read command to access data stored in a protected region of the storage system, and the host system can sign the read command using the key associated with the protected region. Upon receiving the read command, the storage system can verify the signature to determine whether the host is authorized to access the protected region and can then transmit the requested data to the host system. In some examples, the storage system can sign the returned data so that the host system can verify the source of the data. In some cases, the protected regions of the storage system can be updated, for example, by adjusting the size or address range of the protected regions in response to a command from the host system.The techniques described in this document can increase the security of the computing platform by, for example, protecting data more thoroughly from malicious parties and enabling verification of the source of the data transferred between the host system and the storage system.

[0009] Features of the disclosure are initially described in the context of systems, devices, and circuits, with reference to Fig. 1. Features of the revelation are described in the context of systems and a flowchart with reference to the Fig. 2-4. These and other features of the disclosure are further described in connection with a device diagram and a flowchart relating to authenticated reading of storage system data, with reference to the Fig. 5-8 described and illustrated by these.

[0010] Fig. Figure 1 illustrates an example of a System 100 that supports authenticated reading of storage system data according to the examples disclosed in this document. The System 100 includes a host system 105 coupled to a storage system 110.

[0011] A Storage System 110 can be or include any device or collection of devices, wherein the device or collection of devices includes at least one storage array. For example, a Storage System 110 can be, among other possibilities, a Universal Flash Storage Device (UFS Device), an Embedded Multimedia Control Device (eMMC Device), a Flash Device, a Universal Serial Bus Flash Device (USB Flash Device), a Secure Digital Card (SD Card), a Solid-State Drive (SSD), a Hard Disk Drive (HDD), a Dual In-Line Memory Module (DIMM), a Small Outline DIMM (SO-DIMM), or a Non-Volatile DIMM (NVDIMM).

[0012] System 100 can be included in a computing device such as a desktop computer, laptop computer, network server, mobile device, vehicle (e.g., airplane, drone, train, car, or other means of transport), Internet of Things (IoT) enabled device, embedded computer (e.g., one included in a vehicle, industrial plant, or networked commercial device), or any other computing device that includes a storage and processing device.

[0013] System 100 may include a host system 105, which may be coupled to the storage system 110. In some examples, this coupling may include an interface with a host system controller 106, which may be an example of a controller or control component configured to cause the host system 105 to perform various operations in accordance with examples described in this document. The host system 105 may include one or more devices and, in some cases, may include a processor chipset and a software stack executed by the processor chipset. For example, the host system 105 may include an application configured to communicate with the storage system 110 or a device within it. The processor chipset may include one or more cores, one or more caches (e.g., local memory or memory located within the host system 105), a memory controller (e.g., a memory controller), or a memory controller.The NVDIMM controller and a storage protocol controller (e.g., Peripheral Component Interconnect Express (PCIe) controller, Serial Advanced Technology Attachment (SATA) controller) are included. The host system 105 can use the storage system 110, for example, to write data to and read data from the storage system 110. Even if in . Fig. Where a storage system 110 is shown, the host system 105 can be coupled to any number of storage systems 110.

[0014] The host system 105 can be connected to the storage system 110 via at least one physical host interface. In some cases, the host system 105 and the storage system 110 can be configured to communicate via a physical host interface using an associated protocol (e.g., to exchange control, address, data, and other signals between the storage system 110 and the host system 105, or to communicate otherwise). Examples of a physical host interface include, but are not limited to, a SATA interface, a UFS interface, an eMMC interface, a PCIe interface, a USB interface, a Fibre Channel interface, a Small Computer System Interface (SCSI), a Serial Attached SCSI (SAS), a Double Data Rate (DDR) interface, and a DIMM interface (e.g., a 12V / ...The interfaces may include a DIMM socket interface that supports DDR), an Open NAND Flash Interface (ONFI), and a Low Power Double Data Rate (LPDDR) interface. In some examples, one or more of these interfaces may be included in a Host Control Panel 106 of the Host System 105 and a Storage Control Panel 115 of the Storage System 110, or otherwise supported between them. In some examples, the Host System 105 may be coupled to the Storage System 110 via a corresponding physical host interface for each storage device 130 included in the Storage System 110, or via a corresponding physical host interface for each type of storage device 130 included in the Storage System 110 (e.g., the Host Control Panel 106 may be coupled to the Storage Control Panel 115).

[0015] The storage system 110 can include a storage control unit 115 and one or more storage devices 130. A storage device 130 can include one or more storage arrays of any type of memory cell (e.g., non-volatile memory cells, volatile memory cells, or any combination thereof). Although in the example from Fig. Figure 1 shows two storage devices 130-a and 130-b. The storage system 110 can include any number of storage devices 130. If the storage system 110 includes more than one storage device 130, different storage devices 130 within the storage system 110 can furthermore include the same or different types of memory cells.

[0016] The storage control unit 115 can be coupled to and communicate with the host system 105 (e.g., via the physical host interface) and can be an example of a controller or control component configured to cause the storage system 110 to perform various operations according to the examples described in this document. The storage control unit 115 can also be coupled to and communicate with storage devices 130 to perform operations such as reading data, writing data, deleting data, or refreshing data in a storage device 130—among other such operations—which can be generally referred to as access operations. In some cases, the storage control unit 115 can receive commands from the host system 105 and communicate with one or more storage devices 130 to execute such commands (e.g.,on storage arrays within the one or more storage devices 130). For example, the storage control unit 115 can receive commands or operations from the host system 105 and convert the commands or operations into instructions or appropriate commands to achieve the desired access to the storage devices 130. In some cases, the storage control unit 115 can exchange data with the host system 105 and with one or more storage devices 130 (e.g., in response to commands from the host system 105 or otherwise in conjunction with them). For example, the storage control unit 115 can convert responses (e.g., data packets or other signals) addressed to the storage devices 130 into corresponding signals for the host system 105.

[0017] The storage control unit 115 can be configured for other operations assigned to the storage devices 130. For example, the storage control unit 115 can perform or manage operations such as wear balancing operations, garbage collection operations, error control operations such as error detection or error correction operations, encryption operations, caching operations, media management operations, background refresh, state monitoring, and address translations between logical addresses (e.g., logical block addresses (LBAs)) assigned to instructions from the host system 105 and physical addresses (e.g., physical block addresses) assigned to memory cells within the storage devices 130.

[0018] The Memory Control Unit 115 may include hardware such as one or more integrated circuits or discrete components, a buffer memory, or a combination thereof. The hardware may include circuitry with dedicated (e.g., hard-coded) logic to perform the operations attributed to the Memory Control Unit 115 in this document. The Memory Control Unit 115 may be, or include, a microcontroller, a special logic circuit (e.g., a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a digital signal processor (DSP)), or any other suitable processor or processing circuitry.

[0019] The memory control unit 115 may also include local memory 120. In some cases, the local memory 120 may include read-only memory (ROM) or other memory capable of storing the operating code (e.g., executable instructions) that the memory control unit 115 can execute to perform functions assigned to it in this document. In some cases, the local memory 120 may additionally or alternatively include static random-access memory (SRAM) or other memory that the memory control unit 115 can use for internal storage or calculations, such as those related to the functions assigned to it in this document. Additionally or alternatively, the local memory 120 may serve as a cache for the memory control unit 115.For example, data can be stored in local storage 120 if it is read from or written to a storage device 130, and the data can be available in local storage 120 for subsequent retrieval or manipulation (e.g., updating) by the host system 105 (e.g., with reduced latency compared to a storage device 130) according to a cache policy.

[0020] Even if the example of storage system 110 in Fig. As illustrated in Figure 1, a storage system 110 may include the storage control unit 115, but in some cases, it may not include a storage control unit 115. For example, the storage system 110 may additionally or alternatively rely on an external control unit (e.g., implemented by the host system 105) or one or more local control units 135, each of which may be located internally within the storage devices 130, to perform the functions attributed to the storage control unit 115 in this document. In general, one or more functions attributed to the storage control unit 115 in this document may, in some cases, instead be performed by the host system 105, a local control unit 135, or any combination thereof.In some cases, a storage device 130 that is at least partially managed by a storage control unit 115 can be referred to as a managed storage device. An example of a managed storage device is a managed NAND (MNAND) device.

[0021] A storage device 130 can include one or more arrays of non-volatile memory cells. A storage device 130 can include, for example, NAND memory (e.g., NAND flash memory), ROM, phase-change memory (PCM), self-selecting memory, other chalcogenide-based memory, ferroelectric random-access memory (RAM) (FeRAM), magneto-RAM (MRAM), NOR memory (e.g., NOR flash memory), spin-transfer-torque MRAM (STT-MRAM), conductive-bridging RAM (CBRAM), resistive random-access memory (RRAM), oxide-based RRAM (OxRAM), electrically erasable programmable ROM (EEPROM), or any combination thereof. Additionally or alternatively, a storage device 130 can include one or more arrays of volatile memory cells.A storage device 130 can, for example, include RAM memory cells such as dynamic RAM memory cells (dynamic RAM - DRAM) and synchronous DRAM memory cells (synchronous DRAM - SDRAM).

[0022] In some examples, a storage device 130 (e.g., on the same chip or in the same package) may include a local controller 135 that can perform operations on one or more memory cells of that storage device 130. A local controller 135 may operate in conjunction with a memory system controller 115 or perform one or more functions attributed to the memory system controller 115 in this document. For example, as in Fig. Figure 1 illustrates that a storage device 130-a can include a local control 135-a and a storage device 130-b can include a local control 135-b.

[0023] In some cases, a storage device 130 may be or include a NAND device (e.g., a NAND flash device). A storage device 130 may be or include a memory chip 160. For example, in some cases, a storage device 130 may be a package containing one or more chips 160. A chip 160 may, in some examples, be a piece of electronic-grade semiconductor cut from a wafer (e.g., a silicon chip cut from a silicon wafer). Each chip 160 may contain one or more layers 165, and each layer 165 may contain a corresponding set of blocks 170, with each block 170 containing a corresponding set of pages 175, and each page 175 containing a set of memory cells.

[0024] In some cases, a NAND flash memory device can contain 130 memory cells configured to store one bit of information each, which can be referred to as single-level cells (SLC). Additionally or alternatively, a NAND flash memory device can contain 130 memory cells configured to store multiple bits of information each, which are referred to as multi-level cells (MLC) when configured to store two bits of information each, tri-level cells (TLC) when configured to store three bits of information each, quad-level cells (QLC) when configured to store four bits of information each, or more generally, multi-level memory cells.Multi-level memory cells can provide higher storage density compared to SLC memory cells, but in some cases may result in narrower read or write spans or greater complexity in supporting circuitry.

[0025] In some cases, levels 165 can refer to groups of blocks 170, and in some cases, simultaneous operations can occur within different levels 165. For example, simultaneous operations can be performed on memory cells within different blocks 170, as long as the different blocks 170 are located in different levels 165. In some cases, a single block 170 can be referred to as a physical block, and a virtual block 180 can refer to a group of blocks 170 in which simultaneous operations can occur. For example, simultaneous operations can be performed on blocks 170-a, 170-b, 170-c and 170-d, which are each located within levels 165-a, 165-b, 165-c, and 165-d, and blocks 170-a, 170-b, 170-c and 170-d can be collectively referred to as a virtual block 180.In some cases, a virtual block may contain blocks 170 from different storage devices 130 (e.g., including blocks in one or more levels of storage device 130-a and storage device 130-b). In some cases, the blocks 170 within a virtual block may have the same block address within their respective levels 165 (e.g., block 170-a may be "block 0" of level 165-a, block 170-b may be "block 0" of level 165-b, and so on). In some cases, performing concurrent operations in different levels 165 may be subject to one or more restrictions, such as performing concurrent operations on memory cells within different pages 175 that have the same page address in their respective levels 165 (e.g.,(with regard to command decoding, the page address decoding circuit, or other circuits shared across levels 165).

[0026] In some cases, a block can contain 170 memory cells, organized into rows (pages 175) and columns (e.g., strings, not shown). For example, memory cells on the same page 175 can share a common word line (e.g., be coupled to it), and memory cells on the same string can share a common digit line (e.g., be coupled to it) (which can alternatively be called a bit line).

[0027] In some NAND architectures, memory cells can be read and programmed (e.g., written) at a first granularity level (e.g., the page level), but erased at a second granularity level (e.g., the block level). That is, a page can be the smallest unit of storage (e.g., a set of memory cells) that can be programmed or read independently (e.g., programmed or read simultaneously as part of a single program or read operation), and a block can be the smallest unit of storage (e.g., a set of memory cells) that can be erased independently (e.g., erased simultaneously as part of a single erase operation). Furthermore, in some cases, NAND memory cells can be erased before they can be rewritten with new data.For example, in some cases a used page 175 can only be updated once the entire block 170, which contains page 175, has been deleted.

[0028] System 100 can include any number of nontransitory, machine-readable media that support authenticated reading of storage system data. For example, the host system 105, the storage control unit 115, or a storage device 130 (e.g., a local controller 135) can include or otherwise access one or more nontransitory, machine-readable media that store instructions (e.g., firmware) for performing the functions attributed in this document to the host system 105, the storage control unit 115, or the storage device 130. For example, if such instructions are issued by the host system 105 (e.g., by the host control unit 106), by the storage control unit 115, or by a storage device 130 (e.g.,by a local controller 135), cause the host system 105, the storage control controller 115 or the storage device 130 to perform one or more associated functions as described in this document.

[0029] In some cases, a memory system 110 can utilize a memory controller 115 to provide a managed memory system, which may include, for example, one or more memory arrays and associated circuitry in combination with a local (e.g., on-chip or in-package) controller (e.g., local controller 135). An example of a managed memory system is a managed NAND system (MNAND).

[0030] In some examples, a host system 105 and a storage system 110 can exchange keys used to grant the host system 105 access to one or more protected regions of the storage system 110 (e.g., one or more protected regions of a storage device 130). The keys can be symmetric (e.g., the host system 105 and the storage system 110 can share the same key) or asymmetric (e.g., both the host system 105 and the storage system 110 can have a unique private key and each can share a corresponding public key with the other) and can be updated periodically (e.g., according to a cryptoperiod determined by the host system 105 or the storage system 110). Furthermore, the host system 105 and the storage system 110 can exchange separate keys for different protected regions of the storage system 110.In some cases, host system 105 can transmit a read command to access data stored in a protected region of storage system 110, and host system 105 can sign the read command using the key associated with the protected region. Upon receiving the read command, storage system 110 can verify the signature to determine whether host system 105 is authorized to access the protected region and can then transmit the requested data to host system 105. In some examples, storage system 110 can sign the returned data so that host system 105 can verify the source of the data. In some cases, the protected regions of storage system 110 can be updated, for example, by adjusting the size or address range of the protected regions in response to a command from the host system.Techniques described in this document can increase the security of the computing platform by, for example, protecting data more thoroughly from malicious parties and enabling verification of the source of the data transferred between the host system 105 and the storage system 110.

[0031] Fig. Figure 2 illustrates an example of a System 200 that supports authenticated reading of storage system data according to the examples disclosed in this document. The System 200 may include a Host System 105-a and a Storage System 110-a, which may be examples of the respective systems disclosed with reference to Fig. The host system 105-a and the storage system 110-a can implement various public key exchange techniques to support signaling communication between the respective systems with identity authenticity (e.g., signatures) and integrity (e.g., encryption), among other properties that may be based on unique and private cryptographic identities of the host system 105-a and the storage system 110-a. The host system 105-a may include a host control panel 106-a, and the storage system 110-a may include a storage control panel 115-a. In some examples, the host control panel 106-a and the storage control panel 115-a may be configured to perform one or more of the described operations on the host system 105-a and the storage system 110-a, respectively.Although techniques are described with reference to a single host system 105-a and a single storage system 110-a of the system 200, the described techniques can be extended to support implementations of a host system 105 coupled with any number of storage systems 110, or implementations of a storage system 110 coupled with any number of host systems 105, or implementations of a network of multiple host systems 105 coupled with multiple storage systems 110.

[0032] Host system 105-a can be an example of a system that uses at least one section of storage system 110-a (e.g., memory 240) for information storage, which may involve various operations that support writing information to storage system 110-a by host system 105-a, reading information from storage system 110-a by host system 105-a, or both. In some examples, host system 105-a can be characterized as "local," which may refer to a relatively direct or close physical, electrical, or otherwise communicative coupling. In some other examples, host system 105-a can be characterized as "remote," which may refer to a relatively distant (e.g.,communicative coupling can be obtained (not located in the same place), which may involve one or more wired, wireless, optical, or otherwise relatively remote communicative couplings, such as a cloud application or a distributed computing system.

[0033] In some examples, the host system 105-a may contain, be coupled to, or otherwise associated with one or more host entities 210. Host entities 210 may be implemented as hardware entities, firmware entities, or software entities and may involve various serial, parallel, or hierarchical couplings or logical organization with or through the host system 105-a. In some examples, the host entities 210 may request or otherwise perform signaling with the storage system 110-a through a common controller or interface (e.g., through the host system controller 106-a). In other examples, the host entities 210 may be associated with different functions, different feature sets, different permissions, and different storage attributes (e.g., data protection attributes), among other different characteristics.

[0034] In some examples, each of the host entities 210 can be associated with a unique identifier (e.g., a secret identifier, a unique device secret, a unique entity secret) that may involve or support the generation of a respective private key for the host entity 210. In some examples, an identifier of a host entity 210 need not itself be private, but a private key can be generated (e.g., by the host system 105-a) for a host entity 210 based on an identifier (e.g., public or private) of the host entity 210 and a private identifier of the host system 105-a (e.g., a private master identifier). Such techniques can support the unique identification and authentication of each of the host entities 210 according to the examples disclosed in this document (e.g., separately from other host entities 210).

[0035] The example of host system 105-a can be associated with a host entity 210-a of an original equipment manufacturer (OEM) (e.g., a first host entity), a host entity 210-b of an operating system (OS) vendor (e.g., a second host entity), and a host entity 210-c of an independent software vendor (ISV) (e.g., a third host entity). In some other examples, a host system 105 can include or otherwise be associated with any number of one or more host entities 210, including, but not limited to, one or more OEM host entities 210, OS vendor host entities 210, ISV host entities 210, or other types of host entities.In some examples, the host entities 210 may be omitted or otherwise not considered separately, in which case a private master key may be implemented by the host system 105-a (and any host entities 210, if applicable), which may be based on a single or shared unique identifier of the host system 105-a (e.g., a secret identifier, a unique device secret, or a unique host secret associated with the host system 105-a).

[0036] In some examples, the host system 105-a may be associated with a location for storing authentication or encryption information (e.g., generated or received keys, certificates), such as a keystore 215. For example, the host system 105-a may use the keystore 215 to store one or more private keys or certificates associated with the host system 105-a. In some examples, a keystore 215 may be a section of the host system 105-a, such as an implementation of a dedicated storage component of the host system 105-a. Additionally or alternatively, one or more components of the keystore 215 may reside outside the host system 105-a but may otherwise be accessible by the host system 105-a (e.g., securely). In various examples, the keystore 215 may be a non-volatile storage location (e.g.,for static keys or keys that are retained for a relatively long time) or a volatile storage location (e.g., for ephemeral keys or keys that are otherwise generated relatively frequently), or both. Although keystore 215 is illustrated separately from host control panel 106-a, in some examples keystore 215 may be part of host control panel 106-a or otherwise associated with it, such as a storage location that also contains firmware for host system 105-a or host control panel 106-a.

[0037] In some examples, the host system 105-a may contain content 220, which can relate to various types of information stored on the host system 105-a. In some examples, content 220 can be accessed or otherwise used to support various key generation (e.g., content-based key generation) or other cryptographic techniques, as disclosed in this document. For example, content 220 may contain firmware of the host system 105-a, such as boot code (e.g., second-stage boot code, "Ll" boot code) or a firmware security descriptor (FSD), which can be used to establish an operational or cryptographic state (e.g., a firmware state) of the host system 105-a.In some examples, information associated with content 220 can be transferred to storage system 110-a to support various authentication or encryption techniques (e.g., so that storage system 110-a generates keys or certificates for operation with storage system 110-a). Although content 220 is illustrated separately from host control panel 106-a, in some examples content 220 may be part of host control panel 106-a or otherwise associated with it, such as a storage location containing firmware for host system 105-a or host control panel 106-a.

[0038] The storage system 110-a can include a memory 240, which may refer to a collective storage capacity of one or more instances of local memory 120, or one or more storage devices 130, or various combinations thereof, that are included in or otherwise allocated to the storage system 110-a. In some examples, the memory 240 may be subdivided into partitions 245 (e.g., memory areas, address ranges) or otherwise organized, which may refer to different subsets or ranges of logical or physical addresses of the allocated local memory 120 or storage devices 130.In some examples, the partitions 245 may be assigned an initial address range and they may be updated by an assignment to a different address range, including appending additional new addresses, an assignment to a subset of the initial address range (e.g., trimming ranges), or an assignment to a completely new address range.

[0039] In some examples, partitions 245 or sections thereof can be assigned or allocated to different functions or attributes, such as examples where one or more partitions 245 are associated with one or more host entities 210 or their respective public or private keys. In one example implementation, partition 245-a can be associated with the OEM host entity 210-c, partition 245-b can be associated with the OS provider host entity 210-b, and partition 245-c can be associated with the ISV host entity 210-c. In some examples, partition 245-d can be unallocated (e.g., not dedicated to a particular purpose or entity, or simply as free space), or, in other examples of partition allocation, it can be shared among multiple host entities 210.In some examples, the partitions 245 can be used to implement various hierarchical encryption or authentication techniques. For example, each partition 245 or a section of a partition 245 can be assigned or updated with a protection attribute (e.g., enabling or disabling a write-protection attribute, enabling or disabling a read-protection attribute), to which various keys, authentications, or encryptions can be associated, specific to a given host entity 210 or generally common to the host system 105-a, among other examples.

[0040] In some examples, the storage system 110-a can be associated with a location for storing authentication or encryption information (e.g., generated or received keys, certificates), such as a keystore 250. For example, the storage system 110-a can use the keystore 250 to store one or more private keys associated with the storage system 110-a, or one or more public keys or certificates generated by the storage system 110-a, or one or more public keys or certificates received from the host system 105-a (or other host systems 105, not shown). In some examples, the keystore 250 can be a section of the storage system 110-a, such as an implementation of a dedicated storage component of the storage system 110-a.Additionally or alternatively, the keystore 250 may be located outside the storage system 110-a, but may otherwise be accessible through the storage system 110-a (e.g., securely). In various examples, the keystore 250 may be a non-volatile storage location (e.g., for static keys or keys that are retained for a relatively long time), a volatile storage location (e.g., for ephemeral keys or keys that are otherwise generated relatively frequently), or both. Although the keystore 250 is illustrated as separate from the storage system 240, in some examples the keystore 250 may be contained within a section of the storage system 240 (e.g., in a separate or dedicated partition 245).Although the key memory 250 is illustrated separately from the memory control unit 115-a, the key memory 250 may furthermore be part of the memory control unit 115-a in some examples, or otherwise associated with it, such as a memory location that also contains firmware for the memory system 110-a or the memory control unit 115-a (e.g., a local memory 120).

[0041] In some examples, the memory system 110-a may include a physically unclonable function (PUF) 255 that can support the assignment or generation of an identifier unique to the memory system 110-a (e.g., to generate a secret identifier or a unique device secret of the memory system 110-a). The PUF 255 may include various components or circuit elements that have an intrinsic physical property unique to the PUF 255, which can be used to establish intrinsic uniqueness of the memory system 110-a. For example, the PUF may include a set of one or more transistors, resistors, capacitors, memory cells (e.g., SRAM cells, which in some cases are referred to in the Fig. PUF 255 may include the local memory 120 described in the text) or other circuit elements or combinations thereof that, when accessed, support the generation of a digital signature unique to the storage system 110-a. In some examples, a controller of the storage system 110-a (e.g., the storage system controller 115-a) may access or otherwise interact with PUF 255 to generate one or more private keys for the storage system 110-a, which can then be used to generate public keys for establishing authenticity or encryption between the storage system 110-a and the host system 105-a (e.g., the host entities 210, where applicable). Although PUF 255 is illustrated as separate from keystore 250, in some examples PUF 255 may be included in keystore 250 or otherwise interpreted as part of it (e.g.,Part of the storage control system 115-a, part of a local memory 120 of the storage system 110-a).

[0042] In various implementations, the PUF 255 itself, the signaling generated by the PUF 255, or both may be inaccessible from outside the memory system 110-a. Such inaccessibility can be supported by various implementations in which the PUF 255 and other components involved in the described cryptographic techniques are contained in a section of the memory system 110-a where attempts to access such components would be destructive to the components, or where such components or associated signaling would otherwise be shielded from destructive or non-destructive investigation or snooping techniques. For example, at least the PUF 255 and the other components involved in the described cryptographic techniques (e.g.,Components involved in handling private keys or unique device secrets, which may include at least one section of the storage system control 115-a (or at least one section thereof), if not all components of the storage system 110-a, are implemented in a contiguous semiconductor chip, such as a SoC implementation.

[0043] In some examples, the storage system 110-a may include a public key table 260 (e.g., a public key table for elliptic curve cryptography) that may be configured to store, organize, or allocate public keys, such as those received from the host system 105-a, those generated on the storage system 110-a, or both. In some examples (e.g., in implementations where host entities 210 are mapped to respective public keys transmitted by the host system 105-a), the public key table 260 may contain a respective public key, or a mapping thereof, for each of the OEM host entity 210-a, the OS provider host entity 210-b, and the ISV host entity 210-c (e.g., mapped to partitions 245-a, 245-b, and 245-c, respectively).Although the public key table 260 is illustrated as separate from the key store 250, in some examples the public key table 260 may be included in the key store 250 or otherwise interpreted as part of it (e.g. part of the memory control 115-a, part of a local memory 120 of the memory system 110-a).

[0044] In some implementations, the public key table 260 may be mapped to a mapping between public keys and device identifiers or partitions 245, or protection attributes (e.g., write-protection configurations, read-protection configurations), or various combinations thereof, alongside other mappings between keys and associated configurations. For example, the public key table 260 may provide a mapping for one or more host systems 105 (e.g., host system 105-a) or a host entity 210 thereof to a specific public key or symmetric key. Such a mapping may also include a mapping between such keys and one or more partitions 245, or a mapping between such keys or partitions 245 and one or more protection attributes, such as whether a partition 245 is configured to be read-protected, write-protected, or both.In some examples, a mapping of the public key table 260 may include a mapping of a key, a host system 105, or a host entity 210 with multiple partitions 245, which could support each partition 245 using a common key but with a unique protection attribute. In some examples, the public key table may support a key hierarchy that allows a master host system 105 or an associated key to assign partitions 245 to another host system 105 or host entity 210, or their respective keys.

[0045] In some examples, the storage system 110-a may include a platform configuration register (PCR) 270 that can store or measure software state (e.g., version, update status), such as the state of software running on the storage system 110-a, and configuration data used by such software (e.g., to represent the platform software state of the storage system 110-a). In some examples, the PCR 270 may contain information that can be evaluated to determine whether the storage system 110-a has been compromised or is otherwise untrustworthy.Although the PCR 270 is illustrated separately from the storage control unit 115-a, in some examples the PCR 270 may be part of the storage control unit 115-a or otherwise associated with it, such as a location associated with firmware for the storage system 110-a or the storage control unit 115-a (e.g., local memory 120). Such techniques can assist the PCR 270 in storing or measuring the state of such firmware, which can be used to evaluate whether such firmware has been adversely updated (e.g., to assess whether the storage system 110-a can be authenticated).

[0046] In some examples, the storage system 110-a may include an RPMB 265, which may be provided as a means of storing data in an authenticated and re-encoded manner, accessible only through successfully authenticated read and write operations. In some examples, the RPMB 265 may contain information that can be evaluated to determine whether signaling exchanged with the storage system 110-a has been intercepted and re-encoded, which may indicate whether one or more devices or connections of the system 200 are untrusted. Although the RPMB 265 is illustrated separately from the storage control unit 115-a, in some examples the RPMB 265 may be part of the storage control unit 115-a or otherwise associated with it, such as a memory location containing firmware for the storage system 110-a or the storage control unit 115-a (e.g., local memory 120).In some examples, the RPMB 265 can be assigned a fixed size, a fixed set of addresses, or both.

[0047] In some examples, the storage system 110-a may contain content 280, which may relate to various types of information stored on the storage system 110-a. In some examples, content 280 may be accessed or otherwise used to support various key generation (e.g., content-based key generation) or other cryptographic techniques, as disclosed in this document. For example, content 280 may contain firmware of the storage system 110-a, such as a boot code (e.g., first-stage boot code, "L0" boot code, second-stage boot code, "Ll" boot code) or an FSD that can establish an operational or cryptographic state of the storage system 110-a. In some examples, information associated with content 280 may be used by the storage system 110-a to support various authentication or encryption techniques (e.g.,(to generate a certificate for operation with the host system 105-a). Although content 280 is illustrated separately from the storage control panel 115-a, in some examples, content 280 may be part of the storage control panel 115-a or otherwise associated with it, such as a memory location containing firmware for the storage system 110-a or the storage control panel 115-a. Although content 280 is illustrated separately from memory 240, content 280 may also, in some examples, refer to information contained in a section of memory 240 (for example, in a separate or dedicated partition 245). In some implementations, content 280 may receive information from or refer to one or more aspects of the PCR 270.

[0048] One or more components of System 200 can be configured to implement asymmetric key distribution to establish authenticated signaling, encrypted signaling, or both between Host System 105-a and Storage System 110-a (e.g., according to an authenticated system identity). This may involve implementing cryptographic security functionality directly within Storage System 110-a (e.g., utilizing capabilities of Storage System Controller 115-a to support various asymmetric cryptography techniques). In some examples, such techniques may involve passing fundamentally public device identification information between Host System 105-a and Storage System 110-a to support private authentication of each system (e.g.,Device-specific or hardware-specific authentication, without attempting to maintain the secrecy or avoidance of disclosure of exchanged private or secret key material corresponding to the respective devices. In some examples, such asymmetric cryptography can be used to derive equivalent or otherwise symmetric keys on each side of the signaling exchange (e.g., on both the host system 105-a and the storage system 110-a) using a common secret that is itself not communicated between the host system 105-a and the storage system 110-a. This can take advantage of efficiencies of symmetric-key techniques for authenticated or encrypted signaling relative to asymmetric-key techniques.In some examples, such techniques can be implemented to establish a virtual authenticated channel 205 between the host system 105-a and the storage system 110-a, which can be used to transmit signaling (e.g., encrypted signaling, unencrypted signaling) and associated signatures (e.g., asymmetric signatures such as Elliptic Curve Digital Signature Algorithm (ECDSA) signatures, symmetric signatures such as Hashed Message Authentication Code (HMAC) signatures) between the host system 105-a and the storage system 110-a.

[0049] In some examples, System 200 can be configured to support signing and verification (e.g., authentication) of signaling between Host System 105-a and Storage System 110-a (e.g., according to signed command signaling, signed request signaling, signed data signaling, or signed response signaling). These techniques can be implemented to authenticate the transmitting system of such signaling, to ensure that the signaling has not been altered before being received by a receiving system, or both. According to such techniques, a receiving system can evaluate the received signaling to determine whether the transmitted signaling was sent by an unverified or unauthorized transmitting system, or whether the transmitted signaling has been altered or otherwise compromised.In some examples, such techniques can support a one-to-many security arrangement, since multiple receiving systems may be able to implement the same public key (e.g., of an asymmetric key pair) of the transmitting system, which is associated with a single private key (e.g., of the asymmetric key pair) of the transmitting system. A key included in the same key pair as another key may be called a counterpart key to that other key (e.g., a private key and a public key within an asymmetric key pair may be counterparts to each other, and two symmetric keys within a symmetric key pair may be counterparts to each other).

[0050] In some examples of signing and verifying signaling between host system 105-a and storage system 110-a, a signature for a given signaling instance (e.g., a message, a command, a request, a data packet, a response) can be derived by hashing or otherwise processing the signaling instance with a function (e.g., a hash function, a cryptographic hash algorithm) that receives as input the signaling instance and a private key associated with the transmission system. The output of such a function (e.g., a signature, a hash digest) can be reconstructed using the same function with the same signaling instance and either the same private key associated with the transmission system or an associated public key (e.g., an asymmetric key pair) associated with the transmission system.For example, for a signaling instance associated with a 1-megabyte program operation, a hash function based on the 1-megabyte of data and a private key could be a 256-bit signature or a hash digest.

[0051] To aid in verifying the authenticity of the transmission system, the transmission system can transmit the signaling instance along with its corresponding signature, which can be received by a receiving system. The receiving system may have received or otherwise generated the transmission system's associated public key and can accordingly generate a trial signature based on the received signaling instance and the transmission system's associated public key. If the trial signature matches the received signature, the receiving system can determine that the transmission system was authentic (e.g., that the signaling instance is a transmission from a trusted system) and can proceed with processing or otherwise take a response action in response to the received signaling instance.In some implementations, signature generation can be configured such that even if a signaling instance is the same, a generated signature will be different. Furthermore, in such implementations, signature generation and verification operations can be based on a random number, a nonce, or a monotonic counter that is understandable to both the transmitting and receiving systems.

[0052] In some examples, System 200 can be configured to support encryption and decryption of signaling between Host System 105-a and Storage System 110-a (e.g., according to encrypted signatures, encrypted command signaling, encrypted request signaling, encrypted data signaling, or encrypted response). These encryption and decryption techniques can be implemented to protect the contents of such signaling from being intercepted, interpreted, or otherwise processed (e.g., to maintain the integrity of the signaling itself). According to such techniques, a transmission system can designate signaling instances for transmission using a key known to the transmission system (e.g., a key combination).a symmetric key pair) encrypts, and a receiving system can decrypt received instances of such signaling using a key known to the receiving system (e.g., the same symmetric key pair), which may be the same as the symmetric key known to the transmitting system or otherwise equivalent or operable for such decryption. In some examples, such techniques can support a one-to-one security arrangement, since a symmetric key pair may be understood by only a single transmitting system and a single receiving system (e.g., if a symmetric key pair is based on unique identifiers of both the transmitting and receiving systems).However, some cryptographic techniques can support arrangements other than a one-to-one security arrangement, such as when symmetric keys are based on unique identifiers from more than two systems.

[0053] Some implementations of the described techniques can utilize asymmetric cryptography, whereby a public key associated with host system 105-a can be uploaded to one or more storage systems 110 (e.g., storage system 110-a) without exposing a private key of host system 105-a. This can prevent a malicious actor from stealing the key and impersonating the true key holder (e.g., impersonating host system 105-a). Such techniques can also allow for the substitution of a public key, which may differ from other techniques, such as those relating to an RPMB or a replay-protection monotonic counter (RPMC).In some examples, such asymmetric cryptography techniques can facilitate the use of public key infrastructure (PKI) techniques, where keys can be verified through a standardized chain of digital certificates.

[0054] In some implementations, public key exchange can support the generation of symmetric keys in both the host system 105-a and the storage system 110-a using techniques such as Diffie-Hellman key exchange or ellipse curve techniques, allowing a symmetric secret to be shared between the device and the host without revealing the private keys of the respective systems. In some implementations, an asymmetric Diffie-Hellman key exchange can be performed between the host system 105-a and the storage system 110-a to generate symmetric keys, which are then used to enable improved performance on either the host system 105-a or the storage system 110-a for authentication, encryption, or both.Furthermore, ephemeral symmetric keys can be derived using the same algorithm, based on different techniques for duration-initiated or event-initiated generation of ephemeral keys, which is shared by the host system 105-a and the storage system 110-a, to make it more difficult for a malicious actor to extract or replicate such keys.

[0055] In some examples, the exchange of public keys may be associated with the creation of digital certificates, which may involve various signaling with or other interactions with one or more certificate authorities or registration authorities, or may include self-signed certificates or various combinations thereof. For example, the host system 105-a, a cloud authority, or another centralized certificate authority, in communication with the host system 105-a, may create a certificate signing request (CSR), which may be an example of a self-signed certificate proving that the storage system 110-a possesses the private key associated with the public key in the CSR. In some examples, such a CSR may be issued by the storage system 110-a as part of a manufacturing operation (e.g.,to establish the identity of storage system 110-a) to a centralized certificate authority. In some implementations, in response to the verification of the identity of storage system 110-a (e.g., by a cloud authority), a vendor-endorsed certificate may be provided to the host system 105-a and storage system 110-a, or to both. In some examples, such techniques may assist a requesting system in downloading a vendor-endorsed certificate (e.g., a certificate authority-endorsed certificate) or in downloading the CSR.

[0056] Fig. Figure 3 illustrates an example of a System 300 that supports authenticated reading of storage system data according to examples disclosed in this document. The System 300 may include one or more regions of a storage system, such as Region 305-a, Region 305-b, Region 305-c, Region 305-d, or Region 305-e. In some cases, the storage system may be an example of aspects of Storage System 110 or Storage System 110-a, as described in reference to Fig. 1 and Fig. 2 described. In some cases, each of the one or more regions 305 can be a distinct region, a distinct group, or distinct memory cells, such as one or more blocks of memory cells, one or more memory chips, or other arrangements of memory cells. The memory cells contained in a region 305 can be a continuous region of memory cells or can be distributed throughout the memory system.

[0057] In some cases, a region 305 can be a protected region, such as a read-only region. For example, region 305-a can be a read-only region and can be associated with or correspond to a key 310-a. Key 310-a can be a key associated with a host system or host entity, such as host system 105-a or host entity 210, as described in [reference to...]. Fig. 2 described. In some cases, different host entities can use different keys. For example, a first host entity may be authorized to access the read-only region 305-a, and accordingly, the first host entity may use the key 310-a when accessing the read-only region 305-a. Alternatively, a second host entity may be authorized to access the read-only region 305-b, and accordingly, the second host entity may use the key 310-b when accessing the read-only region 305-b.

[0058] In some examples, multiple host entities can be authorized to access the same region 305, such as the read-only region 305-c. In such examples, the read-only region can be associated with multiple keys, such as a key 310-c associated with a first host entity authorized to access the read-only region 305-c, and a key 310-d associated with a second host entity authorized to access the read-only region 305-c. In some cases, a single host entity can be associated with or use multiple keys 310 and thus be authorized to access multiple read-only regions of the storage system.

[0059] In some cases, the host system and the storage system can use one or more symmetric key pairs. In such cases, both the host system and the storage system can store a shared key 310. For example, if a host entity is authorized to access the read-only region 305-a, the host system can store the key 310-a in key store 215. Similarly, the storage system can also store the key 310-a in key store 250. In some cases, the storage system can associate the key 310-a with the host entity, for example, in the public key table 260, so that the storage system can verify commands sent by the host system.

[0060] Additionally or alternatively, the host system and the storage system can use asymmetric key pairs. In such cases, the host system can store a private key associated with a read-only region, and the storage system can store a public key of the host system. For example, if a host entity is authorized to access the read-only region 305-a, the host system can store the private key associated with the read-only region 305-a in keystore 215 and transfer the corresponding public key to the storage system. Similarly, the storage system can store the public key in keystore 250. In some cases, key 310-a might be the public key received from the host system.

[0061] For example, a host entity might request data stored by the storage system in the read-protected region 305-a. Accordingly, the host system might generate a read command 315 to access the data. The host system might sign or encrypt the read command 315 using a key associated with the read-protected region 305-a (for example, a shared key or a private key corresponding to a public key), such as a key associated with the host entity that requested the data. In some cases, signing the read command 315 might involve performing a hashing procedure to generate a hash (for example, a hash digest) using the key associated with the read-protected region 305-a and the read command 315. In some cases, the host system's signature might be the hash or the result of the hashing procedure.In some cases, the host system can transmit the read command 315 and the signature to the storage system.

[0062] The storage system can receive the 315 read command and the host system's signature. In some cases, the storage system can verify or authenticate the 315 read command and signature to determine whether the host entity is authorized to access the read-protected region 305-a. For example, the storage system can perform a hash procedure to generate a hash using the received 315 read command and the 310-a key. If the hash generated by the storage system matches the signature transmitted by the host system, the storage system can determine that the host entity is authorized to access the read-protected region. Accordingly, the storage system can retrieve the data from the read-protected region 305-a and transfer the data to the host system. In some cases, the storage system can retrieve the data without removing the read-protected status of the read-protected region 305-a (e.g.,The reading operation can be atomic).

[0063] In some cases, the host system may request that the storage system sign the data associated with the 315 read command. For example, the host system may transmit an additional command or specification along with the 315 read command to request the signed data. In such cases, upon receiving the read command, the storage system may perform a hashing procedure to produce a hash using a key associated with the storage system (such as a private key of the storage system or a shared key between the host system and the storage system) and the retrieved data. The storage system may then transmit the hash, along with the data, to the host system in response to the 315 read command. The storage device's signature may be the generated hash.The host system can verify or authenticate the data by performing a hash procedure using a key associated with the host system (e.g., a private key of the host system or a shared key between the host system and the storage system) and the received data. If the result of the hash procedure matches the received signature, the host system can determine that the data was received from the storage system (e.g., the host system can determine that the data was not received from a separate or different storage system).

[0064] In some cases, the host entity requesting the data might not be authorized to access the read-protected region. For example, the host entity might be authorized to access data associated with key 310-b instead of key 310-a. In such cases, the read command 315 might be signed using key 310-b. Consequently, after receiving the read command 315 and the signature, the storage system might determine that the hash generated with key 310-a does not match the received signature. Therefore, the storage system might return a statement indicating that the host system is not authorized to access the read-protected region 305-a. In some cases, this statement might contain empty (e.g., only zeros) or otherwise invalid (e.g., garbage) data. In some examples (e.g.,(If the host system has requested that the storage system sign the data) the storage system can generate a signature for the requested data using a key associated with the storage system and transmit the signature to the host entity, but not the data to the host entity - therefore, in some cases, a signature without associated data can be an indication that the host system is not authorized to access the read-protected region 305-a.

[0065] Fig. Figure 4 illustrates an example of a process flow 400 that supports authenticated reading of storage system data according to examples disclosed in this document. The process flow 400 can be implemented by a host system 405, for example using a host system controller, and by a storage system 410, for example using a controller, which can be examples of the respective devices disclosed with reference to the Fig. 1 and Fig. 2. Storage system 410 can be an example of an eMMC system. In the following description of process flow 400, the operations can be performed in a different order than the one shown. For example, specific operations can be omitted from process flow 400, or other operations can be added to process flow 400.

[0066] In some examples, the process flow 400 may involve the generation of public keys that can be communicated between the host system 405 and the storage system 410. These public keys may be referred to as asymmetric keys or asymmetric public keys (e.g., public keys of an asymmetric key pair, public keys that each correspond to a respective private key of an asymmetric key pair). The generation of such public keys may be based on private keys maintained within the respective system, and such private keys are not shared outside of that system. Such techniques may enable the host system 405 and the storage system 410 to sign various transmitted signalings (e.g., to authenticate a transmission system) or to encrypt various transmitted signalings (e.g., to verify the identity of a user).for information integrity) or both, without exchanging private identification information that is unique to each system. Accordingly, such techniques can improve the ability to communicate with authenticity and integrity compared to other techniques that do not involve the distribution of cryptographic hardware identification information, or where such distribution may be more vulnerable to cloning or theft, such as techniques that distribute symmetric keys in a potentially insecure manner.

[0067] For example, host system 405 can generate a public key of the host system, which may be based at least partially on a private key of the host system (e.g., can be calculated using such a key). In various examples, the private key of the host system may be stored in host system 405 or generated otherwise using a private identifier such as a backup configuration, an identity stored in non-volatile memory, a PUF of host system 405, or some other unique identifier of host system 405 that can be protected from being cloned or extracted. In some examples, the public key of the host system may be associated with a specific host entity 210 or a specific range of addresses on storage system 410 (e.g., a partition 245 or a portion thereof), or with a storage protection attribute (e.g., a partition 245).These public key attributes may be assigned read protection, write protection, or a combination thereof. In some examples, such public key attributes may not be assigned to the generated public key of the host system, but may later be assigned to one or more symmetric keys that are generated at least partially based on the host system's public key, or may later be assigned by the storage system 110-a.

[0068] In some examples, process flow 400 may involve an exchange of one or more keys between host system 405 and storage system 410. For example, host system 405 may transmit one or more keys at 415, each corresponding to a protected region of storage system 410, which storage system 410 can receive. In some examples (e.g., if host system 405 and storage system 410 are configured to support symmetric keys, encryption, or both), storage system 410 may transmit one or more public keys for storage system 410 at 420, which host system 405 can receive. In some examples, the transmitted public keys may be stored on the respective receiving system (e.g.,in the key storage (215, in the key storage (250)), such as in non-volatile memory of the respective receiving system, or communicate with it in some other way. In some other examples, such transmitted or received public keys cannot be stored, but keys generated based on such transmitted or received public keys can be stored during further processing. In some examples, such asymmetric public keys can be updatable, with such an update being initiated based on a timer or event, and such updated or replacing asymmetric public keys subsequently generated can accordingly be transmitted from a generating system to a receiving system.

[0069] In some examples, the 400 process flow may involve the generation of symmetric keys by the host system 405 and the storage system 410, which can be calculated at least partially based on the respective public keys received. Such symmetric keys may be generated in such a way that they are the same or otherwise equivalent between the two systems (e.g., as a shared secret) or otherwise operational so that one is used to authenticate information signed using the other, or so that one is used to decode information encoded with the other, or both, while avoiding the transmission of private information.For example, at 425, host system 405 can generate a symmetric key that is based at least partially on the one or more keys transferred by storage system 410 at 420 and the one or more keys of host system 405 (e.g., can be calculated using these). Furthermore, at 430, storage system 410 can also generate a symmetric key that is based at least partially on the one or more keys transferred by host system 405 at 415 and the one or more keys of storage system 410 (e.g., can be calculated using these). In some examples, such symmetric keys can be generated using Diffie-Hellman techniques or other exponential key exchange or generation protocols, including ellipse curve techniques.In some examples, the generated symmetric keys can be stored on the generation system (e.g., in key memory 215, in key memory 250), such as in a non-volatile memory of the respective generation system or otherwise communicating with it.

[0070] The process flow 400 can describe the transmission of a read command from the host system 405 to the storage system 410 to access data stored in one or more protected regions of the storage system 410. For example, at 435, a command can be signed. For example, the host system 405 can generate a signed command to access data located in a read-protected region of the storage system 410 (e.g., read-protected region 305, as referenced in Fig. 3) are stored, such as a read command. In some cases, generating the signed command may involve generating a signature by performing a hash procedure using a key associated with the read-protected region of storage system 410 and the read command, and including the signature in the command. Accordingly, the signed command may include an access command (e.g., the command to read data stored in storage system 410) and the signature generated using the hash procedure.

[0071] At 440, the signed instruction can be transferred to storage system 410. For example, host system 405 can transfer the signed instruction to storage system 410. In some examples, host system 405 can additionally transfer information to storage system 410 indicating that the signed instruction has been signed. For example, host system 405 can modify the state of a channel between host system 405 and storage system 410 to indicate that the signed instruction is signed.

[0072] At 445, the signed command can be authenticated. For example, storage system 410 can authenticate the signed command using the included signature. In some cases, authenticating the signed command may involve performing a hash procedure or otherwise translating the signature included in the signed command using the key associated with the read-protected region of storage system 410 to determine the identity of host system 405. In some cases, the identity of host system 405 may include an indication of a host entity that initiated the read command, such as a host entity 210, referencing... Fig. 2 was described.

[0073] In some cases, the key associated with the read-only region of the storage system may be a key stored by the host system 405 (e.g., in key store 250, as referenced in Fig. 2 described), such as a private key for host system 405, which may be paired with a public key of host system 405 (e.g., the private key and the public key may be part of an asymmetric key pair). The host system can transmit the public key to storage system 410, for example, via a virtual authenticated channel 205, as described in reference to Fig. 2 described. In such cases, the host system 405 can encrypt the read command at 475 using the private key for the host system 405. Similarly, the storage system 410 can authenticate the read command at 445 using a public key for the host system 405.

[0074] Additionally or alternatively, the key associated with the read-only region of the shared key is stored by the host system 405 (e.g., in key store 250, as described in [reference to]). Fig. 2), which can be shared with a key of storage system 410 (e.g., the host system key 405 and the storage system key 410 can be part of a symmetric key pair). The host system can transfer the shared key to storage system 410, for example, via a virtual authenticated channel 205, as described in reference to Fig. 2 described. In such cases, the host system 405 can encrypt the read command at 440 using the shared key. Similarly, the storage system 410 can authenticate the read command at 445 using a shared key.

[0075] At port 450, it can be determined whether host system 405 is authorized to access the read-protected region of storage system 410. For example, storage system 410 can determine whether the signature of the signed command matches a signature generated by the hash procedure performed at port 455. If the received signature and the generated signature match, storage system 410 can determine that host system 405 is authorized to access the data stored in the read-protected region. In such cases, storage system 410 can retrieve the data requested in the read command from the read-protected region and can transmit a response containing the data to host system 405 at port 455.

[0076] Additionally or alternatively, the storage system may determine at 450 that the signature of the received signed command does not match the signature generated using the hash procedure performed at 445. For example, the read command may have been signed using a key associated with a different read-protected region (e.g., a second read-protected region). In such cases, the storage system may transmit a response at 460 to the host system 405 indicating that the host system 405 may not be authorized to access the data.

[0077] In some cases, the signed command may include a command for storage system 410 to sign the data associated with the signed command. In such cases, the response may be signed at 455. For example, storage system 410 may generate a signature using the data and a key associated with storage system 410, such as a private key for storage system 410 or a shared key between host system 405 and storage system 410. In some cases, the signature may be included in the response and transmitted to the host system at 470. If storage system 410 has determined that host system 405 may not be authorized to access the data, the response may, in some cases, include a signature generated using the key associated with the read-only region.

[0078] Accordingly, the response can be authenticated at port 465. For example, host system 405 can decrypt or otherwise translate the signature contained in the response using a key for host system 405, such as a private key for host system 405, a shared key between host system 405 and storage system 410, or the key associated with the read-only region. By decrypting the response, host system 405 can determine the source of the data (e.g., host system 405 can determine whether the data originated from storage system 410).

[0079] In some cases, the host system 405 can update the key associated with the read-only region. For example, the host system 405 can generate a second key associated with the read-only region of storage system 410 and transfer this second key to storage system 410. Accordingly, storage system 410 can update the key associated with the read-only region, for example, by updating key store 250, public key table 260, or both, as described in [reference to relevant documentation]. Fig. 2 described. In some cases, the host system may return a 405 error to update the key associated with the read-only region after a certain period of time (e.g., a crypto period).

[0080] In some cases, one or more read-protected regions of the Storage System 410 can be updated. For example, the Storage System 410 can adjust the size of one or more read-protected regions, such as by including more or fewer memory cells in a resized read-protected region. Additionally or alternatively, the Storage System 410 can adjust an address range of one or more read-protected regions. For example, as part of resized a read-protected region from a first address range to a second address range, the Storage System 410 can transfer data (such as read-protected data) stored in the first address range to the second address range. In some cases, an updated read-protected region can be associated with the same key both before and after the update.In some cases, the host system 405 can send a command to the storage system 410 to update one or more read-only regions.

[0081] Aspects of process flow 400 can be implemented by a controller, among other components. Additionally or alternatively, aspects of process flow 400 can be implemented as instructions stored in memory (e.g., firmware stored in memory coupled to the memory system 410, the host system 405, or both). For example, when executed by a controller, these instructions can cause the controller to perform the operations of process flow 400.

[0082] Fig. Figure 5 shows a block diagram 500 of a host device 520 that supports authenticated reading of storage system data according to examples disclosed in this document. The host device 520 can be an example of aspects of a host device as described in the Fig. 1, Fig. 2, Fig. 3 to Fig. 4. The host device 520, or various components thereof, can be an example of means for performing various aspects of authenticated reading of storage system data, as described in this document. For example, the host device 520 can include a key transmission component 525, a signaling transmission component 530, a response receiving component 535, a key receiving component 540, a key management component 545, or any combination thereof. Each of these components can communicate directly or indirectly with one another (e.g., via one or more buses).

[0083] The Key Transfer Component 525 can be configured or otherwise support the transfer of one or more keys associated with the host system from a host system to a storage system, with each of the one or more transferred keys serving to be assigned to a respective protection region from one or more protection regions on the storage system.The signaling transmission component 530 can be configured as a means for transmitting a signed command to read data from a first protection region of one or more protection regions through the host system to the storage system, or can otherwise support this, wherein the signed command is at least partially signed based on a counterpart key corresponding to a first transmitted key of one or more transmitted keys, and wherein the first protection region is associated with the first transmitted key associated with the host system. The response reception component 535 can be configured as a means for receiving the data from the storage system at least partially based on the transmission of the signed command, or can otherwise support this.

[0084] In some examples, the key-receiving component 540 can be configured on the host system as a means of receiving one or more public keys associated with the storage system, or otherwise supporting the receiving of such keys, wherein the counterpart key includes a key associated with the host system, each of the one or more received public keys associated with the storage system corresponds to a respective private key associated with the storage system and is distinct from each of the one or more transferred keys associated with the host system, and the signed command is furthermore signed at least partially based on a first received public key of the one or more received public keys associated with the storage system.

[0085] In some examples, the key management component 545 may be configured or otherwise support the generation of a symmetric key at least partially based on the private key associated with the host system and the first received public key associated with the storage system, with the signed command being signed at least partially based on the generated symmetric key.

[0086] In some examples, the signaling transmission component 530 can be configured as a means of transmitting an indication that the signed command is signed from the host system to the storage system, or may otherwise support this.

[0087] In some examples, the Response Receive component 535 may be configured to receive the storage system's signature from the storage system in association with the data, or may otherwise support this. In some examples, the Response Receive component 535 may be configured to determine whether the data was received from the storage system, at least partially, based on the received signature of the storage system, or may otherwise support this.

[0088] In some examples, the signature of the storage system is based at least partially on a key that is associated with the storage system.

[0089] In some examples, the key associated with the storage system includes a private key also associated with the storage system. Furthermore, in some examples, determining whether data has been received by the storage system is based, at least in part, on a public key that corresponds to the private key associated with the storage system.

[0090] In some examples, the signaling transmission component 530 can be configured, or otherwise support, the transmission from the host system to the storage system of a second signed instruction to read second data from a second protected region of one or more protected regions on the storage system, wherein the second signed instruction is signed at least partially based on the counterpart key corresponding to the first transmitted key associated with the host system. In some examples, the response reception component 535 can be configured, or otherwise support, the reception of an indication from the storage system that the host system is not authorized to access the second protected region, at least partially based on the second signed instruction.

[0091] In some examples, the response receive component 535, which supports receiving the indication that the host system is not authorized to access the second protection region, may be configured or otherwise support receiving a signature at least partially based on the second data and a second key associated with the second protection region without receiving the second data.

[0092] In some examples, the signaling transmission component 530 can be configured to transmit an unsigned command to read second data from the first protected region in the storage system from the host system to the storage system, or otherwise support this. In some examples, the response reception component 535 can be configured to receive an indication that the host system is not authorized to access the first protected region, at least partially based on the unsigned command, or otherwise support this.

[0093] In some examples, the key management component 545 may be configured, or otherwise support, the generation of an updated key associated with the host system and used to map to the first protection region on the storage system after the signed command has been transmitted. In some examples, the key transmission component 525 may be configured, or otherwise support, the transmission of the updated key to the storage system. In some examples, the signaling transmission component 530 may be configured, or otherwise support, the transmission of a second signed command from the host system to the storage system for reading second data from the first protection region, the second signed command being based, at least in part, on a second counterpart key that corresponds to the updated key.In some examples, the response receive component 535 may be configured as a means of receiving the second data from the storage system, at least partially based on the transmission of the second signed command, or may otherwise support this.

[0094] In some examples, the transmission of the updated key is based at least partially on a threshold being met by a time elapsed since the transmission of the first transmitted key.

[0095] In some examples, the signaling transmission component 530 can be configured to transmit to the storage system an indication of the size of the first protection region, an address range corresponding to the first protection region, or any combination thereof, or otherwise support it.

[0096] Fig. Figure 6 shows a block diagram 600 of a storage device 620 that supports authenticated reading of storage system data according to examples disclosed in this document. The storage device 620 can be an example of aspects of a storage device as described in the Fig. 1, Fig. 2, Fig. 3 to Fig. 4. The storage device 620, or various components thereof, can be an example of means for performing various aspects of authenticated reading of storage system data, as described in this document. For example, the storage device 620 can include a key receiving component 625, a signaling receiving component 630, a key management component 635, a response transmission component 640, a key transmission component 645, or any combination thereof. Each of these components can communicate directly or indirectly with one another (e.g., via one or more buses).

[0097] The key receiving component 625 can be configured or otherwise support receiving one or more keys associated with the host system on a storage system from a host system, each of the one or more received keys corresponding to a respective counterpart key associated with the host system and serving to be mapped to a respective protection region of one or more protection regions on the storage system. The signaling receiving component 630 can be configured or otherwise support receiving a signed command on the storage system for reading data from a first protection region of one or more protection regions, the first protection region being mapped to a first received key of one or more received keys.The key management component 635 can be configured, or otherwise support, as a means of determining whether the data from the first protection region is readable, at least partially based on attempts to decrypt a signature of the signed command, wherein the attempt to decrypt the signature is based at least partially on the first received key associated with the host system. The response transmission component 640 can be configured, or otherwise support, as a means of transmitting the data to the host system, at least partially based on successful decryption of the signature of the signed command.

[0098] In some examples, the key transfer component 645 can be configured or otherwise assist in transferring one or more public keys associated with the storage system to the host system, each of the one or more transferred public keys associated with the storage system corresponding to a corresponding private key associated with the storage system and different from each of the one or more received keys associated with the host system, and the attempt to decrypt the signature of the signed command is further based at least partially on a first private key associated with the storage system.

[0099] In some examples, the key management component 635 may be configured or otherwise support the generation of a symmetric key at least partially based on the first received key associated with the host system and the first private key associated with the storage system, with the attempt to decrypt the signature of the signed command being based at least partially on the generated symmetric key.

[0100] In some examples, the signaling receiving component 630 may be configured as a means of receiving an indication that the signed command is signed, or may otherwise support this.

[0101] In some examples, the response transmission component 640 may be configured as a means of transmitting a signature of the storage system in association with the data, or may otherwise support this, the signature being based at least partially on a key associated with the storage system.

[0102] In some examples, the signaling receive component 630 can be configured, or otherwise support, as a means of receiving a second signed command on the storage system to read second data from a second protection region of one or more protection regions on the storage system, wherein the second signed command is signed at least partially based on a counterpart key corresponding to the first received key associated with the host system. In some examples, the key management component 635 can be configured, or otherwise support, as a means of determining whether to read the data from the second protection region, at least partially based on an attempt to decrypt the signature of the second signed command, at least partially based on the first received key associated with the host system.In some examples, the response transmission component 640 may be configured, at least partially based on the second signed command, or otherwise support, as a means of transmitting a message to the host system that the host system is not authorized to access the second protected region.

[0103] In some examples, the signaling receive component 630 may be configured to receive, or otherwise support, an unsigned command on the storage system to read second data from the first protected region in the storage system. In some examples, the response transmit component 640 may be configured to transmit, or otherwise support, a message to the host system indicating that the host system is not authorized to access the first protected region, at least partially based on the unsigned command.

[0104] In some examples, the key management component 635 may be configured on the storage system to store each of the one or more received keys associated with the host system, a specification of the corresponding protection region associated with each of the one or more received keys associated with the host system, or any combination thereof, or otherwise support this.

[0105] In some examples, the signaling receiving component 630 may be configured by the host system to receive, or otherwise support, an indication of the size of the first protection region, an address range corresponding to the first protection region, or any combination thereof.

[0106] In some examples, the storage system includes an eMMC device, a UFS device, an SD device, an SSD, or any combination thereof.

[0107] Fig. Figure 7 shows a flowchart illustrating a Method 700 that supports authenticated reading of storage system data according to the examples disclosed in this document. The operations of Method 700 can be implemented by a host device or its components, as described in this document. For example, the operations of Method 700 can be performed by a host device as described with reference to Fig. 1, Fig. 2, Fig. 3, Fig. 4 to Fig. Section 5 describes this. In some examples, a host device can execute a set of instructions to control the device's functional elements in order to perform the described functions. Additionally or alternatively, the host device can perform aspects of the described functions using special hardware.

[0108] In 705, the procedure can involve transferring one or more keys associated with the host system from a host system to a storage system, each of the one or more transferred keys being used to assign a respective protection region to one or more protection regions on the storage system. The operations of 705 can be performed according to the examples disclosed in this document. In some examples, aspects of the operations of 705 can be performed by a key transfer component 525, as described in reference to Fig. 5 described.

[0109] In 710, the procedure can involve the host system transmitting a signed instruction to read data from a first protection region of one or more protection regions to the storage system, wherein the signed instruction is at least partially signed based on a counterpart key corresponding to a first transmitted key of one or more transmitted keys, and wherein the first protection region is associated with the first transmitted key associated with the host system. The operations of 710 can be performed according to examples disclosed in this document. In some examples, aspects of the operations of 710 can be performed by a signaling transmission component 530, as described in [reference to relevant document]. Fig. 5 described.

[0110] In the case of 715, the procedure can involve receiving data from the storage system, at least partially, based on the transmission of the signed instruction. The operations of 715 can be performed according to the examples disclosed in this document. In some examples, aspects of the operations of 715 can be performed by a response-receiving component 535, as described in [reference to]. Fig. 5 described.

[0111] In some examples, a device described in this document can perform one or more procedures, such as Procedure 700. The device may include features, circuitry, logic, means, or instructions (e.g., a non-transitory, computer-readable medium that stores instructions executable by a processor), or any combination thereof, for performing the following aspects of the present disclosure:

[0112] Aspect 1: The device includes features, circuitry, logic, means, or instructions, or any combination thereof, for transmitting (e.g., from a host system to a storage system) one or more keys associated with the host system, each of the one or more transmitted keys being used to associate with a respective protection region of one or more protection regions on the storage system; transmitting (e.g., from the host system to the storage system) a signed instruction to read data from a first protection region of the one or more protection regions, the signed instruction being at least partially signed based on a counterpart key corresponding to a first transmitted key of the one or more transmitted keys, and the first protection region being associated with the first transmitted key associated with the host system; and receiving the data (e.g.,(from the storage system) at least partially based on the transmission of the signed command.

[0113] Aspect 2: The device according to Aspect 1, further comprising operations, features, circuits, logic, means or instructions, or any combination thereof, for receiving one or more public keys associated with the storage system on the host system, wherein the counterpart key includes a private key associated with the host system, each of the one or more received public keys associated with the storage system corresponds to a respective private key associated with the storage system and is distinct from each of the one or more transmitted keys associated with the host system, and the signed instruction is furthermore signed at least partially based on a first received public key of the one or more received public keys associated with the storage system.

[0114] Aspect 3: The device according to Aspect 2, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for generating a symmetric key at least partially based on the private key associated with the host system and the first received public key associated with the storage system, wherein the signed instruction is signed at least partially based on the generated symmetric key.

[0115] Aspect 4: The device according to any of aspects 1 to 3, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for transmitting (e.g. from the host system to the storage system) a statement that the signed instruction is signed.

[0116] Aspect 5: The device according to any of aspects 1 to 4, wherein the signed instruction for the storage system specifies to transmit a signature of the storage system in association with the data, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for receiving (e.g. from the storage system) the signature of the storage system in association with the data and determining whether the data has been received from the storage system, at least partially based on the received signature of the storage system.

[0117] Aspect 6: The device according to Aspect 5, wherein the signature of the storage system is based at least partially on a key associated with the storage system.

[0118] Aspect 7: The device according to aspect 6, wherein the key associated with the storage system is a private key associated with the storage system, and the determination of whether the data has been received from the storage system further corresponds at least partially to a public key corresponding to the private key associated with the storage system.

[0119] Aspect 8: The device according to any of aspects 1 to 7, further comprising operations, features, circuits, logic, means or instructions, or any combination thereof, for transmitting (e.g., from the host system to the storage system) a second signed instruction for reading second data from a second protection region of one or more protection regions on the storage system, wherein the second signed instruction is signed at least partially based on the counterpart key corresponding to the first transmitted key associated with the host system, and receiving (e.g., from the storage system) an indication that the host system is not authorized to access the second protection region, at least partially based on the second signed instruction.

[0120] Aspect 9: The device according to Aspect 8, comprising operations, features, circuits, logic, means or instructions or any combination thereof for receiving the indication that the host system is not authorized to access the second protection region, operations, features, circuits, logic, means or instructions or any combination thereof for receiving a signature at least partially based on the second data and a second key associated with the second protection region, without receiving the second data.

[0121] Aspect 10: The device according to any of aspects 1 to 9, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for transmitting (e.g., from the host system to the storage system) an unsigned command to read second data from the first protection region on the storage system and receiving (e.g., from the storage system) a statement that the host system is not authorized to access the first protection region, at least partially based on the unsigned command.

[0122] Aspect 11: The device according to any of aspects 1 to 10, further comprising operations, features, circuits, logic, means or instructions, or any combination thereof, for generating an updated key associated with the host system after transmitting the signed instruction and assigning it to the first protection region on the storage system; transmitting the updated key (e.g., to the storage system); transmitting (e.g., by the host system to the storage system) a second signed instruction for reading second data from the first protection region, the second signed instruction being based at least partially on a second counterpart key corresponding to the updated key; and receiving the second data (e.g., from the storage system) at least partially based on the transmission of the second signed instruction.

[0123] Aspect 12: The device according to Aspect 11, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for transmitting the updated key, based at least in part on the fact that an elapsed time since the transmission of the first transmitted key satisfies a threshold.

[0124] Aspect 13: The device according to any of aspects 1 to 12, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for transmitting (e.g. to the storage system) a specification of the size of the first protection region, an address range corresponding to the first protection region, or any combination thereof.

[0125] Fig. Figure 8 shows a flowchart illustrating a Method 800 that supports authenticated reading of storage system data according to examples disclosed in this document. The operations of Method 800 can be implemented by a storage device or its components, as described in this document. For example, the operations of Method 800 can be performed by a storage device as described in the Fig. Sections 1 to 4 and 6 describe the following. In some examples, a storage device can execute a set of instructions to control the device's functional elements in order to perform the described functions. Additionally or alternatively, the storage device can perform aspects of the described functions using special hardware.

[0126] In the case of 805, the procedure can involve receiving one or more keys associated with the host system on a storage system from a host system, each of the one or more received keys corresponding to a respective counterpart key associated with the host system and serving to assign to a respective protection region of one or more protection regions on the storage system. The operations of 805 can be performed according to the examples disclosed in this document. In some examples, aspects of the operations of 805 can be performed by a key-receiving component 625, as described with reference to Fig. 6 described.

[0127] In 810, the procedure can involve receiving a signed instruction on the storage system for reading data from a first protection region of one or more protection regions, wherein the first protection region is associated with a first received key of one or more received keys. The operations of 810 can be performed according to examples disclosed in this document. In some examples, aspects of the operations of 810 can be performed by a signaling receiving component 630, as described in reference to Fig. 6 described.

[0128] In 815, the procedure can involve determining whether the data from the first protection region is readable, at least partially based on attempts to decrypt a signature of the signed command, wherein the attempts to decrypt the signature are based at least partially on the first received key associated with the host system. The operations of 815 can be performed according to the examples disclosed in this document. In some examples, aspects of the operations of 815 can be performed by a key management component 635, as described with reference to Fig. 6 described.

[0129] In the case of 820, the procedure for transferring the data to the host system can involve at least partially based on successful decryption of the signature of the signed command. The operations of 820 can be performed according to the examples disclosed in this document. In some examples, aspects of the operations of 820 can be performed by a response transmission component 640, as described in [reference to]. Fig. 6 described.

[0130] In some examples, a device described in this document can perform one or more procedures, such as Procedure 800. The device may include features, circuitry, logic, means, or instructions (e.g., a non-transitory, computer-readable medium that stores instructions executable by a processor), or any combination thereof, for performing the following aspects of the present disclosure:

[0131] Aspect 14: The device includes features, circuitry, logic, means or instructions, or any combination thereof, for receiving (e.g., on a storage system from a host system) one or more keys associated with the host system, each of the one or more received keys corresponding to a respective counterpart key associated with the host system, and for assigning to a respective protection region from one or more protection regions on the storage system; receiving (e.g.,on the storage system) of a signed instruction to read data from a first protection region of one or more protection regions, wherein the first protection region is associated with a first received key of one or more received keys; determining whether the data is to be read from the first protection region, at least partially based on attempts to decrypt a signature of the signed instruction, wherein the attempt to decrypt the signature is based at least partially on the first received key associated with the host system; and transferring the data (e.g., to the host system) at least partially based on successful decryption of the signature of the signed instruction.

[0132] Aspect 15: The device according to aspect 14, further comprising features, circuits, logic, means or instructions or any combination thereof for transmitting one or more public keys associated with the storage system (e.g. to the host system), wherein each of the one or more transmitted public keys associated with the storage system corresponds to a corresponding private key associated with the storage system and is distinct from each of the one or more received keys associated with the host system, and the attempt to decrypt the signature of the signed command, further based at least partially on a first private key associated with the storage system.

[0133] Aspect 16: The device according to Aspect 15, further comprising features, circuits, logic, means or instructions or any combination thereof for generating a symmetric key at least partially based on the first received key associated with the host system and the first private key associated with the storage system, wherein the attempt to decrypt the signature of the signed command is based at least partially on the generated symmetric key.

[0134] Aspect 17: The device according to any of aspects 14 to 16, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for receiving an indication that the signed command is signed.

[0135] Aspect 18: The device according to any of aspects 14 to 17, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for transmitting a signature of the storage system in association with the data, the signature being based at least partially on a key associated with the storage system.

[0136] Aspect 19: The device according to any of aspects 14 to 18, further comprising operations, features, circuits, logic, means or instructions, or any combination thereof, for receiving (e.g., on the storage system) a second signed instruction for reading second data from a second protected region of one or more protected regions on the storage system, wherein the second signed instruction is signed at least partially based on a counterpart key corresponding to the first received key associated with the host system; determining whether the data is to be read from the second protected region, at least partially based on attempts to decrypt the signature of the second signed instruction, at least partially based on the first received key associated with the host system; and transmitting (e.g.,to the host system) a statement that the host system is not authorized to access the second protection region, at least partially based on the second signed command.

[0137] Aspect 20: The device according to any of aspects 14 to 19, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for receiving (e.g. on the storage system) an unsigned command to read second data from the first protection region on the storage system and transmitting (e.g. to the host system) a statement that the host system is not authorized to access the first protection region, at least partially based on the unsigned command.

[0138] Aspect 21: The device according to any of aspects 14 to 20, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for storing each of the one or more received keys associated with the host system, a specification of the corresponding protection region associated with each of the one or more received keys associated with the host system, or any combination thereof on the storage system.

[0139] Aspect 22: The device according to any of aspects 14 to 21, further comprising operations, features, circuits, logic, means or instructions or any combination thereof for receiving (e.g. from the host system) a specification of the size of the first protection region, an address range corresponding to the first protection region, or any combination thereof.

[0140] Aspect 23: The device according to any of aspects 14 to 22, wherein the storage system includes an eMMC device, a UFS device, an SD device, an SSD or any combination thereof.

[0141] It should be noted that the procedures described above represent possible implementations, and that the operations and steps can be rearranged or otherwise modified, and that other implementations are possible. Furthermore, sections of two or more of the procedures can be combined.

[0142] The information and signals described in this document can be represented using a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be mentioned in the description above can be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof. Some diagrams may illustrate signals as a single signal; however, the signal may represent a bus of signals, with the bus having a variety of bit widths.

[0143] The terms "electronic communication," "conductive contact," "connected," and "coupled" can refer to a relationship between components that supports the flow of signals between them. Components are considered to be electronically communicating with each other (or in conductive contact, connected, or coupled) if there is a conductive path between them that can support the flow of signals between them at any given time. At any given time, the conductive path between components that are in electronic communication with each other (or in conductive contact, connected, or coupled) can be an open circuit or a closed circuit, depending on the operation of the device that includes the connected components.The conductive path between the connected components can be a direct conductive path between the components themselves, or it can be an indirect conductive path that may include intermediate components such as switches, transistors, or other devices. In some examples, the flow of signals between the connected components may be temporarily interrupted, for example, by using one or more intermediate components such as switches or transistors.

[0144] The term "coupling" refers to a condition in which a circuit between components changes from open to closed, where signals cannot currently be communicated via a conductive path between the components, to closed, where signals can be communicated via the conductive path between the components. If a component, such as a controller, couples other components, it initiates a change that allows signals to flow between the other components via a conductive path that previously did not permit signal flow.

[0145] The term "isolated" refers to a relationship between components in which no signals can currently flow between them. Components are isolated from each other if there is an open circuit between them. For example, two components separated by a switch positioned between them are isolated if the switch is open. If a controller isolates two components, the controller causes a change that prevents signals from flowing between the components using a conductive path that previously allowed signal flow.

[0146] The terms "if", "when", "based on", or "at least partially based on" can be used interchangeably. In some examples, if the terms "if", "when", "based on", or "at least partially based on" are used to describe a conditional action, a conditional process, or a connection between sections of a process, the terms can be used interchangeably.

[0147] The term "in response to" can refer to a condition or action occurring at least partially, if not entirely, as a consequence of a preceding condition or action. For example, a first condition or action may be performed, and a second condition or action may occur at least partially as a consequence of the occurrence of the preceding condition or action (either directly after or following one or more other intermediate conditions or actions that occur after the first condition or action).

[0148] The devices discussed in this paper, including a storage array, can be formed on a semiconductor substrate, such as silicon, germanium, a silicon-germanium alloy, gallium arsenide, gallium nitride, etc. In some examples, the substrate is a semiconductor wafer. In other examples, the substrate may be a silicon-on-insulator (SOI) substrate, such as silicon-on-glass (SOG) or silicon-on-sapphire (SOP), or epitaxial layers of semiconductor materials on another substrate. The conductivity of the substrate or parts thereof can be controlled by doping using various chemicals, including phosphorus, boron, or arsenic. Doping can be performed during the initial formation or growth of the substrate by ion implantation or by another dopant.

[0149] A switching component or transistor discussed in this paper may be a field-effect transistor (FET) and comprise a three-terminal device including a source, a drain, and a gate. The terminals may be connected to other electronic elements by conductive materials, such as metals. The source and drain may be conductive and may comprise a heavily doped, such as degenerated, semiconductor region. The source and drain may be separated by a lightly doped semiconductor region or channel. If the channel is n-type (i.e., most charge carriers are electrons), the FET may be called an n-type FET. If the channel is p-type (i.e., most charge carriers are holes), the FET may be called a p-type FET. The channel may be covered by an insulating gate oxide.Channel conductance can be controlled by applying a voltage to the gate. For example, applying a positive or negative voltage to an n-type or p-type FET, respectively, will cause the channel to conduct. A transistor can be "on" or "enabled" if a voltage greater than or equal to the transistor's threshold voltage is applied to the transistor gate. The transistor can be "off" or "disabled" if a voltage less than the transistor's threshold voltage is applied to the transistor gate.

[0150] The description presented in this document, in conjunction with the accompanying drawings, describes exemplary configurations and does not represent all examples that can be implemented or that fall within the scope of the claims. The term "exemplary" as used in this document means "serving as an example, case, or illustration" and not "preferred" or "advantageous over other examples." The detailed description includes specific details to provide an understanding of the described techniques. However, these techniques can also be applied without these specific details. In some instances, known structures and devices are represented in the form of block diagrams to avoid obscuring the concepts of the described examples.

[0151] In the accompanying figures, similar components or features may have the same reference numeral. Furthermore, different components of the same type may be distinguished by a hyphen following the reference numeral and a second designation that differentiates the similar components from one another. If only the first reference numeral is used in the patent specification, the description applies to each of the similar components with the same first reference numeral, irrespective of the second reference numeral.

[0152] The functions described herein can be implemented in hardware, processor-executed software, firmware, or any combination thereof. When implemented in processor-executed software, the functions can be stored as one or more instructions or code on or transmitted via a computer-readable medium. Other examples and implementations fall within the scope of the disclosure and the appended claims. For example, due to the nature of software, the functions described above can be implemented using processor-executed software, hardware, firmware, hardwiring, or any combination thereof. Features implementing functions can also be physically located in different positions, including a distribution such that sections of functions are implemented at different physical locations.

[0153] For example, the various illustrative blocks and components described in connection with the disclosure in this document can be implemented or carried out using a general-purpose processor, a DSP, an ASIC, an FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, configured to perform the functions described in this document. A general-purpose processor can be a microprocessor; alternatively, the processor can be any processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).

[0154] As used in this document, including in the claims, "or" in a list of elements (e.g., in a list of elements preceded by a phrase such as "at least one of" or "one or more of") means an all-encompassing list, so that, for example, a list of at least one of A, B, or CA, or B or C, or AB or AC, or BC or ABC (i.e., A and B and C) means A and B and C. Furthermore, the expression "based on," as used in this document, is not to be interpreted as referring to a closed set of conditions. For example, an exemplary step described as "based on condition A" may be based on both condition A and condition B without departing from the scope of protection of the present disclosure. In other words, the phrase "based on," as used in this document, must be interpreted in the same way as the expression "at least partly based on."

[0155] Computer-readable media include both non-transitory computer storage media and communication media, including any media that facilitate the transfer of a computer program from one location to another. A non-transitory storage medium can be any available medium accessible to a general-purpose or specialized computer.As an example, and not limited to, non-transitory computer-readable media may include: RAM, ROM, electrically erasable programmable read-only memory (EEPROM), compact disc ROM (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to carry or store desired program code resources in the form of instructions or data structures and that can be accessed by a general-purpose or specialized computer. Moreover, any such connection is more appropriately termed a computer-readable medium.If the software is transmitted, for example, from a website, server, or other remote source via a coaxial cable, fiber optic cable, twisted-pair cable, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then these technologies are included in the definition of "medium." The data carriers used in this document include CDs, laserdiscs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, with floppy disks typically reproducing data magnetically, while discs reproduce data optically using lasers. Combinations of the aforementioned methods are also included within the scope of computer-readable media.

Claims

[1] Host system (105, 105-a, 405) comprising the following: a controller (106, 106-a) configured to couple with a storage system (110, 110-a, 410), wherein the controller (106, 106-a) is configured to cause the device (100, 200) to do the following: Transferred (415, 705) from one or more keys (310-a, 310-b, 310-c, 310-d) associated with a host system (105, 105-a, 405) to the storage system (110, 110-a, 410), each of the one or more transferred keys (310-a, 310-b, 310-c, 310-d) serving to assign to a respective protection region of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) on the storage system (110, 110-a, 410); Transfer (440, 710) of a signed instruction to read data from a first protection region (305-a) of the one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) to the storage system (110, 110-a, 410), wherein the signed instruction (435) is at least partially signed based on a counterpart key corresponding to a first transmitted key (310-a) of the one or more transmitted keys (310-a, 310-b, 310-c, 310-d), and wherein the first protection region (305-a) is associated with the first transmitted key (310-a) associated with the host system (105, 105-a, 405); Receiving (715) the data at least partially based on the transmission (440, 710) of the signed command; and Transmitting a command to adapt the first protection region (305-a) from a first size to a second size, to adapt the first protection region (305-a) from a first address range to a second address range, or both, wherein the adapted first protection region is associated with the first transmitted public key (310-a) associated with the host system (105, 105-a, 405). [2] Host system (105, 105-a, 405) according to claim 1, wherein the controller (106, 106-a) is further configured to cause the host system (105, 105-a, 405) to do the following: Receiving (420) one or more public keys associated with the storage system (110, 110-a, 410) on the host system (105, 105-a, 405), wherein: the counterpart key includes a private key that is associated with the host system (105, 105-a, 405); Each of the one or more received public keys associated with the storage system (110, 110-a, 410) corresponds to a respective private key associated with the storage system (110, 110-a, 410) and is distinct from each of the one or more transmitted keys (310-a, 310-b, 310-c, 310-d) associated with the host system (105, 105-a, 405); and the signed command is furthermore signed at least partially based on a first received public key of the one or more received public keys that are associated with the storage system (110, 110-a, 410). [3] Host system (105, 105-a, 405) according to claim 1 or 2, wherein the controller (106, 106-a) is further configured to cause the host system (105, 105-a, 405) to do the following: Generating (425, 430) a symmetric key at least partially based on the private key associated with the host system (105, 105-a, 405) and the first received public key associated with the storage system (110, 110-a, 410), wherein the signed command (435) is signed at least partially based on the generated symmetric key. [4] Host system (105, 105-a, 405) according to one of the preceding claims, wherein the controller (106, 106-a) is further configured to cause the host system (105, 105-a, 405) to do the following: Transmitting information that the signed command is signed. [5] Host system (105, 105-a, 405) according to any of the preceding claims, wherein the signed command for the storage system (110, 110-a, 410) specifies to transmit a signature of the storage system (110, 110-a, 410) in association with the data, and wherein the controller (106, 106-a) is further configured to cause the host system (105, 105-a, 405) to do the following: Receiving the signature of the storage system (110, 110-a, 410) in association with the data; and Determine whether the data was received from the storage system (110, 110-a, 410), at least partially based on the received signature of the storage system (110, 110-a, 410). [6] Host system (105, 105-a, 405) according to claim 5, wherein the signature of the storage system (110, 110-a, 410) is based at least partially on a key that is assigned to the storage system (110, 110-a, 410). [7] Host system (105, 105-a, 405) according to claim 6, wherein: the key associated with the storage system (110, 110-a, 410) includes a private key associated with the storage system (110, 110-a, 410), and Determining whether the data was received from the storage system (110, 110-a, 410) is also based, at least in part, on a public key that corresponds to the private key that is assigned to the storage system (110, 110-a, 410). [8] Host system (105, 105-a, 405) according to any of the preceding claims, wherein the controller (106, 106-a) is further configured to cause the host system (105, 105-a, 405) to do the following: Transmitting a second signed instruction to read second data from a second protection region (305-b) of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) on the storage system (110, 110-a, 410), wherein the second signed instruction is signed at least partially based on the counterpart key corresponding to the first transmitted key (310-b) associated with the host system (105, 105-a, 405); and Receiving a notification that the host system (105, 105-a, 405) is not authorized to access the second protection region (305-b), at least partially based on the second signed command. [9] Host system (105, 105-a, 405) according to claim 8, wherein, in order to receive the indication that the host system (105, 105-a, 405) is not authorized to access the second protection region (305-b), the controller (106, 106-a) is configured to cause the host system (105, 105-a, 405) to do the following: Receiving a second signature based at least partially on the second data and a second key (310-b) assigned to the second protection region (305-b), without receiving the second data. [10] Host system (105, 105-a, 405) according to one of the preceding claims, wherein the controller (106, 106-a) is further configured to cause the host system (105, 105-a, 405) to do the following: Transmitting an unsigned instruction to read second data from the first protection region (305-a) on the storage system (110, 110-a, 410); and Receiving a notification that the host system (105, 105-a, 405) is not authorized to access the first protection region (305-a), at least partially based on the unsigned command. [11] Host system (105, 105-a, 405) according to one of the preceding claims, wherein the controller (106, 106-a) is further configured to cause the host system (105, 105-a, 405) to do the following: Generating an updated key that is assigned to the host system (105, 105-a, 405) and used for assignment to the first protection region (305-a) on the storage system (110, 110-a, 410) after transmission of the signed command; Transferring the updated key; Transmitting a second signed instruction to read second data from the first protected region (305-a), wherein the second signed instruction is based at least partially on a second counterpart key that corresponds to the updated key; and Receiving the second data at least partially based on the transmission of the second signed command. [12] Host system (105, 105-a, 405) according to claim 11, wherein the controller (106, 106-a) is configured to cause the host system (105, 105-a, 405) to do the following: Transferring the updated key is based at least partially on the fact that a threshold has been met by the elapsed time since the first transferred key was transmitted. [13] Storage system (110, 110-a, 410) with a controller (115, 115-a) wherein the controller (115, 115-a) is configured to cause the storage system (110, 110-a, 410) to do the following: Receiving (415, 805) one or more keys (310-a, 310-b, 310-c, 310-d) from a host system (105, 105-a, 405) that are associated with the host system (105, 105-a, 405), wherein each of the one or more received public keys (310-a, 310-b, 310-c, 310-d) corresponds to a respective counterpart key associated with the host system (105, 105-a, 405), and each of the one or more received keys (310-a, 310-b, 310-c, 310-d) is assigned to a respective protection region by one or more protection regions (305-a, 305-b, 305-c, 305-d). 305-e) on the storage system (110, 110-a, 410); Receiving (440, 810) a signed instruction to read data from a first protection region (305-a) of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e), wherein the first protection region (305-a) is associated with a first received key (310-a) of one or more received keys (310-a, 310-b, 310-c, 310-d); Determine (815) whether the data from the first protection region (305-a) is readable, at least partially based on attempts to decrypt a signature of the signed command, wherein the attempt to decrypt the signature is based at least partially on the first received key (310-a) associated with the host system (105, 105-a, 405); Transmitting (820) the data at least partially based on successful decryption of the signature of the signed command; and Receiving an order to adapt the first protection region (305-a) from a first size to a second size, to adapt the first protection region (305-a) from a first address range to a second address range, or both, wherein the adapted first protection region is associated with the first transmitted public key (310-a) associated with the host system (105, 105-a, 405). [14] Storage system (110, 110-a, 410) according to claim 13, wherein the controller (115, 115-a) is further configured to cause the storage system (110, 110-a, 410) to do the following: Transfer (420) one or more public keys associated with the storage system (110, 110-a, 410), wherein: Each of the one or more transmitted public keys associated with the storage system (110, 110-a, 410) corresponds to a respective private key associated with the storage system (110, 110-a, 410) and is distinct from each of the one or more received keys (310-a, 310-b, 310-c, 310-d) associated with the host system (105, 105-a, 405); and the attempt to decrypt the signature of the signed command is still based, at least in part, on a first private key associated with the storage system (110, 110-a, 410). [15] Storage system (110, 110-a, 410) according to claim 13 or 14, wherein the controller (115, 115-a) is further configured to cause the storage system (110, 110-a, 410) to do the following: Generating (430) a symmetric key at least partially based on the first received key (310-a) associated with the host system (105, 105-a, 405) and the first private key associated with the storage system (110, 110-a, 410), wherein attempting to decrypt the signature of the signed command is based at least partially on the generated symmetric key. [16] Storage system (110, 110-a, 410) according to any one of claims 13 to 15 wherein the controller (115, 115-a) is further configured to cause the storage system (110, 110-a, 410) to do the following: Receiving confirmation that the signed command is signed. [17] Storage system (110, 110-a, 410) according to any one of claims 13 to 16 wherein the controller (115, 115-a) is further configured to cause the storage system (110, 110-a, 410) to do the following: Transferring a signature of the storage system (110, 110-a, 410) in association with the data, wherein the signature is based at least partially on a key that is associated with the storage system (110, 110-a, 410). [18] Storage system (110, 110-a, 410) according to any one of claims 13 to 17 wherein the controller (115, 115-a) is further configured to cause the storage system (110, 110-a, 410) to do the following: Receiving a second signed instruction to read second data from a second protection region (305-b) of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) on the storage system (110, 110-a, 410), wherein the second signed instruction is at least partially signed on the basis of a counterpart key corresponding to the first received key (310-a) associated with the host system (105, 105-a, 405); Determine whether the data from the second protection region (305-b) is readable, at least partially based on attempts to decrypt the signature of the second signed command, at least partially based on the first received key (310-a) associated with the host system (105, 105-a, 405); and Transmitting a statement that the host system (105, 105-a, 405) is not authorized to access the second protection region (305-b), at least partially based on the second signed command. [19] Storage system (110, 110-a, 410) according to any one of claims 13 to 18 wherein the controller (115, 115-a) is further configured to cause the storage system (110, 110-a, 410) to do the following: Receiving an unsigned command to read second data from the first protection region (305-a) on the storage system (110, 110-a, 410); and Transmitting a statement that the host system (105, 105-a, 405) is not authorized to access the first protection region (305-a), at least partially based on the unsigned command. [20] Storage system (110, 110-a, 410) according to any one of claims 13 to 19, wherein the controller (115, 115-a) is further configured to cause the storage system (110, 110-a, 410) to do the following: Store each of the one or more received keys (310-a, 310-b, 310-c, 310-d) associated with the host system (105, 105-a, 405), an indication of the corresponding protection region associated with each of the one or more received keys (310-a, 310-b, 310-c, 310-d) associated with the host system (105, 105-a, 405), or any combination thereof on the storage system (110, 110-a, 410). [21] Storage system (110, 110-a, 410) according to any one of claims 13 to 20 wherein the storage system (110, 110-a, 410) comprises an embedded multimedia card (eMMC) device, a universal flash memory (UFS) device, a secure digital (SD) device, a solid state drive (SSD) or any combination thereof. [22] Non-transitory computer-readable medium storing a code comprising instructions which, when executed by a processor of an electronic device (100, 200, 110, 110-a), cause the electronic device (100, 200, 110, 110-a) to do the following: Transfer of one or more keys (310-a, 310-b, 310-c, 310-d, 310-e) associated with a host system (105, 105-a, 405) to a storage system (110, 110-a, 410), each of the one or more transferred keys serving to assign to a respective protection region of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) on a storage system (110, 110-a, 410); Transfer (440, 710) of a signed instruction to read data from a first protection region (305-a) of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) to the storage system (110, 110-a, 410), wherein the signed instruction (435) is at least partially signed based on a counterpart key corresponding to a first transmitted key (310-a) of one or more transmitted keys (310-a, 310-b, 310-c, 310-d, 310-e), and wherein the first protection region (305-a) is associated with the first transmitted key (310-a) associated with the host system (105, 105-a, 405); Receiving the data, at least partially, based on the transmission of the signed command; and Transmitting a command to adapt the first protection region (305-a) from a first size to a second size, to adapt the first protection region (305-a) from a first address range to a second address range, or both, wherein the adapted first protection region is associated with the first transmitted public key (310-a) associated with the host system (105, 105-a, 405). [23] Non-transitory computer-readable medium storing a code comprising instructions which, when executed by a processor of an electronic device (100, 200, 110, 110-a), cause the electronic device (100, 200, 110, 110-a) to do the following: Receiving one or more keys (310-a, 310-b, 310-c, 310-d, 310-e) from a host system (105, 105-a, 405) that are associated with a host system (105, 105-a, 405), wherein each of the one or more received keys (310-a, 310-b, 310-c, 310-d, 310-e) corresponds to a respective counterpart key associated with the host system (105, 105-a, 405) and serves to assign to a respective protection region of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e) on a storage system (110, 110-a, 410); Receiving (440, 810) a signed instruction to read data from a first protection region of one or more protection regions (305-a, 305-b, 305-c, 305-d, 305-e), wherein the first protection region (305-a) is associated with a first received key (310-a) of one or more received keys (310-a, 310-b, 310-d, 310-e); Determine (450, 815) whether the data from the first protection region (305-a) is readable, at least partially based on attempts (815) to decrypt a signature of the signed command, wherein the attempts (815) to decrypt the signature are based at least partially on the first received key (310-a) associated with the host system (105, 105-a, 405); Transmitting (820) the data at least partially based on successful decryption of the signature of the signed command; and Receiving an order to adapt the first protection region (305-a) from a first size to a second size, to adapt the first protection region (305-a) from a first address range to a second address range, or both, wherein the adapted first protection region is associated with the first transmitted public key (310-a) associated with the host system (105, 105-a, 405).

Citation Information

Patent Citations

  • Memory device, host device, and memory system

    US20110239004A1