Main controller chip, solid-state drive and its key management method, computer storage media

By dividing the main control chip into a business subsystem and a security subsystem, secure key management is achieved, solving the problem of easy key leakage when solid-state drives interact with the host, and improving data security.

CN115098876BActive Publication Date: 2026-03-06YEESTOR MICROELECTRONICS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210765347.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-29
Publication Date
2026-03-06
Estimated Expiration
2042-06-29

AI Technical Summary

Technical Problem

When existing solid-state drives interact with the host, the key can be easily leaked, affecting data security.

Method used

The main control chip is divided into a business subsystem and a security subsystem. The business subsystem is responsible for key usage, while the security subsystem is responsible for key management. Key generation, encryption, decryption, and deletion are implemented through an interrupt mechanism to ensure that keys are transmitted only in ciphertext form.

Benefits of technology

This reduces the possibility of key leakage and improves the data security of solid-state drives.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115098876B_ABST
    Figure CN115098876B_ABST
Patent Text Reader

Abstract

This invention discloses a main control chip, a solid-state drive (SSD), a key management method thereof, and a computer storage medium, relating to the field of memory technology. The main control chip includes: a business subsystem, comprising a business core processor, shared memory, and key volatile memory, used for using keys; a security subsystem, communicatively connected to the business subsystem, comprising a security core processor, a true random number generator, a low-speed encryption / decryption engine, and a one-time programmable memory, used for key management; a configuration register, communicatively connected to the business subsystem; and a high-speed encryption / decryption engine, communicatively connected to both the business subsystem and the configuration register. This invention adds a security subsystem to the main control chip, thereby separating key management permissions and reducing the possibility of key leakage.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of memory technology, and in particular to a main control chip, a solid-state drive and its key management method, and a computer storage medium. Background Technology

[0002] Solid-state drives (SSDs) are external computer storage devices based on permanent or non-permanent storage. They offer advantages such as high speed, low power consumption, excellent shock resistance, and high reliability. They are widely used not only in portable computers but also in specialized fields such as military, automotive, industrial control, and aviation navigation equipment. With the rapid development and widespread adoption of the internet, and the emergence of various security threats such as viruses and hackers, coupled with the increasing number of personal information and data leaks, the data security of SSDs has attracted widespread attention.

[0003] Currently, when a solid-state drive (SSD) interacts with a host, if the host needs to use the encryption key of a certain partition, the core processor in the SSD's controller chip will directly parse the encryption key to obtain the plaintext key. This process may be monitored by other applications on the host, leading to key leakage and affecting the data security of the SSD.

[0004] In summary, how to strengthen the secure management of keys during the interaction between solid-state drives and the host, thereby reducing the possibility of key leakage, has become a pressing technical problem that needs to be solved in the industry. Summary of the Invention

[0005] The main objective of this invention is to provide a main control chip, a solid-state drive (SSD), a key management method thereof, and a computer storage medium, aiming to enhance the security management of keys when the SSD interacts with external systems, thereby reducing the possibility of key leakage.

[0006] To achieve the above objectives, the present invention provides a main control chip, the main control chip comprising:

[0007] Furthermore, a business subsystem, comprising a business core processor, shared memory, and key volatile memory, is used to utilize the key;

[0008] A security subsystem is communicatively connected to the business subsystem. The security subsystem includes a security core processor, a true random number generator, a low-speed encryption / decryption engine, and a one-time programmable memory. The security subsystem is used to manage keys.

[0009] A configuration register, which is communicatively connected to the service subsystem;

[0010] A high-speed encryption / decryption engine, which is communicatively connected to the business subsystem and the configuration register.

[0011] In addition, to achieve the above objectives, the present invention also provides a solid-state drive, the solid-state drive including a key non-volatile memory and a main control chip as described above, the key non-volatile memory being communicatively connected to the main control chip, and the key non-volatile memory being used to store key ciphertext.

[0012] Furthermore, to achieve the above objectives, the present invention also provides a key management method for a solid-state drive (SSD), characterized in that the key management method for the SSD is applied to the SSD described above, and the key management method for the SSD includes:

[0013] When the business core processor receives a data encryption key generation command, the business core processor sends a data encryption key generation interrupt to the security core processor according to the data encryption key generation command;

[0014] The security core processor generates and encrypts a key according to the data encryption key generation interrupt, thereby obtaining the data encryption key ciphertext.

[0015] The secure core processor writes the ciphertext of the data encryption key into shared memory;

[0016] The security core processor sends a key generation completion interrupt to the service core processor;

