密钥加密处理的制作方法

文档序号:22626650发布日期:2020-10-23 19:35阅读:257来源:国知局
密钥加密处理的制作方法

优先权申请案

本申请案主张在2018年8月14日申请的第16/103,184号美国申请案的优先权益,第16/103,184号美国申请案主张在2018年2月8日申请的第62/628,123号美国临时申请案的优先权益,所述申请案中的每一者以全文引用的方式并入本文中。

本发明的实施例大体上涉及存储器子系统,且更明确来说,涉及管理存储器子系统,包含关于对所述存储器子系统中的数据加密的密钥加密处理。



背景技术:

存储器子系统可为存储系统,例如非易失性双列直插式存储器模块(nvdimm),且可包含存储数据的一或多个存储器组件。例如,所述存储器组件可为非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统以将数据存储于存储器组件处及从存储器组件检索数据。

附图说明

将从下文给出的详细描述及从本发明的各个实施例的附图更充分理解本发明。然而,图式不应被视为将本发明限于特定实施例,而是仅供解释及理解。

图1说明根据各个实施例的包含存储器子系统的实例计算环境。

图2是根据各个实施例的包含经结构化具有用于安全加密的密钥管理能力的实例非易失性具寄存器的双列直插式存储器模块的实例系统的框图。

图3a是根据各个实施例的产生经加密媒体加密密钥以保护媒体加密密钥的包覆方法的说明。

图3b是根据各个实施例的恢复图3a的媒体加密密钥的解包方法的说明。

图4是根据各个实施例的装置状态应用程序编程接口状态图的实例。

图5说明根据各个实施例的实例装置状态功能应用程序编程接口。

图6是根据各个实施例的密钥产生/恢复单元的框图。

图7是根据各个实施例的处理加密密钥的实例方法的流程图。

图8是根据各个实施例的处理加密密钥的实例方法的流程图。

图9是本发明的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本发明的方面涉及管理存储器子系统,所述管理包含关于对所述存储器子系统中的数据加密的密钥加密处理。加密是将数据、程序、图像或其它信息转换成不可读密文的安全技术。此转换可使用应用于希望进行的加密的原始内容的复杂算法来执行。加密密钥是为对数据加扰及解扰而明确建立的随机位字符串且通常经设计具有希望确保每个密钥不可预测且唯一的算法。如本文中所论述,密钥加密包含对加密密钥加密。存储器子系统在下文也被称为“存储器装置”。存储器子系统的实例是存储系统,例如非易失性双列直插式存储器模块(nvdimm)。在一些实施例中,所述存储器子系统是混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。所述主机系统可提供待存储于所述存储器子系统处的数据且可请求从所述存储器子系统检索数据。

nvdimm是具有用于正常操作的易失性存储器及(在电力出现故障的情况下)使用机载备份电源在其中转储所述易失性存储器的内容的非易失性存储器的随机存取存储器类型。nvdimm-n是在相同模块上具有快闪存储装置及传统动态随机存取存储器(dram)的双列直插式存储器模块(dimm)。主机处理单元可直接存取传统dram。倘若发生电力故障,nvdimm-n将数据从其易失性传统dram复制到其永久性快闪存储装置,且在电力恢复时将数据复制回到易失性传统dram。nvdimm-n的一类型是nvrdimm-n。nvrdimm-n是非易失性具寄存器的双列直插式存储器模块(dimm),其是针对企业级服务器系统的标准的具寄存器的dimm(rdimm)。具寄存器的存储器模块(也被称为缓冲存储器模块)意味着包含介于动态随机存取存储器(dram)模块与相应系统存储器控制器之间的寄存器,其中dram模块含有数个drams(其是易失性存储器)。rdimm使用缓冲到到模块的控制信号的硬件寄存器。

在用于nvrdimm-n的架构中,作为以配置其基本存储器单元的“与非”(nand)逻辑形式命名的永久性存储装置的nand存储器是与标准dram一起布置。因为dram是易失性的,所以在移除所述dram的电力时,所述dram中的数据丢失。当在nvrdimm-n中检测断电或从主机接收检测即将断电的信号时,捕获dram的当前状态并将其移动到由nvrdimm-n的nand提供的永久性存储装置中。通过记录计算机的当前状态,当再次提供电力时,可将数据从nand拉回到dram,且应用程序的执行可从由于电力移除而导致执行停止的点继续进行。此能力为企业级服务器系统提供价值。

在nvrdimm-n中,对dram提供dram控制器且对nand提供nand控制器,其中nvrdimm-n负责将nvrdimm-n的dram的所有数据的状态转换为nvrdimm-n的nand上的永久性数据。可在电力循环上执行将所有dram数据的状态转换为nand上的永久性数据。随后,nvrdimm-n负责将nand中的永久性数据传送回到dram中。

企业级系统通常存储保密信息,且因此在永久性地存储此数据时,传送到nand的数据受到保护。例如,在将数据从dram传送到nand时,可通过密文窃取(xts)加密引擎(其是用于数据的标准加密引擎)通过基于高级加密标准(aes)256位异或-加密-异或(xex)的调整码本模式运行数据传送,使得所有数据都通过此加密存储。aes-xts加密引擎需要密钥(即,加密aes密钥及xts密钥)。通常,这些密钥从主机传递到nvrdimm-n中。对关于存储器子系统的处理加密密钥及传递密钥的加强可提供机制以避免与黑客试图经由来自主机的命令或主机的预期动作存取加密密钥相关联的问题,所述问题可能不利地影响经存储的安全数据。

本发明的方面通过对用于存储器子系统的存取加密密钥加密,将所述经加密的加密密钥存储于所述存储器子系统的非易失性存储器中,使用固件以使用所述经加密媒体加密密钥将所述存储器子系统转变到数据的安全状态及从数据的安全状态转变,从而解决与所述存取加密密钥相关联的上述及其它缺点。在各个实例实施例中,用存取密钥或擦除密钥(此取决于操作)对密钥加密及存取所述密钥以保护所述密钥免受存储器子系统中的黑客攻击。可通过使密钥在统计上不可破解的各种算法处理密钥。装置(例如但不限于nvdimm-n)可作为多状态装置操作,其中可通过用于安全加密的密钥管理来处理nvdimm-n的状态之间的转变,其中状态可通过装置存储的数据的安全性予以定义。

图1说明根据本发明的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体(例如存储器组件112a到112n)。存储器组件112a到112n可为易失性存储器组件、非易失性存储器组件或此类的组合。在一些实施例中,存储器子系统110是存储系统。存储系统的实例是nvdimm。在一些实施例中,存储器子系统110是混合存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。例如,主机系统120可将数据写入到存储器子系统110及从存储器子系统110读取数据。

主机系统120可为计算装置,例如桌面计算机、膝上型计算机、网络服务器、移动装置,或包含存储器及处理装置的此计算装置。主机系统120可包含存储器子系统110或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”大体上是指组件之间的连接,所述连接可为间接通信连接或直接通信连接(例如,无中介组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等的连接。物理主机接口的实例包含(但不限于)串行高级附接技术(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)等。所述物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用nvm快速(nvme)接口以在存储器子系统110通过pcie接口与主机系统120耦合时存取存储器组件112a到112n。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。

存储器组件112a到112n可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)类型快闪存储器。存储器组件112a到112n中的每一者可包含一或多个存储器单元阵列,例如单电平单元(slc)或多电平单元(mlc)(例如,三电平单元(tlc)或四电平单元(qlc))。在一些实施例中,特定存储器组件可包含存储器单元的slc部分及mlc部分两者。存储器单元中的每一者可存储供主机系统120使用的一或多个数据位(例如,数据块)。尽管描述非易失性存储器组件(例如nand类型快闪存储器),但存储器组件112a到112n可基于任何其它类型的存储器(例如易失性存储器)。在一些实施例中,存储器组件112a到112n可为(但不限于)随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁式随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)及交叉点阵列的非易失性存储器单元。交叉点阵列的非易失性存储器可结合可堆叠交叉栅格式数据存取阵列一起基于体电阻的变化执行位存储。此外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行原处写入操作,其中可编程非易失性存储器单元而无需在先前擦除所述非易失性存储器单元。此外,存储器组件112a到112n的存储器单元可分组为可指代用于存储数据的存储器组件的单元的存储器页或数据块。

