CN114764512A - 加密密钥管理 - Google Patents

加密密钥管理 Download PDF

Info

Publication number
CN114764512A
CN114764512A CN202210014603.1A CN202210014603A CN114764512A CN 114764512 A CN114764512 A CN 114764512A CN 202210014603 A CN202210014603 A CN 202210014603A CN 114764512 A CN114764512 A CN 114764512A
Authority
CN
China
Prior art keywords
volatile memory
key
memory
memory device
memory controller
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
CN202210014603.1A
Other languages
English (en)
Inventor
D·赫尔顿
J·赫里茨
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114764512A publication Critical patent/CN114764512A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • G11C14/0018Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell whereby the nonvolatile element is an EEPROM element, e.g. a floating gate or metal-nitride-oxide-silicon [MNOS] transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/0063Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is an EEPROM element, e.g. a floating gate or MNOS transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及加密密钥管理。本文中所描述的系统和方法的实例提供擦除用于对非易失性存储器装置的数据存取的加密密钥。存储器控制器可产生用于对非易失性存储器装置的数据存取的加密密钥;且,为了提供存储在所述非易失性存储器装置上的数据的安全性,所述存储器控制器可将所述加密密钥存储在所述存储器控制器的本地高速缓存器中。可响应于使存储器控制器失去电力或断电而擦除所述加密密钥。有利的是,当所述存储器控制器(或实施所述存储器控制器的计算装置)失去电力时,可无法存取存储在所述非易失性存储器装置处的所述数据。因此,如果恶意行为者为了获取所述数据而物理地去除(或窃取)实施所述存储器控制器(例如,膝上型计算机)的计算装置,那么可无法存取存储在所述非易失性存储器装置上的所述数据。

Description

