首页> 中国专利> 与存储器子系统的安全数据通信

与存储器子系统的安全数据通信

摘要

本申请涉及与存储器子系统的安全数据通信。本文所描述的各种实施例提供了主机系统与存储器子系统之间的安全数据通信。例如,一些实施例使用盐值、对称加密和非对称加密来促进所述主机系统与所述存储器子系统之间的安全数据通信。

著录项

  • 公开/公告号CN112836247A

    专利类型发明专利

  • 公开/公告日2021-05-25

    原文格式PDF

  • 申请/专利权人 美光科技公司;

    申请/专利号CN202011319093.6

  • 发明设计人 D·巴维什;

    申请日2020-11-23

  • 分类号G06F21/78(20130101);G06F21/60(20130101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人王龙

  • 地址 美国爱达荷州

  • 入库时间 2023-06-19 11:05:16

说明书

技术领域

本公开的实施例总体上涉及存储器子系统,更具体地,涉及与存储器子系统的安全数据通信。

背景技术

存储器子系统可包含一或多个存储数据的存储器组件。存储器组件可为,例如非易失性存储器组件和易失性存储器组件。通常,主机系统可利用存储器子系统以在存储器组件处存储数据并从存储器组件检索数据。

发明内容

在一方面,本公开涉及一种存储器子系统,其包括:一组存储器装置;以及处理装置,其可操作地耦合到所述一组存储器装置,经配置以执行包括以下的操作:从主机系统接收对存储在存储器子系统上的非对称公钥的请求;响应于所述请求,向主机系统发送非对称公钥;从主机系统接收包括第一存取密钥和当前主机盐值的加密数据;通过非对称私钥对加密数据进行解密,以从加密数据中获得第一存取密钥和当前主机盐值,所使用的非对称私钥和当前盐值中的每一者存储在存储器子系统上;确定第一存取密钥是否与存储在存储器子系统上的第二存取密钥匹配;确定当前主机盐值是否与存储在存储器子系统上的当前存储器子系统盐值匹配;以及响应于确定第一存取密钥与第二存取密钥匹配以及当前主机盐值与当前存储器子系统盐值匹配,准许主机系统存取一组存储器装置。

在另一方面,本公开涉及一种方法,其包括:从主机系统向存储器子系统发送对存储在存储器子系统上的非对称公钥的请求;在主机系统处从存储器子系统接收非对称公钥;由主机系统存取存储在主机系统上的第一存取密钥;在主机系统处,通过非对称公钥对第一存取密钥和当前主机盐值进行加密以生成加密数据,所使用的当前主机盐值存储在主机系统上;以及从主机系统向存储器子系统发送加密数据。

在另一方面,本公开涉及一种非暂时性计算机可读存储介质,其包括当由存储器子系统的处理装置执行时,致使处理装置执行包括以下操作的指令:从主机系统接收对从存储器子系统的保留存储器空间读取非对称公钥的请求;响应于请求,向主机系统发送非对称公钥;从主机系统接收包括第一存取密钥和当前主机盐值的加密数据;通过非对称私钥对加密数据进行解密,以从加密数据中获得第一存取密钥和当前主机盐值,所使用的非对称私钥和当前盐值中的每一者存储在存储器子系统上;确定第一存取密钥是否与存储在存储器子系统上的第二存取密钥匹配;确定当前主机盐值是否与存储在存储器子系统上的当前存储器子系统盐值匹配;以及响应于确定第一存取密钥与第二存取密钥匹配以及当前主机盐值与当前存储器子系统盐值匹配,准许主机系统存取存储器子系统的一组存储器装置。

附图说明

通过下面给出的详细描述以及通过本公开的各种实施例的附图,将更全面地理解本公开。然而,附图不应被理解为将本公开限制为特定实施例,而是仅用于解释和理解。

图1示出了根据本公开的一些实施例的包含存储器子系统的实例计算环境。

图2和3是根据本公开的一些实施例的用于存储器子系统以促进与主机系统的安全数据通信的实例方法的流程图。

图4和5是根据本公开的一些实施例的用于主机系统以促进与存储器子系统的安全数据通信的实例方法的流程图。

图6A至6D提供了示出了在其中执行用于与存储器子系统进行安全数据通信的方法的一些实施例的上下文中计算环境的组件之间的交互的交互图。

图7是其中可操作本公开的实施例的实例计算机系统的框图。

具体实施方式

本公开的各方面针对与存储器子系统的安全数据通信。存储器子系统可为存储装置、存储器模块或者存储装置与存储器模块的混合体。下面结合图1描述存储装置和存储器模块的实例。通常,主机系统可利用包含存储数据的一或多个存储器装置的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,并且可请求从存储器子系统中检索数据。

目前,有几种高密度的非易失性存储器技术(例如,新的持久存储介质)正在开发中以用作计算设备中的主存储器。这些存储器技术可使数据能够保持在持久主存储器中,并且随后即使在主机系统重启之后也可由软件应用程序存取。因此,这些存储器技术通常很好地适用于各种存储器内计算应用,尤其是那些需要将兆兆字节的数据存储在主存储器中的应用。

不幸的是,由于如此多的数据(例如,用户或敏感数据)能够持久地存储在主存储器中,因此保持所存储的数据安全是很有挑战性的。已知在过去已经发生了数据破坏,其中攻击者使用软件和硬件探测器以物理存储器/主存储器上的数据为目标。复杂的初始化和探测攻击(例如,使用中央处理单元高速缓存,结合使用硬件中介层)可能潜在地揭示正在访问的数据的持久主存储器中的物理地址,以及随后的数据本身。从应用软件的观点来看,持久数据通常与地址位置表(例如,用于存储指向数据的地址指针的数据结构)一起存储,因此如果攻击者能够访问这些地址表的物理地址,他或她可能获得对所有地址指针的存取,并因此存取存储在这些位置的所有数据。另外,用诸如AES(高级加密标准)之类的强大的标准对存储在持久主存储器上的数据进行加密可能不是合适的选项,鉴于强大的加密标准在计算上可能会非常昂贵(例如,可能需要花费数千个处理器时钟周期来执行)并且可能使持久主存储器的性能变慢到可能使持久主存储器不适合用作主存储器的程度。

本公开的各方面通过实现主机系统与诸如非易失性双列直插式存储器模块(NVDIMM)装置(例如,其可用作持久主存储器)等存储器子系统之间的安全数据连接来解决上述和其它缺陷。为了促进主机系统与存储器子系统之间的安全数据通信,本文所述的各种实施例使用基于非对称公钥和私钥的强加密,并且使用基于随时间变化(例如,由主机系统以不规则时间间隔改变)的对称密钥的较弱加密。使用本文所述的各种实施例可防止(或至少使其具有挑战性)主机系统与存储器子系统之间的地址或数据信道(例如,总线)上的数据的未经授权窥探,从而减轻某些基于硬件的存储器攻击的机会。另外,本文所述的各种实施例可提供主机系统与存储器子系统之间的安全数据通信,同时使存储器子系统能够维持主存储器数据性能。

如本文所述,本文公开了促进与存储器子系统进行安全数据通信的系统的一些实例。

图1示出了根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含诸如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)等的介质,或此些的组合。

