用于低开销的存储器重播保护的并行化的计数器攀树的制作方法

文档序号:8303460阅读:399来源:国知局
用于低开销的存储器重播保护的并行化的计数器攀树的制作方法
【技术领域】
[0001] 本发明涉及计算机系统;更具体而言,涉及对存储在计算机系统的存储器中的数 据的保护。
【背景技术】
[0002] 现代的处理器被设计成保护存储器中的敏感数据免遭硬件和软件攻击。某些处理 器提供用于进行加密、完整性W及重播保护的加密机制。存储器加密保护常驻存储器数据 的保密性。另一方面,完整性保护防止攻击者导致对存储器中的密文(即,经加密的数据, 而不是明文(未加密的数据))的隐藏的修改,重播保护消除对密文的任何未检测到的临时 的替换。在没有该样的保护的情况下,带有对系统的物理访问的攻击者能够记录数据线的 快照,并在稍后的时间点重播它们。
[0003] 存储器加密主要被设计为防止其中当数据线移入和移出处理器管芯时攻击者试 图悄悄地观察数据线的被动攻击。某些处理器包括在数据被存储到存储器的受保护的区域 之前加密敏感数据的加密模块。在对受保护的区域的存储器读取时,在被馈送给处理器之 前,数据线被解密。
[0004] 可W基于用户所需的安全级别,选择加密与解密算法。对加密的一个可能的选择 是计数器模式加密。在计数器模式加密中,加密/解密数据线的加密任务与数据本身分离。 计数器模式加密的一个示例使用AESk加密算法来加密与每一数据线唯一地相关联但是独 立于数据的种子。
[0005] CryptoPad = AESk (种子);
[0006] 加密=明文 X0R Crypto化d ;
[0007] 解密=密文 X0R Crypto化d.
[0008] 为确保计数器模式加密的安全性,种子需要在空间上并且在时间上唯一。可W通 过使用数据线的地址作为种子的组分,来实现空间唯一性。另一方面,可W通过将每个线计 数器与接受加密的数据线相关联,实现时间唯一性。每当相关联的数据线被写回到存储器 时,增大此计数器。此计数器充当数据线的版本。
[0009] 某些处理器实现在树的最低级别存储每一被保护数据线的版本的计数器树状结 构。树的较高级别存储计数器的层次结构。计数器树状结构存储在存储器中,存储在处理 器内的顶级计数器除外。此计数器树状结构通过一连串验证操作,保护存储器区域免遭重 播攻击。向被保护数据线的写入修改计数器树的每一级别中的对应的树节点。当读取被保 护数据线时,处理器验证计数器树的每一级别中的对应的树节点的值,W认证读取结果。
[0010] 如果请求与过程中的请求中的任何一个共享计数器树状结构的任何级别的树节 点,则现有的重播保护算法挂起对传入的请求的处理。如此,对不同的存储器请求的处理被 串行化,该会增大存储器访问等待时间并使系统性能劣化。
[0011] 附图简述
[0012] 此处所描述的本发明的各实施例是作为示例说明的,而不仅限于各个附图的图 形。
[0013] 图1是示出了根据一实施例的包括存储器加密引擎的处理器的框图。
[0014] 图2示出了根据一实施例的由计数器模式加密所使用的计数器树状结构的示例。 [001引图3A-3C示出了根据一实施例的依赖关系链的示例。
[0016] 图4示出了根据一实施例的存储器加密引擎内的组件。
[0017] 图5是示出了根据一实施例的并行化攀树的方法的流程图。
[0018] 图6是示出了根据一实施例的要由存储器加密引擎响应于传入的读取请求执行 的操作的流程图。
[0019] 图7A是根据一个实施例的有序和无序流水线的框图。
[0020] 图7B是根据一个实施例的有序和无序核的框图。
[0021] 图8A-B是根据一个实施例的更具体的示例性有序核架构的框图。
[0022] 图9是根据一个实施例的处理器的框图。
[0023] 图10是根据一个实施例的系统的框图。
[0024] 图11是根据一个实施例的第二系统的框图。
[0025] 图12是根据本发明的实施例的第H系统的框图。
[002引图13是根据一个实施例的芯片上系统(SoC)的框图。
[0027] 实施例的描述
[0028] 在下面的描述中,阐述了很多具体细节。然而,应该理解,本发明的各实施例可W 在没有该些具体细节的情况下实施。在其他情况下,没有详细示出已知的电路、结构,W及 技术,W便不至于使对本描述的理解变得模糊。
[0029] 本发明的各实施例提供用于并行地处理读取请求W由此显著降低对受保护的存 储器的访问等待时间的重播保护机制。重播保护机制删除了由现有的请求挂起算法施加的 读取请求的串行化。重播保护机制跟踪通过对读取请求的并行处理产生的复制的请求,并 防止复制的操作被执行多次,W降低开销。在一个实施例中,由位于处理器管芯上的增强的 存储器加密引擎(也被称为ME巧执行该机制,W分别对于被动和主动攻击执行数据加密和 完整性/重播保护。应该指出的是,此处所描述的各实施例适用于使用计数器树W便进行 重播保护的一类计数器模式加密方法。此处所描述的MEE只表示一个实例,并在下面的描 述中被用作一个示例。
[0030] 在统计上,读取请求构成向存储器控制器发出的全部请求的大部分。因此,对读取 请求的并行处理可W实现显著的性能改善。
[0031] 图1是示出了为进行保密性、完整性和重播保护执行存储器加密操作的处理器 110的实施例的框图。处理器110可W用于下列系统中,包括但不仅限于,台式计算机、平板 电脑、膝上型计算机、上网本、笔记本电脑、个人数字助理(PDA)、服务器、工作站、蜂窝电话、 移动计算设备、智能电话、因特网设备或任何其他类型的计算设备。在另一个实施例中,处 理器110可W用于片上系统(S0C)系统中。
[0032] 处理器110包括一个或多个处理核140 W执行系统的指令。处理核140包括但不 仅限于,取出指令的预取逻辑,解码指令的解码逻辑,执行指令的执行逻辑等等。处理器110 包括高速缓存指令和/或数据的高速缓存160。高速缓存160包括但不仅限于,处理器110 内的高速缓存存储器的一级、二级和末级高速缓存(LLC) 165,或任何其他配置。
[0033] 存储器控制器130执行使处理器510能访问包括易失性存储器和/或非易失性存 储器的主存储器120并与其进行通信的功能。在一个实施例中,存储器控制器130禪合到 包括MEE 150的系统代理180。在一个实施例中,MEE 150位于末级高速缓存165和存储器 控制器130之间,W执行对进出主存储器120的受保护的区域125的数据线的加密、解密和 认证。MEE 150位于处理器管芯上,而存储器120位于处理器管芯之外。
[0034] 根据本发明的一实施例,MEE 150并行地处理多个存储器读取请求,W改善对受保 护的区域125的访问等待时间。MEE 150执行计数器模式加密,其中,加密种子在时间上和 在空间上对于数据线是独特的。如上文所描述的,可W通过使用要被访问的数据线的地址, 实现空间唯一性,而可W通过使用充当数据线的版本的计数器来实现时间唯一性。在一个 实施例中,MEE 150还使用计数器树状结构来保护主存储器120的受保护的区域125中的 数据线。数据线的版本是此计数器树状结构的一部分。下面将参考图2详细描述计数器树 状结构的实施例。
[00巧]图2示出了根据本发明的一实施例的用于完整性和重播保护的计数器树状结构。 应该指出的是,此处所描述的计数器模式加密表示一个示例;本发明的各实施例可W与计 数器模式加密的替代机制一起使用。在替换实施例中,在计数器树状结构中可W比在图2 中所示出的多一些或少一些级别。
[0036] 计数器树状结构包括树节点的级别的层次结构。顶部(根)级别包括存储在处理 器管芯的内部存储中的管芯上的计数器(即,L3计数器210)的序列。内部存储包括但不 仅限于,管芯上的静态随机存取存储器(SRAM)、寄存器组,W及处理器管芯中的任何其他合 适的存储器。由于L3计数器210位于处理器管芯上,因此,它们的内容受信任,没有受被动 和主动攻击的危险。然而,受信任的边界(示为虚线205)在L3计数器210结束。在一个 实施例中,较低级别的计数器树在处理器管芯的外面(例如,在图1的主存储器120中)。
[0037] 在一个实施例中,每一 L3计数器210都链接到包含L2计数器220的序列的一块 L2中间元数据。每一 L2计数器220都链接到包含L1计数器230的序列的一块L1中间元 数据。为简明起见,图2省略了表示L1中间元数据和L1计数器230的框。每一 L1计数器 230都链接到包含L0计数器240的序列的一块L0中间元数据。每一 L0计数器240都链接 到包含版本节点的序列(通过"V"来表示)260的版本块250。每一版本节点260都与主存 储器120的受保护的区域125中的加密的数据线280相关联。版本节点260的内容是在计 数器模式加密中提供加密种子的时间组分的相关联的数据线的版本。由于较低级别的计数 器(包括L2、L1和L0计数器和版本节点260)离开处理器管芯,因此,易受攻击,每一计数 器和每一版本节点都利用嵌入的消息认证代码(MAC)编码(示为带有阴影线的框),W确保 它们的完整性。
[0038] 在一个实施例中,使用来自下一较高的级别的对应的计数器,作为输入,对每一嵌 入的MC在它们被嵌入在其中的线上进行计算。在图2的示例中,使用V"-Vp的值W及其 对应的L0计数器(L03),计算与L03相关联的版本块250 (在图2中被示为中间版本块)的 嵌入的MC。此嵌入的MC的值条带地存储在版本块250的线中(在图2中示为带条带的 框)。类似地计算L0、L1和L2中的每一线的嵌入的MAC。L3计数器不需要嵌入的MC,因 为L3计数器的内容在受信任的边界205内。
[0039] 整个计数器树在受保护的存储器区域上方构建,从版本开始,直到L3计数器,提 供对受保护的存储器区域中的数据线的重播保护。重播保护的过程如下所示。当处理器 对数据线执行读取操作或写入操作时,MEE 150加载包含由数据线的地址所标识的树节点 (也被称为分枝节点)的计数器树的树枝。沿着树枝加载树节点并验证它们的值的真实性 的过程此处被称为攀树(tree walk)。攀树从计数器树的底部级别(即,版本节点260)前 进到根节点(即,L3计数器)。需要验证树节点值的真实性,因为树状结构的主要部分驻留 在主存储器中,因此,易受攻击。在写入的情况下,执行攀树,W验证枝节点值的真实性,并 更新那些值。在读取的情况下,还执行攀树,W验证分枝节点值的真实性,但是,不更新那些 值。在一个实施例中,MEE 150包含实现攀树的有限态机器电路。
[0040] 在一个实施例中,每一加密的数据线280都利用包含从数据线280的内容计算出 的MAC的MAC节点270编码。每当数据线被写回到存储器时,MEE 150(图1的)更新此 MC,W反映存储在存储器中的最近的数据值。当从存储器中读取数据线时,MEE 150验证 其相关联的MC节点270的值,W确定正在被读取的数据线的完整性。MC节点270的使用 提供针对存储器驻留的数据线上的修改攻击的完整性保护。<
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1