CN112585607A - 用于存储存储器加密领域密钥id的方法、装置和系统 - Google Patents

用于存储存储器加密领域密钥id的方法、装置和系统 Download PDF

Info

Publication number
CN112585607A
CN112585607A CN201980054642.0A CN201980054642A CN112585607A CN 112585607 A CN112585607 A CN 112585607A CN 201980054642 A CN201980054642 A CN 201980054642A CN 112585607 A CN112585607 A CN 112585607A
Authority
CN
China
Prior art keywords
key
realm
domain
memory
hash function
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
CN201980054642.0A
Other languages
English (en)
Inventor
D·拉斯科
R·阿万茨
T·P·施派尔
H·阿伯达拉米德
V·瑟蒂
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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
Priority claimed from US16/547,527 external-priority patent/US11789874B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN112585607A publication Critical patent/CN112585607A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/71Protecting 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/72Protecting 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 in cryptographic circuits
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

公开了一种用于存储存储器加密领域密钥ID的方法、装置和系统。一种方法包括:使用物理地址访问存储器所有权表,以确定与该物理地址相关联的领域ID;使用该领域ID访问密钥ID关联结构,以确定与该领域ID相关联的领域密钥IS;以及基于该领域密钥ID来发起存储器事务。一旦被取回,领域密钥ID就可以存储在转换后备缓冲器中。

Description