[0017] The business core processor writes the ciphertext of the data encryption key into the key non-volatile memory according to the key generation completion interrupt.

[0018] Further, the step of the secure core processor generating and encrypting a key according to the data encryption key generation interrupt to obtain the ciphertext of the data encryption key includes:

[0019] The security core processor generates an interrupt based on the data encryption key to initialize the low-speed encryption / decryption engine;

[0020] The secure core processor generates a key encryption key through the low-speed encryption / decryption engine;

[0021] The secure core processor generates a data encryption key using a true random number generator;

[0022] The secure core processor calls the low-speed encryption / decryption engine to encrypt the data encryption key using the key encryption key, thereby obtaining the ciphertext of the data encryption key.

[0023] Furthermore, after the step of the business core processor writing the ciphertext of the data encryption key into the key non-volatile memory according to the key generation completion interrupt, the key management method of the state solid-state drive further includes:

[0024] When the business core processor receives a data encryption key loading command, the business core processor writes the ciphertext of the data encryption key in the key non-volatile memory into the shared memory according to the data encryption key loading command;

[0025] The business core processor sends a data encryption key loading interrupt to the security core processor;

[0026] The secure core processor decrypts the ciphertext of the data encryption key according to the data encryption key loading interrupt to obtain the plaintext of the data encryption key;

[0027] The security core processor writes the plaintext of the data encryption key into the key volatile memory;

[0028] The security core processor sends a data encryption key loading completion interrupt to the business core processor.

[0029] Further, the step of the secure core processor decrypting the ciphertext of the data encryption key according to the data encryption key loading interrupt to obtain the plaintext of the data encryption key includes:

[0030] The security core processor initializes the low-speed encryption / decryption engine based on the data encryption key loading interrupt;

[0031] The secure core processor generates a key encryption key through the low-speed encryption / decryption engine;

[0032] The secure core processor reads the ciphertext of the data encryption key from the shared memory;

[0033] The secure core processor calls the low-speed encryption / decryption engine to decrypt the ciphertext of the data encryption key using the key encryption key, thereby obtaining the plaintext of the data encryption key.

[0034] Furthermore, the low-speed encryption / decryption engine includes: a symmetric encryption engine and a fast hash engine;

[0035] The step of the secure core processor generating a key encryption key through the low-speed encryption / decryption engine includes:

[0036] The secure core processor calls the symmetric encryption engine to read the hardware-protected key preset in the secure subsystem;

[0037] The secure core processor reads the preset seed ciphertext from the one-time programmable memory and calls the symmetric encryption engine to decrypt the preset seed ciphertext using the preset hardware-protected key to obtain the seed plaintext.

[0038] The secure core processor calls the fast hash engine to calculate a hash value between the seed plaintext and a randomly specified seed set, and generates a key encryption key based on the hash value.

[0039] Furthermore, after the step of the security core processor sending a data encryption key loading completion interrupt to the service core processor, the key management method of the solid-state drive further includes:

[0040] When the service core processor receives a data encryption key usage command, the service core processor changes the state of a specified bit in the configuration register according to the data encryption key usage command;

[0041] The high-speed encryption and decryption engine reads the data encryption key corresponding to the state change in the specified bit in the configuration register as the encryption and decryption key from the key volatile memory.

[0042] The high-speed encryption / decryption engine initiates hardware encryption of data based on the encryption / decryption key.

[0043] Furthermore, after the step of the security core processor sending a data encryption key loading completion interrupt to the service core processor, the key management method of the solid-state drive further includes:

[0044] When the service core processor receives a data encryption key deletion command, the service core processor deletes the data encryption key ciphertext from the key non-volatile memory according to the data encryption key deletion command;

[0045] The business core processor sends a data encryption key deletion interrupt to the security core processor;

[0046] The security core processor deletes the plaintext of the data encryption key from the key volatile memory according to the data encryption key deletion interrupt;

[0047] The security core processor sends a data encryption key deletion completion interruption to the business core processor.

[0048] In addition, to achieve the above objectives, the present invention also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the key management method as described above.

[0049] This invention proposes a main control chip, a solid-state drive, a key management method thereof, and a computer storage medium. The main control chip includes a business subsystem, which comprises a business core processor, shared memory, and key volatile memory, used for using keys; a security subsystem, communicatively connected to the business subsystem, which includes a security core processor, a true random number generator, a low-speed encryption / decryption engine, and a one-time programmable memory, used for key management; a configuration register, communicatively connected to the business subsystem; and a high-speed encryption / decryption engine, communicatively connected to both the business subsystem and the configuration register.

