CN117786774A - 数据保护方法、闪存设备控制器及闪存设备 - Google Patents

数据保护方法、闪存设备控制器及闪存设备 Download PDF

Info

Publication number
CN117786774A
CN117786774A CN202311842786.7A CN202311842786A CN117786774A CN 117786774 A CN117786774 A CN 117786774A CN 202311842786 A CN202311842786 A CN 202311842786A CN 117786774 A CN117786774 A CN 117786774A
Authority
CN
China
Prior art keywords
key
flash memory
data
memory device
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311842786.7A
Other languages
English (en)
Inventor
冯涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Dapu Microelectronics Technology Co ltd
Original Assignee
Suzhou Dapu Microelectronics Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Dapu Microelectronics Technology Co ltd filed Critical Suzhou Dapu Microelectronics Technology Co ltd
Priority to CN202311842786.7A priority Critical patent/CN117786774A/zh
Publication of CN117786774A publication Critical patent/CN117786774A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请实施例涉及存储技术领域,公开了一种数据保护方法、闪存设备控制器及闪存设备,该方法通过获取主机命令以及主机命令对应的用户数据,根据主机命令,生成主机命令一一对应的密钥标签,根据密钥标签,生成密钥标签一一对应的密钥,并根据密钥对用户数据进行加密,以生成加密的用户数据,将加密的用户数据以及密钥标签存储至闪存介质,本申请能够通过一个主机命令一一对应一个密钥,每一个密钥一一对应一个逻辑区块地址,从而使得加解密的颗粒度更小,从而提高用户数据的安全性。

Description