加密密钥管理
技术领域
本公开的实施例大体上涉及一种存储器,且更确切地说,在所说明实施例中的一或多个中,涉及擦除用于对非易失性存储器装置的数据存取的加密密钥。
背景技术
新兴存储器架构设计成处理存储器存取请求的范围,且可包括具有不同特征的存储器。举例来说,存储器可包括动态随机存取存储器(DRAM)和相变存储器(PCM)。非易失性存储器可为极度不均匀的。举例来说,某些NAND快闪存储器(例如,基于页类型)可比其它存储器更快地读取或写入,时延随其磨损而变化,或不同的NAND快闪存储器中具有不同层级的单元(例如,多层级单元(MLC))。新兴存储器架构还可利用非易失性双列直插式存储器模块(NVDIMM),如NVDIMM-P或NVDIMM-F。NVDIMM通常包括非易失性存储器装置和易失性存储器装置两者。非易失性存储器(如NAND存储器)通常甚至在暂时地或永久地去除电力时仍保留其内容。当永久地或在一些情况下暂时地从装置去除电力时,易失性存储器通常将丢失其内容。然而,与非易失性存储器相比,易失性存储器可具有一些改进特征(例如,易失性存储器可更快)。
发明内容
在一个方面,本公开涉及一种方法,其包含:将耦合到易失性存储器装置的高速缓存器写入到耦合到易失性存储器装置的多个非易失性存储器装置中的至少一个非易失性存储器装置的加密密钥;以及响应于响应于使易失性存储器装置断电,擦除至少一个非易失性存储器装置的所存储加密密钥。
在另一方面中,本公开涉及一种方法,其包含:从主机计算装置接收对多个非易失性存储器装置中的非易失性存储器装置的存储器存取请求;响应于存储器存取请求,在包含高级加密标准(AES)密码的加密逻辑处对与存储器存取请求相关联的数据的密钥进行加密;将存储器控制器的高速缓存器写入到多个非易失性存储器装置中的至少一个存储器装置的密钥;以及将用于存取与存储器存取请求相关联的数据的密钥提供到至少一个非易失性存储器装置。
在另一方面中,本公开涉及一种设备,其包含:加密逻辑,其配置成对多个非易失性存储器装置中的至少一个非易失性存储器装置的密钥进行加密;以及易失性存储器的高速缓存器,其配置成存储密钥;以及存储器总线,其耦合到包括至少一个非易失性存储器装置的多个非易失性存储器装置,所述加密逻辑进一步配置成经由存储器总线将密钥提供到至少一个非易失性存储器装置。
附图说明
图1为根据本文中所描述的实例交互的存储器系统的示意性图示。
图2为根据本文中所描述的实例交互的存储器系统的示意性图示。
图3为根据本文中所描述的实例的方法的示意性图示。
图4为根据本文中所描述的实例的方法的示意性图示。
具体实施方式
加密方法可使用块密码来提供数据的安全性,例如,使用密钥来认证数据。举例来说,密钥可在加密时将数据从明文转换为密文;且在解密时将数据从密文转换为明文。块密码提供信息位的块转变以对数据进行加密(或相反地,解密)。举例来说,高级加密标准(AES)为块密码的类型。另外,块密码可在加密装置/方法内在不同模式下操作,例如,作为使用计数器的“流密码”。举例来说,计数器可用作更改由块密码使用的基础密钥,使得密钥随时间而变化;继而更改加密数据流中的数据的基础。举例来说,伽罗瓦/计数器模式(GCM)为流密码的类型。
其可复杂且繁琐的以确保NVDIMM装置的安全。
本文中所描述的系统和方法的实例提供擦除用于对非易失性存储器装置的数据存取的加密密钥。定期存取存储器装置的计算装置可通过存储器控制器执行这一操作。举例来说,主机计算装置可产生通过存储器控制器路由的存储器存取请求,所述存储器控制器控制对可为非易失性存储器装置的各种耦合的存储器装置的存取。一般来说,存储器存取请求可为或包括命令和地址,例如存储器命令和存储器地址。在各种实施方案中,存储器存取请求可为或包括用于耦合的非易失性存储器装置处的读取操作、写入操作、激活操作或刷新操作的命令和地址。一般来说,所接收的命令和地址可促进耦合的存储器装置处的存储器存取操作,如耦合的存储器装置的读取操作、写入操作、激活操作和/或刷新操作的执行。
使用本文中所描述的系统和方法,存储器控制器可产生可用于存取存储在一或多个非易失性存储器装置中的数据的加密密钥。举例来说,加密密钥可写入到耦合到易失性存储器装置的高速缓存器或作为易失性存储器装置的高速缓存器。为了提供存储在非易失性存储器装置上的数据的安全性,存储器控制器可将加密密钥存储在存储器控制器的本地高速缓存器中。举例来说,存储器控制器处的本地高速缓存器可为易失性存储器装置。在实例中,因为加密密钥存储在存储器控制器的易失性存储器装置中,所以加密密钥在存储器控制器失去与电源的电连接或断电时被擦除。举例来说,可响应于断电(例如,接收到的断电指示)或借助于失去电力的易失性存储器装置而擦除加密密钥。因此,当存储器控制器(或实施所述存储器控制器的计算装置)失去电力时,可能无法存取存储在非易失性存储器装置处的数据。
在一些存储器系统实施方案中,存储在非易失性存储器装置上的数据可在使用时提供额外安全性,其中仅在存储器控制器被供电时存取数据。举例来说,如果恶意行为者物理地去除(例如,窃取)包括存储器控制器(例如,膝上型计算机)的计算装置,那么当存储器控制器失去电力或计算装置失去电力时,将从存储器控制器的高速缓存器擦除用于存取存储在计算装置的非易失性存储器装置上的数据的加密密钥。在实例中,一旦存储器控制器失去与电源的电连接,就从已存储加密密钥的高速缓存器擦除加密密钥。因此,在不具有加密密钥的情况下,无法存取存储在非易失性存储器装置上的数据。因此,有利的是,本文中所描述的实例系统和方法为由存储器控制器存取的存储在非易失性存储器装置上的数据提供安全性。在一些实例中,非易失性存储器装置可为实施为NVDIMM的NAND存储器,其根据NVDIMM协议(如NVDIMM-P或NVDIMM-F)与存储器控制器交互。
一般来说,存储器控制器提供对存储在非易失性存储器装置上的数据的存取。在本文所描述的实例中,存储器控制器可使用加密密钥来提供对存储在非易失性存储器装置上的数据的认证存取。在一些实施方案中,可专门针对存储在非易失性存储器装置上的待存取的数据产生加密密钥。举例来说,存储器控制器可针对与所接收存储器存取请求相关联的数据产生加密密钥。基于存储器存取请求,可例如使用所产生的加密密钥以认证方式存取由主机计算装置读取或写入到各种非易失性存储器装置的数据。举例来说,可根据AES密码加密所提供的密钥,例如加密为密钥。存储器控制器的认证逻辑可利用来自伪随机值产生器的伪随机值和所提供的密钥(例如,磁盘加密密钥(DEK))来产生加密密钥,例如密钥。在AES密码的实例实施方案中,伪随机值可用作AES密码的初始化向量(IV)。如本文中所描述,为简单起见,所产生的加密密钥可称为非易失性存储器装置的密钥。有利的是,密钥可为由存储器控制器存取到非易失性存储器装置的特定数据提供安全性。举例来说,可使用密钥对所存取(例如,读取或写入)的数据进行加密或解密(例如,作为明文或密文)。
图1为根据本文中所描述的实例布置的系统100的示意性图示。系统100包括计算装置102,其包括可控制一或多个非易失性存储器装置108的存储器控制器104。存储器控制器104包括可使用处理器(例如,参考图2描述其实例)来实施的加密逻辑106,和高速缓存器110。可使用易失性存储器装置实施高速缓存器110。存储器控制器104经由相应的存储器总线112耦合到非易失性存储器装置108。在操作中,加密逻辑106可产生密钥116,其可被加密且可用于存取非易失性存储器装置108上的数据。举例来说,密钥116可由存储器控制器104用来认证对非易失性存储器装置108的存取。加密逻辑106可将密钥116存储在高速缓存器110中。计算装置102可电连接到为计算装置102供电的电源114。继而,存储器控制器104也可由电源114供电。当电源114与计算装置102电断开时,计算装置102失去电力且因此存储器控制器104也失去电力,从而使得密钥116从高速缓存器110擦除。有利的是,在将密钥116写入高速缓存器110(其可为易失性存储器装置)中时,高速缓存器110在与电源114电断开后擦除数据或丢失数据。
可使用多种电源中的任一种来实施有线和无线的电源114。举例来说,可使用AC电源(例如,来自标准壁式插座)。可在一些实例中使用DC电源(例如,来自一或多个电池)。在一些实例中,可提供能量收集电路系统且将其用作电源。在一些实例中,还可提供磁性、感应或其它无线电源装置。
在一些实例中,当电源114与计算装置102电断开时,计算装置102失去电力,且存储器控制器104根据比较阈值操作电压以检测存储器控制器104是否已失去电力而失去电力。举例来说,当存储器控制器104通过低于存储器控制器104的阈值电压时,存储器控制器104失去电力。在实施为印刷电路板的部分的存储器控制器104的实例中,如果阈值操作电压为5V印刷电路板电压,那么当不再将5V电压供应到存储器控制器104时,存储器控制器104可失去电力,这是因为计算装置102使用电源114将5V印刷电路板电压维持在存储器控制器104处。因此,存储器控制器104失去电力,因为供应到存储器控制器104的电力通过低于5V电压,从而使得密钥116从高速缓存器110擦除。
另外或替代地,在使用存储器控制器104的阈值电压来检测存储器控制器104是否已失去电力时,存储器控制器104可包括计时器电路(图1中未描绘)。计时器电路可从由耦合到印刷电路板的电池单独供电的印刷电路板接收时钟信号。计时器电路可由存储器控制器104用来测量存储器控制器104失去电力之后历经的时间量。在一些实例中,存储器控制器104可将失去电力以来历经的时间量(如由计时电路所测量)与阈值时间量进行比较。如果基于时间量与阈值时间量的比较,时间量小于阈值时间量,那么存储器控制器104将不从高速缓存器110擦除密钥116,例如存储器控制器104将维持与高速缓存器110的电池连接(例如,耦合在其上实施存储器控制器104的印刷电路板的电池),同时时间量由计时器电路测量且存储器控制器104执行比较。
阈值时间量可对应于电力失去事件,如电力线闪烁,其中计算装置102失去电力的时间量小于阈值时间量。阈值时间量可存储在存储器或高速缓存器(例如,高速缓存器110)中。阈值时间量可为由计算装置102的用户设定的参数,或可基于闪烁度量,如由IEEE 1453标准和/或IEC 61000-4-15定义的电力闪烁度量。因此,当电源114与计算装置102电断开时,存储器控制器104可使用如由计时器电路所测量的时间量和阈值操作电压来检测存储器控制器104是否已失去电力。如果所测量的时间量超过阈值时间量且操作电压超过阈值操作电压,那么存储器控制器104将检测到电源114已断开,从而使得密钥116从高速缓存器110擦除。在存储器控制器104维持与高速缓存器110的电池连接的实例中,存储器控制器104将断开和/或解耦与高速缓存器110的电池连接,使得高速缓存器110失去电力供应或操作电压。
非易失性存储器装置108可存储由计算装置102检索和/或供其存取的数据。作为一些实例,计算装置102可为数据中心处的服务器或数据中心处的膝上型计算机,且计算装置102可处理供托管在计算装置102上的一或多个神经网络使用的数据集(例如,图像或内容数据集)。数据集可存储在非易失性存储器装置108中的一或多个中(例如,数据集可分布在非易失性存储器装置108中)。在一些实施方案中,数据集可包括个人可识别信息(PII),使得服务器的操作者可能希望存储在非易失性存储器装置108上的数据的安全性。举例来说,如果恶意行为者为了获取存储在非易失性存储器装置108上的PII数据而物理地去除(或窃取)包括存储器控制器104的计算装置102,那么当存储器控制器104失去电力或实施存储器控制器104的计算装置102失去电力时,将从存储器控制器104的高速缓存器110擦除用于存取存储在非易失性存储器装置108上的数据的加密密钥116。在实例中,当计算装置102被拔出或与电源114电断开时,密钥116从高速缓存器110擦除;由此使得恶意行为者难以存取存储在非易失性存储器装置108上的数据。举例来说,恶意行为者可能不只是接通膝上型计算机来存取存储在非易失性存储器装置108上的数据,因为密钥116已从高速缓存器110擦除。有利的是,系统100提供存储在耦合到存储器控制器104的非易失性存储器装置108上的数据(如PII数据的实例)的安全性。虽然已提供PII作为可能需要安全性的数据的实例,但可根据本文中所描述的实例保护任何数据,包括专用数据、敏感数据或机密数据。
在作为数据中心处的服务器的计算装置102的其它实例实施方案中,数据中心操作者可重置或断开电源114以提供初始状态,或重置作为服务器操作的计算装置102,例如,可重置计算装置102以向计算装置102提供安全性更新,或促进存取计算装置102的新用户(例如,数据中心的客户)对计算装置102的存取。举例来说,在一些数据中心中,多个用户(或租户)可存取单个计算装置102以将数据存储在非易失性存储器装置108上。这可称为计算装置102的多租户使用案例。为了防止对非易失性存储器装置108中的一个或一或多个非易失性存储器装置108的存储器的特定区的无意或未授权存取,加密逻辑106可针对特定用户的特定存储器存取请求产生密钥116,以存取非易失性存储器装置108中的至少一个,或存取非易失性存储器装置108中的一个的存储器的至少一个特定区上的数据。因此,特定用户的密钥116可仅由用户(例如,租户)用于存取存储在非易失性存储器装置108上的数据。有利的是,在这种多租户使用案例下,系统100可为计算装置102的个别用户的数据提供安全性,以防止对另一用户的数据的未授权存取或无意存取。在实例中,当计算装置102被重置或与电源114断开时,计算装置102不促成对由特定用户存储的特定数据的存取,这是因为用于特定用户存取非易失性存储器装置108的密钥116已从高速缓存器110擦除。
存储器控制器104可为在计算装置102中实施的NVDIMM存储器控制器。举例来说,计算装置102可为经由主机总线(未描绘)耦合到存储器控制器104的主机计算装置。在NVDIMM存储器控制器的实例中,主机总线可根据NVDIMM协议,如NVDIMM-F、NVDIMM-N、NVDIMM-P或NVDIMM-X操作。在这类实施方案中,非易失性存储器装置108可为NAND存储器装置或3D XPoint存储器装置。因此,非易失性存储器装置108还可充当可为易失性存储器装置的高速缓存器110的永久性存储器,和/或充当存储器控制器104或计算装置102上的任何易失性存储器的永久性存储器。一般来说,与非易失性存储器相比,易失性存储器可具有一些改进特征(例如,易失性存储器可更快)。非易失性存储器装置108还可包括一或多种类型的存储器,包括但不限于:DRAM、SRAM、三层级单元(TLC)NAND、单层级单元(SLC)NAND、SSD或3D XPoint存储器装置。存储在非易失性存储器装置108中的数据或待从非易失性存储器装置108存取的数据可经由存储器总线112与存储器控制器104通信。举例来说,存储器总线112可为PCIe总线。
可通常使用需要使用非易失性存储器装置的计算能力的任何计算装置102装置来实施本文中所描述的计算装置(如图1中展示的计算装置102)。举例来说,可使用智能电话、智能手表、计算机(例如,服务器、膝上型计算机、平板计算机、台式计算机)、可穿戴计算装置、车辆、器具或物联网(IoT)计算装置来实施计算装置102。虽然图1中未明确地展示,但在一些实例中,计算装置102可包括多种组件中的任一种,包括但不限于存储器、输入/输出装置、电路系统、处理单元(例如,处理元件和/或处理器)或其组合。
图2为根据本文中所描述的实例布置的存储器系统200的示意性图示。在图2中,类似命名的元件可具有如关于图1所描述的类似操作或功能。举例来说,加密逻辑208可如关于图1的加密逻辑106所描述而操作。在一些实例中,非易失性存储器装置210可如关于图1的非易失性存储器装置108所描述而操作。存储器系统200包括耦合到存储器控制器202的主机计算装置204,所述主机计算装置可控制一或多个非易失性存储器装置210。在一些实例中,存储器控制器202在主机计算装置204中实施或为主机计算装置204的元件。在这类情况下,主机计算装置204可为SOC、CPU、GPU、FPGA等,且存储器控制器202可为这类SOC、CPU、GPU或FPGA的逻辑、电路系统或组件。在一些实例中,主机计算装置204为一个物理装置且存储器控制器202为单独物理装置(例如,各自可为小芯片系统中的小芯片)。在一些情况下,存储器控制器202和非易失性存储器装置210为模块(例如,DIMM、卡或驱动器)的元件,且主机计算装置204为单独处理器。
存储器控制器202可包括主机接口212,其可耦合到主机总线220以用于连接到主机计算装置204。主机接口212耦合到处理器206或处理资源,其可为SOC、ASIC、FPGA等,且可与主机计算装置204分离或为主机计算装置204的元件(如上文所描述)。处理器206可包括加密逻辑208。主机接口212和处理器206还可经由例如内部存储器控制器总线耦合到高速缓存器214。处理器206经由存储器接口216和相应存储器总线218耦合到非易失性存储器装置210。存储器接口216还例如还经由内部存储器控制器总线耦合到高速缓存器214。存储器控制器202还包括伪随机数产生器(PRNG)222,其产生伪随机值226且将伪随机值226提供到加密逻辑208。
在实例实施方案中,处理器206可包括实施为现场可编程门阵列(FPGA)、芯片上系统(SoC)或其它硬件的部分的任何类型的微处理器、中央处理单元(CPU)、ASIC、数字信号处理器(DSP)。举例来说,可使用如专用集成电路(ASIC)或其它电路系统的离散组件来实施处理器206,或组件可反映由存储器控制器202内的电路系统提供的未必具有与存储器控制器202的其它部分分离的离散物理形式的功能性。处理器206的部分可由离散组件的组合实施。举例来说,加密逻辑208可实施为ASIC,而其它处理器功能性(例如,存储器存取请求处理/排队)可实施为具有指定配置中的各个阶段的FPGA。虽然说明为图2中的存储器控制器202内的组件,但处理器206可在存储器控制器202外部,或具有位于存储器控制器202内的若干组件和位于存储器控制器202外部的若干组件。
非易失性存储器装置210可响应于从存储器控制器202接收到的存储器存取请求(例如,来自主机计算装置204的由处理器206路由或处理的存储器存取请求)而存储且提供信息(例如,数据和指令)。在操作中,非易失性存储器装置210可处理存储器存取请求以基于存储器存取请求存储和/或检索信息。举例来说,主机计算装置204可包括主机处理器,其可执行请求在非易失性存储器装置210处所存储数据和/或所存储指令(和/或存储数据/指令)的用户应用程序。当执行时,用户应用程序可产生存取非易失性存储器装置210中的数据或指令的存储器存取请求。一般来说,如上文所描述,存储器存取请求可为或包括命令和地址,例如,存储器命令和存储器地址。在各种实施方案中,存储器存取请求可为或包括用于非易失性存储器装置210处的读取操作、写入操作、激活操作或刷新操作的命令和地址。一般来说,所接收的命令和地址可促进非易失性存储器装置210处的存储器存取操作,如非易失性存储器装置210的读取操作、写入操作、激活操作和/或刷新操作的执行。因此,存储器存取请求可为或包括非易失性存储器装置210中的一或多个的存储器地址。在写入操作的实例中,存储器存取请求还可包括例如除命令和地址以外的数据。经由主机总线220和主机接口212将来自主机计算装置204的存储器存取请求提供到处理器206。举例来说,主机总线220可为PCIe总线,且主机接口212可为处理器206的PCIe接口。
有利的是,在存储器控制器202处接收存储器存取请求时,存储器系统200促进加密密钥(如密钥228)的产生以存取存储在非易失性存储器装置210上的数据。举例来说,在处理器206处接收存储器存取请求时,处理器206可将加密指示提供到加密逻辑208,使得针对特定存储器存取请求产生加密密钥228。举例来说,在接收到加密指示后,加密逻辑208可识别所接收的存储器存取请求中的对应于非易失性存储器装置210中的至少一个的存储器地址的存储器地址。一旦识别到,加密逻辑208就可以针对与存储器存取请求相关联的数据产生加密密钥228。在写入操作的实例中,可产生加密密钥228以确保写入到非易失性存储器装置210中的所述非易失性存储器装置处的存储器地址的数据的安全。仅在加密密钥228用于存取数据(例如,写入或读取另一存储器存取请求)时才可存取写入数据。因此,在实例中,可将密钥228提供到非易失性存储器装置210,其中所接收的存储器存取请求将用于写入数据的加密。在这种情况下,加密密钥228可称为与写入到所接收的存储器存取请求的存储器地址的数据相关联。因此,存储器控制器202使用加密逻辑208来为非易失性存储器装置210产生加密密钥228。
在操作中,加密逻辑208可产生密钥228,其被加密且用于存取存储在非易失性存储器装置210上的数据。加密逻辑208可从PRNG 222接收伪随机值226且部分地基于伪随机值226和所提供的密钥对密钥228进行加密。举例来说,所提供的密钥可为存储在存储器控制器202或高速缓存器214的寄存器中的DEK。密钥228可由存储器控制器202用于认证对非易失性存储器装置210的存取。加密逻辑208可将密钥228存储在高速缓存器214处。举例来说,高速缓存器214可包括用于数据存储的寄存器,且密钥228可存储在高速缓存器214的寄存器中。在这种情况下,高速缓存器214可称为与加密逻辑208相关联。举例来说,加密逻辑208可配置成将所产生的加密密钥228提供到高速缓存器214以供存储或高速缓存器214的特定寄存器以供存储。高速缓存器214可为RAM装置,如SRAM或DRAM存储装置。在各种实施方案中,高速缓存器214可为如DRAM的动态存储器装置,且可与处理器206交互。举例来说,高速缓存器214可为数据高速缓存器,其包括或对应于L1、L2、L3、L4的一或多个高速缓存层级(例如,作为多层级高速缓存器)或任何其它高速缓存层级。在一些实施方案中,加密逻辑208还可将密钥228存储在存储器控制器202的寄存器(例如,数据寄存器)中。
为了产生加密的密钥228,PRNG 222可产生伪随机值226。在各种实施方案中,PRNG222可为线性反馈移位寄存器(LFSR),使得PRNG 222的输出为随机值。举例来说,LFSR可包含接收反馈作为输入的一或多个XOR逻辑单元(也称为XOR逻辑门)的组合,使得一或多个XOR逻辑单元的组合的输出为伪随机值226。因此,如图2中所描绘,将伪随机值226提供到加密逻辑208以用作加密逻辑208中的初始化向量(IV)。
存储器控制器202可利用伪随机值226作为认证流密码的初始化向量来产生加密密钥228。在处理器206接收到伪随机值226后,处理器可将伪随机值226路由到加密逻辑208,其中加密逻辑208可使用伪随机值226作为认证流密码的初始化向量(IV)。举例来说,认证加密逻辑208可包括AES-伽罗瓦-计数器模式(AES-GCM)管线,使得认证加密逻辑208基于使用伪随机值226作为IV和/或所提供的密钥(例如,DEK)的认证流密码而产生密钥228。举例来说,GCM可使用基础密钥(例如,DEK)产生加密密钥228的认证标签。因此,在所获得的所接收的存储器存取请求中的写入操作的上下文中,密钥228可用于将待写成明文的数据加密为密文。虽然在一些实例中描述AES-GCM,但应理解,其它经认证流密码也可在加密逻辑208中用于产生加密密钥,如密钥228。
在包括读取命令的所接收存储器存取请求的实例中,有利的是,存储器系统200还促进加密密钥(如密钥228)的检索,以读取非易失性存储器装置210上的数据。举例来说,响应于在处理器206处接收到存储器存取请求,处理器206可将加密指示(例如,加密信号)提供到加密逻辑208。响应于加密指示,加密逻辑208可基于所接收的存储器存取请求中的存储器地址而检索特定存储器存取请求的加密密钥228。举例来说,在接收到加密指示后,加密逻辑208可识别所接收的存储器存取请求中的对应于非易失性存储器装置210中的至少一个的存储器地址的存储器地址。一旦识别到,加密逻辑208就可检索与所述存储器存取请求相关联的数据的加密密钥228。密钥228可用于安全地检索非易失性存储器装置210中的特定非易失性存储器装置的存储器地址处的数据或读取所述数据。仅在加密密钥228用于存取数据时才可存取待读取的数据。举例来说,一旦从非易失性存储器装置210检索到读取数据,处理器206就可使用加密逻辑208和密钥228对读取数据进行解密。作为一实例,加密逻辑208可将逆解密算法应用于用以对密钥228进行加密的加密算法。在AES-GCM管线的实施方案中,密钥228可用于将作为密文的检索到的读取数据解密为明文。在这种情况下,加密密钥228可称为与待从所接收的存储器存取请求的存储器地址读取的数据相关联。因此,存储器控制器202使用加密逻辑208来检索非易失性存储器装置210的加密密钥228。
主机计算装置204可电连接到电源224,其可在操作期间将电力提供到主机计算装置204。存储器控制器202还可由电源114供电,其也可将电力提供到存储器控制器202。当电源224与存储器控制器202电断开时,存储器控制器202可失去电力,从而从高速缓存器214擦除密钥228。有利的是,在将密钥228写入高速缓存器214(其可为易失性存储器装置)中时,高速缓存器214在与电源224电断开后擦除数据或丢失数据。举例来说,如关于图1所描述,如果恶意行为者为了获取存储在非易失性存储器装置210上的PII数据而物理地去除(或窃取)存储器系统200的一或多个元件(例如,存储器控制器202),那么当存储器控制器202失去电力时,将从存储器控制器202的高速缓存器214擦除用于存取存储在非易失性存储器装置210上的数据的加密密钥228。在实例中,当存储器控制器202被拔出或与电源224电断开时,密钥228从高速缓存器214擦除;由此使得恶意行为者难以存取存储在非易失性存储器装置210上的数据。举例来说,恶意行为者可能不只是接通膝上型计算机来存取存储在非易失性存储器装置210上的数据,因为密钥228已从高速缓存器214擦除。因此,有利的是,系统200提供存储在耦合到存储器控制器202的非易失性存储器装置210上的数据(如PII数据的实例)的安全性。
如关于图1所描述,当存储器控制器202被拔出或与电源224电断开时,存储器控制器202根据比较阈值操作电压例如以检测存储器控制器202是否已失去电力而失去电力。举例来说,当存储器控制器202通过低于存储器控制器202的阈值操作电压时,存储器控制器202失去电力。在实施为印刷电路板的部分的存储器控制器202的实例中,如果阈值操作电压为5V印刷电路板电压,那么当不再将5V电压供应到存储器控制器202时,存储器控制器202可失去电力,这是因为存储器控制器202使用电源224将5V印刷电路板电压维持在存储器控制器202处。因此,存储器控制器202失去电力,因为供应到存储器控制器202的电力通过低于5V电压,从而使得密钥228从高速缓存器214擦除。
另外或替代地,在使用存储器控制器202的阈值操作电压来检测存储器控制器202是否已失去电力时,存储器控制器202可包括计时器电路(图2中未描绘)。计时器电路可从由耦合到印刷电路板的电池单独供电的印刷电路板接收时钟信号。计时器电路可由存储器控制器202用来测量存储器控制器202失去电力之后历经的时间量。在一些实例中,存储器控制器202可将失去电力以来历经的时间量(如由计时电路所测量)与阈值时间量进行比较。如果基于时间量与阈值时间量的比较,时间量小于阈值时间量,那么存储器控制器202将不从高速缓存器214擦除密钥228,例如存储器控制器202将维持与高速缓存器214的电池连接(例如,耦合在其上实施存储器控制器202的印刷电路板的电池),同时时间量由计时器电路测量且存储器控制器202执行比较。
阈值时间量可对应于电力失去事件,如电力线闪烁,其中计算装置202失去电力的时间量小于阈值时间量。阈值时间量可存储在存储器或高速缓存器(例如,高速缓存器214)中。阈值时间量可为由计算装置204的用户设定(且提供到存储器控制器202)的参数,或可基于闪烁度量,如由IEEE 1453标准和/或IEC 61000-4-15定义的电力闪烁度量。因此,当电源224与存储器控制器202电断开时,存储器控制器202可使用如由计时器电路所测量的时间量和阈值操作电压来检测存储器控制器202是否已失去电力。如果所测量的时间量超过阈值时间量且操作电压超过阈值操作电压,那么存储器控制器202将检测到电源224已断开,从而使得密钥228从高速缓存器214擦除。在存储器控制器202维持与高速缓存器214的电池连接的实例中,存储器控制器202将断开和/或解耦与高速缓存器214的电池连接,使得高速缓存器214失去电力或操作电压。
另外或替代地,如关于存储器控制器104所描述,存储器控制器202可为NVDIMM存储器控制器,其经由主机总线220耦合到主机计算装置204。主机总线220可根据NVDIMM协议,如NVDIMM-F、NVDIMM-N、NVDIMM-P或NVDIMM-X操作。举例来说,在这类实施方案中,非易失性存储器装置210可为NAND存储器装置或3D XPoint存储器装置。因此,在这类实施方案中,非易失性存储器装置210可充当可为易失性存储器装置的高速缓存器214的永久性存储器,和/或充当存储器控制器202或主机计算装置204上的任何易失性存储器的永久性存储器。在各种实施方案中,可使用存储器控制器202来实施存储器控制器104,包括此处描述的可在存储器控制器202中执行的方法中的任一种。
图3为根据本文所描述的实例的方法的示意性图示。可使用例如图2的处理器206来执行实例方法300,所述处理器执行可执行指令(例如,存储在存储器中,未必展示)以经由相应存储器总线218与非易失性存储器装置210交互。在一些实例中,方法300可完全或部分地由图2的加密逻辑208实施。举例来说,框302到308中所描述的操作可作为计算机可执行指令存储在可由处理器206存取的计算机可读媒体中。在一实施方案中,可由处理器206存取的计算机可读媒体可为非易失性存储器装置210或高速缓存器214中的一个。举例来说,可执行指令可存储在非易失性存储器装置210中的一个上,且由处理器206的存储器控制器202检索以执行用于执行方法300的可执行指令。另外或替代地,可执行指令可存储在耦合到主机计算装置204的存储器上,且由处理器206检索以执行用于执行方法300的可执行指令。
实例方法300可以开始执行方法300的框302开始。框302包括从主机计算装置接收对存储器装置的存储器存取请求。存储器存取请求可为或包括命令和存储器地址。因此,框302可包括从主机计算装置接收用于一或多个存储器装置的命令和地址。在包括写入命令的存储器存取请求的实例中,图2的主机计算装置204可经由主机总线220将包括待写入的存储器地址和数据的存储器存取请求提供到存储器控制器202,例如提供到主机接口212。举例来说,如关于存储器系统200所描述,在包括读取命令的所接收存储器存取请求的实例中,存储器系统200(有利的是,存储器控制器202)促进加密密钥的检索以读取非易失性存储器装置210上的数据。因此,处理器206可接收存储器存取请求,以用于产生或检索用于与存储器地址请求相关联的数据存取的加密密钥。
框302可后接框304。框304包括响应于存储器存取请求,在加密逻辑处对与存储器存取请求相关联的数据的密钥进行加密。举例来说,加密逻辑208可识别所接收的存储器存取请求中的对应于非易失性存储器装置的存储器地址的存储器地址。一旦识别到,加密逻辑208就可为与存储器存取请求相关联的数据产生加密密钥。在写入操作的实例中,可产生加密密钥以确保写入到非易失性存储器装置处的存储器地址的数据的安全。为了对密钥进行加密,加密逻辑208使用伪随机值作为认证流密码(例如,AES-GCM管线)的IV和所提供的密钥,如DEK。加密逻辑208至少基于伪随机值对所提供的密钥进行加密,以使加密密钥与存储器存取请求和/或存储器地址请求的存储器地址相关联。因此,在所接收的存储器存取请求中的写入操作的上下文中,加密密钥可用于将待写成明文的数据加密为密文。有利的是,基于所接收的存储器存取请求,可例如使用所产生的加密密钥以认证方式存取由主机计算装置读取或写入到各种非易失性存储器装置的数据。
框304可后接框306。在框306中,方法包括将非易失性存储器装置的加密密钥写入到存储器控制器的高速缓存器。在实例实施方案中,处理器206可将所产生的加密密钥228写入到高速缓存器214,例如,以响应于来自主机计算装置204的存储器存取请求而存取存储在非易失性存储器装置210上的数据。在一实例中,存取到特定非易失性存储器装置的任何数据(无论是读取还是写入)均可使用所产生的加密密钥。因此,处理器206将加密密钥228写入到高速缓存器214以用于特定非易失性存储器装置处的存储器存取请求。举例来说,加密逻辑208可将AES-GCM管线的输出存储在高速缓存器214的可为易失性存储器装置的特定数据寄存器处。在实例中,因为加密密钥228存储在存储器控制器202的易失性存储器装置中—当存储器控制器202失去与电源224的电连接或断电时—擦除加密密钥228。举例来说,可响应于断电(例如,接收到的断电指示,如关于方法400所描述)或借助于失去电力的易失性存储器装置而擦除加密密钥228。因此,当存储器控制器202(或实施存储器控制器202的计算装置)失去电力时,可能无法存取存储在非易失性存储器装置处的数据。
框306可后接框308。在框308中,方法包括将用于存取与存储器存取请求相关联的数据的加密密钥提供到非易失性存储器装置。加密逻辑208基于所接收的存储器存取请求而使用加密密钥228来认证存储器命令。有利的是,可产生加密密钥228以确保写入到非易失性存储器装置210或从非易失性存储器装置210读取的数据的安全。在实例实施方案中,处理器206可使用加密密钥228来认证待从存储器控制器202发出到非易失性存储器装置210的存储器命令。举例来说,加密逻辑208可执行与存储器存取请求相关联的存储器存取操作。在实例实施方案中,一旦将存储器命令提供到具有加密密钥228的非易失性存储器装置210,非易失性存储器装置210就可基于存储器存取请求执行存储器存取操作。举例来说,可由与存储器控制器202交互以执行存储器存取操作的非易失性存储器装置210执行读取、写入、激活或刷新操作。因此,框308可包括执行与命令相关联的存储器存取操作—无论是读取、写入、激活还是刷新。在一实例中,读取操作可包括非易失性存储器装置210将读取数据提供返回到存储器控制器202。方法300可在框308完成之后结束。
所描述的实例方法300中所包括的框是出于说明的目的。在一些实施例中,这些框可以不同次序执行。在一些其它实施例中,可消除各种框。在又其它实施例中,各种框可划分成额外框、以其它框补充或一起组合成较少的框。预期这些特定框的其它变化,包括框的次序的变化、被分割或组合成其它框的框的内容的变化等。
图4为根据本文所描述的实例的方法的示意性图示。可使用例如图2的处理器206来执行实例方法400,所述处理器执行可执行指令以经由相应存储器总线218与非易失性存储器装置210交互。在一些实例中,方法400可完全或部分地由图2的加密逻辑208实施。举例来说,框402到408中所描述的操作可作为计算机可执行指令存储在可由处理器206存取的计算机可读媒体中。在一实施方案中,可由处理器206存取的计算机可读媒体可为非易失性存储器装置210或高速缓存器214中的一个。举例来说,可执行指令可存储在非易失性存储器装置210中的一个上,且由处理器206的存储器控制器202检索以执行用于执行方法400的可执行指令。另外或替代地,可执行指令可存储在耦合到主机计算装置204的存储器上且由处理器206检索以执行用于执行方法400的可执行指令。
实例方法400可以框402开始,框402开始执行方法400且包括将多个非易失性存储器装置中的至少一个非易失性存储器装置的加密密钥写入到高速缓存器。可以如关于图3的框306所描述的方式执行框402。在一些实例中,处理器206可将所产生的加密密钥228写入到高速缓存器214,例如,用于响应于来自主机计算装置204的存储器存取请求而对非易失性存储器装置210的数据存取。有利的是,因为加密密钥228存储在存储器控制器202的易失性存储器装置中,所以当存储器控制器202失去与电源224的电连接或断电时,加密密钥228被擦除。
在方法400的一些实施方案中,框402可后接框404。在框404中,方法进一步包括接收为高速缓存器供电的易失性存储器或存储器控制器的断电指示。在关于图2所描述的实例实施方案中,处理器206可从主机计算装置204接收存储器控制器202或易失性存储器装置(例如,耦合到易失性存储器装置的高速缓存器214或高速缓存器214)将断电的断电指示。举例来说,数据中心操作者可重置或断开电源224以提供初始状态,或重置作为服务器操作的主机计算装置204,例如,可重置主机计算装置204以向主机计算装置204提供安全性更新,或促进存取主机计算装置204的新用户(例如,数据中心的客户)对主机计算装置204的存取。因此,可由主机计算装置204向处理器206提供高速缓存器214或存储器控制器202将断电的断电指示,例如,作为主机计算装置204的重置的部分。
框404可后接框406。在框406中,方法进一步包括响应于使易失性装置或存储器控制器断电,从而擦除多个非易失性存储器装置中的至少一个非易失性存储器装置的加密密钥。当主机计算装置204断电或从电源224断开时,可擦除加密密钥228。举例来说,可响应于断电(例如,接收到的断电指示,如关于方法400所描述)或借助于失去电力的易失性存储器装置(例如,耦合到易失性存储器装置的高速缓存器214或高速缓存器214)而擦除加密密钥228。在遵循任选的框404处的断电指示的实例实施方案中,主机计算装置204可重置存储器控制器202和/或高速缓存器214,作为主机计算装置204的重置的部分。主机计算装置204可将断电指示提供到处理器206,其在使存储器控制器202断电时擦除高速缓存器214。继续所述实例,主机计算装置204可断开主机计算装置204与电源224的电连接,和/或可断开存储器控制器202与电源224的电连接。在各种实施方案中,例如,如果存储器控制器202失去电力或与电源224电断开,那么可借助于存储器控制器202的断电来擦除密钥228。举例来说,因为密钥存储在耦合到易失性存储器装置或为易失性存储器装置的高速缓存器214中,所以当由于已失去到易失性存储器装置或高速缓存器214的存储器单元的电源而失去电力时擦除密钥。有利的是,当存储器控制器202(或实施存储器控制器202的计算装置)失去电力或断电时,可能无法存取存储在非易失性存储器装置处的数据。方法400可在框406完成之后结束。
所描述的实例方法400中所包括的框是出于说明的目的。在一些实施例中,这些框可以不同次序执行。在一些其它实施例中,可消除各种框。举例来说,如所描述,框404为任选的框,这是因为当在与电源电断开时立即失去电力时,可能不会接收到断电指示。在又其它实施例中,各种框可划分成额外框、以其它框补充或一起组合成较少的框。预期这些特定框的其它变化,包括框的次序的变化、被分割或组合成其它框的框的内容的变化等。
上文阐述某些细节以提供对所描述的实例的充分理解。然而,所属领域的技术人员将显而易见的是,可在没有这些各种具体细节的情况下实践实例。本文中结合附图的描述描述了实例配置,且不表示可实施或在权利要求书的范围内的所有实例。如本文中可使用的术语“示例性”和“实例”是指“充当实例、例子或说明”且并非为“优选的”或“比其它实例有利”。出于提供对所描述的技术的理解的目的,详细描述包括特定细节。然而,可在没有这些特定细节的情况下实践这些技术。在一些例子中,以框图形式展示众所周知的结构和装置,以免混淆所描述实例的概念。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
可使用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其设计成执行本文中所描述的功能的任何组合来实施或执行结合本公开描述的各种说明性块和模块。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它这一配置)。
本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果在由处理器执行的软件中实施,那么功能可作为一或多个指令或码而存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体包括非暂时性计算机存储媒体和通信媒体两者,所述通信媒体包括有助于将计算机程序从一个地点传送到另一地点的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例且不加限制,非暂时性计算机可读媒体可包含RAM、ROM、电可擦除可编程只读存储器(EEPROM)、或光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。
此外,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、DSL或如红外线、无线电和微波的无线技术包括在媒体的定义中。上述的组合也应包括在计算机可读媒体的范围内。
其它实例及实施方案在本公开和所附权利要求书的范围内。举例来说,由于软件的性质,可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施上文所描述的功能。实施功能的特征也可物理地位于各种位置处,包括经分布以使得功能的部分在不同物理位置处实施。
此外,如本文中(包括在权利要求书中)所使用,如在项列表(例如,以如“中的至少一个”或“中的一个或多个”的短语开头的项列表)中所使用的“或”指示包括性列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。此外,如本文中所使用,短语“基于”不应理解为指代封闭条件集合。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示例性步骤可基于条件A和条件B两者。换句话说,如本文中所使用,短语“基于”应同样地解释为短语“至少部分地基于”。
从前述应了解,虽然本文已出于说明的目的描述特定实例,但可做出各种修改,同时仍保持所要求技术的范围。提供本文中的描述以使所属领域的技术人员能够制造或使用本公开。本公开的各种修改对于所属领域的技术人员将容易地显而易见,且可在不脱离本发明精神或范围的情况下将本文中定义的一般原理应用于其它变体。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文中所公开的原理和新颖特征一致的最广泛范围。