[0050] Compared to traditional SSD key management schemes, this invention separates key management permissions into a business subsystem with key usage permissions and a security subsystem with key management permissions within the main control chip. The SSD containing this main control chip interacts with the host through the business subsystem. The business subsystem sends different interrupts to the security subsystem based on different key operation commands received. The security subsystem then performs key generation, encryption, decryption, and deletion operations based on the different interrupts, thereby strengthening the security management of keys and reducing the possibility of key leakage. Attached Figure Description

[0051] Figure 1 This is a schematic diagram of the structure of an embodiment of a main control chip according to the present invention;

[0052] Figure 2 This is a schematic diagram of the structure of an embodiment of a solid-state drive according to the present invention;

[0053] Figure 3 This is a flowchart illustrating the first embodiment of a key management method for a solid-state drive according to the present invention.

[0054] Figure 4 This is a flowchart illustrating a second embodiment of a key management method for a solid-state drive according to the present invention;

[0055] Figure 5 A flowchart illustrating a third embodiment of a key management method for a solid-state drive according to the present invention;

[0056] Figure 6 This is a flowchart illustrating the fourth embodiment of a key management method for a solid-state drive according to the present invention.

[0057] The objectives, features, and advantages of this invention will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation

[0058] It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.

[0059] This invention provides a main control chip, referring to... Figure 1 , Figure 1 This is a schematic diagram of the structure of an embodiment of a main control chip according to the present invention.

[0060] In this embodiment, the main control chip includes:

[0061] A business subsystem, comprising a business core processor, shared memory, and key volatile memory, wherein the business subsystem is used to utilize the key;

[0062] A security subsystem is communicatively connected to the business subsystem. The security subsystem includes a security core processor, a true random number generator, a low-speed encryption / decryption engine, and a one-time programmable memory. The security subsystem is used to manage keys.

[0063] A configuration register, which is communicatively connected to the service subsystem;

[0064] A high-speed encryption / decryption engine, which is communicatively connected to the business subsystem and the configuration register.

[0065] In this embodiment, the main control chip can be the PCIe Gen4x4 NVMe 1.4 SSD controller YS9301. The YS9301 is an industry-leading PCIe Gen4 SSD controller designed to provide excellent performance, reliability, and power efficiency, suitable for various PC client, gaming, and edge storage applications. The YS9301 supports DRAM-less (Dynamic Random Access Memory) architectures, enabling low-power and cost-effective BOM (Byte Order Mark) designs. It is well-suited for M.2 2230, 2242, 2280, and BGA (Ball Grid Array) SSD form factors. Support for PCIe Gen4x4 and Gen4x2 provides implementation flexibility while ensuring maximum performance of NAND (computer flash memory) channels operating at speeds up to 1200MT / s. The YS9301 employs a 4K-code-length LDPC (Low Density Parity Check Code) engine, enabling it to handle the highest levels of error correction capabilities for low latency, Quality of Service (QoS), and endurance. Furthermore, the YS9301 supports TCG (Trusted Computing Group) standards, AES (Advanced Encryption Standard), SHA (Secure Hash Algorithm), SM4 block cipher algorithm, secure boot, and secure firmware updates to meet the latest and most stringent industry requirements. This controller chip can also be designated as the YS9203 PCIe Gen3x4 NVMe 1.3 SSD controller. The YS9203 is a PCIe Gen3x4 SSD controller suitable for flagship consumer and light enterprise applications. Thanks to hardware and firmware optimizations, this controller fully leverages the performance of NVMe 1.3. This controller provides 4 lanes and 8 NAND flash channels, supports 3D MLC (Multi-Level Cell) / TLC (Trinary-Level Cell) / QLC (Quad-Level Cell) NAND, and uses LDPC and Enhance RAID (Redundant Arrays of Independent Disks) to enhance data reliability and durability.The main control chip can also be a SATA3 SSD controller, such as YS985 / YS98HP / YS98HC. YS9085 / YS9082HP / YS9082HC are high-reliability and high-performance SATA3.2 solid-state drive controller chips that can help customers achieve cost-effective consumer and industrial-grade solid-state drive solutions, including 2.5-inch solid-state drives, Slim SATA, mSATA, M.2 and Micro SSD form factors, suitable for desktop computers, laptops and other embedded applications.