存储器子系统110可为存储装置、存储器模块或者存储装置和存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用闪存(UFS)驱动器和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。计算系统100可为计算装置,诸如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)、嵌入式装置、嵌入式计算机(例如,包含于交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的此计算装置。

计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了主机系统120耦合到一个存储器子系统110的一个实例。如本文所使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有介入组件),无论是有线还是无线,包含诸如电、光、磁等的连接。

主机系统120可包含处理器芯片组和由处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如,以将数据写入存储器子系统110并从存储器子系统110读取数据。

主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行式SCSI(SAS)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM插槽接口)等。物理主机接口可用于在主机系统120和存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM Express(NVMe)接口以访问存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。

存储器装置可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含负和(NAND)型快闪存储器和位写入存储器,诸如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列,基于体电阻的变化来执行位存储。此外,与许多基于闪存的存储器相比,交叉点非易失性存储器可执行位写入操作,其中可在不预先擦除非易失性存储单元的情况下对非易失性存储单元进行编程。

尽管描述了诸如3D交叉点型和NAND型快闪存储器的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,诸如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它基于硫族化物的存储器、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、负或(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)和非易失性存储器单元的交叉点阵列。

一种类型的存储器单元(例如,单级单元(SLC))可每单元存储一位。其它类型的存储器单元,诸如多级单元(MLC)、三级单元(TLC)和四级单元(QLC),可每单元存储多位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,诸如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定的存储器装置可以包含存储器单元的SLC部分和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可被分组为页,其可指代用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),可将页分组以形成块。

存储器子系统控制器115(或为简单起见,控制器115)可以与存储器装置130通信以执行诸如在存储器设备130处读取数据、写入数据或擦除数据等操作以及其它此些操作。存储器子系统控制器115可包含诸如一或多个集成电路和/或分立组件的硬件、缓冲存储器或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路,以执行本文所述的操作。存储器子系统控制器115可以是微控制器,专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。

存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程的指令。

在一些实施例中,本地存储器119可包含存储存储器指针、所获取的数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。尽管已经将图1中的实例存储器子系统110示为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110可不包含存储器子系统控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。

通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换为指令或适当的命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,诸如损耗均衡操作、垃圾回收操作、错误检测和纠错码(ECC)操作、加密操作、缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理MU地址、物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路,以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统120接收到的命令转换为存取存储器装置130的命令指令,并将与存储器装置130相关联的响应转换为用于主机系统120的信息。

存储器子系统110还可包含未示出的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址并对地址进行解码以存取存储器装置130。

在一些实施例中,存储器装置130包含本地介质控制器135,其结合存储器子系统控制器115进行操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可从外部管理存储器装置130(例如,对存储器装置130执行介质管理操作)。在一些实施例中,存储器装置130是受管存储器装置,其是与本地控制器(例如,本地控制器135)组合的原始存储器装置,以用于相同存储器装置封装内的介质管理。受管存储器装置的实例是受管NAND(MNAND)装置。

根据各种实施例,存储器子系统110包含安全主机通信组件113,其可使得存储器子系统110能够与主机系统120安全地通信数据。在一些实施例中,存储器子系统控制器115包含安全主机通信组件113的至少一部分。例如,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令用于执行本文所述的操作。在一些实施例中,安全主机通信组件113是主机系统120、应用程序或操作系统的一部分。

另外,根据各种实施例,主机系统120包含安全存储器通信组件125,其使得主机系统120能够与存储器子系统110安全地通信数据。如图所示,(主机系统120的)安全存储器通信组件125包含非对称加密管道152、对称加密管道156和对称解密管道158,(存储器子系统控制器115的)安全主机通信组件113包含非对称解密管道180、对称解密管道188和对称加密管道190。

根据一些实施例,存储器子系统的制造商生成非对称私钥和公钥对(例如,每个1024位),并将非对称私钥和公钥对存储在存储器子系统上。在图1中,非对称私钥和公钥对由非对称私钥182和非对称公钥184表示。存储器子系统的制造商还可在存储器子系统110上生成并存储存取密钥(例如,装置专用存取密钥),并且在存储器子系统110上生成并存储初始盐值(其也用作初始对称密钥)。存取密钥和盐值/对称密钥中的每一者的大小可以是例如64位。在图1中,存取密钥由存取密钥186表示,存储的盐值/对称密钥由盐值/对称密钥192表示。对于一些实施例,将初始盐值/对称密钥192和存取密钥186的副本提供(例如,由存储器子系统的制造商)给主机系统120(例如,通过使两者都存储在主机系统120上的用户)。在图1中,存取密钥154和盐值/对称密钥160分别表示初始盐值/对称密钥192和存取密钥186存储在主机系统120上的副本。

在操作期间,安全存储器通信组件125可致使主机系统120向存储器子系统110请求非对称公钥184的副本。对于一些实施例,安全存储器通信组件125的引起此请求的部分可实施为主机系统120的启动代码或基本输入/输出操作系统(BIOS)驱动器的一部分,从而致使主机系统120在系统启动时作出请求。一旦由存储器子系统110提供给主机系统120,主机系统120可将非对称公钥184的副本存储在主机系统120上,这在图1中由非对称公钥150表示。对于一些实施例,存储器子系统根据存储器协议(例如,非易失性双列直插式存储器模块-P(NVDIMM-P)存储器协议)包括一或多个模式寄存器,主机系统120可用来获取对非对称公钥184的副本的存取。一或多个模式寄存器可位于存储器子系统110的特定存储器地址处。对非对称公钥184的副本的请求可包含从特定存储器地址读出非对称公钥184的请求。

