CN107408081A - 提供对存储器的加强重放保护 - Google Patents
提供对存储器的加强重放保护 Download PDFInfo
- Publication number
- CN107408081A CN107408081A CN201680012383.1A CN201680012383A CN107408081A CN 107408081 A CN107408081 A CN 107408081A CN 201680012383 A CN201680012383 A CN 201680012383A CN 107408081 A CN107408081 A CN 107408081A
- Authority
- CN
- China
- Prior art keywords
- mac
- memory
- key
- block
- value
- 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.)
- Granted
Links
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/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/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
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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
- 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
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/402—Encrypted data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
在实施例中,一种处理器包括:至少一个用于执行指令的核;耦合至所述至少一个核以存储数据的高速缓存存储器;以及耦合至所述至少一个核的跟踪器高速缓存存储器。所述跟踪器高速缓存存储器包括用于存储完整性值的条目,所述完整性值与有待写入到耦合至所述处理器的存储器中的数据块相关联。描述并要求保护了其他实施例。
Description
技术领域
实施例涉及对存储器的保护。
背景技术
对计算系统的基于存储器的攻击越来越令人担忧。由于缺乏保密性、完整性、以及回滚保护,广泛范围的攻击可能盗取有价值的数据(具体地当被存储于存储器中时)并获得对系统的控制。现有的方案要么提供部分保护以努力降低性能开销,要么提供更稳健的保护但具有高性能和高存储开销,这使得此类技术不适合广泛采用。
附图说明
图1是根据实施例的处理器的框图。
图2是根据本发明的实施例的一种用于处置写入操作的方法的流程图。
图3是根据本发明的实施例的一种用于处置读取操作的方法的流程图。
图4是根据本发明一个实施例的一种密钥更新方法的流程图。
图5是根据本发明另一实施例的一种密钥更新方法的流程图。
图6是根据本发明的实施例的MAC存储装置的框图。
图7是根据本发明的实施例的方法的流程图。
图8是根据本发明的实施例的系统的一部分的框图。
图9是根据本发明的另一实施例的一种用于执行密钥更新操作的方法的流程图。
图10是根据实施例的一种基于计数器的防回滚的展示。
图11是根据另一实施例的基于MAC的读取操作和写入操作的流程图。
图12是根据本发明的另一实施例的一种用于执行对MAC行的密钥更新或刷新的方法的流程图。
图13是可以与实施例一起使用的示例系统的框图。
图14是可以与实施例一起使用的示例系统的框图。
图15是根据本发明的实施例的系统的框图。
具体实施方式
实施例可以用来从根本上保护和防止任何粒度级别的重放攻击。换言之,提供了真实的重放保护,因为一旦利用数据对给定存储器位置进行更新或利用与当前密钥相关联的完整性值对所述给定存储器位置加以保护,重放不能使用旧值进行工作。
应理解的是,虽然在此所描述的实施例提供对系统存储器的保护,实施例同样地适用于保护充当信任边界的受保护处理器封装体外部的任何存储器或存储装置中的信息存储。这样,实施例同样地适用于闪存、磁盘驱动、远程存储装置(比如通过网络可访问的远程存储装置)、以及其他的处理器外部存储器和存储设备中的信息存储。
现在参照图1,示出了根据实施例的处理器的框图。如图1中所示,处理器100被实现为多核处理器并且可以采用片上系统(SoC)或其他多核处理器的形式。作为示例,实施例可以用于众核处理器中,所述众核处理器适用于并入各种计算系统,范围从便携式设备(比如智能电话、平板计算机等)到客户端计算机系统和服务器计算机系统。
如所展示的,处理器100包括多个核110a至110n。在不同实施例中,核110可以是同构核的集合或异构核的混合。在一些情况下,核110可以被实现为有序的、乱序的或此类核的组合。另外,存在图形处理单元(GPU)120。在一些情况下,提供了单个图形处理器以便使用与核110不同的流水线架构来执行专门的图形处理。当然,应理解的是,在一些情况下,可以提供多个GPU,而在其他情况下,处理器可以不包括专用的GPU。
共享高速缓存130耦合至各处理核。在实施例中,共享高速缓存130可以是各核与图形处理器之间共享的末级高速缓存(LLC)。进一步应理解的是,核自身内可以存在高速缓存层次结构的附加层次,比如所述核或图形处理器内部的私有第一层次和第二层次高速缓存。当然,在其他实施例中,可以存在其他高速缓存架构。
出于执行如在此所述的总存储器保护的目的,存在总存储器保护(TMP)模块140。应理解的是,TMP模块140可以被实现为硬件、软件和/或固件的适当组合。在不同的处理器实施方式中,TMP模块140的电路系统可以采用独立的方式实现从而充当共享的高速缓存130与耦合至处理器100的给定存储器(比如动态随机存取存储器(DRAM)或其他这种系统存储器)之间的接口。在其他情况下,TMP模块140可以在处理器100的集成存储器控制器内实现,所述集成存储器控制器进行动作以提供用于相关联的存储器的接口和控制。在又其他情况下,TMP模块140可以在存储器执行引擎(MEE)内实现,所述存储器执行引擎可以是处理器100的可信部分(比如安全协处理器、可管理性引擎等内被配置成在可信执行环境内运行的电路系统)的一部分。当然,TMP模块140及其组成部分的其他实施方式是可能的。
进一步参照图1,TMP模块140本身是用各种单独的电路或部件实现的。如在此进一步描述的,模块140可以包括配置有合适的硬件、软件和/或固件的各种不同逻辑单元。如所展示的,加密/解密逻辑142可以被配置用于出于TMP目的执行加密和解密操作。另外,完整性验证逻辑144可以被配置用于执行如在此所述的完整性验证功能。更确切地,完整性验证逻辑144可以针对有待发送至存储器的数据的给定部分生成完整性值。在一个实施例中,完整性验证逻辑144可以被配置用于针对数据的每个相应部分生成MAC。另外,当数据被从存储器返回时,完整性验证逻辑144可以对相应的完整性值进行检查(例如,通过与基于所返回的数据而生成的验证完整性验证加以比较)以验证数据尚未受损。重放保护逻辑146可以被配置用于通过密钥更新或其他重新认证操作提供重放保护,在实施例中,可以根据预定计划或在预定的时间段之后执行所述密钥更新或其他重新认证操作。仍进一步,仲裁逻辑148可以被配置用于在各不同存储器操作(包括读取操作和写入操作、以及密钥更新操作,比如按照在此所描述而执行的)之间执行仲裁操作。
如在图1中进一步示出的,TMP模块140可以包括各种存储装置。TMP模块140中具体示出了密钥存储装置143和TMP高速缓存存储器145。密钥存储装置143可以被配置用于存储用来生成MAC的密钥。在执行密钥更新以提供回滚保护的实施例中,密钥存储装置143可以包括至少两个条目,每个条目用于存储两个密钥之一,其中,第一密钥是用来对MAC进行加密的旧密钥并且第二密钥是用来在存储装置中的MAC经历密钥更新循环时执行密钥更新操作的新密钥。在一些情况下,在完成整个密钥更新循环时,可以将旧密钥删除并且可以将有待用于下一密钥更新循环的新密钥存储在第一条目中。如在图1中进一步示出的,TMP模块140包括TMP高速缓存存储器145。在实施例中,高速缓存存储器145可以被配置用于存储MAC,从而使得可以针对密钥更新操作避免片外访问等待时间。当然,可以将其他TMP关联性数据存储在TMP高速缓存存储器145中。
如图1中进一步展示的,处理器100可以包括其他部件比如功率控制单元150,所述功率控制单元在一个实施例中可以被实现为一个或多个微控制器从而执行功率管理操作,比如对每一个核110以及GPU 120的运行频率和/或电压的独立控制。另外,可以存在安全引擎160。在一些情况下,安全引擎160可以被实现为单独的协处理器从而执行安全操作。在一些情况下,TMP模块可以利用安全引擎160的某些能力,比如加密能力。也就是,在另一实施例中,与在TMP模块140内具有专用加密/解密逻辑142相反,可以改为在安全引擎160内执行加密/解密操作。应理解的是,尽管在图1的展示中以这种较高层次示出,但许多变体和替代方案是可能的。
现在参照图2,示出了根据本发明的实施例的一种用于处置写入操作的方法的流程图。在图2中所示的实施例中,方法200可以至少部分地由如在此所述的TMP模块执行。方法200开始于接收写入请求(框210)。在实施例中,可以响应于执行用于将具体数据量(例如,高速缓存行宽度量)写入存储器的写入指令而接收这种写入请求。控制接下来转至框220,在此框,可以对写入请求的数据进行加密。更确切地,这种加密可以根据数据依赖型加密模式执行,比如使用利用密文窃取的基于XEX的经微调密码本模式,所谓的XTS高级加密标准(XTS-AES)加密用于提供保密性。当然,应理解的是,在其他实施例中,可以使用不同类型的数据依赖型加密模式。更一般地,可以利用提供保密性时不招致存储开销的任何加密方案。此类技术的示例包括:电子密码本(ECB)、或其他AES模式,包括LRW、XEX、计数器模式等。
此后,在框230处,可以基于此经加密数据生成MAC。在各实施例中,可以使用不同MAC生成过程。在一个具体实施例中,可以针对有待写入存储器的数据的高速缓存行宽度生成56位的MAC值。此后,可以对此MAC值本身进行加密(框240)。更确切地,TMP模块可以存储当前加密密钥,所述当前加密密钥在实施例中可以采用128位密钥的形式。这个当前加密密钥可以用来对MAC进行加密。此后,在框250处,可以将经加密数据和经加密MAC都发送至存储器。在实施例中,可以在仲裁逻辑的控制下发送这些不同条信息,所述仲裁逻辑可以对这些存储器写入操作与其他存储器操作一起进行仲裁。应理解的是,尽管在图2的实施例中以这种较高层次示出,但许多变体和替代方案是可能的。
现在参照图3,示出了根据本发明的实施例的一种用于处置读取操作的方法的流程图。在图3中,方法300可以由TMP模块响应于读取请求(比如从存储器读取具体数据部分的读取指令)而执行。如所见的,方法300开始于接收读取请求(框310)。响应于此请求,控制转至框320,在此框,可以从存储器中获得经加密数据以及相应的经加密MAC。应理解的是,可以按照计划由仲裁逻辑执行此类操作,所述仲裁逻辑在这些操作与其他未决存储器操作之间进行仲裁。
此后,执行各操作以对所获得的信息进行处理。应理解的是,虽然为了易于展示而以线性流程示出,在许多实施例中,可以并行地执行这些操作中的各操作。确切地,在框320处,可以生成验证MAC。更确切地,可以基于经加密数据生成此验证MAC。在实施例中,与上文关于原始MAC生成所描述的相同操作可以用来生成此验证MAC。如在以上示例中,可以使用经加密数据和当前加密密钥生成例如56位MAC值。在框340处,可以根据数据依赖型加密模式对数据本身进行解密。根据以上讨论,在实施例中,可以执行XTS-AES解密。在框350处,可以同样借助当前密钥对所接收的经加密MAC本身进行解密。应理解的是,在一些情况下,可以并行地执行框330、340和350处的这些操作。
仍参照图3,控制接下来转至菱形360,在此菱形,判定经解密MAC值是否匹配验证MAC值。如果是,所获得的数据的完整性被证实,并且在框370处将数据发送至目的地或请求者(例如,核)。否则,报告完整性违例(框380),并因此不将数据提供给目的地。应理解的是,在一些情况下,为了减少解密时的等待时间,可以将数据发送至目的地,并且如果此后确定了完整性违例(在菱形360处),则可以在框380处生成完整性违例报告,并且可以向目的地发送故障信号从而防止早先发送的经解密数据受限于机器的状态。应理解的是,尽管在图3的实施例中以这种较高层次示出,但许多变体和替代方案是可能的。
为了提供回滚保护,可以周期性地对MAC值进行密钥更新,从而使得在早先时间记录的受损MAC值之后不能在不引起完整性违例的情况下被重放(至少在密钥更新时间窗之外)。在不同实施例中,可以进行不同的执行密钥更新的方式。在一些实施例中,用来生成原始MAC值的原始数据(以及MAC值本身)可以用来生成新的或经密钥更新的MAC值。在其他情况下,可以在不使用相关联数据的情况下生成经密钥更新的或新的MAC值,从而潜在地减小复杂度、带宽要求等。
在实施例中,当TMP模块空闲时,它开始利用新的密钥遍历MAC的范围,从而在所述过程中重新生成每个MAC。如果没有充足的空闲时间来动态地更新MAC,则可以激活基于紧迫性的机制从而调度MAC更新。在这种场景下,被调度用于借助新密钥进行更新的MAC集可以使得渐增紧迫性值被计算。进而,仲裁逻辑可以将MAC更新访问紧迫性值与其他存储器业务量紧迫性值进行比较,并且当其紧迫性值变得足够高时,将选择密钥更新操作,即使拖延了较低优先级存储器业务量。虽然这种防回滚机制是非确定性的,可以定义关于在更新发生之前每个密钥窗口可以存活多久的上限。
使用实施例,存储器业务量的等待时间关键性高优先级突发将不受重放保护开销影响,因为在存储器业务量的空闲时间段内会发生回滚保护开销的至少一部分。另外,基于仲裁的技术允许低优先级存储器访问先受影响,同时让高优先级业务量开展。注意,对具有不同安全性和其他特征的应用可以不同地配置回滚时间窗口,以性能开销交换更短的回滚窗口。
现在参照图4,示出了根据本发明的一个实施例的一种密钥更新方法的流程图。在图4中所示的实施例中,可以执行方法400以使用原始MAC值及其相关联的数据对MAC值进行密钥更新。当使用密钥的MAC算法时,相关联的数据行同样将被加载并用来执行密钥更新。即,虽然仅存储器的10%被进行密钥更新,同样加载剩余存储器从而借助新的密钥计算新的MAC(它是数据依赖型的)。在实施例中,TMP模块可以被配置用于执行方法400。如所见的,方法400开始于加载旧密钥并生成新密钥(框405)。在实施例中,此旧密钥可以被存储在TMP模块本身的存储装置中。可以根据密钥生成惯例来生成新的密钥,利用随机数发生器、硬件特定性种子、以及一些密码原语来提高密钥的熵。类似地,新密钥也可以被存储在TMP模块的存储装置中。在框410处,可以将当前re-MAC(重新MAC)地址设定为基础MAC地址。这个当前re-MAC地址充当指向存储装置中包括MAC值的具体位置的指针,并且基础MAC地址可以是存储装置中存储首先生成的MAC地址的地址。在图4的实施例中,此存储装置可以是系统存储器。在其他情况下,所述存储器可以是处理器的高速缓存存储器,比如专用MAC存储装置。
在任何情况下,控制接下来转至菱形420从而判定TMP模块是否空闲或者re-MAC计时器是否超时。在实施例中,此re-MAC计时器可以被设定在可配置的值从而提供合适水平的回滚保护。应理解的是,此定时器的值越低,给予的保护越高,而同时因密钥更新操作而产生的对性能的影响越大。在具体实施例中,可以将此re-MAC计时器设定在近似约给定分钟数(可以近似处理器时钟周期的几十亿倍)。如果确定此定时器已经超时或TMP模块空闲(并因而处于进行密钥更新的理想时间),控制转至框430。在框430处,当前MAC地址中所存储的MAC可以与其相关联的数据一起被加载。使用此信息,可以对MAC进行密钥更新,并且可以将产生的新MAC存储在当前MAC地址。为了执行这种密钥更新,MAC验证基于原始密钥和数据重新生成原始MAC。如果重新生成的MAC匹配从存储器加载的MAC,则验证成功并且可以生成新的MAC。基于新密钥和数据生成新MAC。然后将新MAC写回存储器,从而替代原始MAC。
接下来,控制转至框440,在此框,可以将当前re-MAC地址更新至下一位置从而提供指向存储器中所存储的下一MAC的指针。控制然后转至菱形445从而判定当前MAC地址是否达到存储器的保持MAC值的区域的末尾。如果是,完成密钥更新的当前迭代并且控制转至上面的框405,从而在下一密钥更新迭代过程中执行。否则,控制转至菱形420,在此菱形,执行针对存储装置内下一MAC的密钥更新操作。
如上文所讨论的,图4的密钥更新使用原始MAC值和相关联的数据两者,并因此招致获得数据的带宽。在其他情况下,可以在没有相关联的数据的情况下执行密钥更新操作。在本示例中,可以使用诸如SHA或MD5算法等MAC算法。然而,通过用当前MAC密钥对此MAC进行加密来生成最终MAC。这与标准使用密钥的MAC构造(例如,基于SHA的HMAC)不同,因为数据不需要可用于密钥更新。在其他实施例中,可以使用SHA的变体(比如SHA1、SH2、SHA3等),并且在实施例中,SHA3可以是供使用的合适安全哈希函数。现在参照图5,示出了根据本发明的另一实施例的一种密钥更新方法的流程图。在图5中所示的实施例中,同样可以由TMP模块执行的方法450可以在没有相关联的数据的情况下执行密钥更新。
如所展示的,方法450开始于从存储器获得经加密MAC(框460)。在框470处,可以使用旧密钥对此MAC进行解密。此后,用新密钥对MAC进行加密(框480)。最终,在框490处,将经加密MAC发送回去以存储在存储器中。如所展示的,在没有相关联的数据的情况下执行的这种密钥更新在计算复杂度和减小带宽损耗上可以更高效。对于上述方法400,应理解的是,可以针对给定的MAC存储装置中所存储的所有MAC迭代地执行方法450中所示的密钥更新,并且另外,可以在TMP模块的空闲时间段和/或当密钥更新计时器超时时执行这些密钥更新操作。
实施例因而可以用来检测回滚。考虑以下场景:
a.DL1:时间t1时的数据行值
b.DL2:时间t2时的数据行值
c.MAC1:与DL1相关联的MAC
d.MAC2:与DL2相关联的MAC
e.MACKEY1:时间t1时的MAC密钥
f.MACKEY2:时间t2时的MAC密钥
如果攻击者记录DL1和MAC1并在时刻t2(在此刻已经刷新了MAC密钥)对其进行重放,MAC检查将失败,因为MAC1是使用MACKEY1在DL1上计算的,并且硬件将使用MACKEY2在DL1上生成MAC。因此,将检测到回滚。进一步,此回滚检测是基于密钥更新而发生的,其中,仅从存储器取回MAC以进行密钥更新。实施例因而为系统存储器(和/或其他片外存储器)中的数据提供低开销的保密性、完整性、和回滚保护。
现在参照图6,所示的是根据本发明的实施例的MAC存储装置的框图。MAC存储装置500可以是处理器的专用高速缓存存储器(比如图1的TMP高速缓存145)或系统存储器的区域。如所见的,MAC存储装置500包括用于存储经密钥更新MAC的第一区域510以及用于存储用之前的密钥生成的MAC的第二区域520。因而,条目512a至512n存储用新密钥530生成的MAC值,同时条目522a至522n存储使用旧密钥535生成的MAC值。指针540指向MAC的目前正经历密钥更新的位置。应理解的是,尽管在图6的展示中以这种较高层次示出,但许多变体和替代方案是可能的。而且,注意,虽然图6将MAC存储器示为连续的范围,实施例并不限于此。在其他情况下,可以将MAC值存储在存储器的非连续位置。然而,应理解的是,此类MAC值可以与相应的相关联的数据行地址具有确切的关系,从而使得在给定数据行地址的情况下还可以访问相应的MAC。
在进一步的实施例中,通过维持高速缓存存储器(比如图1的TMP高速缓存145)来跟踪自从上一次存储器内密钥更新操作以来已经改变了MAC值的存储器写入,可以减小密钥更新操作的开销。这样,在减小用于执行密钥更新操作的存储器读取等待时间的同时,实现了有保证的重放保护。
在实施例中,此高速缓存存储器(例如64千字节(KB)区域)可以用来存储自上次从对MAC表的密钥更新操作以来被写回存储器的高速缓存行。此高速缓存存储器可以被称为跟踪器高速缓存。实施例可以使用加快回滚(hurry-up rollback)技术来确保此高速缓存保持可用。在实施例中,可以用因向存储器写入而被影响的MAC行中的地址和MAC填充跟踪器高速缓存。如将进一步描述的,在不同实施方式中,可以将不同类型的信息存储在此跟踪器中。
假定跟踪器高速缓存是满的(存储例如地址:A1、A2、A3、A4)。还假定针对另一存储器地址(A5)接收到了另一写入操作。此写入操作被阻止(并且可以被存储在例如处理器的共享高速缓存存储器或其他这种缓冲器中),因为跟踪器高速缓存存储器是满的。接下来,对MAC表进行密钥更新,直到可以将缓存的地址写回存储器(例如,假定经密钥更新的A1和MAC行)。注意,在各实施例中,可以借助背对背式存储器写入连续地对多条MAC行进行密钥更新。既然跟踪器高速缓存中的条目是空闲的,可以将A5及其MAC写入跟踪器高速缓存(存储例如地址:A5、A2、A3、A4)并且可以解除阻止向存储器的数据写入。
在各实施例中,可以在给定时间段(例如,预定时间或预定次数的密钥更新操作)内阻止写入操作,同时对存储器内MAC表进行密钥更新从而释放跟踪器高速缓存中的条目。通过这种方式,实施例在没有版本树的情况下提供重放保护。
可以取决于平台特性使用用于存储MAC信息的不同技术。假定具有64KB跟踪器高速缓存的实施方式,其覆盖了存储器的128兆字节(MB)。128MB是大约2百万条受保护高速缓存行。64KB高速缓存存储器为跟踪器高速缓存中13107个缓存的MAC提供足够的存储。给定其中立即对每条数据行十二个40位的MAC(12个此类MAC可以适配在一条高速缓存行上)进行密钥更新的实施方式,平均将对13.3条MAC行进行密钥更新以加快释放跟踪器高速缓存中下一可用槽。
通过针对有待用当前密钥重写的平均间隙尺寸(在本示例中,等待直到按照上述假定对13.3条MAC行进行了密钥更新)阻止向存储器的写入操作,可以使最大被阻止的写入延迟恒定并因此是确定性的。一般地,可以迫使向存储器的每次写入操作等待存储器内完整性表对N个条目进行密钥更新(其中,N=存储器中MAC行数量/跟踪器高速缓存尺寸)。对于另一示例,伴随200K条MAC行(10个MAC每个覆盖2百万条数据行或约128MB)和20K条目跟踪器高速缓存,可以阻止向存储器的每次写入操作直到200/20=N=10条MAC行首先被进行密钥更新。这种控制摊销了写入等待时间,从而使得它是恒定的/确定性的(例如,10次存储器读取/写入)。注意,虽然为写入操作招致了增加的等待时间,没有产生性能损失,因为这些写入不影响性能。相比之下,读取操作不可以不被延迟到密钥更新操作以后,从而维持性能。还可以在读取操作过程中也继续对存储器中的MAC行也进行密钥更新(或仅基于时间间隔),从而使得不需要通过平均密钥更新等待时间阻止单独的写入。
现在参考图7,所示是根据本发明的实施例的方法的流程图。如图7中所示,除了跟踪器高速缓存存储器之外,可以使用如在此所述的存储器保护逻辑执行方法600。
如所示的,方法600开始于接收数据写入请求(框610)。此写入请求可以与将具有信息的数据行写入存储器的请求一起被从核接收。在框615处,可以对数据进行加密(例如,根据给定的数据依赖型加密模式)。仍进一步,可以基于经加密数据生成MAC,如上文所讨论的。接下来,在框620处,可以对MAC本身进行加密。在实施例中,数据依赖型加密模式还可以用于对MAC值进行加密(例如,XTS-AES加密模式)。仍进一步,在框620处,可以将此经加密MAC值存储在跟踪器高速缓存存储器中。
在执行将此MAC值(至少且潜在地在用于写入所请求的数据的写入操作之前)写入存储器之前,可以对存储器中所存储的预定数量的MAC行进行密钥更新(框630)。如在此所描述的,此预定数量的MAC行可以取决于实施方式而变化。在一种情况下,所述预定数量的MAC行可以被设定用于为有待发送至存储器的写入提供确定性写入等待时间。在执行此类密钥更新操作之后,控制转至框640,在此框,可以将经加密MAC发送至存储器(与经加密数据一起,如果之前未发送的话)。
注意,可以对数据写入进行缓存(保持在处理器高速缓存中,比如共享高速缓存存储器)直到完成了足够次数的密钥更新。通过创建存储器的被独立进行密钥更新的多个扇区,可以提高性能。注意,虽然从高速缓存向存储器的写入被暂时阻止,处理器高速缓存仍然可以驱逐未更改(并因此不需要被写回存储器)的条目以便为从存储器向高速缓存的额外读取留出空间。应理解的是,尽管在图7的实施例中以这种较高层次示出,但许多变体和替代方案是可能的。例如,在其他情况下,存储器保护逻辑可以包括用于在写入可以被写回存储器之前对其加以保持的存储装置。作为一个这种示例,可以维护写入跟踪器,其中,当跟踪器满时不向系统代理透露写入信用,由此使写入延迟。
通过在存储器中所存储的最高层次的MAC行下形成哈希树(比如梅克尔树(Merkletree))可以实现缩放以覆盖任何存储器尺寸(超过128MB)。对于这种安排,只有最高层次MAC行被进行密钥更新,并且MAC层次结构根据树结构运转。
注意,对于这种实施方式和其他的实施方式,跟踪器高速缓存存储器跟踪(例如,最高层次MAC行的)改变了的地址。这样,硬件将跟踪器高速缓存存储器视为基于地址被查找的高速缓存。
在一个实施例中,跟踪器高速缓存存储器对存储器中经改变的MAC行的MAC进行存储。即,存储器中的MAC行上的N个MAC之一被更新,并且通过计算所述行上所有N个MAC中的MAC跟踪该改变。当再次从被跟踪的MAC行对存储器进行读取时,在允许读取开展之前,可以使用跟踪器高速缓存MAC条目确认MAC尚未改变。
在另一实施例中,作为XTS微调的一部分(对该MAC行使用当前密钥),跟踪器高速缓存存储器可以存储用来对经更改的最高层次MAC行进行加密的计数器。正如上述MAC,如果所述行的内容已经改变或被用旧计数器重放,则MAC行将不被正确地解密,由此损坏MAC值。当在数据上计算MAC时,它将不匹配损坏的值并因此将检测到损坏。注意,本实施例可以比上述实施例更加高效,因为计数器可以比MAC小得多,从而使得裸片上跟踪器高速缓存更加面积高效。
在仍进一步实施例中,跟踪器高速缓存存储器可以对存储器中经更改的数据行的MAC进行存储。此MAC值被存储在跟踪器高速缓存中并在对相应的MAC行进行密钥更新时溢回存储器。注意,如果存在针对已经存储在跟踪器高速缓存存储器中的条目向存储器的普通重复读取,本实施例会是高效的,因为不需要从存储器查找最高层次MAC值,如果它被缓存在跟踪器高速缓存存储器中的话(与上述实施例相比)。
因而,对于刚刚讨论的跟踪器高速缓存存储器的前两个实施例,对来自与访问请求(例如,读取/写入)相关联的所有MAC层次的行进行访问,尽管只在写入时对其进行更新。在直接MAC存储实施例中,如果经改变的数据MAC已经存储在跟踪器高速缓存存储器中,可以避免L1查找。
现在参照图8,示出的是根据本发明的实施例的系统的一部分的框图。如图8中所示,处于高层次的系统700包括处理器710(比如多核处理器)和系统存储器750,所述系统存储器在实施例中可以被实现为一个或多个DRAM。为了提供高效的MAC密钥更新操作,处理器710包括跟踪器高速缓存存储器720。在所示的实施例中,跟踪器高速缓存存储器720的每个条目可以基于系统存储器750中存在的给定MAC行存储MAC值。更确切地,在所示的实施方式中,跟踪器高速缓存存储器720中的每个条目可以存储基于多条MAC行7600至760n中给定的一条所生成的MAC值,该多条MAC行可以是二层梅克尔树的第一层次中的MAC行。进而,梅克尔树的这个第一层中的给定MAC行760中存在的每个MAC值是基于多条MAC行7700至770n中给定的一条生成的,该多条MAC行可以是所述二层梅克尔树的第二层次中的MAC行。进而,所述第二层次中的每条MAC行770存储多个MAC值,每个MAC值用于系统存储器750的数据区域780中所存储的给定数据行。应理解的是,虽然以图8中的这种具体实施方式示出,在保护更大量的信息时,梅克尔树或其他树结构可以被扩展至附加层从而提供效率。
在图8中所示的实施例中,伴随每条L1 MAC行12个MAC,25,165,824个MAC以二层的梅克尔树覆盖1,610,612,736数据字节。在本实施方式中,L2MAC行不需要被进行密钥更新并且因此不能被重放。类似地,被MAC的数据行不需要被进行密钥更新。注意,存储器中可以存储有任何数量的MAC层次;树越深,可以越多地保护存储器(由于更深的树造成的附加存储器查找而以性能为代价)。
注意,在不同实施方式中,跟踪器高速缓存存储器可以被配置用于或者存储由于写入而改变的L1 MAC行的MAC(即,单个MAC值覆盖L2 MAC行中所存储的所有12个40位的MAC),或者直接存储数据行MAC。
再次参照图8,处理器710包括跟踪器高速缓存存储器720。在另一实施例中,跟踪器高速缓存存储器720的每个条目可以存储计数器/微调值,所述计数器/微调值用来对系统存储器750中存在的给定MAC行进行加密。更确切地,在本实施方式中,跟踪器高速缓存存储器720中的每个条目可以存储与MAC行7600至760n之一相对应的计数器/微调值。当影响MAC行7600至760n之一中所存储的MAC之一的存储器发生写入时,与这条MAC行相对应的跟踪器高速缓存条目计数器使这个计数器/微调值递增,并且这个计数器/微调值被用作对受影响的MAC行的XTS加密的微调,从而将其有效地重新加密成不同的密文值。如果对于受影响的MAC行不存在跟踪器高速缓存条目,则用初始计数器/微调值创建新的条目。此计数器/微调值被存储在跟踪器高速缓存中,直到用新密钥对MAC行进行密钥更新,此时可以释放跟踪器高速缓存中的条目。
尤其是本实施例,要注意的是,密钥更新操作本身(如应用于MAC行7600至760n的)可以被视为用来对每个MAC行条目的密文进行刷新的全局计数器/微调值。换言之,密钥不必改变,只需要改变微调值(只要微调值的组合对于给定密钥一直是唯一的)。因而,(图6的)存储装置530、535中所存储的旧/新密钥值可以简单地是全局计数器值,其中,旧密钥是当前计数器值-1。以这种方式,可以使用计数器模式加密,其中,计数器是{全局计数器、跟踪器高速缓存计数器、MAC行地址}的级联,从而产生对于同一密钥决不重复的唯一128位计数器值。下面关于图11至图12对此类操作的示例流程加以描述。
现在参照图9,示出了根据本发明的另一实施例的一种用于执行密钥更新操作的流程图。如图9中所示,可以由如在此所述的存储器保护逻辑执行方法650。如所见的,方法650开始于获得有待进行密钥更新的第一层次(L1)MAC行(框655)。可以从系统存储器获得此L1 MAC行。接下来,在框660处,使用旧密钥对MAC行进行解密。接下来,可以判定此L1 MAC行所覆盖的MAC是否发生了任何更新(菱形665)。在实施例中,可以参照跟踪器高速缓存来判定是否发生了任何更新。如果是,控制转至框670,在此框,可以获得与(例如针对被覆盖的行向存储器写入所引起的)此MAC更新相关联的第二层次MAC行(L2)MAC行。然后,在框675处,可以用新MAC来代替此L2 MAC行中的选定MAC。应理解的是,此新MAC代替与被写入到存储器中的数据行相关联的L2 MAC行内条目。此后,在框680处,可以基于此经更新的L2 MAC行重新生成L1 MAC行。
仍参照图9,从菱形665(如果未发生对被覆盖数据行的更新)和框680两者,控制转至框685,在此框,可以用新密钥对L1 MAC行进行密钥更新。此后,在框690处,可以将经密钥更新的L1 MAC行(和经更新的L2 MAC行,如果存在的话)发送至系统存储器。最终,在框695处,可以驱逐跟踪器高速缓存存储器内被这条经密钥更新的L1 MAC行所覆盖的任何MAC。应理解的是,尽管在图9的展示中以这种较高层次示出,但许多变体和替代方案是可能的。
在执行某些工作负荷的过程中,工作负荷写入会存在高度局部性,但完全相同的地址中几乎没有被重复命中的。在一些情况下,写入中的高达80%将影响(跟踪器高速缓存存储器中)已经缓存的MAC值的经缓存MAC,从而重新使用跟踪器高速缓存存储器中的同一槽。这样,此工作负荷中约80%的写入不需要被阻止。因而,每次写入的总等待时间可以下降近一半。注意,伴随更大的跟踪器高速缓存存储器尺寸,可以进一步减小写等待时间。
为了隐藏MAC行内MAC的冲突,实施例可以提供与一个或多个MAC相关联的计数器/混淆值,从而确保在每次写入新MAC值时更改MAC行的经加密值。应理解的是,在不同实施例中,可以实施其他提供此计数器机制的方式。伴随这种加强,对手不能够比较存储器内MAC行以找到因生日攻击而引起的可能冲突。
现在参照图10,示出了根据实施例的基于计数器的防回滚技术的展示。如所展示的,经加密MAC行7601是梅克尔树或其他用来分层次地存储MAC值的数据结构的最高层次中的MAC行。进而,MAC行7601包括多个个体MAC值7620至762n,其中的每一个可以是基于梅克尔树的下一层次中的MAC行所生成的MAC。进一步,存在多个计数器7640至7643,各自与多个MAC值762相关联。图10中所示的实施例中,如果相关联的MAC值之一改变的话,更新(例如,递增)与一组MAC值762相关联的给定计数器764。
在图10中所示的实施例中,经加密MAC中的8位的计数器和40位的MAC值提供约28位的抗冲突性。当然,应理解的是,在其他示例中可以存在其他尺寸的MAC值和/或计数器。
在其他实施例中,与存储MAC值相反,跟踪器高速缓存存储器可以存储自从上一次密钥更新操作以来通过写入操作更改的MAC行的计数器。应理解的是,在此类实施例中,可以使此计数器比MAC值小得多(例如,从40位的MAC值到8位的计数器),从而允许更多的条目适配在同一跟踪器高速缓存存储器中。进而可以在每次观察到写入正更改同一MAC行时使此计数器递增。计数器值进而包括在借助相应的MAC行的XTS微调(包括MAC行的地址)而进行的加密中,从而在每次执行加密时产生不同的密文。如果对手将要针对错误的计数器值重放旧MAC行,则MAC行将不正确地解密,因而损坏MAC并致使其不与相应的数据行匹配,从而暴露重放攻击。对于上述实施例,当针对受影响的MAC完成密钥更新操作时,跟踪器高速缓存存储器可以驱逐针对前一密钥的计数器值。
类似地,其他实施例可以用版本树(例如,具有单调递增的计数器值的树)代替梅克尔树的中间层。在此,可以用计数器值代替MAC值来形成存储器结构,其中,仅结构的最后一层具有MAC值。可以使用前一父计数器值作为微调(包括经加密行的地址)来对计数器值进行XTS加密。然后将计数器的最后一层次用作微调来对末级MAC行(与其地址一起)进行加密。如果密文计数器值中的任何一个被更改或重放,被用作对下一层次的微调的经解密计数器链将不匹配。结果将最终损坏末级MAC值,这在MAC值不与数据匹配时将暴露攻击。由于可以使计数器比MAC更小,更多的计数器可以适配在存储器内的行上,从而允许具有更低存储器开销的更高效数据结构。
在一些实施例中,可以实现经优化的密钥更新操作,其中,可以将存储器中频繁更新(写入)的页面在同一物理范围内聚类在一起。在一些情况下,可以利用操作系统(OS)映射机制来识别此(此类)区域以及向给定的写入存储器区域的直接写入操作。由于这种映射,可以频繁地对与这个更小的存储器范围相关联的MAC值进行密钥更新,同时通常只读的区域的MAC值可以避免密钥更新,如在此所述的。如在此所述的存储器保护逻辑可以自适应地随着工作负荷写入特性变化而扩张高频(例如,可写入的)存储器范围,从而在它这样做时仅提高写入等待时间。
现在参照图11,示出的是根据另一实施例的基于MAC的读取操作和写入操作的流程图。更确切地,图11中所示的方法800描述了对根据在此所述的TMP技术所保护的(并且可以由所描述的存储器保护逻辑执行)存储器的读取或写入操作的示例。如所见的,方法800的虚线部分内的操作对读取流程和写入流程都是常见的。方法800开始于接收向存储器的数据写入请求(框805)(可以同样地是数据读取请求)。接下来,在框810处,确定有待更新的MAC行,并且从存储器读取相应的MAC行。并且将变量X设为等于全局计数器的值。接下来,判定MAC行是否在当前计数器位置(与密钥更新指针相关联)之前(菱形815)。如果否,使X的值减量(框820)。
从菱形815和框820两者开始,控制转至菱形825,在此框,判定在跟踪器高速缓存中针对受影响的MAC行是否已经存在条目。如果是,控制转至框830,在此框,可以使用跟踪器高速缓存条目计数器(以及全局计数器的值以及地址)对MAC行进行解密。在实施例中,这种基于计数器模式的解密可以使用如下全局密钥(gk):AESgk{X,跟踪器高速缓存条目计数器,MAC行块地址},然后将所述全局密钥与MAC行异或。注意,在读取流程的情况下,在框830之后,将经解密的MAC值与相关联的数据行的MAC值进行比较从而判断其是否匹配(即,未发生重放或损坏)。
接下来(对于写入操作),控制转至框835,在此框,对于跟踪器高速缓存中针对受影响的MAC行的相应条目,使计数器递增。此后,数据行被加密并被写入存储器(在框840处)。此后,在框845处,计算针对经加密数据行的MAC并更新MAC行中的相应MAC(框845)。在框850处,MAC行可以被加密并被写回存储器。如上述的,可以发生使用全局密钥gk(如上文所讨论的)的基于计数器模式的加密从而对MAC行进行加密。此后,控制转至框860以等待下一次写入。
仍参照图11,如果相反在菱形825确定(对于写入操作)不存在针对有效MAC行的跟踪器高速缓存条目,控制转至菱形870从而判定槽是否可用于跟踪器高速缓存中的条目。如果是,控制转至框880,在此框,可以将跟踪器高速缓存条目计数器设为0。注意,控制直接从菱形825转至框880以进行读取流程。
仍参照图11,如果相反如在菱形870所判断的没有槽可用,控制转至框875,在此框,可以阻止向存储器写入直到跟踪器高速缓存中有槽被释放。应理解的是,尽管在图11的实施例中以这种较高层次示出,在执行写入和读取存储器操作时可以发生其他变化。
现在参照图12,示出了根据本发明的另一实施例的一种用于执行对MAC行的密钥更新或刷新的方法的流程图。如图12中所示,可以由如在此所述的存储器保护逻辑执行的方法900开始于框905处判断是否是时候刷新下一MAC行。此判断可以基于计时器超时或者可以是在允许写入操作开展之前执行的一组密钥更新操作的一部分。在任何情况下,在框910处,从存储器中当前指针位置之后读取MAC行。注意,在实施例中,全局计数器值可以对应于之前的已更新MAC行,并且全局计数器的经减量值(全局计数器-1)对应于前一计数器值。
接下来,在菱形920,判定对于MAC行是否存在跟踪器高速缓存条目。如果是,可以针对此计数器值条目设定X的值。在框925处,释放跟踪器高速缓存条目。此后,控制转至框930,在此框,可以对MAC行进行解密。如果对于MAC行不存在跟踪器高速缓存条目,控制同样直接从菱形920转至框930,此时可以将X的值设为0。注意,在实施例中,可以根据AESgk{全局计数器-1,X,MAC行块地址}执行基于计数器模式的解密,进而将其与MAC行的值进行异或。接下来,在框940处,MAC行被加密并被写回存储器。在实施例中,基于计数器模式的加密可以根据AESgk{全局计数器,0,MAC行块地址}发生,进而将其与MAC行的值进行异或。此后,在框950处,使指针位置递增并且接下来判定位置是否翻转至开头(在菱形960)。如果是,在框980处,可以使全局计数器递增。在任一种情况下,控制此后转至框970,在此框,控制可以等待下一刷新时间。对于上述实施例,可替代地,可以对梅克尔树顶端(如图8中)或包含附加计数器值的版本树的顶端的MAC行执行这种计数器模式方法,从而缩放到保护任何尺寸存储器。
实施例可以实现在SoC或用于并入各种各样平台的其他处理器中。现在参照图13,示出的是可以与实施例一起使用的示例系统的框图。如所见的,系统1000可以是智能手机或其他无线通信器。基带处理器1005被配置用于关于有待从所述系统发射或被所述系统接收的通信信号进行各种信号处理。进而,基带处理器1005耦合至应用处理器1010,所述应用处理器可以是所述系统的用于执行OS和(除了许多熟知的社交媒体和多媒体app等用户应用之外)其他系统软件的主CPU。应用处理器1010可以进一步被配置用于对所述设备进行各种其他计算操作。应用处理器1010可以包括如在此所述的存储器保护逻辑从而对被传达以在处理器外部存储的信息加以保护。
进而,应用处理器1010可以耦合至用户界面/显示器1020,例如,触摸屏显示器。另外,应用处理器1010可耦合至存储器系统,所述存储器系统包括非易失性存储器(即闪存1030)和系统存储器(即DRAM 1035)。在一些实施例中,闪存1030可以包括安全部分1032,如在此所述的MAC值可以存储在所述安全部分中。DRAM 1035中可以存在类似的区域。如进一步看到的,应用处理器1010还耦合至采集设备1045,比如可以记录视频和/或静止图像的一个或多个图像采集设备。
仍参照图13,通用集成电路卡(UICC)1040包括用户身份模块,在一些实施例中,所述用户身份模块包括安全的存储装置用于存储安全的用户信息。系统1000可以进一步包括安全处理器1050,所述安全处理器可以耦合至应用处理器1010。在各实施例中,安全处理器1050可以部分用于建立TEE。多个传感器1025可以耦合至应用处理器1010从而使能输入各种感测到的信息,比如加速度计和其他环境信息。另外,可以使用一个或多个认证设备1095来接收例如用于认证操作的用户生物特征输入。
如进一步展示的,近场通信(NFC)非接触式接口1060被设置为通过NFC天线1065在NFC近场中通信。虽然图13中示出了单独的天线,应理解的是,在某些实现方式中,可以提供一个天线或不同天线集合从而使能各种无线功能。
功率管理集成电路(PMIC)1015耦合至应用处理器1010从而执行平台级功率管理。为此,PMIC 1015可以向应用处理器1010下发功率管理请求从而按照期望进入一定的低功率状态。而且,基于平台限制,PMIC 1015还可以控制系统1000的其他组件的功率水平。
为了能够发射和接收通信,各种电路系统可耦合于基带处理器1005与天线1090之间。具体地,可存在射频(RF)收发器1070和无线局域网(WLAN)收发器1075。通常,RF收发器1070可用于根据如3G或4G无线通信协议(如根据码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)或其他协议)等给定无线通信协议来接收和发射无线数据和呼叫。另外,可以存在GPS传感器1080,其中,位置信息被提供给安全处理器1050以供使用,如在此所描述的。还可提供如无线电信号(例如,AM/FM以及其他信号)的接收或发射的其他无线通信。另外,经由WLAN收发器1075,还可以实现如根据BluetoothTM标准或IEEE 802.11标准的本地无线通信。
现在参照图14,示出的是可以与实施例一起使用的示例系统的框图。在图14的展示中,系统1300可以是移动低功率系统,诸如平板计算机、2:1平板机、平板手机或其他可转换或独立式平板系统。如展示的,存在SoC 1310并且其可以被配置成作为设备的应用处理器而进行操作。SoC 1310可以包括如在此所述的硬件、软件、和/或固件从而为SoC 1310外部的信息存储提供存储器保护。
各种设备可以耦合至SoC 1310。在所示的展示中,存储器子系统包括耦合至SoC1310的闪存1340和DRAM 1345,其中两者均可以被配置用于存储经加密信息,包括数据和MAC值。此外,触摸面板1320耦合至SoC 1310以便经由触摸提供显示能力和用户输入,包括在触摸面板1320的显示器上提供虚拟键盘。为了提供有效网络连接,SoC 1310耦合至以太网接口1330。外围集线器1325耦合至SoC 1310以便使得能够与各种外围设备对接,诸如可以通过各种端口或其他连接器中任何一项耦合至系统1300。
除了SoC 1310内的内部功率管理电路系统和功能,PMIC 1380耦合至SoC 1310以便提供基于平台的功率管理,例如,基于系统是否经由AC适配器1395而由电池1390或AC电源来供电。除了这一基于电源的功率管理,PMIC 1380可以基于环境和使用条件进一步执行平台功率管理活动。仍进一步地,PMIC 1380可以将控制和状态信息传送至SoC 1310以便在SoC 1310内引起各种功率管理动作。
仍然参照图14,为了提供无线能力,WLAN单元1350耦合至SoC 1310并且进而耦合至天线1355。在各种实施方式中,WLAN单元1350可以根据一个或多个无线协议(包括IEEE802.11协议、BluetoothTM协议或任何其他无线协议)提供通信。
如进一步展示的,多个传感器1360可以耦合至SoC 1310。这些传感器可以包括各个加速度计、环境和其他传感器,包括用户手势传感器。最终,音频编解码器1365耦合至SoC1310以便向音频输出设备1370提供接口。当然应理解的是,尽管在图14中采用此具体实施方式示出,但许多变体和替代方案是可能的。
各实施例可以采用许多不同的系统类型来实现。现在参考图15,示出了根据本发明的实施例的系统的框图。如图15所示,多处理器系统1500是点对点互连系统,且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图15所示,处理器1570和1580中的每一个处理器可以是包括第一和第二处理器核(即,处理器核1574a和1574b以及处理器核1584a和1584b)的多核处理器,尽管所述处理器中可能潜在地存在更多的核。所述处理器中的每一个处理器可包括用于执行在此描述的总存储器保护技术的硬件和逻辑。
仍参照图15,第一处理器1570进一步包括存储器控制器中枢(MCH)1572和点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图15所示,MCH 1572和1582将处理器耦合至相应的存储器(即存储器1532和存储器1534),所述存储器可以是本地附接至相应处理器的系统存储器(例如,DRAM)的部分,并且所述存储器可以被配置用于存储如在此所描述的经加密信息。第一处理器1570和第二处理器1580可以分别经由P-P互连1562和1564耦合至芯片组1590。如图15所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括接口1592,以便通过P-P互连1539将芯片组1590与高性能图形引擎1538耦合。进而,芯片组1590可以经由接口1596耦合至第一总线1516。如图15所示,各个输入/输出(I/O)设备1514可以与总线桥接器1518一起耦合至第一总线1516,所述总线桥接器将第一总线1516耦合至第二总线1520。在一个实施例中,各种设备可以耦合至第二总线1520,包括例如,键盘/鼠标1522、通信设备1526和数据存储单元1528(比如,磁盘驱动或可以包括代码1530以及一个或多个清单的其他大容量存储设备)。进一步地,音频I/O1524可以耦合至第二总线1520。各实施例可被结合在其他类型的系统中,包括:诸如智能蜂窝电话的移动设备、平板计算机、上网本、UltrabookTM等等。
以下示例涉及进一步的实施例。
在示例1中,一种方法包括:在处理器的存储器保护逻辑中接收写入请求以及有待写入到耦合至所述处理器的存储器中的数据块;对所述数据块进行加密并基于所述经加密数据生成MAC;对所述MAC进行加密并将所述经加密的MAC存储在所述处理器的跟踪器高速缓存存储器中;执行多次密钥更新操作,每次密钥更新操作是对所述存储器中所存储的一个或多个MAC值进行的,从而将所述一个或多个MAC值从与第一密钥相关联密钥更新为与第二密钥相关联;以及此后将所述经加密MAC发送至所述存储器以便存储在所述存储器中。
在示例2中,所述多次密钥更新操作包括预定次数的密钥更新操作从而提供确定性存储器写入等待时间。
在示例3中,在如示例2所述的方法中,所述确定性存储器写入等待时间用于确保所述跟踪器高速缓存存储器将不被装满全部容量。
在示例4中,如上述示例中的一项或多项所述的方法进一步包括:从所述跟踪器高速缓存存储器中驱逐与所述经密钥更新的一个或多个MAC值之一相关联的条目。
在示例5中,如上述示例中的一项或多项所述的方法进一步包括:根据数据依赖型加密模式对所述数据块进行加密。
在示例6中,如示例5所述的方法进一步包括:根据数据依赖型加密模式对所述MAC进行加密。
在示例7中,如示例6所述的方法进一步包括执行第一次密钥更新操作从而:从所述存储器的MAC数据结构中所存储的第一层次的MAC块中获得第一MAC块;对所述第一MAC块进行密钥更新以将所述第一MAC块的关联性从所述第一密钥改变成所述第二密钥,根据所述第二密钥对所述经密钥更新的第一MAC块进行加密;以及此后将所述第一MAC块发送至所述存储器以便存储在所述第一层次的MAC中。
在示例8中,如上述示例中的一项或多项所述的方法进一步包括:从所述存储器的MAC数据结构中所存储的第一层次的MAC块中获得第一MAC块;从所述MAC数据结构中所存储的第二层次的MAC块中获得第二MAC块;用所述经加密MAC替换所述第二MAC块中所存储的多个MAC之一,从而更新所述第二MAC块;以及根据数据依赖型加密模式对所述经更新第二MAC块进行加密。
在示例9中,如示例8所述的方法进一步包括:基于所述经加密的经更新第二MAC块生成经更新MAC值;对所述经更新MAC值进行加密;用所述经加密的经更新MAC值替换所述第一MAC块中所存储的多个MAC值之一,从而获得经更新的第一MAC块;用所述第二密钥对所述经更新的第一MAC块进行密钥更新;以及将所述经加密的经更新的第一MAC块存储在所述存储器中。
在示例10中,如上述示例中的一项或多项所述的方法进一步包括:允许在所述多次密钥更新操作中的至少一些之前执行一次或多次读取操作;以及防止在所述多次密钥更新操作之前执行一次或多次写入操作。
在示例11中,一种机器可读存储介质,包括当被执行时实施如以上示例中任一项所述的方法的机器可读指令。
在示例12中,一种处理器包括:至少一个用于执行指令的核;耦合至所述至少一个核以存储数据的高速缓存存储器;以及耦合至所述至少一个核的跟踪器高速缓存存储器,所述跟踪器高速缓存存储器包括多个条目,每个条目用于存储与有待写入到耦合至所述处理器的存储器中的数据块相关联的完整性值,其中,所述完整性值将被存储在所述跟踪器高速缓存存储器中,至少直到存储在所述存储器中并与所述完整性值相关联的完整性值块已经被进行了密钥更新。
在示例13中,如示例12所述的处理器进一步包括:存储器保护逻辑,用于对所述数据块进行加密,然后所述经加密数据块被写入所述存储器。
在示例14中,所述存储器保护逻辑用于:在所述经加密数据块被写入所述存储器之后,从所述跟踪器高速缓存存储器中驱逐所述完整性值。
在示例15中,所述存储器保护逻辑用于配置所述存储器以存储完整性值数据结构,所述完整性值数据结构包括用于存储第一多个完整性值块的第一层次以及用于存储第二多个完整性值块的第二层次,其中,所述第一多个完整性值块中的每一个包括第一多个完整性值,每个完整性值用于所述第二多个完整性值块之一,并且所述第二多个完整性值块中的每一个包括第二多个完整性值,每个完整性值用于所述存储器中所存储的数据块。
在示例16中,所述第一多个完整性值块之一包括:各自与所述第二多个完整性值块之一相关联的多个MAC值以及各自与所述多个MAC值中的一个或多个相关联的多个计数器。
在示例17中,所述存储器保护逻辑用于:当被所述多个MAC值中的所述一个或多个中的特定MAC值覆盖的数据块发生更新时,更新所述多个计数器值之一。
在示例18中,所述存储器保护逻辑用于向所述存储器的第一区域分配写入数据并用于向所述存储器的第二区域分配读取数据,并用于对所述存储器的所述第一区域执行密钥更新而不对所述存储器的所述第二区域执行密钥更新。
在示例19中,与所述数据块相关联的所述完整性值包括计数器值。
在示例20中,一种系统包括:处理器,具有:用于执行指令的至少一个核;耦合至所述至少一个核的跟踪器高速缓存存储器,所述跟踪器高速缓存存储器包括多个条目,每个条目用于存储与有待写入到存储器中的数据块相关联的完整性值,其中,所述完整性值将被存储在所述跟踪器高速缓存存储器中,至少直到存储在所述存储器中并与所述完整性值相关联的完整性值块已经被进行了密钥更新;以及存储器保护逻辑;以及耦合至所述处理器的所述存储器,其中,所述存储器保护逻辑用于配置所述存储器以存储完整性值数据结构,所述完整性值数据结构包括用于存储第一多个完整性值块的第一层次以及用于存储第二多个完整性值块的第二层次,其中,所述第一多个完整性值块中的每一个包括第一多个完整性值,每个完整性值用于所述第二多个完整性值块之一,并且所述第二多个完整性值块中的每一个包括第二多个完整性值,每个完整性值用于所述存储器中所存储的数据块。
在示例21中,所述存储器保护逻辑用于执行多次密钥更新操作,每次密钥更新操作是对所述存储器中所存储的所述第一多个完整性块之一进行的,从而将所述第一多个完整性块之一从与第一密钥相关联密钥更新为与第二密钥相关联。
在示例22中,所述存储器保护逻辑用于:允许在所述多次密钥更新操作中的至少一些之前执行一次或多次读取操作,并防止在所述多次密钥更新操作之前执行一次或多次写入操作。
在示例23中,一种设备包括:用于接收写入请求以及有待写入到与处理器耦合的存储器中的数据块的装置;用于对所述数据块进行加密并基于所述经加密数据生成MAC的装置;用于对所述MAC进行加密并将所述经加密的MAC存储在所述处理器的跟踪器高速缓存存储器中的装置;用于执行多次密钥更新操作的装置,每次密钥更新操作是对所述存储器中所存储的一个或多个MAC值进行的,从而将所述一个或多个MAC值从与第一密钥相关联密钥更新为与第二密钥相关联;以及用于将所述经加密MAC发送至所述存储器以便存储在所述存储器中的装置。
在示例24中,所述设备进一步包括:用于从所述跟踪器高速缓存存储器中驱逐与所述经密钥更新的一个或多个MAC值之一相关联的条目的装置。
在示例25中,如上述示例中的一项或多项所述的设备进一步包括:用于根据数据依赖型加密模式对所述数据块进行加密的装置;以及用于根据数据依赖型加密模式对所述MAC进行加密的装置。
在示例26中,所述设备进一步包括:用于允许在所述多次密钥更新操作中的至少一些之前执行一次或多次读取操作的装置;以及用于防止在所述多次密钥更新操作之前执行一次或多次写入操作的装置。
应理解的是,以上示例的各种组合是可能的。
各实施例可以用于多个不同类型的系统中。例如,在一个实施例中,通信设备可被安排用于执行在此描述的所述各种方法和技术。当然,本发明的范围不限于通信设备,相反其他实施例可涉及用于处理指令的其他类型的设备、或包括指令的一个或多个机器可读介质,所述指令响应在计算设备上被执行而使得所述设备执行在此描述的方法和技术中的一项或多项。
实施例可以在代码中实现并且可存储在非瞬态存储介质上,所述非瞬态存储介质具有存储在其上的指令,这些指令可用于对系统编程来执行指令。实施例还可以用数据实现并且可以被存储在非瞬态存储介质上,如果被至少一个机器使用,所述数据可以使得所述至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于包括以下各项的任何类型的磁盘:软盘、光盘、固态驱动器(SSD)、致密盘只读存储器(CD-ROM)、可复写致密盘(CD-RW)、和磁光盘;如只读存储器(ROM)等半导体器件、如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)等随机存取存储器(RAM);可擦可编程只读存储器(EPROM);闪存;电可擦可编程只读存储器(EEPROM);磁卡或光卡;或者适合于存储电子指令的任何其他类型的介质。
虽然已经关于有限数量的实施例对本发明进行了描述,但是本领域的技术人员将理解来自其中的许多修改和变体。旨在使得所附权利要求书覆盖如落在本发明的真实精神和范围内的所有这种修改和变体。
Claims (25)
1.一种方法,包括:
在处理器的存储器保护逻辑中接收写入请求和数据块,所述数据块有待写入到耦合至所述处理器的存储器中;
对所述数据块进行加密并基于经加密的数据生成消息认证码(MAC);
对所述MAC进行加密并将经加密的MAC存储在所述处理器的跟踪器高速缓存存储器中;
执行多次密钥更新操作,每次密钥更新操作是对存储在所述存储器中的一个或多个MAC值进行的,从而将所述一个或多个MAC值从与第一密钥相关联密钥更新为与第二密钥相关联;以及
此后将所述经加密的MAC发送至所述存储器以便存储在所述存储器中。
2.如权利要求1所述的方法,其中,所述多次密钥更新操作包括:用于提供确定性存储器写入等待时间的预定次数的密钥更新操作。
3.如权利要求2所述的方法,其中,所述确定性存储器写入等待时间用于确保所述跟踪器高速缓存存储器将不被装满全部容量。
4.如权利要求1所述的方法,进一步包括:从所述跟踪器高速缓存存储器驱逐与经密钥更新的一个或多个MAC值中的一个相关联的条目。
5.如权利要求1所述的方法,进一步包括:根据数据依赖型加密模式对所述数据块进行加密。
6.如权利要求5所述的方法,进一步包括:根据数据依赖型加密模式对所述MAC进行加密。
7.如权利要求6所述的方法,进一步包括:
从存储在所述存储器的MAC数据结构中的第一层次的MAC块获得第一MAC块;
对所述第一MAC块进行密钥更新以将所述第一MAC块的关联性从所述第一密钥改变成所述第二密钥,经密钥更新的第一MAC块是根据所述第二密钥被加密的;以及
此后将所述第一MAC块发送至所述存储器以便存储在所述第一层次的MAC中。
8.如权利要求1所述的方法,进一步包括:
从存储在所述存储器的MAC数据结构中的第一层次的MAC块获得第一MAC块;
从存储在所述MAC数据结构中的第二层次的MAC块获得第二MAC块;
用经加密的MAC替换存储在所述第二MAC块中的多个MAC中的一个,从而更新所述第二MAC块;以及
根据数据依赖型加密模式对经更新的第二MAC块进行加密。
9.如权利要求8所述的方法,进一步包括:
基于经加密的经更新的第二MAC块生成经更新的MAC值;
对所述经更新的MAC值进行加密;
用经加密的经更新的MAC值替换存储在所述第一MAC块中的多个MAC值中的一个,从而获得经更新的第一MAC块;
用所述第二密钥对所述经更新的第一MAC块进行密钥更新;以及
将经加密的经更新的第一MAC块存储在所述存储器中。
10.如权利要求1所述的方法,进一步包括:
允许在所述多次密钥更新操作中的至少一些密钥更新操作之前执行一次或多次读取操作;以及
防止在所述多次密钥更新操作之前执行一次或多次写入操作。
11.一种机器可读存储介质,包括机器可读指令,所述机器可读指令当被执行时用于实现如权利要求1至10中任一项所述的方法。
12.一种设备,包括用于执行如权利要求1至10中任一项所述的方法的装置。
13.一种处理器,包括:
至少一个核,用于执行指令;
高速缓存存储器,耦合至所述至少一个核以存储数据;以及
跟踪器高速缓存存储器,耦合至所述至少一个核,所述跟踪器高速缓存存储器包括多个条目,每个条目用于存储与数据块相关联的完整性值,所述数据块有待写入到耦合至所述处理器的存储器中,其中,所述完整性值将被存储在所述跟踪器高速缓存存储器中,至少直到存储在所述存储器中并与所述完整性值相关联的完整性值块已经被进行了密钥更新。
14.如权利要求13所述的处理器,其中,所述处理器进一步包括:存储器保护逻辑,用于在经加密的数据块被写入所述存储器之前,对数据块进行加密。
15.如权利要求14所述的处理器,其中,所述存储器保护逻辑用于:在所述经加密的数据块被写入所述存储器之后,从所述跟踪器高速缓存存储器驱逐所述完整性值。
16.如权利要求14所述的处理器,其中,所述存储器保护逻辑用于将所述存储器配置成存储完整性值数据结构,所述完整性值数据结构包括用于存储第一多个完整性值块的第一层次以及用于存储第二多个完整性值块的第二层次,其中,所述第一多个完整性值块中的每一个包括第一多个完整性值,每个完整性值用于所述第二多个完整性值块中的一个,并且所述第二多个完整性值块中的每一个包括第二多个完整性值,每个完整性值用于存储在所述存储器中的数据块。
17.如权利要求16所述的处理器,其中,所述第一多个完整性值块中的一个包括:各自与所述第二多个完整性值块中的一个相关联的多个消息认证码(MAC)值以及各自与所述多个MAC值中的一个或多个相关联的多个计数器。
18.如权利要求17所述的处理器,其中,所述存储器保护逻辑用于:当被所述多个MAC值中的一个或多个中的特定MAC值覆盖的数据块发生更新时,更新所述多个计数器值中的一个。
19.如权利要求16所述的处理器,其中,所述存储器保护逻辑用于向所述存储器的第一区域分配写入数据并用于向所述存储器的第二区域分配读取数据,并用于对所述存储器的所述第一区域执行密钥更新而不对所述存储器的所述第二区域执行密钥更新。
20.如权利要求13所述的处理器,其中,与所述数据块相关联的所述完整性值包括计数器值。
21.一种系统,包括:
处理器,所述处理器具有:至少一个核,用于执行指令;跟踪器高速缓存存储器,耦合至所述至少一个核,所述跟踪器高速缓存存储器包括多个条目,每个条目用于存储与数据块相关联的完整性值,所述数据块有待写入到存储器中,其中,所述完整性值将被存储在所述跟踪器高速缓存存储器中,至少直到存储在所述存储器中并与所述完整性值相关联的完整性值块已经被进行了密钥更新;以及存储器保护逻辑;以及
所述存储器,耦合至所述处理器,其中,所述存储器保护逻辑用于将所述存储器配置成存储完整性值数据结构,所述完整性值数据结构包括用于存储第一多个完整性值块的第一层次以及用于存储第二多个完整性值块的第二层次,其中,所述第一多个完整性值块中的每一个包括第一多个完整性值,每个完整性值用于所述第二多个完整性值块中的一个,并且所述第二多个完整性值块中的每一个包括第二多个完整性值,每个完整性值用于存储在所述存储器中的数据块。
22.如权利要求21所述的系统,其中,所述存储器保护逻辑用于执行多次密钥更新操作,每次密钥更新操作是对存储在所述存储器中的所述第一多个完整性块中的一个进行的,从而将所述第一多个完整性块中的一个从与第一密钥相关联密钥更新为与第二密钥相关联。
23.如权利要求22所述的系统,其中,所述存储器保护逻辑用于:允许在所述多次密钥更新操作中的至少一些密钥更新操作之前执行一次或多次读取操作,并防止在所述多次密钥更新操作之前执行一次或多次写入操作。
24.一种设备,包括:
用于接收写入请求数据块的装置,所述数据块有待写入存储器;
用于对所述数据块进行加密并基于经加密的数据生成MAC的装置;
用于对所述MAC进行加密并将经加密的MAC存储在所述处理器的跟踪器高速缓存存储器中的装置;
用于执行多次密钥更新操作的装置,每次密钥更新操作是对存储在所述存储器中的一个或多个MAC值进行的,从而将所述一个或多个MAC值从与第一密钥相关联密钥更新为与第二密钥相关联;以及
用于将所述经加密的MAC发送至所述存储器以便存储在所述存储器中的装置。
25.如权利要求24所述的设备,进一步包括:用于允许在所述多次密钥更新操作中的至少一些密钥更新操作之前执行一次或多次读取操作的装置;以及用于防止在所述多次密钥更新操作之前执行一次或多次写入操作的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/669,235 | 2015-03-26 | ||
US14/669,235 US9710675B2 (en) | 2015-03-26 | 2015-03-26 | Providing enhanced replay protection for a memory |
PCT/US2016/020051 WO2016153728A1 (en) | 2015-03-26 | 2016-02-29 | Providing enhanced replay protection for a memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107408081A true CN107408081A (zh) | 2017-11-28 |
CN107408081B CN107408081B (zh) | 2021-09-21 |
Family
ID=56975477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680012383.1A Active CN107408081B (zh) | 2015-03-26 | 2016-02-29 | 提供对存储器的加强重放保护 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9710675B2 (zh) |
EP (1) | EP3274848B1 (zh) |
CN (1) | CN107408081B (zh) |
WO (1) | WO2016153728A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020174308A1 (en) * | 2019-02-25 | 2020-09-03 | International Business Machines Corporation | Detection of alteration of storage keys used to protect memory |
CN113505363A (zh) * | 2021-08-04 | 2021-10-15 | 上海瓶钵信息科技有限公司 | 通过软件方式实现存储空间防重放的方法和系统 |
US20220263661A1 (en) * | 2021-02-15 | 2022-08-18 | Sony Semiconductor Israel Ltd. | Efficient Data Item Authentication |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678894B2 (en) * | 2015-03-27 | 2017-06-13 | Intel Corporation | Cache-less split tracker architecture for replay protection trees |
US10042782B2 (en) * | 2015-06-02 | 2018-08-07 | ALTR Solutions, Inc. | Immutable datastore for low-latency reading and writing of large data sets |
EP3116187B1 (en) * | 2015-07-09 | 2019-12-04 | Nxp B.V. | Methods for facilitating secure communication |
US10585809B2 (en) * | 2016-04-01 | 2020-03-10 | Intel Corporation | Convolutional memory integrity |
US10754988B2 (en) * | 2016-08-30 | 2020-08-25 | Winbond Electronics Corporation | Anti-rollback version upgrade in secured memory chip |
US10243990B1 (en) | 2016-09-23 | 2019-03-26 | Apple Inc. | Systems and methods for detecting replay attacks on security space |
CN108399328B (zh) * | 2017-02-08 | 2021-04-27 | 新唐科技股份有限公司 | 系统存储器内容认证设备及方法 |
US10204229B2 (en) * | 2017-03-21 | 2019-02-12 | Nxp B.V. | Method and system for operating a cache in a trusted execution environment |
EP3509003B1 (en) * | 2018-01-04 | 2021-04-21 | Shenzhen Goodix Technology Co., Ltd. | Method and apparatus to protect code processed by an embedded micro-processor against altering |
US11269786B2 (en) * | 2018-07-25 | 2022-03-08 | Intel Corporation | Memory data protection based on authenticated encryption |
EP3663957A1 (en) * | 2018-12-03 | 2020-06-10 | Nagravision S.A. | Remote enforcement of device memory |
US11088846B2 (en) * | 2019-03-28 | 2021-08-10 | Intel Corporation | Key rotating trees with split counters for efficient hardware replay protection |
US11863670B2 (en) * | 2019-04-22 | 2024-01-02 | Cryptography Research, Inc. | Efficient side-channel-attack-resistant memory encryptor based on key update |
US20190319781A1 (en) * | 2019-06-27 | 2019-10-17 | Intel Corporation | Deterministic Encryption Key Rotation |
US20220209959A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Isa support for programming hardware over untrusted links |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841255A (zh) * | 2005-03-30 | 2006-10-04 | 侯方勇 | 保护数据存储的机密性与完整性的方法和装置 |
CN1864387A (zh) * | 2003-09-09 | 2006-11-15 | 雅斯拓股份有限公司 | 数据通信中的认证方法以及用于其实现的智能卡 |
CN103109296A (zh) * | 2010-09-24 | 2013-05-15 | 英特尔公司 | 具有对抗重放攻击的保护的用于存储器加密的可调加密模式 |
CN103198249A (zh) * | 2008-02-25 | 2013-07-10 | 微软公司 | 对可漫游凭证存储的安全且可用保护 |
US20140040632A1 (en) * | 2011-12-28 | 2014-02-06 | Siddhartha Chhabra | Low-overhead cryptographic method and apparatus for providing memory confidentiality, integrity and replay protection |
CN103620617A (zh) * | 2011-06-29 | 2014-03-05 | 英特尔公司 | 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 |
US20140208109A1 (en) * | 2011-12-28 | 2014-07-24 | Alpa T. Narendra Trivedi | Method and system for protecting memory information in a platform |
US20150033037A1 (en) * | 2013-07-24 | 2015-01-29 | Marvell World Trade Ltd. | Key rotation for a memory controller |
CN104463020A (zh) * | 2014-11-27 | 2015-03-25 | 大连理工大学 | 存储器数据完整性保护的方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724428A (en) * | 1995-11-01 | 1998-03-03 | Rsa Data Security, Inc. | Block encryption algorithm with data-dependent rotations |
US6539092B1 (en) * | 1998-07-02 | 2003-03-25 | Cryptography Research, Inc. | Leak-resistant cryptographic indexed key update |
WO2001056221A2 (en) * | 2000-01-31 | 2001-08-02 | Vdg Inc. | Block encryption method and schemes for data confidentiality and integrity protection |
US7120791B2 (en) | 2002-01-25 | 2006-10-10 | Cranite Systems, Inc. | Bridged cryptographic VLAN |
US7890771B2 (en) | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US7020809B2 (en) | 2002-09-25 | 2006-03-28 | International Business Machines Corporation | System and method for utilizing spare bandwidth to provide data integrity over a bus |
US7681050B2 (en) | 2005-12-01 | 2010-03-16 | Telefonaktiebolaget L M Ericsson (Publ) | Secure and replay protected memory storage |
JP4810289B2 (ja) * | 2006-04-17 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム |
US20160248588A1 (en) * | 2006-09-07 | 2016-08-25 | Altera Corporation | Security ram block with multiple partitions |
US8200961B2 (en) * | 2006-11-19 | 2012-06-12 | Igware, Inc. | Securing a flash memory block in a secure device system and method |
US8000467B2 (en) | 2007-03-19 | 2011-08-16 | Stmicroelectronics Sa | Data parallelized encryption and integrity checking method and device |
US9324361B2 (en) | 2007-08-14 | 2016-04-26 | Seagate Technology Llc | Protecting stored data from traffic analysis |
DE102007052656B4 (de) | 2007-11-05 | 2010-03-25 | Texas Instruments Deutschland Gmbh | Digital-Verschlüsselungs-Hardware-Beschleuniger |
US8588425B1 (en) | 2007-12-27 | 2013-11-19 | Emc Corporation | Encryption key recovery in the event of storage management failure |
US20090187771A1 (en) | 2008-01-17 | 2009-07-23 | Mclellan Jr Hubert Rae | Secure data storage with key update to prevent replay attacks |
KR101294816B1 (ko) * | 2008-05-29 | 2013-08-08 | 엘지전자 주식회사 | 제어신호 암호화 방법 |
US8826035B2 (en) | 2009-12-23 | 2014-09-02 | Intel Corporation | Cumulative integrity check value (ICV) processor based memory content protection |
US8799673B2 (en) | 2009-12-31 | 2014-08-05 | Intel Corporation | Seamlessly encrypting memory regions to protect against hardware-based attacks |
KR101303278B1 (ko) | 2011-12-14 | 2013-09-04 | 한국전자통신연구원 | 비트스트림 보호를 위한 fpga 장치 및 그 방법 |
US8782441B1 (en) | 2012-03-16 | 2014-07-15 | Google Inc. | Methods and systems for storage of large data objects |
US9064124B1 (en) * | 2012-12-19 | 2015-06-23 | Amazon Technologies, Inc. | Distributed caching system |
US9773129B2 (en) | 2013-06-28 | 2017-09-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Anti-replay protected flash |
US20150095661A1 (en) | 2013-09-30 | 2015-04-02 | Microsoft Corporation | Flexible Memory Addressing For Data Security |
US10084605B2 (en) * | 2014-02-14 | 2018-09-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Caching of encrypted content |
US10353638B2 (en) * | 2014-11-18 | 2019-07-16 | Microsemi SoC Corporation | Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory |
-
2015
- 2015-03-26 US US14/669,235 patent/US9710675B2/en active Active
-
2016
- 2016-02-29 WO PCT/US2016/020051 patent/WO2016153728A1/en active Application Filing
- 2016-02-29 EP EP16769283.9A patent/EP3274848B1/en active Active
- 2016-02-29 CN CN201680012383.1A patent/CN107408081B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1864387A (zh) * | 2003-09-09 | 2006-11-15 | 雅斯拓股份有限公司 | 数据通信中的认证方法以及用于其实现的智能卡 |
CN1841255A (zh) * | 2005-03-30 | 2006-10-04 | 侯方勇 | 保护数据存储的机密性与完整性的方法和装置 |
CN103198249A (zh) * | 2008-02-25 | 2013-07-10 | 微软公司 | 对可漫游凭证存储的安全且可用保护 |
CN103109296A (zh) * | 2010-09-24 | 2013-05-15 | 英特尔公司 | 具有对抗重放攻击的保护的用于存储器加密的可调加密模式 |
CN103620617A (zh) * | 2011-06-29 | 2014-03-05 | 英特尔公司 | 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 |
US20140040632A1 (en) * | 2011-12-28 | 2014-02-06 | Siddhartha Chhabra | Low-overhead cryptographic method and apparatus for providing memory confidentiality, integrity and replay protection |
US20140208109A1 (en) * | 2011-12-28 | 2014-07-24 | Alpa T. Narendra Trivedi | Method and system for protecting memory information in a platform |
US20150033037A1 (en) * | 2013-07-24 | 2015-01-29 | Marvell World Trade Ltd. | Key rotation for a memory controller |
CN104463020A (zh) * | 2014-11-27 | 2015-03-25 | 大连理工大学 | 存储器数据完整性保护的方法 |
Non-Patent Citations (2)
Title |
---|
LAURA GHEORGHE等: "《Authentication and Anti-replay Security Protocol for Wireless Sensor Networks》", 《2010 FIFTH INTERNATIONAL CONFERENCE ON SYSTEMS AND NETWORKS COMMUNICATIONS》 * |
程顺燚: "《存储器机密性完整性保护技术研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020174308A1 (en) * | 2019-02-25 | 2020-09-03 | International Business Machines Corporation | Detection of alteration of storage keys used to protect memory |
US10838631B2 (en) | 2019-02-25 | 2020-11-17 | International Business Machines Corporation | Detection of alteration of storage keys used to protect memory |
GB2596007A (en) * | 2019-02-25 | 2021-12-15 | Ibm | Detection of alteration of storage keys used to protect memory |
US11209992B2 (en) | 2019-02-25 | 2021-12-28 | International Business Machines Corporation | Detection of alteration of storage keys used to protect memory |
GB2596007B (en) * | 2019-02-25 | 2022-09-07 | Ibm | Detection of alteration of storage keys used to protect memory |
US20220263661A1 (en) * | 2021-02-15 | 2022-08-18 | Sony Semiconductor Israel Ltd. | Efficient Data Item Authentication |
US11799662B2 (en) * | 2021-02-15 | 2023-10-24 | Sony Semiconductor Solutions Corporation | Efficient data item authentication |
CN113505363A (zh) * | 2021-08-04 | 2021-10-15 | 上海瓶钵信息科技有限公司 | 通过软件方式实现存储空间防重放的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2016153728A1 (en) | 2016-09-29 |
US9710675B2 (en) | 2017-07-18 |
EP3274848B1 (en) | 2020-06-10 |
EP3274848A4 (en) | 2018-09-26 |
CN107408081B (zh) | 2021-09-21 |
EP3274848A1 (en) | 2018-01-31 |
US20160283750A1 (en) | 2016-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107408081A (zh) | 提供对存储器的加强重放保护 | |
CN107408192B (zh) | 保护存储器 | |
US11139959B2 (en) | Stream ciphers for digital storage encryption | |
US10061718B2 (en) | Protecting secret state from memory attacks | |
US20090113558A1 (en) | Progressive boot for a wireless device | |
CN102945355A (zh) | 基于扇区映射的快速数据加密策略遵从 | |
CN111262701A (zh) | 一种重放攻击检测方法、系统、设备及存储介质 | |
CN107430555B (zh) | 用于存储器保护的高速缓存和数据组织 | |
WO2014035650A1 (en) | Mechanism for facilitating encryption-free integrity protection of storage data at computing systems | |
CN109643344B (zh) | 用于共享安全性元数据存储器空间的方法和装置 | |
US11301579B1 (en) | Selectively encrypting commit log entries | |
WO2011136767A1 (en) | Protecting the information encoded in a bloom filter using encoded bits of data | |
US11216592B2 (en) | Dynamic cryptographic key expansion | |
US20230409492A1 (en) | Method, apparatus, and system for storing memory encryption realm key ids | |
US9218296B2 (en) | Low-latency, low-overhead hybrid encryption scheme | |
EP4261713A1 (en) | License file management method and apparatus, and device | |
US12126731B2 (en) | System and method for securing host devices | |
US20220398349A1 (en) | System on chip including secure processor and semiconductor system including the same | |
US20230138905A1 (en) | System and method for securing host devices |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |