Memory system
Patent Information
- Application Number
- CN202510091214.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-09-10
- Filing Date
- 2025-01-21
- Publication Date
- 2026-03-10
Smart Images

Figure CN121637548A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to a memory system. BACKGROUND
[0002] In recent years, memory systems equipped with nonvolatile memories have been widely spread. As one of such memory systems, a solid state drive (SSD) equipped with a NAND-type flash memory is known. The SSD has been used as a main storage of various kinds of computing devices.
[0003] In order to prevent leakage of data and the like, some memory systems have a self-encryption function of automatically encrypting data at the time of writing. A memory system having the self-encryption function is also called a self-encrypting drive (SED).
[0004] As one of security standards that the SED should follow, a Trusted Computing Group (TCG) standard is known. In the TCG standard, for example, data encryption and access control of each part area of a storage are specified. SUMMARY
[0005] One of the embodiments provides a memory system capable of enhancing security related to access to a storage.
[0006] According to the embodiment, the memory system is equipped with a nonvolatile memory and a controller. The controller is electrically connected to the nonvolatile memory and is capable of communicating with a host. The controller manages first authentication information associated with first user identification information. The controller generates a first authenticator associated with the first user identification information. The controller transmits the first authenticator to the host. The controller receives a first access instruction including the first user identification information and a second authenticator. The controller verifies the legality of the second authenticator using at least the first authentication information and the first authenticator. The controller performs a first process on the nonvolatile memory in accordance with the first access instruction when the legality of the second authenticator is confirmed. The controller does not perform the first process in accordance with the first access instruction when the legality of the second authenticator is not confirmed. BRIEF DESCRIPTION OF DRAWINGS
[0007] Figure 1 is a block diagram showing a configuration example of an information processing system including the memory system of the first embodiment.
[0008] Figure 2 is a diagram showing a configuration example of a user management table used in the memory system of the first embodiment.
[0009] Figure 3 is a diagram showing an example of a logical address space managed in the memory system of the first embodiment.
[0010] Figure 4 (a) in the diagram represents the changes in the session when a user accesses a portion of the logical address space in the memory system of the first embodiment. Figure 4 (b) in the diagram represents a first example of a user and period allowed to access a portion of the memory system in the first embodiment. Figure 4 (c) in the figure represents a second example of a user who is allowed to access a portion of the memory system in the first embodiment.
[0011] Figure 5 This is a sequence diagram illustrating an example of authentication / access operations in the memory system and host of the first embodiment.
[0012] Figure 6 This is a sequence diagram illustrating another example of access operations in the memory system and host of the first embodiment.
[0013] Figure 7 This is a diagram illustrating an example of authentication operations in the memory system of the first embodiment.
[0014] Figure 8 This is a diagram illustrating an example of an authentication token sending operation in the memory system of the first embodiment.
[0015] Figure 9 This is a diagram illustrating an example of a data read operation in the memory system of the first embodiment.
[0016] Figure 10 This is a diagram illustrating an example of a data write operation in the memory system of the first embodiment.
[0017] Figure 11 This is a flowchart illustrating an example of the steps involved in the authentication / access request processing performed in a host connected to the memory system of the first embodiment.
[0018] Figure 12 This is a flowchart illustrating an example of the sequence of steps in the authentication process performed in the memory system of the first embodiment.
[0019] Figure 13 This is a flowchart illustrating an example of the sequence of steps in the authentication token sending process performed in the memory system of the first embodiment.
[0020] Figure 14 This is a flowchart illustrating an example of the sequence of steps in the access control processing performed in the memory system of the first embodiment.
[0021] Figure 15 This is a sequence diagram illustrating an example of the authentication token generation / access operation in the memory system and host of the second embodiment.
[0022] Figure 16 is a diagram showing an example of an authentication symbol generation / sending action in the memory system of the second embodiment.
[0023] Figure 17 is a diagram showing an example of a data read action in the memory system of the second embodiment.
[0024] Figure 18 is a diagram showing an example of a data write action in the memory system of the second embodiment.
[0025] Figure 19 is a flowchart showing an example of a sequence of steps of an authentication symbol / access request processing performed in a host connected to the memory system of the second embodiment.
[0026] Figure 20 is a flowchart showing an example of a sequence of steps of an authentication symbol generation / sending processing performed in the memory system of the second embodiment.
[0027] Figure 21 is a flowchart showing an example of a sequence of steps of an access control processing performed in the memory system of the second embodiment.
[0028] Figure 22 is a sequence diagram showing an example of an access action in the memory system and the host of the third embodiment.
[0029] Figure 23 is a diagram showing an example of a data read action in the memory system of the third embodiment.
[0030] Figure 24 is a diagram showing an example of a data write action in the memory system of the third embodiment.
[0031] Figure 25 is a flowchart showing an example of a sequence of steps of an access request processing performed in a host connected to the memory system of the third embodiment.
[0032] Figure 26 is a flowchart showing an example of a sequence of steps of an access control processing performed in the memory system of the third embodiment. DETAILED DESCRIPTION
[0033] Embodiments will be described below with reference to the accompanying drawings.
[0034] (First Embodiment)
[0035] First, a configuration example of an information processing system including the memory system of the first embodiment will be described with reference to Figure 1
[0036] The information processing system 1 includes, for example, a host device 2 and a memory system 3. The information processing system 1 can include more than one host device 2. In this case, the more than one host device 2 is connected to the memory system 3 via a repeater respectively. The repeater is also called an expander or a switch.
[0037] The host device 2 can be a storage server that stores a large amount of various data to the memory system 3, or can be a personal computer. Hereinafter, the host device 2 is referred to as a host 2.
[0038] The memory system 3 is a storage device configured to write data to a nonvolatile memory 4 and read data from the nonvolatile memory 4. The memory system 3 is also called a storage device. The nonvolatile memory 4 is, for example, a NAND type flash memory. The memory system 3 is realized by, for example, an SSD provided with a NAND type flash memory. Alternatively, the nonvolatile memory 4 is, for example, a magnetic disk. The memory system 3 can also be realized by a hard disk drive (HDD) provided with a magnetic disk. Hereinafter, a case where the nonvolatile memory 4 is a NAND type flash memory and the memory system 3 is realized by an SSD is mainly exemplified.
[0039] The memory system 3 has, for example, a self-encryption function that automatically encrypts data at the time of writing, in order to prevent leakage of data and the like. That is, the memory system 3 is a self-encryption drive (SED) having a self-encryption function. The memory system 3 has, for example, a self-encryption function specified in the TCG standard. In the TCG standard, for example, data encryption and access control of each part area of the storage are specified.
[0040] The memory system 3 can be used as a storage of the host 2. The memory system 3 can be built in the host 2, or can be connected to the host 2 via a cable or a network.
[0041] An interface for connecting the host 2 and the memory system 3 is, for example, required to conform to a standard such as PCI Express (PCIe), Ethernet, Fibre Channel, or NVM Express (NVMe). TM TM TM TM TM
[0042] The host 2 is provided with, for example, a central processing unit (CPU) 21 and a random access memory (RAM) 22. The CPU 21 and the RAM 22 are connected via a bus 20, for example.
[0043] The CPU 21 is, for example, at least one processor. The CPU 21 controls the operation of various components in the host 2.
[0044] RAM 22 is, for example, volatile memory. RAM 22 is, for example, dynamic random access memory (DRAM) or static random access memory (SRAM). The memory within host 2, such as RAM 22, is also called host memory 22.
[0045] The host 2 may also have an input device 23 for inputting data according to the user's operation. The input device 23 may be at least one of a keyboard, mouse, or touch screen display.
[0046] The memory system 3 may include, for example, non-volatile memory 4, DRAM 5, and controller 6.
[0047] The non-volatile memory 4 comprises multiple blocks. Each block functions as the smallest unit for data erasure operations. A block is also called an erase block or physical block. Each block contains multiple pages. Each page contains multiple memory cells connected to a single word line. Each page functions as the unit for data write and data read operations. Additionally, word lines can also function as the unit for data write and data read operations.
[0048] The number of program / erase cycles (P / E cycles) that each block can have is capped, and this is called the maximum number of P / E cycles. One P / E cycle for a block includes the data erasure operation to erase all memory cells in the block and the programming operation to write data to each page of the block.
[0049] The storage area of the non-volatile memory 4 includes, for example, a user area 41 and a system area 42.
[0050] User area 41 is the area for storing user data. User data is data stored in non-volatile memory 4 upon request from host 2. User area 41 corresponds, for example, to a logical address space provided to one or more users (more specifically, one or more hosts 2). A logical address is an address used by host 2 to specify the address of a storage area in memory system 3. A logical address is, for example, a logical block address (LBA). The logical address space corresponding to user area 41 is, for example, divided into multiple logical address ranges (i.e., multiple partial regions). Each of the multiple logical address ranges can, for example, be assigned to a single user. That is, users who can access (i.e., users who are allowed to access) can be set for each of the multiple logical address ranges. Users who can access are users who are allowed to access the corresponding logical address range. Access is, for example, at least one of data reading and data writing.
[0051] System area 42 is a region that stores data used to manage and control the memory system 3. This data includes, for example, a user management table 421 and a key 422. The user management table 421 is used to manage and control user access to user area 41. The key 422 is used to encrypt data to be written to user area 41 and to decrypt encrypted data read from user area 41. System area 42 may, for example, store the key 422 corresponding to each user. Alternatively, system area 422 may also store keys 422 corresponding to multiple logical address ranges (partial areas) of user area 41.
[0052] Here, the structure of user management table 421 will be explained.
[0053] Figure 2 This section presents a structural example of the user management table 421. User management table 421, for example, contains multiple entries corresponding to multiple users. Each entry contains, for example, fields for user ID, authentication information, region information, conversion authentication information, and user authentication token. The values of the fields within a single entry are already correlated.
[0054] The User ID field represents the identification information (User ID) of the corresponding user. The User ID is information that can uniquely identify the corresponding user. For example, when the corresponding user starts using the memory system 3, the User ID field is set with the User ID.
[0055] The authentication information field represents the authentication information associated with the corresponding user. The authentication information corresponding to the user is, for example, a personal identification number (PIN) or a password. For example, authentication information is set in the authentication information field when the corresponding user begins using the storage system 3. More specifically, the user ID and authentication information are set, for example, by the password setting sequence performed when the user begins using the storage system 3.
[0056] The region information field indicates the region allocated to the corresponding user. A region is, for example, a portion of the logical address space (i.e., a logical address range). Specifically, the region information field may indicate, for example, the starting address of the logical address range allocated to the corresponding user, and the size (length) of that logical address range. Alternatively, the region information field may also represent information that uniquely identifies the namespace allocated to the corresponding user (namespace ID). For example, region information is set in the region information field when the corresponding user begins using memory system 3.
[0057] The Transformed Authentication Information field represents the information obtained by performing a first operation on the authentication information associated with the corresponding user (i.e., the authentication information shown in the Authentication Information field). The information obtained by performing the first operation on the authentication information is called the Transformed Authentication Information. Regarding the operation method used as the first operation, any operation method pre-shared between the host 2 and the memory system 3 can be used. The operation method used as the first operation is, for example, specified in a standard followed by the host 2 and the memory system 3 (e.g., the TCG standard). Specifically, the first operation is, for example, an operation using a specified hash function. In this case, the hash value associated with the authentication information of the corresponding user is set as the Transformed Authentication Information field.
[0058] The User Authentication Token field represents the user authentication token generated for the corresponding user. The user authentication token is the data required to access the region assigned to the user (i.e., the region shown in the Region Information field). The user authentication token may contain, for example, a random number. The user authentication token is generated and set in the User Authentication Token field, for example, when the user successfully authenticates. Alternatively, the user authentication token may also be generated and set in the User Authentication Token field when the user is successfully authenticated and allowed access to the region assigned to that user. Furthermore, the user authentication token is deleted from the User Authentication Token field, for example, when access permission to the region assigned to the user is revoked (i.e., access to the region assigned to the user is prohibited).
[0059] Figure 2 In the example shown, the user ID "user1" corresponding to a certain user is associated with authentication information "pin1", region information "range1", converted authentication information "c_pin1", and user authentication token "aid1". Similarly, the user ID "user2" corresponding to another user is associated with authentication information "pin2", region information "range2", converted authentication information "c_pin2", and user authentication token "aid2".
[0060] With the above structure, the controller 6 can use the user management table 421 to control user access to the non-volatile memory 4 (more specifically, user area 41).
[0061] In addition, each entry in the User Management Table 421 may also include an expiration date field. The expiration date field indicates the validity period of the user authentication token generated for the corresponding user. The expiration date can be represented by a date and time, elapsed time since the user authentication token was generated, or an event. An event indicating that the expiration date has expired is, for example, the revocation of access permission assigned to the user's region. Figure 2In the example shown, the user authentication token "aid1" associated with user ID "user1" is associated with an expiration date "exp1". Similarly, the user authentication token "aid2" associated with user ID "user2" is associated with an expiration date "exp2".
[0062] also, Figure 2 The structure of the user management table 421 shown is just an example. In the memory system 3, data of any structure can be used to manage and control user access to the user area 41.
[0063] return Figure 1 .
[0064] DRAM5 is a volatile memory. DRAM5's memory area can be allocated, for example, as storage for firmware (FW) 51 and as a cache for the logical-physical address translation table 52. DRAM5's memory area can also be further allocated as a buffer for temporary storage of user data.
[0065] FW51 is a program used to control the actions of controller 6. FW51 loads data from non-volatile memory 4 into DRAM 5, for example.
[0066] The Logical Physical Address Translation Table 52 is a table used to manage the mapping between logical addresses and physical addresses.
[0067] Controller 6 can be constructed from a system-on-chip (SoC) circuit. Controller 6 can also be constructed from multiple semiconductor chips. Controller 6 is electrically connected to non-volatile memory 4 to control non-volatile memory 4. The functions of each part within controller 6 can be implemented by dedicated hardware within controller 6, or by a processor executing FW51.
[0068] The controller 6 can also function as a flash translation layer (FTL) that performs data management and block management of the non-volatile memory 4. The data management performed by this FTL includes: (1) management of mapping information representing the correspondence between logical addresses and physical addresses of the non-volatile memory 4; and (2) processing to hide the difference between page-based data read / write operations and block-based data erase operations. Block management includes bad block management, wear leveling, and garbage collection.
[0069] The mapping management between logical addresses and physical addresses is performed, for example, using a logical-physical address translation table 52. The controller 6 uses the logical-physical address translation table 52 to manage the mapping between logical addresses and physical addresses in specified management size units. The physical address corresponding to a logical address represents the physical storage location within the non-volatile memory 4 where data at that logical address is written. The controller 6 uses the logical-physical address translation table 52 to manage multiple storage areas logically divided from the storage areas of the non-volatile memory 4. The size of each of the multiple storage areas is the management size described above. Each of the multiple storage areas corresponds to a multiple logical address. That is, each of the multiple storage areas is determined by one logical address. The logical-physical address translation table 52 can also be loaded from the non-volatile memory 4 into the DRAM 5 during the startup of the memory system 3.
[0070] Data can only be written to a single memory cell once per P / E cycle. Therefore, instead of writing the updated data corresponding to a logical address to the physical storage location containing the old data corresponding to that logical address, the controller 6 writes it to another physical storage location. Furthermore, the controller 6 invalidates the old data by updating the logical physical address translation table 52 to associate the logical address with the other physical storage location. Data retrieved from the logical physical address translation table 52 (i.e., data associated with a logical address) is called valid data. Data not associated with any logical address is called invalid data. Valid data is data that may be requested to be read by host 2 later. Invalid data is data that is no longer possible to be requested to be read by host 2. The following primarily illustrates the case where the logical address is LBA.
[0071] The controller 6 includes, for example, a host interface circuit (host I / F) 11, a DRAM interface circuit (DRAM I / F) 12, a memory interface circuit (memory I / F) 13, an encryption circuit 14, and a CPU 15. The host I / F 11, DRAM I / F 12, memory I / F 13, encryption circuit 14, and CPU 15 are connected, for example, via a bus 10.
[0072] The host I / F11 can communicate with host 2. The host I / F11 is, for example, a circuit configured to receive various instructions (e.g., input / output (I / O) instructions and various control instructions) and data from host 2, and send responses to the instructions and data back to host 2. I / O instructions are, for example, write instructions or read instructions. Control instructions are, for example, authentication request instructions or authentication token acquisition instructions. Authentication request instructions are instructions that request authentication of a user using host 2. Authentication token acquisition instructions are instructions that request the acquisition of a user authentication token. Authentication request instructions and authentication token acquisition instructions are, for example, implemented using TCG instructions.
[0073] DRAM I / F12 is a DRAM control circuit configured to control access to DRAM5.
[0074] Memory I / F13 is a memory control circuit configured to control non-volatile memory 4. Memory I / F13 can also be connected to multiple memory chips within non-volatile memory 4 via multiple channels. By driving multiple memory chips in parallel, the access bandwidth between controller 6 and non-volatile memory 4 can be expanded.
[0075] Encryption circuit 14 encrypts and decrypts data. For example, encryption circuit 14 encrypts data that should be written to non-volatile memory 4 (more specifically, user area 41) via memory I / F 13, and decrypts encrypted data read from non-volatile memory 4 via memory I / F 13. Encryption circuit 14 uses, for example, a key 422 set by CPU 15 to encrypt and decrypt data.
[0076] CPU 15 is a processor configured to control host I / F 11, DRAM I / F 12, memory I / F 13, and encryption circuitry 14. CPU 15 performs various processes by executing FW 51, which is loaded from non-volatile memory 4 into DRAM 5. FW 51 is a control program containing a set of commands to enable CPU 15 to perform various processes. CPU 15 can execute instruction processing to handle various instructions from host 2. The operation of CPU 15 is controlled by FW 51 executed by CPU 15.
[0077] CPU 15 functions, for example, as an instruction / response processing unit 151, an authentication processing unit 152, an authentication token management unit 153, and an access control unit 154. CPU 15 functions as each of these units, for example, by executing FW 51.
[0078] The instruction / response processing unit 151 receives instructions issued by the host 2 via the host I / F 11. The instructions issued by the host 2 may be, for example, authentication request instructions, authenticator acquisition instructions, or access instructions. The instruction / response processing unit 151 causes at least one of the authentication processing unit 152, the authenticator management unit 153, and the access control unit 154 to perform processing according to the received instructions. Furthermore, the instruction / response processing unit 151 sends a response based on the result of processing according to the instructions to the host 2 via the host I / F 11.
[0079] The authentication processing unit 152 manages information related to user authentication and performs user authentication. Specifically, the authentication processing unit 152 uses, for example, a user management table 421 to manage information related to user authentication. This authentication-related information includes, for example, the user's corresponding user ID, authentication information, and region information.
[0080] When the instruction / response processing unit 151 receives an authentication request instruction from the host 2, the authentication processing unit 152 performs user authentication accordingly. Specifically, the authentication processing unit 152 obtains the user ID and authentication information (hereinafter referred to as object authentication information) from the authentication request instruction. The authentication processing unit 152 obtains the authentication information associated with the obtained user ID (hereinafter referred to as registration authentication information) from the user management table 421. The authentication processing unit 152 determines the success or failure of user authentication based on whether the object authentication information and the registration authentication information are consistent. That is, if the object authentication information and the registration authentication information are consistent, the authentication processing unit 152 determines that the user authentication is successful. If the object authentication information and the registration authentication information are inconsistent, the authentication processing unit 152 determines that the user authentication has failed. The success or failure of user authentication is sent to the host 2 by the instruction / response processing unit 151 as a response to the authentication request instruction.
[0081] The authentication token management unit 153 generates user authentication tokens and manages the generated user authentication tokens. For example, the authentication token management unit 153 uses the user management table 421 to manage user authentication tokens.
[0082] If user authentication is successful, the authentication token management unit 153 generates a user authentication token associated with that user. Alternatively, the authentication token management unit 153 may also generate a user authentication token if the user authentication is successful and they are allowed access to the region assigned to that user (i.e., the LBA range associated with the user ID). The authentication token management unit 153 associates the generated user authentication token with the user ID contained in the authentication request instruction and stores it in the user management table 421. Furthermore, if user authentication fails, the authentication token management unit 153 does not generate a user authentication token.
[0083] When the instruction / response processing unit 151 receives an authentication token acquisition instruction from the host 2, the authentication token management unit 153 sends a user authentication token to the host 2 accordingly. Specifically, the authentication processing unit 152 retrieves the user ID from the authentication token acquisition instruction. The authentication token management unit 153 retrieves the user authentication token (hereinafter referred to as the registered user authentication token) associated with the obtained user ID from the user management table 421. The obtained registered user authentication token is sent to the host 2 by the instruction / response processing unit 151 as a response to the authentication token acquisition instruction.
[0084] For example, if access permission to a user's assigned region is revoked, the authentication token management unit 153 will invalidate the user authentication token associated with that user. Specifically, the authentication token management unit 153 will delete the user authentication token from the user management table 421.
[0085] Host 2, which plans to send an access command, performs a first operation on the authentication information of the user who wishes to access memory system 3 using the access command, generating translated authentication information corresponding to that user. Then, host 2 performs a second operation on the generated translated authentication information, the starting address of the LBA range of the access object, and the user authentication token received as a response to the authentication token acquisition command, generating an access authentication token. The operation method used for the second operation can be any operation method pre-shared between host 2 and memory system 3. The operation method used for the second operation is, for example, specified in the standards followed by host 2 and memory system 3. Specifically, the second operation is, for example, an XOR operation. Alternatively, the second operation can also be an operation using a specified hash function. Furthermore, host 2 can also generate an access authentication token by performing the second operation on the authentication information, the starting address, and the user identifier without using translated authentication information.
[0086] When the instruction / response processing unit 151 receives an access instruction from the host 2, the access control unit 154 controls access to the non-volatile memory 4 accordingly. The access instruction includes, for example, a user ID, region information, and an access authentication token. The region information included in the access instruction represents the LBA range (hereinafter referred to as the object LBA range) that the host 2 is accessing. That is, the region information included in the access instruction represents the LBA range to be accessed according to the access instruction. More specifically, the region information, for example, represents the starting address of the object LBA range and the size of the object LBA range. The user ID included in the access instruction is also referred to as the object user ID. The access authentication token included in the access instruction is also referred to as the object access authentication token.
[0087] Specifically, the access control unit 154 verifies the validity of the object access authentication token using at least the registration authentication information associated with the object user ID and the registration user authentication token. When the validity of the object access authentication token is confirmed, the access control unit 154 performs processing on the non-volatile memory 4 according to the access instruction. When the validity of the object access authentication token is not confirmed, the access control unit 154 does not perform processing on the non-volatile memory 4 according to the access instruction.
[0088] The verification of the validity of object access authentication credentials is explained in more detail.
[0089] First, when the access control unit 154 receives an access instruction from the host 2, it accordingly retrieves the object user ID, zone information, and object access authentication token from the access instruction. The access control unit 154 then retrieves the registration authentication information associated with the object user ID and the registration user authentication token from the user management table 421.
[0090] Access control unit 154 uses the obtained registration and authentication information, registered user authentication token, and area information within the access instruction to verify the legitimacy of the object access token.
[0091] Specifically, the access control unit 154 generates conversion authentication information, for example, by performing a first operation on the registration authentication information. Alternatively, the access control unit 154 may retrieve conversion authentication information associated with the object user ID from the user management table 421, instead of generating the conversion authentication information itself. That is, the conversion authentication information may also be pre-generated and stored in the user management table 421.
[0092] Next, the access control unit 154 generates a verification authentication token by performing a second operation on the converted authentication information, the starting address of the LBA range shown in the region information, and the registered user authentication token. Alternatively, the access control unit 154 may also generate a verification authentication token by performing a second operation on the registered authentication information, the starting address, and the registered user identifier without using the converted authentication information.
[0093] The access control unit 154 determines whether the validity of the object access authentication token is confirmed based on whether the generated verification authentication token matches the object access authentication token. That is, if the generated verification authentication token matches the object access authentication token, the access control unit 154 determines that the validity of the object access authentication token is confirmed. If the generated verification authentication token does not match the object access authentication token, the access control unit 154 determines that the validity of the object access authentication token is not confirmed.
[0094] Through the above structure, the instruction / response processing unit 151, authentication processing unit 152, authentication code management unit 153, and access control unit 154 can allow users with legitimate permissions to access the non-volatile memory 4 and prohibit users without legitimate permissions from accessing the non-volatile memory 4. A user with legitimate permissions refers to a user with legitimate authentication information who is allowed to access the area (object LBA range) that is the object of access. More specific operations of the instruction / response processing unit 151, authentication processing unit 152, authentication code management unit 153, and access control unit 154 will be described below. Figures 7 to 10 Please provide an explanation.
[0095] Here, the LBA range provided by the memory system 3 to one or more hosts 2 will be explained. As described above, the user area 41 within the non-volatile memory 4 corresponds to the LBA range provided to one or more users (more specifically, one or more hosts 2). A portion of the area (LBA range) obtained by partitioning the LBA space can be allocated to one or more users respectively.
[0096] Figure 3This represents an example of an LBA space managed in memory system 3. LBA space 45 contains multiple LBAs. Figure 3 In the example shown, LBA space 45 contains multiple LBAs from LBA "0x0" to MaxLBA. MaxLBA is the last LBA in the LBA space and can be set arbitrarily.
[0097] The LBA space 45 is, for example, divided into multiple sub-regions. That is, the LBA space 45 is divided into multiple LBA ranges. These sub-regions may all have the same size, or they may each have different sizes. Each sub-region may, for example, be assigned to one user. Users assigned to sub-regions may be allowed to access those sub-regions.
[0098] Figure 3 In the example shown, LBA space 45 includes a first region 451 and a second region 452.
[0099] Part 1, area 451, is an LBA range from LBA "0x100" to LBA "0x200". Part 1, area 451 is assigned to the first user. That is, the first user is allowed to access Part 1, area 451. Specifically, for example, if the first user successfully authenticates based on authentication information, the first user is allowed to access Part 1, area 451.
[0100] Part 2, area 452, is the LBA range from LBA "0x500" to LBA "0x600". Part 2, area 452 is assigned to a second user other than the first user. That is, a second user can be allowed to access Part 2, area 452. Specifically, for example, if the second user successfully authenticates based on authentication information, the second user is allowed to access Part 2, area 452.
[0101] Thus, in LBA space 45, user access is controlled separately for each partial area. The access control for each partial area is specified, for example, according to the TCG standard.
[0102] Figure 4 In the diagram (a), the session changes when a user accesses a portion of the logical address space 45 in memory system 3. Figure 4 (b) in the text represents the first instance of a user in memory system 3 who is allowed to access a portion of the memory. Figure 4 In the example (c), the second instance refers to a user in memory system 3 who is allowed to access a portion of the memory area. Here, we will use the session when the first user accesses the first portion of the memory area 451 as an example.
[0103] like Figure 4As shown in (a), at time t1, when the first session 61, which allows the first user to access the system, begins, the memory system 3 authenticates the first user. If the first user is successfully authenticated, at time t2, access to the first portion of region 451 allocated to the first user is granted. That is, the first portion of region 451 is unlocked. Then, at time t3, the first session 61 ends.
[0104] Then, at time t4, when the second session 62, used to revoke the access permission of the first user, begins, the memory system 3 performs authentication of the first user. If the first user is successfully authenticated, at time t5, access permission to the first part of the region 451 allocated to the first user is revoked. That is, the first part of the region 451 is locked. Then, at time t6, the second session 62 ends.
[0105] For example, in the TCG Opal standard, the following situation exists: if the first user successfully authenticates, not only can host 2, currently used by the first user, access Part 1 Zone 451, but host 2, used by an unauthenticated user (e.g., the second user), also access Part 1 Zone 451. This is because, if the first user is successfully authenticated and allowed to access Part 1 Zone 451, any user's access command can be executed on Part 1 Zone 451. Specifically, since there is no verification of whether the user issuing the access command is the first user, any user's access command can be executed on Part 1 Zone 451. An unauthenticated user may be a user without legitimate permissions. Therefore, access to Part 1 Zone 451 by host 2, currently used by an unauthenticated user, could lead to security vulnerabilities such as leakage or tampering of the data stored in Part 1 Zone 451.
[0106] like Figure 4 As shown in (b), if there is no verification of whether the user issuing the access command is the successfully authenticated first user, then between the time t2 when access to the first part of area 451 is granted and the time t5 when access to the first part of area 451 is revoked, not only the first user can access the first part of area 451 (i.e., can read / write to it), but also, for example, the second user can access the first part of area 451. That is, without authenticating the second user based on authentication information, the second user can access the first part of area 451 regardless of whether the second user is allowed to access it.
[0107] In contrast, the memory system 3 of this embodiment is configured such that only hosts 2 used by successfully authenticated users can access the portion of the area allocated to those users; hosts 2 used by unauthenticated users cannot access that portion of the area. The memory system 3 controls access to the portion of the area by verifying whether the user issuing the access command is the first successfully authenticated user. Thus, as...Figure 4 As shown in (c), the memory system 3 can be controlled such that only the first user can access the first part of the region 451 between the time t2 when access to the first part of the region 451 is permitted and the time t5 when access permission to the first part of the region 451 is revoked.
[0108] Specifically, when user authentication is successful, the controller 6 of the memory system 3 sends a user authentication token to the host 2 currently being used by the user. The controller 6 receives an access instruction from the host 2 containing the user's identification information and the access token. The controller 6 verifies the validity of the access token in the access instruction using at least the user authentication token and the user's authentication information stored in the memory system 3. Then, if the validity of the access token is confirmed, the controller 6 performs processing on the non-volatile memory 4 (e.g., region 451 in part 1) according to the access instruction. On the other hand, if the validity of the access token is not confirmed, the controller 6 does not perform processing on the non-volatile memory 4 according to the access instruction.
[0109] Therefore, memory system 3 can control access to the area allocated to a user by only the host 2 that has been successfully authenticated. Thus, memory system 3 enhances security related to access to non-volatile memory 4.
[0110] Figure 5 This is a sequence diagram illustrating examples of authentication / access actions in host 2 and storage system 3. An authentication / access action is an action used to allow a user with legitimate permissions to access a region (LBA range) assigned to that user, but to prohibit other users from accessing that region. Here, we illustrate the case where the user currently using host 2 is user 1 with legitimate permissions. The user ID of user 1 is referred to as user 1 ID. The authentication information of user 1 is referred to as authentication information 1.
[0111] First, host 2 sends an authentication request instruction (A101) to memory system 3 requesting authentication of the first user. The authentication request instruction includes, for example, the first user ID and the first authentication information. The first user ID and the first authentication information are input to host 2, for example, through an operation performed by the first user using input device 23.
[0112] The memory system 3 performs authentication processing according to the authentication request instruction received from the host 2 (A102). Specifically, the memory system 3 obtains the first user ID and the first authentication information from the authentication request instruction. The memory system 3 obtains the registration authentication information associated with the obtained first user ID (hereinafter referred to as the first registration authentication information) from the user management table 421. The memory system 3 determines the success or failure of authentication based on whether the first authentication information and the first registration authentication information are consistent. Here, it is assumed that the first authentication information and the first registration authentication information are consistent, and the authentication is successful.
[0113] Upon successful authentication, the memory system 3 generates a user authentication token (hereinafter referred to as the first user authentication token) associated with the first user ID (A103). The memory system 3 sets the first user authentication token in the user authentication token field of the entry containing the first user ID in the user management table 421. Thus, the first user authentication token is associated with the first user ID. Then, the memory system 3 sends a response to the authentication request instruction to the host 2 (A104). This response indicates that authentication performed according to the authentication request instruction was successful, but does not include the first user authentication token.
[0114] After receiving a response indicating successful authentication, host 2 sends an authentication token retrieval instruction to memory system 3 (A105). The authentication token retrieval instruction may include, for example, the first user ID.
[0115] Memory system 3, in accordance with the authentication token retrieval instruction received from host 2, sends a response containing the first user authentication token associated with the first user ID as a response to the authentication token retrieval instruction to host 2 (A106). Specifically, memory system 3 retrieves the first user ID from the authentication token retrieval instruction. Memory system 3 retrieves the first user authentication token associated with the obtained first user ID from user management table 421. Then, memory system 3 sends a response containing the obtained first user authentication token to host 2.
[0116] After receiving a response containing the first user authentication token, host 2 generates transformed authentication information (hereinafter referred to as the first transformed authentication information) (A107) by performing a first operation on the first authentication information. This first transformed authentication information is, for example, a hash value of the first authentication information. Host 2 generates an access token (hereinafter referred to as the first access token) (A108) by performing a second operation on the first user authentication token, the region information, and the first transformed authentication information. The first access token is, for example, the XOR of the first user authentication token, the starting address of the object's LBA range shown in the region information, and the first transformed authentication information. Alternatively, the first access token may also be a hash value of data concatenated from the first user authentication token, the starting address of the object's LBA range, and the first transformed authentication information.
[0117] Next, host 2 sends an access instruction requesting access to non-volatile memory 4 to memory system 3 (A109). The access instruction may be, for example, a read instruction requesting to read user data from non-volatile memory 4, or a write instruction requesting to write user data to non-volatile memory 4. The access instruction may include, for example, a first user ID, region information, and a first access authentication token.
[0118] The memory system 3 performs a verification process (A110) on the first access authentication token contained in the access instruction received from the host 2. This verification process verifies the validity of the first access authentication token.
[0119] Specifically, memory system 3 obtains the first user ID, region information, and first access authenticator from the access instruction. Memory system 3 obtains the first user authenticator and conversion authentication information (hereinafter referred to as the first registration conversion authentication information) associated with the obtained first user ID from user management table 421. Alternatively, memory system 3 may obtain the first user authenticator and first registration conversion authentication information associated with region information representing the LBA range (region) containing the object LBA range from user management table 421 based on the region information obtained from the access instruction. Memory system 3 generates a verification authenticator (hereinafter referred to as the first verification authenticator) by performing a second operation using the first user authenticator and first registration conversion authentication information obtained from user management table 421 and the region information obtained from the access instruction. The first verification authenticator is, for example, the XOR of the first user authenticator, the first registration conversion authentication information, and the starting address of the object LBA range. Alternatively, the first verification authenticator may be a hash value of data concatenated from the first user authenticator, the first registration conversion authentication information, and the starting address of the object LBA range.
[0120] Then, the memory system 3 determines whether the legitimacy of the first access authentication token is confirmed based on whether the first access authentication token matches the first verification authentication token. Here, it is assumed that the legitimacy of the first access authentication token is confirmed if the first access authentication token matches the first verification authentication token. In addition, the memory system 3 may also determine whether the object LBA range is included in the LBA range that allows the first user to access.
[0121] If the validity of the first access authenticator is confirmed, the memory system 3 processes the access instruction (A111). Then, the memory system 3 sends a response to the access instruction to the host 2 (A112).
[0122] Specifically, for example, when the access instruction is a read instruction, the memory system 3 reads user data from the non-volatile memory 4 based on the region information (object LBA range) and the logical-physical address translation table 52. Furthermore, if the read user data is encrypted data, the memory system 3 decrypts the encrypted data using a key 422 associated with the first user ID (or first user authentication token) to generate the user data. Then, the memory system 3 sends a response indicating that the read instruction has been processed, along with the user data, to the host 2.
[0123] Additionally, for example, if the access instruction is a write instruction, memory system 3 writes the user data to non-volatile memory 4 and updates the logical-physical address translation table 52 based on the region information. Furthermore, memory system 3 can also generate encrypted data by encrypting the user data to be written to non-volatile memory 4 using a key 422 associated with the first user ID (or first user authentication token). In this case, memory system 3 writes the encrypted data to non-volatile memory 4 and updates the logical-physical address translation table 52 based on the region information. Then, memory system 3 sends a response indicating that the write instruction has been processed successfully to host 2.
[0124] Through the above authentication / access actions, the memory system 3 can control access to be restricted to the first user with legitimate permissions and only to the area (LBA range) authorized to the first user.
[0125] Specifically, after the first user authentication is successful and a first user authentication token is generated, the memory system 3 sends the first user authentication token to the host 2 according to the authentication token retrieval instruction. The host 2 can retrieve the first user authentication token from the memory system 3 at any time during the period from the generation of the first user authentication token to its revocation (e.g., the period during which access to the area allocated to the first user is permitted), using the authentication token retrieval instruction. Therefore, the host 2 can retrieve the first user authentication token from the memory system 3 at the necessary time, for example, to access the non-volatile memory 4. Thus, even if the first user authentication token is temporarily stored in the host memory 22, it will not be stored for a long time, thereby preventing the first user authentication token from leaking from the host memory 22.
[0126] Furthermore, the access authentication token included in the access instruction can be a first access authentication token obtained by performing a second operation using a first user authentication token, region information, and first translation authentication information. Therefore, even if the access instruction is eavesdropped on, because the first access authentication token included in the access instruction is generated using the region information, the memory system 3 can still prevent access to regions different from those specified by the region information. In other words, the memory system 3 can prevent replay attacks on arbitrary regions using eavesdropped access instructions.
[0127] Furthermore, other users without valid authentication information (referring to the authentication information of the first user) cannot generate the correct first access authentication token. Therefore, even if, for example, a response containing the first user authentication token is eavesdropped on, the memory system 3 can prevent other users from accessing the non-volatile memory 4 using the eavesdropped first user authentication token.
[0128] Thus, even if either the instructions or responses transmitted between the memory system 3 and the host 2 being used by the first user are eavesdropped on, the memory system 3 can prevent unauthorized access to the non-volatile memory 4 using the eavesdropped information. Therefore, the memory system 3 can enhance security related to access to the non-volatile memory 4.
[0129] Here, the actions to prevent access to non-volatile memory 4 using the eavesdropped first user authentication token are explained.
[0130] Figure 6 This is a sequence diagram illustrating an example of access operations in host 2 and memory system 3. This access operation is an example of preventing access to non-volatile memory 4 using eavesdropped instructions or responses. Here, an example is illustrated where a user other than user 1 (hereinafter referred to as user 2) eavesdrops on user 1's authentication credentials. User 2's authentication information is referred to as second authentication information. Furthermore, the host 2 used by user 2 may be the same as or different from the host 2 used by user 1.
[0131] First, after eavesdropping on the first user authentication token, host 2 generates converted authentication information (hereinafter referred to as the second converted authentication information) (B101) by performing a first operation on the second authentication information. Host 2 then generates an access token (the second access token) (B102) by performing a second operation using the eavesdropped first user authentication token, region information, and the second converted authentication information. Next, host 2 sends an access instruction requesting access to the non-volatile memory 4 to memory system 3 (B103). The access instruction, for example, includes the first user ID, region information representing the LBA range of the object, and the second access token. Furthermore, the first user ID can be obtained, for example, by eavesdropping on any instruction transmitted from host 2, which is being used by the first user, to memory system 3.
[0132] The memory system 3 performs a verification process (B104) on the second access authentication token contained in the access instruction received from the host 2. This verification process verifies the validity of the second access authentication token.
[0133] Specifically, memory system 3 obtains the first user ID, region information, and second access authenticator from the access instruction. Memory system 3 then obtains the first user authenticator and first registration conversion authentication information associated with the obtained first user ID from user management table 421. Alternatively, memory system 3 can also obtain the first user authenticator and first registration conversion authentication information associated with the region information representing the LBA range containing the object, based on the region information obtained from the access instruction, from user management table 421. Memory system 3 performs a second operation using the first user authenticator, first registration conversion authentication information, and region information to generate a verification authenticator (first verification authenticator).
[0134] Then, the memory system 3 determines whether the legitimacy of the second access authentication token is confirmed based on whether the second access authentication token matches the first verification authentication token. The second access authentication token is not generated using the first transformed authentication information based on the first user's authentication information, but rather using the second transformed authentication information based on the second user's authentication information (the second authentication information). Therefore, the second access authentication token does not match the first verification authentication token. Thus, the memory system 3 determines that the legitimacy of the second access authentication token is not confirmed. Furthermore, the memory system 3 may also determine whether the object's LBA range is included within the LBA range that allows the first user to access it.
[0135] Because the validity of the second access authenticator was not confirmed, the memory system 3 sent an error response to the host 2 (B105).
[0136] Through the above access actions, the memory system 3 can prevent the first user authentication token, which has been eavesdropped, from accessing the non-volatile memory 4. That is, even if a second user without legitimate authentication information eavesdrops on the first user authentication token, the memory system 3 can still prevent the second user from illegally accessing the non-volatile memory 4.
[0137] like Figure 5 and Figure 6 As shown in the diagram, the memory system 3 receives an access instruction from the host 2 containing an access authentication token based on a user authentication token, region information, and translational authentication information. By using such an access instruction, the memory system 3 can allow users with legitimate permissions to access the region assigned to that user, but prohibit other users from unauthorized access to that region.
[0138] Reference Figures 7 to 10 Provide more specific details about the authentication / access actions.
[0139] Figure 7 This illustrates an example of an authentication action in memory system 3. An authentication action is the process of authenticating a user who is using host 2 and generating a user authentication token upon successful authentication.
[0140] First, an authentication request command is sent from host 2 to memory system 3. Figure 7 (1)). The authentication request instruction includes the user ID and authentication information (object authentication information).
[0141] In memory system 3, instruction / response processing unit 151 receives authentication request instructions from host 2 via host I / F 11. Instruction / response processing unit 151 sends the received authentication request instructions to authentication processing unit 152. Figure 7 (2) in the middle.
[0142] The authentication processing unit 152 retrieves authentication information (registration authentication information) from the user management table 421 based on the user ID contained in the authentication request instruction. Figure 7 (3)). Specifically, the authentication processing unit 152 determines the entry containing the user ID from the user management table 421. The authentication processing unit 152 obtains the registration authentication information from the authentication information field of the determined entry.
[0143] The authentication processing unit 152 determines whether the object authentication information matches the registration authentication information. If the object authentication information does not match the registration authentication information, the authentication processing unit 152 issues an authentication failure notification to the instruction / response processing unit 151. Figure 7 (4) in the middle.
[0144] When the instruction / response processing unit 151 receives an authentication failure notification from the authentication processing unit 152, it accordingly sends a response indicating user authentication failure to the host 2 via the host I / F 11. Figure 7 (5) in the middle.
[0145] On the other hand, if the object authentication information matches the registration authentication information, the authentication processing unit 152 issues an instruction to the authentication token management unit 153 to generate a user authentication token. Figure 7 (6)). This instruction, for example, includes the user ID.
[0146] The authentication token management unit 153 generates user authentication tokens according to the instructions of the authentication processing unit 152. For example, the authentication token management unit 153 generates a random number as the user authentication token. The authentication token management unit 153 then associates the generated user authentication token with the user ID and stores it in the user management table 421. Figure 7 (7)). Specifically, the authentication token management unit 153 determines the entry containing the user ID from the user management table 421. The authentication token management unit 153 sets the generated user authentication token in the user authentication token field of the determined entry. The authentication token management unit 153 issues a notification to the authentication processing unit 152 that the generation of the user authentication token corresponding to the user ID has been completed. Figure 7(8) in the middle.
[0147] Next, the authentication processing unit 152, following the notification from the authentication token management unit 153, issues a notification of successful authentication to the instruction / response processing unit 151. Figure 7 (9) in the middle.
[0148] When the instruction / response processing unit 151 receives a notification of successful authentication from the authentication processing unit 152, it accordingly sends a response indicating successful user authentication to the host 2 via the host I / F 11. Figure 7 (10) in the middle.
[0149] Through the above authentication actions, the memory system 3 authenticates the user. Upon successful authentication, the memory system 3 generates a user authentication token corresponding to the user and stores it in the user management table 421. The stored user authentication token is used to control access to the non-volatile memory 4 by the host 2 currently being used by the user.
[0150] Figure 8 This illustrates an example of an authentication token sending action in memory system 3. The authentication token sending action is the act of sending a user authentication token corresponding to the user currently using host 2 to host 2.
[0151] First, the host 2 sends an authentication token acquisition command to the memory system 3. Figure 8 (1)). The authentication token retrieval instruction, for example, includes the user ID.
[0152] In memory system 3, instruction / response processing unit 151 receives an authentication token acquisition instruction from host 2 via host I / F 11. Instruction / response processing unit 151 transmits the received authentication token acquisition instruction to authentication token management unit 153. Figure 8 (2) in the middle.
[0153] The authentication token management department 153 retrieves the user authentication token from the user management table 421 based on the user ID contained in the authentication token retrieval instruction. Figure 8 (3)). Specifically, the authentication token management unit 153 determines the entry containing the user ID from the user management table 421. The authentication token management unit 153 obtains the user authentication token from the user authentication token field of the determined entry. The authentication token management unit 153 transmits the obtained user authentication token to the instruction / response processing unit 151. Figure 8 (4) in the middle.
[0154] The instruction / response processing unit 151 sends a response containing the user authentication token received from the authentication token management unit 153 to the host 2 via the host I / F 11. Figure 8 (5) in the middle.
[0155] Through the above authentication token sending action, the memory system 3 can send the user authentication token corresponding to the user currently using the host 2 to the host 2.
[0156] Figure 9 This illustrates an example of a data read operation in memory system 3. A data read operation is the act of reading user data from user area 41 within non-volatile memory 4 upon request from a user with valid permissions.
[0157] First, a read command is sent from host 2 to memory system 3. Figure 9 (1) Specifically, host 2 generates converted authentication information by performing a first operation on the user's authentication information (object authentication information). Host 2 generates an access authentication token (object access authentication token) by performing a second operation on the user authentication token generated by memory system 3, the region information representing the object's LBA range, and the converted authentication information. The object access authentication token is, for example, the XOR of the user authentication token generated by memory system 3, the starting address of the object's LBA range, and the converted authentication information. Then, host 2 sends a read instruction containing the user ID, region information, and object access authentication token to memory system 3.
[0158] In memory system 3, instruction / response processing unit 151 receives a read instruction from host 2 via host I / F 11. Instruction / response processing unit 151 transmits the received read instruction to access control unit 154. Figure 9 (2) in the middle.
[0159] Access control unit 154 retrieves the user authentication token (registered user authentication token) and converted authentication information (registered converted authentication information) from user management table 421 based on the user ID contained in the read instruction. Figure 9 (3)). Specifically, the access control unit 154 determines the entry containing the user ID from the user management table 421. The access control unit 154 obtains the registered user authentication code from the user authentication code field of the determined entry and obtains the registration conversion authentication information from the conversion authentication information field. In addition, the access control unit 154 may also obtain authentication information (registration authentication information) from the authentication information field of the determined entry and perform the first operation processing on the obtained authentication information to obtain the registration conversion authentication information.
[0160] Access control unit 154 uses the obtained registered user authentication token, registration conversion authentication information, and region information contained in the read instruction to verify the validity of the object access authentication token contained in the read instruction. Specifically, access control unit 154 generates a verification authentication token by performing a second operation using the registered user authentication token, registration conversion authentication information, and region information. The generated verification authentication token is, for example, the XOR of the starting address of the object LBA range shown in the registered user authentication token, registration conversion authentication information, and region information. Access control unit 154 determines whether the validity of the object access authentication token is confirmed based on whether the generated verification authentication token matches the object access authentication token.
[0161] If the generated authentication token does not match the object access token, the access control unit 154 issues an error notification to the instruction / response processing unit 151. Figure 9 (4) in the middle.
[0162] When the instruction / response processing unit 151 receives an error notification from the access control unit 154, it accordingly sends a response indicating an error related to the read instruction to the host 2. Figure 9 (5) in the middle.
[0163] On the other hand, if the generated authentication token matches the object access token, the access control unit 154, based on the region information and the logical-physical address translation table 52, issues an instruction to read data from the non-volatile memory 4. Figure 9 (6)). Specifically, the access control unit 154 uses the logical physical address translation table 52 to obtain the physical address corresponding to each LBA within the object LBA range shown in the area information. The access control unit 154 issues an instruction to the non-volatile memory 4 to read data based on the obtained physical address via the memory I / F 13.
[0164] Data read from non-volatile memory 4 according to the instructions of access control unit 154 is forwarded to encryption circuit 14. Figure 9 (7)). The data read from the non-volatile memory 4 is, for example, encrypted user data (encrypted data).
[0165] Encryption circuit 14 generates user data by decrypting encrypted data using key 422. Encryption circuit 14 may obtain key 422 associated with the user ID (or registered user authentication token) from system area 42. Alternatively, encryption circuit 14 may also obtain key 422 associated with a portion of the area containing the object LBA range from system area 42. Encryption circuit 14 transmits the generated user data to access control unit 154. Figure 9 (8)). In addition, user data can also be stored in buffers included in DRAM5, etc.
[0166] Access control unit 154 issues a notification to instruction / response processing unit 151 that the reading of user data has been completed. Figure 9 (9) in the middle.
[0167] When the instruction / response processing unit 151 receives a notification from the access control unit 154 that the reading of user data has been completed, it accordingly sends a response indicating that the reading of user data has been completed, along with the user data, to the host 2. Figure 10 (10) in the middle.
[0168] Through the above data reading operations, the memory system 3 can read user data from the user area 41 and provide it to the host 2 according to a read instruction containing a valid access authentication token. Additionally, the memory system 3 can prevent the reading of user data according to a read instruction without a valid access authentication token.
[0169] Figure 10 This illustrates an example of a data write operation in memory system 3. A data write operation is the act of writing user data to user area 41 within non-volatile memory 4 upon request from a user with legitimate privileges.
[0170] First, a write command is sent from host 2 to memory system 3. Figure 10 (1) Specifically, host 2 generates converted authentication information by performing a first operation on the user's authentication information (object authentication information). Host 2 generates an access authentication token (object access authentication token) by performing a second operation on the user authentication token generated by memory system 3, the region information representing the LBA range of the object, and the converted authentication information. Then, host 2 sends a write instruction containing the user ID, region information, and object access authentication token to memory system 3.
[0171] In memory system 3, instruction / response processing unit 151 receives write instructions from host 2 via host I / F 11. Instruction / response processing unit 151 transmits the received write instructions to access control unit 154. Figure 10 (2) in the middle.
[0172] Access control unit 154 retrieves the user authentication token (registered user authentication token) and converted authentication information (registered converted authentication information) from user management table 421 based on the user ID contained in the write instruction. Figure 10 (3)). Specifically, the access control unit 154 determines the entry containing the user ID from the user management table 421. The access control unit 154 obtains the registered user authentication code from the user authentication code field of the determined entry and obtains the registered conversion authentication information from the conversion authentication information field.
[0173] Access control unit 154 uses the obtained registered user authentication token, registration conversion authentication information, and region information contained in the write instruction to verify the validity of the object access authentication token contained in the write instruction. Specifically, access control unit 154 generates a verification authentication token by performing a second operation using the registered user authentication token, registration conversion authentication information, and region information. The generated verification authentication token is, for example, the XOR of the starting address of the object LBA range shown in the registered user authentication token, registration conversion authentication information, and region information. Access control unit 154 determines whether the validity of the object access authentication token is confirmed based on whether the generated verification authentication token matches the object access authentication token.
[0174] If the generated authentication token does not match the object access token, the access control unit 154 issues an error notification to the instruction / response processing unit 151. Figure 10 (4) in the middle.
[0175] When the instruction / response processing unit 151 receives an error notification from the access control unit 154, it accordingly sends a response indicating an error related to the write instruction to the host 2. Figure 10 (5) in the middle.
[0176] On the other hand, if the generated authentication token matches the object access token, the access control unit 154 forwards from the host 2 the user data that should be written to the user area 41 in the non-volatile memory 4 according to the write instruction. Figure 10 (6)). Furthermore, user data can also be forwarded from host 2 and stored in a buffer included in DRAM 5, etc., after receiving a write command. Access control unit 154 transmits user data to encryption circuit 14 ( Figure 10 (7) in the middle.
[0177] Encryption circuit 14 generates encrypted user data (encrypted data) by encrypting user data, for example, using key 422. Encryption circuit 14 obtains key 422 associated with the user ID (or registered user authentication token) from system area 42. Alternatively, encryption circuit 14 may also obtain key 422 associated with a portion of the area containing the object LBA range from system area 42. Encryption circuit 14 forwards the generated encrypted data to non-volatile memory 4 via memory I / F 13. Figure 10 (8) in the middle.
[0178] Access control unit 154 issues an instruction to non-volatile memory 4 via memory I / F13 to write forwarded encrypted data. Figure 10(9)). In the non-volatile memory 4, encrypted data is written to the user area 41 according to the instruction of the access control unit 154. The access control unit 154 updates the logical physical address translation table 52 by associating the physical address where the encrypted data is written with the corresponding LBA in the object LBA range. Then, the access control unit 154 issues a notification to the instruction / response processing unit 151 that the writing of user data has been completed. Figure 11 (10) in the middle.
[0179] When the instruction / response processing unit 151 receives a notification from the access control unit 154 that the writing of user data has been completed, it accordingly sends a response indicating that the writing of user data has been completed to the host 2. Figure 11 (11) in the middle.
[0180] Through the above data write operations, the memory system 3 can write user data to the user area 41 according to write instructions containing valid access authentication characters. Additionally, the memory system 3 can prevent the writing of user data according to write instructions without valid access authentication characters.
[0181] Here, refer to Figures 12 to 14 The flowchart illustrates the sequence of processes performed in host 2.
[0182] Figure 12 This is a flowchart illustrating an example of the sequence of steps in the authentication / access request processing performed by the CPU 21 of host 2. The authentication / access request processing involves requesting authentication of the user from the memory system 3, and, upon successful authentication, requesting access to non-volatile memory 4 accordingly. The CPU 21 performs the authentication / access request processing, for example, when access to non-volatile memory 4 is required.
[0183] First, CPU 21 sends an authentication request instruction containing the user's user ID and authentication information to memory system 3 (step S101). CPU 21 receives a response to the authentication request instruction from memory system 3 (step S102). Then, based on the received response, CPU 21 determines the success or failure of user authentication (step S103).
[0184] If user authentication fails ("No" in step S103), CPU 21 terminates the authentication / access request processing. That is, because authentication failed, the host 2 that the user is using cannot access the non-volatile memory 4 of the memory system 3.
[0185] If user authentication is successful (Yes in step S103), CPU 21 sends an authentication token acquisition instruction containing the user ID to memory system 3 (step S104). CPU 21 receives a response to the authentication token acquisition instruction from memory system 3 (step S105). Then, CPU 21 obtains the user authentication token (hereinafter referred to as user authentication token A1) from the received response (step S106).
[0186] Next, CPU 21 generates converted authentication information by performing a first operation on the user's authentication information (step S107). The converted authentication information is, for example, a hash value of the authentication information. CPU 21 generates an access authentication token (hereinafter referred to as access authentication token A2) by performing a second operation using the user authentication token A1, the converted authentication information, and the region information (step S108). The access authentication token A2 is, for example, the XOR of the user authentication token A1, the converted authentication information, and the starting address of the object LBA range shown in the region information. Then, CPU 21 sends an access instruction containing the user ID, region information, and access authentication token A2 to the memory system 3 (step S109) and ends the authentication / access request processing.
[0187] Through the above authentication / access request processing, host 2 can access the non-volatile memory 4 of memory system 3 when the user has legitimate permissions.
[0188] Next, refer to Figure 13 The flowchart illustrates the sequence of steps of the processing performed in memory system 3.
[0189] Figure 14 This is a flowchart illustrating an example of the sequence of steps in the authentication process executed by the CPU 15 of the memory system 3. The authentication process involves authenticating the user based on authentication information and generating a user authentication token upon successful authentication. The CPU 15 executes the authentication process accordingly upon receiving an authentication request instruction from the host 2.
[0190] First, CPU 15 obtains the user ID and authentication information (object authentication information) from the authentication request instruction (step S201). CPU 15 obtains the authentication information associated with the user ID (registration authentication information) from the user management table 421 (step S202). Then, CPU 15 determines whether the object authentication information and the registration authentication information are consistent (step S203).
[0191] If the object authentication information differs from the registration authentication information (No in step S203), CPU15 will send a response indicating user authentication failure to host 2 (step S204) and end the authentication process.
[0192] If the object authentication information matches the registration authentication information (Yes in step S203), CPU 15 generates converted authentication information by performing the first operation on the object authentication information (= registration authentication information) (step S205). This converted authentication information is, for example, a hash value of the object authentication information. Additionally, CPU 15 generates a user authentication token (step S206). CPU 15 associates the generated converted authentication information and user authentication token with the user ID and stores them in the user management table 421 (step S207). Then, CPU 15 sends a successful authentication response to host 2 (step S208) and ends the authentication process.
[0193] Through the above authentication process, the memory system 3 can authenticate the user currently using the host 2 based on the authentication information. Furthermore, if user authentication is successful, the memory system 3 can generate a user authentication token for the host 2 to access the non-volatile memory 4.
[0194] Figure 15 This is a flowchart illustrating an example of the sequence of steps in the authentication token sending process executed by the CPU 15 of the memory system 3. The authentication token sending process involves sending the user authentication token corresponding to the user currently using the host 2 to the host 2. The CPU 15 executes the authentication token sending process accordingly upon receiving an authentication token retrieval instruction from the host 2.
[0195] First, CPU 15 obtains the user ID from the authentication token acquisition instruction (step S31). CPU 15 determines whether the user authentication token associated with the obtained user ID is included in the user management table 421 (step S32). Specifically, CPU 15, for example, determines whether the entry in the user management table 421 containing the obtained user ID has a user authentication token set.
[0196] If the user authentication token associated with the user ID is included in the user management table 421 (Yes in step S32), the CPU 15 retrieves the user authentication token (registered user authentication token) from the user management table 421 (step S33). Then, the CPU 15 sends a response containing the registered user authentication token to the host 2 (step S34) and ends the authentication token sending process.
[0197] If the user authentication token associated with the user ID is not included in the user management table 421 ("No" in step S32), the CPU 15 sends an error response to the host 2 (step S35) and ends the authentication token sending process. For example, if user authentication fails, the user authentication token corresponding to the user has not yet been generated, or the user authentication token corresponding to the user has been revoked, the user management table 421 will not contain the user authentication token associated with the user ID.
[0198] Through the above authentication token sending process, the memory system 3 can provide the user authentication token to the host 2 if a user authentication token corresponding to the user using the host 2 has been generated (i.e., the user authentication token is included in the user management table 421).
[0199] Figure 5 This is a flowchart illustrating an example of the sequence of steps in the access control processing executed by the CPU 15 of the memory system 3. The access control processing is used to control access to the non-volatile memory 4 by the host 2, which is being used by the user, using access authentication tokens. When the CPU 15 receives an access instruction from the host 2, it executes the access control processing accordingly. Here, the access instruction is assumed to be either a read instruction or a write instruction.
[0200] First, CPU 15 obtains the user ID, region information, and access authentication token (object access authentication token) from the access instruction (step S401). CPU 15 then obtains the user authentication token (registered user authentication token) associated with the obtained user ID and the conversion authentication information (registration conversion authentication information) from the user management table 421 (step S402). CPU 15 generates a verification authentication token by performing a second operation using the region information, registered user authentication token, and registration conversion authentication information (step S403). Next, CPU 15 determines whether the generated verification authentication token matches the object access authentication token (step S404). That is, CPU 15 determines whether the validity of the object access authentication token is confirmed.
[0201] If the generated authentication token differs from the object access token (No in step S404), CPU 15 sends a response indicating access failure to host 2 (step S405) and ends the access control process. That is, if CPU 15 receives an access instruction from host 2 containing an access token whose validity has not been confirmed, it does not process the access instruction accordingly.
[0202] If the generated authentication token matches the object access token (Yes in step S404), CPU15 determines whether the access instruction is a read instruction (step S406).
[0203] If the access instruction is a read instruction ("Yes" in step S406), CPU 15 reads the encrypted user data (encrypted data) from non-volatile memory 4 based on the region information and logical-physical address translation table 52 (step S407). CPU 15 generates user data by decrypting the read encrypted data with key 422 associated with the user ID (or registered user authentication token) (step S408). CPU 15 sends a response indicating successful access (i.e., reading of user data) and the decrypted user data to host 2 (step S409) and ends the access control process.
[0204] If the access instruction is a write instruction ("No" in step S406), the CPU 15 generates encrypted user data (encrypted data) by encrypting the user data that should be written to the non-volatile memory 4 according to the write instruction with a key 422 associated with the user ID (or registered user authentication token) (step S410). The CPU 15 writes the generated encrypted data to the non-volatile memory 4 (step S411). The CPU 15 updates the logical physical address translation table 52 in a manner that associates the physical address where the encrypted data is written with the corresponding LBA within the LBA range shown in the area information (step S412). Then, the CPU 15 sends a response indicating that the access (i.e., the writing of user data) was successful to the host 2 (step S413) and ends the access control process.
[0205] Through the above access control processing, the memory system 3 can use access authentication tokens to control the host 2's access to the non-volatile memory 4. Specifically, if the validity of the access authentication token included in the access instruction is confirmed, the memory system 3 executes the processing according to the access instruction. Conversely, if the validity of the access authentication token included in the access instruction is not confirmed, the memory system 3 does not execute the processing according to the access instruction. Thus, the memory system 3 can allow processing according to access instructions containing valid access authentication tokens, but prohibits processing according to access instructions without valid access authentication tokens. Therefore, the memory system 3 can enhance the security related to access to the non-volatile memory 4.
[0206] (Second Implementation)
[0207] In the first embodiment, the memory system 3 authenticates the user according to an authentication request instruction containing authentication information. If the user authentication is successful, the memory system 3 generates a user authentication token (registered user authentication token) associated with that user (more specifically, the user ID). The memory system 3 sends the generated registered user authentication token to the host 2 according to the authentication token acquisition instruction. Furthermore, upon receiving an access instruction containing the user ID, region information, and an access authentication token (object access authentication token), the memory system 3 uses the region information, the registered user authentication token associated with the user ID, and authentication information (more specifically, conversion authentication information) to verify the validity of the object access authentication token. Then, if the validity of the object access authentication token is confirmed, the memory system 3 executes processing according to the access instruction.
[0208] In contrast, the memory system 3 in the second embodiment does not receive authentication information from the host 2. Instead, it generates a user authentication token (registered user authentication token) according to the authentication token acquisition instruction and sends it to the host 2. Furthermore, similar to the first embodiment, the memory system 3 performs processing according to the access instruction once the legitimacy of the object access authentication token is confirmed.
[0209] The memory system 3 of the second embodiment has the same structure as the memory system 3 of the first embodiment. The steps for generating a user authentication token (registering a user authentication token) and sending it to the host 2 differ between the second and first embodiments. The following mainly describes the differences from the first embodiment.
[0210] Figure 5 This is a sequence diagram illustrating an example of authenticator generation / access operations in host 2 and memory system 3. Authenticator generation / access operations are actions used to allow users with legitimate permissions to access areas assigned to them, but to prohibit other users from accessing those areas. Here, the example illustrates the case where the user currently using host 2 is the first user with legitimate permissions.
[0211] First, host 2 sends an authentication token acquisition instruction (C101) to memory system 3. The authentication token acquisition instruction may contain, for example, the user ID of the first user (first user ID).
[0212] The memory system 3 generates a user authentication token (first user authentication token) associated with the first user ID (C102) according to the authentication token acquisition instruction received from the host 2. The memory system 3 sets the first user authentication token in the user authentication token field of the entry containing the first user ID in the user management table 421. Thus, the first user authentication token is associated with the first user ID. Then, the memory system 3 sends a response containing the first user authentication token to the host 2 as a response to the authentication token acquisition instruction (C103).
[0213] After receiving a response containing the first user authentication token, host 2 generates translated authentication information (hereinafter referred to as the first translated authentication information) by performing the first operation on the authentication information of the first user (the first authentication information) (C104). Host 2 uses the first user authentication token, the region information, and the first translated authentication information to compare with the reference... Figures 16 to 18 Similarly, in the first embodiment described above, an access authentication token (hereinafter referred to as the first access authentication token) (C105) is generated.
[0214] Next, host 2 sends an access command requesting access to non-volatile memory 4 to memory system 3 (C106). The access command may include, for example, the first user ID, region information, and the first access authenticator.
[0215] Memory system 3, according to the access instructions received from host 2, and references... Figure 16 Similarly, in the first embodiment, the first access authentication token contained in the access command is verified (C107). This verification process verifies the legality of the first access authentication token.
[0216] If the validity of the first access authenticator is confirmed, the memory system 3 processes the access instruction (C108). Furthermore, after determining whether the validity of the first access authenticator has been confirmed (i.e., whether the validity of the first access authenticator has been confirmed or not), the memory system 3 revoks the first user authenticator (C109). Specifically, the first user authenticator is deleted from the entry containing the first user ID in the user management table 421. Then, the memory system 3 sends a response to the access instruction to the host 2 (C110).
[0217] Through the above authentication token generation / access actions, the memory system 3 can control access to be restricted to the first user with legitimate permissions and only to areas authorized by the first user.
[0218] Specifically, the memory system 3 does not receive authentication information from the host 2. Instead, it generates a first user authentication token according to the authentication token acquisition instruction and sends it to the host 2. This, for example, can prevent the authentication request instruction containing authentication information from being eavesdropped on and thus leading to the leakage of authentication information.
[0219] Furthermore, the access authentication token included in the access instruction can be a first access authentication token obtained by performing a second operation using a first user authentication token, region information, and first translation authentication information. Therefore, even if the access instruction is eavesdropped on, because the first access authentication token included in the access instruction is generated using the region information, the memory system 3 can still prevent access to regions different from those specified by the region information. In other words, the memory system 3 can prevent replay attacks on arbitrary regions using eavesdropped access instructions.
[0220] Furthermore, even if the access instruction is eavesdropped, the memory system 3 will invalidate the first user authentication token during the actions executed according to that access instruction. Therefore, even if a replay attack is performed using the eavesdropped access instruction, because the first user authentication token has been invalidated, the memory system 3 will still determine that the legitimacy of the first access token contained in the replay attack's access instruction is unverified. Therefore, the memory system 3 will not execute the processing according to the replay attack's access instruction. Thus, the memory system 3 can prevent replay attacks using eavesdropped access instructions.
[0221] Thus, even if one of the instructions and responses transmitted between the memory system 3 and the host 2 being used by the first user is eavesdropped on, the memory system 3 can prevent unauthorized access to the non-volatile memory 4 using the eavesdropped information.
[0222] The CPU 15 of the memory system 3 functions as, for example, an instruction / response processing unit 151, an authentication management unit 153, and an access control unit 154.
[0223] The instruction / response processing unit 151 receives instructions issued by the host 2 via the host I / F 11. The instructions issued by the host 2 may be, for example, an authentication code acquisition instruction or an access instruction. The instruction / response processing unit 151 causes at least one of the authentication code management unit 153 and the access control unit 154 to perform processing according to the received instructions. Furthermore, the instruction / response processing unit 151 sends a response based on the result of processing according to the instructions to the host 2 via the host I / F 11.
[0224] The authentication token management unit 153 generates user authentication tokens and manages the generated user authentication tokens. The authentication processing unit 152 manages user authentication tokens, for example, using the user management table 421.
[0225] When the instruction / response processing unit 151 receives an authentication token acquisition instruction from the host 2, the authentication token management unit 153 accordingly generates a user authentication token and sends it to the host 2. Specifically, the authentication token management unit 153 obtains the user ID from the authentication token acquisition instruction. The authentication token management unit 153 generates a user authentication token. The authentication token management unit 153 associates the generated user authentication token with the user ID and stores it in the user management table 421. In addition, the generated user authentication token, as a response to the authentication token acquisition instruction, is sent to the host 2 by the instruction / response processing unit 151.
[0226] Furthermore, the authentication token management unit 153 may, for example, revoke the user authentication token associated with the user ID if the access instruction containing the user ID has already been processed. Specifically, the authentication token management unit 153 may delete the user authentication token from the user management table 421.
[0227] When the instruction / response processing unit 151 receives an access instruction from the host 2, the access control unit 154 controls access to the non-volatile memory 4 accordingly. The access instruction may include, for example, a user ID (object user ID), region information, and an access authentication code (object access authentication code).
[0228] Specifically, the access control unit 154 uses registration authentication information associated with the object user ID and the registration user authentication token to verify the validity of the object access authentication token. When the validity of the object access authentication token is confirmed, the access control unit 154 performs processing on the non-volatile memory 4 according to the access instruction. When the validity of the object access authentication token is not confirmed, the access control unit 154 does not perform processing on the non-volatile memory 4 according to the access instruction.
[0229] The verification of the validity of the object access authentication token is the same as in the first implementation, so a detailed description is omitted.
[0230] Through the above structure, the instruction / response processing unit 151, the authentication token management unit 153, and the access control unit 154 can allow users with legitimate permissions to access the non-volatile memory 4 and prohibit users without legitimate permissions from accessing the non-volatile memory 4. For more specific details regarding the operation of the instruction / response processing unit 151, the authentication token management unit 153, and the access control unit 154, please refer to... Figure 16 Please provide an explanation.
[0231] Figure 16 This illustrates an example of an authentication token generation / sending action in memory system 3. The authentication token generation / sending action is the process of generating a user authentication token corresponding to the user currently using host 2 and sending the generated user authentication token to host 2.
[0232] First, the host 2 sends an authentication token acquisition command to the memory system 3. Figure 16 (1)). The authentication token retrieval instruction, for example, includes the user ID.
[0233] In memory system 3, instruction / response processing unit 151 receives an authentication token acquisition instruction from host 2 via host I / F 11. Instruction / response processing unit 151 transmits the received authentication token acquisition instruction to authentication token management unit 153. Figure 16 (2) in the middle.
[0234] The authentication token management unit 153 generates a user authentication token according to the authentication token acquisition instruction received from the instruction / response processing unit 151. The authentication token management unit 153 then associates the generated user authentication token with the user ID and stores it in the user management table 421. Figure 16 (3)). Specifically, the authentication token management unit 153 obtains the user ID from the authentication token acquisition instruction. The authentication token management unit 153 determines the entry containing the user ID from the user management table 421. The authentication token management unit 153 sets the generated user authentication token in the user authentication token field of the determined entry. The authentication token management unit 153 transmits the generated user authentication token to the instruction / response processing unit 151. Figure 17 (4) in the middle.
[0235] The instruction / response processing unit 151 sends a response containing the user authentication token received from the authentication token management unit 153 to the host 2 via the host I / F 11. Figure 17 (5) in the middle.
[0236] Through the above authentication token generation / sending actions, the memory system 3 can generate a user authentication token and send the generated user authentication token to the host 2.
[0237] Figure 9 An example of a data read operation in memory system 3.
[0238] Figure 17 Actions (1) to (8) in the text are the same as those mentioned above. Figure 17 The actions (1) to (8) in the data reading action are the same.
[0239] exist Figure 17 In step (8), after the encryption circuit 14 sends the user data to the access control unit 154, the access control unit 154 removes the registered user authentication token from the user management table 421. Figure 17 (9)). Specifically, the access control unit 154 determines the entry containing the user ID from the user management table 421. The access control unit 154 deletes the registered user authentication token set in the user authentication token field of the determined entry. Then, the access control unit 154 issues a notification to the instruction / response processing unit 151 that the reading of user data has been completed. Figure 18 (10) in the middle.
[0240] When the instruction / response processing unit 151 receives a notification from the access control unit 154 that the reading of user data has been completed, it accordingly sends a response indicating that the reading of user data has been completed, along with the user data, to the host 2. Figure 18 (11) in the middle.
[0241] Through the above data reading operations, the memory system 3 can read user data from the user area 41 and provide it to the host 2 according to a read instruction containing a valid access authentication token. Additionally, the memory system 3 can prevent the reading of user data according to a read instruction without a valid access authentication token.
[0242] Figure 10 An example of a data write operation in memory system 3.
[0243] Figure 18 The actions in (1) to (9) are the same as those mentioned above. Figure 18 The actions (1) to (9) in the data writing action are the same.
[0244] exist Figure 18In step (9), after issuing an instruction to write encrypted data to the non-volatile memory 4 and updating the logical physical address translation table 52, the access control unit 154 removes the registered user authentication code from the user management table 421. Figure 18 (10)). Specifically, the access control unit 154 determines an entry containing a user ID from the user management table 421. The access control unit 154 deletes the registered user authentication token set in the user authentication token field of the determined entry. Then, the access control unit 154 issues a notification to the instruction / response processing unit 151 that the writing of user data has been completed. Figure 19 (11) in the middle.
[0245] When the instruction / response processing unit 151 receives a notification from the access control unit 154 that the writing of user data has been completed, it accordingly sends a response indicating that the writing of user data has been completed to the host 2. Figure 19 (12) in the middle.
[0246] Through the above data write operations, the memory system 3 can write user data to the user area 41 in the non-volatile memory 4 according to write instructions containing valid access authentication characters. Additionally, the memory system 3 can prevent the writing of user data according to write instructions without valid access authentication characters.
[0247] Here, refer to Figure 20 The flowchart illustrates the sequence of processes performed in host 2.
[0248] Figure 21 This is a flowchart illustrating an example of the steps involved in the authentication / access request processing performed by the CPU 21 of host 2. The authentication / access request processing involves requesting the generation of a user authentication token from the memory system 3 and accessing non-volatile memory 4. The CPU 21 performs the authentication / access request processing, for example, when access to non-volatile memory 4 is required.
[0249] First, CPU 21 sends an authentication token acquisition instruction containing the user ID to memory system 3 (step S501). CPU 21 receives a response to the authentication token acquisition instruction from memory system 3 (step S502). Then, CPU 21 retrieves the user authentication token (hereinafter referred to as user authentication token A1) from the received response (step S503).
[0250] Next, CPU 21 generates converted authentication information by performing a first operation on the user's authentication information (step S504). The converted authentication information is, for example, a hash value of the authentication information. CPU 21 generates an access authentication token (hereinafter referred to as access authentication token A2) by performing a second operation using the user authentication token A1, the converted authentication information, and the region information (step S505). The access authentication token A2 is, for example, the XOR of the user authentication token A1, the converted authentication information, and the starting address of the object LBA range shown in the region information. Then, CPU 21 sends an access instruction containing the user ID, region information, and access authentication token A2 to the memory system 3 (step S506) and ends the authentication token / access request processing.
[0251] Through the above authentication token / access request processing, host 2 can access the non-volatile memory 4 of memory system 3 when the user has legitimate permissions.
[0252] Next, refer to Figure 20 and Figure 21 The flowchart illustrates the sequence of steps of the processing performed in memory system 3.
[0253] Figure 21 This is a flowchart illustrating an example of the sequence of steps in the authentication token generation / sending process executed by the CPU 15 of the memory system 3. The authentication token generation / sending process is the process of generating a user authentication token and sending it to the host 2. The CPU 15 executes the authentication token generation / sending process accordingly when it receives an authentication token retrieval instruction from the host 2.
[0254] First, CPU 15 retrieves the user ID from the authentication token acquisition instruction (step S61). Next, CPU 15 generates a user authentication token (step S62). CPU 15 associates the generated user authentication token with the user ID and stores it in the user management table 421 (step S63). Specifically, CPU 15 sets the generated user authentication token in the entry containing the user ID within the user management table 421. Then, CPU 15 sends a response containing the user authentication token to host 2 (step S64) and ends the authentication token generation / sending process.
[0255] Through the above authentication token generation / sending process, the memory system 3 can generate a user authentication token corresponding to the user using the host 2, and provide the generated user authentication token to the host 2.
[0256] Figure 14This is a flowchart illustrating an example of the sequence of steps in the access control processing executed by the CPU 15 of the memory system 3. The access control processing is used to control access to the non-volatile memory 4 by the host 2, which is being used by the user, using access authentication tokens. When the CPU 15 receives an access instruction from the host 2, it executes the access control processing accordingly. Here, the access instruction is assumed to be either a read instruction or a write instruction.
[0257] Figure 14 The processing of steps S701 to S704 shown above is the same as described above. Figure 22 The steps S401 to S404 of the access control process are in the same order.
[0258] If the generated authentication token differs from the object access token (No in step S704), CPU 15 removes the registered user token from the user management table 421 (step S705). Then, CPU 15 sends a response indicating access failure to host 2 (step S706) and ends the access control process. That is, if CPU 15 receives an access instruction from host 2 containing an access token whose validity has not been confirmed, it does not process the access instruction.
[0259] The subsequent steps S707 to S709 and steps S712 to S714 are respectively referred to above. Figure 23 The steps S406 to S408 and steps S410 to S412 of the access control processing are in the same order.
[0260] After generating user data in step S709, CPU15 removes the registered user authentication token from user management table 421 (step S710). Then, CPU15 sends a successful access response and the decrypted user data to host 2 (step S711) and ends the access control process.
[0261] Additionally, after updating the logical physical address translation table 52 in step S714, CPU 15 removes the registered user authentication token from the user management table 421 (step S715). Then, CPU 15 sends a response indicating successful access to host 2 (step S716) and ends the access control process.
[0262] Through the access control processes described above, memory system 3 can use access authentication tokens to control host 2's access to non-volatile memory 4. Furthermore, memory system 3 will revoke the user authentication token each time it executes access control processing. Therefore, memory system 3 can enhance security related to access to non-volatile memory 4.
[0263] (Third Implementation)
[0264] In the first embodiment, the memory system 3 authenticates the user according to an authentication request instruction containing authentication information. If the user authentication is successful, the memory system 3 generates a user authentication token (registered user authentication token) associated with that user. The memory system 3 then sends the generated registered user authentication token to the host 2 according to the authentication token acquisition instruction. Furthermore, if the validity of the object access authentication token is confirmed, the memory system 3 executes processing according to the access instruction.
[0265] In the second embodiment, the memory system 3 does not receive authentication information from the host 2. Instead, it generates a user authentication token (registered user authentication token) according to the authentication token acquisition instruction and sends it to the host 2. Furthermore, similarly to the first embodiment, the memory system 3 performs processing according to the access instruction once the legitimacy of the object access authentication token is confirmed.
[0266] In contrast to the first and second embodiments, the memory system 3 in the third embodiment does not receive authentication information from the host 2, nor does it send user authentication tokens to the host 2. Upon receiving an access instruction containing a user ID and an access token (object access token), the memory system 3 uses the authentication information associated with the user ID to verify the validity of the object access token. Then, if the validity of the object access token is confirmed, the memory system 3 executes processing according to the access instruction.
[0267] The memory system 3 of the third embodiment has the same structure as the memory system 3 of the first and second embodiments. The step sequence for verifying the legitimacy of the object access authentication token included in the access instruction differs between the third embodiment and the first and second embodiments. The following mainly describes the differences from the first and second embodiments.
[0268] Figure 24 This is a sequence diagram illustrating examples of access actions in host 2 and memory system 3. An access action is an action used to allow a user with valid permissions to access a region assigned to that user, but to prohibit other users from accessing that region. Here, the example illustrates the case where the user currently using host 2 is the first user with valid permissions.
[0269] First, host 2 generates translated authentication information (hereinafter referred to as first translated authentication information) (D101) by performing a first operation on the authentication information of the first user (first authentication information). Host 2 then generates an access authenticator (hereinafter referred to as first access authenticator) (D102) by performing a second operation on the first translated authentication information and zone information. Zone information, for example, represents the starting address of the LBA range (object LBA range) that is the access object of host 2, and the size of the object LBA range. The first access authenticator is, for example, the XOR of the first translated authentication information and the starting address of the object LBA range. Alternatively, the first access authenticator may also be a hash value of data concatenated from the first translated authentication information and the starting address of the object LBA range.
[0270] Then, host 2 sends an access command requesting access to non-volatile memory 4 to memory system 3 (D103). The access command may include, for example, the first user ID, region information, and the first access authenticator.
[0271] The memory system 3 performs a verification process (D104) on the first access authentication token contained in the access instruction received from the host 2. This verification process verifies the validity of the first access authentication token.
[0272] Specifically, memory system 3 obtains the first user ID, region information, and first access authenticator from the access instruction. Memory system 3 obtains the translation authentication information (hereinafter referred to as the first registration translation authentication information) associated with the obtained first user ID from user management table 421. Furthermore, memory system 3 may also obtain the first registration translation authentication information associated with the region information representing the LBA range (region) containing the object LBA range from user management table 421 based on the region information obtained from the self-access instruction. Memory system 3 generates a verification authenticator (hereinafter referred to as the first verification authenticator) by performing a second operation using the region information and the first registration translation authentication information. The first verification authenticator is, for example, the XOR of the starting address of the object LBA range shown in the region information and the first registration translation authentication information. Alternatively, the first verification authenticator may also be a hash value of data concatenated from the starting address of the object LBA range and the first registration translation authentication information.
[0273] Then, the memory system 3 determines whether the legitimacy of the first access authentication token is confirmed based on whether the first access authentication token matches the first verification authentication token. Here, it is assumed that the legitimacy of the first access authentication token is confirmed if the first access authentication token matches the first verification authentication token. In addition, the memory system 3 may also determine whether the object LBA range is included in the LBA range that allows the first user to access.
[0274] If the validity of the first access authenticator is confirmed, the memory system 3 processes the access instruction (D105). Then, the memory system 3 sends a response to the access instruction to the host 2 (D106).
[0275] Through the above access actions, the memory system 3 can control access to be restricted to the first user with valid permissions and to the area only authorized by the first user.
[0276] Specifically, the memory system 3 does not receive authentication information from the host 2, nor does it send user authentication tokens to the host 2. This, for example, prevents the authentication request instruction containing authentication information from being eavesdropped on and thus leaking the authentication information, and prevents the response containing the user authentication token from being eavesdropped on and thus leaking the user authentication token.
[0277] Furthermore, the access authentication token included in the access instruction can be a first access authentication token obtained by performing a second operation using the first conversion authentication information and the region information. In this case, other users who do not have valid authentication information (here referring to the authentication information of the first user) cannot generate the correct first access authentication token. Therefore, the memory system 3 can prevent other users from accessing the region allocated to the first user.
[0278] Furthermore, even if the access command is eavesdropped, because the first access authenticator is generated using the first transformation authentication information and the region information, the memory system 3 can still prevent access to a region different from the region specified by the region information. That is, the memory system 3 can prevent replay attacks on any region using eavesdropped access commands.
[0279] Thus, even if one of the instructions and responses transmitted between the memory system 3 and the host 2 being used by the first user is eavesdropped on, the memory system 3 can prevent unauthorized access to the non-volatile memory 4 using the eavesdropped information.
[0280] The CPU 15 of the memory system 3 functions, for example, as an instruction / response processing unit 151 and an access control unit 154.
[0281] The instruction / response processing unit 151 receives an instruction issued by the host 2 via the host I / F 11. The instruction issued by the host 2 is, for example, an access instruction. The instruction / response processing unit 151 causes the access control unit 154 to perform processing according to the received instruction. Furthermore, the instruction / response processing unit 151 sends a response based on the result of processing according to the instruction to the host 2 via the host I / F 11.
[0282] When the instruction / response processing unit 151 receives an access instruction from the host 2, the access control unit 154 controls access to the non-volatile memory 4 accordingly. The access instruction may include, for example, a user ID (object user ID), region information indicating the LBA range of the object, and an access authentication code (object access authentication code).
[0283] Specifically, the access control unit 154 uses registration authentication information associated with the object user ID and region information to verify the legitimacy of the object access authentication token. When the legitimacy of the object access authentication token is confirmed, the access control unit 154 performs processing on the non-volatile memory 4 according to the access instruction. When the legitimacy of the object access authentication token is not confirmed, the access control unit 154 does not perform processing on the non-volatile memory 4 according to the access instruction.
[0284] The verification of the validity of object access authentication credentials is explained in more detail.
[0285] First, when the access control unit 154 receives an access instruction from the host 2, it accordingly retrieves the object user ID, zone information, and object access authentication code from the access instruction. The access control unit 154 then retrieves the registration authentication information associated with the object user ID from the user management table 421.
[0286] Access control unit 154 uses the obtained registration authentication information and the region information within the access instruction to verify the legitimacy of the object access authentication token. Specifically, access control unit 154 generates conversion authentication information (registration conversion authentication information) by performing a first operation on the registration authentication information. Alternatively, access control unit 154 may obtain registration conversion authentication information associated with the object user ID from user management table 421 instead of generating it. That is, registration conversion authentication information may be pre-generated and stored in user management table 421. Next, access control unit 154 generates a verification authentication token by performing a second operation on the registration conversion authentication information and the starting address of the LBA range shown in the region information.
[0287] Then, the access control unit 154 determines whether the validity of the object access authentication token is confirmed based on whether the generated verification authentication token matches the object access authentication token. That is, if the generated verification authentication token matches the object access authentication token, the access control unit 154 determines that the validity of the object access authentication token is confirmed. If the generated verification authentication token does not match the object access authentication token, the access control unit 154 determines that the validity of the object access authentication token is not confirmed.
[0288] Through the above structure, the instruction / response processing unit 151 and the access control unit 154 can allow users with legitimate permissions to access the non-volatile memory 4 and prohibit users without legitimate permissions from accessing the non-volatile memory 4. For more specific details regarding the operation of the instruction / response processing unit 151 and the access control unit 154, please refer to... Figure 23 and Figure 23 Please provide an explanation.
[0289] Figure 23 An example of a data read operation in memory system 3.
[0290] First, a read command is sent from host 2 to memory system 3. Figure 23 (1) In this context, host 2 generates converted authentication information by performing a first operation on the user's authentication information. Host 2 then generates an access authenticator (object access authenticator) by performing a second operation using the converted authentication information and the region information representing the LBA range of the object. Finally, host 2 sends a read instruction containing the user ID, region information, and object access authenticator to memory system 3.
[0291] In memory system 3, instruction / response processing unit 151 receives a read instruction from host 2 via host I / F 11. Instruction / response processing unit 151 transmits the received read instruction to access control unit 154. Figure 23 (2) in the middle.
[0292] Access control unit 154 retrieves conversion authentication information (register conversion authentication information) from user management table 421 based on the user ID contained in the read command. Figure 9 (3)). Specifically, the access control unit 154 determines the entry containing the user ID from the user management table 421. The access control unit 154 obtains the registration conversion authentication information from the conversion authentication information field of the determined entry.
[0293] The access control unit 154 uses the obtained registration conversion authentication information and the region information contained in the read instruction to verify the legality of the object access authentication token contained in the read instruction. Specifically, the access control unit 154 generates a verification authentication token by performing a second operation using the registration conversion authentication information and the region information. The generated verification authentication token is, for example, the XOR of the starting address of the object LBA range shown in the registration conversion authentication information and the region information. The access control unit 154 determines whether the legality of the object access authentication token is confirmed based on whether the generated verification authentication token matches the object access authentication token.
[0294] The following Figure 24 Actions (4) to (10) in the text are the same as those mentioned above. Figure 24The actions (4) to (10) in the data reading action are the same.
[0295] Through the above data reading operations, the memory system 3 can read user data from the user area 41 in the non-volatile memory 4 according to a read instruction containing a valid access authentication token and provide it to the host 2. Additionally, the memory system 3 can prevent the reading of user data according to a read instruction without a valid access authentication token.
[0296] Figure 24 An example of a data write operation in memory system 3.
[0297] First, a write command is sent from host 2 to memory system 3. Figure 24 (1) Specifically, host 2 generates transformed authentication information by performing a first operation on the user's authentication information. Host 2 generates an access authenticator (object access authenticator) by performing a second operation using the transformed authentication information and the region information representing the LBA range of the object. Then, host 2 sends a write instruction containing the user ID, region information, and object access authenticator to memory system 3.
[0298] In memory system 3, instruction / response processing unit 151 receives write instructions from host 2 via host I / F 11. Instruction / response processing unit 151 transmits the received write instructions to access control unit 154. Figure 24 (2) in the middle.
[0299] Access control unit 154 retrieves conversion authentication information (register conversion authentication information) from user management table 421 based on the user ID contained in the write command. Figure 10 (3)). Specifically, the access control unit 154 determines the entry containing the user ID from the user management table 421. The access control unit 154 obtains the registration conversion authentication information from the conversion authentication information field of the determined entry.
[0300] The access control unit 154 uses the obtained registration conversion authentication information and the region information contained in the write instruction to verify the validity of the object access authentication token contained in the write instruction. Specifically, the access control unit 154 generates a verification authentication token by performing a second operation using the registration conversion authentication information and the region information. The generated verification authentication token is, for example, the XOR of the starting address of the object LBA range shown in the registration conversion authentication information and the region information. The access control unit 154 determines whether the validity of the object access authentication token is confirmed based on whether the generated verification authentication token matches the object access authentication token.
[0301] The following Figure 25 The actions in (4) to (11) are the same as those mentioned above. Figure 25The actions (4) to (11) in the data writing action are the same.
[0302] Through the above data write operations, the memory system 3 can write user data to the user area 41 in the non-volatile memory 4 according to write instructions containing valid access authentication characters. Additionally, the memory system 3 can prevent the writing of user data according to write instructions without valid access authentication characters.
[0303] Here, refer to Figure 26 The flowchart illustrates the sequence of processes performed in host 2.
[0304] Figure 26 This is a flowchart illustrating an example of the steps involved in an access request process executed by the CPU 21 of host 2. The access request process involves requesting access to non-volatile memory 4 from the memory system 3. The CPU 21 executes the access request process, for example, when access to non-volatile memory 4 is required.
[0305] First, CPU 21 generates converted authentication information by performing a first operation on the user's authentication information (step S81). Next, CPU 21 generates an access authenticator by performing a second operation using the converted authentication information and region information representing the LBA range of the object (step S82). Then, CPU 21 sends an access instruction containing the user ID, region information, and access authenticator to the memory system 3 (step S83) and ends the access request processing.
[0306] Through the above access request processing, host 2 can access the non-volatile memory 4 of memory system 3 when the user has legitimate permissions.
[0307] Next, refer to Figure 14 The flowchart illustrates the sequence of steps of the processing performed in memory system 3.
[0308] This is a flowchart illustrating an example of the sequence of steps in the access control processing executed by the CPU 15 of the memory system 3. The access control processing is used to control access to the non-volatile memory 4 by the host 2, which is being used by the user, using access authentication tokens. When the CPU 15 receives an access instruction from the host 2, it executes the access control processing accordingly. Here, the access instruction is assumed to be either a read instruction or a write instruction.
[0309] First, CPU 15 obtains the user ID, region information representing the LBA range of the object, and access authentication token (object access authentication token) from the access instruction (step S901). CPU 15 obtains the translation authentication information associated with the obtained user ID from the user management table 421 (step S902). CPU 15 performs a second operation using the region information and translation authentication information to generate a verification authentication token (step S903). Then, CPU 15 determines whether the generated verification authentication token is consistent with the object access authentication token (step S904). That is, CPU 15 determines whether the legality of the object access authentication token is confirmed.
[0310] The subsequent steps S905 to S913 are the same as described above. The steps S405 to S413 of the access control process are in the same order.
[0311] Through the above access control processing, the memory system 3 can use access authentication tokens to control the host 2's access to the non-volatile memory 4. Specifically, if the validity of the access authentication token included in the access instruction is confirmed, the memory system 3 executes the processing according to the access instruction. Conversely, if the validity of the access authentication token included in the access instruction is not confirmed, the memory system 3 does not execute the processing according to the access instruction. Thus, the memory system 3 can allow processing according to access instructions containing valid access authentication tokens, but prohibits processing according to access instructions without valid access authentication tokens. Therefore, the memory system 3 can enhance the security related to access to the non-volatile memory 4.
[0312] In summary, according to the first to third embodiments, security related to access to the storage device can be enhanced.
[0313] The authentication processing unit 152 manages the first authentication information (registration authentication information) associated with the first user ID. The authentication token management unit 153 generates a first authentication token (registered user authentication token) associated with the first user ID. The instruction / response processing unit 151 and the authentication token management unit 153 send the first authentication token to the host 2. The instruction / response processing unit 151 receives an access instruction containing the first user ID and a second authentication token (object access authentication token). The access control unit 154 verifies the validity of the second authentication token using at least the first authentication information and the first authentication token. When the validity of the second authentication token is confirmed, the access control unit 154 performs the first processing on the non-volatile memory 4 according to the access instruction. When the validity of the second authentication token is not confirmed, the access control unit 154 does not perform the first processing according to the access instruction.
[0314] Through the above structure, memory system 3, based on the verification result of the access authentication token contained in the access instruction, allows users with legitimate permissions to access non-volatile memory 4, but prohibits users without legitimate permissions from accessing non-volatile memory 4. Therefore, memory system 3 can enhance the security related to access to non-volatile memory 4.
[0315] The various functions described in embodiments 1 to 3 can also be implemented by circuits (processing circuits). Examples of processing circuits include programmed processors such as central processing units (CPUs). These processors execute the described functions by executing computer programs (command groups) stored in memory. The processor can also be a microprocessor containing electrical circuitry. Examples of processing circuits also include digital signal processors (DSPs), application-specific integrated circuits (ASICs), microcontrollers, controllers, and other electrical circuit components. Other components besides the CPU described in this embodiment can also be implemented by processing circuits.
[0316] The foregoing has described several embodiments of the present invention, but these embodiments are provided as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other ways, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, and are included within the scope of the invention as described in the claims and its equivalents.
[0317] [Explanation of Symbols]
[0318] 1: Information Processing System
[0319] 2: Host
[0320] 3: Memory System
[0321] 4: Non-volatile memory
[0322] 5: Dynamic Random Access Memory
[0323] 6: Controller
[0324] 11: Host Interface
[0325] 12: Dynamic Random Access Memory Interface
[0326] 13: Memory Interface
[0327] 14: Encryption Circuit
[0328] 15: Central Processing Unit
[0329] 21: Central Processing Unit
[0330] 22: Random Access Memory
[0331] 23: Input device
[0332] 41: User Area
[0333] 42: System Area
[0334] 421: User Management Table
[0335] 422: Key
[0336] 51: Firmware
[0337] 52: Logical-Physical Address Translation Table
[0338] 151: Command / Response Processing Unit
[0339] 152: Authentication Processing Department
[0340] 153: Authentication Symbol Management Department
[0341] 154: Access Control Department
[0342] 45: Logical Address Space
[0343] 451: Part 1 Area
[0344] 452: Part 2 area.
Claims
1. A memory system comprising: a nonvolatile memory; and a controller electrically connected to the nonvolatile memory and capable of communicating with a host; and the controller configured to: manage first authentication information associated with first user identification information, generate a first authentication token associated with the first user identification information, transmit the first authentication token to the host, receive a first access instruction including the first user identification information and a second authentication token, verify the second authentication token for validity using at least the first authentication information and the first authentication token, perform a first process on the nonvolatile memory in accordance with the first access instruction when the second authentication token is confirmed for validity, and not perform the first process in accordance with the first access instruction when the second authentication token is not confirmed for validity.
2. The memory system according to claim 1, wherein the first access instruction further includes area information indicating a logical address range to be accessed in accordance with the first access instruction; and the controller is configured to verify the second authentication token for validity using the first authentication information, the first authentication token, and the area information.
3. The memory system according to claim 1, wherein the controller is configured to generate the first authentication token including a random number.
4. The memory system according to claim 1, wherein the controller is further configured to: receive an authentication request instruction including the first user identification information and second authentication information from the host, generate the first authentication token in accordance with when the second authentication information coincides with the first authentication information, receive an authentication token acquisition instruction including the first user identification information from the host, and transmit a response to the authentication token acquisition instruction including the first authentication token to the host.
5. The memory system according to claim 4, wherein the controller is further configured to: transmit a response to the authentication request instruction including information indicating that an authentication process using the second authentication information was successful and not including the first authentication token to the host in accordance with when the second authentication information coincides with the first authentication information.
6. The memory system according to claim 1, wherein the first access instruction further includes area information indicating a logical address range to be accessed in accordance with the first access instruction; and the controller is further configured to: generate first converted authentication information by performing a first arithmetic process on the first authentication information, generate a third authentication token by performing a second arithmetic process using the first converted authentication information, the first authentication token, and the area information, determine that the second authentication token is confirmed for validity when the second authentication token coincides with the third authentication token, and determine that the second authentication token is not confirmed for validity when the second authentication token does not coincide with the third authentication token.
7. The memory system according to claim 6, wherein the area information includes at least a start address of the logical address range, and the first authentication token includes at least the start address of the logical address range. The controller is configured to generate the third authentication symbol by performing the first operation processing including an operation processing using a first hash function on the first conversion authentication information, the first authentication symbol, and the start address.
8. The memory system according to claim 7, wherein The controller is configured to perform the first operation processing including an operation processing using a first hash function.
9. The memory system according to claim 8, wherein The controller is configured to perform an exclusive-OR operation processing or the second operation processing including an operation processing using a second hash function.
10. The memory system according to claim 1, wherein The controller is further configured to: receive an authentication symbol acquisition instruction including the first user identification information from the host, generate the first authentication symbol in accordance with the received authentication symbol acquisition instruction and transmit the first authentication symbol to the host, receive a second access instruction including the first user identification information and a second authentication symbol, verify the legality of the second authentication symbol using the first authentication information and the first authentication symbol, and perform a second processing on the nonvolatile memory in accordance with the second access instruction when the legality of the second authentication symbol is confirmed, not perform the second processing when the legality of the second authentication symbol is not confirmed.
11. The memory system according to claim 10, wherein The second authentication symbol is generated using at least second authentication information associated with the first user identification information, and The authentication symbol acquisition instruction does not include the second authentication information.
12. The memory system according to claim 10, wherein The controller is further configured to discard the first authentication symbol upon determining either of the legality of the second authentication symbol is confirmed and the legality of the second authentication symbol is not confirmed.
13. A memory system, comprising: a nonvolatile memory; and a controller electrically connected to the nonvolatile memory and capable of communicating with a host; and The controller is configured to: manage first authentication information associated with first user identification information, receive a first access instruction including the first user identification information, area information, and a fourth authentication symbol from the host, verify the legality of the fourth authentication symbol using at least the first authentication information and the area information, perform a first processing on the nonvolatile memory in accordance with the first access instruction when the legality of the fourth authentication symbol is confirmed, not perform the first processing in accordance with the first access instruction when the legality of the fourth authentication symbol is not confirmed.
14. The memory system according to claim 13, wherein The controller is configured to: generate a fifth authentication symbol by performing an operation processing using at least the first authentication information and the area information, determine that the legality of the fourth authentication symbol is confirmed when the fourth authentication symbol coincides with the fifth authentication symbol, determine that the legality of the fourth authentication symbol is not confirmed when the fourth authentication symbol does not coincide with the fifth authentication symbol.
15. The memory system according to claim 14, wherein The region information includes at least a start address of a logical address range to be accessed according to the first access instruction, and The controller is configured to generate the fifth authentication symbol by performing the operation processing on the first authentication information and the start address.
16. The memory system according to any one of claims 1 to 15, wherein The first processing includes a processing of reading out data from the nonvolatile memory or a processing of writing data into the nonvolatile memory, and The controller is configured to transmit a response to the first access instruction indicating that the first access instruction is not executed to the host in a case where the first processing is not executed according to the first access instruction.
17. The memory system according to claim 16, wherein The controller further manages a key associated with the first user identification information, and The first processing includes a processing of reading out encrypted data from the nonvolatile memory and decrypting the encrypted data with the key or a processing of generating encrypted data by encrypting data to be written into the nonvolatile memory with the key and writing the encrypted data into the nonvolatile memory.