Claims (22)

1.一种方法,其包含:
将耦合到易失性存储器装置的多个非易失性存储器装置中的至少一个非易失性存储器装置的加密密钥写入到耦合到所述易失性存储器装置的高速缓存器;以及
响应于使所述易失性存储器装置断电,擦除所述至少一个非易失性存储器装置的所存储加密密钥。
2.根据权利要求1所述的方法,其进一步包含:
接收电连接到所述多个非易失性存储器装置中的所述至少一个非易失性存储器装置的所述易失性存储器装置的断电指示。
3.根据权利要求2所述的方法,其中电连接到所述至少一个非易失性存储器装置的所述易失性存储器装置由电连接到电源的计算装置供电。
4.根据权利要求3所述的方法,其中电连接到所述电源的所述计算装置为存储器控制器。
5.根据权利要求1所述的方法,其中所述多个非易失性存储器装置包含NAND存储器装置或3D XPoint存储器装置中的至少一个。
6.根据权利要求1所述的方法,其进一步包含:
接收来自伪随机数产生器的伪随机值;
部分地基于所述伪随机值而对所述至少一个存储器装置的密钥进行加密;以及
将所述至少一个非易失性存储器装置的所述加密密钥提供到所述至少一个非易失性存储器装置。
7.根据权利要求6所述的方法,其中部分地基于所述伪随机值而对所述至少一个非易失性存储器装置的所述密钥进行加密包含使用认证流密码来产生所述密钥。
8.根据权利要求7所述的方法,其中所述认证流密码包含使用所述伪随机值作为初始化向量的高级加密标准AES密码。
9.一种方法,其包含:
从主机计算装置接收对多个非易失性存储器装置中的非易失性存储器装置的存储器存取请求;
响应于所述存储器存取请求,在包含高级加密标准AES密码的加密逻辑处对与所述存储器存取请求相关联的数据的密钥进行加密;
将多个非易失性存储器装置中的至少一个存储器装置的所述密钥写入到存储器控制器的高速缓存器;以及
将用于存取与所述存储器存取请求相关联的数据的所述密钥提供到至少一个非易失性存储器装置。
10.根据权利要求9所述的方法,其进一步包含:
使所述存储器控制器断电。
11.根据权利要求10所述的方法,其进一步包含:
响应于使所述存储器控制器断电,擦除为所述至少一个非易失性存储器装置加密的所述密钥。
12.根据权利要求9所述的方法,其进一步包含:
接收所述存储器控制器的断电指示;以及
断开与所述存储器控制器的电连接。
13.根据权利要求12所述的方法,其中所述主机计算装置包含所述存储器控制器,且其中断开与所述存储器控制器的所述电连接包含断开主机计算装置的电连接。
14.根据权利要求9所述的方法,其中将至少一个非易失性存储器装置的所述密钥写入到存储器控制器的所述高速缓存器包含将所述存储器控制器的所述高速缓存器配置成与所述AES密码相关联。
15.根据权利要求9所述的方法,其进一步包含:
使用所述密钥将与所述存储器存取请求相关联的数据提供到所述至少一个非易失性存储器装置/从所述至少一个非易失性存储器装置检索与所述存储器存取请求相关联的数据。
16.根据权利要求15所述的方法,当从所述至少一个非易失性存储器装置检索与所述存储器存取请求相关联的所述数据时,所述方法进一步包含:
使用所述密钥对与所述存储器请求相关联的所述数据进行解密。
17.一种设备,其包含:
加密逻辑,其配置成对多个非易失性存储器装置中的至少一个非易失性存储器装置的密钥进行加密;以及
易失性存储器的高速缓存器,其配置成存储所述密钥;以及
存储器总线,其耦合到包括所述至少一个非易失性存储器装置的所述多个非易失性存储器装置,所述加密逻辑进一步配置成经由所述存储器总线将所述密钥提供到所述至少一个非易失性存储器装置。
18.根据权利要求17所述的设备,其中所述至少一个非易失性存储器装置包含NAND存储器装置,且所述存储器总线包含NVDIMM总线。
19.根据权利要求17所述的设备,其中所述加密逻辑进一步配置成经由PCIe总线从主机计算装置接收存储器存取请求,且向所述密钥提供所述存储器存取请求。
20.根据权利要求19所述的设备,其中为了向所述密钥提供所述存储器存取请求,所述加密逻辑进一步配置成识别所述存储器存取请求中的对应于所述至少一个非易失性存储器装置的存储器地址的存储器地址。
21.根据权利要求17所述的设备,其中所述装置进一步包含经由NVDIMM总线耦合到所述至少一个非易失性存储器装置的存储器控制器。
22.根据权利要求17所述的设备,其中所述高速缓存器包含配置成存储所述密钥的寄存器。
CN202210014603.1A 2021-01-11 2022-01-07 加密密钥管理 Pending CN114764512A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/146,274 US20220222384A1 (en) 2021-01-11 2021-01-11 Encrypted key management
US17/146,274 2021-01-11