数据保护方法、闪存设备控制器及闪存设备
技术领域
本申请涉及存储技术领域,特别是涉及一种数据保护方法、闪存设备控制器及闪存设备。
背景技术
固态硬盘(SolidStateDisk,SSD)控制器主要由总线接口、NVMe控制器、中央处理器、缓存控制器以及NAND Flash控制器组成,用于控制固态硬盘的数据存储和数据读取过程,固态硬盘的数据在传输过程中容易被盗取和篡改的风险,因此,确保固态硬盘的数据安全性具有重要的意义。
现有技术中,SSD控制器通常通过选择高级加密标准(Advanced EncryptionStandard,AES)对主机命令对应的数据进行加密,对每一个逻辑区块地址区间(LogicalBlock Address Range,LBARange)分配一个AES密钥(Key),对主机命令对应的数据进行存储或读取时,获取该主机命令对应的数据对应的逻辑区块地址区间的AESKey对数据进行加密或解密。上述方式使用逻辑区块地址区间的AESKey能够对同一个逻辑区块地址区间内的所有数据块进行加解密,当同一个逻辑区块地址区间存储有不同主机命令对应的数据时,使用逻辑区块地址区间对应的AESKey能够加密该逻辑区块地址区间内不同主机命令对应的数据,而不同主机命令对应的数据的保密性可能不同,当AESKey出现错误时,可能会导致同一个逻辑区块地址区间内的所有数据损坏或丢失,降低了数据的安全性。
发明内容
本申请实施例提供一种数据保护方法、闪存设备控制器及闪存设备,其解决了数据的安全性低的技术问题,提高用户数据的安全性。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种数据保护方法,应用于闪存设备,闪存设备包括闪存介质,方法包括:
获取主机命令以及主机命令对应的用户数据,其中,主机命令一一对应一个逻辑区块地址;
根据主机命令,生成主机命令一一对应的密钥标签;
根据密钥标签,生成密钥标签一一对应的密钥,其中,每一个密钥一一对应一个逻辑区块地址;
根据密钥,对用户数据进行加密,以生成第一数据;
将第一数据以及密钥标签存储至闪存介质。
在一些实施例中,根据主机命令,生成主机命令一一对应的密钥标签,包括:
根据主机命令,生成主机命令一一对应的真随机数;
对真随机数进行压缩,以生成密钥标签。
在一些实施例中,将第一数据以及密钥标签存储至闪存介质,包括:
对第一数据添加密钥标签,生成第二数据;
将第二数据存储至闪存介质。
在一些实施例中,方法还包括:
生成密钥标签一一对应的索引;
构建密钥信息表,将索引和密钥存储至密钥信息表,其中,索引一一对应密钥。
在一些实施例中,方法还包括:
对第一数据进行解密,包括:
获取第二数据中的密钥标签一一对应的索引;
根据索引,从密钥信息表中获取密钥;
根据密钥,对第一数据进行解密。
第二方面,本申请实施例提供一种闪存设备控制器,闪存设备控制器应用于闪存设备,闪存设备包括闪存介质,闪存设备控制器包括:命令解析器、密钥控制器、写引擎;
命令解析器,连接写引擎,用于获取主机命令以及主机命令对应的用户数据,并生成主机命令对应的密钥标签,其中,主机命令一一对应一个逻辑区块地址;
密钥控制器,连接写引擎,用于存储每一密钥标签对应的密钥,并向写引擎发送密钥标签对应的密钥;
写引擎,连接命令解析器、密钥控制器,用于从命令解析器中获取主机命令对应的密钥标签,根据密钥标签查找密钥标签对应的密钥,并基于密钥对用户数据进行加密,以生成第一数据,并将第一数据以及密钥标签存储至闪存介质。
在一些实施例中,闪存设备控制器包括:
读引擎,连接命令解析器、密钥控制器,用于从密钥控制器中获取密钥标签一一对应的密钥,并根据密钥,对第一数据进行解密。
在一些实施例中,闪存设备控制器包括真随机数产生器、压缩引擎;
真随机数产生器,连接压缩引擎,用于根据主机命令,生成主机命令一一对应的真随机数,并将真随机数发送至压缩引擎;
压缩引擎,连接真随机数产生器、命令解析器,用于接收真随机数产生器发送的真随机数,对真随机数进行压缩,生成主机命令一一对应的密钥标签,并将密钥标签发送至命令解析器。
第三方面,本申请实施例提供一种闪存设备,包括:
如第二方面的闪存设备控制器;
闪存介质,通信连接闪存设备控制器。
在一些实施例中,闪存设备包括:
内存空间,用于存储闪存设备控制器生成的密钥标签以及密钥,其中,每一个密钥标签一一对应内存空间的一个逻辑地址。
本申请实施例的有益效果是:区别于现有技术的情况下,本申请实施例提供的一种数据保护方法,应用于闪存设备,闪存设备包括闪存介质,方法包括:获取主机命令以及主机命令对应的用户数据,其中,主机命令一一对应一个逻辑区块地址;根据主机命令,生成主机命令一一对应的密钥标签;根据密钥标签,生成密钥标签一一对应的密钥,其中,每一个密钥一一对应一个逻辑区块地址;根据密钥,对用户数据进行加密,以生成第一数据;将第一数据以及密钥标签存储至闪存介质。
通过获取主机命令以及主机命令对应的用户数据,根据主机命令,生成主机命令一一对应的密钥标签,根据密钥标签,生成密钥标签一一对应的密钥,并根据密钥对用户数据进行加密,以生成加密的用户数据,将加密的用户数据以及密钥标签存储至闪存介质,本申请能够通过一个主机命令一一对应一个密钥,每一个密钥一一对应一个逻辑区块地址,从而使得加解密的颗粒度更小,从而提高用户数据的安全性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请实施例提供的一种闪存设备的结构示意图;
图2是本申请实施例提供的一种数据保护方法的流程示意图;
图3是图2的步骤S202的细化流程示意图;
图4是本申请实施例提供的一种构建密钥信息表的流程示意图;
图5是图2的步骤S205的细化流程示意图;
图6是本申请实施例提供的一种第二数据的结构示意图;
图7是本申请实施例提供的一种对数据进行解密的流程示意图;
图8是图7的步骤S702的细化流程示意图;
图9是本申请实施例提供的一种闪存设备控制器加密数据所使用的各个模块之间的连接关系示意图;
图10是本申请实施例提供的一种闪存设备控制器解密数据所使用的各个模块之间的连接关系示意图;
图11是本申请实施例提供的一种闪存设备控制器的总体结构示意图;
图12是本申请实施例提供的另一种闪存设备的结构示意图。
附图标号说明:
标号 名称 标号 名称
100 闪存设备 124 闪存控制器
101 处理器 1201 命令解析器
102 存储器 1202 密钥控制器
110 闪存介质 1203 写引擎
120 闪存设备控制器 1204 压缩引擎
121 中央处理器 1205 真随机数产生器
122 缓存控制器 1206 读引擎
123 NVMe控制器 130 缓存存储器
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,如果不冲突,本申请实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本申请所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
此外,下面所描述的本申请各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1是本申请实施例提供的一种闪存设备的结构示意图;
如图1所示,闪存设备100包括闪存介质110以及与闪存介质110连接的闪存设备控制器120、缓存存储器130。
闪存介质110,作为闪存设备100的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质110得以成为各类便携型数字设备的存储介质的基础。
其中,闪存介质110可以为Nand FLASH,Nand FLASH以单晶体管作为二进制信号的存储单元,其结构与普通的半导体晶体管非常相似,区别在于Nand FLASH的单晶体管加入了浮动栅和控制栅,浮动栅用于贮存电子,表面被一层硅氧化物绝缘体所包覆,并通过电容与控制栅相耦合,当负电子在控制栅的作用下被注入到浮动栅中,Nand FLASH的单晶体的存储状态就由“1”变成了“0”,而当负电子从浮动栅中移走后,存储状态就由“0”变成了“1”,包覆在浮动栅表面的绝缘体用于将浮动栅中的负电子困住,实现数据存储。即Nand FLASH的存储单元为浮动栅晶体管,使用浮动栅晶体管以电荷的形式存储数据。存储电荷的多少与浮动栅晶体管所被施加的电压的大小有关。一个Nand Flash包括至少一个Chip芯片,每一个Chip芯片由若干个物理块(Block)组成,每一个物理块包括若干个物理页(Page)。其中,Block是Nand Flash执行擦除操作的最小单位,Page为Nand Flash执行读写操作的最小单位,一个Nand Flash的容量等于其Block的数量*一个Block包含的Page的数量*一个Page的容量。具体的,闪存介质110按照存储单元的电压的不同层次,可分为单层单元闪存(Single-Level Cell,SLC)、多层单元闪存(Multi-Level Cell,MLC)、三层单元闪存(Triple-Level Cell,TLC)以及四层单元闪存(Quad-Level Cell,QLC)。
闪存设备控制器120,通过主机总线与主机连接,通过主机总线更新门铃(doorbell)寄存器,即接收主机发送的命令,以通过该命令获取用户数据,以对用户数据添加保护措施,例如:对数据进行加密,并通过缓存控制器122将添加了保护措施的用户数据存储进缓存存储器130中。其中,主机总线包括但不限于SATA总线、PCIe总线。
在本申请实施例中,闪存设备控制器120包括:中央处理器121、缓存控制器122、NVMe控制器123以及闪存控制器124。
具体的,中央处理器121(Central Processing Unit,CPU),连接NVMe控制器123,中央处理器121用于解析主机命令,根据该主机命令大小,申请一段连续空间的基地址,并发送到NVMe控制器123,例如:主机命令的大小为16KB,则搜索一块可用的缓存的连续空间,将该连续空间的基地址发送到NVMe控制器123。
缓存控制器122,连接NVMe控制器123、缓存存储器130、闪存控制器124,缓存控制器122用于将NVMe控制器123发送的用户数据存储进缓存存储器130中。其中,缓存控制器130包括但不限于DDR控制器。
NVMe控制器123,连接中央处理器121以及缓存控制器122,用于通过主机的总线接口从主机中获取主机命令,并将该主机命令转发至中央处理器121,中央处理器121接收到NVMe控制器123转发的主机命令,中央处理器121解析该主机命令并从缓存存储器130中搜索与主机命令大小相同的连续空间,并将该连续空间的基地址发送到NVMe控制器123,NVMe控制器123通过主机的总线接口从主机中获取用户数据,以及对用户数据进行处理,并将被处理的用户数据存储到基地址对应的连续空间中,即存储到缓存存储器130中,同时,中央处理器121发送控制命令到NVMe控制器123中,NVMe控制器123接收该控制命令并转发到缓存控制器122中,以通过缓存控制器122从缓存存储器130中获取被处理的用户数据,通过闪存控制器124将被处理的用户数据存储至闪存介质110中。可以理解的是,NVMe控制器123通过接口与主机连接,该接口可以包括SATA接口,例如:SATA1.0接口、SATA 2.0接口、SATA3.0接口,该接口还可以包括PCIe接口,例如:PCIeM.2接口、PCIe U.2接口、PCIe AIC接口等。
闪存控制器124,连接缓存控制器122、存储介质110,闪存控制器124用于通过缓存控制器122从缓存存储器130中获取数据,以将缓存存储器130中的数据搬移到存储介质110中,或者,闪存控制器124用于闪存的数据处理,例如:访问闪存介质110的数据,将数据写入闪存介质110,或者,从闪存介质110中读取数据,以管理闪存介质110的各种参数和数据I/O。其中,闪存控制器124包括但不限于NAND控制器等。
在本申请实施例中,闪存设备控制器120还包括数据转换器(图未示),该数据转换器分别与中央处理器121和闪存控制器124连接,该数据转换器用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当闪存控制器124向闪存介质110写入数据时,通过数据转换器将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质110。当闪存控制器124从闪存介质110读取数据时,通过数据转换器将闪存介质110中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,数据转换器可以包括二进制数据寄存器和十六进制数据寄存器。二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
缓存存储器130,连接缓存控制器122,用于为闪存设备100提供缓存,以存储该闪存设备100的经常使用或者最近使用的数据,以便在需要时直接从缓存中获取,以提高闪存设备100内处理主机发送的用户数据的速度,以提高闪存设备100的性能。其中,缓存存储器130包括DDR存储器,例如:双倍数据速率同步动态随机存取存储器(Double Data Ratesynchronous dynamic random-access memory,DDR SDRAM)、DDR4SDRAM、低功率双倍数据速率4动态随机存取存储器(Low Power Double Data Rate Version4 SDRAM,LPDDR4SDRAM)、图形双倍数据速率动态随机存取存储器(Graphics Double Data Rate SDRAM,GDDR SDRAM)、低功率动态随机存取存储器(Low Power Double Data Rate SDRAM,LPDDRSDRAM)、Rambus动态随机存取存储器(RDRAM)等。其中,DDR存储器包括DDR颗粒,DDR颗粒设置有用于缓存主机数据的DDR空间。
在本申请实施例中,缓存存储器130包括内存空间,该内存空间用于存储闪存设备控制器120生成的密钥标签以及密钥,其中,每一个密钥标签一一对应内存空间的一个逻辑地址。例如:该内存空间包括高速缓存,高速缓存用于存储每一个密钥标签一一对应的逻辑地址。其中,该内存空间还可以存储密钥信息表,使得闪存设备控制器120能够基于该密钥标签,搜索该密钥信息表,快速找到该密钥标签对应的密钥,从而提高加密速度。
目前,SSD控制器通常通过根据主机命令中的起始逻辑区块地址(SLBA)来选择AES加解密的密钥(AESKey),一般根据逻辑区块地址区间(LBARange)来分配AES Key,这样同一LBA区间的主机命令使用的AES加解密的Key是相同的,导致加解密的颗粒度较大,进而导致数据的安全性不足。
有鉴于此,本申请实施例提供一种数据保护方法,通过减少加解密的颗粒度来提高用户数据的安全性。
请参阅图2,图2是本申请实施例提供的一种数据保护方法的流程示意图;
其中,该数据保护方法应用于闪存设备,闪存设备包括闪存介质,闪存介质用于存储用户数据。
如图2所示,该数据保护方法,包括:
步骤S201:获取主机命令以及主机命令对应的用户数据,其中,主机命令一一对应一个逻辑区块地址;
在本申请实施例中,通常会选择一个逻辑区块地址区间来存储用户数据,并为每一个逻辑区块地址区间分配一个密钥,以通过密钥对该逻辑区块地址区间中的用户数据进行保护,为使得同一个逻辑区块地址区间中不同主机命令对应的用户数据的数据保护密度更强,通过对每一个主机命令分配一个逻辑区块地址(Logical Block Address,LBA),并为该逻辑区块地址分配一个密钥,使得每一个主机命令对应的用户数据所使用的加解密的密钥不相同,并使得用户数据加解密的颗粒度更小。
具体的,获取主机发送的主机命令,主机命令包括数据的输入输出命令(Input/Output,IO),解析该主机命令,以获取主机命令对应的用户数据,同时,为主机命令对应的用户数据分配一个逻辑区块地址,使得每一个主机命令一一对应一个逻辑区块地址。
步骤S202:根据主机命令,生成主机命令一一对应的密钥标签;
具体的,为使得每一个主机命令对应的逻辑区块地址一一对应一个密钥,为每一个主机命令生成一一对应的密钥标签,密钥标签用于获取主机命令对应的逻辑区块地址一一对应的密钥,每一个密钥标签一一对应一个密钥。
请再参阅图3,图3是图2的步骤S202的细化流程示意图;
如图3所示,该步骤S202,包括:
步骤S2021:根据主机命令,生成主机命令一一对应的真随机数;
在本申请实施例中,真随机数由真随机数发生器(True Random NumberGenerator,TRNG)生成的随机数,其中,真随机数发生器输出的随机数是基于物理随机现象或过程产生的,这些现象或过程具有固有的随机性,即真随机数发生器生成的随机数不能通过计算或预测的方法产生,通过真随机数生成密钥,攻击者通过分析真随机数并不能找到有用的信息来获取该真随机数对应的密钥,因此,真随机数在一定程度上能够增强密钥的安全性。
具体的,为确保同一个主机命令对应的逻辑区块地址对应的密钥不被重复使用,通过真随机数产生器生成主机命令一一对应的真随机数。
步骤S2022:对真随机数进行压缩,以生成密钥标签;
具体的,使用压缩工具对真随机数进行压缩,以将真随机数转化为更小的数据,以生成密钥标签,例如:使用哈希函数(hash函数)对128bit的真随机数进行压缩,将真随机数压缩成9bit的哈希值,其中,密钥标签为压缩后的真随机数。
在本申请实施例中,密钥标签会被添加到用户数据,用于在从闪存介质中获取用户数据时通过密钥标签获取密钥对用户数据进行解密。
在本申请实施例中,对真随机数进行压缩再添加到用户数据,能够减少存储到闪存介质中的数据量,以提高闪存介质的利用率。
步骤S203:根据密钥标签,生成密钥标签一一对应的密钥,其中,每一个密钥一一对应一个逻辑区块地址;
具体的,使用密钥生成算法,例如:DSA算法(Digital Signature Algorithm,DSA)、RSA算法(Rivest-Shamir-Adleman,RSA),将密钥标签作为密钥生成算法的输入参数,通过密钥生成算法生成密钥标签一一对应的密钥,其中,每一个主机命令一一对应一个逻辑区块地址(Logical Block Address,LBA),每一个主机命令一一对应一个密钥标签,每一个密钥标签一一对应一个密钥,则每一个密钥一一对应一个逻辑区块地址。
在本申请实施例中,通过密钥标签为每一个逻辑区块地址生成一一对应的密钥,使得一个主机命令一一对应的逻辑区块地址使用同一个密钥,不同的主机命令对应的逻辑区块地址使用不同的密钥,能够增加主机命令对应的用户数据的安全性。
步骤S204:根据密钥,对用户数据进行加密,以生成第一数据;
具体的,使用当前主机命令对应的密钥标签一一对应的密钥对当前主机命令对应的用户数据进行加密,将用户数据与密钥进行结合,生成密文,该密文即为第一数据。
在本申请实施例中,通过密钥对用户数据进行加密,能够提高用户数据的安全性,增加数据的保护力度。
为了对密钥进行管理,本申请实施例通过构建密钥信息表的方式对密钥进行存储。
具体的,请再参阅图4,图4是本申请实施例提供的一种构建密钥信息表的流程示意图;
如图4所示,构建密钥信息表,包括:
步骤S401:生成密钥标签一一对应的索引;
在本申请实施例中,为方便后续对用户数据进行加解密,需要将用户数据对应的密钥存储进密钥信息表,以便后续加解密数据时,直接从密钥信息表中获取密钥。
具体的,对每一个新生成的密钥标签按照时间顺序生成密钥标签一一对应的索引。
步骤S402:构建密钥信息表,将索引和密钥存储至密钥信息表,其中,索引一一对应密钥;
具体的,构建一个密钥信息表,将密钥标签对应的索引存储进密钥信息表中,以及将密钥标签对应的密钥存储进密钥信息表中。
在本申请实施例中,密钥信息表可通过应用程序构建,例如Firmware、MySQL、SQLServer等存储数据的系统应用程序。
在本申请实施例中,密钥信息表存储于闪存设备的内存(Memory)中,其中,内存可包括缓存存储器。
可以理解的是,每一个密钥标签对应的索引不同,密钥标签对应的索引用于表示密钥标签与密钥一一对应的关系,密钥标签用于指示密钥的存储地址,根据密钥标签可找到密钥标签一一对应的密钥。
请参阅表1,表1是本申请实施例提供的一种密钥信息表;
1 KeyAttribute Key1 Key2
2 KeyAttribute Key1 Key2
3 KeyAttribute Key1 Key2
4 KeyAttribute Key1 Key2
5 KeyAttribute Key1 Key2
表1密钥信息表
如表1所示,表1为密钥信息表,1-5分别为5个不同的密钥标签对应的索引,KeyAttribute为密钥属性,密钥属性包括有效标记位、lock信息等信息,其中,有效标记位用于标记对应索引的密钥是否有效,lock信息用于对密钥加锁,以防止用户数据被执行多个操作,确保数据的一致性和完整性,例如:同时查看和修改用一个数据项,Key1和Key2为密钥,当对数据进行加密或者解密时,需要同时使用该两个Key对数据进行加密或者解密,可以理解的是,由于不同的密钥生成算法所使用的标准不同,则生成的密钥数量也会不相同。
在本申请实施例中,当对用户数据进行加解密时,通过密钥标签对应的索引从密钥信息表中获取当前密钥索引对应的密钥,对用户数据进行加密或解密。
可以理解的是,密钥信息表中存储有密钥索引、密钥标签以及密钥的对应关系。优选地,密钥标签即为密钥索引,该密钥标签包括密钥在内存中的地址。由于该密钥标签即为密钥在内存中的地址,通过密钥标签可以直接找到该密钥对应的存储位置,从而获取到该密钥。
在本申请实施例中,将密钥存储进密钥信息表可以方便后续对用户数据的操作和查询。
步骤S205:将第一数据以及密钥标签存储至闪存介质;
具体的,将第一数据以及密钥标签存储至闪存介质,即将加密的用户数据和密钥标签存储至闪存介质,其中,第一数据包括加密后的用户数据。
在本申请实施例中,当从闪存介质中获取用户数据时,可根据用户数据对应的密钥标签从密钥信息表中获取密钥对用户数据进行解密。
请再参阅图5,图5是图2的步骤S205的细化流程示意图;
如图5所示,该步骤S205,包括:
步骤S2051:对第一数据添加密钥标签,生成第二数据;
具体的,对第一数据添加密钥标签,即将密钥标签添加在加密的用户数据之后,生成第二数据,其中,第二数据包括用户数据、密钥标签、密钥。
请再参阅图6,图6是本申请实施例提供的一种第二数据的结构示意图;
如图6所示,第二数据包括用户数据、元数据、密钥、密钥标签,密钥标签包括密钥的基地址,当从闪存介质获取用户数据时,根据密钥标签中的基地址,找到密钥存储的位置,并根据当前密钥的索引,获取索引对应的密钥,通过比较获取到的密钥与第二数据中的密钥是否相同,若相同,则对用户数据进行解密。
步骤S2052:将第二数据存储至闪存介质;
具体的,将第二数据存储至闪存介质,即将添加了密钥标签的第一数据存储至闪存介质。
在本申请实施例中,将密钥标签添加到第一数据之后,能够标识当前用户数据对应的密钥,即实现了主机命令对应的用户数据对应存储的逻辑区块地址唯一对应一个密钥,从而实现不同主机命令对应的逻辑区块地址使用不同的密钥,使得用户数据加解密的颗粒度更小,能够提高不同主机命令对应的用户数据的安全性。
在将第二数据写入到闪存介质之后,若需要读取用户数据,则需要对数据进行解密。
具体的,请再参阅图7,图7是本申请实施例提供的一种对数据进行解密的流程示意图;
如图7所示,对数据进行解密,包括:
步骤S701:从闪存介质中读取第二数据;
具体的,主机向闪存设备控制器发送主机命令,例如:数据读取命令,闪存设备控制器根据该数据读取命令,通过闪存控制器向闪存介质获取该数据读取命令对应的第二数据。
步骤S702:对第二数据进行解密;
在本申请实施例中,当主机从闪存介质中获取用户数据时,需要对闪存介质中的第二数据进行解密。
具体的,从闪存介质中获取主机命令对应的第二数据,根据第二数据中的密钥标签获取当前主机命令对应的密钥,根据该密钥对第二数据中的第一数据进行解密,以得到用户数据。
请再参阅图8,图8是图7的步骤S702的细化流程示意图;
如图8所示,该步骤S702,包括:
步骤S7021:获取第二数据中的密钥标签一一对应的索引;
具体的,从闪存介质中获取第二数据,根据第二数据中的密钥标签,从密钥信息表中获取该密钥标签对应的索引。
步骤S7022:根据索引,从密钥信息表中获取密钥;
具体的,根据第二数据中的密钥标签一一对应的索引,从密钥信息表中获取该索引对应的密钥。
优选地,获取密钥的方式还可以直接通过密钥标签从密钥信息表中获取该密钥标签对应的密钥,此时,密钥标签即为密钥对应的索引。
步骤S7023:根据密钥,对第一数据进行解密;
具体的,判断当前主机命令一一对应的密钥与第一数据中的密钥是否相同,若相同,则对第一数据进行解密,若不相同,则可能用户数据出现错误,需要进一步对用户数据进行恢复。
在本申请实施例中,根据密钥标签对应的索引与密钥进行关联,以使得每一个密钥标签一一对应一个密钥,进一步,对主机命令对应的用户数据进行解密时,使用主机命令一一对应的密钥标签一一对应的密钥对用户数据进行解密,使得同一个主机命令对应的用户数据进行加密或解密都是使用同一个密钥。
在本申请实施例中,通过获取主机命令以及主机命令对应的用户数据,根据主机命令,生成主机命令一一对应的密钥标签,根据密钥标签,生成密钥标签一一对应的密钥,并根据密钥对用户数据进行加密,以生成加密的用户数据,将加密的用户数据以及密钥标签存储至闪存介质,本申请能够提高用户数据的安全性。
请参阅图9,图9是本申请实施例提供的一种闪存设备控制器加密数据所使用的各个模块之间的连接关系示意图;
如图9所示,闪存设备控制器120包括:命令解析器1201、密钥控制器1202、写引擎1203、压缩引擎1204、真随机数产生器1205。
命令解析器1201(CommandParser),连接压缩引擎1204、写引擎1203,命令解析器1201用于获取主机命令以及主机命令对应的用户数据,并接收压缩引擎1204发送的主机命令对应的密钥标签,其中,主机命令一一对应一个逻辑区块地址。其中,命令解析器1201包括中央处理器,通过中央处理器对主机命令进行解析,以获取主机命令对应的用户数据,并为用户数据搜索一块可用的连续空间。
密钥控制器1202(KeyManagementController),连接写引擎1203,用于生成每一个密钥标签一一对应的密钥,存储每一密钥标签对应的密钥,并向写引擎1203发送密钥标签对应的密钥。密钥控制器1202包括缓存控制器,通过缓存控制器将密钥标签以及密钥标签一一对应的密钥存储进缓存存储器中。
写引擎1203(WriteEngine),连接命令解析器1201、密钥控制器1202,用于从命令解析器1201中获取主机命令对应的密钥标签,并根据密钥标签,从密钥控制器1202中查找密钥标签对应的密钥,并基于密钥,对用户数据进行加密,以生成第一数据,并将第一数据以及密钥标签存储至闪存介质。其中,写引擎1203包括NVMe控制器,NVMe控制器用于根据密钥标签对应的密钥对用户数据进行加密,以生成第一数据,并将密钥标签添加到第一数据,以生成第二数据,将第二数据存储至闪存介质。
压缩引擎1204(Compression Engines),连接真随机数产生器1205、命令解析器1201,用于接收真随机数产生器1205发送的真随机数,对真随机数进行压缩,生成主机命令一一对应的密钥标签,并将密钥标签发送至命令解析器1201。其中,压缩引擎1204包括哈希函数,该压缩引擎1204通过哈希函数对真随机数进行压缩,以得到压缩后的真随机数。
真随机数产生器1205(TRNGController),连接压缩引擎1204,用于根据主机命令,生成主机命令一一对应的真随机数,并将真随机数发送至压缩引擎1204。
在本申请实施例中,命令解析器1201接收到主机发送的主机命令,并对主机命令进行解析以获取主机命令对应的用户数据,同时,真随机数产生器1205生成一个主机命令一一对应的真随机数,并将该真随机数发送到压缩引擎1204,通过压缩引擎1204对真随机数进行压缩,生成密钥标签,并将该密钥标签发送到命令解析器1201,命令解析器1201将密钥标签以及用户数据发送到写引擎1203,以根据密钥标签向密钥控制器1202申请一个密钥标签一一对应的密钥,写引擎1203根据密钥标签一一对应的密钥对用户数据进行加密,生成第一数据,并将第一数据和密钥标签存储进闪存介质。
在本申请实施例中,通过获取主机命令以及主机命令对应的用户数据,根据主机命令,生成主机命令一一对应的密钥标签,根据密钥标签,生成密钥标签一一对应的密钥,并根据密钥对用户数据进行加密,以生成加密的用户数据,将加密的用户数据以及密钥标签存储至闪存介质,本申请能够提高用户数据的安全性。
请参阅图10,图10是本申请实施例提供的一种闪存设备控制器解密数据所使用的各个模块之间的连接关系示意图;
如图10所示,闪存设备控制器120包括:命令解析器1201、读引擎1206、密钥控制器1202。
命令解析器1201,连接读引擎1206,用于获取主机的读命令,并对该读命令进行解析,以从闪存介质中获取读命令对应的第二数据,同时,将该读命令发送到读引擎1206,以从密钥控制器1202中获取第二数据中的密钥标签对应的密钥,以通过该密钥对第二数据进行解密,以获取到读命令对应的用户数据,并将用户数据返回给主机。
读引擎1206(ReadEngine),连接命令解析器1201、密钥控制器1202,用于根据接收到的读命令,从密钥控制器中获取读命令对应的密钥标签一一对应的密钥,并根据密钥,对读命令对应的第二数据进行解密,其中,主机命令包括读命令。
密钥控制器1202,连接读引擎1206,用于存储主机命令对应的密钥标签以及密钥标签对应的密钥,当接收到主机发送的读命令时,向读引擎1206发送读命令对应的密钥标签对应的密钥,以通过密钥对读命令对应的第二数据进行解密。
在本申请实施例中,命令解析器1201接收到主机发送的读取命令,并将该读取命令转发到读引擎1206,读引擎1206根据该读取命令对应的第二数据中的密钥标签对应的索引从密钥控制器1202中的密钥信息表中获取密钥标签的对应的索引对应的密钥,根据该密钥对第一数据进行解密,也将解密的用户数据返回到主机中。
在本申请实施例中,通过获取主机命令以及主机命令对应的用户数据,根据主机命令,生成主机命令一一对应的密钥标签,根据密钥标签,生成密钥标签一一对应的密钥,并根据密钥对用户数据进行加密,以生成加密的用户数据,将加密的用户数据以及密钥标签存储至闪存介质,本申请能够通过一个主机命令一一对应一个密钥,每一个密钥一一对应一个逻辑区块地址,从而使得加解密的颗粒度更小,从而提高用户数据的安全性。
请参阅图11,图11是本申请实施例提供的一种闪存设备控制器的总体结构示意图;
如图11所示,闪存设备控制器120包括:命令解析器1201、密钥控制器1202、写引擎1203、压缩引擎1204、真随机数产生器1205、读引擎1206。其中,命令解析器1201与写引擎1203、压缩引擎1204、读引擎1206通信连接,压缩引擎1204与真随机数产生器1205通信连接,写引擎1203与命令解析器1201、密钥控制器1202通信连接,读引擎1206与命令解析器1201、密钥控制器1202通信连接。
在本申请实施例中,命令解析器1201接收到主机发送的主机命令,会自动解析主机命令,当该主机命令为写命令时,则调用压缩引擎1204生成密钥标签,并自动调用写引擎1203对用户数据进行加密,并将加密的用户数据存储进闪存介质,当该主机命令为读命令时,命令解析器1201会自动调用读引擎1206从密钥控制器1202获取密钥,以对第二数据进行解密,并将加密的用户数据返回到主机中。
在本申请实施例中,当对用户数据进行加密时,通过命令解析器1201获取用户数据,同时,真随机数产生器120产生主机命令一一对应的真随机数,通过压缩引擎1204对真随机数进行压缩生成密钥标签,将该密钥标签和用户数据发送到写引擎1203,以向密钥控制器1202申请密钥标签一一对应的密钥,根据该密钥对用户数据进行加密,并将加密的用户数据和密钥标签存储进闪存介质。
在本申请实施例中,当用户数据进行解密时,命令解析器1201接收到主机发送的读取命令,并将该读取命令转发到读引擎1206,读引擎1206根据该读取命令对应的第二数据中的密钥标签对应的索引从密钥控制器1202中的密钥信息表中获取密钥标签的对应的索引对应的密钥,根据该密钥对第一数据进行解密,也将解密的用户数据返回到主机中。
在本申请实施例中,通过获取主机命令以及主机命令对应的用户数据,根据主机命令,生成主机命令一一对应的密钥标签,根据密钥标签,生成密钥标签一一对应的密钥,并根据密钥对用户数据进行加密,以生成加密的用户数据,将加密的用户数据以及密钥标签存储至闪存介质,本申请能够提高用户数据的安全性。
以及,通过使用主机命令一一对应的密钥标签获取密钥,根据该密钥对主机命令对应的第一数据进行解密,使得同一个主机命令对应的逻辑区块地址中的用户数据加密或解密时使用同一个密钥,不同主机命令对应的逻辑区块地址中的用户数据加密或解密时使用不同的密钥,能够增加数据安全性。
请再参阅图12,图12是本申请实施例提供的另一种闪存设备的结构示意图;
如图12所示,该闪存设备100包括一个或多个处理器101以及存储器102。其中,图12中以一个处理器101为例。
处理器101和存储器102可以通过总线或者其他方式连接,图12中以通过总线连接为例。
处理器101,用于提供计算和控制能力,以控制闪存设备100执行相应任务,例如,控制闪存设备100执行上述任一方法实施例中的数据保护方法,该数据保护方法,应用于闪存设备,闪存设备包括闪存介质,方法包括:获取主机命令以及主机命令对应的用户数据,其中,主机命令一一对应一个逻辑区块地址;根据主机命令,生成主机命令一一对应的密钥标签;根据密钥标签,生成密钥标签一一对应的密钥,其中,每一个密钥一一对应一个逻辑区块地址;根据密钥,对用户数据进行加密,以生成第一数据;将第一数据以及密钥标签存储至闪存介质。
通过获取主机命令以及主机命令对应的用户数据,根据主机命令,生成主机命令一一对应的密钥标签,根据密钥标签,生成密钥标签一一对应的密钥,并根据密钥对用户数据进行加密,以生成加密的用户数据,将加密的用户数据以及密钥标签存储至闪存介质,本申请能够通过一个主机命令一一对应一个密钥,每一个密钥一一对应一个逻辑区块地址,从而使得加解密的颗粒度更小,从而提高闪存介质的数据的安全性。
处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、硬件芯片或者其任意组合;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。
存储器102作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本申请实施例中的数据保护方法对应的程序指令/模块。处理器101通过运行存储在存储器102中的非暂态软件程序、指令以及模块,可以实现上述任一方法实施例中的数据保护方法。具体地,存储器102可以包括易失性存储器(volatile memory,VM),例如随机存取存储器(random access memory,RAM);存储器102也可以包括非易失性存储器(non-volatile memory,NVM),例如只读存储器(read-onlymemory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)或其他非暂态固态存储器件;存储器102还可以包括上述种类的存储器的组合。
存储器102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器102可选包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至处理器101。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器102中,当被一个或者多个处理器101执行时,执行上述任意方法实施例中的数据保护方法,例如,执行以上描述的图2所示的各个步骤。
本申请实施例还提供了一种非易失性计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的数据保护方法。例如,该非易失性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CDROM)、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括一条或多条程序代码,该程序代码存储在非易失性计算机可读存储介质中。闪存设备的处理器从非易失性计算机可读存储介质读取该程序代码,处理器执行该程序代码,以完成上述实施例中提供的数据保护方法的方法步骤。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来程序代码相关的硬件完成,该程序可以存储于一种非易失性计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,程序可存储于非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上述的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种数据保护方法,其特征在于,应用于闪存设备,所述闪存设备包括闪存介质,所述方法包括:
获取主机命令以及所述主机命令对应的用户数据,其中,所述主机命令一一对应一个逻辑区块地址;
根据所述主机命令,生成所述主机命令一一对应的密钥标签;
根据所述密钥标签,生成所述密钥标签一一对应的密钥,其中,每一个密钥一一对应一个逻辑区块地址;
根据所述密钥,对所述用户数据进行加密,以生成第一数据;
将所述第一数据以及所述密钥标签存储至所述闪存介质。
2.根据权利要求1所述的方法,其特征在于,所述根据所述主机命令,生成所述主机命令一一对应的密钥标签,包括:
根据所述主机命令,生成所述主机命令一一对应的真随机数;
对所述真随机数进行压缩,以生成所述密钥标签。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一数据以及所述密钥标签存储至所述闪存介质,包括:
对所述第一数据添加所述密钥标签,生成第二数据;
将所述第二数据存储至所述闪存介质。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
生成所述密钥标签一一对应的索引;
构建密钥信息表,将所述索引和所述密钥存储至所述密钥信息表,其中,所述索引一一对应所述密钥。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述第一数据进行解密,包括:
获取所述第二数据中的密钥标签一一对应的索引;
根据所述索引,从所述密钥信息表中获取所述密钥;
根据所述密钥,对所述第一数据进行解密。
6.一种闪存设备控制器,其特征在于,所述闪存设备控制器应用于闪存设备,所述闪存设备包括闪存介质,所述闪存设备控制器包括:命令解析器、密钥控制器、写引擎;
所述命令解析器,连接所述写引擎,用于获取主机命令以及所述主机命令对应的用户数据,并生成主机命令对应的密钥标签,其中,所述主机命令一一对应一个逻辑区块地址;
所述密钥控制器,连接所述写引擎,用于存储每一所述密钥标签对应的密钥,并向所述写引擎发送所述密钥标签对应的密钥;
所述写引擎,连接所述命令解析器、所述密钥控制器,用于从所述命令解析器中获取所述主机命令对应的密钥标签,根据所述密钥标签查找所述密钥标签对应的密钥,并基于所述密钥对所述用户数据进行加密,以生成第一数据,并将第一数据以及所述密钥标签存储至所述闪存介质。
7.根据权利要求6所述的闪存设备控制器,其特征在于,所述闪存设备控制器包括:
读引擎,连接所述命令解析器、密钥控制器,用于从所述密钥控制器中获取所述密钥标签一一对应的密钥,并根据所述密钥,对所述第一数据进行解密。
8.根据权利要求7所述的闪存设备控制器,其特征在于,所述闪存设备控制器包括真随机数产生器、压缩引擎;
所述真随机数产生器,连接所述压缩引擎,用于根据所述主机命令,生成所述主机命令一一对应的真随机数,并将所述真随机数发送至所述压缩引擎;
所述压缩引擎,连接所述真随机数产生器、所述命令解析器,用于接收所述真随机数产生器发送的所述真随机数,对所述真随机数进行压缩,生成所述主机命令一一对应的密钥标签,并将所述密钥标签发送至所述命令解析器。
9.一种闪存设备,其特征在于,包括:
如权利要求6-8任一项所述的闪存设备控制器;
闪存介质,通信连接所述闪存设备控制器。
10.根据权利要求9所述的闪存设备,其特征在于,所述闪存设备包括:
内存空间,用于存储所述闪存设备控制器生成的密钥标签以及密钥,其中,每一个所述密钥标签一一对应所述内存空间的一个逻辑地址。
CN202311842786.7A 2023-12-28 2023-12-28 数据保护方法、闪存设备控制器及闪存设备 Pending CN117786774A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311842786.7A CN117786774A (zh) 2023-12-28 2023-12-28 数据保护方法、闪存设备控制器及闪存设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311842786.7A CN117786774A (zh) 2023-12-28 2023-12-28 数据保护方法、闪存设备控制器及闪存设备