用于存储存储器加密领域密钥ID的方法、装置和系统
相关申请的交叉引用
本申请要求于2019年8月21日提交的美国专利申请号16/547,527和于2018年8月22日提交的美国临时申请号62/721,324的优先权,出于所有目的,其全部内容通过引用并入本文。
技术领域
本公开的各方面一般涉及存储器加密,更具体地涉及在利用虚拟化计算设备的系统中用于存储器加密的密钥的管理。
背景技术
密码术用于通过例如将旨在保持私有的用户数据(也称为明文)加密为未经授权的查看者难以理解的密文来保护用户的私人数据免受未经授权的查看者的侵害。然后,可以安全存储和/或传输看起来像乱语的经编码密文。随后,当需要时,用户或经授权的查看者可以将密文解密回到明文。该加密和解密过程允许用户以明文形式创建并访问私有数据,同时防止当以密文形式存储和/或传输时对私有数据进行未经授权访问。
传统上讲,加密和解密通过使用密码密钥处理输入(分别为明文或密文)以生成对应输出(分别为密文或明文)来执行。使用相同密钥进行加密和解密两者的密码系统被归类为对称密码系统。一种流行的对称密码系统是高级加密标准(AES),其在联邦信息标准(FIPS)出版物197中进行了描述。
计算设备(特别是,虚拟化的计算设备(例如,虚拟化的服务器环境))可以允许一个或多个实体(诸如也称为应用、进程或虚拟机(VM),也称为“领域”)共享单个物理计算平台。在服务器类系统中,领域总数超过一万。
应当指出,可以包括多个IC设备上的多个处理器核的单个物理服务器被操作为单个平台。物理平台支持管理程序,该管理程序管理物理平台上多个领域的操作。管理程序所管理的特定领域可能正在物理平台上活跃地运行,或可能以挂起状态存储在存储器中。活动领域可以访问多种不同的存储器类型和/或位置,其中一些存储器类型和/或位置可以供正在平台上运行的其他领域(诸如例如,管理程序本身)访问。如果访问控制准许这样的访问,则一个领域也可以访问另一领域的存储器内容或管理程序的存储器内容。为了保护每个领域的机密性免受到诸如DRAM探测/侦听之类的物理攻击,可以对领域内容的一部分(甚至全部内容)进行加密。为了有效的安全性,每个领域都应使用一个或多个唯一(即,独有)密码密钥。管理用于对VM代码和数据进行加密和/或解密的密钥的系统和方法可能均有用。
因此,期望提供一种在执行所关联的存储器事务并且限制物理芯片面积的同时以节省系统资源(诸如系统总线带宽)的方式来管理加密密钥的机构。
发明内容
以下给出了对一个或多个方面的简化概述,以提供对这些方面的基本理解。该发明内容并非所有预期方面的详尽概述,既不旨在标识所有方面的关键元件或重要元件,也不旨在描画任何或所有方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后所呈现的具体实施方式的序言。
在一个方面中,一种装置包括领域管理单元,该领域管理单元具有领域ID所索引的密钥ID关联表。密钥ID关联表被配置为将领域密钥ID与领域ID相关联,并且当使用领域ID查找时,提供所关联的领域密钥ID。该装置还可以包括物理地址所索引的存储器所有权表。存储器所有权表可以被配置为将领域ID与物理地址相关联,并且当使用物理地址查找时,将所关联的领域ID提供给领域管理单元。
在另一方面中,一种方法包括:使用物理地址访问存储器所有权表,以确定与该物理地址相关联的领域ID。该方法还包括:使用领域ID访问密钥ID关联结构,以确定与领域ID相关联的领域密钥ID。该方法还包括:基于领域密钥ID来发起存储器事务。该方法还可以包括:将领域密钥ID缓存在转换后备缓冲器中。
在又一方面中,一种装置包括领域管理部件,该领域管理部件包括用于存储领域ID所索引的密钥ID关联的部件。用于存储密钥ID关联的部件被配置为将领域密钥ID与领域ID相关联,并且当使用领域ID查找时提供所关联的领域密钥ID。
在又一方面中,一种非暂态计算机可读介质包括指令,当由处理器执行时,这些指令使得处理器使用物理地址访问存储器所有权表,以确定与该物理地址相关联的领域ID。指令还使得处理器使用领域ID访问密钥ID关联结构,以确定与领域ID相关联的领域密钥ID。这些指令还使得处理器基于领域密钥ID来发起存储器事务。
在又一方面中,一种装置包括处理器;存储器系统,其被组织为页面,至少一些页面中的每个页面与领域ID相关联,并且使用领域密钥ID所标识的多个密钥中的一个密钥进行加密;领域管理单元,其具有被配置为将领域ID与领域密钥ID相关联的密钥ID关联表,并且其中使用领域密钥ID访问存储器中的页面,该领域密钥ID与领域ID相关联,该领域ID与页面相关联。
附图说明
在下文中,结合附图对所公开的实施例进行描述,提供附图是为了说明而非限制所公开的实施例,其中相同指定表示相同元件,并且其中
图1是根据一个实施例的计算机系统的简化示意图。
图2是图1的计算机系统的详细部分的简化示意图。
图3是图2的存储器密码电路的简化示意图。
图4是根据图2的计算机系统的一个实施例的示例性数据分组的示意图示。
图5是根据一个实施例的过程的流程图。
图6是根据一个实施例的过程的流程图。
图7是根据一个实施例的过程的流程图。
图8示出了根据本公开的某些方面的被配置为允许快速存储并取回领域密钥ID的计算设备的框图。
图9示出了根据本公开的某些方面的计算设备的存储器所有权表和密钥ID关联结构的详细框图。
图10示出了根据本公开的某些方面的领域密钥ID的取回方法。
图11示出了根据本公开的某些方面的与存储领域密钥ID相关联的散列函数的替换方法。
图12示出了根据本公开的某些方面的被配置为允许快速存储并取回领域密钥ID的计算设备的系统级图。
具体实施方式
现在,参考附图对各种实施例进行描述。在以下描述中,出于解释的目的,阐述了具体细节以提供对一个或多个实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践一个或多个这样的实施例。附加地,如本文中所使用的术语“组件”可以是组成系统的部分中的一个部分,可以是存储在计算机可读介质上的硬件、固件和/或软件,并且可以分为其他组件。
以下描述提供了示例,并不限制权利要求中所阐述的范围、适用性或示例。在没有背离本公开的范围的情况下,可以对所讨论的元件的功能和布置进行改变。视情况而定,各种示例可以省略、替代或添加各种过程或组件。比如,可以以与所描述的次序不同的次序执行所描述的方法,并且可以添加、省略或组合各种步骤。此外,关于一些示例所描述的特征可以在其他示例中组合。应当指出,为了便于参考和提高清晰度,在附图中可以仅单独标记多个基本相同的元件的一个实例。
本公开的各实施例包括其中每个VM在对应受保护软件环境(PSE)内运行的系统。PSE由PSE管理软件管理。应当指出,密码保护可以应用于任何任意软件层(例如,固件、管理程序、VM/内核、驱动器、应用、进程、子进程、线程等)。任何这样的软件都可以在PSE内部运转。管理程序通常是封装VM的PSE的PSE管理软件,而OS内核通常是封装应用的PSE的PSE管理软件。一般而言,PSE管理软件角色通常由以PSE内包含的软件的下一更高特权级别运行的软件来完成。
本公开的各实施例包括用于第一多个密码密钥的存储的系统和方法,该第一多个密码密钥与PSE管理软件(例如,管理程序)所监督的第一多个对应PSE(例如,封装虚拟机)相关联,该PSE管理软件在计算机系统上运行并且被配置为监督多个PSE的超集。该计算机系统以加密形式将超集的当前未使用的密钥存储在相对便宜的大而慢的存储器(例如,DDRSDRAM)中,并且以明文形式将第一多个密钥存储在相对快而小且昂贵的存储器(例如,片上SRAM)。在一个实施例中,在具有第一处理器、第一存储器控制器和第一RAM的计算机系统中,第一存储器控制器具有存储器密码电路,该存储器密码电路连接在第一处理器与第一RAM之间,该存储器密码电路具有密钥库和第一密码引擎,并且该密钥库包括多个存储空间,该多个存储空间被配置为存储可由密钥标识符(KID)访问的第一多个密码密钥。
在一些实施例中,包括一个或多个处理器并且能够并行处理的计算机系统被配置为支持多个PSE的安全且同时(也就是说,平行)的操作,其中多个PSE具有对应的多个密码密钥,即,换句话说,每个PSE与对应密码密钥相关联。另外,计算机系统具有多个PSE所共享的随机存取存储器。该计算机系统具有存储器密码电路(MCC),该MCC连接在一个或多个处理器与共享存储器之间,其中MCC包括密码引擎以及密钥库,该密钥库用于存储多个密码密钥的子集。在处理器与共享存储器之间的数据传输操作期间(例如,在获取处理器指令、数据读取和数据写入时),密码引擎使用密钥库中存储的对应密码密钥对所传输的数据(例如,处理器指令)进行加密或解密。MCC在硬件或固件中的实现以及可能要使用的密钥缓存在密钥库中有助于允许对所传输的数据快速且有效执行加密操作。
图1是根据本公开的一个实施例的计算机系统100的简化示意图。计算机系统100包括片上系统(SoC)101和一个或多个SoC外部随机存取存储器(RAM)模块102,该一个或多个SoC外部RAM模块102可以为例如双倍数据速率(DDR)同步动态RAM(SDRAM)或任何其他合适RAM。计算机系统100还包括用户接口103和网络接口104。应当指出,本领域普通技术人员应当领会,计算机系统100及其组件中的任何组件还可以包括各种附加组件(未示出)的任何合适的分类,其中理解实施例并不需要对这些附件组件进行描述。
图2是图1的计算机系统100的详细部分的简化示意图。SoC 101包括一个或多个中央处理单元(CPU)核201,每个CPU核可以是单线程处理器或多线程处理器。每个CPU核201可以包括L1高速缓存(未示出)和L2高速缓存202。SoC 101还包括一个或多个L3高速缓存203、一个或多个存储器控制器204、一个或多个物理层(PHY)接口205、以及系统总线206。SoC101还包括密钥管理单元(KMU)207,其可以被实现为如所示出的离散独立模块,被实现为两个或更多个CPU核201内的分布式模块、或以任何合适方式实现。系统总线206将CPU核201、L3高速缓存203、KMU 207和存储器控制器204以及可以包括在SoC 101内的任何其他外围设备互连在一起。
存储器控制器204包括总线接口208,该总线接口208连接到系统总线206。总线接口208还经由数据路径209a连接到存储器密码(MC)电路(MCC)209,该MCC电路209继而经由数据路径209b连接到可选纠错码(ECC)电路210。应当指出,在各备选实施例中,MCC 209可以在没有中间ECC电路的情况下连接到PHY 205。存储器控制器204通信耦合到对应PHY接口205,该PHY接口205继而通信耦合到对应外部RAM模块102。
计算机系统100支持通过PSE管理软件对多个PSE的管理,其中多个PSE的子集可以作为并行进程同时运行。计算机系统100支持多个CPU核201所进行的并行处理。在一些实现方式中,CPU核201中的一个或多个CPU核201可以被配置为并行执行多个线程。应当指出,在一些备选实施例中,计算机系统100可以仅具有一个CPU核201,然而,该一个CPU核201支持多线程处理,并且因此支持并行处理。进一步应当指出,在一些备选实施例中,计算机系统100可以包括两个或更多个SoC,其通过芯片到芯片接口连贯连接以形成多插座系统。
计算机系统100可以支持任意多数的PSE,每个PSE与唯一密码密钥相关联,该唯一密码密钥允许CPU核201安全共享RAM模块102,并且允许PSE安全操作以防止其他进程(诸如例如,其他PSE、PSE管理软件、以及对计算机系统100具有物理访问权的攻击者(例如,物理攻击者))侦听。SoC 101可以被设计为使用时间切片来支持若干个PSE的几乎同时的执行,这些PSE的数目大于对应CPU核201上的SoC 101可支持的并行进程的数目,但小于计算机系统100可支持的PSE的任意多总数。如下文所更详细解释的,KMU207存储并管理计算机系统100所支持的PSE的密码密钥和对应KID。
如下文所更详细解释的,在操作中,当在第一CPU核201上运行的第一PSE需要将数据块写入RAM 102时,MC电路209使用唯一与第一PSE相对应的第一密码密钥对该数据块进行加密。然后,对应的经加密数据块写入第一RAM模块102。当第一PSE需要从RAM模块102读取数据块时,MC模块209使用第一密码密钥对在RAM模块102上加密的数据块进行解密,然后对应解密数据块传输到第一PSE正在其上运行的CPU核201。应当指出,可以执行向RAM模块102写入并且从其中读取,作为CPU核201所进行的例程指令执行的一部分。
图3是图2的存储器密码电路209的简化示意图。MC电路209包括加密引擎301、解密引擎302、密钥库303、以及仲裁器304。加密引擎301和解密引擎302是两种不同类型的密码引擎。加密引擎301是被配置为接收明文块和密码密钥、使用加密算法(诸如例如,使用适当密码操作模式的AES)通过密码密钥对明文进行加密、并且输出对应密文块的电路。解密引擎302是被配置为接收密文块和密码密钥、使用解密算法(诸如例如,使用适当的密码操作模式的AES)通过密码密钥对密文进行解密、并且输出对应明文块的电路。密钥库303可以为SRAM、寄存器文件、或被配置为以可寻址方式存储并更新多个密码密钥的快速访问RAM。
密钥库303被配置为从仲裁器304接收KID。响应于接收到KID,密钥库303被配置为输出存储在KID所指示的密钥库地址处的密码密钥。密钥库303的输出连接到密码引擎301和302。密钥库303还被配置为经由配置接口从密钥管理单元(KMU)207接收密码密钥以供存储。KMU 207经由配置接口提供例如256位密码密钥,并且经由仲裁器304提供对应KID。作为响应,密钥库303将接收的密码密钥存储在KID所指示的密钥库地址处。
仲裁器304被配置为(i)经由路径209a从CPU核201接收KID,并且(ii)经由路径209a从KMU 207接收KID。应当指出,对于读取请求和写入请求两者,从CPU核201接收KID。KID携载在系统总线206上,还可以存储在高速缓存中,其中每个高速缓存线携载KID以及存储器地址和数据。来自CPU核201的写入请求包括明文数据以及与在CPU核201上运行的PSE相对应的KID。来自CPU核201的读取请求包括存储器地址和PSE对应的KID。响应于读取请求,MC电路209可以缓冲KID或来自密钥库303的对应密钥,直到从RAM 102取回位于所请求的存储器地址处的密文块为止,此时,如果KID被缓冲,则KID用于从密钥库303中取回对应密钥。然后,密文块和密钥提供给解密引擎302。
仲裁器304将其KID输入多路复用到提供给密钥库303的KID输入的一个KID输出中。这些仲裁器304输入可以被称为(i)存储器写入路径、(ii)存储器读取请求路径、以及(iii)配置接口路径。仲裁器304可以被配置为基于例如所指派的优先级来在基本上同时被接收的冲突KID输入之间进行仲裁。在一个实现方式中,与从RAM模块102取回的读取相关联的KID被赋予最高优先级,与从CPU核201接收的写入相关联的KID被赋予中等优先级,并且从KMU接收的密钥更新被给予最低优先级。应当指出,MC电路209的备选实施例可以放弃仲裁器304,并且取而代之的是,直接将KID提供给密钥库303,并且可以具有任何合适的备选机构,用于处理密钥库303的冲突KID输入。
应当指出,加密引擎301和解密引擎302中的每个引擎可以统称为密码引擎。应当指出,在一些备选实施例中,单个密码引擎执行加密和解密两者,并且附加电路系统提供数据、地址和/或KID的所需路由。应当指出,在一些备选实施例中,MC电路209可以仅具有一种类型的密码引擎。换句话说,在一些备选实施例中,MC电路209可以仅具有加密引擎而没有解密引擎,反之亦然。
在一个实现方式中,SoC 101包括16个单线程CPU核201,从而允许同时运行16个唯一PSE。PSE管理软件可以是跨过CPU核201中的一个、一些或所有CPU核201运行分布的程序。SoC 101被配置为支持数千个PSE,并且在任何一个时间支持多达128个PSE的时间切片。换句话说,在正常操作期间,数千个PSE被挂起(换句话说,处于休眠状态),其中PSE的代码和数据存在于使用该PSE的密钥加密的RAM中,但是PSE的对应密码密钥通过KMU以加密形式存储在相对便宜的大而慢的存储器(例如,DDR SDRAM)中,并且因此不能立即可用于对该PSE的代码和数据进行加密/解密。同时,许多PSE可能通过共享SoC 101的16个CPU核201的时间切片执行,其中这些PSE的密码密钥存储在密钥库303(相对快而小且昂贵的存储器,例如,片上SRAM)中,以供密码引擎301和302快速访问,其中这些PSE的代码和数据可以存储在RAM模块102中,并且这些PSE中的多达十六个PSE可以在CPU核201上同时执行。
因而,密钥库303可以被配置为缓存128个密码密钥。每个密码密钥存储在密钥库303中的对应7位可寻址(使用KID)存储器位置中。应当指出,7位地址可以用于唯一寻址128个密码密钥位置(因为27等于128)。在一个实现方式中,每个密码密钥是256个位。
图4是根据图2的计算机系统100的一个实施例的示例性数据分组400的示意图示。数据分组400包括数据有效载荷403、密钥标识符(KID)402、以及头部401。在一个实现方式中,(i)数据有效载荷字段403为至少128个位,以便能够包含完整的128位标准AES块;以及(ii)KID字段为至少7个位,以支持可对密钥库303中的128个密码密钥位置进行寻址。头部401可以包含任何合适的头部信息,诸如例如,用于在系统总线206上数据分组400的传输的属性信息(例如,存储器地址、读取/写入指示符、用于路由响应的源地址等)。应当指出,读取请求分组可以仅包括KID和头部,该头部包括没有有效载荷的存储器地址。相关地,读取响应分组可以仅包括数据有效载荷以及没有KID的头部。还应当指出,KID当使用时不必是数据分组的专用分段,而可以是例如头部的一部分和/或用于标识密钥库中的密钥位置以外的目的。
图5是根据一个实施例的过程500的流程图。当写入模块确定数据块需要写入RAM模块102时,过程500开始(步骤501)。写入模块可以由例如在需要直接将块写入存储器的第一CPU或需要逐出高速缓存线的第一高速缓存上执行的第一PSE制成。应当指出,一般而言,可以缓存来自在CPU上执行的PSE的写入请求,并且当处于SoC 101的高速缓存层次结构的同时,数据块与PSE的KID相关联。写入模块经由系统总线206和总线接口208向MC电路209提供对应数据分组400,该数据分组400包括数据有效载荷403中的明文数据块以及与KID字段402中的第一PSE相对应的KID(步骤502)。应当指出,数据有效载荷403可以包括后缀和/或前缀填充位以及数据块。向加密引擎301提供数据有效载荷403,而向仲裁器304提供KID,该仲裁器304将该KID提供给密钥库303(步骤503)。
密钥库303输出存储在KID所指定的地址处的密码密钥,并且将该密钥提供给加密引擎301(步骤504)。加密引擎301使用所接收的密钥对所接收的明文数据执行加密算法(例如,AES加密),并且输出对应密文数据块(步骤505)。然后,密文数据块被提供给RAM模块102(步骤506)。
图6是根据一个实施例的过程600的流程图。当存储器控制器204经由总线接口208接收到数据分组并且使用数据分组中提供的地址和KID确定需要从RAM模块102读取(即,取回)数据块时,过程600开始(步骤601)。可以从例如CPU核201、L2高速缓存202或L3高速缓存203接收数据分组。存储器控制器204发起从RAM模块10读取对应数据块并且缓冲对应KID(步骤602)。MC电路209从RAM模块102接收所请求的经加密数据块(步骤603)。
KID被提供给密钥库303(步骤604)。向解密引擎302提供(1)所取回的加密数据块和(2)存储在密钥库303中的KID地址处的密钥(步骤605)。解密引擎302使用所接收的密钥对所接收的经加密数据块执行解密算法(例如,AES解密),并且输出对应明文数据块(步骤606)。存储器控制器204经由总线接口208提供包含明文数据块的响应数据分组,以路由回到请求CPU核或高速缓存(步骤607)。
通用术语可以用于描述上文所描述的读取过程500和写入过程600的步骤。确定需要写入或读取数据是确定需要在第一PSE与RAM模块102之间传送数据。密文和明文都是数据。加密和解密是密码操作,其获取第一数据块并且输出第一密码对应的数据块。
图7是根据一个实施例的过程700的流程图。当PSE管理软件确定需要激活新PSE或休眠PSE时,过程700开始(步骤701)。响应于该确定,PSE管理软件通知KMU 207,该KMU 207确定在密钥库303中是否存在可用的空闲(例如,空置)间隙(步骤702)。如果存在,则用于激活PSE的密码密钥存储在密钥库303中的可用间隙中,并且该激活PSE与对应于该可用间隙的密钥库地址的KID相关联(步骤703)。如果在步骤702中确定在密钥库303中没有可用的空闲间隙,则KMU 207从密钥库303中选择其对应密钥要被逐出的PSE,并且将所选择的PSE置于休眠状态(步骤704)。可以使用任何合适算法(或算法组合)来确定要逐出哪个PSE,例如,使用最少的KID、随机选择的KID、顺序选择的KID或优先级最低的PSE KID。
在选择逐出PSE之后,刷新与要被逐出的密钥的PSE相关联的高速缓存线,并且使与要被逐出的密钥的PSE相关联的转换后备缓冲器(TLB)条目无效(步骤705)。如果尚未存储逐出PSE的对应密码密钥,则将其以加密形式存储在相对便宜的大而慢的存储器(例如,DDR SDRAM)中,以备以后可能使用(步骤706)。KMU 207(1)经由仲裁器304向密钥库303提供所逐出的密钥的KID以及(2)激活PSE的密码密钥(步骤707),并且密钥库303将激活PSE的密码密钥存储在所逐出的密钥的KID所指示的存储器地址中(步骤708),从而使用密钥库303中的激活PSE的密钥替换逐出PSE的密钥。
应当指出,上文所描述的存储器密码电路可以用于计算机系统100以外的系统中。例如,MC电路209可以用于通过多个文件系统管理存储在共享非易失性存储器上(例如,一个或多个非易失性双列直插式存储模块NVDIMM上)的所谓静止数据的加密,其中每个文件系统都具有对应密码密钥,其与上文所描述的PSE类似。一般而言,存储器密码电路可以用于相对较大的多个客户端和对应密码密钥被管理的任何合适系统中。
图8示出了根据本发明另一方面的计算设备1100的框图。系统(其可以在SoC上实现)可以提供保护在“领域”中运行的软件(例如,虚拟机、文件系统或应用进程)免受特权更高的软件(例如,管理程序)影响的能力。附加地,这些系统提供了针对物理攻击(例如,DRAM侦听)的保护,这需要对存储器进行加密。为了防止某些类别的攻击,在系统上运行的每个领域都可以利用其自己的唯一存储器加密密钥。任何给定时间都可能运行数千个唯一领域,因此用于使用正确密钥的高性能方法必不可少。
CPU可以使用与当前在CPU上运行的领域相关联的密钥的ID(即,被称为领域密钥ID(RKID))来标记所有存储器事务。当适当RKID加载或切换到领域时,它可以被编程到系统寄存器中。通过这种方案,一个领域难以访问属于另一领域的存储器页面,这可能并不可取。进一步地,RKID的宽度由将要存储并利用的密钥的最大数目决定。例如,如果RKID为7个位,则密钥的最大数目为128。考虑到现代系统的结构,很可能存在更多个领域,然后存在RKID。
使用RKID的另一方法可能是为系统中的每个存储器页面指派拥有该页面的领域的领域ID。存储器系统可以使用页面标识符/地址执行查找以确定指派给该领域的RKID,并且使用适当的RKID标记任何事务。这样,领域ID名称空间可能非常大,其远大于RKID的数目。例如,领域ID的长度可能为32个位(总计4,294,967,296个可能领域),而RKID的长度可能仅为12个位(总计为4,096个RKID)。该方法还将有助于一个领域访问另一领域的存储器页面。该方面适用于使用领域ID和/或文件系统ID(为了简便起见,本文中被称为领域ID)快速查找RKID。
图8所图示的计算设备1100被配置为根据本公开的某些方面允许快速存储并取回RKID。优选地,RKID是消耗相对较少数目的位并且可以与特定领域ID动态相关联的标识符。
计算设备1100包括CPU 1110,该CPU 1110耦合到存储器管理单元1120。存储器管理单元1120还经由系统总线1140耦合到领域管理单元1130(其在功能上与KMU 207类似)以及存储器系统1150(例如,高速缓存或主存储器)。存储器管理单元(MMU)1120包括转换后备缓冲器(TLB)1122及其关联的存储器所有权表1124。存储器所有权表1124被配置为关联具有领域ID的物理存储器页面。领域管理单元1130包括密钥ID关联结构1134,并且负责管理密钥ID关联结构1134中的映射的分配、删除和替换。密钥ID关联结构1134被配置为将领域ID与领域密钥ID相关联。
当CPU 1110想要执行对存储器页面的存储器访问时,CPU 1110向MMU 1120发送对存储器页面的访问请求。随后,MMU 1120将访问TLB 1122以确定存储器页面的物理地址。一旦MMU 1120确定了物理地址,它将访问存储器所有权表1124以确定拥有与该物理地址相关联的存储器页面的领域的领域ID。
向领域管理单元1130提供领域ID,该领域管理单元1130在密钥ID关联结构1134中执行查找以确定与所提供的领域ID相关联的领域密钥ID。一旦得知适当领域密钥ID,来自CPU 1110的存储器访问就可以使用相关联的领域密钥ID(RKID)启动到系统总线1140上,以访问存储器系统1150。进一步地,一旦已经从密钥ID关联结构1134取回了RKID,在一些方面中,该RKID此后就可以与正在被访问的存储器的块或页面(即,与所关联的虚拟地址)关联地缓存在TLB 1122中。当请求访问存储器的该块或页面时,这可以避免进一步在存储器所有权表1124和密钥ID关联结构1134中进行查找。如果领域密钥ID被缓存在TLB 1122中,则TLB 1122还可以实现“通过RKID使TLB无效”功能,以使与特定RKID相关联的任何TLB条目无效,以处理RKID从与一个领域的关联去分配并且分配给另一领域的情况。可替代地,从密钥ID关联结构1134取回的RKID可以缓存在单独密钥关联高速缓存(未图示)中,该单独密钥关联高速缓存可能与TLB 1122并行被访问并且可能实现类似的“通过RKID使无效”功能。
图9示出了根据本公开的某些方面的存储器所有权表1124和计算设备的密钥ID关联结构1134的详细框图1200。存储器所有权表1124包括查找表1204,该查找表1204具有包括物理地址的第一列1204a和包括与物理地址相关联的领域ID的第二列1204b。尽管查找表1204被图示为具有四个条目(行),但是本领域技术人员应当认识到条目的数目是设计选项,并且在其他方面中,可以选择查找表1204的不同数目的条目。
密钥ID关联结构1134包含查找表1214,该查找表1214具有包括领域ID的第一列1214a、包括第一领域密钥ID的第二列1214b、包括第二领域密钥ID的第三列1214c、包括第三领域密钥ID的第四列1214d、以及包括指向另一表条目的指针的第五列1214e。尽管查找表1214已经被图示为包括六个条目(行),但是每个条目具有三个领域密钥ID和指向另一表条目的指针,但是本领域技术人员应当再次认识到条目的数目、领域密钥ID的数目、以及指针的使用都是设计选项。在将查找表1214实现为散列表的情况下,使用指针可能有利于当试图将另一领域密钥ID添加到已经包含最大数目的条目时,允许查找表1214通过将指针设置为指向查找表1214中的另一条目来处理冲突(即,与存在用于存储领域密钥ID的列相比,映射到单个领域ID的领域密钥ID更多)。在一些方面中,查找表1214可以采用布谷鸟散列(即,具有可以用于插入条目或从表中取回条目的两个活动散列函数)以进一步减少冲突。再者,本领域技术人员应当认识到,其他方面可以将查找表1214实现为散列表以外的数据结构,从而可以以不同方式解决冲突问题。
在操作中,通过存储器所有权表1124从TLB 1122接收物理地址1202。然后,存储器所有权表1124在查找表1204中查找物理地址1202。如果存在物理地址1202,标识了所关联的领域ID 1212。然后,所关联的领域ID 1212被提供给密钥ID关联结构1134,该密钥ID关联结构1134在查找表1214中查找领域ID 1212。如果查找表1214中存在领域ID 1212,则标识了所关联的领域密钥ID 1222,然后将其提供回给MMU 1120(以及TLB 1122)。然后,MMU1120使用所关联的领域密钥ID 1222在系统总线1140上发起存储器访问。
如果查找表1214中不存在领域ID 1212(即,该领域ID没有所关联的领域密钥ID),则发生未命中。这例如在领域试图访问另一领域拥有的存储器页面时发生,访问控制允许访问,并且另一领域当前并未正在执行,并且因此已经重新指派了其先前RKID。当发生这种情况时,如果存在未指派的RKID,则RMU 1130将未指派的RKID中的一个未指派的RKID指派给引起未命中的领域ID(在这种情况下,是领域ID 1212)。如果不存在未指派的RKID,则RMU1130将选择“牺牲”RKID(其可以通过选择新近最少使用的RKID或通过本领域技术人员已知的其他替换算法来完成),删除该RKID对领域ID的当前指派(其包括更新任何和所有关联的数据结构在内),并且将牺牲RKID指派给引起未命中的领域ID(在这种情况下,再次为领域ID 1212)。一旦领域ID 1212已经与RKID相关联,RMU1130就向MMU 120发信号通知以重新尝试该操作,该操作现在就会成功。
图10示出了根据本公开的某些方面的取回领域密钥ID的方法1300。该方法1300从框1310开始,在该框1310中,使用物理地址访问存储器所有权表,以确定与该物理地址相关联的领域ID。例如,使用物理地址1202访问存储器所有权表1124,以取回所关联的领域ID1212。
该方法在框1320中继续,在该框1320中,使用领域ID访问密钥ID关联结构,以确定与领域ID相关联的领域密钥ID。例如,使用领域ID 1212访问密钥ID关联结构1134,以取回所关联的领域密钥ID 1222。
该方法在框1330继续,在该框1330中,基于领域密钥ID来发起存储器事务。例如,MMU 1120从密钥ID关联结构1134接收领域密钥ID 1222,并且基于领域密钥ID 1222来发起存储器事务。
该方法在框1340中继续,其中所接收的领域密钥ID缓存在转换后备缓冲器中。由于可以直接从TLB取回领域密钥ID,所以这允许更快地进行未来访问。例如,领域密钥ID1222连同所关联的存储器页面的条目一起由TLB 1122中的MMU 1120缓存。在一个备选方面中,如关于图8所讨论的,所接收的领域密钥ID可以缓存在专用高速缓存中。
图11示出了根据本公开的某些方面的与存储领域密钥ID相关联的散列函数的替换方法400。如参考图9所讨论的,在密钥ID关联结构1134中冲突的发生可能会降低系统性能,因为可能需要经由指针(例如,作为链接列表)遍历密钥ID关联结构1134的多个条目以定位期望领域密钥ID。因此,替换与密钥ID关联结构1134相关联的散列函数可能是有利的。为此,方法1400在框1410开始,在该框1410中,评估当前散列函数的性能。这还可以包括:在框1415处,检测到冲突数目超过阈值。该阈值本质上可以是可编程的或动态的。
方法1400在框1420处继续,在该框1420处,建立具有新散列函数(例如,使用不同种子值的散列函数)的擦除散列表。在框1430中,评估新散列函数的冲突。在框1440中,确定新函数的性能是否可接受。如果性能不可接受,则该方法返回到框1420,并且为擦除散列表建立不同的新散列函数。可以在框1420至1440的操作期间保留当前散列函数,以使计算设备可以在评估新散列函数的同时,继续执行计算。
如果新散列函数的性能可接受,则该方法继续到框1450。在框1450中,当前散列函数替换为新散列函数。
图12示出了计算设备1500的图,该计算设备1500结合了用于存储如关于图8和图9所描述的领域密钥ID的结构,并且可以根据图10和图11所描述的方法来操作。就这点而言,系统1500包括处理器1502,该处理器1502可以结合如关于图8和图9所描述的CPU1110、MMU1120、以及RMU 1130。系统1500还包括存储器1150,该存储器1150经由系统总线1140耦合到处理器1502。存储器1150还可以存储非暂态计算机可读指令,当由处理器1502执行时,这些非暂态计算机可读指令可以执行图10的方法1300或图11的方法1400。
图12还以虚线示出了可选块,诸如耦合到处理器1502的编码器/解码器(CODEC)1534(例如,音频和/或语音CODEC)。可选扬声器1536和麦克风1538可以耦合到CODEC 1534。可选无线天线1542耦合到可选无线控制器540,该无线控制器继而又耦合到处理器1502。进一步地,系统1502还图示了可选显示器控制器1526,该可选显示器控制器1526耦合到处理器1502和可选显示器1528。可选有线网络控制器1570被图示为耦合到处理器1502和可选网络1572。处理器1502、显示器控制器1526、存储器1150和无线控制器1540可以包括在系统级封装或片上系统设备1522中。
因而,输入设备1530和电源1544耦合到片上系统设备1522。而且,如图12所图示的,在存在一个或多个可选块的情况下,显示器1528、输入设备1530、扬声器1536、麦克风1538、无线天线1542和电源1544在片上系统设备1522的外部。然而,显示器1528、输入设备1530、扬声器1536、麦克风1538、无线天线1542和电源1544中的每个可以耦合到片上系统设备1522的组件,诸如接口或控制器。
应当指出,尽管图12大体描绘了计算设备、处理器1502和存储器1150,但是它们也可以集成到移动电话、通信设备、计算机、服务器、膝上型计算机、平板电脑、个人数字助手、音乐播放器、视频播放器、娱乐单元和机顶盒或其他类似设备中。
本领域技术人员应当领会,信息和信号可以使用多种不同技术和技巧中的任一种来表示。例如,在以上整个说明书中可能引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子、或其任何组合表示。
进一步地,本领域技术人员应当领会,结合本文中所公开的各方面所描述的各种说明性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件、或两者的组合。为了清楚说明硬件和软件的这种可互换性,上文已经在其功能性方面对各种说明性组件、块、模块、电路和步骤进行了大体描述。这种功能性被实现为硬件还是软件均取决于施加于整个系统的应用和设计约束。技术人员可以针对每个应用以各种方式来实现所描述的功能,但是这种实现决策不应被解释为导致背离本发明的范围。
结合本文中所公开的各方面所描述的方法、序列和/或算法可以直接以硬件、处理器所执行的软件模块或两者的组合体现。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除磁盘、CD-ROM、或本领域已知的任何其他形式的存储介质中。示例性存储介质耦合到处理器,使得处理器可以从该存储介质读取信息,并且可以向该存储介质写入信息。在备选方案中,存储介质可以与处理器集成在一起。
虽然前述公开示出了本发明的各说明性方面,但是应当指出,在没有背离所附权利要求所限定的本发明的范围的情况下,可以在本文中进行各种改变和修改。无需按任何次序执行根据本文中所描述的本发明的各方面的方法权利要求的功能、步骤和/或动作。更进一步地,尽管可以以单数形式描述或要求保护了本发明的元件,但是除非明确说明限于单数,否则复数形式是可预期的。
提供本公开的先前描述以使得本领域技术人员能够制造或使用本公开。对本公开的各种修改对于本领域技术人员而言将是显而易见的,并且在没有背离本公开的精神或范围的情况下,本文中所定义的共同原理可以应用于其他变型。更进一步地,尽管可以以单数形式描述或要求保护了本发明的元件,但是除非明确说明限于单数,否则复数形式是可预期的。附加地,除非另有说明,否则任何实施例的全部或一部分可以与任何其他实施例的全部或一部分一起利用。因此,本公开不限于本文中所描述的示例和设计,而是要符合与本文中所公开的原理和新颖特征一致的最大范围。

