CN110661612B - 断电序列期间不相关熵的收集 - Google Patents
断电序列期间不相关熵的收集 Download PDFInfo
- Publication number
- CN110661612B CN110661612B CN201910568030.5A CN201910568030A CN110661612B CN 110661612 B CN110661612 B CN 110661612B CN 201910568030 A CN201910568030 A CN 201910568030A CN 110661612 B CN110661612 B CN 110661612B
- Authority
- CN
- China
- Prior art keywords
- entropy
- data
- nvm
- stored
- die
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
Abstract
用于管理密码处理系统中的熵的设备和方法,诸如但不限于固态驱动器(SSD)。在一些实施例中,处理设备被操作以在主机设备和非易失性存储器(NVM)之间传输数据。响应于检测到与处理设备相关联的断电事件,与断电事件相关联的熵被收集并且被存储在存储器中。在随后重新初始化处理设备时,调节该熵并将其用作加密函数的输入,以便随后在主机设备和NVM之间传输数据。在一些实施例中,从硬件定时器的状态获得熵,该硬件定时器提供单调递增的计数以用于定时控制。在其他实施例中,熵从用于将数据存储到NVM的管芯集合的RAID缓冲器中获得。
Description
技术领域
本公开的各种实施例总体上涉及密码处理系统,诸如但不限于数据存储环境。
背景技术
数据安全方案用于减少或消除未经授权的数字数据处理系统的用户对数据的访问。数据安全方案可以采用各种加密安全技术,诸如数据加密和数据安全协议。
数据加密总体上涉及使用所选择的加密算法(密码)将输入数据序列(例如,明文)转换为经加密的输出数据序列(例如,密文)。密码可以利用一条或多条辅助数据(例如,密钥、计数器值、随机数值等)来实现变换。在此上下文中,明文可以包括先前已经由上游加密过程加密的数据。该算法可以是对称的或非对称的。对称算法进行操作以便通过将相同的算法和辅助数据应用于先前生成的密文来返回(解密)原始输入的明文。
数据安全协议涉及维持系统内数据的安全性,诸如通过建立对称密钥、执行秘密共享事务、建立和验证连接、验证数据、生成数字签名和键控消息摘要值等。
发明内容
在一些实施例中,处理设备被操作以在主机设备和非易失性存储器(NVM)之间传输数据。响应于检测到与处理设备相关联的断电事件,与断电事件相关联的熵被收集并且被存储在存储器中。在随后重新初始化处理设备时,调节该熵并将其用作加密函数的输入,以便随后在主机设备和NVM之间传输数据。在一些实施例中,从硬件定时器的状态获得熵,该硬件定时器提供单调递增的计数以用于定时控制。在其他实施例中,熵从用于将数据存储到NVM的管芯集合的RAID缓冲器中获得。
表征本公开的各个实施例的这些和其它特征可考虑以下具体讨论和附图来的观点来理解。
附图简述
图1是根据本公开的各种实施例来操作的数据处理系统的功能框表示。
图2示出根据一些实施例的图1的数据存储设备的配置。
图3描绘了来自图2的所选择的闪存半导体存储器管芯的布置。
图4示出了在一些实施例中的管芯在各种NVM集合中的布置。
图5示出了在一些实施例中可以将数据存储到各种NVM集合的方式。
图6描绘了用于从图5生成奇偶校验数据的RAID缓冲器。
图7描绘了在包括图5中的数据存储的各种操作期间由数据存储设备使用的加密功能电路。
图8示出了被配置成收集并调节熵以供图7的电路使用的熵管理器电路。
图9是根据一些实施例的图2的SSD的更详细的布置。
图10描绘了熵管理器电路与各个集合控制器的交互。
图11示出了一些实施例中的熵收集序列。
图12示出了其他的实施例中的熵调节序列。
图13示出了一些实施例中的更详细的熵管理器电路。
具体实施方式
加密安全技术通常使用熵作为加密处理的一部分。通常,术语“熵”涉及一组数据中存在的信息量。在一个公式中,熵可以被认为是表示一组感兴趣数据的信息内容所需的最小位数。
低熵值具有可以使用单个位或仅仅几个位来描述的信息内容。所有逻辑1的n位序列总体上具有非常低的熵,因为序列的所有值可以由单个位(例如,逻辑1)描述。
高熵值需要许多位来描述值的信息内容。真随机数串将具有与串中的位数对应的熵,因此n位随机字符串通常具有n位的熵。这是因为序列中的每个位都是完全随机的,并且与序列中的每个其他位无关。很少有重复模式出现在序列中,因此定义高熵值的另一种方法是易受很少或没有无损数据压缩的值。
增加加密函数中使用的值的熵量趋于增加函数抵御攻击的安全性。使用具有高熵的加密密钥使得使用暴力方法猜测密钥或确定密钥变得更加困难;添加随机字符串作为散列函数的输入使得复制或发现输入变得更加困难,等等。
通常利用各种机制在设备中生成熵以供设备的加密函数使用。以环形振荡器、定时电路、电动机等形式的随机数发生器可用于产生高熵值。可以提供其他电路和设备以生成低熵值,诸如将半导体存储器单元编程为特定值所需的脉冲总数、不同存储器单元之间的参数变化等。可以使用众所周知的提取和认证技术将低熵值转换成高熵值。
传统存储设备(诸如硬盘驱动器(HDD))使用许多机械元件,诸如可以提供高熵的良好的源的主轴电机和致动器。另一方面,使用半导体存储器的固态驱动器(SSD)和其他类型的存储设备不倾向于具有移动部件,并且因此在标识足够数量的非相关熵源方面存在挑战。
本公开的各种实施例涉及用于在处理设备(诸如但不限于SSD)中实施密码处理系统的设备和方法。如下所述,一些实施例向处理设备提供熵管理器电路,该熵管理器电路在处理设备的操作期间从一个或多个熵源提取和限定熵值。(多个)源可以提供高熵和/或低熵。经调节的熵值被用作由设备执行或与设备一起执行的加密函数的输入。
在一些实施例中,熵管理器电路收集并存储与正在进行的过程无关的事件或状态的熵,诸如在设备的关闭序列期间。在执行多个独立过程(诸如将SSD布置到具有不同所有者的不同管芯集合中)的情况下,与一个管芯集合相关联的熵可以用作另一管芯集合的输入。进一步的实施例调节并且根据需要,加密地保护熵以供将来使用。经调节的熵可以满足某些熵约束,包括具有至少最小可接受的熵水平。
在某些情况下,定时器形式的硬件电路提供单调递增的计数器,以在设备内提供定时控制。因为设备的计划外功率损耗通常是与正在进行的处理无关的意外事件,所以可以收集各种计数中的较低位并将其用作低水平熵值。由于计划外的功率损耗而发生的其他操作可以附加地或替代地用作断电(紧急)事件期间的熵源。一旦设备恢复到通电状态,就可以根据需要检取和处理所收集的熵以供使用。
这些和各种实施例的其他特征和优势可以从图1的评述开始被了解,图1示出了数据处理系统100。数据处理系统100包括可操作地耦合到数据存储设备104的主机设备102。这仅仅是说明性的,因为可以根据需要使用任何数量的不同类型的数据处理环境,包括不涉及数据存储系统的环境。
图1中的主机设备102和数据存储设备104可以采用各种形式。在没有限制的情况下,主机设备102可以采用个人计算机、工作站、服务器、膝上型计算机、便携式手持设备、智能电话、平板设备、游戏控制台、RAID控制器等的形式。数据存储设备104可以是硬盘驱动器(HDD)、固态驱动器(SSD)、混合固态驱动器(HSSD)、拇指驱动器、光盘驱动器、集成存储器模块、多设备存储箱体等。数据存储设备104可以合并到主机设备作为内部组件或者可以是经由与主机设备102的通信路径(包括电缆连接、无线连接、网络连接等)可访问的外部组件。
出于本讨论的目的,将设想主机设备102是本地或远程客户端计算机,并且数据存储设备104为由主机设备生成的用户数据提供主存储器存储。存储设备包括控制器和非易失性存储器(NVM)。
图2示出了在一些实施例中总体上对应于来自图1的数据存储设备104的数据存储设备110。设备110被表征为固态驱动器(SSD),该固态驱动器(SSD)经由一个或多个外围组件接口快速(PCIe)端口与一个或多个主机设备(诸如图1中的102)通信。预期NVM包括NAND闪存,但是可以使用其他形式的固态非易失性存储器。
在至少一些实施例中,SSD根据NVMe(非易失性存储器快速)规范进行操作,该规范使得不同用户能够分配NVM集合(管芯集合)以用于数据的存储。每个NVM集合可以形成NVMe命名空间的一部分,该部分可以跨越多个SSD或包含在单个SSD内。
SSD 110包括具有前端控制器114、核控制器116和后端控制器118的控制器电路112。前端控制器114执行主机接口(I/F)功能,后端控制器118引导与存储器模块120的数据传输并且核控制器116为设备提供顶级控制。
每个控制器114、116和118包括单独的可编程处理器,该可编程处理器在合适的存储器位置中具有相关联的编程(例如,固件,FW),以及用于执行数据管理和传输功能的各种硬件元件。这仅仅是一个实施例的说明;在其他实施例中,单个可编程处理器(或少于/多于三个可编程处理器)可以被配置成用于使用合适存储器位置中的相关联的FW来执行前端、核和后端处理中的每一个。可代替地,可以使用基于纯硬件的控制器配置。各种控制器可以集成到单个片上系统(SOC)集成电路设备中,或者可以根据需要分布在各种分立设备中。
控制器存储器表示由控制器112用作本地存储器的各种形式的易失性和/或非易失性存储器(例如,SRAM、DDR DRAM、闪存等)。可以由存储器来存储各种数据结构和数据集合,包括一个或多个映射结构122、用于映射数据和其他控制信息的一个或多个高速缓存124、以及用于在数据传输期间临时存储主机(用户)数据的一个或多个数据缓冲器126。
基于非处理器的硬件辅助电路128可以根据需要通过一个或多个控制器实现某些存储器管理任务的卸载。硬件电路128不利用可编程处理器,而是使用各种形式的硬连线逻辑电路(诸如专用集成电路(ASIC)、门逻辑电路、现场可编程门阵列(FPGA)等)。
附加功能块可以在控制器112中的硬件和/或固件(诸如数据压缩块130和加密块132)中实现。数据压缩块130在写入操作期间将无损数据压缩应用于输入数据集,并且随后提供读取操作期间的数据解压缩。加密块132提供任意数量的加密函数以输入数据,包括加密、散列、解压缩等。
设备管理模块(DMM)134支持后端处理操作,并且可以包括:外码引擎电路136,其用于生成外码;设备接口逻辑电路137以及低密度奇偶校验(LDPC)电路138,该电路138被配置成用于生成LDPC代码,作为用于保护由SSD 110存储的数据的错误检测和校正策略的一部分。
存储器模块140对应于图1中的存储器104,并且包括以闪存142的形式分布在N个闪存管芯144上的非易失性存储器(NVM)。基本的闪存控制电子器件(未在图2中单独示出)可以被供应到每个管芯144以便经由多个通道(channel(lane))146来促进并行数据传输操作。
图3示出了在一些实施例中的图2的闪存142中的各种闪存管芯144。每个管芯144包含大量的存储器单元148。单元可以以具有各种控制线(例如,源、位、字线)的二维(2D)或三维(3D堆叠的)布置排列来访问单元。
多组存储器单元148被互连到公共字线以容纳页面150,该页面150表示一次可访问的最小数据单元。根据存储方案,可以将多页数据写入同一物理单元行,诸如在MLC(多级单元)、TLC(三级单元)、XLC(四级单元)等等的情况下。通常,可以使用2n个不同的电荷状态将n位数据存储到特定存储器单元148(例如,TLC使用八个不同的电荷电平来表示三位数据等)。页面的存储大小可以变化;在某些情况下,当前一代闪存页面可以存储16KB(16,384字节)的用户数据。
与多个页面相关联的存储器单元148被集成到擦除块152中,擦除块152表示可以在NAND闪存中同时被擦除的最小存储器单元组。许多擦除块152被转换成垃圾收集单元(GCU)154,该垃圾收集单元(GCU)154利用跨越不同管芯的擦除块,如下所述。GCU被作为单元进行分配和擦除。
在操作期间,分配所选择的GCU以用于存储用户数据,并且这一直持续到GCU被填满。一旦确定足够量的存储数据是陈旧的(例如,不再是最新版本),就可以执行垃圾收集操作以再循环GCU。这包括标识当前版本数据并将其重新定位到新位置,接着进行擦除操作以将存储器单元重置为擦除(未编程)状态。循环的GCU返回到分配池以用于后续分配以开始存储新的用户数据。在一个实施例中,每个GCU 154标称地使用来自多个管芯144(诸如32个管芯)中的每一个管芯的单个擦除块152。
每个管芯144可以进一步包括多个平面156。如图3所示,示例包括每管芯的两个平面,但可以使用每管芯的其他数量的平面(诸如每管芯的四个平面等)。通常,平面是管芯144的细分,该平面被布置有单独的读取/写入/擦除电路,使得给定类型的访问操作(诸如写入操作等)可以由平面中的每一个平面同时执行到各个平面内的公共页面地址。
图4示出了一些实施例中的闪存142的其他方面。提供总数K个管芯144并将其布置到物理管芯组158中。使用总数量的L个通道将每个管芯组158连接到单独的通道146。闪存模块142的闪存电子(FME)电路160控制通道146中的每一个通道以将数据传输到各个管芯组158和从各个管芯组158传输数据。在一个示例中,K被设置为128个管芯,L被设置为8个通道,以及每个物理管芯组具有16个管芯。以这种方式,可以使用相关联的通道在给定时间访问连接到给定通道146的16个管芯中的任何一个。
在一些实施例中,各种管芯被布置到一个或多个NVM集合中。NVM集合(也称为管芯集合)表示SSD的存储容量的一部分,该部分被分配以供特定主机(用户/所有者)使用。在管芯级粒度建立NVM集合,使得每个NVM集合将包含所选择的数量的可用管芯144。
第一示例NVM集合在图4中以162表示。第一集合162使用来自不同通道146中的每一个通道的单个管芯155。这种布置在服务于该集合的数据传输命令期间提供快速性能,因为所有八个通道146用于传输相关联的数据以服务于主机。该方法的限制是如果集合162正在被服务,则在该时间间隔期间不能服务其他NVM集合。尽管集合162仅使用来自每个通道的单个管芯,但是该集合也可以被配置为用于使用来自每个通道的多个管芯,诸如每通道四(4)个管芯,总共32个管芯。
第二示例NVM集合在图4中以164表示。该集合使用来自少于所有可用通道146的管芯144。与集合162相比,该布置在数据传输期间提供相对较慢的整体性能,因为对于给定大小的数据传输,将使用较少的通道传输数据。然而,这种布置有利地允许SSD同时服务多个NVM集合,只要这些集合不共享相同(例如,重叠)通道146。
在没有限制的情况下,预期本讨论将闪存142分成四(4)个大小相等的NVM(管芯)集合,每个集合具有存储器中可用的128个管芯144中的32个。这些可以布置成具有与管芯集合164一样的专用通道,或者与管芯集合162一样使用所有通道。
图5示出了根据一些实施例的将用户数据存储到闪存模块142的方式。映射单元(MU)170表示固定大小的数据块,该数据块由主机供应的一个或多个用户逻辑块地址单元(LBA)172组成。在没有限制的情况下,LBA 172可以具有第一标称大小(诸如512字节(B)、1024B(1KB)等),并且MU 170可以具有第二标称大小(诸如4096B(4KB)等)。数据压缩的应用可以使得每个MU在写入闪存142的实际位方面具有更小的尺寸。
如上所述,在一个示例中,每个页面150代表标称16KB的用户数据容量。因此,每个四(4)个MU 170的集合将被组合在一起以形成标称16KB的用户数据的写入单元(WU)174。
通过向WU 174添加内码值178来形成码字(CW)176。可以设想,内码构成低密度奇偶校验(LDPC)码,尽管可以使用其他纠错方案。码位的数量将变化,但对于16KB的用户数据可能大约为10KB左右,这取决于闪存142的结构。如将认识到的,LDPC码能够在读操作期间快速检测和纠正读取错误。内部码178可以由LDPC模块138(参见图2)生成,以便将WU 174写入闪存做准备。
一些码字176被分组在一起以形成具有N个元素的奇偶校验集180。名义上,值N将基于给定GCU 154中的擦除块152的数量,尽管这不是必需的。对于本示例,预期N=32,尽管可以使用其他数量的元件。如图5所示,奇偶校验集180将具有N-1个码字176(例如,N-1=31)加上添加的奇偶校验值182。各种码字176和相关联的奇偶校验值182中的每一个被写入为GCU中的不同数据页。更具体地,如所示出的,用于给定奇偶校验数据集的码字和奇偶校验值可以跨相应的管芯写入到相同的页面和相同的指定擦除块(例如,EB 0)。
奇偶校验值182表示外码并且可以采用任何数量的形式。在一个实施例中,在没有限制的情况下,奇偶校验值182表示应用于N-1个码字176的异或(XOR)函数的输出。
图6示出了RAID缓冲器184,该RAID缓冲器184被配置成用于接收和累积每个奇偶校验集180中的31个码字176以生成奇偶校验值182。以此方式,即使在单个管芯故障的情况下,也可以重构来自奇偶校验集的数据。由此得出,对于开销比率约为3.2%的情况,标称16KB的奇偶校验数据在每个奇偶校验集中保护(16KB)(31)=496KB的用户数据。
使用元数据管理由SSD 110存储的奇偶校验集。元数据提供映射结构(诸如图2中的映射数据122)以跟踪闪存142内的各种数据块的位置。在服务于读取命令期间,通常有必要在闪存142内定位存储所请求的块(例如,LBA)的最新版本的物理地址,以便控制器可以调度并执行读取操作以将所请求的数据返回给主机。
在服务于写入命令期间,新数据被写入新位置,但是仍然有必要定位与新写入的块共享相同逻辑地址的先前数据块,以便可以更新元数据以将块的先前版本标记为陈旧,并提供前向指针或其他信息以指示数据块的最新版本的新位置。可以以类似于图5所阐述的方式布置的映射奇偶校验集的形式周期性地将映射更新写入闪存。可以设想,尽管不一定要求每个管芯集合都将具有相应的集合控制器,该集合控制器独立地生成并实现线程以便存储用户数据奇偶校验集并管理相关管芯集合的相应映射数据。
图7示出了一些实施例中的SSD 110的加密功能电路190。电路190通常对应于图2中的加密电路132,并且可以经由可编程处理器以硬件和/或固件来实现。
通常,加密功能电路190被布置成用于对输入数据(例如,明文)的各个集合执行一个或多个加密函数,以生成经加密处理的输出数据(例如,密文)。该操作可以包括对用户数据应用一个或多个级别的加密以及存储到闪存的映射数据。SSD内的其他数据可以被加密或以其他方式加密地保护,诸如加密密钥和存储在本地存储器中的其他控制数据。
加密函数可以包括加密算法、解密算法、散列函数等。可以提供辅助数据的各种输入作为算法的一部分,包括加密密钥、计数器值和熵值。可以从密钥库或设备内的其他位置提供此类值。
熵值由熵管理器电路200管理,如图8所示。熵管理器电路200操作用于从各种源收集和调节熵。熵管理器电路200的输入包括电源管理电路202、硬件定时器阵列204、集合控制器206和RAID缓冲器208。可以根据需要使用其他源。
电源管理电路202管理对SSD 110的电源应用。预期将从外部源向SSD提供一个或多个源电压(诸如标称3.3Vdc等)。电源管理电路将持续监视电源输入,并在电平下降到可接受的阈值以下时提供指示,指示计划外断电事件。由于诸如电力线上的瞬变、用户对SSD的物理拔出或停用、故障条件等的诸多因素,可能发生供电损失。
电源管理电路202包括以电容器、电池等形式的本地电源,以提供临时电源以使SSD 110能够响应于检测到的电力损失事件而进入断电(紧急)操作时段。在紧急事件期间,SSD 110将执行各种操作以在临时电力耗尽之前将现有数据和控制值保存到NVM。紧急处理的一部分可以包括熵的收集和存储以供SSD将来使用。
硬件定时器204在一些标称频率下提供单调递增的计数。计数用于定时控制,包括在处理各个线程期间生成时钟信号、时间戳等。集合控制器206可以表示单独的物理和/或功能控制器操作能力,以独立地控制与相应的管芯集合的数据传输。
RAID缓冲器208通常对应于图6中的RAID缓冲器184并且用于生成由集合控制器206使用的奇偶校验值和其他控制数据。在一些情况下,缓冲器208可以是共享资源,使得控制器112使用机制来仲裁各种集合控制器之间的这些元件的共享使用。
图9更详细地示出了SSD 110。映射数据122(图2)可以被布置为包括第一级映射210和第二级映射212的前向映射。第一级别映射210可以被加载到本地SRAM 214中以供集合控制器206快速访问。第一级别映射210提供映射页面,以针对给定范围的逻辑地址标识第二级别映射212中的条目。
第二级映射212可以被划分为多个(在这种情况下,四个)部分216、218、220和222,这四个部分对应于用于四个独立主机设备的四(4)个管芯集合。第二级映射提供闪存过渡层(FTL)以关联闪存中的逻辑到物理地址。第二级映射部分216、218、220和222以及临时高速缓存的用户数据224可以被存储在本地高速缓冲存储器226中,本地高速缓冲存储器226可以采用DDR DRAM的形式。
图9中示出了来自图2的控制器112,包括上述熵管理器电路200、各种集合控制器206、以及映射管理器电路230和垃圾收集管理器电路232。映射管理器控制对地图数据的更新,并且垃圾收集管理器执行垃圾收集操作以在垃圾收集操作期间重新定位当前版本用户数据块(MU 170)和擦除GCU 154。
熵的一个重要方面是变化应该与现有过程具有很小相关性或没有相关性。例如,使用与给定用户的操作相关联的定时值或其他输入来为该用户提供熵是不适当的。这是因为用户至少对代表用户执行的操作的定时有一些控制。因此,基于给定用户的操作收集熵并使用该熵来生成供该用户使用的随机数是递归的并且可能潜在地呈现对边通道攻击的脆弱性。
因此,如图10所示,熵管理器电路200操作用于隔离提供给各种集合控制器206中的每一个集合控制器的熵,以使得来自给定熵源234的熵独立于相关联的集合控制器的操作。熵可以独立于单个集合控制器,或者可以独立于所有控制器。
图11示出了在一些实施例中由熵管理器电路200执行的熵收集操作的序列图240。所检测的SSD断电事件最初在框242处检测到。如上所述,这可能是由图8中的电源管理电路202提供的检测信号引起的。
响应于断电指示,由SSD 110发起紧急操作以停止进一步的正常操作,并且替代地准备将设备转换到停用状态。准备步骤包括完成所有现有的写入命令,将任何附加的高速缓存的写入数据和状态参数刷新到NVM(例如,闪存142),以及将映射数据集更新并存储到NVM。
在这些操作期间,熵管理器电路200收集各种熵值并将它们也存储到NVM。在一个实施例中,熵管理器电路在接收到关闭指示时检查各种硬件定时器204(图8)的状态。可以将现有计数器值中的较低有效位收集为低熵值,以供一些或所有集合控制器使用。
在其他的实施例中,熵管理器电路可以捕获其他熵值,诸如在刷新用户数据期间生成的各种RAID缓冲器208的内容、在紧急操作期间的状态参数和映射数据。在这种情况下,可以提供与一个集合控制器相关联的数据作为不同集合控制器的输入熵值。这是基于以下事实:各个管芯集合由不同的用户独立操作,使得来自一个用户的输入应该与来自另一个用户的输入具有很少相关性或没有相关性。
由此得出,熵管理器电路可以操作用于收集可以应用于所有集合的全局熵值,以及可以应用于某些集合但不应用于其他集合的特定熵值两者。一旦将所有各种数据集合和其他值安全地存储到NVM,则SSD 110进入停用(关闭)状态,如框248所示。
图12示出了在SSD 110的重新初始化期间执行的熵调节例程的序列图250。由于能量预算和定时要求,预期在图11的关闭序列期间收集的熵将在随后的SSD的重新初始化期间被调节。然而,这不是必需的,因为至少部分或全部调节可以在SSD停用之前根据需要进行。
在框252处,由电源管理电路202检测到SSD通电事件。这可以来自特定激活信号、外部电压线上的源电压的再供应等。无论如何,SSD前进至框254处以发起用于加载固件的引导序列和将SSD返回到可操作地就绪状态所需的各种状态参数。
作为初始化过程的一部分,熵管理器电路200在框256处操作用于检取和调节先前存储的熵,所述熵随后在框258处的正常操作期间使用。
熵管理器电路200对熵进行调节的方式可以如图13所示那样执行。图13示出了结合N个可用熵源262的熵管理器。如上所述,这些可以根据需要变化,并且可以包括硬件定时器、缓冲器等。
熵管理器电路200包括多个电路(基于硬件或固件的模块),所述多个电路包括提取模块264、熵限定(qualification)模块266、加密/解密模块268和摘要(HMAC)生成器模块270。由电路200生成的经调节的熵可以被临时存储在存储器272中,等待由一个或多个加密函数274使用(反过来,该加密函数又可以对应于图7中的函数电路190)。在一些情况下,存储器272可以是易失性的,使得在系统关闭或其他重置事件时熵不会保留在系统中,而是在按需的基础上或多或少地使用。如将理解的,本公开设想了通常不建议将经调节的熵维持在易于访问的、未受保护的形式,因为攻击方可以使用它作为车辆对系统进行侧通道攻击。
提取模块264包括熵提取器电路,该电路适于从一个或多个低熵源提取熵。来自提取器的输出比特序列作为输入提供给限定模块266,该限定模块266从其生成经调节的熵。模块266可以采用任何数量的形式,并且可以被设计用于执行各种统计测试以生成具有必要水平的指定熵和其他因素的经调节的熵。
限定模块266可以考虑熵的来源(以及根据需要相应的信任级别)。模块266的实现可以包括伽罗瓦(Galois)/计数器模式(CGM)处理、随机数生成、应用通用或安全散列算法(SHA)散列函数等。在一些情况下,可以生成固定大小的经调节的熵块(诸如128位(32字节)块),并且此类熵的多个块将连续地传递到存储器272。在一些情况下,HMAC值可用于检测对存储的熵值的篡改。
可以设想,尽管不需要要求响应于紧急事件而将生成熵块,因为当这将发生时它是不可预测的并且各种熵值(例如,计数、缓冲值等)将不能基于内部处理而被预测。在一些情况下,熵管理器电路可以随机地分配所提取的熵以供集合控制器206中的不同的控制器使用,使得即使攻击者试图通过提供故意关闭来对系统进行博弈,熵的加密、调节和分配也是不可跟踪的。
应当理解的是本文提出的各种实施例提供多个益处。满足处理设备需求的经调节的熵可以被加密地保护和被存储以供将来使用,而不会使存储的熵易受到发现、篡改和/或攻击。给定设备使用的所有熵可以以这种方式加密地保护,或者仅保护备用电源所需的熵量。熵可以用于任何合适的目的,包括生成加密密钥、随机数值、种子值、散列输入等。
尽管上述各种实施例已被引导到数据存储设备的环境中,但这仅仅是示例性的而非限制性的。基本上任何利用熵的处理环境都可以从本文公开的各种原理的实现中受益。
应当理解,尽管在前面的说明书中阐述了本公开的各实施例的许多特征和优势,然而这种详细说明仅为解说性的,并可对细节作出改变,尤其是本公开原理内的各个部件的结构和配置,由其中所附权利要求书表达的术语的广泛含义指示其全部范围。
Claims (20)
1.一种计算机实现的方法,包括:
操作处理设备以在主机设备和非易失性存储器NVM之间传输数据;
检测与所述处理设备相关联的断电事件;
在存储器中收集和存储与所述断电事件相关联的熵;以及
随后在所述处理设备的后续重新初始化之后使用所收集和所存储的熵作为加密函数的输入,所述加密函数随后用于所述主机设备和所述NVM之间传输的数据。
2.如权利要求1所述的方法,其特征在于,所述处理设备是包括所述NVM和控制器电路的数据存储设备。
3.如权利要求1所述的方法,其特征在于,从硬件定时器收集所述熵,所述硬件定时器生成用于控制所述主机设备与所述NVM之间的数据传输的定时的单调递增计数。
4.权利要求1所述的方法,其特征在于,从用于生成奇偶校验值的缓冲器收集所述熵,所述奇偶校验值用于传输到所述NVM的用户数据的奇偶校验集中的读取错误的错误检测和校正。
5.如权利要求1所述的方法,其特征在于,所述处理设备包括具有被划分成多个管芯集合的半导体存储器管芯群的SSD,其中每个管芯集合独立地存储来自相关联的用户的数据,其中,所述所收集的并且所存储的与所述断电事件相关联的熵与第一管芯集合相关联,并且其中所述所收集的并且所存储的与所述断电事件相关联的熵被用作加密函数的输入,所述加密函数用于加密地保护存储到不同的、第二管芯集合的数据。
6.如权利要求5所述的方法,其特征在于,所述熵包括RAID缓冲器的内容,所述RAID缓冲器用于在刷新操作期间生成奇偶校验值以将数据刷新到所述第一管芯集合。
7.如权利要求1所述的方法,进一步包括通过对所述熵应用加密函数来调节所述熵。
8.如权利要求1所述的方法,其特征在于,所述熵用于生成随机数。
9.如权利要求1所述的方法,进一步包括检测向所述处理设备恢复电力的后续通电事件,并且在检测到所述后续通电事件之后应用加密函数以限定所述熵。
10.一种数据存储设备,包括:
非易失性存储器(NVM),所述非易失性存储器(NVM)被布置成用于存储来自至少一个主机设备的用户数据块;
电源管理电路,所述电源管理电路被配置成用于检测与所述数据存储设备相关联的断电事件;
熵管理器电路,所述熵管理器电路被配置成用于响应于所述断电事件而收集与所述数据存储设备的状态相关联的熵,并且用于将所收集的熵存储在所述NVM中;以及
控制器电路,所述控制器电路被配置成用于响应于所述数据存储设备的后续重新初始化而将所述数据存储设备转换到正常操作模式,使用由所述熵管理器电路收集和存储的所述熵来对随后存储到所述NVM的数据进行加密。
11.如权利要求10所述的设备,其特征在于,所述熵从硬件定时器中被收集,所述硬件定时器生成用于控制所述主机设备与所述NVM之间的数据传输的定时的单调递增计数,并且其中所述熵管理器电路在与接收到所述断电事件的指示相关联的时刻从所述硬件定时器的所述单调递增计数中选择一组最低有效位的一部分。
12.如权利要求10所述的设备,其特征在于,所述熵管理器电路从用于生成奇偶校验值的缓冲器收集所述熵,所述奇偶校验值用于传输到所述NVM的用户数据的奇偶校验集中的读取错误的错误检测和校正。
13.如权利要求10所述的设备,其特征在于,所述数据存储设备被表征为:具有被划分成多个管芯集合的半导体存储器管芯群的SSD,其中每个管芯集合独立地存储来自相关联的用户的数据,其中,由所述熵管理器电路所收集的并且所存储的与所述断电事件相关联的所述熵与第一管芯集合相关联,并且其中所述所收集的并且所存储的与所述断电事件相关联的熵被用作加密函数的输入,所述加密函数用于加密地保护存储到不同的、第二管芯集合的数据。
14.如权利要求13所述的设备,其特征在于,与所述第一管芯集合相关联的所述熵是在RAID缓冲器中生成的奇偶校验值,所述奇偶校验值用于检测和校正跨所述第一管芯集合中的多个所述管芯写入的用户数据的奇偶校验数据集中的错误。
15.如权利要求13所述的设备,其特征在于,与所述第一管芯相关联的所述熵是在RAID缓冲器中生成的奇偶校验值,所述奇偶校验值用于检测和校正提供闪存过渡层以标识存储到所述第一管芯集合的用户数据块的物理地址的映射数据集中的错误。
16.如权利要求10所述的设备,其特征在于,所述熵管理器电路进一步被配置成用于通过对所述熵应用加密函数来调节所述熵以生成一组经调节的熵,并用于将所述一组经调节的熵存储到所述NVM。
17.如权利要求10所述的设备,其特征在于,所述电源管理电路进一步被配置成用于检测向所述数据存储设备恢复电力的后续加电事件,其中,所述熵管理器电路进一步被配置成用于在检测到所述后续加电事件之后应用加密函数来限定所述熵,并且其中,所述控制器电路使用经限定的熵对存储到所述NVM的数据进行加密。
18.一种固态驱动器(SSD),包括:
非易失性存储器(NVM),包括划分成多个管芯集合的多个NAND闪存管芯,每个管芯集合被布置成用于存储与不同用户相关联的用户数据块;
电源管理电路,所述电源管理电路被配置成用于检测与所述SSD相关联的断电事件;
熵管理器电路,所述熵管理器电路被配置成用于在存储器中收集和存储与和第一管芯集合相关联的数据传输的调度不相关的熵;以及
控制器电路,所述控制器电路被配置成用于响应于所述SSD的后续重新初始化以将所述SSD转换到正常操作模式,使用由所述熵管理器电路收集和存储的所述熵来对后续存储到不同的、第二管芯集合的数据进行加密。
19.如权利要求18所述的SSD,进一步包括硬件定时器,所述硬件定时器提供单调递增的计数以控制与所述各个管芯集合的数据传输的定时,并且其中由所述熵管理器电路收集和存储的所述熵包括在由所述熵管理器电路接收到所述断电事件的指示时、来自所述硬件定时器的当时存在的计数的一部分。
20.如权利要求18所述的SSD,进一步包括RAID缓冲器,所述RAID缓冲器被配置成用于对码字执行异或(XOR)操作以生成写入第一管芯集合的第一奇偶校验集的奇偶校验值,其中响应于来自写入所述第一管芯集合的所述第一奇偶校验集的所述奇偶校验值生成由所述熵管理器电路收集并且存储的熵,并且其中所述控制器电路使用所述熵来对写入到写入第二管芯集合的第二奇偶校验集合的码字进行加密。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/021,823 US11017098B2 (en) | 2018-06-28 | 2018-06-28 | Collection of uncorrelated entropy during a power down sequence |
US16/021,823 | 2018-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110661612A CN110661612A (zh) | 2020-01-07 |
CN110661612B true CN110661612B (zh) | 2023-07-28 |
Family
ID=69008183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910568030.5A Active CN110661612B (zh) | 2018-06-28 | 2019-06-27 | 断电序列期间不相关熵的收集 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11017098B2 (zh) |
CN (1) | CN110661612B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210079549A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
CN112487380B (zh) * | 2020-12-16 | 2024-04-05 | 江苏国科微电子有限公司 | 一种数据交互方法、装置、设备及介质 |
US11934662B2 (en) * | 2021-11-01 | 2024-03-19 | Innogrit Technologies Co., Ltd. | Solid state storage system with data loss prevention and user alert |
US11853160B2 (en) | 2022-05-27 | 2023-12-26 | Western Digital Technologies, Inc. | Variable length ECC code according to data entropy in NVMe key value pair devices |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687772B1 (en) | 1998-02-09 | 2004-02-03 | Agilent Technologies, Inc. | Transducers with electronic data sheets that enable transducer access using multiple types of transducer object models |
US6218973B1 (en) | 1999-03-05 | 2001-04-17 | Motorola, Inc. | Binary random number generator |
US7330328B2 (en) | 2006-02-17 | 2008-02-12 | Seagate Technology Llc | Random number generation using back electromotive force (BEMF) values |
US20100174766A1 (en) | 2009-01-06 | 2010-07-08 | Seagate Technology Llc | Magnetic Precession Based True Random Number Generator |
US9037624B1 (en) | 2012-08-03 | 2015-05-19 | Seagate Technology Llc | Using memory access times for random number generation |
US9152380B2 (en) * | 2013-03-12 | 2015-10-06 | Qualcomm Incorporated | Interrupt driven hardware random number generator |
US9529570B2 (en) | 2014-03-19 | 2016-12-27 | Seagate Technology Llc | Random number generation using pulsed programming parameters |
US9569176B2 (en) | 2014-10-30 | 2017-02-14 | Seagate Technology Llc | Deriving entropy from multiple sources having different trust levels |
US10348704B2 (en) * | 2015-07-30 | 2019-07-09 | Helder Silvestre Paiva Figueira | Method for a dynamic perpetual encryption cryptosystem |
US9971566B2 (en) | 2015-08-13 | 2018-05-15 | Arizona Board Of Regents Acting For And On Behalf Of Northern Arizona University | Random number generating systems and related methods |
US9766816B2 (en) * | 2015-09-25 | 2017-09-19 | Seagate Technology Llc | Compression sampling in tiered storage |
US10678924B2 (en) * | 2016-08-10 | 2020-06-09 | Qualcomm Incorporated | Hardware-based software-resilient user privacy exploiting ephemeral data retention of volatile memory |
US10380028B2 (en) * | 2016-12-30 | 2019-08-13 | Western Digital Technologies, Inc. | Recovery of validity data for a data storage system |
US10536266B2 (en) * | 2017-05-02 | 2020-01-14 | Seagate Technology Llc | Cryptographically securing entropy for later use |
-
2018
- 2018-06-28 US US16/021,823 patent/US11017098B2/en active Active
-
2019
- 2019-06-27 CN CN201910568030.5A patent/CN110661612B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110661612A (zh) | 2020-01-07 |
US11017098B2 (en) | 2021-05-25 |
US20200004971A1 (en) | 2020-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661612B (zh) | 断电序列期间不相关熵的收集 | |
US10536266B2 (en) | Cryptographically securing entropy for later use | |
JP5662037B2 (ja) | 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング | |
US9443111B2 (en) | Device security using an encrypted keystore data structure | |
US10303622B2 (en) | Data write to subset of memory devices | |
CN110892673A (zh) | 安全硬件签名以及相关方法和应用 | |
US20160028544A1 (en) | Random number generator functions in memory | |
US11139959B2 (en) | Stream ciphers for digital storage encryption | |
US9864654B2 (en) | Detecting data indicated as being uncorrectable at a data storage device | |
US20140032935A1 (en) | Memory system and encryption method in memory system | |
US9430639B2 (en) | Data de-duplication in a non-volatile storage device responsive to commands based on keys transmitted to a host | |
CN101484905A (zh) | 为存储装置提供安全实现的方法和系统 | |
US9626517B2 (en) | Non-deterministic encryption | |
CN110795497A (zh) | 分布式存储系统中的协同压缩 | |
TW202038086A (zh) | 主機型快閃記憶體維護技術 | |
US20150006911A1 (en) | Wear Leveling Non-Volatile Memory and Secure Erase of Data | |
US11422738B2 (en) | Data storage device, method of operating the same, and storage system having the same | |
US20130326114A1 (en) | Write mitigation through fast reject processing | |
US11349643B2 (en) | Techniques for using local key management in a data storage system | |
CN112887077A (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
WO2023073368A1 (en) | Methods and systems for secure data storage | |
US20220045850A1 (en) | Memory system encrypting data | |
US20220261162A1 (en) | Memory system | |
US11263153B1 (en) | Data accessing method using data protection with aid of advanced encryption standard processing circuit, and associated apparatus | |
US20100211801A1 (en) | Data storage device and data management method thereof |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |