CN107408192A - 保护存储器 - Google Patents

保护存储器 Download PDF

Info

Publication number
CN107408192A
CN107408192A CN201680012391.6A CN201680012391A CN107408192A CN 107408192 A CN107408192 A CN 107408192A CN 201680012391 A CN201680012391 A CN 201680012391A CN 107408192 A CN107408192 A CN 107408192A
Authority
CN
China
Prior art keywords
data
encryption
memory
key
integrity 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
Application number
CN201680012391.6A
Other languages
English (en)
Other versions
CN107408192B (zh
Inventor
E·M·基申维斯凯
S·查伯拉
龙门
J·欧
D·M·德拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN107408192A publication Critical patent/CN107408192A/zh
Application granted granted Critical
Publication of CN107408192B publication Critical patent/CN107408192B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Abstract

在实施例中,处理器包括:执行指令的至少一个核;以及存储器保护逻辑,用于对要存储到耦合到处理器的存储器的数据进行加密,基于加密数据生成消息认证码(MAC),MAC具有根据第一密钥的第一值,从存储器获得加密数据并且使用MAC验证加密数据,其中MAC将被进行密钥更新以具有根据第二密钥的第二值,而无需加密数据。描述和要求保护其他实施例。

Description

保护存储器
技术领域
实施例涉及对存储器的保护。
背景技术
对计算系统的基于存储器的攻击越来越多受到关注。由于缺乏机密性、完整性和回滚保护,各种各样的攻击可能发生以窃取有价值的数据(特别是当存储在存储器中时)并获得对系统的控制。现有解决方案提供部分保护以试图降低性能开销或提供更健壮的保护,但具有高性能和存储开销,这阻碍了广泛采用。
附图说明
图1是根据实施例的处理器的框图。
图2是根据本发明的实施例的用于处理写入操作的方法的流程图。
图3是根据本发明的实施例的用于处理读取操作的方法的流程图。
图4是根据本发明的一个实施例的密钥更新(re-keying)方法的流程图。
图5是根据本发明的另一个实施例的密钥更新方法的流程图。
图6是根据本发明实施例的MAC存储区的框图。
图7是可以使用实施例的示例系统的框图。
图8是可以使用实施例的示例系统的框图。
图9是根据本发明实施例的系统的框图。
具体实施方式
实施例提供一组用于对具有低延迟、带宽和存储开销的存储器系统实施机密性、完整性和回滚保护的技术。因此,实施例可以被用于广泛的应用并且更好地扩展以适应未来的产品。更具体地,实施例提供了总存储器保护(TMP)技术,使得要提供给耦合到诸如中央处理单元(CPU)、片上系统(SoC)或其他多核处理器的主系统处理器的存储器的所有信息通过机密性、完整性检查和回滚保护机制而得到保护。
在实施例中,从处理器发送到片外存储器(例如动态随机存取存储器(DRAM)和/或非易失性随机存取存储器(RAM))的所有数据可以使用带密文窃取(ciphertext stealing)的基于XEX的调整码本(tweaked-codebook)模式,所谓的XTS高级加密标准(XTS-AES)加密来加密以提供机密性。更一般地,可以利用任何不引起存储开销以提供机密性的加密方案。这种技术的示例包括:电子码本(ECB)或其它AES模式,包括LRW,XEX或XTS。在实施例中,可以通过为发送到存储器的每个数据段生成诸如消息认证码(MAC)的完整性值来执行完整性。为了在MAC之间实现良好的冲突避免,可以为每个64字节(B)高速缓存行生成至少56比特(b)MAC。所产生的存储开销约为10%。可以通过执行用于生成MAC值的加密密钥(本文也称为MAC密钥)的周期性再生和MAC本身的再生来实现回滚保护,而不需要昂贵的计数器存储区。注意,整个受保护的存储器范围不必进行密钥更新,因为它足以更新MAC本身,这在实施例中仅消耗大约10%的受保护存储区。
在相对较低的10%的存储开销和低性能开销的情况下,实施例可以跨整个系统存储器范围使用,并且可以跨从便携式设备延伸到服务器平台以及具有高存储器带宽要求的未来用途的广泛产品可扩展。防回滚保护可以确保攻击者在没有检测的情况下没有确定性的方式重放数据行。因此,实施例在最小的性能开销下提供了强大的安全保证。
实施例可以通过避免使用基于计数器的加密技术来实现用于为系统存储器提供机密性、完整性和回滚保护的低开销可扩展解决方案。没有计数器,MAC存储区开销相对较低,可以进行MAC的定期密钥更新以进行回滚预防。与独立于数据(待加密)本身的计数器模式加密相反,实施例可以利用数据相关(非计数器)模式加密。因此,实施例还避免使用完整性树,,完整性树还会增加存储开销和额外的带宽开销以获得除了所请求的数据之外的树结果。
此外,存储器保护的带宽开销可能相对较低,因为每个存储器访问可以包括至多一个其他访问以读/写MAC。对于MAC进行密钥更新将引起一些额外的带宽和延迟开销,但是对于许多应用,这些业务的大部分将在空闲时段期间执行,并且因此可以在延迟关键业务的突发期间阻止业务开销。在一些实现中,MAC值的本地缓存(例如在处理器的专用高速缓存存储器中)可以甚至更低地降低带宽开销。
为了将MAC计算延迟保持在关键读取路径之外,可以基于密文而不是明文来计算MAC。由于MAC计算在加密完成后开始,所以这样的设计可能会为非关键写入路径增加延迟。然而,这种设计允许MAC检查在密文到达读取返回路径之后立即开始。如果在来自系统存储器的密文之后,MAC到达下一个周期,则可以掩蔽(mask)由于完整性检查而导致的读取响应延迟开销。更具体地,可以通过在发生仲裁的读取响应流水线的最后周期期间执行MAC比较来实现该掩蔽。如果读取响应流水线没有额外的周期来吸收此延迟,则可以使用惰性认证(lazy authentication)来隐藏此延迟。在这种场景中,假设认证将成功,读取响应数据可被发送回请求者(例如,核)。如果MAC检查失败,则触发错误条件,以防止任何损坏的数据被提交到永久系统状态。
可以实现回滚保护,其中攻击者无法确定性地回滚受保护的存储器。为了提供回滚保护,与每个数据行相关联的MAC是带密钥的MAC。在不同的实施例中,可以使用基于安全散列算法(SHA)或消息摘要算法(MD5)的密钥散列MAC(HMAC)。通过MAC值的定期密钥更新来提供回滚保护。为了保持该操作的开销较低,用于产生MAC的密钥可能在整个存储器区域中缓慢且连续地改变。保持移动指针移动通过存储器范围的MAC部分。存储在指针上方的位置的任何MAC都在新的密钥范围内,指针下方的MAC仍然在旧密钥的范围内。在这样的实施例中,在任何给定点上不多于两个密钥是活的,保持复杂度低。请注意,在对于给定的MAC的密钥更新之间的时期期间(称为回滚窗口),回滚攻击或许是可能的。然而,该窗口大小是非确定性的并且相对较短(例如,数分钟的数量级),从而显著增加了复杂性并且降低了进行成功的存储器回滚攻击的可能性。
现在参考图1,示出了根据实施例的处理器的框图。如图1所示,处理器100被实现为多核处理器,并且可以采取片上系统(SoC)或其他多核处理器的形式。作为示例,实施例可以用于适用于并入各种计算系统的多核处理器,范围从便携式设备(例如智能电话,平板计算机等)到客户端计算机系统和服务器计算机系统。
如图所示,处理器100包括多个核110a-110n。在不同的实施例中,核110可以是一组同构的核或异构的核的混合物。在一些情况下,核110可以被实现为有序、乱序或组合的这样的核。此外,存在图形处理单元(GPU)120。在一些情况下,提供单个图形处理器来执行使用与核110不同的流水线架构的专用图形处理。当然,应理解,在某些情况下,可以提供多个GPU,而在其他情况下,处理器可以不包括专用GPU。
共享高速缓存130耦合到各种处理核。在实施例中,共享高速缓存130可以是在各种核和图形处理器之间共享的最后一级高速缓存(LLC)。进一步理解,核本身中可能存在附加级别的高速缓存层次结构,例如核或图形处理器内部的私有级别1和级别2高速缓存。当然,在其他实施例中可以存在其他高速缓存架构。
为了执行如本文所述的总体存储器保护的目的,存在总存储器保护(TMP)模块140。理解的是,TMP模块140可以被实现为硬件、软件和/或固件的适当组合。在不同的处理器实现中,TMP模块140的电路可以以独立的方式实现,以充当共享高速缓存130和耦合到处理器100的给定存储器例如动态随机存取存储器(DRAM)或其他此类系统存储器之间的接口。在其他情况下,TMP模块140可以在处理器100的集成存储器控制器内实现,其用于对相关联的存储器提供接口和控制。在其他情况下,TMP模块140可以被实现在可以是处理器100的可信部分的一部分的存储器执行引擎(MEE)内,诸如被配置为在可信执行环境中操作的安全协处理器、可管理性引擎等内的电路。当然,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和GPU120中的每个的操作频率和/或电压的独立控制。另外,可以存在安全引擎160。在一些情况下,安全引擎160可以被实现为分开的协处理器来执行安全操作。在一些情况下,TMP模块可以利用安全引擎160的某些能力,例如加密能力。也就是说,在另一个实施例中,不是在TMP模块140内具有专用的加密/解密逻辑142,而是在安全引擎160内执行加密/解密操作。应理解,虽然图1的图示中以高高级进行显示,许多变化和替代方案是可能的。
现在参考图2,示出了根据本发明的实施例的用于处理写操作的方法的流程图。在图2所示的实施例中,方法200可以至少部分地由如本文所述的TMP模块执行。方法200从接收写请求而开始(框210)。在实施例中,可以响应于写指令的执行来接收这样的写请求,以将特定数量的数据(例如,高速缓存行宽度量)写入存储器。接下来控制传递到框220,其中写请求的数据可以被加密。更具体地,可以根据诸如XTS-AES模式的数据相关加密模式来执行这种加密。当然,应理解的是,在其它实施例中可以使用不同类型的数据相关加密模式。
此后,在框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更新访问紧急度值与其他存储器业务紧急度值进行比较,并且当其紧急度值变得足够高时,即使优先级较低的存储器业务被停止,也将选择密钥更新操作。虽然这种回滚预防机制是非确定性的,但是可以定义在发生更新之前每个密钥窗口可能存活多长时间的上限。
使用实施例,存储器业务的延迟关键高优先级突发(burst)不会受到重放保护开销的影响,因为至少一些回滚保护开销可以在存储器业务的空闲周期期间发生。此外,基于仲裁的技术允许首先影响低优先级的存储器访问,同时使高优先级业务继续进行。请注意,对于具有不同安全性和其他特征的应用,可以不同地配置回滚时间窗口,从而折衷了针对较短的回滚窗口的性能开销。
现在参考图4,其示出了根据本发明的一个实施例的密钥更新方法的流程图。在图4所示的实施例中,可以执行方法400以使用原始MAC值及其相关联的数据来对MAC值进行密钥更新。当使用加密的MAC算法时,相关联的数据行也将被加载并用于执行密钥更新。也就是说,虽然只有10%的存储器被进行密钥更新,剩余的存储器也被加载以用新的密钥计算新的MAC(这是数据相关的)。在实施例中,TMP模块可以被配置为执行方法400。如所看到的,方法400开始于加载旧密钥并生成新密钥(框405)。在实施例中,该旧密钥可以存储在TMP模块本身的存储区中。可以根据公共密钥生成实践生成新密钥,利用随机数生成器,硬件特定种子和一些密码原语来增加密钥的熵。类似地,新密钥也可以存储在TMP模块的存储区中。在框410,可以将当前的重新MAC地址设置为基本MAC地址。该当前的重新MAC地址用作指向包含MAC值的存储区中的特定位置的指针,并且基本MAC地址可以是存储首先生成的MAC值的存储区内的地址。在图4的实施例中,该存储区可以是系统存储器。在其他情况下,存储器可以是诸如专用MAC存储区的处理器的高速缓存存储器。
在任何情况下,控制接下来传递到菱形420以确定TMP模块是否空闲或者重新MAC定时器是否已经过期。在实施例中,该重新MAC定时器可以被设置为可配置值以提供适当水平的回滚保护。应理解,该定时器的值越低,所提供的保护就越大,同时(由于密钥更新操作)对性能的影响也越大。在特定实施例中,该重新MAC定时器可以设置为大约给定的分钟数数量级(可能在数十亿个处理器时钟周期的数量级)。如果确定该定时器已经过期或TMP模块空闲(并且因此在理想的时间执行密钥更新),则控制传递到框430。在框430,可以加载存储在当前MAC地址中的MAC,以及其相关联的数据。使用该信息,MAC可以被密钥更新,并且所得到的新MAC可以被存储在当前MAC地址处。要执行此密钥更新,MAC验证将基于原始密钥和数据重新生成原始MAC。如果再生的MAC与从存储器加载的MAC匹配,则验证成功并且可以生成新的MAC。新的MAC基于新的密钥和数据而生成。然后将新的MAC写回存储器,替换原始的MAC。
接下来控制传递到框440,其中当前的重新MAC地址可以被更新到下一个位置以提供指向存储在存储器中的下一个MAC的指针。然后,控制传递到菱形445以确定当前MAC地址是否到达保持MAC值的存储器区域的末尾。如果是这样,当前密钥更新的迭代完成,并且控制返回到上面的框405,以在下一个密钥更新迭代期间执行。否则,控制传递到菱形420,其中执行存储器内的下一个MAC的密钥更新操作。
如上所述,图4的密钥更新使用原始MAC值和相关联的数据,从而引发获取数据的带宽。在其他情况下,可以在无需相关联的数据的情况下执行密钥更新操作。在该示例中,可以使用诸如SHA或MD5算法的MAC算法。然而,最终的MAC是通过使用当前MAC密钥对该MAC值进行加密而产生的。这与标准的加密的MAC结构(例如,基于SHA的HMAC)不同,因为数据不需要可用于密钥更新。现在参考图5,示出了根据本发明的另一实施例的密钥更新方法的流程图。在图5所示的实施例中,也可以由TMP模块执行的方法450可以在无需相关联的数据的情况下执行密钥更新。
如图所示,方法450通过从存储器获得加密的MAC而开始(框460)。在框470处,可以使用旧密钥对该MAC进行解密。此后,用新密钥对MAC进行加密(框480)。最后,在框490,加密的MAC被发送回以便存储在存储器中。如图所示,在无需相关联的数据的情况下执行的这种密钥更新在计算复杂性和减少的带宽消耗方面可能更高效。与上述方法400一样,应理解,可以对存储在给定MAC存储区中的所有MAC迭代地执行方法450中所示的密钥更新,此外,这些密钥更新操作可以在TMP模块的空闲时段期间和/或当密钥更新定时器期满时执行。
因此,实施例可以用于检测回滚。考虑以下场景:
DL1:时间t1的数据行值
DL2:时间t2的数据行值
MAC1:与DL1相关联的MAC
MAC2:与DL2相关联的MAC
MACKEY1:时间t1的MAC密钥
MACKEY2:时间t2的MAC密钥
如果攻击者记录DL1和MAC1并且在时刻t2(在此时MAC密钥被刷新)重放它们,则MAC检查将失败,因为使用MACKEY1在DL1上计算MAC1,并且硬件将使用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。
实施例可以在SoC或其他处理器中实现,以结合到各种各样的平台中。现在参考图7,示出了可以使用实施例的示例系统的框图。如所看到的,系统900可以是智能电话或其他无线通信器。基带处理器905被配置为对要从系统发送或由系统接收的通信信号执行各种信号处理。反过来,基带处理器905耦合到应用处理器910,应用处理器910可以是系统的主CPU,执行除了诸如许多众所周知的社交媒体和多媒体应用的用户应用之外还有OS和其他系统软件。应用处理器910还可以被配置为对设备执行各种其他计算操作。应用处理器910可以包括如本文所述的存储器保护逻辑,以保护为处理器外部存储而传送的信息。
反过来,应用处理器910可以耦合到用户界面/显示器920,例如触摸屏显示器。此外,应用处理器910可以耦合到包括非易失性存储器,即闪速存储器930和系统存储器,即DRAM 935的存储器系统。在一些实施例中,闪速存储器930可以包括安全部分932,其中可以存储如本文所述的MAC值。类似的区域可以存在于DRAM 935中。如进一步所看到的,应用处理器910还耦合到捕获设备945,例如可以记录视频和/或静像的一个或多个图像捕获设备。
仍然参考图7,通用集成电路卡(UICC)940包括订户身份模块,其在一些实施例中包括用于存储安全用户信息的安全存储区。系统900还可以包括可以耦合到应用处理器910的安全处理器950。在各种实施例中,安全处理器950可以部分地用于建立TEE。多个传感器925可以耦合到应用处理器910以使得能够输入各种感测的信息,例如加速度计和其他环境信息。此外,一个或多个认证设备995可以用于接收例如用于认证操作的用户生物特征输入。
如进一步所示,提供了经由NFC天线965在NFC近场中通信的近场通信(NFC)非接触式接口960。虽然在图7所示的是单独的天线,应理解,在一些实现中,可以提供一个天线或不同的天线组,以实现各种无线功能。
功率管理集成电路(PMIC)915耦合到应用处理器910以执行平台级功率管理。为此,PMIC 915可以向应用处理器910发出功率管理请求,以根据需要进入某些低功率状态。此外,基于平台约束,PMIC 915还可以控制系统900的其他组件的功率级别。
为了能够发送和接收通信,各种电路可以耦合在基带处理器905和天线990之间。具体地,可以存在射频(RF)收发机970和无线局域网(WLAN)收发机975。通常,RF收发器970可以用于根据诸如3G或4G无线通信协议的给定无线通信协议来接收和发送无线数据和呼叫,例如根据码分多址(CDMA),全球移动通信系统(GSM),长期演进(LTE)或其他协议。此外,可以存在GPS传感器980,其中位置信息被提供给安全处理器950以如本文所述使用。还可以提供其他无线通信,诸如无线电信号的接收或发送,例如AM/FM和其他信号。此外,经由WLAN收发机975,还可以实现诸如根据BluetoothTM或IEEE 802.11标准的本地无线通信。
现在参考图8,示出了可以使用实施例的示例系统的框图。在图8的说明中,系统1300可以是诸如平板计算机、2:1平板计算机、平板手机(phablet)或其他可转换或独立平板计算机系统的移动低功率系统。如图所示,存在SoC 1310,并且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以提供基于平台的功率管理,例如,基于该系统是由电池1390供电还是经由AC适配器1395的AC电源供电。除了该基于电源的功率管理之外,PMIC 1380还可以基于环境和使用条件进一步执行平台功率管理活动。此外,PMIC 1380可以将控制和状态信息传送到SoC 1310,以引起SoC 1310内的各种功率管理动作。
仍然参考图8,为了提供无线能力,WLAN单元1350耦合到SoC 1310,进而耦合到天线1355。在各种实现方式中,WLAN单元1350可以提供根据一种或多种无线协议的通信,包括IEEE 802.11协议,BluetoothTM协议或任何其他无线协议。
如进一步所示,多个传感器1360可以耦合到SoC 1310。这些传感器可以包括各种加速度计、环境和其他传感器,包括用户姿势传感器。最后,音频编解码器1365耦合到SoC1310以提供到音频输出设备1370的接口。当然,应理解,尽管用图8中的这种特定实现方式来示出,许多变化和替代方案是可能的。
实施例可以以许多不同的系统类型来实现。参考图9,示出了根据本发明实施例的系统的框图。如图9所示,多处理器系统1500是点到点互连系统,并且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图9所示,处理器1570和1580中的每一个可以是多核处理器,包括第一和第二处理器核(即,处理器核1574a和1574b以及处理器核1584a和1584b),尽管处理器中可能潜在地存在更多的核。每个处理器可以包括执行本文所述的总体存储器保护技术的硬件和逻辑。
仍然参考图9,第一处理器1570还包括存储器控制器中心(MCH)1572和点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如图9所示,MCH的1572和1582将处理器耦合到相应的存储器,即存储器1532和存储器1534,存储器1532和存储器1534可以是本地连接到相应处理器的系统存储器(例如,DRAM)的部分,并且其可被配置为存储如本文所述的加密信息。第一处理器1570和第二处理器1580可以分别经由P-P互连1562和1564耦合到芯片组1590。如图9所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括通过PP互连1539将芯片组1590与高性能图形引擎1538耦合的接口1592。反过来,芯片组1590可以经由接口1596耦合到第一总线1516。如图9所示,各种输入/输出(I/O)设备1514可以耦合到第一总线1516,以及将第一总线1516耦合到第二总线1520的总线桥1518。在一个实施例中,各种设备可以耦合到第二总线1520,第二总线1520包括例如键盘/鼠标1522、通信设备1526以及数据存储单元1528,例如可以包括代码1530和一个或多个清单的磁盘驱动器或其它大容量存储设备。此外,音频I/O 1524可以耦合到第二总线1520。实施例可以并入其他类型的系统,包括诸如智能蜂窝电话、平板计算机、上网本、UltrabookTM等的移动设备。
以下示例涉及另外的实施例。
在示例1中,一种方法包括:响应于读请求,在处理器的存储器保护逻辑中获得来自存储器的加密数据,并根据数据相关解密模式对所述加密数据进行解密以获得解密数据;基于所述加密数据生成验证完整性值;用第一密钥对加密的完整性值进行解密,所述加密的完整性值与所述加密数据相关联;以及基于解密的完整性值与所述验证完整性值的比较,将所述解密数据提供给目的地。
在示例2中,示例1的方法还包括:如果所述解密的完整性值与所述验证完整性值的比较导致不匹配,则报告完整性违背,而不向所述目的地提供所述解密数据。
在示例3中,上述示例中的一个或多个的方法还包括从所述处理器的高速缓存存储器获得所述加密的完整性值。
在示例4中,上述示例中的一个或多个的方法还包括:基于所述加密数据生成第一完整性值,并且用第一密钥对所述第一完整性值进行加密;之后,用所述第一密钥对所述第一完整性值进行解密;以及用第二密钥对所述第一完整性值进行加密,以获得所述加密的完整性值,其中,在密钥更新操作期间执行对所述第一完整性值的解密和用所述第二密钥进行对所述第一完整性值的加密。
在示例5中,示例4的方法还包括:在存储器请求和针对所述第一完整性值的密钥更新操作之间进行仲裁;以及当与所述密钥更新操作相关联的第一优先级大于与所述存储器请求相关联的第二优先级时,选择针对所述第一完整性值的密钥更新操作。
在示例6中,示例1的方法还包括根据密钥更新调度,对每个均与存储在所述存储器中的数据段相关联的多个完整性值进行密钥更新。
在示例7中,示例6的方法还包括保持指向要进行密钥更新的所述多个完整性值的下一个完整性值的指针。
在示例8中,示例6的方法还包括当所述存储器保护逻辑空闲时,对所述多个完整性值中的至少一些完整性值进行密钥更新。
在示例9中,一个或多个上述示例的方法还包括:在所述解密的完整性值与所述验证完整性值的比较之前,将所述解密数据提供给所述目的地,并且如果所述比较导致不匹配,则产生错误以防止所述解密的数据被提交到所述处理器的状态。
在示例10中,上述示例中的一个或多个的方法还包括:响应于写请求,在所述存储器保护逻辑中接收来自核的未加密数据;根据数据相关加密模式对所述未加密数据进行加密以生成所述加密数据;以及将所述加密数据发送到所述存储器。
在示例11中,示例10的方法还包括:基于所述加密数据生成完整性值;用所述第一密钥对所述完整性值进行加密以获得所述加密的完整性值;以及将所述加密的完整性值发送到所述存储器,所述加密的完整性值要被与所述加密数据相关联地存储在所述存储器中。
在示例12中,机器可读存储介质包括机器可读指令,在机器可读指令被执行时,实现任何上述示例中的任一示例的方法。
在示例13中,处理器包括:执行指令的至少一个核;以及存储器保护逻辑,用于对要被存储到与所述处理器耦合的存储器的数据进行加密,基于加密数据生成MAC,所述MAC具有根据第一密钥的第一值,从所述存储器获得所述加密数据并使用所述MAC验证所述加密数据,其中,所述MAC将被进行密钥更新以具有根据第二密钥的第二值而无需所述加密数据。
在示例14中,存储器保护逻辑对要被发送到所述存储器的所有数据进行加密。
在示例15中,所述存储器保护逻辑执行机密性、完整性和回滚保护。
在示例16中,所述处理器还包括用于存储多个MAC的高速缓存存储器,所述多个MAC中的每一个与要被存储到所述存储器的一部分数据相关联。
在示例17中,所述处理器还包括用于存储所述第一密钥和所述第二密钥的密钥存储区。
在示例18中,所述存储器保护逻辑从所述存储器获得所述MAC以进行所述密钥更新,而所述加密数据保留在所述存储器中。
在示例19中,所述存储器保护逻辑根据指针来对存储在存储区中的MAC的区域进行密钥更新,其中,存储在所述指针下方位置处的所述存储区中的MAC的区域中的第一MAC被用所述第二密钥进行加密,存储在所述指针上方的位置处的所述存储区中的区域的第二MAC被用所述第一密钥进行加密。
在示例20中,系统包括:包括总存储器保护逻辑的处理器,所述总存储器保护逻辑用于根据数据相关加密模式来对要被发送到系统存储器的数据进行加密,在读数据的加密数据被发送到所述系统存储器之前,使用由所述总存储器保护逻辑生成的完整性值来验证从所述存储器获得的所述读数据的完整性,并根据非确定性持续时间对所述完整性值进行密钥更新;以及耦合到所述处理器的所述系统存储器。
在示例21中,处理器还包括:高速缓存存储器,用于存储多个完整性值,每个完整性值与要被发送到所述系统存储器的加密数据段相关联。
在示例22中,所述总存储器保护逻辑响应于读请求而从所述系统存储器获得所述读数据,并且根据数据相关解密模式对所述读数据进行解密以获得解密的读数据,基于加密的读数据生成验证完整性值,用第一密钥对加密的完整性值进行解密,所述加密的完整性值与所述读数据相关联,并且基于解密的完整性值与所述验证完整性值的比较将所述解密的读数据提供给目的地。
在示例23中,所述总存储器保护逻辑响应于写请求而从核接收未加密数据,根据数据相关加密模式对所述未加密数据进行加密,以生成所述加密数据,并且将所述加密数据发送到所述系统存储器。
在示例24中,所述总存储器保护逻辑基于所述加密数据生成所述完整性值,用第一密钥对所述完整性值进行加密,并且将所述加密的完整性值发送到所述系统存储器,所述加密的完整性值与所述加密数据相关联地存储在所述系统存储器中。
在示例25中,装置包括:用于从存储器获得加密数据并根据数据相关解密模式对所述加密数据进行解密以获得解密数据的单元;用于基于所述加密数据生成验证完整性值的单元;用于用第一密钥对加密的完整性值进行解密的单元,所述加密的完整性值与所述加密数据相关联;以及用于基于解密的完整性值与所述验证完整性值的比较,将所述解密数据提供给目的地的单元。
在示例26中,则该装置还包括用于如果所述解密的完整性值与所述验证完整性值的比较导致不匹配,则报告完整性违背,而不向所述目的地提供所述解密数据的单元。
在示例27中,该装置还包括用于从高速缓存存储器获得所述加密的完整性值的单元。
在示例28中,装置还包括:用于基于所述加密数据生成第一完整性值,并且用第一密钥对所述第一完整性值进行加密的单元;用于用所述第一密钥对所述第一完整性值进行解密的单元;以及用于用第二密钥对所述第一完整性值进行加密,以获得所述加密的完整性值的单元,其中,在密钥更新操作期间执行对所述第一完整性值的解密和用所述第二密钥进行对所述第一完整性值的加密。
在示例29中,该装置还包括:用于在存储器请求和针对所述第一完整性值的密钥更新操作之间进行仲裁的单元;以及用于当与所述密钥更新操作相关联的第一优先级大于与所述存储器请求相关联的第二优先级时,选择针对所述第一完整性值的密钥更新操作的单元。
应理解,上述示例的各种组合是可能的。
实施例可以用于许多不同类型的系统。例如,在一个实施例中,通信设备可被布置成执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是其他实施例可以涉及用于处理指令的其他类型的装置,或者一个或多个机器可读介质,机器可读介质包括指令,响应于所述指令在计算设备上执行,使得设备执行本文描述的一种或多种方法和技术。
实施例可以以代码实现,并且可以存储在其上存储有可用于对系统编程以执行指令的指令的非暂时性存储介质上。实施例还可以以数据实现,并且可以存储在非暂时性存储介质上,如果由至少一个机器使用,则使至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于包括软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、光盘可重写(CD-RW)和磁光盘的任何类型的盘,诸如只读存储器(ROM)的半导体器件,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)的随机存取存储器(RAM),可擦除可编程只读存储器(EPROM),闪存,电可擦除可编程只读存储器(EEPROM),磁卡或光卡或适用于存储电子指令的任何其他类型的介质。
虽然已经相对于有限数量的实施例描述了本发明,但是本领域技术人员将理解其中的许多修改和变化。所附权利要求旨在涵盖落入本发明的真实精神和范围内的所有这些修改和变化。