Claims (20)

1.一种装置,包括:
处理器;
存储器系统,被组织为页面,至少一些页面中的每个页面与领域ID相关联并且使用领域密钥ID所标识的多个密钥中的一个密钥进行加密;
领域管理单元,具有密钥ID关联表,所述密钥ID关联表被配置为将领域ID与领域密钥ID相关联;以及
其中存储器中的页面使用与关联于所述页面的所述领域ID相关联的领域密钥ID来访问。
2.根据权利要求1所述的装置,还包括:
存储器管理单元,包括:
转换后备缓冲器,被配置为将页面与存储器地址相关联;以及
存储器所有权表,被配置为将存储器地址与领域ID相关联。
3.根据权利要求2所述的装置,其中所述转换后备缓冲器还被配置为缓存最近被访问的领域密钥ID。
4.根据权利要求1所述的装置,其中所述密钥ID关联表是当前散列函数所索引的散列表。
5.根据权利要求4所述的装置,其中所述密钥ID关联表中的每个条目包括所索引的领域ID、至少一个所关联的领域密钥ID、以及指向下一条目的指针。
6.根据权利要求4所述的装置,其中所述密钥ID关联表由两个散列函数索引。
7.根据权利要求4所述的装置,还包括擦除密钥ID关联表,所述擦除密钥ID关联表具有与所述当前散列函数不同的擦除散列函数,响应于检测到所述密钥ID关联表的条目中的冲突数目已经超过了阈值,所述领域管理单元建立了所述擦除密钥ID关联表。
8.根据权利要求7所述的装置,其中所述冲突数目的所述阈值是可配置的。
9.根据权利要求7所述的装置,其中所述领域管理单元还被配置为评估所述擦除散列函数的冲突;以及
如果所述冲突数目低于第二阈值,则将所述密钥ID关联表的所述当前散列函数替换为所述擦除散列函数;或
如果所述冲突数目不低于第二阈值,则选择另一擦除散列函数并且重复所述评估。
10.根据权利要求3所述的装置,其中所述存储器管理单元被配置为使用从所述领域管理单元接收的所述领域密钥ID来发起存储器事务。
11.一种方法,包括:
使用物理地址访问存储器所有权表,以确定与所述物理地址相关联的领域ID;
使用所述领域ID访问密钥ID关联结构,以确定与所述领域ID相关联的领域密钥ID;以及
基于所述领域密钥ID来发起存储器事务。
12.根据权利要求11所述的方法,还包括:将所述领域密钥ID缓存在转换后备缓冲器中。
13.根据权利要求11所述的方法,还包括:将所述领域密钥ID缓存在密钥关联高速缓存中。
14.根据权利要求11所述的方法,其中所述密钥ID关联结构是当前散列函数所索引的散列表,并且其中使用所述领域ID访问所述密钥ID关联结构包括:基于所述领域ID来使用所述当前散列函数进行散列。
15.根据权利要求14所述的方法,其中所述密钥ID关联结构还通过第二当前散列函数索引,并且其中使用所述领域ID访问所述密钥ID关联结构包括:基于所述领域ID来使用所述当前散列函数进行散列;以及如果检测到冲突,则基于所述领域ID来使用所述第二当前散列函数进行散列。
16.根据权利要求14所述的方法,还包括:响应于检测到所述密钥ID关联表的条目中的冲突数目已经超过阈值,建立擦除密钥ID关联表,所述擦除密钥ID关联表具有与所述当前散列函数不同的擦除散列函数。
17.根据权利要求16所述的方法,其中所述冲突数目的所述阈值是可编程的。
18.根据权利要求16所述的方法,还包括:
评估所述擦除散列函数的冲突;以及
如果所述冲突数目低于第二阈值,则将所述密钥ID关联表的所述当前散列函数替换为所述擦除散列函数;或
如果所述冲突数目不低于第二阈值,则选择与所述当前散列函数不同的新擦除散列函数,并且重复所述评估。
19.一种装置,包括:
用于领域管理的部件,包括用于存储领域ID所索引的领域密钥ID的部件;
其中用于存储领域密钥ID关联的所述部件被配置为将领域密钥ID与所述领域ID相关联,并且当使用所述领域ID查找时,提供所关联的领域密钥ID。
20.一种非暂态计算机可读介质,包括指令,当由处理器执行时,所述指令使得所述处理器:
使用物理地址访问存储器所有权表,以确定与所述物理地址相关联的领域ID;
使用所述领域ID访问密钥ID关联结构,以确定与所述领域ID相关联的领域密钥ID;以及
基于所述领域密钥ID来发起存储器事务。
CN201980054642.0A 2018-08-22 2019-08-22 用于存储存储器加密领域密钥id的方法、装置和系统 Pending CN112585607A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862721324P 2018-08-22 2018-08-22
US62/721,324 2018-08-22
US16/547,527 US11789874B2 (en) 2018-01-09 2019-08-21 Method, apparatus, and system for storing memory encryption realm key IDs
US16/547,527 2019-08-21
PCT/US2019/047694 WO2020041583A1 (en) 2018-08-22 2019-08-22 Method, apparatus, and system for storing memory encryption realm key ids