存储器系统控制器115(在下文被称为“控制器”)可与存储器组件112a到112n通信以执行操作,例如在存储器组件112a到112n处读取数据、写入数据或擦除数据及其它此类操作。控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或其它合适处理器。控制器115可包含经配置以执行存储于本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程及例程的指令的嵌入式存储器。在一些实施例中,本地存储器119可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本发明的另一实施例中,存储器子系统110可能不包含控制器115,且可代替性地依靠(例如,通过外部主机或通过与所述存储器子系统分离的处理器或控制器提供的)外部控制。

一般来说,控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成用以实现对存储器组件112a到112n的所要存取的指令或适当命令。控制器115可负责其它操作,例如损耗平衡操作、废弃项目收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作及逻辑块地址与存储器组件112a到112n所相关联的物理块地址之间的地址变换。控制器115可进一步包含经由物理主机接口与主机系统120通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成用以存取存储器组件112a到112n的命令指令以及将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)及可从控制器115接收地址且解码所述地址以存取存储器组件112a到112n的地址电路系统(例如,行解码器及列解码器)。

存储器子系统110包含密钥加密处理组件113,密钥加密处理组件113可用于对加密密钥加密,存储所述经加密加密密钥及使用所述经加密媒体加密密钥管理进出数据的安全状态的转变。在一些实施例中,控制器115包含密钥加密处理组件113的至少一部分。例如,控制器115可包含经配置以执行存储于本地存储器119中的指令以用于执行本文中所描述的操作的处理器117(处理装置)。在一些实施例中,密钥加密处理组件113系存储器系统110、应用程序或操作系统的部分。

密钥加密处理组件113可产生媒体加密密钥以对存储器子系统110的存储器组件112a到112n的数据加密。密钥加密处理组件113可经配置以产生经加密媒体加密密钥。密钥加密处理组件113可将所述经加密加密密钥存储于存储器子系统110的非易失性存储器中。密钥加密处理组件113可存取存储经加密加密密钥的非易失性存储器且解包经加密加密密钥以在改变关于存储器子系统110中保护的数据的状态时使用加密密钥。关于密钥加密处理组件113的操作的另外细节将在下文描述。

图2是根据各个实施例的包含经结构化具有用于安全加密的密钥管理能力的实例非易失性具寄存器的双列直插式存储器模块的实例系统的框图。nvrdimm-n200可包含:非易失性控制器(nvc)204;用以存储数据的易失性存储器组件222-0到222-17,其中所述存储器中的每一者可为双倍数据速率第四代动态随机存取存储器(ddr4)类型的dram;非易失性存储器224,其可为nand快闪存储器,如果电力出现故障那么在其中转储易失性存储器的内容;及dimm电力单元226,其从主机230接收数个不同电压且将数个不同电压提供到nvrdimm-n200的组件。nvc204可包含控制drams222-0到222-17的dram控制器211及控制nand快闪存储器224的nand快闪控制器218。nvc204可包含电力控制及状态212、用以维持时序关系的计时及锁相环路(pll)213、寄存器/主机接口214、本地通信接口(lcom)216、内部集成电路(i2c)217、可具有先进先出(fifo)格式的数据缓冲器219、处理器208及串行外围接口(spi)209。nvrdimm-n200还可包含识别nvrdimm-n200的串行存在检测(spd)223。

nvrdimm-n200可与主机230一起操作以保存数据及返回数据或提供关于nvrdimm-n200上的事件的其它信息。nvrdimm-n200与主机230之间的通信可通过总线240。nvrdimm-n200包含耦合到nvc204的lcom216且可与主机230通信的非易失性寄存时钟驱动器(nvrcd)229。

可使用加密密钥保护存储于nvrdimm-n200中的数据。所述加密密钥可存储于nvrdimm-n200上的非易失性存储器中(例如存储于nor快闪存储器206中)。在数据处于受保护条件下时,nvrdimm-n200是在安全状态中。可通过固件201使用密钥产生及恢复单元202控制进入及退出安全状态的转变。可通过在nvc204内部的处理器208执行固件201中的指令以处理存储于nor快闪存储器206中及通过spi209从nor快闪存储器206检索的密钥。处理器208可为精简指令集计算机(risc)处理器。尽管主机230可提供用于密钥产生及恢复的输入,但nvrdimm-n200可经结构化使得固件201控制来自主机230的输入,其中主机230并不直接存取或控制密钥产生及恢复单元202。固件201可提供nvrdimm-n200中的密钥处理程序与来自nvrdimm-n200外部的来源的侵入的隔离。

可能涉及许多加密密钥。加密密钥中的一者是媒体加密密钥(mek),其是保护静态数据的主要密钥。静态意味着数据并不处于对数据执行操作的状态中。mek是使用确定性随机数产生器(drbg)在nvrdimm-n200内部产生。所述产生可以许多方式进行。可根据政府标准(例如,国家标准与技术研究院(nist)sp800-90a)产生mek。所产生的mek可为由aes-xts-256加密引擎用于数据的256位密钥。

256位密钥实际上为512个位,因为使用drbg产生用于加密的aes部分的密钥及产生用于加密的xts部分的密钥。如果此mek是在内部产生并在内部存储,那么在电力消失时,所述密钥将因为其在易失性存储装置中而消失。实施程序以保护此媒体加密密钥。

在此程序中,可通过主机经由i2c总线将存取密钥(ak)供应到nvrdimm-n的nvc。在所述nvc接收所述ak之后即可对所述ak加密,以提供保护mek的媒体密钥加密密钥mkek。此加密可以许多方式进行。例如,可用基于密码的密钥导出函数(pbkdf)或基于密码的密钥导出函数2(pbkdf2)根据政府标准(例如,nistsp800-232)对mek密钥加密。

如上文所提及,drbg在内部产生通过产生mkek的加密算法(例如pbkdf算法)保护的mek。接着,使用另一算法通过mkek包覆mek以产生经加密媒体加密密钥(emek)。密钥包覆构造是经设计以囊封(即,加密)密码编译密钥材料的一类对称加密算法。用mkek包覆mek可使用包覆(wrapping)算法根据nistsp800-38f来进行。所产生的emek可存储于nvrdimm-n的非易失性存储器中。例如,可将emek写入到nvrdimm-n的nor快闪,其中nor快闪是以配置基本存储器单元的逻辑形式命名的快闪。nor快闪存储器与nand快闪存储器相比读取更快,但与用nand快闪存储器相比耗费更长时间来擦除及写入新数据,而nand快闪存储器通常具有高于nor快闪存储器的存储容量。

为使用mek来存取受保护数据,从nor快闪存储器检索emek。对emek与mkek的组合执行密钥解包以产生可对于受保护数据使用的mek。解包提供完整性检查。如果解包有效,那么密钥的授权遵循解包。

图3a是根据各个实施例的产生经加密媒体加密密钥以保护媒体加密密钥的包覆方法的说明。此图说明如上文所论述的产生emek以保护mek的包覆过程。drbg303产生放置于mek寄存器305中的mek,其中所述mek是用于保护数据。drbg303还产生盐值(salt)。盐值是可实施为随机位的用于使攻击者的解密效率降低的随机数。例如,可将盐值增加到加密算法的顶上的另一散列层。当密码短语用于对数据加密时,盐值可为序连到所述密码短语或密钥的额外数据。作为所述序连的结果,攻击者的字典现需要含有更多条目,每个条目针对用于每一可能密码短语的每一可能盐值。盐值是用于包覆经接收存取密钥,其中所述包覆可经由pbkdf307进行以产生mkek。密钥包覆件310使用mkek来包覆mek以产生emek。emek可存储于nor快闪存储器中。

图3b是根据各个实施例的恢复图3a的媒体加密密钥的解包方法的说明。此图说明恢复图3a的mek的解包过程。用于包覆存取密钥的盐值可与来自主机的相同存取密钥一起使用以经由pbkdf307产生mkek。可检索存储于nor快闪存储器中的emek。密钥解包件320使用所产生的mkek及经存储的emek产生mek。可使用常规解包算法(例如)根据政府标准(例如nistsp800-38f)执行解包。如果解包程序成功,那么仅将mek恢复(例如)到mek寄存器305。

如所提及,当在具有nvrdimm-n的机器断电之后对所述机器通电时,已在所述nvrdimm-n的nand中加密的数据将被恢复到nvrdimm-n的适当dram。存取此经加密数据的唯一方式是产生在nor快闪中经包覆及保护使得黑客无法将其撤销的mek。为获取mek,应将存取密钥传递到nvrdimm-n中。将包覆过程中的盐值返回到存取密钥,pbkdf算法再次对存取密钥操作以提供mkek。从nor快闪存储器读取emek并使用mkek将emek解包(此与包覆过程相反)以产生mek。mek是用于对静态受保护数据解密。