Claims (25)

1.一种方法,包括:
响应于读请求,在处理器的存储器保护逻辑中获得来自存储器的加密数据,并根据数据相关解密模式对所述加密数据进行解密以获得解密数据;
基于所述加密数据生成验证完整性值;
用第一密钥对加密的完整性值进行解密,所述加密的完整性值与所述加密数据相关联;以及
基于解密的完整性值与所述验证完整性值的比较,将所述解密数据提供给目的地。
2.根据权利要求1所述的方法,还包括:如果所述解密的完整性值与所述验证完整性值的比较导致不匹配,则报告完整性违背,而不向所述目的地提供所述解密数据。
3.根据权利要求1所述的方法,还包括从所述处理器的高速缓存存储器获得所述加密的完整性值。
4.根据权利要求1所述的方法,还包括:
基于所述加密数据生成第一完整性值,并且用第一密钥对所述第一完整性值进行加密;
之后,用所述第一密钥对所述第一完整性值进行解密;以及
用第二密钥对所述第一完整性值进行加密,以获得所述加密的完整性值,其中,在密钥更新操作期间执行对所述第一完整性值的解密和用所述第二密钥进行对所述第一完整性值的加密。
5.根据权利要求4所述的方法,还包括:
在存储器请求和针对所述第一完整性值的密钥更新操作之间进行仲裁;以及
当与所述密钥更新操作相关联的第一优先级大于与所述存储器请求相关联的第二优先级时,选择针对所述第一完整性值的密钥更新操作。
6.根据权利要求1所述的方法,还包括根据密钥更新调度,对每个均与存储在所述存储器中的数据段相关联的多个完整性值进行密钥更新。
7.根据权利要求6所述的方法,还保持指向要进行密钥更新的所述多个完整性值的下一个完整性值的指针。
8.根据权利要求6所述的方法,还包括当所述存储器保护逻辑空闲时,对所述多个完整性值中的至少一些完整性值进行密钥更新。
9.根据权利要求1所述的方法,还包括在所述解密的完整性值与所述验证完整性值的比较之前,将所述解密数据提供给所述目的地,并且如果所述比较导致不匹配,则产生错误以防止所述解密的数据被提交到所述处理器的状态。
10.根据权利要求1所述的方法,还包括:
响应于写请求,在所述存储器保护逻辑中接收来自核的未加密数据;
根据数据相关加密模式对所述未加密数据进行加密以生成所述加密数据;以及
将所述加密数据发送到所述存储器。
11.根据权利要求10所述的方法,还包括:
基于所述加密数据生成完整性值;
用所述第一密钥对所述完整性值进行加密以获得所述加密的完整性值;以及
将所述加密的完整性值发送到所述存储器,所述加密的完整性值要被与所述加密数据相关联地存储在所述存储器中。
12.一种机器可读存储介质,其包括机器可读指令,所述指令当被执行时,实现根据权利要求1至11中任一项所述的方法。
13.一种装置,包括用于执行根据权利要求1至11中任一项所述的方法的单元。
14.一种处理器,包括:
执行指令的至少一个核;以及
存储器保护逻辑,用于对要被存储到与所述处理器耦合的存储器的数据进行加密,基于加密数据生成消息认证码(MAC),所述MAC具有根据第一密钥的第一值,从所述存储器获得所述加密数据并使用所述MAC验证所述加密数据,其中,所述MAC将被进行密钥更新以具有根据第二密钥的第二值而无需所述加密数据。
15.根据权利要求14所述的处理器,其中,所述存储器保护逻辑对要被发送到所述存储器的所有数据进行加密。
16.根据权利要求14所述的处理器,其中,所述存储器保护逻辑执行机密性、完整性和回滚保护。
17.根据权利要求14所述的处理器,其中,所述处理器还包括用于存储多个MAC的高速缓存存储器,所述多个MAC中的每一个与要被存储到所述存储器的一部分数据相关联。
18.根据权利要求17所述的处理器,其中,所述处理器还包括用于存储所述第一密钥和所述第二密钥的密钥存储区。
19.根据权利要求14所述的处理器,其中,所述存储器保护逻辑从所述存储器获得所述MAC以进行所述密钥更新,而所述加密数据保留在所述存储器中。
20.根据权利要求14所述的处理器,其中,所述存储器保护逻辑根据指针来对存储在存储区中的MAC的区域进行密钥更新,其中,存储在所述指针下方位置处的所述存储区中的MAC的区域中的第一MAC被用所述第二密钥进行加密,存储在所述指针上方的位置处的所述存储区中的区域的第二MAC被用所述第一密钥进行加密。
21.一种系统,包括:
包括总存储器保护逻辑的处理器,所述总存储器保护逻辑用于根据数据相关加密模式来对要被发送到系统存储器的数据进行加密,在读数据的加密数据被发送到所述系统存储器之前,使用由所述总存储器保护逻辑生成的完整性值来验证从所述存储器获得的所述读数据的完整性,并根据非确定性持续时间对所述完整性值进行密钥更新;以及
耦合到所述处理器的所述系统存储器。
22.根据权利要求21所述的系统,其中,所述处理器还包括:
高速缓存存储器,用于存储多个完整性值,每个完整性值与要被发送到所述系统存储器的加密数据段相关联。
23.根据权利要求21所述的系统,其中,所述总存储器保护逻辑响应于读请求而从所述系统存储器获得所述读数据,并且根据数据相关解密模式对所述读数据进行解密以获得解密的读数据,基于加密的读数据生成验证完整性值,用第一密钥对加密的完整性值进行解密,所述加密的完整性值与所述读数据相关联,并且基于解密的完整性值与所述验证完整性值的比较将所述解密的读数据提供给目的地。
24.根据权利要求23所述的系统,其中,所述总存储器保护逻辑响应于写请求而从核接收未加密数据,根据数据相关加密模式对所述未加密数据进行加密,以生成所述加密数据,并且将所述加密数据发送到所述系统存储器。
25.根据权利要求24所述的系统,其中,所述总存储器保护逻辑基于所述加密数据生成所述完整性值,用第一密钥对所述完整性值进行加密,并且将所述加密的完整性值发送到所述系统存储器,所述加密的完整性值与所述加密数据相关联地存储在所述系统存储器中。
CN201680012391.6A 2015-03-27 2016-03-11 保护存储器 Active CN107408192B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/669,226 US9792229B2 (en) 2015-03-27 2015-03-27 Protecting a memory
US14/669,226 2015-03-27
PCT/US2016/021906 WO2016160305A1 (en) 2015-03-27 2016-03-11 Protecting a memory