在主机系统120从存储器子系统110接收到非对称公钥184的副本并将副本存储在主机系统120上以用作非对称公钥150之后,安全存储器通信组件125可使用非对称公钥150对(经由非对称加密管道152)存取密钥154进行加密,同时在加密过程中使用盐值/对称密钥160作为盐(例如,将盐值/对称密钥160应用于存取密钥154,然后使用非对称公钥150对所得数据进行加密)。此后,安全存储器通信组件125可致使主机系统120将所得加密数据发送到存储器子系统110。举例来说,安全存储器通信组件125可致使主机系统120将加密数据写入到存储器子系统110的一或多个模式寄存器(例如,NVDIMM-P模式寄存器),接着存储器子系统110可从模式寄存器随后存取加密数据。

最终,安全主机通信组件113可致使存储器子系统110存取从主机系统120接收到的加密数据,并使用非对称私钥182和盐值/对称密钥192作为盐以经由非对称解密管道180对加密数据进行解密(例如,对加密数据进行解密,并从所得数据中去除盐值/对称密钥192的应用),以从加密数据中获得存取密钥154的副本。一旦存储器子系统110从主机系统120提供的加密数据获得存取密钥154的的副本,安全主机通信组件113即可确定存取密钥154是否与本地存储在存储器子系统110的存取密钥186匹配。如果存取密钥不匹配,则安全主机通信组件113可致使存储器子系统110拒绝主机系统120存取存储器装置130、140。然而,如果存取密钥匹配,则安全主机通信组件113可致使存储器子系统110准许(例如,授权)主机系统120对存储器装置130、140的存取(例如,读出或写入存取)。

一旦准许存取,安全存储器通信组件125可使得主机系统120能够在将数据发送到存储器子系统110之前通过使用盐值/对称密钥160作为对称密钥对数据进行加密(经由对称加密管道156)而将数据(例如,命令相关写入数据、目的地存储器地址或两者)安全地通信到存储器子系统110。安全主机通信组件113可使得存储器子系统110能够接收加密数据并(经由对称解密管道188)使用盐值/对称密钥192作为对称密钥对其进行解密。相反,安全主机通信组件113可使得存储器子系统110能够在将数据发送到主机系统120之前通过使用盐值/对称密钥192作为对称密钥以(经由对称加密管道190)对数据进行加密而将数据(例如,命令相关响应数据,诸如读取数据)安全地通信到主机系统120。安全存储器通信组件125可使得主机系统120能够接收加密数据并(经由对称解密管道158)使用盐值/对称密钥160作为对称密钥对其进行解密。

为了向数据通信提供额外的安全性,一些实施例将存储在主机系统120和存储器子系统110上的盐值/对称密钥160、192不时地改变(例如,替换、更新)为新盐值/对称密钥。这种改变/替换/更新可以以规则的时间间隔或以不规则的时间间隔执行,以提高安全性。这样,一些实施例可以在攻击者有足够的时间使用强力或其它技术破坏对称加密之前改变新的盐值/对称密钥160、192。根据实施例,安全存储器通信组件125可致使主机系统120启动新的盐值/对称密钥替换当前盐值/对称密钥160、192,或替代地,安全存储器通信组件113可使得存储器子系统110能够启动新的盐值/对称密钥替换当前盐值/对称密钥160、192。如本文所使用的,当前主机盐值可以指当前存储在主机系统120上的当前盐值/对称密钥160,而当前存储器子系统盐值可以指当前存储在存储器子系统110上的当前盐值/对称密钥192。

对于一些实施例,安全存储器通信组件125致使主机系统120以规则或不规则时间间隔用新的盐值来改变(例如,替换、更新)主机系统120上的盐值/对称密钥160以及存储器子系统110上的盐值/对称密钥192。举例来说,在给定的时间点,安全存储器通信组件125可致使主机系统120:生成新的盐值/对称密钥;向存储器子系统110发送包含加密数据(使用当前存储在主机系统120上的盐值/对称密钥160作为对称密钥进行加密)的请求,加密数据包含新的盐值/对称密钥;以及在存储器子系统110指示用新的盐值/对称密钥对盐值/对称密钥192的改变(例如,替换、更新)完成之后,将新的盐值/对称密钥存储为盐值/对称密钥160。在从主机系统120接收到请求后,存储器子系统110可通过使用当前存储在存储器子系统110上的盐值/对称密钥192对加密数据进行解密来从加密数据获得新的盐值/对称密钥。然后,存储器子系统110可以用所获得的新的盐值/对称密钥来改变(例如,替换、更新)当前存储在存储器子系统110上的盐值/对称密钥192,然后通知主机系统120盐值/对称密钥192的改变(例如,替换、更新)已完成。对于一些实施例,从主机系统120到存储器子系统110的请求(用于改变盐值/对称密钥)包含将新的盐值/对称密钥(包含在加密数据中)写入到存储器子系统110的特定存储器地址(诸如与特定存储器地址相关联的保留存储器空间(例如,NVDIMM-P模式寄存器))的命令或请求。