nvc(例如图2的nvc204)可经布置以具有四种装置状态,其中所述四种装置状态之间的转变使用通过主机(例如图2的主机230)发送到nvc的两种类型的密钥。所述两种类型的密钥是ak及擦除密钥(ek)。所述ak是用于存取数据,解除锁定nvc及使存取密钥旋转。所述ek是用于破坏数据或取消部件安全性以改变部件中的密钥。ek可用随机数包覆且作为经包覆擦除密钥(wek)存储于nor快闪存储器中。ek维持与ak完全相同的安全层级。四种装置状态是无主状态、不安全状态、安全解除锁定状态及安全锁定状态。装置所有权区分使用加密与不使用加密。一旦装置移到锁定状态中,就会阻止对数据的基于安全性动作。nand是否可读及可写入意味着是否存在有效mek,呈经包覆形式的mek是否存储于nor快闪存储器中,是否已产生任何密钥,或是否已获取nvc装置的所有权,此涉及不安全状态、安全解除锁定状态或安全锁定状态。

关于存取密钥及擦除密钥的实施方案可以许多方式进行。所述实施方案的一部分可包含寄存器转移层级(rtl)且所述实施方案的一部分可包含固件。rtl提供依据硬件寄存器之间的数字信号(数据)流及对所述信号执行的逻辑操作建模同步数字电路的技术。rtl层级的设计是设计数字组件的典型做法。可在rtl中执行的用于密钥处理的引擎包含drbg、密钥加密(例如pbkdf2)、包覆及解包。

固件是在硬件装置上编程的软件程序或指令集。其提供所述装置如何与其它计算机相关硬件通信的指令。固件可涉及用于密钥处理的移动及跟踪。其可处理密钥传递,即,其引导密钥的移动且呼叫密钥加密(例如pbkdf2)。固件还处理nor快闪存取以用于存储经包覆加密的密钥及用于恢复经包覆加密的密钥。固件可处理控制串行外围接口(spi)对nor快闪的存取。spi是通常用于在微控制器与小外围设备(例如移位寄存器、传感器及sd卡)之间发送数据的接口总线。spi可使用分离的时钟及数据线连同选择将与哪一装置通信的选择线。

固件可执行应用程序编程接口(api)呼叫。api是指定软件组件应交互所借助的方式的一组例程、协议及工具。api呼叫(其也可被称为api请求)表示使应用程序执行通过所述应用程序定义的任务的特定操作。固件可执行针对待使用的正确硬件引擎的api呼叫,以设置数据路径。固件还可处理装置状态以控制装置状态的检查、跟踪及更新。固件的功能可包含维持用于错误处理的记录状态。控制api呼叫的固件提供使固件定位所处的nvrdimm-n介接到可操作地耦合到nvrdimm-n的主机的机制。所述主机可首先将密钥传递到nvrdimm-n中且接着设置与nvrdimm-n相关联的api。此固件可实施于其它nvdimm装置上。

关于最初出厂的nvrdimm-n装置的四种不同装置状态,装置是在无主状态中(此是工厂默认状态且密钥被预设),此意味着不具有对用户数据的保护。在此状态中,如果主机将数据从dram存储到nand,那么可通过可耦合到nvrdimm-n的任何装置(例如黑客装置)读取数据。如果应受保护的用户数据是在无主状态中(例如装置在出厂时那样),那么用户数据不受保护。三个api可连同在所述api之间传递且通过算法处理的密钥一起使用(如参考上文图3a到b论述)以保护用户数据。装置的状态可从无主状态移动到受保护解除锁定状态。在安全解除锁定状态中,可在内部产生的有效mek可用于保存及恢复经加密数据。所述mek可使用解包过程从快闪恢复。装置是在受保护状态中,但装置经解除锁定。当数据应受保护或装置断电时,可将装置置于安全锁定状态中。在安全锁定状态中,可用存储于nor快闪中的emek删除易失性存储器中的所有内容。nand中的用户数据不可存取。所有内容是锁定在防黑客条件下。

四种装置状态可根据许多特征特性化。处于无主状态中的装置状态对应于具有默认密钥的工厂默认状态。在不安全状态中,不存在对装置的nand的数据存取。在secure_unlocked状态中,所产生mek是有效的且装置是在保存及恢复模式中。在secure_unlocked状态中,mek的来源可为新的,从使用存取密钥及擦除密钥建立新mek的drbg产生。在secure_unlocked状态中,mek的来源在恢复程序中可为在解包过程中使用存取密钥的nor快闪。在secure_locked状态中,emek存储于nor快闪中,emek所基于的mek经删除,且数据不可存取。

图4是根据各个实施例的装置状态应用程序编程接口状态图的实例。操作状态是在固件中使用api呼叫及从主机传入的存取密钥实施,其中主机可在主机基本输入/输出系统(bios)中实施密钥传递,bios是用于在通电启动期间执行硬件初始化及对操作系统及程序提供运行时服务的非易失性固件。在装置状态api状态图400中,在430,具有可通过在431检查装置状态而开始初始化的初始状态或复位状态。在先前装置状态处于secure_locked状态的情况下,装置可进入所述secure_locked状态448中。在先前装置状态处于不安全状态的情况下,装置可进入不安全状态446中。在先前装置状态处于无主状态的情况下,装置可进入无主状态442中,主机可供应进入secure_unlocked状态444中的初始密钥及api,装置可从secure_unlocked状态444锁定于secure_locked状态448中。

为将无主状态442转变到secure_unlocked状态444,供应存取密码及擦除密码且接着产生初始化密钥(init_keys)以使装置置于secure_unlocked状态444中。此转变是以与用于从不安全状态446转变到secure_unlocked状态444相同的方式执行。从secure_unlocked状态444到无主状态442的转变是将装置返回到工厂默认状态的转变。为执行此转变,需要擦除密钥。所述擦除密钥经检查为有效的。如果擦除密钥有效,那么从易失性存储器及非易失性存储器清除密钥及emek两者。一般来说,此在安全圈中业被称为加密擦除。

如果装置接着将经解除锁定,那么检查从主机接收的存取密钥,因为装置在secure_locked状态448中。为从secure_locked状态448进入secure_unlocked状态444,从nor快闪存储器读出emek,解包所述emek并在433根据通过主机传入以执行解除锁定的存取密钥对所述emek进行检查。由于运行统计上应保护先前产生的存取密钥的解包算法及确定存取密钥并不相配,可记录可呈“keynotvalid”的形式的错误。例如,如果黑客在试图存取数据时传入猜测存取密钥,那么使用存储于nor快闪存储器中的经加密密钥的检查将所述猜测存取密钥识别为无效且记录错误。可实施定时器及数次检查,使得如果经接收存取密钥的检查在特定时间或特定次数检查内并不匹配来自nor快闪存储器的经解包密钥,那么尝试存取数据的机器或应用程序将被锁定在外。例如,检查的次数可为十次以在尝试存取数据的存取机器或应用程序被锁定在外之前允许十次存取尝试。经指定尝试的次数可具有增加参数,即在指定时间内将进行的经指定尝试的次数。经指定的尝试次数可为大于或小于十次。可选择经指定的尝试次数,使得在统计上在经指定的尝试次数中不可能挑选(即,猜测)正确密钥。

除了解除锁定api之外,可能具有更多api(例如change_keysapi及旋转密钥api)。所述改变密钥api提供更换经加密、包覆并存储于nor快闪存储器中的存取密钥。改变存取密钥包含擦除操作。为更换经加密、包覆并存储于nor快闪存储器中的存取密钥,在434根据经加密、包覆并存储于nor快闪存储器中的ek(其是旧ek)检查通过主机输入的ek。所述ek维持与ak完全相同的安全层级。如果检查指示通过主机供应以用于当前改变密钥操作的ek并不有效,那么可记录错误(例如“keynotvalid”)。

rotate_keysapi提供将当前存取密钥旋转到新存取密钥。为旋转出经加密、包覆并存储于nor快闪存储器中的存取密钥,可在436根据经加密、包覆并存储于nor快闪存储器中的ak(其是旧ak)检查通过主机输入的ak。如果检查指示通过主机供应以用于当前旋转密钥操作的ak并不有效,那么可记录错误(例如“keynotvalid”)。例如,周期性地(例如一月一次),主机可出于安全原因旋转出以获取新存取密钥以提供另一安全层级。在另一实例中,如果给定nvrdimm-n移动到不同机器,那么主机可改变存取密钥。主机具有旋转或改变存取密钥的控制,但在此控制中,所述给定nvrdimm-n中的数据是受到通过存储于nvrdimm-n的nor快闪存储器中的经加密、包覆的密钥检查存取密钥的过程保护。