Publications (1)

Publication Number Publication Date
CN117786774A true CN117786774A (zh) 2024-03-29

Family

ID=90401535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311842786.7A Pending CN117786774A (zh) 2023-12-28 2023-12-28 数据保护方法、闪存设备控制器及闪存设备

Country Status (1)

Country Link
CN (1) CN117786774A (zh)

Similar Documents

Publication Publication Date Title
US11513707B2 (en) Memory system and method of controlling nonvolatile memory
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
US9852025B2 (en) Protecting data stored on a solid state drive
US20180260151A1 (en) Data Storage Device and Operating Method Therefor
US8886963B2 (en) Secure relocation of encrypted files
CN102419807A (zh) 固态非挥发性内存装置的安全抹除系统
CN114077559B (zh) 存储装置的存取管理的方法及设备
US11899829B2 (en) Memory systems and devices including examples of generating access codes for memory regions using authentication logic
US11017098B2 (en) Collection of uncorrelated entropy during a power down sequence
US11818248B2 (en) Encoder and decoder using physically unclonable functions
US11861022B2 (en) Method and computer program product and apparatus for encrypting and decrypting physical-address information
US11360912B2 (en) Method for performing adaptive locking range management, associated data storage device and controller thereof
US20210064549A1 (en) Enhancing the speed performance and endurance of solid-state data storage devices with embedded in-line encryption engines
CN117786774A (zh) 数据保护方法、闪存设备控制器及闪存设备
KR20100094862A (ko) 스토리지 장치 및 그것의 데이터 관리 방법
CN114064525A (zh) 存储器系统、存储器系统的控制方法以及信息处理系统
US11995349B2 (en) Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding
US11994985B2 (en) Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding
CN113704145B (zh) 加密和解密物理地址信息的方法及装置
US20240078322A1 (en) Memory system, memory controller and operation method thereof
US20240323007A1 (en) Memory system and data encrypting method
CN114969850A (zh) 一种数据传输方法及存储系统
CN117688626A (zh) 适用于存储设备的加密方法以及支持加密操作的存储系统
Lee et al. Secure Deletion for Flash-Based Self-Encrypting Drives

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination