CN112514320A - 动态密码术密钥扩展 - Google Patents
动态密码术密钥扩展 Download PDFInfo
- Publication number
- CN112514320A CN112514320A CN201980049867.7A CN201980049867A CN112514320A CN 112514320 A CN112514320 A CN 112514320A CN 201980049867 A CN201980049867 A CN 201980049867A CN 112514320 A CN112514320 A CN 112514320A
- Authority
- CN
- China
- Prior art keywords
- key
- engine
- cryptographic
- expanded
- expansion
- 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
Images
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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/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
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Lock And Its Accessories (AREA)
Abstract
一些实施例包括用于管理与由在计算机系统上运行的受保护软件环境(PSE)管理软件监督的多个对应PSE相关联的多个经扩展密码术密钥的系统和方法。在一个实施例中,一种计算机系统具有第一处理器、第一存储器控制器和第一RAM。第一存储器控制器包括连接在第一处理器与第一RAM之间的第一存储器密码术电路。存储器密码术电路包括密钥库和第一密码术引擎。密钥库包括种子库和密钥扩展引擎。种子库被配置成存储可由密钥标识符访问的第一多个密码术密钥种子,以供密钥扩展引擎用来生成经扩展密钥,其中每个密钥种子对应于对应的客户端。
Description
优先权要求
本专利申请要求于2018年8月2日提交的题为“DYNAMIC CRYPTOGRAPHIC KEYEXPANSION(动态密码术密钥扩展)”的美国非临时专利申请No.16/053,626的优先权,该专利申请被转让给本申请受让人并由此通过援引全部明确纳入于此。
背景技术
本公开的各实施例一般涉及集成电路(IC),尤其但非排他地涉及IC实现的密码术系统。
密码学被用来通过例如将旨在保持私密的用户数据(被称为明文)加密成未经授权查看者无法理解的密文来保持用户的私密数据安全而免受未经授权查看者查看。经编码密文(表现为乱语)随后可被安全地存储和/或传送。随后,在需要时,用户或经授权查看者可将密文解密回到明文。这种加密和解密过程允许用户用明文形式来创建和访问私密数据,同时防止在用密文形式存储和/或传送时对私密数据进行未经授权访问。
传统地,通过使用密码术密钥(cryptographic key)处理输入(分别为明文或密文)以生成对应输出(分别为密文或明文)来执行加密和解密。将相同密钥用于加密和解密两者的密码术系统被分类为对称密码术系统。一种流行的对称密码术系统是在联邦信息标准(FIPS)发布197中描述的高级加密标准(AES)。
密码术系统可被用在例如虚拟化服务器环境中,该虚拟化服务器环境允许单个物理服务器平台被多个虚拟机(VM)共享。注意到,可包括多个IC设备上的多个处理器核的单个物理服务器作为单个平台来操作。物理平台支持超监督者(hypervisor)程序,该超监督者程序管理多个VM在物理平台上的操作。注意到,由超监督者管理的特定VM可在物理平台上活跃地运行,或者可以挂起状态存储在存储器中。活跃VM可访问多个不同存储器类型和/或位置,其中一些存储器类型和/或位置可由在平台上运行的其他VM和/或其他程序(诸如举例而言超监督者自身)访问。VM还可访问另一VM的存储器内容或超监督者的存储器内容,倘若访问控制准许此类访问。为了保护每个VM的机密性免受物理攻击(诸如DRAM探测/窥探),VM的内容的一部分(至多达全部)可被加密。为了有效安全性,每个VM应当使用唯一性(即,排他性)对应密码术密钥。用以管理用于对VM代码和数据进行加密和/或解密的密钥的系统和方法可以是有用的。
相关地,密码术系统也可被用于例如对共享一个存储器存储系统的多个文件系统中的每一者分开加密。静态数据(data-at-rest)密码术系统可被用于此类文件保护,无论文件被存储在磁存储介质、RAM还是其他地方。通常用于静态数据保护的密码术系统的一示例是具有密文窃取(XTS)的基于XEX的可调码本模式下的AES。用以管理用于存储共享文件系统的密码术密钥的类似系统和方法也可以是有用的。
概述
以下给出了一个或多个方面的简要概述以提供对此类方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在标识出所有方面的关键性要素亦非试图界定所有方面的范围。其唯一目的是以简化形式给出一个或多个方面的一些概念以作为稍后给出的更详细描述之序言。
在一个实施例中,一种集成电路(IC)系统包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM)。第一存储器控制器包括连接至第一处理器和第一RAM的存储器密码术电路。存储器密码术电路包括密钥库。密钥库包括密钥扩展引擎。密钥库被配置成接收密钥标识符,并且基于该密钥标识符来向密钥扩展引擎提供第一密钥扩展输入。密钥扩展引擎被配置成对第一密钥扩展输入执行密钥扩展操作以生成经扩展的密码术密钥。
在另一实施例中,一种用于具有第一处理器、第一存储器控制器和第一随机存取存储器(RAM)的集成电路(IC)系统的方法,其中第一存储器控制器包括连接至第一处理器和第一RAM的存储器密码术电路,该存储器密码术电路具有密钥库,并且该密钥库具有密钥扩展引擎,该方法包括(a)由该密钥库接收密钥标识符;(b)由该密钥库基于该密钥标识符向该密钥扩展引擎提供第一密钥扩展输入;以及(c)由该密钥扩展引擎对第一密钥扩展输入执行密钥扩展操作以生成经扩展的密码术密钥。
在又另一实施例中,一种其上存储有指令的非瞬态计算机可读介质,这些指令用于使IC系统执行方法,该IC系统包括第一处理器、第一存储器控制器和第一随机存取存储器(RAM),其中第一存储器控制器包括连接至第一处理器和第一RAM的存储器密码术电路,该存储器密码术电路包括密钥库,并且该密钥库包括密钥扩展引擎。该方法包括:由该密钥库接收密钥标识符;由该密钥库基于该密钥标识符向该密钥扩展引擎提供第一密钥扩展输入;以及由该密钥扩展引擎对第一密钥扩展输入执行密钥扩展操作以生成经扩展的密码术密钥。
为了达成前述及相关目的,这一个或多个方面包括在下文充分描述并在权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或多个方面的某些解说性特征。然而,这些特征仅仅是指示了可采用各个方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方案。
附图简述
以下将结合附图来描述所公开的方面,提供附图是为了解说而非限定所公开的各方面,其中相似的标号标示相似的元件,且其中:
图1是根据本公开的一个实施例的计算机系统的简化示意图。
图2是图1的计算机系统的细节部分的简化示意图。
图3是图2的存储器密码术电路的简化示意图。
图4是根据图2的计算机系统的一个实施例的示例性数据分组的示意表示。
图5是根据一个实施例的过程的流程图。
图6是根据一个实施例的过程的流程图。
图7是根据一替换实施例的密钥库的简化示意图。
图8是根据本公开的一实施例的用于图7的密钥库的过程的流程图。
图9是根据另一替换实施例的密钥库的简化示意图。
图10是根据本公开的一实施例的用于图9的密钥库的过程的流程图。
详细描述
现在参照附图描述各个实施例。在以下描述中,出于解释目的阐述了众多具体细节以提供对一个或多个实施例的透彻理解。然而显然的是,没有这些具体细节也可实践此类方面。另外,本文中使用的术语“组件”可以是构成系统的诸部分之一,可以是存储在计算机可读介质上的硬件、固件和/或软件,并且可以被划分成其他组件。
以下描述提供示例而并非限定权利要求中阐述的范围、适用性或者示例。可以对所讨论的要素的功能和布置作出改变而不会脱离本公开的范围。各种示例可恰适地省略、替代、或添加各种规程或组件。例如,可以按与所描述的次序不同的次序来执行所描述的方法,并且可以添加、省略、或组合各种步骤。另外,参照一些示例所描述的特征可在其他示例中被组合。注意到,为了便于参考和增大清晰度,可在各附图中个体地标记多个基本上相同的元件的仅一个实例。
在一些实施例中,每个VM在对应受保护软件环境(PSE)内运行。PSE由PSE管理软件管理。注意到,密码保护可被应用于任何任意软件层(例如,固件、超监督者、VM/内核、驱动器、应用、过程、子过程、线程等)。任何此类软件可在PSE内部起作用。超监督者将通常是用于包封VM的PSE的PSE管理软件,并且OS内核通常将是用于包封应用的PSE的PSE管理软件。一般而言,PSE管理软件角色通常将由以自PSE内所包含的软件起的下一较高特权等级执行的软件来履行。
注意到,一些密码术系统使用唯一性的密钥种子来生成用于与对应的PSE相关联的对应的密码术密钥。例如,128比特密钥种子可被用于通过以下操作来生成256比特密码术密钥(具有128比特安全强度):向密钥扩展引擎提供该128比特密钥种子,该密钥扩展引擎随后输出对应的256比特密码术密钥。注意到,密码术密钥可以是包括两个或更多个子密钥的复合密钥。例如,256比特密码术密钥可包括两个不同的128比特子密钥,其中总体安全强度为128比特。这两个子密钥可随后被用在需要两个不同的密钥来进行密码术处理的密码术系统(诸如举例而言,AES-XEX和AES-XTS)中。
一些密码系统将共享的或全局的密钥种子与一次性数结合使用,以生成用于与对应的PSE相关联的对应的密码术密钥。例如,可以将128比特共享密钥种子与唯一性实例计数器结合使用,以为对应的PSE生成唯一性的128比特或256比特密码术密钥。实例计数器是针对每个为其生成密码术密钥的新PSE递增的计数器,并且因此应从不重复。一般而言,由密钥扩展、推导或类似功能生成的密码术密钥在本文中被称为经扩展的密码术密钥。如本文所使用的,密钥种子可以指代输入到密钥扩展或密钥推导函数和/或对应的密钥扩展或密钥推导模块中的任何数据。
本公开的各实施例包括用于第一多个密码术密钥的高效管理的系统和方法。密码术密钥可以与由PSE管理软件(例如,超监督者)监督的第一多个对应PSE(例如,包封虚拟机)相关联,该PSE管理软件在计算机系统上运行并被配置成监督该第一多个PSE的超集。该计算机系统以加密形式在相对远程、便宜、大且缓慢的存储器(例如,DDR SDRAM)中至少存储超集的当前未使用的密钥和/或密钥种子,并且使用密钥扩展引擎结合相对近、快速、小且昂贵的存储器(例如,片上SRAM)来管理第一多个密钥中的密钥。注意到,除了超集的当前未使用的密钥和/或密钥种子之外,相对远程的存储器还可以存储该第一多个PSE的当前使用的密钥和/或密钥种子的副本。
在一些实施例中,计算机系统包括一个或多个处理器并且能够进行并行处理,该计算机系统被配置成支持多个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的包括SoC 101和RAM模块102的计算机系统100的细节部分的简化示意图。SoC 101包括一个或多个中央处理单元(CPU)核205,CPU核205中的每一者可以是单线程或多线程处理器。每个CPU核205可包括L1和L2高速缓存(未示出)。SoC 101可进一步包括一个或多个L3高速缓存206、一个或多个存储器控制器207、一个或多个物理层(PHY)接口208和系统总线209。SoC 101可进一步包括密钥管理单元(KMU)210,KMU 210可被实现为离散自立模块(如所示出的),被实现为两个或更多个CPU核205内的分布式模块,或者以任何合适方式来实现。系统总线209互连CPU核205、L3高速缓存206、KMU 210和存储器控制器207,连同可被包括在SoC 101内的任何其他外围设备。
存储器控制器207包括存储器密码术电路(MCC)211,并且可进一步包括用于在MCC211与SoC 101的其他组件之间对接的接口模块(未示出)(诸如举例而言总线接口)。存储器控制器207被通信地耦合至对应PHY接口208,PHY接口208进而被通信地耦合至对应外部RAM模块102。
计算机系统100可支持PSE管理软件对多个PSE的管理,其中多个PSE的子集可作为并行进程来同时运行。计算机系统100支持由多个CPU核205进行并行处理。在一些实现中,CPU核205中的一或多者可被配置成并行地执行多个线程。注意到,在一些替换实施例中,计算机系统100可具有仅一个CPU核205,然而,CPU核205支持多线程处理并且因此支持并行处理。进一步注意到,在一些替换实施例中,计算机系统100可包括两个或更多个SoC,这些SoC通过芯片至芯片接口相干地连接以形成多套接口系统(multi-socket system)。
计算机系统100可支持较大数目个PSE,每个PSE与唯一性密码术密钥种子以及其对应的经扩展密钥相关联,这允许CPU核205安全地共享RAM模块102并允许PSE安全地操作,而免受其他进程(诸如举例而言其他PSE、PSE管理软件)以及潜在的黑客攻击者窥探。SoC101可被设计成使用时间分片来支持操作的数个PSE的几乎同时执行,PSE的数目大于可由SoC 101在对应CPU核205上同时支持的并行进程的数目,但小于可由计算机系统100支持的PSE的任意较大总数。如下文将更详细地解释的,KMU 210管理用于由计算机系统100支持的PSE的密码术密钥种子和它们对应的密钥标识符(KID)。注意到,KID也可被视为PSE标签。
如下文将更详细地解释的,在操作中,当在第一CPU核205上运行的第一PSE需要将数据块写入RAM 102时,由MC电路211使用唯一性地对应于第一PSE的第一经扩展密码术密钥来对数据块进行加密。对应经加密数据块随后被写入到第一RAM模块102。当第一PSE需要从RAM模块102读取数据块时,由MC电路211使用第一经扩展密码术密钥来对在RAM模块102上加密的所检索的数据块进行解密。对应的经解密数据块随后被传送到第一PSE正在其上运行的CPU核205。注意到,向RAM模块102进行写入和从RAM模块102进行读取可作为由CPU核205进行的例行指令执行的一部分来执行。
图3是图2的存储器密码术电路211的一个实施例的简化示意图。MC电路211包括加密引擎312、解密引擎313和密钥库314。加密引擎312是一种电路,这种电路被配置成例如从CPU核205接收明文块,以及从密钥库314接收经扩展密码术密钥,利用经扩展密码术密钥使用加密算法(诸如举例而言使用恰适密码操作模式的AES)来对明文进行加密并例如向RAM模块102输出对应密文块。解密引擎313是一种电路,这种电路被配置成例如从RAM模块102接收密文块以及从密钥库314接收经扩展密码术密钥,利用经扩展密码术密钥使用解密算法(诸如举例而言使用恰适密码操作模式的AES)来对密文进行解密并例如向CPU核205输出对应明文块。
密钥库314包括种子库315、扩展引擎316、本地高速缓存317和仲裁器318。种子库315可以是例如被配置成使用其对应的KID来可寻址地存储和更新多个密钥种子的SRAM模块、寄存器文件或类似快速存取RAM。类似地,高速缓存317可以是被配置成存储和更新较小数目的多个经扩展密钥及其对应的KID的SRAM模块或类似快速存取RAM。换言之,高速缓存317可以支持关联阵列的管理。高速缓存317可包括用于通过其对应的KID来查找经扩展密钥的内容可寻址存储器(CAM)。扩展引擎316可从种子库315接收一个或多个密钥种子,并且输出对应的经扩展密钥,该经扩展密钥随后被提供给仲裁器318(以可能提供给加密引擎312或解密引擎313)和高速缓存317。
种子库315可被配置成存储由其对应的KID索引的相对较大数目的多个密钥种子。KMU 210被配置成管理种子库315中的密钥种子和KID的存储。例如,如果计算机系统100支持的PSE数目大于可由种子库315存储的密钥种子的数目,则KMU 210确定哪些PSE的密钥种子及其对应的KID由种子库315来存储。
种子库315被配置成经由配置接口从KMU 210接收密钥种子和/或控制命令。KMU210可以提供例如PSE的128比特密钥种子和PSE的KID。作为响应,种子库315可在由KID指示的种子库地址处存储接收到的密钥种子。种子库315还被配置成响应于接收到作为存储器事务请求的一部分的KID而向扩展引擎316输出在由该KID指示的密钥库地址处存储的种子(例如,作为高速缓存未命中的结果)。注意到,对RAM 102的读和写存储器事务请求两者均经由系统总线209来传送,并且包括与请求方PSE相对应的KID。
注意到,除了被携带在系统总线209上,该KID还可被存储在L1/L2/L3高速缓存中,其中每个高速缓存行携带该KID连同存储器地址和数据。如本文其他地方所提及的,KID是用于从密钥库314获取用于请求方PSE的对应经扩展密码术密钥的索引。
当由MC电路211接收到存储器事务请求时,KID被提供给密钥库314。KID被提供给高速缓存317和种子库315。如果高速缓存317具有针对KID的有效记录(换言之,如果存在高速缓存命中,或者KID匹配),则高速缓存317将对应的经扩展密钥提供给仲裁器318,该仲裁器318进而提供该经扩展密钥作为密钥库314到密码术引擎312和313的输出,以进行对应的密码术处理(即,使用该经扩展密钥来进行加密或解密)。
如果高速缓存317不具有针对KID的有效记录(换言之,如果存在高速缓存器未命中,或者KID不匹配),则种子库315查找KID并向扩展引擎316提供位于KID对应地址的对应的密钥种子。扩展引擎316随后使用接收到的密钥种子来执行密钥扩展功能,并且向仲裁器318和高速缓存317输出对应的经扩展密钥。仲裁器318向密码术引擎312和313提供经扩展密钥。同时,经扩展密钥及其对应的KID被输入到高速缓存317中(以更新高速缓存317),从而可能从高速缓存317收回另一条目。
在一些替换实施例中,密钥库314缺乏高速缓存317和仲裁器318,并且作为结果,如同存储器事务请求全都导致高速缓存未命中一样处置这些存储器事务请求。因此,每当由MC电路211接收到存储器事务请求时,种子库315就将与接收到的KID相对应的密钥种子提供给扩展引擎316,该扩展引擎316进而对该密钥种子执行密钥扩展以生成对应的经扩展密钥以提供给密码术引擎312和313。
注意到,对来自CPU核205的读请求的处理可涉及由MC电路211缓冲对应的经扩展密钥,直到从RAM 102检索到位于所请求的存储器地址处的对应密文块,此时密文块和经扩展密钥被提供给解密引擎313以进行解密。
在一个示例实现中,SoC 101可包括十六个单线程CPU核205,由此允许十六个唯一性PSE同时运行。PSE管理软件可以是跨CPU核205中的一者、一些或全部分布地运行的程序。SoC 101可被配置成支持数千个PSE,并在任一时间支持至多达128个PSE的时间分片。换言之,在正常操作期间,数千个PSE被挂起(换言之,是半休眠的),而数十个PSE可能正通过共享SoC 101的16个CPU核205的时间片来执行。高速缓存317可被配置成存储128个经扩展密钥,并且种子库315可被配置成存储4,096个密钥种子,其中种子库315中的密钥种子的地址是该密钥种子的KID。因此,KID可以是与种子库315地址相对应的12比特数字(如212=4,096)。在替换实施例中,高速缓存317可被配置成仅存储32个经扩展密钥,这将可能需要更频繁的高速缓存收回,但提供了成本和功率节省。
如果计算机系统100支持多于4,096个PSE,则KMU 210可以管理被排除PSE的密钥种子,这些PSE在操作上处于休眠并且不具有对应的KID。如果计算机系统100确定要激活休眠PSE,则KMU 210向该PSE指派KID,并且向种子库315提供该KID和对应的密钥种子,从而可能从种子库315中收回另一PSE的密钥种子。KMU 210适当地处置其中被收回PSE在收回时具有在RAM模块102中剩余的对应加密块的情况。KMU 210可以按加密形式在相对远程、便宜、大且缓慢的存储器(例如,DDR SDRAM)中存储被排除/休眠PSE的密钥种子(以及被包括/半休眠和/或活跃PSE的密钥种子的副本),并且按需检索它们。
图4是根据图2的计算机系统100的一个实施例的示例性数据分组400的示意表示。数据分组400包括数据有效载荷401、KID 402和报头403。在一个示例实现中,(i)数据有效载荷字段401至少为128比特,以能够包含整个128比特标准AES块,并且(ii)KID字段至少为12比特,以支持在密钥库314中寻址4,096个密码术密钥位置。报头403可包含任何合适报头信息,诸如举例而言用于在系统总线209上传送数据分组400的属性信息(例如,存储器地址、读/写指示符、用于路由响应的源地址等)。注意到,读请求分组可仅包括KID 402和报头403,包括存储器地址,而不包括有效载荷。相关地,读响应分组可仅包括数据有效载荷401和报头403,而不包括KID。进一步注意到,在使用时,KID 402不必为数据分组的专用分段,并且可为例如报头的一部分和/或用于除对种子库315中的密钥位置进行标识之外的目的。
图5是根据一个实施例的过程500的流程图。过程500在由写模块作出需要将数据块写入RAM模块102的确定(步骤501)时开始。写确定可由例如在第一CPU205上执行的需要将块直接写入存储器的第一PSE或需要收回高速缓存行的第一高速缓存进行。注意到,一般而言,来自在CPU 205上执行的PSE的写请求可被高速缓存,并且当在SoC 101的高速缓存阶层中时,数据块与PSE的KID相关联。写模块经由系统总线209来将对应数据分组400提供给MC电路211,数据分组400包括数据有效载荷401中的明文数据块以及KID字段402中对应于第一PSE的KID(步骤502)。注意到,数据有效载荷401可包括后缀和/或前缀填充比特连同数据块。数据有效载荷401被提供给加密引擎312,并且KID被提供给密钥库314和高速缓存317(步骤503)。
高速缓存317搜索KID(步骤504)。如果在高速缓存317中找到该KID(即,在步骤504中高速缓存命中),则高速缓存317经由仲裁器318向加密引擎提供对应的经扩展密钥(步骤505)。如果在高速缓存317中未找到该KID(即,在步骤504中高速缓存未命中),则种子库315查找该KID以找到对应的密钥种子(步骤506)。种子库315随后向扩展引擎316提供对应的密钥种子(步骤507)。扩展引擎316使用接收到的密钥种子来执行扩展功能以生成经扩展密钥(步骤508)。扩展引擎316将得到的经扩展密钥提供给高速缓存317,并且经由仲裁器318提供给加密引擎312(步骤509)。高速缓存317存储经扩展密钥和对应的KID,这可能需要收回最少使用的、随机选取的或以其他方式选取的高速缓存行。在步骤505或步骤509中将经扩展密钥提供给加密引擎之后,加密引擎312使用接收到的经扩展密钥对接收到的明文数据执行加密算法(例如,AES加密),并且输出提供给RAM模块102的对应密文数据块(步骤510)。
图6是根据一个实施例的过程600的流程图。过程600在存储器控制器207经由总线接口接收数据分组并确定需要使用数据分组中提供的地址和KID来从RAM模块102读取(即,检索)数据块(步骤601)时开始。可从例如CPU核205、L2高速缓存或L3高速缓存206接收数据分组。存储器控制器207发起从RAM模块102读取对应数据块(步骤602),并且并行地获取对应的经扩展密钥(步骤604、605和/或606)。获取经扩展密钥包括:确定该KID是否在高速缓存317中(步骤604);如果是,则从高速缓存317中获取经扩展密钥(步骤606);如果不是,则在种子库315中查找该KID以定位对应的密钥种子,向扩展引擎316提供对应的种子,并且使用该密钥种子执行扩展功能以获取经扩展密钥(步骤605)。扩展引擎316向高速缓存317提供得到的经扩展密钥,并且缓冲该经扩展密钥,直到MC电路211从RAM模块102接收到所请求的经加密数据块(步骤603)。高速缓存317存储经扩展密钥和对应的KID,这可能需要收回最少使用的、随机选取的或以其他方式选取的高速缓存行。
向解密引擎313提供(1)检索到的经加密数据块和(2)经扩展密钥(步骤607)。解密引擎313使用接收到的经扩展密钥来对接收到的经加密数据块执行解密算法(例如,AES解密),并且输出对应的明文数据块(步骤608)。存储器控制器207提供包含明文数据块的响应数据分组,以供路由回到请求方CPU核或高速缓存(步骤609)。
图7是根据一替换实施例的密钥库714的简化示意图。可以使用密钥库714代替图3的密钥库314。密钥库714包括本地高速缓存717、扩展引擎716、计数器库721、全局种子存储720和仲裁器718。高速缓存717和仲裁器718分别以基本上与密钥库314的高速缓存317和仲裁器318相同的方式来操作。纳入密钥库714的计算机系统(未示出)使用存储在全局种子库720中的共享密钥种子和针对每个PSE的唯一性计数器值来生成用于该PSE的对应经扩展密钥。如上所述,当新PSE被实例化时,它接收用作一次性数的新的递增计数器值。对应的KMU(未示出)管理计数器值的维护以及它们与对应PSE的关联,并相应地更新计数器库721。
图8是根据本公开的一实施例的用于图7的密钥库714的过程800的流程图。当密钥库714与存储器存取请求一起接收到KID时(步骤801),高速缓存717查找KID(802)。如果在高速缓存717中找到该KID,则对应的经扩展密钥被提供给仲裁器718以作为密钥库714的输出来提供(步骤803)。如果在高速缓存717中未找到该KID(步骤802),则计数器库查找该KID(步骤804)以获取对应的计数器值,该计数器值被提供给扩展引擎716(步骤805)。注意到,该计数器值是基于KID的密钥扩展值。扩展引擎716随后使用该计数器值以及从全局种子库720获取的全局种子来执行扩展操作,以生成经扩展的密码术密钥(步骤806)。扩展引擎716将得到的经扩展密钥提供给密钥高速缓存717,该密钥高速缓存717存储该经扩展密钥和对应的KID(步骤807)。值得注意的是,该高速缓存更新可能需要收回存储KID和对应的经扩展密钥的现有高速缓存行(步骤807)。该经扩展密钥也被提供给仲裁器718,以作为密钥库714的输出来提供(步骤803)。
图9是根据另一替换实施例的密钥库914的简化示意图。可以使用密钥库914代替图3的密钥库314。密钥库914包括本地高速缓存917、扩展引擎916、全局种子库920和仲裁器918。高速缓存917和仲裁器918分别以基本上与密钥库314的高速缓存317和仲裁器318相同的方式来操作。纳入密钥库914的计算机系统(未示出)使用存储在全局种子库920中的共享密钥种子和每个PSE的KID来生成用于该PSE的对应经扩展密钥。对应的KMU(未示出)可以管理各KID与对应的PSE的关联。
图10是根据本公开的一实施例的用于图9的密钥库914的过程1000的流程图。当密钥库914与存储器存取请求一起接收到KID时(步骤1001),高速缓存917查找KID(1002)。如果在高速缓存917中找到该KID,则对应的经扩展密钥被提供给仲裁器918以作为密钥库914的输出来提供(步骤1003)。如果在高速缓存917中未找到该KID(步骤1002),则扩展引擎916使用该KID以及从全局种子库920获取的全局种子来执行扩展操作以生成经扩展的密码术密钥(步骤1004)。注意到,该计数器值是基于KID的密钥扩展值。扩展引擎916将得到的经扩展密钥提供给密钥高速缓存917,该密钥高速缓存917存储该经扩展密钥和对应的KID(步骤1005)。值得注意的是,该高速缓存更新可能需要收回存储KID和对应的经扩展密钥的现有高速缓存行(步骤1005)。经扩展密钥也被提供给仲裁器918,以作为密钥库914的输出来提供(步骤1003)。
在其中128比特种子被用于生成256比特经扩展密钥的图3的MC电路211的一个示例性实现中,密钥库314可以使用稍多于实际存储4,096个256比特密钥所需的存储空间的一半的存储空间来模拟4,096个256比特密钥的存储。在其中实例计数器被存储在由KID寻址的计数器库721中并且将实例计数器与全局密钥种子结合使用以导出密钥的图7的密钥库714的示例性实现中,密钥库714可以使用稍多于实际存储4,096个256比特密钥所需的存储空间的五分之一的存储空间来模拟4,096个256比特密钥的存储–假设使用56比特计数器,这将允许每10纳秒提供一个新的且唯一性的计数器值达超过20年。注意到,当PSE被实例化时,该PSE获取新的计数器值。在其中系统中支持的密钥总数被限制为KID的可能值数目(例如,针对12比特KID的总共4,096个密钥)的图9的密钥库914的示例性实现中,该KID可以直接与全局密钥种子一起使用以导出密钥,并且密钥库914可以仅使用本地高速缓存917和全局种子920的存储空间来模拟4,096个密钥的存储。
应注意,上述存储器密码术电路可被用在除计算机系统100之外的系统中。例如,MC电路211可被用于管理由多个文件系统存储在共享非易失性存储器上的所谓静态数据的加密,其中类似于上述PSE,每个文件系统具有对应密钥种子和经扩展密钥。存储器密码术电路可被用在管理相对大量多个客户端及对应密码术种子的任何合适系统中。此外,注意到,本公开的实施例不限于用于运行多个PSE的系统。相反,一般而言,MC电路可被用在使用具有对应密钥种子的多个经扩展密码术密钥的任何系统中,这些密钥种子可以在需要时被扩展为经扩展密码术密钥。
一般术语可被用来描述上述读过程500和写过程600的步骤。确定需要写或读数据就是确定需要在第一PSE与RAM模块102之间转移数据。密文和明文为数据。加密和解密是密码术操作,其获取第一数据块并输出第一密码术对应数据块。
以上结合附图阐述的以上详细说明描述了示例而不代表可被实现或者落在权利要求的范围内的仅有示例。术语“示例”在本描述中使用时意指“用作示例、实例、或解说”,并且并不意指“优于”或“胜过其他示例”。本详细描述包括具体细节以提供对所描述的技术的理解。然而,可在没有这些具体细节的情况下实践这些技术。在一些实例中,众所周知的结构和装置以框图形式示出以避免模糊所描述的示例的概念。
信息和信号可使用各种各样的不同技艺和技术中的任一种来表示。例如,贯穿上面描述始终可能被述及的数据、指令、命令、信息、信号、位(比特)、码元、以及码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、存储在计算机可读介质上的计算机可执行代码或指令、或其任何组合来表示。
结合本文中的公开所描述的各种解说性框以及组件可以用专门编程的设备来实现或执行,诸如但不限于设计成执行本文中所描述的功能的处理器、数字信号处理器(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 (15)
1.一种存储器密码术电路,所述存储器密码术电路包括密钥库和密钥扩展引擎,其中:
所述密钥库被配置成:
接收密钥标识符;
基于所述密钥标识符来向所述密钥扩展引擎提供第一密钥扩展输入;并且
所述密钥扩展引擎被配置成对所述第一密钥扩展输入执行密钥扩展操作以生成经扩展密码术密钥。
2.如权利要求1所述的电路,其中:
所述存储器密码术电路包括加密引擎,所述加密引擎被配置成:
接收所述经扩展密码术密钥和输入明文块;以及
使用所述经扩展密码术密钥来对所述输入明文块进行加密,以输出对应的输出密文块;并且
所述存储器密码术电路包括解密引擎,所述解密引擎被配置成:
接收所述经扩展密码术密钥和输入密文块;以及
使用所述经扩展密码术密钥来对所述输入密文块进行解密,以输出对应的输出明文块。
3.如权利要求1所述的电路,其中:
所述存储器密码术电路包括第一密码术引擎,所述第一密码术引擎被配置成接收所述经扩展密码术密钥和输入块;并且
所述第一密码术引擎被配置成使用所述经扩展密码术密钥来处理输入块以输出对应的输出块。
4.如权利要求3所述的电路,其中:
所述密钥库进一步包括高速缓存,所述高速缓存被配置成:
存储多个密钥标识符和对应的经扩展密码术密钥;以及
查找所接收到的密钥标识符;
如果所接收到的密钥标识符由所述高速缓存匹配,则所述高速缓存被配置成随后响应于匹配所接收到的密钥标识符而向所述第一密码术引擎提供对应的经扩展密码术密钥;
如果所接收到的密钥标识符未由所述高速缓存匹配,则所述密钥库被配置成随后利用所接收到的密钥标识符以及由所述密钥扩展引擎生成的对应的经扩展密码术密钥来更新所述高速缓存,其中所述密钥扩展引擎被配置成向所述高速缓存和所述第一密码术引擎两者提供所述对应的经扩展密码术密钥。
5.如权利要求1所述的电路,其中:
所述密钥库进一步包括种子库,所述种子库被配置成:
存储由其对应的密钥标识符索引的多个密钥种子;以及
响应于接收到所述密钥标识符而向所述密钥扩展引擎提供对应的密钥种子作为所述第一密钥扩展输入。
6.如权利要求1所述的电路,其中:
所述密钥库包括计数器库,所述计数器库被配置成:
存储由其对应的密钥标识符索引的多个计数器值;
响应于接收到密钥标识符而向所述密钥扩展引擎提供对应的计数器值作为所述第一密钥扩展输入;
所述密钥扩展引擎被配置成对所述第一密钥扩展输入和全局种子值执行所述密钥扩展操作以生成所述经扩展密码术密钥。
7.如权利要求1所述的电路,其中:
所述第一密钥扩展输入是所接收到的密钥标识符;
所述密钥扩展引擎被配置成对所述第一密钥扩展输入和全局种子值执行所述密钥扩展操作以生成所述经扩展密码术密钥。
8.一种用于存储器密码术电路的方法,所述存储器密码术电路包括密钥库和密钥扩展引擎,所述方法包括:
由所述密钥库接收密钥标识符;
由所述密钥库基于所述密钥标识符来向所述密钥扩展引擎提供第一密钥扩展输入;以及
由所述密钥扩展引擎对所述第一密钥扩展输入执行密钥扩展操作以生成经扩展密码术密钥。
9.如权利要求8所述的方法,其中:
所述存储器密码术电路包括加密引擎和解密引擎;并且
所述方法进一步包括:
由所述加密引擎接收所述经扩展密码术密钥和输入明文块;
由所述加密引擎使用所述经扩展密码术密钥来对所述输入明文块进行加密;
由所述加密引擎输出对应的输出密文块;
由所述解密引擎接收所述经扩展密码术密钥和输入密文块;
由所述解密引擎使用所述经扩展密码术密钥来对所述输入密文块进行解密;以及
由所述解密引擎输出对应的输出明文块。
10.如权利要求8所述的方法,其中:
所述存储器密码术电路包括第一密码术引擎;并且
所述方法进一步包括:
由所述第一密码术引擎接收所述经扩展密码术密钥和输入块;
由所述第一密码术引擎使用所述经扩展密码术密钥来处理输入块;以及
由所述第一密码术引擎来输出对应的输出块。
11.如权利要求10所述的方法,其中:
所述密钥库进一步包括高速缓存,所述高速缓存被配置成存储多个密钥标识符和对应的经扩展密码术密钥;并且
所述方法进一步包括:
在所述高速缓存中查找所接收到的密钥标识符;
如果在所述高速缓存中找到所接收到的密钥标识符,则由所述高速缓存响应于匹配所接收到的密钥标识符而向所述第一密码术引擎提供对应的经扩展密码术密钥;以及
如果未在所述高速缓存中找到所接收到的密钥标识符,则利用所接收到的密钥标识符以及由所述密钥扩展引擎生成的对应的经扩展密码术密钥来更新所述高速缓存,其中所述密钥扩展引擎向所述高速缓存和所述第一密码术引擎两者提供所述对应的经扩展密码术密钥。
12.如权利要求8所述的方法,其中:
所述密钥库进一步包括种子库;并且
所述方法进一步包括:
在所述种子库中存储由其对应的密钥标识符索引的多个密钥种子;以及
由所述种子库响应于接收到所述密钥标识符而向所述密钥扩展引擎提供对应的密钥种子作为所述第一密钥扩展输入。
13.如权利要求8所述的方法,其中:
所述密钥库包括计数器库;并且
所述方法进一步包括:
在所述计数器库中存储由其对应的密钥标识符索引的多个计数器值;
由所述计数器库响应于接收到密钥标识符而向所述密钥扩展引擎提供对应的计数器值作为所述第一密钥扩展输入;
由所述密钥扩展引擎对所述第一密钥扩展输入和全局种子值执行所述密钥扩展操作以生成所述经扩展密码术密钥。
14.如权利要求8所述的方法,其中:
所述第一密钥扩展输入是所接收到的密钥标识符;并且
所述方法进一步包括由所述密钥扩展引擎对所述第一密钥扩展输入和全局种子值执行所述密钥扩展操作以生成所述经扩展密码术密钥。
15.一种集成电路(IC)系统,包括第一处理器、第一随机存取存储器(RAM)和存储器密码术电路,其中:
所述存储器密码术电路被连接至所述第一处理器和所述第一RAM;
所述存储器密码术电路包括密钥库;
所述密钥库包括密钥扩展引擎;
所述密钥库被配置成:
接收密钥标识符;
基于所述密钥标识符来向所述密钥扩展引擎提供第一密钥扩展输入;并且
所述密钥扩展引擎被配置成对所述第一密钥扩展输入执行密钥扩展操作以生成经扩展密码术密钥。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/053,626 | 2018-08-02 | ||
US16/053,626 US11216592B2 (en) | 2018-08-02 | 2018-08-02 | Dynamic cryptographic key expansion |
PCT/US2019/040720 WO2020027984A1 (en) | 2018-08-02 | 2019-07-05 | Dynamic cryptographic key expansion |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112514320A true CN112514320A (zh) | 2021-03-16 |
Family
ID=67441699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980049867.7A Pending CN112514320A (zh) | 2018-08-02 | 2019-07-05 | 动态密码术密钥扩展 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11216592B2 (zh) |
CN (1) | CN112514320A (zh) |
TW (1) | TWI797353B (zh) |
WO (1) | WO2020027984A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114222260A (zh) * | 2021-12-29 | 2022-03-22 | 渔翁信息技术股份有限公司 | 一种对等短信传输方法、系统、设备及计算机存储介质 |
CN114866292A (zh) * | 2022-04-18 | 2022-08-05 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种信息安全交互的加解密方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3977320A4 (en) * | 2019-05-27 | 2023-06-28 | BicDroid Inc. | Methods and devices for optimal information-theoretically secure encryption key management |
CN117914471A (zh) * | 2023-12-26 | 2024-04-19 | 北京邮电大学 | 一种基于迭代复用结构的低功耗aes密码加速器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160203342A1 (en) * | 2015-01-09 | 2016-07-14 | Kabushiki Kaisha Toshiba | Memory system and information processing system |
US20170277898A1 (en) * | 2016-03-25 | 2017-09-28 | Advanced Micro Devices, Inc. | Key management for secure memory address spaces |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000057290A1 (fr) * | 1999-03-19 | 2000-09-28 | Hitachi, Ltd. | Processeur d'informations |
WO2005069294A1 (en) * | 2004-01-15 | 2005-07-28 | Matsushita Electric Industrial Co., Ltd. | Content reproduction apparatus |
US8819421B2 (en) * | 2006-04-04 | 2014-08-26 | Qualcomm Incorporated | File decryption interface |
GB2446175B (en) * | 2007-01-31 | 2011-06-29 | Hewlett Packard Development Co | Method of updating data |
US8494168B1 (en) | 2008-04-28 | 2013-07-23 | Netapp, Inc. | Locating cryptographic keys stored in a cache |
US8990582B2 (en) | 2010-05-27 | 2015-03-24 | Cisco Technology, Inc. | Virtual machine memory compartmentalization in multi-core architectures |
US8880847B2 (en) * | 2010-09-28 | 2014-11-04 | Texas Instruments Incorporated | Multistream prefetch buffer |
WO2015118630A1 (ja) * | 2014-02-05 | 2015-08-13 | 株式会社日立製作所 | ストレージシステムおよびストレージシステム用キャッシュ制御装置 |
KR101994952B1 (ko) * | 2015-03-27 | 2019-07-01 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 데이터 처리 방법, 메모리 관리 유닛, 및 메모리 제어 장치 |
US10824348B2 (en) * | 2016-08-02 | 2020-11-03 | Samsung Electronics Co., Ltd. | Method of executing conditional data scrubbing inside a smart storage device |
US10503933B2 (en) * | 2016-09-15 | 2019-12-10 | Nuts Holdings, Llc | Structured data folding with transmutations |
US11126718B2 (en) * | 2017-07-12 | 2021-09-21 | Acronis International Gmbh | Method for decrypting data encrypted by ransomware |
-
2018
- 2018-08-02 US US16/053,626 patent/US11216592B2/en active Active
-
2019
- 2019-07-04 TW TW108123676A patent/TWI797353B/zh active
- 2019-07-05 WO PCT/US2019/040720 patent/WO2020027984A1/en active Application Filing
- 2019-07-05 CN CN201980049867.7A patent/CN112514320A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160203342A1 (en) * | 2015-01-09 | 2016-07-14 | Kabushiki Kaisha Toshiba | Memory system and information processing system |
US20170277898A1 (en) * | 2016-03-25 | 2017-09-28 | Advanced Micro Devices, Inc. | Key management for secure memory address spaces |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114222260A (zh) * | 2021-12-29 | 2022-03-22 | 渔翁信息技术股份有限公司 | 一种对等短信传输方法、系统、设备及计算机存储介质 |
CN114866292A (zh) * | 2022-04-18 | 2022-08-05 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种信息安全交互的加解密方法 |
CN114866292B (zh) * | 2022-04-18 | 2024-03-22 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种信息安全交互的加解密方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI797353B (zh) | 2023-04-01 |
US11216592B2 (en) | 2022-01-04 |
US20200042746A1 (en) | 2020-02-06 |
WO2020027984A1 (en) | 2020-02-06 |
TW202008744A (zh) | 2020-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558377B2 (en) | Deduplication-based data security | |
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
TWI809026B (zh) | 用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體 | |
US9734357B2 (en) | Process authenticated memory page encryption | |
US9141558B2 (en) | Secure memory control parameters in table look aside buffer data fields and support memory array | |
TWI797353B (zh) | 動態密碼密鑰擴展之電路、方法及系統 | |
US8516271B2 (en) | Securing non-volatile memory regions | |
US9135450B2 (en) | Systems and methods for protecting symmetric encryption keys | |
JP2008123513A (ja) | 仮想化されたレジスタを有するトラステッド・デバイス | |
US20160283405A1 (en) | Cache-less split tracker architecture for replay protection trees | |
US20230409492A1 (en) | Method, apparatus, and system for storing memory encryption realm key ids | |
US9218296B2 (en) | Low-latency, low-overhead hybrid encryption scheme | |
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 |