在任何时间,可将nvrdimm-n装置置于不安全状态446中。再一次,从secure_locked状态448到不安全状态446的转变受到保护。在未传递在432检查的ek的情况下,装置不会从secure_locked状态448转变到不安全状态446。如果检查指示通过主机供应以用于当前转变操作的ek并不有效,那么可记录错误(例如“keynotvalid”)。关于其它转变,可实施定时器及数次检查,使得如果经接收ek的检查在特定时间或特定次数检查内并不匹配来自nor快闪存储器的经解包密钥,那么尝试存取数据的机器或设备将被锁定在外。因此黑客应用程序或装置无法试图取消部件安全性。如果数据经取消安全性,那么再次存取所述数据的能力将失去,因为一旦数据经取消安全性,数据就被加密擦除。加密擦除意味着你丢弃密钥,因此加密擦除是不安全操作。在不安全状态446中,装置可经重新初始化、执行维护及执行其它命令。重新初始化可包含所产生的初始化密钥(init_keys)将装置置于secure_unlocked状态444中。

图5说明根据各个实施例的实例装置状态功能应用程序编程接口。展示可相对于装置可能具有的状态执行的许多功能。相对于所论述的四种状态以表格形式展示实例数目个功能。而且,针对每一功能展示下一状态(装置针对每一给定功能从四种状态中的每一者转变到所述下一状态)。例如,作为init_keys列出的给定功能处理初始化密钥。如所展示,此功能可在无主状态中及在不安全状态中执行。在两种情况下,可在下一状态为secure_unlocked状态的情况下执行这些功能。如所展示,功能change_keys、unsecure、unlock、rotate_access_keys及其它功能并不在无主状态中执行。

图6是根据各个实施例的密钥产生/恢复单元的框图。密钥产生/恢复单元600具有用于加密的硬件块,所述硬件块可经实施以支持执行装置状态之间的转变的api的动作,如本文中所论述。这些硬件块可布置于nvdimm层级处。硬件块可包含类似于图3a及3b中所展示的组件布置的drbg块603、加密块607及包覆/解包块610。drbg块603可通过drbg303实现且加密块607可基于经实施的加密(例如图3a及3b的pbkdf307的形式)。包覆/解包块610可实现为两个单元(例如密钥包覆件310及密钥解包件320)或实现为密钥包覆件310与密钥解包件320的组合的单个单元。这些块可集成为装置(例如图2的nvrdimm-n200或其它nvdimm)中的单元。

drbg块603可由噪声产生器651及密钥散列消息认证码(hmac)drbg(hmac_drbg)652构造。噪声产生器651可为环形振荡器。例如,噪声产生器651可为非计时伽罗华(galois)环。伽罗华环是环形振荡器的一般化且由以级联方式与数个xor逻辑门连接在一起以形成反馈的数个反相器组成。伽罗华环可经允许以自由运行。用于应用伽罗华环的集成电路设计的制造参数的工艺、电压及温度(pvt)变化效应可影响伽罗华环的输出。

hmac是涉及密码编译散列函数及秘密密码编译密钥的特定类型的消息认证码(有时被称为标签)。其可用于同时确认数据完整性及消息的认证两者。hmac_drbg652可使用hmac-sha-256引擎遵循(例如)nistsp800-90a建置。sha(安全散列算法)是许多密码编译散列函数中的一者。例如,sha-256产生固定大小256位(32字节)散列,其中散列是单向函数,因为其无法被返回解密。噪声产生器651的输出可具有256个位到hmac_drbg652的熵输入。熵输入是对drbg机制提供经评估的最低量不可预测性的输入位字符串。噪声产生器651的输出可包含具有256个位的随机数(nonce)。随机数是包含于通过协议通常出于保证实时数据而非回放数据的传输的目的而交换以检测及保护免受回放攻击的数据中的随机或不重复值。

到hmac_drbg652的任选输入可包含个人化字符串。所述个人化字符串可为(但不限于)256位且可用于hmac_drbg652的初始种子植产生。到hmac_drbg652的额外任选输入可包含通过hmac_drbg652用于重新点火(re-seed)及产生操作的数个位。额外位可为(但不限于)256位。

hmac_drbg652的输出是随机值。使用hmac-sha-256引擎连同与噪声产生器651相关联的256个位参数、个人化字符串及来自主机的额外输入,所述随机值具有256个位。hmac_drbg652的输出作为mek提供到mek寄存器605(例如图3a的mek寄存器305)及作为盐值提供到加密块607或到将所述盐值从drbg603传送到加密块607的缓冲器或寄存器。hmac_drbg652的输出也可作为擦除密钥(其可被称为rnd)提供。类似于图3a的mek,rnd可提供到rnd寄存器656,随后从rnd寄存器656包覆rnd。mek寄存器605及rnd寄存器656可包含来自对未成功传递密钥的尝试次数计数的计数器的启用输入。小于或等于最大尝试次数的计数可用于控制来自mek寄存器605或来自rnd寄存器656的输出。

加密块607可布置为密码加密块(例如图3a的pbkdf307)。加密块607可包含遵循nistsp800-232的pbkdf2。加密块607可包含子块,例如遵循nistsp800-232的hmac及遵循nistfips280-4的sha-256。到加密块607的输入可包含来自主机的可具有256位的密码输入。所述密码是来自主机的通过装置(例如图2的nvrdimm-n200)上的固件载入到加密块607中的密钥,其中所述固件获取来自装置的i2c的密钥。

到加密块607的输入也可包含盐值,所述盐值是在装置的固件的控制下从主机输入或作为从drbg块603捕获的随机值输入。盐值可为128个位。加密块607可相对于迭代操作,所述迭代可为在装置的固件的控制下来自主机的输入或为存储或永久设置于装置内的默认值。迭代计数可包含32个位。迭代计数可大于或小于32个位。

来自加密块607的输出包含经导出密钥。所述经导出密钥可为256位密钥。经导出密钥的位作为经加密密钥输入到内部寄存器658(其可被称为kek寄存器658)。来自这些内部寄存器658的输出提供到包覆/解包块610。

包覆/解包块610可使用遵循nistsp800-38f的aes-256密钥包覆/解包程序。对于密钥包覆模式,输入可包含从加密块607产生的在内部寄存器中捕获的经导出密钥,如上文所提及。来自这些内部寄存器的输入是可具有256个位的被称为密钥加密密钥(kek)的散列密钥。kek是加密密钥,其功能是用于加密及解密加密密钥,所述加密密钥的功能是加密及解密数据,所述加密密钥是所产生的mek。在此布置中,kek是图3a的mkek。而且,到包覆/解包块610的输入是可具有256个位的纯文本输入。此输入是来自mek寄存器605的mek或来自rnd寄存器656的rnd。

在密钥包覆模式中,包覆/解包块610的输出可为密文输出。所述密文输出可包含(但不限于)320个位。包覆/解包块610的输出可作为emek耦合到emek寄存器659。装置的固件可经结构化以读取所述emek并将其存储到非易失性存储器。例如,emek可经由固件的保存操作经由spi存储到nor快闪存储器。固件可经由解包程序的恢复操作经由所述spi读取所述nor快闪存储器并将emek写入到emek寄存器659。

在密钥解包模式中,到包覆/解包块610的输入包含mkek(其是来自从加密块607撷取输出的内部寄存器658的散列密钥)。到包覆/解包块610的输入包含来自保存经加密的mek或rnd的emek寄存器659的密文输入。所述密文输入可包含(但不限于)320个位。在密钥解包模式中,包覆/解包块610的输出可为纯文本输出。密文输出可包含(但不限于)256个位。此输出可提供到mek寄存器605或rnd寄存器656。

密钥产生/恢复单元600是在控制数据的存储及安全性的装置内部配置。例如,密钥产生/恢复单元600可在nvdimm(例如但不限于图2的nvrdimm-n100)内部配置。密钥产生/恢复单元600的组件可经布置使得其不可供i2c或jtag接口存取到相应nvdimm。jtag是指为电子装置的标准测试存取端口及边界扫描架构提供建议的联合测试行动小组。通过相对于相应nvdimm的组件结构化的固件处理对从主机输入的信号及参数的控制以提供对相应nvdimm的状态的控制的隔离以保护nvdimm的数据。