[0066] It should be noted that in this embodiment, access permissions are designed for each part of the main control chip. Specifically, the security subsystem has read, write, and erase permissions for the key volatile memory; the configuration register has usage permissions for the key volatile memory; and the service subsystem has read and write permissions for the key non-volatile memory and write permissions for the configuration register. The service core processor and the security core processor can be two independent CPUs (central processing units). The shared memory and the key volatile memory can be RAM (Random Access Memory), and the key non-volatile memory can be Flash memory (FLASH EEPROM) or ROM (Read Only Memory). The low-speed encryption / decryption engine is a hardware design module within the security subsystem, while the high-speed encryption / decryption engine is a hardware design module within the main control chip, independent of both the security and business subsystems. Both operate independently of system resources, implementing encryption and decryption through hardware, resulting in faster encryption speeds compared to software encryption. However, differences in the number of cores and manufacturing processes lead to variations in their encryption / decryption speeds. Theoretically, the low-speed encryption / decryption engine has a speed of 500M / s, while the high-speed encryption / decryption engine has a speed of 16G / s.

[0067] In this embodiment, the main control chip only interacts with the external host through the business subsystem. When the external host initiates a key-related operation request (such as encrypting or decrypting a partition) to the business subsystem, since the business subsystem only has the right to use the key, if the business subsystem does not have the key stored in advance, it cannot respond to the key-related operation request initiated by the external host through the business subsystem alone. The business subsystem needs to send an interrupt message to the security subsystem so that the security subsystem can cooperate with the business subsystem to complete the key generation and loading. Only then can the business subsystem enable the high-speed encryption and decryption engine to complete the hardware encryption function by configuring the corresponding configuration register. In other words, during the entire process of interacting with the external host, the business subsystem can only contact the key ciphertext and specify the storage location of the key plaintext. Then, it starts the high-speed encryption and decryption engine in the main control chip through the configuration register to obtain the key plaintext as the encryption and decryption key to complete the encryption request of the external host. The business subsystem itself will not read the key plaintext, so there is no possibility of key leakage.

[0068] Compared to traditional main control chips that handle external interactions and key management through business systems, this embodiment divides the main control chip into a business subsystem with key usage permissions and a security subsystem with key management permissions, thus separating key management permissions. The main control chip interacts with the host only through the business subsystem. The business subsystem sends different interrupts to the security subsystem based on different key operation commands received. The security subsystem then performs key generation, encryption, decryption, and deletion operations based on the different interrupts, strengthening the security management of keys and reducing the possibility of key leakage.

[0069] Furthermore, embodiments of the present invention also propose a solid-state drive, referring to... Figure 2 , Figure 2 This is a schematic diagram of the structure of an embodiment of a solid-state drive according to the present invention.

[0070] In this embodiment, the solid-state drive includes a key non-volatile memory and a main control chip as described above. The key non-volatile memory is communicatively connected to the main control chip and is used to store key ciphertext. In this embodiment, the key non-volatile memory can be NAND Flash (a type of flash memory), which has advantages such as high performance, non-volatility, and low power consumption. Those skilled in the art will understand that... Figure 2 The solid-state drive structure shown does not constitute a limitation on the solid-state drive and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0071] The solid-state drive in this embodiment includes the main control chip as described above. The specific embodiments and technical effects of the solid-state drive can be derived by referring to the various embodiments and technical effects of the main control chip described above, and will not be repeated here.

[0072] Based on the aforementioned main control chip and solid-state drive, various embodiments of the key management method for solid-state drives of the present invention are proposed.

[0073] Reference Figure 3 , Figure 3 This is a flowchart illustrating a first embodiment of a key management method for a solid-state drive (SSD) according to the present invention. In this embodiment, the key management method for the SSD is applied to the SSD described above, and the key management method for the SSD includes:

[0074] Step S10: When the service core processor receives the data encryption key generation command, the service core processor sends a data encryption key generation interrupt to the security core processor according to the data encryption key generation command.

[0075] Step S20: The security core processor generates and encrypts a key according to the data encryption key generation interrupt to obtain the data encryption key ciphertext.

[0076] Step S30: The secure core processor writes the ciphertext of the data encryption key into shared memory;

[0077] Step S40: The security core processor sends a key generation completion interrupt to the service core processor;

[0078] In step S50, the service core processor writes the ciphertext of the data encryption key into the key non-volatile memory according to the key generation completion interrupt.

[0079] It should be noted that this embodiment provides the process of key generation and storage in the main control chip of the solid-state drive. At this time, the solid-state drive is in a state of interaction with an external host. The data encryption key generation command is issued by the external host. The external host can be an industrial control computer when the solid-state drive or the main control chip is in mass production, or it can be a mobile terminal, data storage control terminal, PC or portable computer installed on the solid-state drive.