如本文所述,通过安全存储器通信组件125,主机系统120可以最初向存储器子系统110发送不对称加密的数据,该数据包含具有最初已知的盐值/对称密钥(例如,由存储器子系统制造商提供的盐值/对称密钥的初始版本)的存取密钥154,其作为盐值/对称密钥160存储在主机系统上并且作为盐值/对称密钥192存储在存储器子系统上(例如,在其制造时)。此后,在主机系统120或存储器子系统110断电之前,由主机系统120和存储器子系统110使用的盐值/对称密钥可以包含在主机系统120上(作为盐值/对称密钥160)和存储器子系统110上(作为盐值/对称密钥192)生成和存储(经由本文所述的替换操作)的最后盐值/对称密钥。对于一些实施例,盐值/对称密钥192存储在存储器子系统110的持久存储介质上(例如,其可以形成存储器装置130、140之一的一部分),从而为盐值/对称密钥192提供电源安全和介质安全存储。同样,盐值/对称密钥160可以存储在主机系统120的持久存储介质上(例如BIOS的快闪存储器)。在主机系统120或存储器子系统110的每次启动时,主机系统120可以向存储器子系统110发送包含具有作为盐的最后盐值/对称密钥(当前存储在主机系统120上的盐值/对称密钥160)的存取密钥的非对称加密数据。通过在启动时以这种方式使用这种连续变化的盐值/对称密钥,各种实施例可解决每次非对称加密数据从主机系统120发送到存储器子系统110时(在启动时)由发送到存储器子系统110的相同位造成的潜在易损性。在不使用具有存取密钥154的盐的情况下,非对称密码术的确定性性质将导致包含相同位的非对称加密数据。使用最后盐值/对称密钥160作为盐可导致包含不同位的非对称加密数据随时间变化,从而阻止攻击者获得对存取密钥154的存取。

对于一些实施例,本文所述的安全数据通信是关于诸如NVDIMM-P存储器协议的非确定性存储器协议来实施的。关于NVDIMM-P存储器协议,主机系统120可表示NVDIMM-P启动器,而存储器子系统110可表示NVDIMM-P目标。非对称私钥和公钥对可存储在NVDIMM-P目标上(例如,在制造期间生成并烧录到存储器子系统110中)。NVDIMM-P目标可在NVDIMM-P启动器或NVDIMM-P目标启动时(例如,应NVDIMM-P的请求)发送发送到NVDIMM-P启动器的非对称公钥。NVDIMM-P启动器可以向NVDIMM-P目标发送命令/请求以读取非对称公钥(例如,从NVDIMM-P模式寄存器),并且作为响应,NVDIMM-P目标可以向NVDIMM-P启动器发送非对称公钥。NVDIMM-P启动器可以接收并存储非对称公钥。可以向NVDIMM-P启动器提供(例如,由存储器子系统制造商)与NVDIMM-P目标相关联的存取密钥和NVDIMM-P启动器可以存储的初始已知盐值/对称密钥。相同的存取密钥和初始已知盐值/对称密钥可以在NVDIMM-P目标制造期间存储在NVDIMM-P目标上。使用非对称公钥,NVDIMM-P启动器可生成包含具有初始盐值/对称密钥作为盐的存取密钥的非对称加密数据。非对称加密数据可发送到并由NVDIMM-P目标接收,NVDIMM-P目标可通过使用非对称私钥对非对称加密数据进行解密并从解密数据去除盐值/对称密钥从非对称加密数据中获得存取密钥。响应于由NVDIMM-P启动器提供的与存储在NVDIMM-P目标上的存取相匹配的存取密钥,NVDIMM-P目标可准许(例如,授权)NVDIMM-P启动器存取NVDIMM-P目标的一或多个存储器装置(130、140)。在NVDIMM-P目标准许NVDIMM-P启动器存取一或多个存储器装置之后,NVDIMM-P目标和NVDIMM-P启动器可以在使用盐值/对称密钥作为对称密钥进行对称加密的彼此数据(例如,包含命令相关数据或存储器地址)之间通信。根据实施例,NVDIMM-P目标和NVDIMM-P启动器可以以仅地址加密模式(其中在通信之前仅对存储器地址数据进行对称加密)、仅地址加密模式(其中在通信之前仅对命令相关数据进行对称加密)或者以地址和数据模式(其中在通信之前对存储器地址数据和命令相关数据进行加密)操作。另外,对于一些实施例,NVDIMM-P目标和NVDIMM-P启动器可以以对称地加密从NVDIMM-P启动器发送到NVDIMM-P目标的命令的模式操作。

对于一些实施例,由主机系统120(经由对称解密管道158)和存储器子系统110(经由对称解密管道188)中的每一者执行的对称解密可在对在主机系统120与存储器子系统之间通信的数据(例如,存储器地址数据或命令相关数据)执行纠错码(ECC)检查之后或与其并行地执行。如果确定ECC中的错误,则可停止经由对称解密管道158或对称解密管道188执行的对称解密,并且此外,可以发出错误(例如,根据非确定性存储器协议)。这样,在发现ECC错误之后,主机系统120或存储器子系统110的时钟周期不会浪费在对称解密上。

下面描述关于安全主机通信组件113和安全存储器通信组件125的操作的进一步细节。

图2和3是根据本公开的一些实施例的用于存储器子系统以促进与主机系统的安全数据通信的实例方法200、300的流程图。方法200、300可由处理逻辑来执行,其可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法200由图1的存储器子系统控制器115基于安全主机通信组件113执行。另外,在一些实施例中,方法300由图1的存储器子系统控制器115基于安全主机通信组件113执行。尽管以特定顺序或次序示出,但除非另有说明,否则可修改过程的次序。因此,所示的实施例应当仅被理解为实例,并且可以以不同次序执行所示的过程且可并行执行一些过程。此外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程也是可能的。

现在参考图2的方法200,在操作202,处理装置(例如,存储器子系统控制器115的)从主机系统(例如,120)接收对存储在存储器子系统上的非对称公钥的请求。对于一些实施例,对非对称公钥的请求指定与用于存储非对称公钥的存储器子系统的保留存储器空间相关联的特定存储器地址。另外,在主机系统向存储器子系统提供存取密钥或主机系统被存储器子系统准许存取存储器子系统的一或多个存储器装置之前,特定存储器地址可与主机系统可访问的存储器空间相关联。对于一些实施例,特定存储器地址与存储器子系统的模式寄存器相关联,其中所述模式寄存器符合非易失性双列直插式存储器模块-P(NVDIMM-P)存储器协议。因此,请求可包括从特定存储器地址读取的命令(例如,NVDIMM-P命令)。