Publications (2)

Publication Number Publication Date
CN107408192A true CN107408192A (zh) 2017-11-28
CN107408192B CN107408192B (zh) 2021-06-22

Family

ID=56974392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680012391.6A Active CN107408192B (zh) 2015-03-27 2016-03-11 保护存储器

Country Status (4)

Country Link
US (1) US9792229B2 (zh)
EP (1) EP3274850B1 (zh)
CN (1) CN107408192B (zh)
WO (1) WO2016160305A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10594491B2 (en) 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
US10929572B2 (en) * 2017-04-10 2021-02-23 Nyquist Semiconductor Limited Secure data storage device with security function implemented in a data security bridge
CN109150534B (zh) * 2017-06-19 2021-10-01 华为技术有限公司 终端设备及数据处理方法
IT201700082176A1 (it) * 2017-07-19 2019-01-19 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato e procedimento
EP3679508A4 (en) 2018-01-29 2021-04-21 Hewlett-Packard Development Company, L.P. DATA PROTECTION IN A PRE-OPERATIONAL SYSTEM ENVIRONMENT
US10838773B2 (en) * 2018-03-30 2020-11-17 Intel Corporation Techniques for dynamic resource allocation among cryptographic domains
CN108683498A (zh) * 2018-05-14 2018-10-19 国网江西省电力有限公司电力科学研究院 一种基于可变密钥国密算法的云终端管控方法
WO2020000401A1 (en) * 2018-06-29 2020-01-02 Intel Corporation Transparent Encryption
US11139981B2 (en) 2019-03-29 2021-10-05 Intel Corporation Message authentication code (MAC) based compression and decompression
US11403234B2 (en) 2019-06-29 2022-08-02 Intel Corporation Cryptographic computing using encrypted base addresses and used in multi-tenant environments
US20200257827A1 (en) * 2019-06-29 2020-08-13 Intel Corporation Memory write for ownership access in a core
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US11575504B2 (en) 2019-06-29 2023-02-07 Intel Corporation Cryptographic computing engine for memory load and store units of a microarchitecture pipeline
US11250165B2 (en) 2019-12-20 2022-02-15 Intel Corporation Binding of cryptographic operations to context or speculative execution restrictions
US20220207155A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Instruction support for saving and restoring key information
US11580035B2 (en) 2020-12-26 2023-02-14 Intel Corporation Fine-grained stack protection using cryptographic computing
US11669625B2 (en) 2020-12-26 2023-06-06 Intel Corporation Data type based cryptographic computing
EP4322467A1 (en) * 2021-04-28 2024-02-14 Huawei Technologies Co., Ltd. Key processing method and apparatus

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN1707450A (zh) * 2004-06-08 2005-12-14 侯方勇 保护存储设备中数据机密性与完整性的方法和装置
EP1958114A2 (en) * 2005-12-01 2008-08-20 Telefonaktiebolaget LM Ericsson (publ) Secure and replay protected memory storage
US20090147947A1 (en) * 2007-11-05 2009-06-11 Texas Instruments Deutschland Gmbh Digital-encryption hardware accelerator
US20110038477A1 (en) * 2009-08-17 2011-02-17 Brocade Communication Systems, Inc. Re-keying data in place
US20110154059A1 (en) * 2009-12-23 2011-06-23 David Durham Cumulative integrity check value (icv) processor based memory content protection
WO2013002789A1 (en) * 2011-06-29 2013-01-03 Intel Corporation Method and apparatus for memory encryption with integrity check and protection against replay attacks