Publications (1)

Publication Number Publication Date
CN112585607A true CN112585607A (zh) 2021-03-30

Family

ID=67847793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980054642.0A Pending CN112585607A (zh) 2018-08-22 2019-08-22 用于存储存储器加密领域密钥id的方法、装置和系统

Country Status (2)

Country Link
CN (1) CN112585607A (zh)
WO (1) WO2020041583A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116090024A (zh) * 2023-02-06 2023-05-09 山东昱鑫信息科技有限公司 一种数据的可靠存储装置、系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078970A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Performance of Hash Tables
WO2016072999A1 (en) * 2014-11-07 2016-05-12 Hewlett Packard Enterprise Development Lp Data conversion using an address space identifier
CN107526974A (zh) * 2017-08-03 2017-12-29 致象尔微电子科技(上海)有限公司 一种信息密码保护装置和方法
CN107735768A (zh) * 2015-06-16 2018-02-23 Arm 有限公司 安全初始化

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176122B2 (en) * 2016-10-19 2019-01-08 Advanced Micro Devices, Inc. Direct memory access authorization in a processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078970A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Performance of Hash Tables
WO2016072999A1 (en) * 2014-11-07 2016-05-12 Hewlett Packard Enterprise Development Lp Data conversion using an address space identifier
CN107735768A (zh) * 2015-06-16 2018-02-23 Arm 有限公司 安全初始化
CN107526974A (zh) * 2017-08-03 2017-12-29 致象尔微电子科技(上海)有限公司 一种信息密码保护装置和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116090024A (zh) * 2023-02-06 2023-05-09 山东昱鑫信息科技有限公司 一种数据的可靠存储装置、系统及方法
CN116090024B (zh) * 2023-02-06 2024-01-30 上海泰锟医药技术有限公司 一种数据的可靠存储装置、系统及方法

Also Published As

Publication number Publication date
WO2020041583A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
KR101880075B1 (ko) 중복 제거 기반 데이터 보안
US20200278937A1 (en) Convolutional memory integrity
US10423541B1 (en) Using encryption within a computing system
CN107408081B (zh) 提供对存储器的加强重放保护
US9734357B2 (en) Process authenticated memory page encryption
US9141558B2 (en) Secure memory control parameters in table look aside buffer data fields and support memory array
US20230409492A1 (en) Method, apparatus, and system for storing memory encryption realm key ids
US20190215160A1 (en) Managing a set of cryptographic keys in an encrypted system
EP3274849A1 (en) Cache-less split tracker architecture for replay protection trees
TWI797353B (zh) 動態密碼密鑰擴展之電路、方法及系統
US20180307626A1 (en) Hardware-assisted memory encryption circuit
CN112585607A (zh) 用于存储存储器加密领域密钥id的方法、装置和系统
US11956348B2 (en) Systems, methods, and apparatus for security key management for I/O devices
Xu et al. Designing a secure DRAM+ NVM hybrid memory module

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