在操作204,响应于操作202的请求,处理装置向主机系统发送非对称公钥。如本文所述,可从存储器子系统的保留存储器空间(诸如NVDIMM-P模式寄存器)提供非对称公钥。因此,作为对包括读取命令(例如,NVDIMM-P读取命令)的请求(在操作202发送)的响应,将非对称公钥发送到主机系统。对于一些实施例,非对称公钥是与也存储在存储器子系统上的非对称私钥相关联(例如,成对的)的公钥。根据各种实施例,非对称私钥被维护为秘密并且不由存储器子系统提供给主机系统。非对称公钥和私钥最初可作为制造存储器子系统的过程的一部分存储在存储器子系统上。例如,在存储器子系统被分发以供使用之前,该过程可以由制造设施处的存储器子系统制造商来执行。该过程可进一步包括使用存储器子系统外部的处理装置(例如,制造商的主机系统)或使用存储器子系统的处理装置生成非对称公钥和私钥对。非对称公钥和私钥可以作为只读数据存储在存储器子系统上(例如,持久存储在存储器子系统上)。

在操作206,处理装置从主机系统接收包括第一存取密钥的加密数据。对于一些实施例,存储器子系统经由存储器子系统的保留存储器空间(例如,根据NVDIMM-P存储器协议的模式寄存器)从主机系统接收加密数据,所述保留存储器空间与主机系统可以向其写入加密数据的特定存储器地址相关联。第一存取密钥可由存储器子系统的制造商提供(例如,电子地)给主机系统(例如,在操作206之前)。一旦由制造商提供,第一存取密钥可存储在主机系统上(例如,由主机系统的用户),以供主机系统随后结合本文所述的安全数据通信操作使用。

在操作208,处理装置通过非对称私钥对加密数据进行解密,以从加密数据获得第一存取密钥和当前主机盐值。根据各种实施例,用于操作208的非对称私钥存储在存储器子系统上。对于一些实施例,通过非对称私钥对加密数据进行解密包括通过非对称私钥对加密数据进行解密,并从所得数据中去除当前主机盐值以获得第一存取密钥(例如,从所得数据中提取当前主机盐值)。

在操作210,处理装置确定第一存取密钥(从在操作208对加密数据进行解密获得)是否与存储在存储器子系统上的第二存取密钥匹配。第一存取密钥可表示主机提供的存取密钥,且第二存取密钥可表示主机提供的存取密钥将需要匹配的存储器侧存取密钥,以便主机系统获得对存储器子系统的一或多个存储器装置的存取(例如,读取或写入存取)。第二存取密钥可以存储在存储器子系统的保留存储器空间中。根据各种实施例,第二存取密钥被维护为秘密且不由存储器子系统提供给主机系统。对于一些实施例,第二存取密钥最初作为用于制造存储器子系统的过程的一部分存储在存储器子系统上。例如,在存储器子系统被分发以供使用之前,该过程可以由制造设施处的存储器子系统制造商来执行。该过程可进一步包括使用存储器子系统外部的处理装置(例如,制造商的主机系统)或使用存储器子系统的处理装置生成第二存取密钥。第二存取密钥可作为只读数据存储在存储器子系统上(例如,持久地存储在存储器子系统上)。

在操作212,处理装置确定当前主机盐值(从在操作208对加密数据进行解密获得)是否与存储在存储器子系统上的当前存储器子系统盐值匹配。对于一些实施例,当前存储器子系统盐值最初作为用于制造存储器子系统的过程的一部分存储在存储器子系统上。例如,在存储器子系统被分发以供使用之前,该过程可以由制造设施处的存储器子系统制造商来执行。该过程可进一步包括使用存储器子系统外部的处理装置(例如,制造商的主机系统)或使用存储器子系统的处理装置生成当前存储器子系统盐值。当前存储器子系统盐值可存储在存储器子系统的保留存储器空间中的存储器子系统上,诸如NVDIMM-P模式寄存器。对于一些实施例,在存储器子系统上初始存储当前存储器子系统盐值之后,当前存储器子系统盐值可由来自主机系统的请求改变(例如,随时间替换),如本文所述。

在操作214,基于操作210和操作212的确定,处理装置准许(例如,授权)主机系统存取存储器子系统的一或多个存储器装置。举例来说,对于各种实施例,响应于处理装置确定(从主机系统接收的)第一存取密钥与(存储在存储器子系统上的)第二存取密钥匹配以及确定(从主机系统接收的)当前主机盐值与(存储在存储器子系统上的)当前存储器子系统盐值匹配,处理装置准许主机系统存取一或多个存储器装置。

现在参考图3的方法300,处理装置(例如,存储器子系统控制器115的)执行操作302至314,其可以分别类似于上面关于图2所述的方法200的操作202至212。

在操作316,处理装置从主机系统(例如,120)接收包括加密请求数据的第二请求。根据实施例,第二请求可包括命令且可进一步包括存储器地址(例如,目的地或源存储器地址)或数据,其中对存储器地址或数据中的至少一者进行加密(例如,由主机系统使用本文所述的对称密钥进行加密)。对于一些实施例,第二请求的命令(例如,命令编码)在从主机系统发送到存储器子系统时呈加密形式。另外,对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议从主机系统接收第二请求。举例来说,第二请求可包括对存储器子系统的命令(例如,NVDIMM-P PWRITE命令)、要与该命令一起使用的存储器子系统的存储器地址(例如,目的地存储器地址),以及要与该命令一起使用的数据(例如,要写入目的地地址)。可根据NVDIMM-P存储器协议通过命令(CMD)线将命令(例如,加密命令编码)和存储器地址(例如,加密目的地或源存储器地址)从主机系统发送到存储器子系统,且可根据NVDIMM-P存储器协议通过数据线(例如,DQ线)将数据(例如,加密数据)从主机系统发送到存储器子系统。

在操作318,处理装置通过对称密钥对(在操作316接收的第二请求的)加密请求数据进行解密,以从加密请求数据获得未加密的请求数据,其中对称密钥包括当前存储在存储器子系统上的当前存储器子系统盐值。如本文所述,存储器子系统可使用存储器子系统当前存储的当前存储器子系统盐值:(a)作为关于由存储器子系统结合与主机系统的安全数据通信执行的非对称加密操作(例如,操作208和关于方法300所述的操作308)的盐值;以及(b)作为用于由存储器子系统结合与主机系统的安全数据通信执行的对称操作(例如,稍后关于方法300所述的操作318)的对称密钥。根据实施例,未加密的请求数据可包括存储器命令、命令相关数据和存储器地址中的至少一者。