Family Cites Families (25)

* Cited by examiner, † Cited by third party
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
WO2000002342A2 (en) 1998-07-02 2000-01-13 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
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
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
EP2281362A4 (en) 2008-05-29 2017-08-02 LG Electronics Inc. Method of encrypting control signaling
US8799673B2 (en) 2009-12-31 2014-08-05 Intel Corporation Seamlessly encrypting memory regions to protect against hardware-based attacks
CN102014386B (zh) * 2010-10-15 2012-05-09 西安西电捷通无线网络通信股份有限公司 一种基于对称密码算法的实体鉴别方法及系统
KR101303278B1 (ko) 2011-12-14 2013-09-04 한국전자통신연구원 비트스트림 보호를 위한 fpga 장치 및 그 방법
WO2013100965A1 (en) 2011-12-28 2013-07-04 Intel Corporation A low-overhead cryptographic method and apparatus for providing memory confidentiality, integrity and replay protection
US9092644B2 (en) 2011-12-28 2015-07-28 Intel Corporation Method and system for protecting memory information in a platform
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
CN103957109B (zh) * 2014-05-22 2017-07-11 武汉大学 一种云数据隐私保护安全重加密方法
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
CN1707450A (zh) * 2004-06-08 2005-12-14 侯方勇 保护存储设备中数据机密性与完整性的方法和装置
EP1958114A2 (en) * 2005-12-01 2008-08-20 Telefonaktiebolaget LM Ericsson (publ) Secure and replay protected memory storage
US20090147947A1 (en) * 2007-11-05 2009-06-11 Texas Instruments Deutschland Gmbh Digital-encryption hardware accelerator
US20110038477A1 (en) * 2009-08-17 2011-02-17 Brocade Communication Systems, Inc. Re-keying data in place
US20110154059A1 (en) * 2009-12-23 2011-06-23 David Durham Cumulative integrity check value (icv) processor based memory content protection
WO2013002789A1 (en) * 2011-06-29 2013-01-03 Intel Corporation Method and apparatus for memory encryption with integrity check and protection against replay attacks