[0080] In this embodiment, the security subsystem generates random numbers as keys using a true random number generator (which contains some engines for encryption). These keys are then symmetrically encrypted and given to the business subsystem to be written into the designated key non-volatile memory.

[0081] In one feasible embodiment, step S20 described above includes:

[0082] Step S21: The security core processor generates an interrupt based on the data encryption key to initialize the low-speed encryption / decryption engine;

[0083] Step S22: The secure core processor generates a key encryption key through the low-speed encryption / decryption engine;

[0084] Step S23: The secure core processor generates a data encryption key using a true random number generator;

[0085] In step S24, the secure core processor calls the low-speed encryption / decryption engine to encrypt the data encryption key using the key encryption key, thereby obtaining the ciphertext of the data encryption key.

[0086] In one feasible embodiment, the low-speed encryption / decryption engine includes: a symmetric encryption engine and a fast hash engine; step S22 above includes:

[0087] Step S221: The secure core processor calls the symmetric encryption engine to read the hardware-protected key preset in the secure subsystem;

[0088] In step S222, the secure core processor reads the preset seed ciphertext from the one-time programmable memory and calls the symmetric encryption engine to decrypt the preset seed ciphertext using the preset hardware-protected key to obtain the seed plaintext.

[0089] In step S223, the secure core processor calls the hash fast engine to calculate the hash value between the seed plaintext and the randomly specified seed set, and generates a key encryption key based on the hash value.

[0090] It should be noted that the preset hardware-protected key is a key pre-stored in the security subsystem and recorded in the hardware register. The preset seed ciphertext is encrypted data pre-written into a one-time programmable memory and obtained by encrypting the seed plaintext with the preset hardware-protected key. The seed plaintext can be a binary value of arbitrary length, and the randomly specified seed set is a set of several binary values ​​of arbitrary length.

[0091] As an example, the generation and storage process of DEK (Data Encryption Key) is as follows: The HOST (external host) sends a DEK generation command to the business core processor (i.e., the CPU in the business subsystem); the business core processor sends a data encryption key generation interrupt request to the security core processor (i.e., the CPU in the security subsystem); the security core processor starts a TRNG (True Random Number Generator) to generate the DEK; the security core processor starts SKE to encrypt the DEK, obtaining the ciphertext of the DEK (i.e., the data encryption key ciphertext); the security core processor writes the ciphertext of the DEK into shared memory; the security core processor sends a data encryption key generation completion interrupt to the business core processor; the business core processor writes the DEK ciphertext from the shared memory to external non-volatile memory. This completes one generation and storage process of DEK.

[0092] In addition, the low-speed encryption and decryption engine in this embodiment also includes PKE (public-key encryption engine), also known as asymmetric key encryption. In addition to symmetric encryption, this embodiment can also use asymmetric encryption to encrypt the key.

[0093] This embodiment provides a key management method for solid-state drives (SSDs), specifically a key generation and storage method for SSDs. The SSD interacts with the host through a business core processor in the business subsystem. When the business core processor receives a data encryption key generation command, it sends a data encryption key generation interrupt to the security core processor according to the received command. The security core processor then performs key generation and encryption operations according to the interrupt to obtain the ciphertext of the data encryption key. The generated ciphertext is then written to a designated non-volatile key memory by the business core processor for use when needed. This strengthens the security management of the key and reduces the possibility of key leakage.

[0094] Furthermore, refer to Figure 4 The present invention provides a second embodiment of a key management method for solid-state drives, based on the above. Figure 3 In the embodiment shown, after step S50, the key management method for a solid-state drive of the present invention further includes:

[0095] Step A10: When the service core processor receives a data encryption key loading command, the service core processor writes the ciphertext of the data encryption key in the key non-volatile memory into the shared memory according to the data encryption key loading command.

[0096] Step A20: The service core processor sends a data encryption key loading interrupt to the security core processor;

[0097] Step A30: The security core processor decrypts the ciphertext of the data encryption key according to the data encryption key loading interrupt to obtain the plaintext of the data encryption key;

[0098] Step A40: The security core processor writes the plaintext of the data encryption key into the key volatile memory;

[0099] In step A50, the security core processor sends a data encryption key loading completion interrupt to the service core processor.

[0100] It should be noted that this embodiment provides the process of key loading by the main controller chip in the solid-state drive. Therefore, this embodiment can only be implemented after the key has been generated and stored. However, it does not mean that key loading must be performed after the key has been generated and stored.