在操作320,处理装置基于未加密的请求数据处理(在操作318获得的)第二请求。第二请求可包括例如读取存储器命令和源存储器地址,或写入存储器命令、目的地存储器地址,以及要写入目的地存储器地址的数据。加密请求数据可包括至少一个存储器地址、命令相关数据或存储器命令(例如,NVDIMM-P命令编码)。

在操作322,处理装置基于在操作320对第二请求的处理生成响应数据。举例来说,当第二请求包括读取存储器命令和源存储器地址时,响应数据可包括从源存储器地址读取的数据。举例来说,响应数据可包括响应于包括读取命令的第二请求从源存储器地址读取的数据。

在操作324,处理装置通过对称密钥对(在操作322生成的)响应数据进行加密以生成加密响应数据。如本文所述,对称密钥包括存储在存储器子系统上的当前存储器子系统盐值。

在操作326,处理装置向主机系统发送包括(在操作324获得的)加密响应数据的响应。对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议将响应发送到主机系统。

对于一些实施例,操作316至320便于用主机系统提供的新的盐值替换存储在存储器子系统上的当前存储器子系统盐值。举例来说,如本文所述,存储器子系统使用存储器子系统的特定存储器地址来将当前存储器子系统盐值存储在存储器子系统上。对于一些实施例,该特定存储器地址与存储器子系统上的保留存储器空间相关联,诸如根据NVDIMM-P存储器协议的存储器子系统的模式寄存器。在操作316,存储器子系统的处理装置可从主机系统接收包括加密请求数据的第二请求,该加密请求数据指定新的盐值(例如,由主机系统生成)并且进一步指定特定存储器地址。第二请求可进一步包括写入命令(例如,NVDIMM-PPWRITE命令),其指示存储器子系统将新的盐值写入到特定存储器地址,从而将当前存储器子系统盐值设置为新的盐值。在操作318,存储器子系统的处理装置可通过对称密钥(由存储器子系统存储的当前存储器子系统盐值)对加密请求数据进行解密,以从加密请求数据获得新的盐值和特定存储器地址。如本文所述,存储器子系统可分别在单独的DQ和CMD线上从主机系统接收加密的新的盐值和加密的特定存储器地址。在操作320,存储器子系统的处理装置可基于未加密的请求数据(例如,新的盐值和特定存储器地址)处理第二请求(例如,写入命令),以致使新的盐值被写入到特定存储器地址,从而致使用新的盐值替换存储在存储器子系统上的当前存储器子系统盐值。随后,存储器子系统可向主机系统发送指示第二请求是否被存储器子系统成功处理的响应(例如,在RSP_n线上)。

图4和5是根据本公开的一些实施例的用于主机系统以促进与存储器子系统的安全数据通信的实例方法400、500的流程图。方法400、500可由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的主机系统120的处理器基于安全存储器通信组件125来执行。此外,在一些实施例中,方法500由图1的主机系统120的处理器基于安全存储器通信组件125来执行。尽管以特定顺序或次序示出,但除非另有说明,否则可修改过程的次序。因此,所示的实施例应当仅被理解为实例,并且可以以不同次序执行所示的过程且可并行执行一些过程。此外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程也是可能的。

现在参考图4的方法400,在操作402,(例如主机系统120的)处理装置从主机系统向存储器子系统发送对存储在存储器子系统(例如110)上的非对称公钥的请求。对于一些实施例,当主机系统最初试图获得对存储器子系统的一或多个存储器装置的存取(例如,读取或写入存取)时(例如,在主机系统或存储器子系统的最初通电之后),主机系统将该请求发送到存储器子系统。对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议将请求发送到存储器子系统。请求可包括从特定存储器地址读取的命令(例如,NVDIMM-P命令)。

在操作404,处理装置在主机系统处从存储器子系统接收非对称公钥。对于各种实施例,响应于在操作402主机系统发送的请求,存储器子系统将非对称公钥发送到主机系统。对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议从存储器子系统接收非对称公钥。举例来说,可接收非对称公钥作为对由主机系统发送到存储器子系统的读取命令的响应。

在操作406,处理装置通过主机系统存取当前存储在主机系统上的第一存取密钥。如本文所述,第一存取密钥可由存储器子系统的制造商(例如,在操作406之前)提供(例如,电子地)。一旦由制造商提供,第一存取密钥可存储在主机系统上(例如,由主机系统的用户)以供主机系统随后使用。

在操作408,处理装置由主机系统通过非对称公钥对第一存取密钥(在操作406存取的)和当前主机盐值进行加密以生成加密数据,其中所使用的当前盐值当前存储在主机系统上。对于一些实施例,通过非对称公钥对第一存取密钥和当前主机盐值进行加密包括将当前主机盐值应用(例如,添加、连接或以其它方式组合)于第一存取密钥并使用非对称公钥对所得数据进行加密。

在操作410,处理装置从主机系统向存储器子系统发送加密数据(在操作408获得的)。对于一些实施例,将加密数据发送到存储器子系统包括将加密数据(包括第一存取密钥)写入到存储器子系统的特定存储器地址,诸如与存储器子系统的保留存储器空间相关联的特定存储器地址(例如,根据NVDIMM-P存储器协议的模式寄存器)。对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议将加密数据发送到存储器子系统。

现在参考图5的方法500,(例如,主机系统120的)处理装置执行操作502至510,其可以分别类似于关于图4所述的方法400的操作402至410。

在操作512,处理装置在主机系统处从存储器子系统接收指示存储器子系统是否已准许(例如,授权)主机系统存取存储器子系统的一或多个存储器装置的响应(响应于在操作510发送的加密数据)。对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议从存储器子系统接收响应。