Also Published As

Publication number Publication date
WO2016160305A1 (en) 2016-10-06
US20160285892A1 (en) 2016-09-29
EP3274850A1 (en) 2018-01-31
CN107408192B (zh) 2021-06-22
EP3274850B1 (en) 2019-08-14
US9792229B2 (en) 2017-10-17
EP3274850A4 (en) 2018-11-21

Similar Documents

Publication Publication Date Title
CN107408192A (zh) 保护存储器
TWI715892B (zh) 基於區塊鏈的智慧合約調用方法及裝置、電子設備
US11048825B2 (en) Managing a smart contract on a blockchain
CN107408081B (zh) 提供对存储器的加强重放保护
US9734355B2 (en) System and method for an efficient authentication and key exchange protocol
US20200153808A1 (en) Method and System for an Efficient Shared-Derived Secret Provisioning Mechanism
US9575906B2 (en) Method and system for process working set isolation
CN111324446A (zh) 多址接入边缘计算节点及部署一套分布式记账应用的方法
US20130086385A1 (en) System and Method for Providing Hardware-Based Security
CN110992027A (zh) 在区块链中实现隐私保护的高效交易方法及装置
CN109409885A (zh) 区块链上的跨链交易方法、装置及存储介质
US20160188874A1 (en) System and method for secure code entry point control
US9735953B2 (en) Side channel analysis resistant architecture
CN102945355A (zh) 基于扇区映射的快速数据加密策略遵从
CN108345806A (zh) 一种硬件加密卡和加密方法
CN110264195A (zh) 结合代码标注与交易、用户类型的收据存储方法和节点
JP2007174633A (ja) トークンデバイス及びセキュアメモリデバイスのためのバインディング鍵をセキュアに取得するためのコンピュータ実施方法、および、トークンデバイスとセキュアメモリデバイスとをセキュアにバインドするシステム
CN102855452A (zh) 基于加密组块的快速数据加密策略遵从
CN105612715A (zh) 具有可配置访问控制的安全处理单元
CN111339201B (zh) 基于区块链的测评方法及系统
CN110489996A (zh) 一种数据库数据安全管理方法及系统
WO2021057273A1 (zh) 在fpga上实现高效合约调用的方法及装置
WO2021057221A1 (zh) 基于fpga实现状态更新的方法及装置
WO2021057272A1 (zh) 基于fpga实现合约调用的方法及装置
EP2575068A1 (en) System and method for providing hardware-based security

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