密钥产生/恢复单元600提供用于固件进行密钥处理的密钥以相对于nvdimm执行不同api呼叫以保护所述nvdimm中保护的数据。主机可经由i2c将许多api命令传递到装置(例如nvdimm)。这些api命令可包含起始密钥、改变密钥、取消装置安全性、解除锁定装置、锁定装置、旋转存取密钥、测试存取密钥、测试擦除密钥的命令。相对于通过装置保护的数据提出解除锁定、锁定及取消安全性的请求。取决于控制数据的存储及安全性的装置,可包含其它api命令。这些是固件将寄存及提供执行的api命令。固件将与密钥产生/恢复单元600图的硬件块介接以在相对于由数据存储及保护的数据的安全性转变装置的状态时保护用户数据。装置(例如nvdimm)内部的固件控制装置的状态之间的转变及密钥的路由以保护装置的数据。

在nvdimm(例如图2的nvrdimm-n200)中,在非易失性控制器(nvc)内部的处理器运行以执行各种api的功能时,设置忙碌位。如果执行在任何方面都不成功,那么可记录错误。不同错误的实例可包含重试存取密钥计数错误、重试擦除密钥计数错误、装置状态错误、未发送旧擦除密钥、未发送旧存取密钥、未发送擦除密钥、未发送存取密钥及无效密钥。例如,假定用户主机由于装置在安全锁定状态中而尝试将装置解除锁定且传入存取密钥以执行解除锁定。所提供的所述存取密钥将经受加密块607的pdkf2且其将在包覆/解包块610中通过来自nor快闪的经加密密钥进行解包。如果此失败,那么设置陈述无效密钥的错误。在主机意外将无效密钥传递到装置中的情况下,装置提供错误信息到主机,此允许主机再次尝试。如果黑客装置试图传递猜测存取密钥,那么在未验证所述猜测存取密钥时也设置此无效密钥错误。导致产生错误代码的其它动作可包含例如未针对尝试命令或装置在错误状态中而将存取密钥发送到装置的动作。特定api可仅通过处于正确状态中的装置执行。如果执行api的尝试次数超过重试命令的设置次数(例如,但不限于超过十次重试),那么记录错误。所述错误可记录为重试存取密钥计数错误或重试擦除密钥计数错误。

在装置(例如nvdimm)中执行api呼叫时,固件可经布置以接收api命令。与固件相关联的所述nvdimm中的硬件布置忙碌位以指示api执行正在进行中。固件可清除任何旧状态、执行api、设置装置的适当状态并记录错误,以及在执行完成时清除忙碌位。以下是上文提及的可通过传递加密密钥而实施的实例api功能。

对于初始化密钥(init_keys)api命令的执行,所使用的密钥包含存取密钥及擦除密钥。首先,装置的状态必须在不安全状态或无主状态中。如果装置的状态是secure_unlocked状态或secure_locked状态,那么设置装置状态错误且退出过程。在检查装置的状态的此程序中,处于不安全状态中的装置保持不安全直到稍后处理。第二,进行检查以确定主机已发送存取密钥及擦除密钥。如果未从主机供应密钥或供应密钥的一者,那么设置未发送存取密钥及/或未发送擦除密钥且退出过程。第三,在连续过程中,使用装置的drbg硬件块产生mek。第四,使用存取密钥产生emek且经由spi将所述emek存储于装置中的非易失性存储器(例如nor快闪存储器)中。第五,使用rnd产生wek(其是经包覆擦除密钥)且经由spi将所述wek存储到装置中的非易失性存储器。第六,将装置状态设置到secure_unlocked。

对于change_keysapi命令的执行,所使用的密钥包含存取密钥、擦除密钥及旧擦除密钥。首先,装置状态必须在secure_unlocked状态或secure_locked状态中。如果装置状态是secure_unlocked,那么呼叫锁定api。如果装置状态是不安全,那么设置装置状态错误状态且退出。如果装置状态是不安全,那么装置状态保持不安全。第二,检查主机已发送存取密钥、擦除密钥及旧擦除密钥。如果未供应任何密钥,那么设置未发送x密钥错误(其中x密钥是存取密钥、擦除密钥及旧擦除密钥的一或多者)且退出。第三,经由装置上的spi从装置的非易失性存储器(例如nor快闪存储器)读取wek(经包覆擦除密钥)。第四,使用旧擦除密钥解包wek。第五,检查解包有效。如果解包失败那么设置无效密钥错误且退出。递增重试ek计数。装置状态保持于secure_locked状态中。第六,使用装置的drbg硬件块产生mek。第七,使用存取密钥包覆所述mek以形成emek。经由spi将emek存储到装置的非易失性存储器(例如nor快闪存储器)。第八,使用rnd将擦除密钥包覆到wek且经由spi将所述wek存储到装置的非易失性存储器(例如nor快闪存储器)。第九,将装置状态设置到secure_unlocked。

对于rotate_keysapi命令的执行,所使用的密钥可包含存取密钥及旧存取密钥。首先,装置状态必须在secure_unlocked状态或secure_locked状态中。如果装置状态是在不安全状态中,那么设置装置状态错误且退出。第二,检查主机已发送存取密钥及旧存取密钥。如果未供应任何密钥,那么设置未发送x密钥(其中x密钥是存取密钥及旧存取密钥的一或多者)且退出。第三,经由spi从装置中的非易失性存储器(例如nor快闪存储器)读取emek。第四,使用旧存取密钥解包emek。第五,检查解包有效。如果解包失败那么设置无效密钥错误且退出。递增重试ak计数。第六,使用存取密钥包覆mek以形成emek,且经由spi将emek存储到装置的非易失性存储器(例如nor快闪存储器)。第七,将装置状态设置到secure_unlocked状态。

对于不安全api命令的执行,所使用的密钥包含擦除密钥。首先,装置状态必须在secure_unlocked状态中或在secure_locked状态中。如果装置状态是在不安全状态中,那么此是无操作(nop)状态且退出。第二,检查主机已发送擦除密钥。如果未供应任何擦除密钥,那么设置未发送擦除密钥错误且退出。第三,经由spi从装置的非易失性存储器(例如nor快闪存储器)读取wek(经包覆擦除密钥)。第四,使用主机提供的擦除密钥解包wek。第五,检查解包有效。如果解包失败那么设置无效密钥错误且退出。递增重试ek计数。装置状态保持于secure_locked状态中或secure_unlocked状态中。第六,删除mek及emek且经由spi将emek及wek在装置的非易失性存储器(例如nor快闪存储器)中归零。第七,将装置状态设置到不安全。

对于解除锁定api命令的执行,所使用的密钥包含存取密钥。首先,装置状态必须在secure_locked状态中。如果装置状态是不安全状态或secure_unlocked状态,那么此是nop且退出。第二,检查主机已发送存取密钥。如果未供应任何存取密钥,那么设置未发送存取密钥错误且退出。第三,经由spi从装置的非易失性存储器(例如nor快闪存储器)读取emek。第四,使用存取密钥解包emek,其中目的地是mek寄存器。第五,检查解包有效。如果解包失败那么设置无效密钥错误且退出。递增重试ak计数。装置状态保持于secure_locked状态中。第六,将装置状态设置到secure_unlocked状态。

对于锁定api命令的执行,不需要密钥。首先,装置状态必须在secure_unlocked状态中。如果装置状态是在不安全状态中,那么设置装置状态错误且退出。如果装置状态系secure_locked状态,那么此是nop且退出。第二,通过装置的非易失性存储器(例如nor快闪存储器)中的有效emek删除mek及易失性emek。第三,将装置状态设置到secure_locked状态。

对于test_akapi命令的执行,所使用的密钥包含存取密钥。首先,检查主机已发送存取密钥。如果未供应任何存取密钥,那么设置未发送存取密钥错误且退出。第二,从装置的非易失性存储器(例如nor快闪存储器)读取emek。第三,使用存取密钥解包emek。第四,检查解包有效。如果解包失败,那么递增重试ak计数。如果解包失败那么设置无效密钥错误且退出。如果解包通过,那么清除重试ak计数。