在操作514,处理装置从主机系统向存储器子系统发送包括加密请求数据的第二请求。对于一些实施例,该发送包括通过对称密钥对存储器命令数据或存储器地址数据中的至少一者进行加密以生成加密请求数据,其中对称密钥包括当前存储在主机系统上的当前主机盐值。如本文所述,主机系统可使用主机系统当前存储的当前主机盐值:(a)作为关于由主机系统结合与存储器子系统的安全数据通信执行的非对称加密操作(例如,操作508)的盐值;以及(b)作为由主机系统结合与存储器子系统的安全数据通信执行的对称操作(例如,操作514)的对称密钥。第二请求可包括例如读取存储器命令和源存储器地址,或写入存储器命令、目的地存储器地址,以及要写入目的地存储器地址的数据。加密请求数据可包括至少一个存储器地址、命令相关数据或存储器命令(例如,NVDIMM-P命令编码)。对于一些实施例,第二请求包括对用于存储当前存储器子系统盐值的存储器子系统的特定存储器地址的写入命令,从而便于替换存储在存储器子系统上并由存储器子系统使用的当前存储器子系统盐值。对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储协议将第二请求发送到存储器子系统110。

在操作516,处理装置从存储器子系统接收包括加密响应数据的第二响应。对于一些实施例,响应于在操作514从主机系统发送到存储器子系统的第二请求,接收第二响应。对于一些实施例,根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议从存储器子系统接收第二响应。

在操作518,处理装置通过对称密钥对(在操作516接收的第二响应的)加密响应数据进行解密,以从加密请求数据获得未加密的响应数据,其中对称密钥包括当前存储在主机系统上的当前主机盐值。举例来说,未加密的响应数据可包括响应于包括读取命令的第二请求从源存储器地址读取的数据。

在操作520,处理装置用新的盐值替换当前主机盐值(当前存储在主机系统上)和当前存储器子系统盐值(当前存储在存储器子系统上)。根据一些实施例,用新的盐值替换当前的盐值包括生成新的盐值,然后,通过对称密钥对新的盐值进行加密以生成加密请求数据。如本文所述,对称密钥可包括当前存储在主机系统上的当前主机盐值。主机系统的处理装置可向存储器子系统发送新请求,其中新请求包括加密请求数据。根据实施例,新请求可包括将加密请求数据写入(例如,写入命令)到特定存储器地址(例如,根据NVDIMM-P存储器协议与模式寄存器相关联的地址)的请求,或者可包括使用加密请求数据中提供的新的盐值设置(或替换)当前存储器子系统盐值(当前存储在存储器子系统上)的请求。随后,主机系统的处理装置可从存储器子系统接收指示新请求(例如,写入/设置/替换新的盐值)是否成功完成的新响应。基于该响应,主机系统的处理装置可将新的盐值作为当前主机盐值存储在主机系统上,从而用新的盐值替换当前主机盐值(用于替换存储在存储器子系统上的当前存储器子系统盐值的同一盐值)。另外,在从主机系统接收到新请求之后,存储器子系统可使用(例如,存储)新的盐值作为在新请求之前存储在存储器子系统上的当前存储器子系统盐值的替代。因此,操作520可促进在主机系统和存储器子系统两者上用新的盐值替换当前盐值,使得主机系统和存储器子系统中的每一者可使用新的盐值:(a)作为关于结合主机系统与存储器子系统之间的安全数据通信执行的后续非对称加密操作的盐值;以及(b)作为用于结合主机系统与存储器子系统之间的安全数据通信执行的后续对称操作的对称密钥。根据实施例,操作520可由主机系统的处理装置响应于一或多个标准,以规则的时间间隔,或以不规则的时间间隔(例如,随机时间间隔以提高安全性)执行。

图6A至6D提供了示出了在其中执行用于与存储器子系统进行安全数据通信的方法的一些实施例的上下文中计算环境100的组件之间的交互的交互图。方法的操作可由处理逻辑来执行,其可包括硬件(例如处理设备、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,由主机系统(例如,120)、存储器子系统控制器(例如,115)、存储器装置(例如,130、140)或其某一组合来执行所述方法。尽管操作以特定的顺序或次序示出,但除非另有说明,否则可修改过程的次序。因此,所示的实施例应当仅被理解为实例,并且可以以不同次序执行所示的过程且可并行执行一些过程。此外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。在图6所示实例的上下文中,主机系统可包含主机系统120,存储器子系统控制器可包含存储器子系统控制器115,并且存储器装置可包含存储器装置130或140。

如图6A所示,在操作602,主机系统120从主机系统120向存储器子系统110发送对存储在存储器子系统110上的非对称公钥(例如,184)的请求。在操作620,存储器子系统控制器115从主机系统120接收对存储在存储器子系统110上的非对称公钥的请求。在操作622,响应于操作620的请求,存储器子系统控制器115向主机系统120发送非对称公钥。在操作604,主机系统120从存储器子系统110接收非对称公钥(响应于操作602的请求)。主机系统120可存储接收到的非对称公钥(例如,作为150)以供后续使用。在操作606,主机系统120存取当前存储在主机系统120上的第一存取密钥(例如,154)。在操作608,主机系统120通过主机系统120的非对称公钥(例如,150)对存储在主机系统120上的第一存取密钥和当前主机盐值(例如,160)进行加密。具体地,可将当前主机盐值(例如,160)应用(例如,连接)于第一存取密钥,并且可使用非对称公共密钥(例如,150)对所得数据进行加密。

现在参考图6B,在操作610,主机系统120从主机系统120向存储器子系统110发送加密数据(在操作608获得的)。在操作624,存储器子系统控制器115从主机系统120接收加密数据(包括第一存取密钥),并且在操作626,存储器子系统110通过非对称私钥(例如,182)对加密数据进行解密,以从加密数据生成第一存取密钥和当前主机盐值。在操作627,存储器子系统控制器115确定第一存取密钥(在操作626从对加密数据进行解密获得的)是否与存储在存储器子系统110上的第二存取密钥(例如,186)匹配。在操作628,存储器子系统控制器115确定当前主机盐值(在操作626从对加密数据进行解密获得的)是否与存储在存储器子系统110上的当前存储器子系统盐值(例如,192)匹配。在操作630,基于操作627和操作628的确定,存储器子系统控制器115准许(例如,授权)主机系统120存取存储器子系统110的一或多个存储器装置(例如,130、140)。在操作612,主机系统120从存储器子系统110接收指示存储器子系统110是否已准许(例如,已授权)主机系统120存取存储器子系统110的一或多个存储器装置的响应(响应于在操作610发送的加密数据)。

现在参考图6C,其中在操作612接收到的响应指示主机系统120被准许存取一或多个存储器装置,在操作614,主机系统120从主机系统120向存储器子系统110发送包括加密请求数据的第二请求。具体地,发送可包括主机系统120通过存储在主机系统120上的对称密钥(例如,160)对存储器命令数据或存储器地址数据中的至少一者进行加密,以生成加密请求数据。第二请求可进一步包括存储器命令(例如,NVDIMM-P存储器命令),其还可由对称密钥加密。在操作632,存储器子系统控制器115从主机系统120接收包括加密请求数据的第二请求。在操作634,存储器子系统控制器115通过存储在存储器子系统110上的对称密钥(例如,192)对加密请求数据进行解密,以从加密请求数据获得未加密的请求数据。未加密的请求数据可包括存储器命令、命令相关数据和存储器地址中的至少一者。在操作636,存储器子系统控制器115基于未加密的请求数据处理第二请求。在操作650,存储器子系统110的存储器装置(例如,130、140)响应于由存储器子系统控制器115在操作636对第二请求的处理而导致的一或多个存储器存取操作。在操作638,存储器子系统控制器115基于在操作636对第二请求的处理生成响应数据。在操作640,存储器子系统控制器115通过存储在存储器子系统110上的对称密钥(例如,192)对响应数据(在操作638生成的)进行加密,以生成加密响应数据。

现在参考图6D,在操作642,存储器子系统控制器115将包括加密响应数据(在操作640获得的)的响应发送到主机系统120。具体地,可根据诸如非确定性存储器协议(例如,NVDIMM-P存储器协议)的存储器协议将响应从存储器子系统110发送到主机系统120。在操作616,主机系统120从存储器子系统110接收包括加密响应数据的响应。具体地,响应于在操作614从主机系统120发送到存储器子系统110的第二请求而接收响应。在操作618,主机系统120通过存储在主机系统120上的对称密钥(例如,154)对加密响应数据进行解密,以从加密请求数据获得未加密的响应数据。在操作644,主机系统120用新的盐值(如本文所述)替换存储在主机系统120上的当前主机盐值(例如,160)和存储在存储器子系统110上的当前存储器子系统盐值(例如,192)。操作644可由主机系统120以规则或不规则的时间间隔执行。作为操作644的一部分,在操作646,存储器子系统控制器115接收新的盐值,并用接收到的新的盐值替换存储在存储器子系统110上的当前存储器子系统盐值(例如,192)。

图7示出了计算机系统700形式的实例机器,在其中可执行一组指令以致使该机器执行本文所讨论的方法中的任何一或多者。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),该主机系统包括、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行与图1的安全存储器通信组件125对应的操作)。在替代实施例中,该机器可连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。该机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,可作为对等(或分布式)网络环境中的对等机器,或者作为云计算基础设施或环境中的服务器或客户机器运行。