[0101] In this embodiment, the business subsystem reads the ciphertext of the key from the non-volatile key memory and sends it to the security subsystem. The security subsystem decrypts the ciphertext and writes the plaintext of the key into the volatile key memory specified by the business subsystem.

[0102] In one feasible embodiment, step A30 above includes:

[0103] Step A31: The security core processor initializes the low-speed encryption / decryption engine according to the data encryption key loading interrupt;

[0104] Step A32: The secure core processor generates a key encryption key through the low-speed encryption / decryption engine;

[0105] Step A33: The secure core processor reads the ciphertext of the data encryption key from the shared memory;

[0106] In step A34, the secure core processor calls the low-speed encryption / decryption engine to decrypt the ciphertext of the data encryption key using the key encryption key, thereby obtaining the plaintext of the data encryption key.

[0107] In one feasible embodiment, the low-speed encryption / decryption engine includes: a symmetric encryption engine and a fast hash engine; step A32 above includes:

[0108] Step A321: The secure core processor calls the symmetric encryption engine to read the hardware-protected key preset in the secure subsystem;

[0109] Step A322: The secure core processor reads the preset seed ciphertext from the one-time programmable memory and calls the symmetric encryption engine to decrypt the preset seed ciphertext using the preset hardware-protected key to obtain the seed plaintext.

[0110] In step A323, the secure core processor calls the hash fast engine to calculate the hash value between the seed plaintext and the randomly specified seed set, and generates a key encryption key based on the hash value.

[0111] As an example, the DEK loading process is as follows: The HOST sends a DEK loading command to the business core processor; the business core processor loads the DEK ciphertext from external non-volatile memory into shared memory; the business core processor sends a data encryption key loading interrupt request to the security core processor; the security core processor starts SKE to decrypt the DEK, obtaining the plaintext of the DEK (i.e., the plaintext of the data encryption key); the security core processor writes the DEK plaintext into the key slot (i.e., the key volatile memory) of the business subsystem; the security core sends a data encryption key loading completion interrupt to the business core. This completes one DEK loading process.

[0112] This embodiment provides a key management method for solid-state drives (SSDs), specifically a key loading method for SSDs. The SSD interacts with the host through a business core processor in the business subsystem. When the business core processor receives a data encryption key loading command, it writes the ciphertext of the data encryption key from the non-volatile key memory into the shared memory according to the received command. Then, it sends a data encryption key loading interrupt to the security core processor, causing the security core processor to perform key decryption on the existing ciphertext to obtain the plaintext of the data encryption key. The generated plaintext of the data encryption key is then written into the volatile key memory for use when needed, thus strengthening the security management of the key and reducing the possibility of key leakage.

[0113] Furthermore, refer to Figure 5 The present invention provides a third embodiment of a key management method for solid-state drives, based on the above. Figure 4 In the embodiment shown, after step A50, the key management method for a solid-state drive of the present invention further includes:

[0114] Step B10: When the service core processor receives a data encryption key usage command, the service core processor changes the state of a specified bit in the configuration register according to the data encryption key usage command.

[0115] Step B20: The high-speed encryption and decryption engine reads the data encryption key corresponding to the state change in the specified bit in the configuration register as the encryption and decryption key from the key volatile memory.

[0116] Step B30: The high-speed encryption / decryption engine initiates hardware encryption of the data based on the encryption / decryption key.

[0117] It should be noted that this embodiment provides the process of using the encryption key in the main controller chip of the solid-state drive. Therefore, this embodiment can only be implemented after the key has been loaded, but it does not mean that the key must be used after the key is loaded.

[0118] In this embodiment, when the business subsystem needs to use the encryption key of a certain partition, the hardware encryption function is enabled by configuring the corresponding configuration register.

[0119] As an example, the process of using DEK is as follows: the business core processor writes a specified bit in the configuration register to 1; the high-speed encryption and decryption engine reads the specified key in the corresponding key slot as the encryption and decryption key; and the data hardware encryption is started. Thus, the process of using DKE is completed.

[0120] This embodiment provides a key management method for a solid-state drive (SSD), specifically a key usage method for the SSD. The SSD interacts with the host through the business core processor in the business subsystem. When the business core processor receives a data encryption key usage command, it changes the state of a specified bit in the configuration register according to the received command, i.e., writing 1 to the specified bit in the configuration register. After the state of the specified bit in the configuration register changes, the high-speed encryption / decryption engine reads the data encryption key corresponding to the state change in the key volatile memory as the encryption / decryption key, and starts data hardware encryption. The business subsystem has not read the plaintext encryption key, so there is no possibility of key leakage.