对于test_ekapi命令的执行,所使用的密钥包含擦除密钥。首先,检查主机已发送擦除密钥。如果未供应任何擦除密钥,那么设置未发送擦除密钥错误且退出。第二,自装置的非易失性存储器(例如nor快闪存储器)读取wek。第三,使用擦除密钥解包wek。第四,检查解包有效。如果解包失败,那么递增重试ek计数。如果解包失败那么设置无效密钥错误且退出。如果解包通过,那么清除重试ek计数。

对于工厂默认api命令的执行,由于状态将改变回到无主,所以擦除密钥是用于确认。首先,检查装置状态。如果装置状态是无主状态,那么继续工厂默认操作。或者如果装置状态并不在secure_unlocked状态中,那么设置装置状态错误。第二,检查主机已发送擦除密钥。第三,从装置的非易失性存储器(例如nor快闪存储器)读取wek。第四,使用擦除密钥解包emek。第五,检查解包有效。第六,清除mek/emek。第七,继续字节可寻址能量支持接口(baebi)定义的工厂默认操作。

对于复位/初始化/监视api命令的执行,首先,在通电时,复位(例如nvc复位)将执行。第二,除了其它初始任务之外,也将检查先前装置状态。如果先前装置状态不安全,那么将装置状态设置到不安全状态。mek将为用于不安全模式用户的默认密钥。第三,如果永久装置状态是secure_unlocked状态或secure_locked状态,那么将装置状态设置到secure_locked状态。可设置事件引脚以触发主机传递存取密钥以进入secure_unlocked状态。

关于认证失败的重试计数,对于每一密钥维持相应认证重试计数。此重试计数可由用户调整。重试计数对于每一密钥可具有十次的默认。每当认证成功时,就将认证重试计数复位到0。特定失败等级是良好的。失败计数不会持续存在。归因于达到的最大重试计数,装置将不会改变操作模式,除了停用进一步尝试。在达到最大重试计数时做出的决策可取决于系统应用于的应用程序。可向主机提供重试超出错误。

图7是根据各个实施例的处理加密密钥的实例方法700的流程图。方法700可通过可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑来执行。在一些实施例中,方法700是通过图1的密钥加密处理组件113执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同顺序执行,且一些过程可并行执行。此外,一或多个过程可在各个实施例中省略。因此,每个实施例中并非需要所有过程。其它过程流程是可行的。

方法700可在nvrdimm-n200上部署。将了解,方法700可在其它硬件配置上部署。同样地,nvrdimm-n200可用于部署处理加密密钥的其它方法。在框710,处理装置(例如与图2的nvrdimm200的密钥产生及恢复单元202相关联)产生媒体加密密钥以对设备的数个存储器组件中的数据加密。在框720,处理装置包覆所述媒体加密密钥以产生经加密媒体加密密钥。在框730,处理装置将所述经加密媒体加密密钥存储于所述设备的非易失性存储器(例如图2的nvrdimm200的nor快闪存储器206)中。在框740,处理装置使用所述经加密媒体加密密钥将所述设备转变到安全状态及从所述安全状态转变。所述设备可为四状态设备,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

方法700或类似于方法700的方法的变化可包含可取决于此类方法的应用及/或其中实施此类方法的系统的架构而组合的许多不同实施例。此类方法可包含:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。方法700或类似方法可包含:接收用于从secure_locked状态转变的操作的存取密钥或擦除密钥;及使用用于所述操作的所述存取密钥或所述擦除密钥基于相对于用于所述操作的相应经接收的存取密钥或经接收的擦除密钥对经加密媒体加密密钥或经包覆擦除密钥的成功解包操作来执行所述操作。

图8是根据各个实施例的处理加密密钥的实例方法800的流程图。方法800可通过可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑来执行。在一些实施例中,方法700是通过图1的密钥加密处理组件113执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同顺序执行,且一些过程可并行执行。此外,一或多个过程可在各个实施例中省略。因此,每个实施例中并非需要所有过程。其它过程流程是可行的。

方法800可在nvrdimm-n200上部署。将了解,方法800可在其它硬件配置上部署。同样地,nvrdimm-n200可用于部署用于处理加密密钥的其它方法。在框810,存储器子系统的处理装置(例如与图2的nvrdimm200的密钥产生及恢复单元202相关联)产生媒体加密密钥,所述媒体加密密钥经配置以对非易失性双列直插式存储器模块的数个易失性存储器组件中的数据加密,其中所述非易失性双列直插式存储器模块具有非易失性控制器。在框820,存储器子系统(例如图2的nvrdimm-n200)接收源自于主机装置的存取密钥。在框830,处理装置使用存取密钥产生媒体密钥加密密钥。在框840,处理装置包覆所述媒体加密密钥与所述媒体密钥加密密钥的组合,以形成经加密媒体加密密钥。在框850,处理装置将所述经加密媒体加密密钥存储于非易失性双列直插式存储器模块的非易失性存储器(例如图2的nvrdimm200的nor快闪存储器206)中。在框860,处理器使用所述经加密媒体加密密钥将非易失性控制器从安全状态转变。非易失性控制器作为四状态装置操作,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

方法800或类似于方法800的方法的变化可包含可取决于此类方法的应用及/或其中实施此类方法的系统的架构而组合的许多不同实施例。此类方法可包含:从主机装置接收存取密钥;使用所述存取密钥解除锁定非易失性控制器或旋转到另一存取;及基于相对于经接收的存取密钥对经加密媒体加密密钥的成功解包来执行非易失性控制器的所述解除锁定或到另一存取密钥的所述旋转。

方法800或类似方法可包含:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。方法800或类似方法可包含:从主机装置接收擦除密钥;使用所述擦除密钥取消非易失性控制器的安全性或改变非易失性存储器中的密钥;及基于相对于经接收的擦除密钥对经包覆擦除密钥的成功解包来执行非易失性控制器的所述取消安全性或所述密钥的所述改变。

方法700及800以及类似于方法700及800的方法可包含与图1到6的任一者相关联的特征。方法700及800以及类似于方法700及800的方法也可包含与如本文中教示的加密密钥处理技术相关联的特征。

固件可包括在通过控制器执行时可引起执行包括以下操作的指令(例如微代码):产生媒体加密密钥以对设备的数个存储器组件中的数据加密;包覆所述媒体加密密钥以产生经加密媒体加密密钥;将所述经加密媒体加密密钥存储于所述设备的非易失性存储器中;及使用所述经加密媒体加密密钥将所述设备转变到安全状态及从所述安全状态转变。所述设备可为四状态设备,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

固件的指令在由控制器执行时可引起执行操作,所述操作可包含:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。所述指令可包含执行包含以下操作的指令:接收用于从secure_locked状态转变的操作的存取密钥或擦除密钥;及使用用于所述操作的所述存取密钥或所述擦除密钥基于相对于用于所述操作的相应经接收的存取密钥或经接收的擦除密钥对经加密媒体加密密钥或经包覆擦除密钥的成功解包操作来执行所述操作。

固件可包括在通过控制器执行时可引起执行包括以下操作的指令(例如微代码):产生媒体加密密钥,所述媒体加密密钥用以对非易失性双列直插式存储器模块的数个易失性存储器组件中的数据加密,所述非易失性双列直插式存储器模块具有非易失性控制器;接收源自于主机装置的存取密钥;使用所述存取密钥产生媒体密钥加密密钥;包覆所述媒体加密密钥与所述媒体密钥加密密钥的组合,以形成经加密媒体加密密钥;将所述经加密媒体加密密钥存储于非易失性双列直插式存储器模块的非易失性存储器中;及使用所述经加密媒体加密密钥从非易失性控制器的安全状态转变。非易失性控制器可作为四状态装置操作,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

固件的指令在通过控制器执行时可引起执行操作,所述操作可包含:从主机装置接收存取密钥;使用所述存取密钥解除锁定非易失性控制器或旋转到另一存取;及基于相对于经接收的存取密钥对经加密媒体加密密钥的成功解包来执行非易失性控制器的所述解除锁定或到另一存取密钥的所述旋转。固件的指令在通过控制器执行时可引起执行操作,所述操作可包含:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。所述操作可包含:从主机装置接收擦除密钥;使用所述擦除密钥取消非易失性控制器的安全性或改变非易失性存储器中的密钥;及基于相对于经接收的擦除密钥对经包覆擦除密钥的成功解包来执行非易失性控制器的所述取消安全性或所述密钥的所述改变。

固件可包括在通过控制器执行时可引起执行包括以下操作的指令(例如微代码):与装置中的加密密钥处理相关联之操作;及与图1到8所相关联的装置相关联的操作。固件的指令在通过控制器执行时可引起执行操作,所述操作可包含如本文中教示的操作。