Publications (1)

Publication Number Publication Date
CN114764512A true CN114764512A (zh) 2022-07-19

Family

ID=82116229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210014603.1A Pending CN114764512A (zh) 2021-01-11 2022-01-07 加密密钥管理

Country Status (3)

Country Link
US (1) US20220222384A1 (zh)
CN (1) CN114764512A (zh)
DE (1) DE102022000091A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11899829B2 (en) 2020-12-01 2024-02-13 Micron Technology, Inc. Memory systems and devices including examples of generating access codes for memory regions using authentication logic
US11537298B2 (en) 2020-12-01 2022-12-27 Micron Technology, Inc. Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370166B1 (en) * 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7814316B1 (en) * 2006-04-14 2010-10-12 Oracle America, Inc. System, method and data storage device for encrypting data
JP2009245020A (ja) * 2008-03-28 2009-10-22 Ikutoku Gakuen Kanagawa Koka Daigaku Usb接続による暗号化装置
US8938624B2 (en) * 2010-09-15 2015-01-20 Lsi Corporation Encryption key destruction for secure data erasure
US9076003B2 (en) * 2013-08-20 2015-07-07 Janus Technologies, Inc. Method and apparatus for transparently encrypting and decrypting computer interface data
US9954828B1 (en) * 2014-03-24 2018-04-24 Trend Micro Incorporated Protection of data stored in the cloud
US10929572B2 (en) * 2017-04-10 2021-02-23 Nyquist Semiconductor Limited Secure data storage device with security function implemented in a data security bridge
US11341251B2 (en) * 2017-04-19 2022-05-24 Quintessencelabs Pty Ltd. Encryption enabling storage systems
US10585754B2 (en) * 2017-08-15 2020-03-10 International Business Machines Corporation Memory security protocol
US11070375B2 (en) * 2018-02-08 2021-07-20 Micron Technology, Inc. Key encryption handling
US11641276B2 (en) * 2020-06-02 2023-05-02 Western Digital Technologies, Inc. Effective key management for data encryption and decryption

Also Published As

Publication number Publication date
US20220222384A1 (en) 2022-07-14
DE102022000091A1 (de) 2022-07-14

Similar Documents

Publication Publication Date Title
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
CN107408192B (zh) 保护存储器
US9483664B2 (en) Address dependent data encryption
CN107408175B (zh) 用于自加密驱动的挑战响应认证
US20190384938A1 (en) Storage apparatus and method for address scrambling
US11222144B2 (en) Self-encrypting storage device and protection method
KR102401088B1 (ko) 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법
US11481337B2 (en) Securing data direct I/O for a secure accelerator interface
US11533172B2 (en) Apparatus and method for securely managing keys
US11019098B2 (en) Replay protection for memory based on key refresh
CN114764512A (zh) 加密密钥管理
US20230059382A1 (en) Electronic device
US11899829B2 (en) Memory systems and devices including examples of generating access codes for memory regions using authentication logic
US11775652B2 (en) Platform security mechanism
US20190325142A1 (en) Warm boot attack mitigations for non-volatile memory modules
CN111512308A (zh) 一种存储控制器、文件处理方法、装置及系统
TW202036349A (zh) 電腦系統及其虛擬硬碟的加解密方法

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