[0121] Furthermore, refer to Figure 6 This invention proposes a fourth embodiment of a key management method for solid-state drives, based on the above... Figure 3 or Figure 4 or Figure 5 In the illustrated embodiment, after step S50, step A50, or step B30, the key management method for a solid-state drive of the present invention further includes:

[0122] Step C10: When the service core processor receives a data encryption key deletion command, the service core processor deletes the data encryption key ciphertext in the key non-volatile memory according to the data encryption key deletion command.

[0123] Step C20: The service core processor sends a data encryption key deletion interrupt to the security core processor;

[0124] Step C30: The security core processor deletes the plaintext of the data encryption key from the key volatile memory according to the data encryption key deletion interrupt;

[0125] In step C40, the security core processor sends a data encryption key deletion completion interruption to the service core processor.

[0126] It should be noted that this embodiment provides the process of deleting the encryption key in the main controller chip of the solid-state drive. Therefore, this embodiment must have the basis of the key already existing in order to be of practical value. If the key does not exist, then performing the deletion step is obviously a waste of resources. The situation where the key already exists can be any of the situations after the execution of the first to third embodiments of the key management method for solid-state drives of the present invention, that is, the key has been generated or stored, the key has been loaded, or the key has been used.

[0127] In this embodiment, the business subsystem deletes the ciphertext of the key from the non-volatile memory and notifies the security subsystem to delete the plaintext of the key from the volatile memory.

[0128] As an example, the DEK deletion process is as follows: The HOST sends a DEK deletion command to the service core processor; the service core processor erases the DEK from the external non-volatile memory; the service core processor sends a data encryption key deletion interrupt to the security core processor; the security core processor deletes the key slot cache in the service subsystem (i.e., clears the plaintext data encryption key in the key volatile memory); the security core processor sends a data encryption key deletion completion interrupt to the service core processor. Thus, one DEK deletion process is completed.

[0129] This embodiment provides a key management method for solid-state drives (SSDs), specifically a key deletion method for SSDs. The SSD interacts with the host through the business core processor in the business subsystem. When the business core processor receives a data encryption key deletion command, it erases the ciphertext of the data encryption key in the non-volatile key memory according to the received command. Then, it sends a data encryption key deletion interrupt to the security core processor, causing the security core processor to clear the plaintext of the data encryption key in the key volatile memory of the business subsystem according to the data encryption key deletion interrupt. After clearing, it sends a data encryption key deletion completion interrupt to the business core processor, thereby strengthening the security management of keys and reducing the possibility of key leakage.

[0130] Furthermore, this invention also proposes a computer-readable storage medium for use in a computer. The computer-readable storage medium can be a non-volatile computer-readable storage medium, on which a key management program is stored. When the key management program is executed by a processor, it implements the steps of the key management method for a solid-state drive as described above.

[0131] The steps implemented when the key management program running on the processor is executed can be referred to in various embodiments of the key management method of the present invention, and will not be repeated here.

[0132] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or system that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or system. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or system that includes that element.

[0133] The sequence numbers of the above embodiments of the present invention are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0134] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a computer-readable storage medium (such as Flash memory, ROM / RAM, magnetic disk, optical disk), and includes several instructions to cause a controller in a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to control the data read and write operations of the storage medium to execute the methods described in the various embodiments of the present invention.

[0135] The above are merely preferred embodiments of the present invention and do not limit the scope of the patent. Any equivalent structural or procedural transformations made based on the description and drawings of the present invention, or direct or indirect applications in other related technical fields, are similarly included within the scope of patent protection of the present invention.

Claims

1. A key management method of a solid state drive, characterized by, The key management method of the solid state disk is applied to a solid state disk, the solid state disk comprising a key nonvolatile memory and a master control chip, the key nonvolatile memory being in communication connection with the master control chip, the key nonvolatile memory being used for storing key ciphertext, and the master control chip comprising: a service subsystem, the service subsystem comprising a service core processor, a shared memory and a key volatile memory, the service subsystem being used for using a key; a security subsystem, the security subsystem being in communication connection with the service subsystem, the security subsystem comprising a security core processor, a true random number generator, a low-speed encryption and decryption engine and a one-time programmable memory, the security subsystem being used for managing a key; a configuration register, the configuration register being in communication connection with the service subsystem; a high-speed encryption and decryption engine, the high-speed encryption and decryption engine being in communication connection with the service subsystem and the configuration register; the key management method of the solid state disk comprising: when the service core processor receives a data encryption key generation command, the service core processor sends a data encryption key generation interrupt to the security core processor according to the data encryption key generation command; the security core processor performs key generation and encryption according to the data encryption key generation interrupt to obtain data encryption key ciphertext; the security core processor writes the data encryption key ciphertext into the shared memory; the security core processor sends a key generation completion interrupt to the service core processor; the service core processor writes the data encryption key ciphertext into the key nonvolatile memory according to the key generation completion interrupt.