在各个实施例中,一种设备包括:数个存储器组件;加密密钥产生器,其用以产生媒体加密密钥以对所述数个存储器组件中的数据加密,所述加密密钥产生器经配置以包覆所述媒体加密密钥以产生经加密媒体加密密钥;非易失性存储器,其用以存储所述经加密媒体加密密钥;及固件,其具有使用所述经加密媒体加密密钥将所述设备转变到安全状态及从所述安全状态转变的指令。所述设备可为四状态设备,其中所述四种状态是无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

固件可具有执行以下操作的指令:使用从主机装置接收的存取密钥从secure_locked状态转变到secure_unlocked状态,包含相对于所述经接收的存取密钥对经加密媒体加密密钥的成功解包操作。加密密钥产生器可经配置以:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。固件可具有执行以下操作的指令:使用从主机装置接收的擦除密钥从secure_locked状态转变到secure_unlocked状态,包含相对于所述经接收的擦除密钥对经包覆擦除密钥的成功解包操作。设备可包含如本文中教示的各种特征或特征组合。

设备的加密密钥产生器可包含:确定性随机数产生器,其用以产生作为媒体加密密钥的随机数;加密块,其用以接收所述随机数及通过主机装置产生的存取密钥及通过使用第一加密算法产生媒体密钥加密密钥;及包覆块,其用以接收所述媒体密钥加密密钥及所述媒体加密密钥及通过使用第二加密算法产生经加密媒体加密密钥。

在各个实施例中,一种非易失性双列直插式存储器模块可包括:数个易失性存储器组件;第一非易失性存储器,在检测电力故障之后即在其中转储所述易失性存储器组件的内容;非易失性控制器,其用以控制所述数个易失性存储器组件及所述非易失性存储器;加密密钥产生器,其用以产生媒体加密密钥以对所述数个存储器组件中的数据加密,所述加密密钥产生器经配置以包覆所述媒体加密密钥以产生经加密媒体加密密钥;第二非易失性存储器,其用以存储所述经加密媒体加密密钥;及固件,其具有使用所述经加密媒体加密密钥将所述非易失性控制器转变到安全状态及从所述安全状态转变的指令。所述非易失性控制器可作为四状态装置操作,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。非易失性双列直插式存储器模块可包含如本文中教示的各种特征或特征组合。

加密密钥产生器可经配置以:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到第二非易失性存储器。固件可具有执行以下操作的指令:使用从主机装置接收的用于所述操作的存取密钥或擦除密钥基于相对于用于所述操作的所述相应经接收的存取密钥或经接收的擦除密钥对经加密媒体加密密钥或经包覆擦除密钥的成功解包操作从secure_locked状态转变。

非易失性双列直插式存储器模块的固件可具有执行以下操作的指令:移动密钥及呼叫加密算法以产生用于包覆或解包的媒体密钥加密密钥;控制对第二非易失性存储器的存取;执行应用程序编程接口呼叫,包含设置到用于相应应用程序编程接口呼叫的硬件的数据路径;检查、跟踪及更新非易失性控制器的状态;及维持关于错误处理的记录状态。

在各个实施例中,一种系统包括:主机装置;及非易失性双列直插式存储器模块,其可操作地耦合到所述主机装置。所述非易失性双列直插式存储器模块可包含:动态随机存取存储器组件;nand快闪存储器,在检测电力故障之后即在其中转储所述动态随机存取存储器组件的内容;非易失性控制器,其用以控制所述动态随机存取存储器组件及所述nand快闪存储器;加密密钥产生器,其用以产生媒体加密密钥以对所述动态随机存取存储器组件中的数据加密,所述加密密钥产生器经配置以包覆所述媒体加密密钥以产生经加密媒体加密密钥;nor快闪存储器,其用以存储所述经加密媒体加密密钥;及固件,其具有使用所述经加密媒体加密密钥将所述非易失性控制器转变到安全状态及从所述安全状态转变的指令。所述非易失性控制器可作为四状态装置操作,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。所述系统可包含如本文中教示的各种特征或特征组合。

加密密钥产生器可经配置以:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到第二非易失性存储器。固件可具有执行以下操作的指令:使用从主机装置接收的用于所述操作的存取密钥或擦除密钥基于相对于用于所述操作的所述相应经接收的存取密钥或经接收的擦除密钥对经加密媒体加密密钥或经包覆擦除密钥的成功解包操作从secure_locked状态转变。

主机装置可提供用于产生经加密媒体加密密钥的存取密钥。固件可具有处理加密密钥的产生及恢复的指令,使得加密密钥的产生及恢复与通过主机装置的直接存取隔离。

图9说明计算机系统900的实例机器,在所述机器内可执行用于引起所述机器执行本文中所论述的方法论中的任一或多者的指令集。在一些实施例中,计算机系统900可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的密钥加密处理组件113的操作)。在替代实施例中,机器可连接(例如,网络连接)到lan、内部网络、商际网络及/或因特网中的其它机器。所述机器可在客户端-服务器网络环境中作为服务器机器或客户端机器而操作,在对等间(或分布式)网络环境中作为对等机器操作,或在云端计算基础设施或环境中作为服务器机器或客户端机器操作。

机器可为个人计算机(pc)、平板计算机pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换器或网桥,或能够执行指定通过所述机器采取的移动的指令集(循序或以其它方式)的任何机器。此外,虽然仅说明单个机器,但术语“机器”也应被视为包含个别或联合执行的一(或多个)指令集以执行本文中所论述的方法论中的任一或多者的机器的任何集合。

实例计算机系统900包含处理装置902、主存储器904(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambusdram(rdram)等)、静态存储器906(例如,快闪存储器、静态随机存取存储器(sram)等)及数据存储系统918,其经由总线930彼此通信。

处理装置902表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、极长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置902也可为一或多个专用处理装置,例如专用集成电路(asic)、场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置902经配置以执行用于执行本文中所论述的操作及步骤的指令926。计算机系统900可进一步包含经由网络920通信的网络接口装置908。

数据存储系统918可包含其上存储器现本文中所描述的方法论或功能中的任一或多者的一或多个指令926集或软件的机器可读存储媒体924(也被称为计算机可读媒体)。指令926也可完全或至少部分驻留于主存储器904内及/或在所述指令由计算机系统900执行期间驻留于处理装置902内,主存储器904及处理装置902也构成机器可读存储媒体。机器可读存储媒体924、数据存储系统918及/或主存储器904可对应于图1的存储器子系统110。

在一个实施例中,指令926包含实施对应于密钥加密处理组件(例如,图1的密钥加密处理组件113)的功能性的指令。虽然机器可读存储媒体924在实例实施例中展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”也应被视为包含能够存储或编码通过机器执行且引起机器执行本发明的方法论的任一或多者的指令集的任何媒体。术语“机器可读存储媒体”应相应地视为包含(但不限于)固态存储器、光学媒体及磁性媒体。

前文详细描述的一些部分已在对计算机存储器内的数据位的操作的算法及符号表示方面呈现。这些算法描述及表示事数据处理领域的技术人员用于更有效地向所属领域的其它技术人员传达其工作的实质的方式。算法在此处且通常被设想为导致所要结果的自相一致序列操作。所述操作是需要物理操纵物理量的所述操作。通常但并非一定地,这两量采用能够经存储、组合、比较及以其它方式操纵的电信号或磁信号的形式。有时,主要出于常用的原因,将这些信号指代为位、值、元件、符号、字母、术语、数字或类似物已证明为方便的。

然而,应牢记,所有这些及类似术语应与适当物理量相关联且仅为应用于这些量的方便标记。本发明可是指将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据转变成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的所述计算机系统或类似电子计算装置的动作及过程。

