CN111566650A - 管理加密系统中的密码术密钥集合 - Google Patents
管理加密系统中的密码术密钥集合 Download PDFInfo
- Publication number
- CN111566650A CN111566650A CN201980007485.8A CN201980007485A CN111566650A CN 111566650 A CN111566650 A CN 111566650A CN 201980007485 A CN201980007485 A CN 201980007485A CN 111566650 A CN111566650 A CN 111566650A
- Authority
- CN
- China
- Prior art keywords
- cryptography
- memory
- kid
- keystore
- engine
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims description 19
- 230000009977 dual effect Effects 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 238000000899 pressurised-fluid extraction Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
本公开的各实施例包括用于存储第一多个密码术密钥的系统和方法,第一多个密码术密钥与由受保护软件环境(PSE)管理软件监督的第一多个对应PSE相关联,该PSE管理软件在计算机系统上运行并被配置成监督该多个PSE的超集。该计算机系统在相对便宜、大且缓慢的存储器中存储超集的当前未使用的密钥,并在相对快速、小且昂贵的存储器中高速缓存第一多个的密钥。在一个实施例中,在具有第一处理器、第一存储器控制器和第一RAM的计算机系统中,第一存储器控制器具有连接在第一处理器与第一RAM之间的存储器密码术电路,该存储器密码术电路具有密钥库和第一密码术引擎,并且该密钥库被配置成存储可由密码术密钥标识访问的第一多个密码术密钥。
Description
根据35U.S.C.§119的优先权要求
本申请要求于2018年1月9日提交的题为“MANAGING A SET OF CRYPTOGRAPHICKEYS IN AN ENCRYPTED SYSTEM(管理加密系统中的密码术密钥集合)”的美国非临时专利申请No.15/865,994的优先权,该专利申请被转让给本申请受让人并由此通过援引全部明确纳入于此。
背景技术
本公开的各实施例一般涉及集成电路(IC),尤其但非排他地涉及IC实现的密码术系统。
密码学被用来通过例如将旨在保持私密的用户数据(被称为明文)加密成未经授权查看者无法理解的密文来保持用户的私密数据安全而免受未经授权查看者查看。经编码密文(表现为乱语)随后可被安全地存储和/或传送。随后,在需要时,用户或经授权查看者可将密文解密回到明文。这种加密和解密过程允许用户用明文形式来创建和访问私密数据,同时防止在用密文形式存储和/或传送时对私密数据进行未经授权访问。
传统地,通过使用密码术密钥(cryptographic key)处理输入(分别为明文或密文)以生成对应输出(分别为密文或明文)来执行加密和解密。将相同密钥用于加密和解密两者的密码术系统被分类为对称密码术系统。一种流行的对称密码术系统是在联邦信息标准(FIPS)发布197中描述的高级加密标准(AES)。
密码术系统可被用在例如虚拟化服务器环境中,该虚拟化服务器环境允许单个物理服务器平台被多个虚拟机(VM)共享。注意到,可包括多个IC设备上的多个处理器核的单个物理服务器作为单个平台来操作。物理平台支持超监督者(hypervisor)程序,该超监督者程序管理多个VM在物理平台上的操作。注意到,由超监督者管理的特定VM可在物理平台上活跃地运行,或者可以挂起状态存储在存储器中。活跃VM可访问多个不同存储器类型和/或位置,其中一些存储器类型和/或位置可由在平台上运行的其他VM和/或其他程序(诸如举例而言超监督者自身)访问。VM还可访问另一VM的存储器内容或超监督者的存储器内容,倘若访问控制准许此类访问。为了保护每个VM的机密性免受物理攻击(诸如DRAM探测/窥探),VM的内容的一部分(至多达全部)可被加密。为了有效安全性,每个VM应当使用唯一性(即,排他性)对应密码术密钥。用以管理用于对VM代码和数据进行加密和/或解密的密钥的系统和方法可以是有用的。
概述
以下给出对一个或多个实施例的简化概述以提供对此类实施例的基本理解。此概述不是所有构想到的实施例的详尽综览,并且既非旨在标识所有实施例的关键性或决定性要素亦非试图界定任何或所有实施例的范围。本概述的唯一目的是要以简化形式给出一个或多个实施例的一些概念以作为稍后给出的更详细描述之序。
在一个实施例中,一种集成电路(IC)系统包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM),其中:第一存储器控制器包括存储器密码术电路,存储器密码术电路包括密钥库和密码术引擎,所述密钥库包括多个存储空间,每个存储空间可使用对应密钥标识符(KID)来访问,以及其中该密钥库被配置成响应于接收到KID而提供存储在对应存储空间中的密码术密钥。
在另一实施例中,一种用于集成电路(IC)系统的方法,该IC系统包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM),其中第一存储器控制器包括存储器密码术电路,该存储器密码术电路包括密钥库和密码术引擎,并且该密钥库包括多个存储空间,每个存储空间可使用对应密钥标识符(KID)来访问,该方法包括:由该密钥库接收KID,由该密钥库访问对应于该KID的该存储空间,以及由该密钥库响应于接收到该KID而提供存储在对应存储空间中的密码术密钥。
在又另一实施例中,一种其上存储有指令的非瞬态计算机可读介质,这些指令使IC系统执行方法,该IC系统包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM),其中第一存储器控制器包括存储器密码术电路,该存储器密码术电路包括密钥库和密码术引擎,并且该密钥库包括多个存储空间,每个存储空间可使用对应密钥标识符(KID)来访问,该方法包括:由该密钥库接收KID,由该密钥库访问对应于该KID的该存储空间,以及由该密钥库响应于接收到该KID而提供存储在对应存储空间中的密码术密钥。
此外,本公开还包括具有执行上述方法的组件的装备或被配置成执行上述方法的装备、以及存储可由处理器执行以执行上述方法的一个或多个代码的计算机可读介质。
为能达成前述及相关目的,一个或多个实施例包括在下文中充分描述并在权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或多个实施例的某些解说性特征。然而,这些特征仅仅是指示了可采用各个实施例的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类实施例及其等效方案。
附图简述
以下将结合附图来描述所公开的各实施例,提供附图是为了解说而非限定所公开的各实施例,其中相似的标号标示相似的元件,并且其中:
图1是根据一个实施例的计算机系统的简化示意图。
图2是图1的计算机系统的细节部分的简化示意图。
图3是图2的存储器密码术电路的简化示意图。
图4是根据图2的计算机系统的一个实施例的示例性数据分组的示意表示。
图5是根据一个实施例的过程的流程图。
图6是根据一个实施例的过程的流程图。
图7是根据一个实施例的过程的流程图。
详细描述
现在参照附图描述各个实施例。在以下描述中,出于解释目的阐述了具体细节以提供对一个或多个实施例的透彻理解。然而显然的是,没有这些具体细节也可实践此类(诸)实施例。另外,本文中使用的术语“组件”可以是构成系统的诸部分之一,可以是存储在计算机可读介质上的硬件、固件和/或软件,并且可以被划分成其他组件。
以下描述提供示例而并非限定权利要求中阐述的范围、适用性或者示例。可以对所讨论的要素的功能和布置作出改变而不会脱离本公开的范围。各种示例可恰适地略去、替代、或添加各种规程或组件。例如,可按不同于所描述的次序来执行所描述的方法,并且可以添加、略去、或组合各种步骤。另外,参照一些示例所描述的特征可在其他示例中被组合。注意到,为了便于参考和增大清晰度,可在各附图中个体地标记多个基本上相同的元件的仅一个实例。
本发明的实施例包括其中每个VM在对应受保护软件环境(PSE)内运行的系统。PSE由PSE管理软件管理。注意到,密码保护可被应用于任何任意软件层(例如,固件、超监督者、VM/内核、驱动器、应用、过程、子过程、线程等)。任何此类软件可在PSE内部起作用。超监督者将通常是用于包封VM的PSE的PSE管理软件,并且OS内核通常将是用于包封应用的PSE的PSE管理软件。一般而言,PSE管理软件角色通常将由以自PSE内所包含的软件起的下一较高特权等级执行的软件来履行。
本发明的实施例包括用于存储第一多个密码术密钥的系统和方法,第一多个密码术密钥与由PSE管理软件(例如,超监督者)监督的第一多个对应PSE(例如,包封虚拟机)相关联,该PSE管理软件在计算机系统上执行并被配置成监督该多个PSE的超集。该计算机系统以加密形式在相对便宜、大且缓慢的存储器(例如,DDR SDRAM)中存储超集的当前未使用的密钥,并以明文形式在相对快速、小且昂贵的存储器(例如,片上SRAM)中高速缓存第一多个的密钥。在一个实施例中,在具有第一处理器、第一存储器控制器和第一RAM的计算机系统中,第一存储器控制器具有连接在第一处理器与第一RAM之间的存储器密码术电路,该存储器密码术电路具有密钥库和第一密码术引擎,并且该密钥库包括多个存储空间,该多个存储空间被配置成存储可由密钥标识符(KID)访问的第一多个密码术密钥。
在一些实施例中,计算机系统包括一个或多个处理器并且能够进行并行处理,该计算机系统被配置成支持多个PSE的安全和同时(即,并行)操作,其中多个PSE具有对应多个密码术密钥,换言之,每个PSE与对应密码术密钥相关联。另外,计算机系统具有由多个PSE共享的随机存取存储器。计算机系统具有连接在一个或多个处理器与共享存储器之间的存储器密码术电路(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核201中的每一者可以是单线程或多线程处理器。每个CPU核201可包括L1高速缓存(未示出)和L2高速缓存202。SoC 101进一步包括一个或多个L3高速缓存203、一个或多个存储器控制器204、一个或多个物理层(PHY)接口205和系统总线206。SoC 101进一步包括密钥管理单元(KMU)207,KMU 207可被实现为离散自立模块(如所示出的),被实现为两个或更多个CPU核201内的分布式模块,或者以任何合适方式来实现。系统总线206互连CPU核201、L3高速缓存203、KMU 207和存储器控制器204,连同可被包括在SoC101内的任何其他外围设备。
存储器控制器204包括连接至系统总线206的总线接口208。总线接口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中的一或多者可被配置成并行地执行多个线程。注意到,在一些替换实施例中,计算机系统100可具有仅一个CPU核201,然而,CPU核201支持多线程处理并且因此支持并行处理。进一步注意到,在一些替换实施例中,计算机系统100可包括两个或更多个SoC,这些SoC通过芯片至芯片接口相干地连接以形成多套接口系统(multi-socket system)。
计算机系统100可支持任意大数目个PSE,每个PSE与唯一性密码术密钥相关联,这允许CPU核201安全地共享RAM模块102并允许PSE安全地操作,而免受其他进程(诸如举例而言其他PSE、PSE管理软件)以及具有对计算机系统100的物理访问的攻击者(例如,物理攻击者)窥探。SoC 101可被设计成使用时间分片来支持数个PSE的几乎同时执行,PSE的数目大于可由SoC 101在对应CPU核201上支持的并行过程的数目,但小于可由计算机系统100支持的PSE的任意较大总数。如下文将更详细地解释的,KMU 207存储和管理用于由计算机系统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进行写入和从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,以及(ii)经由路径209a从KMU207接收该KID。注意到,对于读请求和写请求两者,均从CPU核201接收该KID。该KID被承载在系统总线206上并且还可被存储在高速缓存中,其中每个高速缓存线承载该KID连同存储器地址和数据。来自CPU核201的写请求包括明文数据以及与在CPU核201上运行的PSE相对应的KID。来自CPU核201的读请求包括存储器地址以及与PSE相对应的KID。响应于该读请求,该KID或来自密钥库303的对应密钥可由MC电路209缓冲,直至从RAM 102检索到位于所请求的存储器地址处的密文块,此时,若KID被缓冲,则该KID被用来从密钥库303检索对应密钥。密文块和密钥随后被提供给解密引擎302。
仲裁器304将其KID输入复用到一个KID输出,该一个KID输出被提供给密钥库303的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包括十六个单线程CPU核201,由此允许十六个唯一性PSE同时运行。PSE管理软件可以是跨CPU核201中的一者、一些或全部分布地运行的程序。SoC101被配置成支持数千个PSE,并在任一时间支持至多达128个PSE的时间分片。换言之,在正常操作期间,数千个PSE被挂起(换言之,休眠),其中PSE的代码和数据存在于使用该PSE的密钥进行加密的RAM中,但是该PSE的对应密码术密钥由KMU以加密形式存储在相对便宜、大且缓慢的存储器(例如,DDR SDRAM)中,并且因此不立即可用于对该PSE的代码和数据进行加密/解密。同时,可通过时间分片式共享SoC 101的十六个CPU核201来执行大量PSE,其中这些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的流程图。过程500在由写模块作出需要将数据块写入RAM模块102的确定(步骤501)时开始。写模块可由例如在第一CPU上执行的需要将块直接写入存储器的第一PSE或需要收回高速缓存线的第一高速缓存组成。注意到,一般而言,来自在CPU上执行的PSE的写请求可被高速缓存,并且当在SoC 101的高速缓存阶层中时,数据块与PSE的KID相关联。写模块经由系统总线206和总线接口208来将对应数据分组400提供给MC电路209,数据分组400包括数据有效载荷403中的明文数据块以及KID字段402中对应于第一PSE的KID(步骤502)。注意到,数据有效载荷403可包括后缀和/或前缀填充比特连同数据块。将数据有效载荷403提供给加密引擎301,并将KID提供给仲裁器304,仲裁器304将该KID提供给密钥库303(步骤503)。
密钥库303输出存储在由该KID指定的地址处的密码术密钥,并将该密钥提供给加密引擎301(步骤504)。加密引擎301使用收到密钥来对收到明文数据执行加密算法(例如,AES加密),并输出对应密文数据块(步骤505)。随后将密文数据块提供给RAM模块102(步骤506)。
图6是根据一个实施例的过程600的流程图。过程600在存储器控制器204经由总线接口208接收数据分组并确定需要使用数据分组中提供的地址和KID来从RAM模块102读取(即,检索)数据块(步骤601)时开始。可从例如CPU核201、L2高速缓存202或L3高速缓存203接收数据分组。存储器控制器204发起从RAM模块102读取对应数据块,并缓冲对应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的流程图。过程700在PSE管理软件确定需要激活新PSE或休眠的PSE(步骤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)。若尚未存储,则以加密形式在相对较便宜、较大且较缓慢的存储器(例如,DDR SDRAM)中存储收回PSE的对应密码术密钥以供可能的稍后使用(步骤706)。KMU 207向密钥库303(1)经由仲裁器304提供所收回密钥的KID以及(2)提供激活PSE的密码术密钥(步骤707),并且密钥库303在由所收回密钥的KID指示的存储器地址中存储激活PSE的密码术密钥(步骤708),由此在密钥库303中使用激活PSE的密钥替换收回PSE的密钥。
应注意,上述存储器密码术电路可被用在除计算机系统100之外的系统中。例如,MC电路209可被用于管理由多个文件系统存储在共享非易失性存储器上(例如,在一个或多个非易失性双列直插式存储器模块NVDIMM上)的所谓静态数据(data at rest)的加密,其中类似于上述PSE,每个文件系统具有对应密码术密钥。一般而言,存储器密码术电路可被用在管理相对大量多个客户端及对应密码术密钥的任何合适系统中。
以上结合附图阐述的以上详细说明描述了示例而不代表可被实现或者落在权利要求的范围内的仅有示例。术语“示例”在本描述中使用时意指“用作示例、实例、或解说”,并且并不意指“优于”或“胜过其他示例”。本详细描述包括具体细节以提供对所描述的技术的理解。然而,可在没有这些具体细节的情况下实践这些技术。在一些实例中,众所周知的结构和装置以框图形式示出以避免模糊所描述的示例的概念。
信息和信号可使用各种各样的不同技艺和技术中的任一种来表示。例如,贯穿上面描述始终可能被述及的数据、指令、命令、信息、信号、比特(位)、码元、以及码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、存储在计算机可读介质上的计算机可执行代码或指令、或其任何组合来表示。
结合本文中的公开所描述的各种解说性框以及组件可以用专门编程的设备来实现或执行,诸如但不限于设计成执行本文中所描述的功能的处理器、数字信号处理器(DSP)、ASIC、FPGA或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合。专门编程的处理器可以是微处理器,但在替换方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。专门编程的处理器还可被实现为计算设备的组合,例如,DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或者任何其他此类配置。
本文中所描述的功能可以在硬件、由处理器执行的软件、固件、或其任何组合中实现。如果在由处理器执行的软件中实现,则各功能可以作为一条或多条指令或代码存储在非瞬态计算机可读介质上或藉其进行传送。其他示例和实现落在本公开及所附权利要求的范围和精神内。例如,由于软件的本质,上述各功能可使用由专门编程的处理器执行的软件、硬件、固件、硬连线或其任何组合来实现。实现功能的特征也可物理地位于各种位置,包括被分布以使得功能的各部分在不同的物理位置处实现。此外,如本文中(包括权利要求中)所使用的,在接有中的“至少一者”的项目列举中使用的“或”指示析取式列举,以使得例如“A、B或C中的至少一者”的列举表示A或B或C或AB或AC或BC或ABC(即,A和B和C)。
计算机可读介质包括计算机存储介质和通信介质两者,包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被通用或专用计算机访问的任何可用介质。作为示例而非限定,计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能用来携带或存储指令或数据结构形式的期望程序代码手段且能由通用或专用计算机、或者通用或专用处理器访问的任何其他介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从网站、服务器、或其他远程源传送的,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘、和蓝光碟,其中盘(disk)常常磁性地再现数据,而碟(disc)用激光来光学地再现数据。以上介质的组合也被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的共通原理可被应用到其他变型而不会脱离本公开的精神或范围。此外,尽管所描述实施例的要素可能是以单数来描述或主张权利的,但是复数也是已料想了的,除非显式地声明了限定于单数。另外,任何实施例的全部或部分可与任何其他实施例的全部或部分联用,除非另外声明。由此,本公开并非被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。
Claims (21)
1.一种集成电路(IC)系统,包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM),其中:
所述第一存储器控制器包括存储器密码术电路;
所述存储器密码术电路包括密钥库和密码术引擎;
所述密钥库包括多个存储空间,每个存储空间能够使用对应密钥标识符(KID)来访问;以及
所述密钥库被配置成响应于接收到KID而提供存储在对应存储空间中的密码术密钥。
2.如权利要求1所述的IC系统,其特征在于:
所述存储器密码术电路被配置成接收第一输入块及对应第一KID;
所述存储器密码术电路被配置成:
将所述第一KID提供给所述密钥库;
将所述第一输入块和第一密码术密钥提供给所述密码术引擎,所述第一密码术密钥是由所述密钥库响应于接收到所述第一KID而提供的;以及
所述密码术引擎被配置成使用由所述密钥库提供的所述第一密码术密钥来对所述第一输入块执行密码术操作。
3.如权利要求2所述的IC系统,其特征在于:
所述密码术引擎是加密引擎;
所述密码术操作是使用所述第一密码术密钥对所述第一输入块进行加密;
所述加密输出提供给所述第一RAM的对应密文块。
4.如权利要求3所述的IC系统,其特征在于:
所述存储器密码术电路进一步包括解密引擎;
所述存储器密码术电路被配置成接收第二输入块及对应第二KID;
所述存储器密码术电路被配置成:
将所述第二KID提供给所述密钥库;
将所述第二输入块和第二密码术密钥提供给所述解密引擎,所述第二密码术密钥是由所述密钥库响应于接收到所述第二KID而提供的;
所述解密引擎被配置成使用由所述密钥库提供的所述第二密码术密钥来对所述第二输入块执行解密操作;以及
所述解密引擎输出对应明文块。
5.如权利要求4所述的IC系统,其特征在于:
所述第二输入块是从第二RAM接收的;以及
所述第二KID是从第二处理器接收的。
6.如权利要求2所述的IC系统,其特征在于:
所述第一KID是从所述第一处理器接收的;
所述第一输入块是从所述第一RAM接收的;
所述密码术引擎是解密引擎;
所述密码术操作是使用所述第一密码术密钥对所述第一输入块进行解密;
所述解密输出对应明文块;
所述明文块被提供给所述第一处理器。
7.如权利要求2所述的IC系统,其特征在于:
所述存储器密码术电路进一步包括第二类型密码术引擎;
所述存储器密码术电路被配置成接收第二输入块及对应第二KID;
所述存储器密码术电路被配置成:
将所述第二KID提供给所述密钥库;
将所述第二输入块和第二密码术密钥提供给所述第二类型密码术引擎,所述第二密码术密钥是由所述密钥库响应于接收到所述第二KID而提供的;以及
所述第二类型密码术引擎被配置成使用由所述密钥库提供的所述第二密码术密钥来对所述第二输入块执行第二类型密码术操作,其中所述第二类型密码术操作不同于第一类型密码术操作。
8.如权利要求1所述的IC系统,其特征在于,进一步包括密钥管理单元(KMU),其中:
所述KMU被配置成管理所述密钥库。
9.如权利要求1所述的IC系统,其特征在于,进一步包括第一高速缓存和系统总线,所述系统总线互连所述第一处理器、所述第一存储器控制器和所述第一高速缓存,其中:
所述系统总线被配置成承载KID连同对应的存储器地址和数据块;以及
所述第一高速缓存被配置成存储KID连同对应的存储器地址和数据块。
10.如权利要求1所述的IC系统,其特征在于:
所述IC系统支持多个受保护软件环境(PSE)的操作;
所述PSE的操作由PSE管理器管理;
每个PSE与对应密码术密钥相关联;以及
所述第一处理器被配置成运行第一PSE。
11.如权利要求1所述的IC系统,其特征在于:
所述存储器密码术电路进一步包括仲裁器,所述仲裁器被配置成将多个KID输入复用到单个KID输出,所述单个KID输出被提供给所述密钥库。
12.如权利要求1所述的IC系统,其特征在于,所述RAM是同步动态RAM(SDRAM)。
13.如权利要求1所述的IC系统,其特征在于,所述RAM是非易失性双列直插式存储器模块(NVDIMM)RAM。
14.一种用于集成电路(IC)系统的方法,所述IC系统包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM),其中所述第一存储器控制器包括存储器密码术电路,所述存储器密码术电路包括密钥库和密码术引擎,并且所述密钥库包括多个存储空间,每个存储空间能够使用对应密钥标识符(KID)来访问,所述方法包括:
由所述密钥库接收KID;
由所述密钥库访问对应于所述KID的所述存储空间;以及
由所述密钥库响应于接收到所述KID而提供存储在对应存储空间中的密码术密钥。
15.如权利要求14所述的方法,其特征在于,进一步包括:
由所述存储器密码术电路接收第一输入块及对应第一KID;
由所述存储器密码术电路将所述第一KID提供给所述密钥库;
由所述存储器密码术电路将所述第一输入块和第一密码术密钥提供给所述密码术引擎,所述第一密码术密钥是由所述密钥库响应于接收到所述第一KID而提供的;以及
由所述密码术引擎使用由所述密钥库提供的所述第一密码术密钥来对所述第一输入块执行密码术操作。
16.如权利要求15所述的方法,其特征在于:
所述密码术引擎是加密引擎;
所述密码术操作是使用所述第一密码术密钥对所述第一输入块进行加密;
所述加密输出提供给所述第一RAM的对应密文块。
17.如权利要求16所述的方法,其特征在于,所述存储器密码术电路进一步包括解密引擎,并且所述方法进一步包括:
由所述存储器密码术电路接收第二输入块及对应第二KID;
由所述存储器密码术电路将所述第二KID提供给所述密钥库;
由所述存储器密码术电路将所述第二输入块和第二密码术密钥提供给所述解密引擎,所述第二密码术密钥是由所述密钥库响应于接收到所述第二KID而提供的;
由所述解密引擎使用由所述密钥库提供的所述第二密码术密钥来对所述第二输入块执行解密操作;以及
由所述解密引擎输出对应明文块。
18.如权利要求15所述的方法,其特征在于,所述存储器密码术电路进一步包括第二类型密码术引擎,并且所述方法进一步包括:
由所述存储器密码术电路接收第二输入块及对应第二KID;
由所述存储器密码术电路将所述第二KID提供给所述密钥库;
由所述存储器密码术电路将所述第二输入块和第二密码术密钥提供给所述第二类型密码术引擎,所述第二密码术密钥是由所述密钥库响应于接收到所述第二KID而提供的;以及
由所述第二类型密码术引擎使用由所述密钥库提供的所述第二密码术密钥来对所述第二输入块执行第二类型密码术操作,其中所述第二类型密码术操作不同于第一类型密码术操作。
19.如权利要求14所述的方法,其特征在于,所述IC进一步包括第一高速缓存和系统总线,所述系统总线互连所述第一处理器、所述第一存储器控制器和所述第一高速缓存,所述方法进一步包括:
由所述系统总线承载KID连同对应的存储器地址和数据块;以及
由所述第一高速缓存存储KID连同对应的存储器地址和数据块。
20.如权利要求14所述的方法,其特征在于,所述存储器密码术电路进一步包括仲裁器,并且所述方法进一步包括:
由所述仲裁器将多个KID输入复用到单个KID输出,所述单个KID输出被提供给所述密钥库。
21.一种其上存储有指令的非瞬态计算机可读介质,所述指令使IC系统执行方法,所述IC系统包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM),其中所述第一存储器控制器包括存储器密码术电路,所述存储器密码术电路包括密钥库和密码术引擎,并且所述密钥库包括多个存储空间,每个存储空间能够使用对应密钥标识符(KID)来访问,所述方法包括:
由所述密钥库接收KID;
由所述密钥库访问对应于所述KID的所述存储空间;以及
由所述密钥库响应于接收到所述KID而提供存储在对应存储空间中的密码术密钥。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/865,994 US20190215160A1 (en) | 2018-01-09 | 2018-01-09 | Managing a set of cryptographic keys in an encrypted system |
US15/865,994 | 2018-01-09 | ||
PCT/US2019/012555 WO2019139854A1 (en) | 2018-01-09 | 2019-01-07 | Managing a set of cryptographic keys in an encrypted system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111566650A true CN111566650A (zh) | 2020-08-21 |
Family
ID=65234706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980007485.8A Pending CN111566650A (zh) | 2018-01-09 | 2019-01-07 | 管理加密系统中的密码术密钥集合 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190215160A1 (zh) |
CN (1) | CN111566650A (zh) |
TW (1) | TWI809026B (zh) |
WO (1) | WO2019139854A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11789874B2 (en) | 2018-01-09 | 2023-10-17 | Qualcomm Incorporated | Method, apparatus, and system for storing memory encryption realm key IDs |
US11005649B2 (en) * | 2018-04-27 | 2021-05-11 | Tesla, Inc. | Autonomous driving controller encrypted communications |
US10790961B2 (en) | 2019-07-31 | 2020-09-29 | Alibaba Group Holding Limited | Ciphertext preprocessing and acquisition |
CN110391895B (zh) * | 2019-07-31 | 2020-10-27 | 创新先进技术有限公司 | 数据预处理方法、密文数据获取方法、装置和电子设备 |
US11556665B2 (en) * | 2019-12-08 | 2023-01-17 | Western Digital Technologies, Inc. | Unlocking a data storage device |
US11263153B1 (en) * | 2020-11-02 | 2022-03-01 | Silicon Motion, Inc. | Data accessing method using data protection with aid of advanced encryption standard processing circuit, and associated apparatus |
EP4012689B1 (en) | 2020-12-11 | 2023-04-19 | PUFsecurity Corporation | Key management system providing secure management of cryptographic keys, and methods of operating the same |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110293097A1 (en) * | 2010-05-27 | 2011-12-01 | Maino Fabio R | Virtual machine memory compartmentalization in multi-core architectures |
US20160292085A1 (en) * | 2015-04-02 | 2016-10-06 | International Business Machines Corporation | Protecting storage from unauthorized access |
US20170244557A1 (en) * | 2016-02-23 | 2017-08-24 | Red Hat, Inc. | Multiple encryption keys for a virtual machine |
US20170277898A1 (en) * | 2016-03-25 | 2017-09-28 | Advanced Micro Devices, Inc. | Key management for secure memory address spaces |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080229117A1 (en) * | 2007-03-07 | 2008-09-18 | Shin Kang G | Apparatus for preventing digital piracy |
JP2012080295A (ja) * | 2010-09-30 | 2012-04-19 | Toshiba Corp | 情報記憶装置、情報記憶方法、及び電子機器 |
US10771448B2 (en) * | 2012-08-10 | 2020-09-08 | Cryptography Research, Inc. | Secure feature and key management in integrated circuits |
US9846712B2 (en) * | 2015-04-25 | 2017-12-19 | International Business Machines Corporation | Index-only multi-index access |
US9848041B2 (en) * | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US10102151B2 (en) * | 2015-11-06 | 2018-10-16 | International Business Machines Corporation | Protecting a memory from unauthorized access |
US10798073B2 (en) * | 2016-08-26 | 2020-10-06 | Nicira, Inc. | Secure key management protocol for distributed network encryption |
US10657071B2 (en) * | 2017-09-25 | 2020-05-19 | Intel Corporation | System, apparatus and method for page granular, software controlled multiple key memory encryption |
-
2018
- 2018-01-09 US US15/865,994 patent/US20190215160A1/en not_active Abandoned
-
2019
- 2019-01-07 CN CN201980007485.8A patent/CN111566650A/zh active Pending
- 2019-01-07 TW TW108100549A patent/TWI809026B/zh active
- 2019-01-07 WO PCT/US2019/012555 patent/WO2019139854A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110293097A1 (en) * | 2010-05-27 | 2011-12-01 | Maino Fabio R | Virtual machine memory compartmentalization in multi-core architectures |
US20160292085A1 (en) * | 2015-04-02 | 2016-10-06 | International Business Machines Corporation | Protecting storage from unauthorized access |
US20170244557A1 (en) * | 2016-02-23 | 2017-08-24 | Red Hat, Inc. | Multiple encryption keys for a virtual machine |
US20170277898A1 (en) * | 2016-03-25 | 2017-09-28 | Advanced Micro Devices, Inc. | Key management for secure memory address spaces |
Also Published As
Publication number | Publication date |
---|---|
WO2019139854A1 (en) | 2019-07-18 |
US20190215160A1 (en) | 2019-07-11 |
TWI809026B (zh) | 2023-07-21 |
TW201933169A (zh) | 2019-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
KR101880075B1 (ko) | 중복 제거 기반 데이터 보안 | |
TWI809026B (zh) | 用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體 | |
US20200278937A1 (en) | Convolutional memory integrity | |
US10423541B1 (en) | Using encryption within a computing system | |
EP3602376B1 (en) | Monitoring of memory page transitions between a hypervisor and a virtual machine | |
US9954681B2 (en) | Systems and methods for data encryption | |
US9141558B2 (en) | Secure memory control parameters in table look aside buffer data fields and support memory array | |
CN107408081B (zh) | 提供对存储器的加强重放保护 | |
US8516271B2 (en) | Securing non-volatile memory regions | |
US10896267B2 (en) | Input/output data encryption | |
TWI797353B (zh) | 動態密碼密鑰擴展之電路、方法及系統 | |
JP4876053B2 (ja) | トラステッド・デバイス集積回路 | |
US9418220B1 (en) | Controlling access to memory using a controller that performs cryptographic functions | |
EP3274849B1 (en) | Cache-less split tracker architecture for replay protection trees | |
US20230409492A1 (en) | Method, apparatus, and system for storing memory encryption realm key ids | |
JP2019532559A (ja) | ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権 | |
EP4083842B1 (en) | Inline encryption/decryption for a memory controller | |
US20180307626A1 (en) | Hardware-assisted memory encryption circuit | |
CN112585607A (zh) | 用于存储存储器加密领域密钥id的方法、装置和系统 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200821 |
|
WD01 | Invention patent application deemed withdrawn after publication |