2. The key management method of a solid state drive according to claim 1, wherein, the step of the security core processor performing key generation and encryption according to the data encryption key generation interrupt to obtain data encryption key ciphertext, comprising: the security core processor initializes a low-speed encryption and decryption engine according to the data encryption key generation interrupt; the security core processor generates a key encryption key through the low-speed encryption and decryption engine; the security core processor generates a data encryption key through a true random number generator; the security core processor calls the low-speed encryption and decryption engine to encrypt the data encryption key using the key encryption key to obtain data encryption key ciphertext.

3. The key management method of a solid state drive according to claim 2, wherein, after the step of the service core processor writing the data encryption key ciphertext into the key nonvolatile memory according to the key generation completion interrupt, the key management method of the solid state disk further comprising: when the service core processor receives a data encryption key loading command, the service core processor writes the data encryption key ciphertext in the key nonvolatile memory into the shared memory according to the data encryption key loading command; the service core processor sends a data encryption key loading interrupt to the security core processor; the security core processor decrypts the data encryption key ciphertext according to the data encryption key loading interrupt to obtain data encryption key plaintext; the security core processor writes the data encryption key plaintext into the key volatile memory; the security core processor sends a data encryption key loading completion interrupt to the service core processor.

4. The key management method of a solid state drive according to claim 3, wherein, The step of the secure core processor decrypting the data encryption key ciphertext according to the data encryption key loading interrupt includes: The secure core processor initializes the low-speed encryption and decryption engine according to the data encryption key loading interrupt; The secure core processor generates a key encryption key through the low-speed encryption and decryption engine; The secure core processor reads the data encryption key ciphertext in the shared memory; The secure core processor calls the low-speed encryption and decryption engine to decrypt the data encryption key ciphertext using the key encryption key to obtain data encryption key plaintext.

5. The key management method of a solid state drive according to claim 4, wherein, The low-speed encryption and decryption engine includes a symmetric encryption engine and a hash fast engine; The step of the secure core processor generating a key encryption key through the low-speed encryption and decryption engine includes: The secure core processor calls the symmetric encryption engine to read a preset hardware protection-based key in the secure subsystem; The secure core processor reads a preset seed ciphertext in a one-time programmable memory and calls the symmetric encryption engine to decrypt the preset seed ciphertext using the preset hardware protection-based key to obtain seed plaintext; The secure core processor calls the hash fast engine to calculate a hash value of the seed plaintext and a randomly specified seed set and generates a key encryption key according to the hash value.

6. The key management method of a solid state drive according to claim 5, wherein, After the step of the secure core processor sending a data encryption key loading completion interrupt to the business core processor, the key management method of the solid state disk further includes: When the business core processor receives a data encryption key use command, the business core processor changes the state of a specified bit in a configuration register according to the data encryption key use command; The high-speed encryption and decryption engine reads a data encryption key corresponding to the state change in the key volatile memory as an encryption and decryption key according to the state change of the specified bit in the configuration register; The high-speed encryption and decryption engine starts data hardware encryption based on the encryption and decryption key.

7. The key management method of a solid state drive according to claim 5, wherein, After the step of the secure core processor sending a data encryption key loading completion interrupt to the business core processor, the key management method of the solid state disk further includes: When the business core processor receives a data encryption key deletion command, the business core processor deletes the data encryption key ciphertext in the key non-volatile memory according to the data encryption key deletion command; The business core processor sends a data encryption key deletion interrupt to the secure core processor; The secure core processor deletes data encryption key plaintext in the key volatile memory according to the data encryption key deletion interrupt; The secure core processor sends a data encryption key deletion completion interrupt to the business core processor.

8. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, and the computer program is executed by the processor to implement the steps of the key management method of the solid state disk in any one of claims 1 to 7.

Citation Information

Patent Citations

  • SSD partition encryption storage system based on intelligent password key and implementation method thereof

    CN112560058A