本发明也涉及用于执行本文中的操作的设备。此设备可专门为预期目的而构造,或其可包含通过存储于计算机中的计算机程序选择性激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘(包含软磁盘、光学磁盘、cd-rom及磁光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适于存储电子指令的任何类型的媒体,上述每一者耦合到计算机系统总线。

本文中呈现的算法及显示并非固有地与任何特定计算机或其它设备有关。各种通用系统可结合程序根据本文中的教示使用,或构造更专门设备来执行方法证明为方便的。用于各种这些系统的结构将如下文描述中所陈述。另外,本发明并不参考任何特定程序设计语言描述。将了解,各种程序设计语言可用于实施如本文中所描述的本发明的教示。

本发明可提供为可包含其上存储有指令的机器可读媒体的计算机程序产品或软件,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本发明的程序。机器可读媒体包含用于存储呈可通过机器(例如,计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

下文是根据本文中的教示的方法、设备及系统的实例实施例。

一种实例设备1可包括:多个存储器组件;加密密钥产生器,其用以产生媒体加密密钥以对所述多个存储器组件中的数据加密,所述加密密钥产生器经配置以包覆所述媒体加密密钥以产生经加密媒体加密密钥;非易失性存储器,其用以存储所述经加密媒体加密密钥;及固件,其具有使用所述经加密媒体加密密钥将所述设备转变到安全状态及从所述安全状态转变的指令。

实例设备2可包含实例设备1的元件,其中所述设备是四状态设备,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

实例设备3可包含任何前述实例设备的元件,其中所述固件具有执行以下操作的指令:使用从主机装置接收的存取密钥从secure_locked状态转变到secure_unlocked状态,包含相对于所述经接收的存取密钥对所述经加密媒体加密密钥的成功解包操作。

实例设备4可包含任何前述实例设备的元件,其中所述加密密钥产生器经配置以:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。

实例设备5可包含任何前述实例设备的元件,其中所述固件具有执行以下操作的指令:使用从主机装置接收的擦除密钥从secure_locked状态转变到secure_unlocked状态以更换存取密钥,包含相对于所述经接收的擦除密钥对经包覆擦除密钥的成功解包操作。

实例设备6可包含任何前述实例设备的元件,其中所述加密密钥产生器包含:确定性随机数产生器,其用以产生作为媒体加密密钥的随机数;加密块,其用以接收所述随机数及通过主机装置产生的存取密钥及通过使用第一加密算法产生媒体密钥加密密钥;及包覆块,其用以接收所述媒体密钥加密密钥及所述媒体加密密钥及通过使用第二加密算法产生经加密媒体加密密钥。

一种实例非易失性双列直插式存储器模块1包括:多个易失性存储器组件;第一非易失性存储器,在检测电力故障之后即在其中转储所述易失性存储器组件的内容;非易失性控制器,其用以控制所述多个易失性存储器组件及所述非易失性存储器;加密密钥产生器,其用以产生媒体加密密钥以对所述多个存储器组件中的数据加密,所述加密密钥产生器经配置以包覆所述媒体加密密钥以产生经加密媒体加密密钥;第二非易失性存储器,其用以存储所述经加密媒体加密密钥;及固件,其具有使用所述经加密媒体加密密钥将所述非易失性控制器转变到安全状态及从所述安全状态转变的指令。

实例非易失性双列直插式存储器模块2可包含任何前述实例设备及实例非易失性双列直插式存储器模块1的元件,其中所述非易失性控制器作为四状态装置操作,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

实例非易失性双列直插式存储器模块3可包含任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述加密密钥产生器经配置以:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到第二非易失性存储器。

实例非易失性双列直插式存储器模块4可包含任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述固件具有执行以下操作的指令:使用从主机装置接收的用于所述操作的存取密钥或擦除密钥基于相对于用于所述操作的所述相应经接收的存取密钥或经接收的擦除密钥对经加密媒体加密密钥或经包覆擦除密钥的成功解包操作从secure_locked状态转变。

实例非易失性双列直插式存储器模块5可包含任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述固件具有执行以下操作的指令:移动密钥及呼叫加密算法以产生用于包覆或解包的媒体密钥加密密钥;控制对第二非易失性存储器的存取;执行应用程序编程接口呼叫,包含设置到用于相应应用程序编程接口呼叫的硬件的数据路径;检查、跟踪及更新非易失性控制器的状态;及维持关于错误处理的记录状态。

一种实例系统1包括:非易失性双列直插式存储器模块,其经配置以可操作地耦合到主机装置,所述非易失性双列直插式存储器模块包含:动态随机存取存储器组件;nand快闪存储器,在检测电力故障之后即在其中转储所述动态随机存取存储器组件的内容;非易失性控制器,其用以控制所述动态随机存取存储器组件及所述nand快闪存储器;加密密钥产生器,其用以产生媒体加密密钥以对所述动态随机存取存储器组件中的数据加密,所述加密密钥产生器经配置以包覆所述媒体加密密钥以产生经加密媒体加密密钥;nor快闪存储器,其用以存储所述经加密媒体加密密钥;及固件,其具有使用所述经加密媒体加密密钥将所述非易失性控制器转变到安全状态及从所述安全状态转变的指令。

实例系统2可包含实例系统1的元件及任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述非易失性控制器作为四状态装置操作,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。2

实例系统3可包含任何前述实例系统的元件,及任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述加密密钥产生器经配置以:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到第二非易失性存储器。

实例系统4可包含任何前述实例系统的元件,及任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述固件具有执行以下操作的指令:使用从主机装置接收的用于所述操作的存取密钥或擦除密钥基于相对于用于所述操作的所述相应经接收的存取密钥或经接收的擦除密钥对经加密媒体加密密钥或经包覆擦除密钥的成功解包操作从secure_locked状态转变。

实例系统5可包含任何前述实例系统的元件,及任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述主机装置提供用于产生经加密媒体加密密钥的存取密钥。

实例系统6可包含任何前述实例系统的元件,及任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件,其中所述固件具有处理加密密钥的产生及恢复的指令,使得加密密钥的产生及恢复与通过主机装置的直接存取隔离。

一种实例方法1包括:产生媒体加密密钥以对设备的多个存储器组件中的数据加密;包覆所述媒体加密密钥以产生经加密媒体加密密钥;将所述经加密媒体加密密钥存储于所述设备的非易失性存储器中;及使用所述经加密媒体加密密钥将所述设备转变到安全状态及从所述安全状态转变。

实例方法2可包含实例方法1的元件,其中所述设备是四状态设备,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

实例方法3可包含任何前述实例方法的元件,其中所述实例方法包含:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。

实例方法4可包含任何前述实例方法的元件,其中所述实例方法包含:接收用于从secure_locked状态转变的操作的存取密钥或擦除密钥;及使用用于所述操作的所述存取密钥或所述擦除密钥基于相对于用于所述操作的相应经接收的存取密钥或经接收的擦除密钥对经加密媒体加密密钥或经包覆擦除密钥的成功解包操作来执行所述操作。

一种实例方法5包括:产生媒体加密密钥,所述媒体加密密钥用以对非易失性双列直插式存储器模块的数个易失性存储器组件中的数据加密,所述非易失性双列直插式存储器模块具有非易失性控制器;接收源自于主机装置的存取密钥;使用所述存取密钥产生媒体密钥加密密钥;包覆所述媒体加密密钥与所述媒体密钥加密密钥的组合,以形成经加密媒体加密密钥;将所述经加密媒体加密密钥存储于非易失性双列直插式存储器模块的非易失性存储器中;及使用所述经加密媒体加密密钥从非易失性控制器的安全状态转变。

实例方法6可包含实例方法5的元件及任何前述实例方法的元件,其中所述非易失性控制器作为四状态装置操作,所述四种状态为无主状态、secure_unlocked状态、secure_locked状态及不安全状态。

实例方法7可包含任何前述实例方法的元件,其中所述实例方法包含:从主机装置接收存取密钥;使用所述存取密钥解除锁定非易失性控制器或旋转到另一存取密钥;及基于相对于经接收的存取密钥对经加密媒体加密密钥的成功解包来执行非易失性控制器的所述解除锁定或到另一存取的所述旋转。

实例方法8可包含任何前述实例方法的元件,其中所述实例方法包含:产生擦除密钥;包覆所述擦除密钥以形成经包覆擦除密钥;及将所述经包覆擦除密钥发送到非易失性存储器。

实例方法9可包含任何前述实例方法的元件,其中所述实例方法包含:从主机装置接收擦除密钥;使用所述擦除密钥取消非易失性控制器的安全性或改变非易失性存储器中的密钥;及基于相对于经接收的擦除密钥对经包覆擦除密钥的成功解包来执行非易失性控制器的所述取消安全性或所述密钥的所述改变。

实例方法10可包含关于任何前述实例系统的元件、任何前述实例设备及任何前述实例非易失性双列直插式存储器模块的元件的任何前述实例方法的元件。

在前文说明书中,本发明的实施例已参考其特定实例实施例进行描述。很显然,可在不脱离如所附权利要求书中所陈述的本发明的实施例的更宽广精神及范围的情况下对所述实施例进行各种修改。因此,说明书及图式应被视为具说明性意义而非限制性意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1