机器可为个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、服务器、网络路由器、交换机或网桥,或能够执行指定该机器要执行的动作的一组指令(顺序的或其它方式)的机器。此外,尽管示出了单个机器,但术语“机器”还应当被理解为包含单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一或多者的机器的任何集合。

实例计算机系统700包含经由总线730彼此通信的处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)的动态随机存取存储器(DRAM)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储装置718。

处理装置702表示一或多个通用处理装置,诸如微处理器、中央处理单元等。更具体地,处理装置702可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其它指令集的处理器或实现指令集组合的多个处理器。处理装置702也可为一或多个专用处理装置,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702经配置以执行用于执行本文所讨论的操作和步骤的指令726。计算机系统700可进一步包含网络接口装置708以通过网络720进行通信。

数据存储装置718可包含机器可读存储介质724(也称为计算机可读介质),在其上存储了体现本文所述的方法或功能中的任何一或多种的一或多组指令726或软件。指令726还可完全地或至少部分地驻留在主存储器704内和/或处理装置702内,在其由计算机系统700执行期间,主存储器704和处理装置702也构成机器可读存储介质。机器可读存储介质724、数据存储装置718和/或主存储器704可以对应于图1的存储器子系统110。

在一个实施例中,指令726包含用以实施对应于与如本文所述的存储器子系统的安全数据通信(例如,图1的安全存储器通信组件125)的功能性的指令。尽管在实例实施例中将机器可读存储介质724示出为单个介质,但术语“机器可读存储介质”应当被理解为包含存储一或多组指令的单个介质或多个介质。术语“机器可读存储介质”还应当被理解为包含能够存储或编码一组指令以由机器执行并且致使机器执行本公开的方法中的任何一或多者的任何介质。因此,术语“机器可读存储介质”应当被理解为包含(但不限于)固态存储器、光介质和磁介质。

已经根据对计算机存储器内的数据位的操作的算法和符号表示呈现了前面的详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员通常使用的,从而最有效地将它们的工作实质传递到其它领域的技术人员。本文的算法通常是指得到期望结果的操作的自相容序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采用能够被存储、组合、比较以及以其它方式被操纵的电或磁信号的形式。有时主要是为了公共使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字、或者类似名称,经证实这是方便的。

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

本公开还涉及用于执行本文的操作的设备。该设备可具体地被构建用于预期目的,或者其可包含由存储于计算机中的计算机程序选择性地激活或可由其重新配置的通用计算机。此计算机程序可存储于计算机可读存储介质中,诸如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或者适于存储电子指令的任何类型的介质,每一介质耦合到计算机系统总线。

本文呈现的算法和显示并不固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者其可证明构造更专用的设备来执行所述方法是方便的。各种这些系统的结构从下面的描述将是显而易见的。另外,没有参考任何特定编程语言来描述本公开。应理解,可使用各种编程语言来实施本文所描述的本公开的教示。

本公开可被提供作为计算机程序产品或软件,所述软件可包含其上存储有指令的机器可读介质,所述指令可用于对计算机系统(或其它电子装置)编程以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、快闪存储器组件等。

在前述说明书中,已经参考其特定实例实施例描述了本公开的实施例。显然,可在不脱离如在所附权利要求中阐述的本公开的实施例的更宽的精神和范围的情况下对其进行各种修改。因此,说明书和附图被认为是说明性的而非限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号