CN115777101A - 使用高速缓存的部分散列值的存储器保护 - Google Patents
使用高速缓存的部分散列值的存储器保护 Download PDFInfo
- Publication number
- CN115777101A CN115777101A CN202180047677.9A CN202180047677A CN115777101A CN 115777101 A CN115777101 A CN 115777101A CN 202180047677 A CN202180047677 A CN 202180047677A CN 115777101 A CN115777101 A CN 115777101A
- Authority
- CN
- China
- Prior art keywords
- data block
- hash value
- cache
- memory
- data
- 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
- 239000008187 granular material Substances 0.000 claims abstract description 44
- 238000012795 verification Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Abstract
本发明公开了用于保护存储在存储器的受保护区域中的数据的完整性的装置和方法。在数据块中检索存储器的该受保护区域中的数据,并且将认证码与连续地包括第一数据块和第二数据块的存储器区组相关联。该认证码的计算包括基于根据该第一数据块确定的第一散列值和根据该第二数据块确定的第二散列值的加密计算。提供散列值高速缓存以存储根据从该存储器的该受保护区域中检索的数据块确定的散列值。当从存储器中检索该第一数据块和其相关联的认证码时,执行对该散列值高速缓存中的该第二散列值的查找,并且为该数据块所属的该存储器区组计算验证认证码。该第一数据块的完整性取决于与检索到的认证码匹配的验证认证码。
Description
技术领域
本公开涉及数据处理。具体地,本公开涉及存储器安全。
具体实施方式
数据处理系统可能需要处理数据,该数据需要保护,也就是说,该数据不应提供给未授权方。然而,这种必须被处理的数据的量可能大于可安全地存储在可信处理设备中的数据的量,使得必须将其存储在无法保证攻击者不能访问的存储器中。为此,已知这种数据与相关联的认证码一起存储,该认证码基于数据使用加密技术在可信处理设备内生成,使得当从存储器中检索数据和认证码时,可以检查数据和认证码。具体地,可执行认证码的再生(基于作为加密技术的一部分的密钥)以查看这是否与检索到的认证码匹配。如果认证码匹配,则确认检索到的数据的完整性,从而表明自从生成和存储认证码以来数据尚未被修改。除了要处理的数据本身之外,处理认证码是开销,例如在保护64字节数据块的64位认证码的情况下,该开销可以是12.5%。原则上,认证码可保护较大的数据块,但如果数据块变得大于形成存储器事务基础的正常数据单元,则这可使存储器系统的操作复杂化。
发明内容
在本文所述的一个示例性实施方案中,存在一种装置,该装置包括:存储器保护电路,该存储器保护电路用于验证存储器的受保护区域中的存储器区组(granule)的完整性;和散列值高速缓存,该散列值高速缓存用于存储根据从存储器的受保护区域中检索的数据块确定的散列值,其中:当从存储器中检索第一数据块和与连续地包括第一数据块和第二数据块的存储器区组相关联的认证码发生时,存储器保护电路响应于该检索来计算存储器区组的验证认证码,其中第一数据块的完整性取决于与认证码匹配的验证认证码,其中验证认证码的计算包括基于根据第一数据块确定的第一散列值和根据第二数据块确定的第二散列值的加密计算,并且存储器保护电路被布置成当需要验证认证码的计算时在散列值高速缓存中查找第二散列值。
在本文所述的另一个示例性实施方案中,存在一种验证存储器的受保护区域中的存储器区组的完整性的方法,该方法包括:将根据从存储器的受保护区域中检索的数据块确定的散列值存储在散列值高速缓存中;当从存储器中检索第一数据块和与连续地包括第一数据块和第二数据块的存储器区组相关联的认证码发生时,计算存储器区组的验证认证码,其中第一数据块的完整性取决于与认证码匹配的验证认证码,其中计算验证认证码包括基于根据第一数据块确定的第一散列值和根据第二数据块确定的第二散列值的加密计算;以及当需要计算验证认证码时,在散列值高速缓存中查找第二散列值。
在本文所述的另一个示例性实施方案中,存在一种装置,该装置包括:用于验证存储器的受保护区域中的存储器区组的完整性的部件;用于高速缓存根据从存储器的受保护区域中检索的数据块确定的散列值的部件;用于当从存储器中检索第一数据块和与连续地包括第一数据块和第二数据块的存储器区组相关联的认证码发生时计算存储器区组的验证认证码的部件,其中第一数据块的完整性取决于与认证码匹配的验证认证码,其中用于计算验证认证码的部件包括用于基于根据第一数据块确定的第一散列值和根据第二数据块确定的第二散列值来执行加密计算的部件;和用于当需要计算验证认证码时在用于高速缓存散列值的部件中查找第二散列值的部件。
附图说明
将参考如附图所示的本发明的实施方案,仅以举例的方式进一步描述本发明,其中:
图1示意性地示出了数据处理系统,其中可实现根据一些实施方案的存储器保护电路以验证存储在存储器中的数据的完整性;
图2示意性地示出了根据一些实施方案的包括存储器保护电路的片上系统,其中片上系统对其中存储有数据的片外存储器进行访问;
图3A示意性地示出了形成存储空间的一部分的存储器区组,该存储器区组由两个数据块和相关联的认证码构成;
图3B示意性地示出了基于应用于两个数据块的散列函数的认证码的生成;
图4A示意性地示出了一些实施方案中的包括存储器保护电路的装置,其中提供高速缓存协调电路以协调对数据高速缓存和散列值高速缓存的控制;
图4B示意性地示出了一些实施方案中高速缓存中的条目的一些细节;
图5是示出在一些实施方案中根据其验证数据块的完整性的一系列步骤的流程图;
图6是示出在一些实施方案中响应于数据高速缓存缺失而采取的一系列步骤的流程图;
图7是示出在一些实施方案中当发生散列值高速缓存缺失时所采取的一系列步骤的流程图;
图8A示意性地示出了在一些实施方案中高速缓存协调电路基于散列值高速缓存中的查找来影响数据高速缓存中逐出候选对象的选择的方式;
图8B示意性地示出了在一些实施方案中高速缓存协调电路基于与数据高速缓存中的牺牲高速缓存行相关的信息来影响散列值高速缓存中散列值的存储的方式;
图9示意性地示出了在一些实施方案中高速缓存协调电路基于来自散列值高速缓存和数据高速缓存的使用和/或修改信息来影响或控制数据高速缓存和散列值高速缓存中的牺牲选择的方式。
示例性实施方案的具体实施方式
在参考附图讨论实施方案之前,提供了对实施方案的以下描述。
根据一个示例性配置,提供了一种装置,该装置包括:存储器保护电路,该存储器保护电路用于验证存储器的受保护区域中的存储器区组的完整性;和散列值高速缓存,该散列值高速缓存用于存储根据从存储器的受保护区域中检索的数据块确定的散列值,其中:当从存储器中检索第一数据块和与连续地包括第一数据块和第二数据块的存储器区组相关联的认证码发生时,存储器保护电路响应于该检索来计算存储器区组的验证认证码,其中第一数据块的完整性取决于与认证码匹配的验证认证码,其中验证认证码的计算包括基于根据第一数据块确定的第一散列值和根据第二数据块确定的第二散列值的加密计算,并且存储器保护电路被布置成当需要验证认证码的计算时在散列值高速缓存中查找第二散列值。
在数据处理系统中,其中以块的形式,即以大于系统中使用的最小可寻址数据项大小的数据单元从存储器中检索数据,使用相关联的认证码来保护数据完整性的标准方法是将认证码与每个块相关联。例如,在数据处理系统被布置成从64字节块的存储器中检索数据的情况下,64位认证码可与64字节块相关联。然而,本技术采用新型的方法来保护这种数据,根据该方法,认证码与连续地包括(至少)两个数据块的存储器区组相关联,其中“数据块”在这里是指装置被布置成从存储器中进行检索的数据单元。因此,当需要从存储器中检索特定数据项时,该特定数据项仅形成其一部分的数据块作为整体被检索。数据块与至少一个另外的数据块相关联,从而一起形成本文所用术语中的“存储器区组”。另外,保护该特定数据项的认证码是基于存储器区组确定的,即不仅仅基于该特定数据项所属的数据块。认证值的确定包括基于根据第一数据块确定的第一散列值和根据第二数据块确定的第二散列值的加密计算。该方法基于这样的认识,即可构建其计算可被拆分的认证码。也就是说,通常在AC(DB1,DB2)表示数据块DB1和DB2的认证码的情况下,AC(DB1,DB2)可被构建为f(AC’(DB1),AC’(DB2))。该装置还包括用于存储此类散列值的散列值高速缓存(其中函数AC’在这种情况下是散列函数)。这种布置意味着当从存储器中检索第一数据项和相关联的认证码时,以及当第二散列值数据项存在于散列值高速缓存中时,可通过利用第二散列值来验证第一数据项的真实性,而不需要也从存储器中检索第二数据项。以这种方式,减少了认证码与其保护的数据的存储大小比,而不需要在检索单个数据块时需要从存储器中检索附加数据块。
根据其确定认证码的加密计算可采取多种形式,但在一些实施方案中,它包括在由一组所有可能值定义的有限域中的第一散列值和第二散列值的线性组合,该一组所有可能值能够由装置针对第一散列值和第二散列值中的每一者来表示。以这种方式限制计算有利于其在数据处理装置中的实现,从而使认证码的计算和认证码的表示与用于第一散列值和第二散列值的表示对齐。例如,当每个散列值由64位数据值表示时,认证码也可由64位数据值表示,其中散列值的线性组合发生在由64位值的所有可能值的集合定义的有限域内。因此也不需要截断计算值。另外,当认证码也被加密时,避免随后的截断意味着加密值可被解密。
线性组合可被不同地定义,但在一些实施方案中包括将第一散列值和第二散列值中的至少一者乘以常数。在一些实施方案中,线性组合包括将第一散列值乘以第一常数并且将第二散列值乘以第二常数。
在线性组合中采用的一个或多个常数可采取多种形式,但在一些实施方案中常数是密钥值。在一些实施方案中,第一常数是第一密钥值,并且第二常数是第二密钥值。
在一些实施方案中,装置还包括数据块高速缓存,该数据块高速缓存用于存储从存储器中检索的数据块的副本,并且其中数据块的副本是数据块高速缓存的高速缓存行。因此,可采用基于高速缓存行大小的方法来从存储器中检索数据,从而每个认证码与两个(或更多个)高速缓存行相关联。
本技术还认识到,在包括数据块高速缓存和散列值高速缓存两者的装置中,存在对每一者的相应内容进行控制的多种方式,并且还可利用协调控制来提高根据本技术操作的装置的数据处理效率。因此在一些实施方案中,装置还包括高速缓存内容协调控制电路,该高速缓存内容协调控制电路用于控制数据块高速缓存和散列值高速缓存中的存储,其中数据块高速缓存中的存储取决于散列值高速缓存的内容,并且其中散列值高速缓存中的存储取决于数据块高速缓存的内容。每个高速缓存的内容对其他高速缓存的内容的这种相互依赖性可以各种方式来实现。
在一些实施方案中,高速缓存内容协调控制电路被布置成对数据块高速缓存和散列值高速缓存强加独占存储策略,使得对于数据块和相关联的散列值,数据块被独占地存储在数据块高速缓存中,或者相关联的散列值被独占地存储在散列值高速缓存中。由于给定的散列值是从对应的数据块生成的,因此当给定的数据块当前被存储在数据块高速缓存中时,严格来说不需要将对应的散列值存储在散列值高速缓存中,因为它可从高速缓存的数据块中重新创建。相比之下,当给定的散列值当前被存储在散列值高速缓存中时,该高速缓存的散列值的主要目的可以是使得存储器区组内的另一数据项能够被认证。因此,当出于装置的数据处理目的,当前不需要从中导出该高速缓存的散列值的数据项时,仅出于认证验证目的,不需要将其保存在数据高速缓存中。因此可改善每个高速缓存中有限存储空间的使用。
高速缓存内容协调控制电路可管理关于散列值高速缓存和数据块高速缓存的内容的多种策略。在一些实施方案中,高速缓存内容协调控制电路被布置成管理数据块高速缓存的牺牲选择策略,其中:当对于与牺牲数据块连续形成存储器区组的另一数据块,根据该另一数据块确定的散列值当前被存储在散列值高速缓存中时,牺牲数据块的选择可能性增加。
牺牲选择策略(更一般地,高速缓存替换策略)可根据一系列因素以多种方式来实现,所述因素诸如高速缓存行何时被分配、高速缓存行最近被使用的时间、高速缓存行被使用的频率、导致高速缓存行被分配的拥有进程等中的一者或多者。选择给定高速缓存行进行逐出的可能性可相应地以各种方式调整,例如通过将优先级值与每个高速缓存行相关联,其中高速缓存行被逐出的可能性越小,与其相关联的优先级值越大。
本技术利用这种能力来影响散列值高速缓存和数据块高速缓存中的每一者中的高速缓存行逐出可能性,根据另一个高速缓存的当前内容,利用对给定高速缓存行在高速缓存之一中的存在的相对有用性的认识。因此,例如,对于具有对应散列值{H,H’}的给定数据块对{L,L’},当L当前被高速缓存在数据值高速缓存中时,可使其在H’当前被存储在散列值高速缓存中时更可能被选择用于逐出(例如,通过降低与其相关联的优先级值)。当使用该方法时可能存在各种情况,例如,当L是脏的(即修改的)时,在散列值高速缓存中保持H’允许稍后更快地逐出L,因为这将需要重新计算认证码(基于H和H’)以在修改的L被写入存储器时也被存储到存储器。
在一些实施方案中,高速缓存内容协调控制电路被布置成管理数据块高速缓存的牺牲选择策略,其中:在需要从数据块高速缓存中逐出之前,选择牺牲数据块;并且对于与牺牲数据块连续形成存储器区组的另一数据块,致使根据另一数据块确定的散列值存储在散列值高速缓存中。因此,再次使用具有对应散列值{H,H’}的数据块对{L,L’}的示例,当L被选择为牺牲数据块时,致使H’存储在散列值高速缓存中。
为了管理其对散列值高速缓存和数据值高速缓存的控制,并且特别是对每个高速缓存中的相应牺牲选择策略的控制,高速缓存内容协调控制电路可进一步利用指示相应高速缓存行的使用的信息。例如,在一些实施方案中,装置还包括数据块使用存储装置,该数据块使用存储装置用于存储数据块的使用指示,并且其中高速缓存内容协调控制电路被布置成管理数据块高速缓存的牺牲选择策略,其中:当对于与牺牲数据块连续形成存储器区组的另一数据块,使用指示显示该另一数据块的使用高于预定阈值时,牺牲数据块的选择可能性降低。因此,对于具有对应散列值{H,H’}的数据块对{L,L’},当L’最近已经被使用并且因此更可能在不久的将来被再次使用时,L被选择为牺牲数据块的可能性降低。
在一些实施方案中,装置还包括数据块使用存储装置,该数据块使用存储装置用于存储数据块的使用指示,并且其中高速缓存内容协调控制电路被布置成管理散列值高速缓存的牺牲选择策略,其中:当对于与根据其确定牺牲散列值的数据块连续形成存储器区组的另一数据块,使用指示显示该另一数据块的使用高于预定阈值时,牺牲散列值的选择可能性降低。因此,对于具有对应散列值{H,H’}的数据块对{L,L’},当L’最近已经被使用并且因此更可能在不久的将来被再次使用时,H被选择为牺牲散列值块的可能性降低。在一些此类实施方案中,牺牲散列值是干净的,并且另一数据块的使用是读取另一数据块。这是基于这样的认识:如果L’可能很快被再次读取,则保持L和H(在清洁状态下)是有利的。
在一些实施方案中,装置还包括数据块使用存储装置,该数据块使用存储装置用于存储数据块的使用指示,并且其中高速缓存内容协调控制电路被布置成管理散列值高速缓存的牺牲选择策略,其中:当牺牲散列值是脏的并且使用指示显示数据块的使用高于预定阈值并且数据块的使用正在写入数据块时,牺牲散列值的选择可能性降低。因此,对于具有对应散列值{H,H’}的数据块对{L,L’},当L最近已经被使用并写入并且因此更可能在不久的将来被再次写入时,H被选择为牺牲散列值块的可能性降低。在一些此类实施方案中,牺牲散列值是干净的,并且另一数据块的使用是读取另一数据块。这是基于这样的认识:如果L’可能很快被再次读取,则保持L和H(在清洁状态下)是有利的。
在一些实施方案中,高速缓存内容协调控制电路响应于对数据块高速缓存中的数据块的读访问来触发对散列值高速缓存中的对应散列值的查找。因此,当对L进行读访问时,在散列值高速缓存中执行对H的查找。
在一些实施方案中,高速缓存内容协调控制电路响应于对数据块高速缓存中的数据块的写访问来触发在散列值高速缓存中查找根据与数据块连续形成存储器区组的另一数据块确定的另一散列值。因此,当写入L时,执行对散列值高速缓存中的H’的查找。这意味着当修改的L随后被逐出时,如果H’存在于散列值高速缓存中,则基于H和H’的认证码需要被更快地计算。
相比之下,在一些实施方案中,当对数据块高速缓存中的数据块的读访问触发对散列值高速缓存中的对应散列值的查找时,当对对应散列值的查找导致散列值高速缓存中的缺失时,将散列值分配到散列值高速缓存中受到抑制。这是因为L的修改将意味着H将需要重新计算。
认证码的计算需要是安全的,使得不可信方无法修改数据项并计算出对应的认证码来替代,使得修改的数据项将被验证为真实的。然而,在一些实施方案中,装置还包括散列值的加密存储装置,其中加密计算是根据第一数据块确定的加密的第一散列值与根据第二数据块确定的加密的第二散列值的线性组合,其中从散列值的加密存储装置中检索加密的第一散列值和加密的第二散列值。因此,当散列值本身是安全的时,由于以加密形式存储,因此组合它们的认证码的计算本身不需要是安全的,并且可以是类型H+gH’的简单线性组合,其中g是任意常数(其在不失一般性的情况下可为1)。
根据一个示例性配置,提供了一种验证存储器的受保护区域中的存储器区组的完整性的方法,该方法包括:将根据从存储器的受保护区域中检索的数据块确定的散列值存储在散列值高速缓存中;当从存储器中检索第一数据块和与连续地包括第一数据块和第二数据块的存储器区组相关联的认证码发生时,计算存储器区组的验证认证码,其中第一数据块的完整性取决于与认证码匹配的验证认证码,其中计算验证认证码包括基于根据第一数据块确定的第一散列值和根据第二数据块确定的第二散列值的加密计算;以及当需要计算验证认证码时,在散列值高速缓存中查找第二散列值。
现在将参考附图描述具体实施方案。
图1示出了根据一些实施方案的数据处理系统100。该系统包括处理器内核102和两个另外的主设备104、106。这些设备中的每个设备对存储在存储器110中的数据进行访问,它们经由系统总线108访问这些数据。对存储器110的访问通常由存储器控制器114控制,但此外,对存储器的访问必须通过存储器保护装置112。存储在存储器110中的至少一些数据项具有相关联的认证码,使得可参考其相关联的认证码来验证给定数据项的完整性。存储器保护装置113被布置成计算和验证认证码。
图2示意性地示出了示例性数据处理系统150,该示例性数据处理系统包括集成电路或片上系统152,其包括用于执行程序指令以进行数据处理操作的至少一个处理器内核154。虽然图2仅示出了一个处理器内核,但在一些情况下,片上系统152可包括多个处理器。每个处理器内核或处理器内核集群可以具有高速缓存156(或多级高速缓存156、158)。存储器控制器160充当用于控制对片外存储器180的访问的存储器访问电路,该片外存储器在来自片上系统152的单独集成电路上。虽然攻击者可能难以篡改对芯片上数据的访问,但超出芯片边缘边界的数据可能易受攻击。这可例如涉及物理信道170上的数据拦截,存储器控制器160经由该物理信道与片外存储器180通信,或者其可通过在数据被存储在片外存储器180中时读取或修改数据来实现。虽然以上示例是根据信任边界对应于片上系统的边缘来描述的,但在其他情况下,在片上系统本身内可能存在信任边界,其中超出信任边界的数据可能暴露于潜在攻击。
片上系统152还包括存储器保护单元162,其被提供用于保护存储到片外存储器180的受保护存储器区域182的数据。由于片外存储器180超出了信任边界,因此这种保护是必要的,因为具有对系统的物理访问的恶意代理可观察和/或重放正在处理器内核154与片外存储器180之间交换的数据值。受保护存储器区域182包括要保护的数据184,以及用于验证数据184的完整性的认证码186。在片外存储器180中还提供了不受保护的存储器区域188,并且存储在该不受保护区域中的数据不受存储器安全保护单元162的保护,并且因此可由攻击者访问和修改。在一些具体实施中,地址到受保护和不受保护存储器区域182、188的映射可由硬件固定,使得由处理器内核154执行的操作系统或其他软件不能改变哪些地址被映射到受保护存储器区域182和不受保护存储器区域188。另选地,如果控制地址映射的操作系统可被信任,则控制哪些地址被映射到受保护区域和不受保护区域的地址映射可由处理器在软件的控制下改变,使得受保护和不受保护区域不需要总是被映射到片外存储器180中的相同物理位置。在一些具体实施中,可不在片外存储器180中提供不受保护的存储器区域188,并且在这种情况下,可将整个片外存储器视为受保护的存储器区域182。
存储器保护单元162包括加密/解密电路164,用于加密被写入片外存储器180的数据和解密从片外存储器读取的加密数据。加密和解密所用的加密密钥可存储在片上系统152上的片上存储器(例如SRAM)166内或存储在存储器保护单元162本身内。可以使用任何已知的技术来进行加密和解密并且可以使用任何已知的用于保护加密密钥的方法。存储器保护单元162还包括计算数据项的散列值的散列值计算电路168。散列值计算电路168和加密单元164一起计算与存储在受保护存储器182中的数据项相关联的上述认证码。下文更详细地描述认证码的计算。
图3A示意性地示出了可寻址存储器的两个区段。在第一区段(物理上位于受保护存储器182的数据部分184中)中,示出了十六个连续的存储器地址200,每个存储器地址包括用于64位数据项的存储装置,并且其中八个64位数据项一起形成第一512位数据块,并且八个64位数据项一起形成第二512位数据块。两个数据块一起形成1024位存储器区组。在第二区段(物理上位于受保护存储器182的认证码部分186中)中,示出了对应于所示1024位存储器区组的64位认证码(MAC)202。这里给出的这些特定数据项、数据块、存储器区组和认证码大小仅出于说明的目的,并且可在不同的具体实施中任意改变。
图3B示意性地示出了基于应用于两个数据块的散列函数的认证码的生成。应当指出的是,在一些具体实施中,可基于两个以上的数据块来生成每个认证码,然而为了清晰起见,这里采用具有保护两个数据块的认证码的示例。本技术的基本原理首先阐述如下:
·假设L、L’为两个512位数据块,其中L’为128字节对齐的存储器区组;
ο则L=b0║b1║…║b7,其中bi是八个64位数据项,并且
ο则L’=b’0║b’1║…║b’7,其中b’i是八个64位数据项。
·然后可使用多线性散列来根据这些中的每一者计算散列,如下所示:
οH=α0·b0+α1·b1+…+α7·b7
οH’=α0·b’0+α1·b’1+…+α7·b’7
·最后,然后可将L║L’的认证码(MAC)计算为H和H’的线性组合,然后对其进行加密:
οMAC(L,L’)=加密(H+γ·H’)
由此计算的认证码可进一步被截断,但加密计算也可被限制为在可用于表示第一散列值和第二散列值的位空间(例如64位空间)内组合H和H’。在另一个示例中,散列值的线性组合可对以下两者采用常数因子:
οMAC(L,L’)=加密(δ·H+γ·H’)
因子δ和γ中的任一者或两者可以是密钥值,其可相同或可不同。因此,在图3B所示的示例性实施方案中,第一数据块210和第二数据块212向散列函数214、216提供相应的输入。这些散列函数实际上彼此相同,在该具体实施中被并行化。由此生成的相应的第一散列值和第二散列值中的一者或两者然后可被高速缓存在散列值高速缓存218中,同时两者形成到认证码函数电路220的输入,该认证码函数电路如上文所阐述的那样计算认证值(MAC)。这样一来,可如上所述采用第一常数222和/或第二常数224(因子δ和γ),它们中的一者或两者可以是密钥值。需注意,在一些具体实施中,认证码存储装置186在受保护存储器中被加密,并且这具有以下结果:认证码(散列H和H’的组合)的确定可仅仅是类型δ·H+γ·H’的操作,即无需对其加密。
图4A示意性地示出了形成诸如图2所示的片上系统152的装置的一部分的部件。数据高速缓存158、存储器控制器160、存储器保护单元162和散列值高速缓存170如上文结合图2所描述的那样被配置和操作,并且为了简洁起见,这里不再重复描述。因为两个散列值组合以形成认证码的方式,所以散列值高速缓存170在本文中也被称为“部分散列高速缓存”。图4A另外示出了高速缓存协调电路250,其被提供来协调对数据高速缓存158和散列值高速缓存170的控制。具体地,高速缓存协调电路250和与数据高速缓存158相关联的高速缓存控制电路252交互,并且和与散列值高速缓存170相关联的高速缓存控制电路254交互。因此,该高速缓存协调电路250使得能够在考虑其他高速缓存的当前状态和内容的情况下来管理关于每个高速缓存158、170的内容的策略。仅举一个示例,高速缓存协调电路可强加数据高速缓存158与散列值高速缓存170互斥的策略,在这个意义上,要么高速缓存行在数据高速缓存158中,要么其部分散列在部分散列高速缓存中(但不是两者)。这可能是有利的,因为计算例如多线性散列是非常有效的,并且该方法可进一步减小对高速缓存的压力,但可能有一些轻微的额外延迟和功耗。
图4B示意性地示出了高速缓存(其可表示数据高速缓存或散列值高速缓存)中的条目的一些细节,其中每个高速缓存行260不仅保存数据(例如,在512位高速缓存行的示例中的一组八个64位数据项),而且还具有与高速缓存行相关联的另外的元数据,其在图4B的示例中是有效位264、脏位266和优先级值268。这些元数据项由高速缓存控制电路252、254使用,由高速缓存协调电路250协调,以便确定在每个高速缓存中保持什么内容(以及相反地选择哪个高速缓存行用于逐出)。
图5是示出在一些实施方案中根据其验证数据块L的完整性的一系列步骤的流程图。该流程在步骤300处开始,其中从存储器中检索数据块L和其相关联的认证码。然后在302处,确定从与L配对(即它们一起形成存储器区组)的数据块L’导出的散列值H’是否存在于散列值高速缓存中。如果该高速缓存查找导致命中(即,在散列值高速缓存中存在H’),则流程前进至步骤304,其中从数据块L导出散列值H。然后在步骤306处,根据部分散列H和H’来计算验证认证码。返回到步骤302的考虑,如果H’不存在于散列值高速缓存中,则流程前进至步骤308,其中确定L’是否存在于数据高速缓存中。如果此查找缺失,则流程经由310继续,在此处从存储器中检索L’。然后,在步骤312处,从数据块L’导出散列值H’,并且流程在步骤304处重新加入。在步骤314处,确定认证码是否匹配,即在步骤300处从存储器中检索的与数据块L相关联的认证码是否与在步骤306处计算的验证认证码相同。如果它们匹配,则流程前进至步骤316并且验证L的完整性。如果它们不匹配,则流程前进至步骤318,并且不验证L的完整性,即看起来数据块L和其认证码(或数据块L’,如果采取经由步骤310的路径)中的一者或两者已经被篡改。
图6是示出在一些实施方案中响应于数据高速缓存缺失而采取的一系列步骤的流程图。对步骤流程的考虑最有用地在步骤350处开始,其中确定是否发生了数据高速缓存缺失。流程在此处自行循环,直到出现这种情况。因此,在数据高速缓存缺失的情况下,流程前进至步骤352,其中触发对缺失高速缓存行的检索。然后,在步骤354处(在进行数据高速缓存行检索的同时),确定在散列值高速缓存中是否存在对应的散列值(例如,在高速缓存行L的上述示例中的散列值H)。如果是,则采取步骤使保存此散列值H的高速缓存行成为逐出候选对象,即,当下一次需要分配到散列值高速缓存中时,保存H的高速缓存行将是(或至少更可能是)被逐出的高速缓存行。数据高速缓存和散列值高速缓存的控制的这种协调可例如由诸如图4A所示的高速缓存协调电路250的设备来实现,并且给定高速缓存行的逐出可能性可受到与该高速缓存行相关联的元数据的修改的影响,例如,诸如图4B所示的优先级值268。优先级值268可以例如是2位值,使得可定义4个优先级的范围。
图7是示出在一些实施方案中当发生散列值高速缓存缺失时所采取的一系列步骤的流程图。对步骤流程的考虑最有用地在步骤400处开始,其中确定是否发生了散列高速缓存缺失。流程在此处自行循环,直到出现这种情况。因此,在散列高速缓存缺失的情况下,流程前进至步骤402,其中确定对应的数据高速缓存行(例如,上述散列值H的示例中的高速缓存行L)是否存在于散列值高速缓存中。如果是,则流程前进至步骤404,并且根据数据高速缓存行L计算所需的散列值H。然而,如果对对应的数据高速缓存行的查找也缺失,则流程前进至步骤406,其中从存储器中检索数据高速缓存行L。一旦已经检索到数据高速缓存行L,则在步骤404处,可根据其计算散列值H。如在图6的情况下,数据高速缓存和散列值高速缓存的控制的协调可例如由诸如图4A所示的高速缓存协调电路250的设备来实现。
图8A、图8B和图8C示意性地示出了各种方式,其中高速缓存协调电路可影响由数据高速缓存和散列值高速缓存中的一者或两者保存的内容。图8A示意性地示出了在一些实施方案中高速缓存协调电路基于散列值高速缓存中的查找来影响数据高速缓存中逐出候选对象的选择的方式。出于说明的目的,这里使用图4A的示例的数据高速缓存158、高速缓存协调电路250和散列值高速缓存170。高速缓存控制电路250从数据高速缓存158接收与数据高速缓存行逐出候选对象相关的信息。例如,该信息可包括元数据264、266、268中的一些或全部。另外,该信息可包括其他信息,诸如由高速缓存控制电路252作为其管理数据高速缓存158的一部分而确定的一个或多个预期牺牲高速缓存行的指示。高速缓存协调电路250可确定给定散列值当前是否存在于散列值高速缓存170中(通过非侵入性检查或通过触发查找,该查找将导致响应于缺失而将散列值带入散列值高速缓存中)。根据散列值高速缓存170的当前内容,高速缓存协调电路250可向数据高速缓存158(即,向其控制电路252)指示基于高速缓存协调电路对散列值高速缓存的内容的了解而选择的所选逐出候选对象。高速缓存协调电路250可通过在数据高速缓存控制电路252的控制下引起与数据高速缓存行相关联的相关元数据(诸如优先级值268)的修改来影响给定数据高速缓存行的逐出可能性。
图8B示意性地示出了在一些实施方案中高速缓存协调电路可基于与数据高速缓存中的牺牲高速缓存行相关的信息来影响散列值高速缓存中散列值的存储的方式。出于说明的目的,这里再次使用图4A的示例的数据高速缓存158、高速缓存协调电路250和散列值高速缓存170。当分配发生时,高速缓存控制电路250接收指示所选高速缓存行的信息,该所选高速缓存行是(或将是)牺牲高速缓存行。高速缓存协调电路250可基于数据高速缓存行L是牺牲高速缓存行的指示,导致在散列值高速缓存中查找/分配相关的散列值行H(或H’)。
图9示意性地示出了在一些实施方案中高速缓存协调电路可基于来自散列值高速缓存和数据高速缓存的使用和/或修改(干净/脏)信息来影响或控制数据高速缓存和散列值高速缓存中的牺牲选择的方式。同样,出于说明的目的,这里使用图4A的示例的数据高速缓存158、高速缓存协调电路250和散列值高速缓存170。高速缓存控制电路250从数据高速缓存158和散列值高速缓存170中的每一者接收元数据,其在图9的示例中包括使用位450、452和干净/脏位454、456。使用位450、452指示对应的高速缓存行的使用是否已经被读取、写入或两者。干净/脏位454、456指示对应的高速缓存行自从其从存储器中检索以来是否未被修改或是否已被修改(并且因此在被逐出时将必须被写回到存储器)。高速缓存协调电路250将该信息集合在一起,以便为数据高速缓存158和散列值高速缓存170生成牺牲选择指示。例如,通过引起与给定高速缓存行相关联的优先级值268的修改,高速缓存协调电路可使该高速缓存行成为更可能的候选牺牲行。
因此,可操作用于数据高速缓存158和散列值高速缓存170的宽范围的协调高速缓存策略。下文给出一些示例性策略:
填充数据高速缓存:
·当线L从片外存储器被带入数据高速缓存时,H和H’两者需要作为完整性检查的一部分被检查。此时缓存H’允许在稍后的某个时间点对修改的(“脏的”)L进行快速逐出。
写入高速缓存
·当高速缓存填充满容量时(更确切地说,在概念上达到“满”状态之前的点处),选择候选牺牲L(或多个牺牲)并且可使散列高速缓存预先填充有其成对行L’的散列值H’,使得牺牲行L可更快地写回到存储器。
·如果数据高速缓存行L的伙伴散列值H’已经存在于散列值高速缓存中,则可优先选择该数据高速缓存行L作为逐出候选对象,因为L可比不是这种情况的另一数据高速缓存行更方便地被逐出。根据具体实施,可在该方法和遵循基本原理的“标准”替换策略(其将需要提取L’以便计算其散列值)之间进行选择。
·在以下情况下,可选择在散列值高速缓存中优先保存更新的散列值H:
ο该相关联的行L’可能在不久的将来被写入;或者
ο当在不久的将来行L可能被再次写入时。
高速缓存一致性
·当没有实现独占存储策略时(即,数据值L和其对应的散列值H可同时各自保持在它们相应的高速缓存中),H的状态可以保持一致(即,当L被更新时H也被更新)。
协调的高速缓存替换策略可例如:
·当可能读取L’时,优先保持L和H(干净)。·当L可能被写入时,或当L’可能被读取时,优先保持L和H(脏)。
·当L可能被写入时,或当L’可能被读取时,优先保持L和H’。
可根据具体实施来平衡其他折衷,例如一方面在数据高速缓存中没有L的情况下将H和H’保持在散列值高速缓存中允许到L的快速存储并减少L行填充的带宽,而另一方面数据值高速缓存中没有L指示L最近未被使用(假设某种形式的基于最近最少使用的基本替换策略)。
简而言之,本发明公开了用于保护存储在存储器的受保护区域中的数据的完整性的装置和方法。在数据块中检索存储器的该受保护区域中的数据,并且将认证码与连续地包括第一数据块和第二数据块的存储器区组相关联。该认证码的计算包括基于根据该第一数据块确定的第一散列值和根据该第二数据块确定的第二散列值的加密计算。提供散列值高速缓存以存储根据从该存储器的该受保护区域中检索的数据块确定的散列值。当从存储器中检索该第一数据块和其相关联的认证码时,执行对该散列值高速缓存中的该第二散列值的查找,并且为该数据块所属的该存储器区组计算验证认证码。该第一数据块的完整性取决于与检索到的认证码匹配的验证认证码。
在本申请中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。
虽然本文已参考附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围的前提下,本领域的技术人员可在其中实现各种变化、添加和修改。例如,在不脱离本发明的范围的情况下,从属权利要求的特征可与独立权利要求的特征一起进行各种组合。
Claims (20)
1.一种装置,包括:
存储器保护电路,所述存储器保护电路用于验证存储器的受保护区域中的存储器区组的完整性;和
散列值高速缓存,所述散列值高速缓存用于存储根据从所述存储器的所述受保护区域中检索的数据块确定的散列值,其中:
当从所述存储器中检索第一数据块和与连续地包括所述第一数据块和第二数据块的存储器区组相关联的认证码发生时,所述存储器保护电路响应于所述检索来计算所述存储器区组的验证认证码,其中所述第一数据块的完整性取决于与所述认证码匹配的所述验证认证码,
其中所述验证认证码的计算包括基于根据所述第一数据块确定的第一散列值和根据所述第二数据块确定的第二散列值的加密计算,并且所述存储器保护电路被布置成当需要计算所述验证认证码时,在所述散列值高速缓存中查找所述第二散列值。
2.根据权利要求1所述的装置,其中所述加密计算包括在由一组所有可能值定义的有限域中的所述第一散列值和所述第二散列值的线性组合,所述一组所有可能值能够由所述装置针对所述第一散列值和所述第二散列值中的每一者来表示。
3.根据权利要求2所述的装置,其中所述线性组合包括将所述第一散列值和所述第二散列值中的至少一者乘以常数。
4.根据权利要求2所述的装置,其中所述线性组合包括将所述第一散列值乘以第一常数并且将所述第二散列值乘以第二常数。
5.根据权利要求3所述的装置,其中所述常数是密钥值。
6.根据权利要求4所述的装置,其中所述第一常数是第一密钥值,并且所述第二常数是第二密钥值。
7.根据权利要求1至6中任一项所述的装置,还包括数据块高速缓存,所述数据块高速缓存用于存储从所述存储器中检索的数据块的副本,并且其中数据块的所述副本是所述数据块高速缓存的高速缓存行。
8.根据权利要求7所述的装置,还包括高速缓存内容协调控制电路,所述高速缓存内容协调控制电路用于控制所述数据块高速缓存和所述散列值高速缓存中的存储,其中所述数据块高速缓存中的存储取决于所述散列值高速缓存的内容,并且其中所述散列值高速缓存中的存储取决于所述数据块高速缓存的内容。
9.根据权利要求8所述的装置,其中所述高速缓存内容协调控制电路被布置成对所述数据块高速缓存和所述散列值高速缓存强加独占存储策略,使得对于数据块和相关联的散列值,所述数据块被独占地存储在所述数据块高速缓存中,或者所述相关联的散列值被独占地存储在所述散列值高速缓存中。
10.根据权利要求8或权利要求9所述的装置,其中所述高速缓存内容协调控制电路被布置成管理所述数据块高速缓存的牺牲选择策略,其中:
当对于与牺牲数据块连续形成存储器区组的另一数据块,根据所述另一数据块确定的散列值当前被存储在所述散列值高速缓存中时,所述牺牲数据块的选择可能性增加。
11.根据权利要求8至10中任一项所述的装置,其中所述高速缓存内容协调控制电路被布置成管理所述数据块高速缓存的牺牲选择策略,其中:
在需要从所述数据块高速缓存中逐出之前,选择牺牲数据块;并且
对于与所述牺牲数据块连续形成存储器区组的另一数据块,致使根据所述另一数据块确定的散列值存储在所述散列值高速缓存中。
12.根据权利要求8至11中任一项所述的装置,还包括数据块使用存储装置,所述数据块使用存储装置用于存储所述数据块的使用指示,并且其中所述高速缓存内容协调控制电路被布置成管理所述数据块高速缓存的牺牲选择策略,其中:
当对于与所述牺牲数据块连续形成存储器区组的另一数据块,所述使用指示显示所述另一数据块的使用高于预定阈值时,所述牺牲数据块的选择可能性降低。
13.根据权利要求8至12中任一项所述的装置,还包括数据块使用存储装置,所述数据块使用存储装置用于存储所述数据块的使用指示,并且其中所述高速缓存内容协调控制电路被布置成管理所述散列值高速缓存的牺牲选择策略,其中:
当对于与根据其确定所述牺牲散列值的数据块连续形成存储器区组的另一数据块,所述使用指示显示所述另一数据块的使用高于预定阈值时,所述牺牲散列值的选择可能性降低。
14.根据权利要求13所述的装置,其中所述牺牲散列值是干净的,并且所述另一数据块的所述使用是读取所述另一数据块。
15.根据权利要求8至14中任一项所述的装置,还包括数据块使用存储装置,所述数据块使用存储装置用于存储所述数据块的使用指示,并且其中所述高速缓存内容协调控制电路被布置成管理所述散列值高速缓存的牺牲选择策略,其中:
当所述牺牲散列值是脏的并且所述使用指示显示所述数据块的使用高于预定阈值并且所述数据块的所述使用正在写入所述数据块时,所述牺牲散列值的选择可能性降低。
16.根据权利要求8至15中任一项所述的装置,其中所述高速缓存内容协调控制电路响应于对所述数据块高速缓存中的数据块的读访问来触发对所述散列值高速缓存中的对应散列值的查找。
17.根据权利要求8至16中任一项所述的装置,其中所述高速缓存内容协调控制电路响应于对所述数据块高速缓存中的数据块的写访问来触发在所述散列值高速缓存中查找根据与所述数据块连续形成存储器区组的另一数据块确定的另一散列值。
18.根据权利要求16所述的装置,其中当对所述对应散列值的所述查找导致所述散列值高速缓存中的缺失时,将所述散列值分配到所述散列值高速缓存中受到抑制。
19.根据权利要求1至18中任一项所述的装置,还包括散列值的加密存储装置,其中所述加密计算是根据所述第一数据块确定的加密的第一散列值与根据所述第二数据块确定的加密的第二散列值的线性组合,其中从散列值的所述加密存储装置中检索所述加密的第一散列值和所述加密的第二散列值。
20.一种验证存储器的受保护区域中的存储器区组的完整性的方法,包括:
将根据从所述存储器的所述受保护区域中检索的数据块确定的散列值存储在散列值高速缓存中;
当从所述存储器中检索第一数据块和与连续地包括所述第一数据块和第二数据块的存储器区组相关联的认证码发生时,计算所述存储器区组的验证认证码,其中所述第一数据块的完整性取决于与所述认证码匹配的所述验证认证码,
其中计算所述验证认证码包括基于根据所述第一数据块确定的第一散列值和根据所述第二数据块确定的第二散列值的加密计算;以及
当需要计算所述验证认证码时,在所述散列值高速缓存中查找所述第二散列值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/925,723 US20220014379A1 (en) | 2020-07-10 | 2020-07-10 | Memory protection using cached partial hash values |
US16/925,723 | 2020-07-10 | ||
PCT/GB2021/051733 WO2022008913A1 (en) | 2020-07-10 | 2021-07-07 | Memory protection using cached partial hash values |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115777101A true CN115777101A (zh) | 2023-03-10 |
Family
ID=77051063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180047677.9A Pending CN115777101A (zh) | 2020-07-10 | 2021-07-07 | 使用高速缓存的部分散列值的存储器保护 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220014379A1 (zh) |
KR (1) | KR20230036129A (zh) |
CN (1) | CN115777101A (zh) |
GB (1) | GB2611196A (zh) |
WO (1) | WO2022008913A1 (zh) |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067068A (en) * | 1996-04-16 | 2000-05-23 | Canon Business Machines, Inc. | Scrollable display window |
US6629198B2 (en) * | 2000-12-08 | 2003-09-30 | Sun Microsystems, Inc. | Data storage system and method employing a write-ahead hash log |
US8065277B1 (en) * | 2003-01-17 | 2011-11-22 | Daniel John Gardner | System and method for a data extraction and backup database |
US7394809B2 (en) * | 2003-03-31 | 2008-07-01 | Intel Corporation | Method and apparatus for packet classification using a forest of hash tables data structure |
US7076622B2 (en) * | 2003-09-30 | 2006-07-11 | International Business Machines Corporation | System and method for detecting and sharing common blocks in an object storage system |
WO2006008847A1 (ja) * | 2004-07-20 | 2006-01-26 | Fujitsu Limited | 電子文書管理システム |
JP4576936B2 (ja) * | 2004-09-02 | 2010-11-10 | ソニー株式会社 | 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム |
WO2006065050A1 (en) * | 2004-12-13 | 2006-06-22 | Lg Electronics Inc. | Method for securing content on a recording medium and a recording medium storing content secured by the method |
US8184811B1 (en) * | 2005-10-12 | 2012-05-22 | Sprint Spectrum L.P. | Mobile telephony content protection |
US8826023B1 (en) * | 2006-06-30 | 2014-09-02 | Symantec Operating Corporation | System and method for securing access to hash-based storage systems |
EP2102750B1 (en) * | 2006-12-04 | 2014-11-05 | Commvault Systems, Inc. | System and method for creating copies of data, such as archive copies |
US8095803B1 (en) * | 2007-03-09 | 2012-01-10 | Hewlett-Packard Development Company, L.P. | Protecting the privacy of files referenced by their hash |
US8621240B1 (en) * | 2007-12-31 | 2013-12-31 | Emc Corporation | User-specific hash authentication |
US8825971B1 (en) * | 2007-12-31 | 2014-09-02 | Emc Corporation | Age-out selection in hash caches |
US20100153732A1 (en) * | 2008-12-15 | 2010-06-17 | Stmicroelectronics Rousset Sas | cache-based method of hash-tree management for protecting data integrity |
US8112585B2 (en) * | 2009-04-30 | 2012-02-07 | Netapp, Inc. | Method and apparatus for dynamically switching cache policies |
US8719580B2 (en) * | 2009-06-26 | 2014-05-06 | Trusted Logic | Data verification method |
US8738668B2 (en) * | 2009-12-16 | 2014-05-27 | Renew Data Corp. | System and method for creating a de-duplicated data set |
US8261085B1 (en) * | 2011-06-22 | 2012-09-04 | Media Patents, S.L. | Methods, apparatus and systems to improve security in computer systems |
US20140304464A1 (en) * | 2013-04-03 | 2014-10-09 | Lsi Corporation | Methods and systems for performing deduplication in a data storage system |
US9891857B2 (en) * | 2013-07-15 | 2018-02-13 | International Business Machines Corporation | Utilizing global digests caching in similarity based data deduplication |
US9892048B2 (en) * | 2013-07-15 | 2018-02-13 | International Business Machines Corporation | Tuning global digests caching in a data deduplication system |
US20160292168A1 (en) * | 2013-12-06 | 2016-10-06 | Hewlett-Packard Development Company, L.P. | File retention |
US10728035B1 (en) * | 2013-12-31 | 2020-07-28 | EMC IP Holding Company LLC | Using double hashing schema to reduce short hash handle collisions and improve memory allocation in content-addressable storage systems |
ES2647115T3 (es) * | 2014-06-12 | 2017-12-19 | Nagravision S.A. | Sistema y método para la carga de datos segura en una memoria caché |
US9824236B2 (en) * | 2015-05-19 | 2017-11-21 | Accenture Global Services Limited | System for anonymizing and aggregating protected information |
US9612967B1 (en) * | 2015-09-25 | 2017-04-04 | Dell Products, L.P. | Cache load balancing by reclaimable block migration |
US10222987B2 (en) * | 2016-02-11 | 2019-03-05 | Dell Products L.P. | Data deduplication with augmented cuckoo filters |
US20180196609A1 (en) * | 2017-01-12 | 2018-07-12 | Qualcomm Incorporated | Data Deduplication Using Multi-Chunk Predictive Encoding |
US11403019B2 (en) * | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
CN110019052A (zh) * | 2017-07-26 | 2019-07-16 | 先智云端数据股份有限公司 | 分布式重复数据删除的方法及储存系统 |
US10613869B2 (en) * | 2018-03-29 | 2020-04-07 | Arm Limited | Branch target address provision |
US11514001B2 (en) * | 2018-04-17 | 2022-11-29 | EMC IP Holding Company LLC | Concurrent computations operating on same data for CPU cache efficiency |
CN109885576B (zh) * | 2019-03-06 | 2020-12-01 | 珠海金山网络游戏科技有限公司 | 一种哈希表创建方法及系统、计算设备及存储介质 |
US10990310B2 (en) * | 2019-04-24 | 2021-04-27 | EMC IP Holding Company LLC | Sub-block data deduplication |
US10951697B2 (en) * | 2019-06-07 | 2021-03-16 | Holo Limited | Holochain—A framework for distributed applications |
US11573928B2 (en) * | 2020-03-13 | 2023-02-07 | EMC IP Holding Company LLC | Techniques for data deduplication |
-
2020
- 2020-07-10 US US16/925,723 patent/US20220014379A1/en active Pending
-
2021
- 2021-07-07 CN CN202180047677.9A patent/CN115777101A/zh active Pending
- 2021-07-07 GB GB2217275.3A patent/GB2611196A/en active Pending
- 2021-07-07 KR KR1020237004383A patent/KR20230036129A/ko unknown
- 2021-07-07 WO PCT/GB2021/051733 patent/WO2022008913A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220014379A1 (en) | 2022-01-13 |
WO2022008913A1 (en) | 2022-01-13 |
KR20230036129A (ko) | 2023-03-14 |
GB2611196A (en) | 2023-03-29 |
GB202217275D0 (en) | 2023-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558377B2 (en) | Deduplication-based data security | |
CN110945509B (zh) | 用于控制对受保护存储器区域中数据的访问的设备和方法 | |
US10733313B2 (en) | Counter integrity tree for memory security | |
US11295025B2 (en) | Probabilistic memory safety using cryptography | |
KR102117838B1 (ko) | 캐시 메모리의 보안-관련 데이터를 보호하기 위한 방법 | |
US11775177B2 (en) | Integrity tree for memory integrity checking | |
US7761662B2 (en) | Cache memory device and microprocessor | |
US11281434B2 (en) | Apparatus and method for maintaining a counter value | |
CN115777101A (zh) | 使用高速缓存的部分散列值的存储器保护 | |
US20240080193A1 (en) | Counter integrity tree | |
US20230113906A1 (en) | An apparatus and method of controlling access to data stored in a non-trusted memory |
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 |