CN103620617A - 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 - Google Patents

用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 Download PDF

Info

Publication number
CN103620617A
CN103620617A CN201180071957.XA CN201180071957A CN103620617A CN 103620617 A CN103620617 A CN 103620617A CN 201180071957 A CN201180071957 A CN 201180071957A CN 103620617 A CN103620617 A CN 103620617A
Authority
CN
China
Prior art keywords
mac
cache line
processor
storer
deblocking
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
CN201180071957.XA
Other languages
English (en)
Other versions
CN103620617B (zh
Inventor
S.盖伦
U.萨瓦高恩卡
F.X.麦基恩
C.V.罗扎斯
D.M.杜尔罕
J.多克
O.穆拉
I.安娜蒂
Z.格林菲尔德
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 CN103620617A publication Critical patent/CN103620617A/zh
Application granted granted Critical
Publication of CN103620617B publication Critical patent/CN103620617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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

Abstract

本发明公开了提供加密完整性检查和重放保护以防止在系统存储器上的硬件攻击的方法和设备。通过扩展调整以包括“时间戳”指示符,用于分块密码的操作模式增强了标准XTS-AES操作模式以执行存储器加密。基于树的重放保护方案使用标准XTS-AES加密系统存储器中高速缓存行的内容。用于高速缓存行的消息验证码(MAC)使用增强XTS-AES和与高速缓存行相关联的“时间戳”指示符进行加密。“时间戳指示符”存储在处理器中。

Description

用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备
技术领域
本公开涉及数据的加密保护,并且具体地说,涉及存储器中存储器区域中存储的软件应用的加密。
背景技术
由安全软件应用使用的系统中易失性存储器的区域需要受到保护,防止未经授权实体的恶意修改。这些恶意修改也称为“攻击”,可以是软件攻击或硬件攻击。为安全软件应用提供保密性和完整性保护的一种方法是在中央处理单元(CPU)或处理器封装中集成大的易失性存储器以用作安全软件应用的“专用存储器”。然而,在CPU封装中集成大的易失性存储器是昂贵的。
因此,安全软件应用一般情况下在外部(即,CPU外部)存储器中存储。外部存储器中存储安全软件应用的存储器区域(区块)能够对系统中的操作系统(OS)是可见或不可见的。如果这些存储器区域对OS是可见的,则它们需要受到保护,防止软件攻击和硬件攻击。如果这些存储器区域对OS是不可见的(称为“窃取的存储器区块”),并且存在某种访问控制机制,则它们需要受到保护,防止硬件攻击,即,防止可物理接近外部存储器的攻击者。
附图说明
随着以下具体描述继续,并在参照其中类似的标号示出类似部件的附图时,所要求的主题的实施例的特征将变得明白,并且其中:
图1是根据本发明的原理,包括用于执行存储器加密的存储器加密控制器的系统的框图;
图2是根据本发明的原理,示出处理器中N个计数器的框图,计数器由加密引擎用于执行基于树的重放保护以保护存储器中的地址范围和存储器中存储的消息验证码(MAC),提供加密完整性检查;
图3示出扩展调整(tweak)的一个实施例;
图4是示出在图1所示系统存储器中用于保护在系统存储器中存储的安全应用的区域的实施例的框图;
图5是示出用于执行对图4所示加密区域中高速缓存行的写入访问的方法的实施例的流程图;以及
图6是示出用于执行对图4所示加密区域中的读取访问的方法的实施例的流程图。
虽然以下具体描述将参照所要求主题的说明性实施例继续,但其许多备选、修改和变化将为本领域技术人员所明白。
相应地,所要求主题意图从广义上理解,并且只如随附权利要求所述那样定义。
具体实施方式
外部存储器上的硬件攻击(例如,来自可物理接近外部存储器的攻击者)可以为尝试损坏在外部存储器中存储的映像(例如,软件应用的可执行映像或数据)的方式,即,存储器损坏攻击。例如,攻击者(敌手)对假定为保密性进行了加密但无完整性检查的外部存储器中高速缓存行的修改导致在从存储器读取修改的高速缓存行时修改的高速缓存行的损坏解密。如果攻击者知道映像的内容,则攻击者能够选择性地损坏在其中其存储的外部存储器中受保护存储器区域中物理存储器位置的字符串变量(或其它常量/变量)。修改此变量能够导致各种状况,例如,造成数据被写入攻击者能够在其中访问数据的非受保护存储器区域的溢出状况。
类似地,能够使用试验和错误方法执行损坏软件应用的可执行映像的尝试,其中,存储软件应用的可执行映像的随机高速缓存行的恶意损坏导致程序执行流的意外更改,可能危及安全性,造成数据写入存储器中非受保护存储器区域。
硬件攻击也可用于将用于软件应用的可执行映像替代为恶意可执行映像(代码替换)或者将恶意脚本注入映像中。例如,为执行代码替换,攻击者取得外部存储器的受保护区域的内容的快照,并且在以后的时间在相同受保护区域中加载另一映像时重放该快照。例如,为注入恶意脚本,攻击者在映像存储在受保护存储器区域中时取得栈的快照,并且在以后的时间在完全相同的物理存储器位置存储临界指针或返回地址时重放栈的该快照。
根据本发明的原理,提供了对外部物理存储器的受保护区域提供加密完整性检查和重放保护以便防止在受保护存储器区域上恶意硬件攻击的方法和设备。
图1是根据本发明的原理,包括用于执行存储器加密的存储器加密控制器103的系统100的框图。系统100包括处理器101和输入/输出(I/O)控制器集线器(ICH) 104。处理器101包括控制在处理器101与外部存储器105之间通信的存储器控制器106。处理器101中的存储器加密控制器103可执行存储器105中存储的数据的加密和解密。存储器加密控制器103提供保密性,防止能够读取存储器105的内容的被动攻击者。
处理器101可以是多种处理器的任何一种处理器,如单核Intel® Pentium 4®处理器、单核Intel Celeron处理器、Intel® XScale处理器或多核处理器,如Intel® Pentium D、Intel® Xeon®处理器或Intel® Core® Duo处理器或Intel Core处理器或任何其它类型的处理器。
存储器105是易失性存储器,其可以为动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、双倍数据率(DDR) RAM、双倍数据率2 (DDR2) RAM或存储器总线随机存取存储器(RDRAM)任何其他类型易失性存储器 在另一实施例中,存储器105能够是非易失性存储器,其可以是NAND、NOR、闪存、相变存储器(PCM)或带开关的相变存储器(PCMS)或任何其它类型的非易失性存储器。
ICH 104可包括用于控制与耦合到ICH 104的至少一个存储装置112的通信的存储I/O控制器110。在本文中使用时,“存储装置”可表示可相应地将数据存储到其中和/或从中检索数据的一个或多个设备和/或其一个或多个部分。此外,在本文中使用时,术语“海量存储”和“海量存储装置”可交换使用以表示能够非易失性存储数据的存储。存储装置112可包括相应海量存储,相应海量存储可包括相应半导体、电机、磁和/或光存储装置和/或海量存储,如相应闪存、磁盘和/或光盘存储和/或海量存储。存储装置例如可以是硬盘驱动器、固态驱动器、混合光盘驱动器、数字视频光盘DVD)驱动器、压缩光盘(CD)驱动器、独立磁盘冗余阵列(RAID)、磁带驱动器或其它非易失性存储装置。
存储I/O控制器110可能够根据例如小型计算机系统接口(SCSI)协议、光纤通道(FC)协议、因特网SCSI (iSCSI)协议、串行附接SCSI (SAS)协议、通用串行总线(USB)协议和/或串行高级技术附接(S-ATA)协议,来与存储装置(“存储”)交换数据和/或命令。
在另一实施例中,处理器101和ICH 104可集成到可称为系统芯片(SOC)的单个集成电路中。
将描述本发明的实施例用于存储器105中地址范围的保护。在一实施例中,处理器101中有N个计数器150,N个计数器的每个计数器用于保护存储器105中N个地址范围之一。要保护的地址范围可用于保护安全软件应用使用的存储器区域。受保护存储器区域可称为“窃取存储器区块”,即,包括对操作系统(OS)不可见的存储器的多个物理页的存储器区域(存储器的部分)。在一实施例中,N个计数器150能够在处理器101中的易失性存储器中存储,例如,易失性存储器能够是静态随机存取存储器(SRAM)。
保护存储器105中由安全软件应用使用的存储器区域的一种方法是将存储器105中存储的数据加密。在处理器101中,使用在处理器101内生成和存储的密钥,执行在存储器105中存储器区域中存储的数据的加密和解密。
在一实施例中,安全飞地(Enclave)是为应用提供安全位置以便在操作系统(OS)进程的上下文内执行代码和存储数据的指令集。在此环境中执行的应用称为飞地。飞地从飞地页高速缓存( EPC)执行。飞地页由OS加载到EPC中。无论何时从EPC删除飞地的页,加密保护便用于保护飞地的保密性,并且在飞地被加载回EPC时检测篡改。在EPC内,使用处理器提供的访问控制机制,保护飞地数据。
飞地页高速缓存(EPC)是执行飞地代码和访问受保护飞地数据之处。EPC位于平台的物理地址空间内,但只能够使用SE指令访问。EPC可包含来自许多不同飞地的页,并且提供访问控制机制以保护页的完整性和保密性。页高速缓存保持相干性协议,该协议类似于用于平台中相干物理存储器的协议。
然而,数据的本身加密设计成只提供数据的保密性。例如,在存储器区域中存储的数据的加密有助于保护数据的保密性,防止能够被动读取外部存储器或者能够在处理器301与系统存储器105之间传送数据时嗅探数据的攻击者。然而,外部(系统)存储器105中存储器区域中存储的数据的加密不提供完整性检查。在外部存储器105中存储数据的加密形式未防止能够主动修改或重放外部存储器105中存储的部分存储器映像的攻击者。
恶意攻击者(敌手)能够从外部存储器105的一个存储器位置复制,并且写入外部存储器105的不同存储器位置。例如,攻击者可将在地址a的第x页的内容复制到在地址b的第y页上。
在另一攻击中,对加密的存储器区域具有读/写访问能力的敌手能够通过观察和记录加密的存储器区域位置(例如,在时间2 (t2))并且通过复制在时间1 (t1)写入的加密区域的内容来重置存储器区域,执行重放攻击。在仍有的另一类型的重放攻击中,执行重放攻击的攻击者可具有可在不同时间驻留在相同存储器区域的两个不同应用(上下文)之一的控制。例如,攻击者可在使用应用之一攻击另一应用。
本发明的一实施例通过将此类攻击的效应降低到不超过诱发存储器映像的随机(不可预测且不可控制)更改的能力,减轻了重放攻击。
图2是根据本发明的原理,示出处理器101中N个计数器150的框图,计数器由存储器加密控制器用于执行基于树的重放保护以保护存储器105中的地址范围和存储器中105存储的消息验证码(MAC),提供加密完整性检查;
要保护202的存储器的区域(地址范围)由多个数据高速缓存行208和由MAC行206中存储的多个消息验证码(MAC) 204表示。在图2所示实施例中,要保护202的存储器的区域(“窃取的存储器区块”)包括M个数据高速缓存行208。M个数据高速缓存行208的每行与一个MAC 204相关联。MAC是在消息和秘密密钥上计算的单向哈希函数的结果。在所示实施例中,MAC是在数据高速缓存行208的内容和在处理器重置期间由处理器中随机号生成器生成的密钥上执行的单向哈希的结果。在一实施例中,相同密钥用于为M个数据高速缓存行的每个执行单向哈希。MAC 204被应用到高速缓存行,并且与在读取和解密高速缓存行208的内容时使用的重新计算的MAC进行比较,以检测在高速缓存行208中存储的数据的加密分块在高速缓存行208中存储时是否已改变。
基于树的重放保护方案能够由包括树根、MAC高速缓存行206和数据高速缓存行208的树结构提供。处理器101中有N个计数器150,存储器105中每MAC高速缓存行206一个计数器。树根是用于保护MAC高速缓存行206的内容的处理器101中N个计数器150中的计数器201之一。在一实施例中,高速缓存行的数量(M)为16,每个MAC高速缓存行206具有512比特以存储16个32比特MAC 204,并且每个数据高速缓存行208具有512比特(64字节)。
在一实施例中,使用带有调整和密文窃取(XTS)的XEX加密模式,为存储器105中需要保护的每个高速缓存行(CL) 208的内容加密。带有调整和密文窃取(XTS)-高级加密标准(AES)可调整分块密码(IEEE标准1619-2007)的XEX加密模式是根据国家标准和技术研究院(National Institute of Standards and Technology,NIST)联邦信息处理标准(FIPS) 140-2的操作模式,它定义用于加密保护以恒定长度分块存储的数据的体系结构的元素。在其它实施例中,每个高速缓存行(CL)的内容是明文(未加密)。
XTS-AES操作模式应用于除数据流的最后数据单元可小于其它单元外分成连续的相等大小数据单元的数据流的加密。每个数据单元具有在密钥范围内128或更多数据比特。密钥范围是分成相等大小的数据单元的、通过特定密钥加密的数据。密钥范围由三个非负整数识别:对应于第一数据单元的调整值、数据单元大小和数据的长度。调整值是用于表示在使用XTS-AES加密或解密的数据流中数据的逻辑位置的128比特值。每个数据单元指派有为非负整数的调整值。从任意非负整数开始,连续指派调整值。
XTS-AES操作模式是“可调整窄分块加密”,并且是用于磁盘加密的标准模式(静态数据(data-at-rest)加密)。它能够被视为在电子码书(ECB)模式中的加密,其中,加密使用根据其“索引”位置修改数据分块的加密的调整值(调整)。在ECB模式中,通过分块密码独立加密每个明文分块。对于磁盘加密,在XTS-AES操作模式中,调整用于将加密绑定到被加密的磁盘驱动器(存储媒体)上的扇区。
在一实施例中,存储器加密单元(控制器)使用XTS-AES操作模式将加密绑定到已处理数据分块的(物理)存储器地址。使用AES-XTS在很大程度上有助于防止能够物理操纵加密的存储器映像并且通过交换加密分块的位置或者通过将加密的分块重写为其它加密的分块而进行攻击的攻击者。由于AES-XTS 调整随物理存储器地址而变化,因此,此类攻击变得相当于由攻击者诱发不可预测和不可控制的随机更改的更弱得多的攻击。换而言之,攻击者从交换/重写所获不会多于攻击者从“盲目”更改存储器能够得到的收获。
在用于磁盘加密的标准XTS模式中,通过先生成调整值,然后使用调整值从明文生成密文,执行其索引在单元(u)中为(j)的数据分块P的AES-XTS。
例如,使用在分块标识符(单元(u)上的16字节密钥值(K1),在该单元(u)中单元的位置(j))和如下所示多项式(Poly) x128+x7+x2+x+1,生成的调整值(X):
其中:“*”表示无进位乘法
生成调整值(X)后,使用调整值(X)和另一16字节密钥值(K2),如下所示从明文(P)生成密文(C):
Figure 263997DEST_PATH_IMAGE002
AES-XTS为单元(u)的值预留64比特(8字节)。AES加密在16字节分块上操作时,如等式1所示加密的分块(16字节)的64个剩余比特(8字节)(=“u”)被定义为0。
通过定义“单元”为64字节高速缓存行,以及索引j=0、1、2、3以指示在该高速缓存行中16字节(128比特)数据分块的位置,AES-XTS能够被应用到存储器加密。在此情况下,“u”的值是高速缓存行的(物理)地址。物理地址一般使用48比特编码。
每个MAC行206使用扩展AES-XTS模式(XTS+)加密。在扩展AES-XTS模式中,标准AES-XTS模式经扩展以在调整中使用更多信息(扩展调整)。除标准信息外,扩展调整例如包括高速缓存行地址和分块位置和/或时间戳值。
在一实施例中,扩展调整中存储另外信息的比特驻留在扩展调整的最前面(最高有效)64个比特中。如更早所述,最高有效比特在标准AES-XTS模式中设成0。在另一实施例中,另外的信息驻留在保证为0的其它比特中。因此,扩展AES-XTS是标准AES-XTS的泛化,这是因为如果所有另外信息比特退化为0,则加密是标准XTS模式。
在一个实施例中,如下面等式3中所示,使用高速缓存行地址和时间生成扩展调整:
Figure 659207DEST_PATH_IMAGE003
其中,P是数据分块,其索引为j,在单元u中在以T所示时间加密,以及符号“|”表示级联。
扩展调整经生成,使得调整描述连续的整数,统计在时间0、1、....、2^(32)-1)区域的地址。
用于ML [j](在时间TIME和在地址ACL)的调整(其中j=0、1、2、...、m-1,并且TIME=0、1、2、... 2^(32)-1)为:
调整 = 00...0 [127 : 55] | (ACL [j] >>6) [33 : n+14] | TIME [31 :0] | (ACL [j] >>6) [n+13 :0]
其中:单元=MAC高速缓存行(ML);
每个ML是2^(6) = 64字节,这是(4×128-比特(2^(20))个分块);
每个ML具有40比特基址,ACL [39 : 0],且ACL [5 : 0] = [000000];分区具有2^n MB;
m(ML的数量)= 2^ (n+14);
j是数据流中m个ML之一;
数据流是在不同时间的m个ML,即,ML [j](在时间t),如下所示:
ML[0],ML [1],...,ML [m-1],在时间t=0
ML[0],ML [1], ...,ML [m-l],在时间t=1
ML[0],ML [1],...,ML [m-1],在时间t=2^(32)-1
并且对于<ML [j]的基址表示为ACL [j](其中,j=0、1、2、...、m-1)。
在经过ML(以上面指定的顺序)时,调整从下列正整数开始连续在所有正整数上运行
00...0 [127 : 55] | (ACL[0] >>6)[33 : n+14] | 00...0 [31 :0] | (ACL[0] >>6) [n+13 :0]并且以下列结束:
00...0 [127 : 55] | (ACL[m-1] >>6)[33 : n+14] | 11...1 [31:0] | (ACL[m-1] >>6) [n+13 :0]
例如:
假设有2 MB分区,且n=1,并且m=15。
在时间TIME(32比特)用于ML [j]的调整定义如下:
00...0 [127 : 55] | (ACL[j] >>6) [33 : 15] | TIME [31 :0] | (ACL[j] >>6) [14 :0]
图3示出扩展调整 300的一个实施例。图3所示扩展调整 300是128比特值。扩展调整 300的最低有效48比特(比特47:0)306被预留用于地址(u),并且剩余80个最高有效比特(比特127:48)304被预留用于时间戳(T)。
回到图2,使用扩展调整300为每个MAC高速缓存行206加密,且MAC高速缓存行206中四个MAC的群组的开始地址存储在扩展调整 300的最低有效比特(“地址(u)”)306中,并且与MAC行206相关联的计数器201的值存储在最高有效比特(“时间戳(T)”)304中。MAC高速缓存行206中4个MAC的每个群组对应于128比特分块,并且具有在扩展XTS 调整中使用的对应唯一地址。
图4是示出在图1所示系统存储器105中用于保护在系统存储器105中存储的安全应用的区域的一实施例的框图。系统存储器105包括受保护区域450。受保护区域450包括重放受保护区域404、非重放受保护区域402和MAC区域400。在一实施例中,如更早结合图2所述,使用XTS-AES将在重放受保护区域404和非重放受保护区域402两者中存储的数据加密。如结合图2和3所述,使用扩展XTS-AES将在MAC区域400中存储的加密数据加密。在另一实施例中,在重放受保护区域404和非重放受保护区域402两者中存储的数据是明文(未加密)数据。
MAC区域400包括用于重放受保护区域404中每个高速缓存行208的MAC 205。处理器101中的计数器150包括用于MAC区域400中每个MAC高速缓存行(ML) 206的计数器201。重放受保护区域404中每高速缓存行208 的MAC 205的使用为重放受保护区域404提供完整性保护。MAC区域400中每ML 206计数器201的使用为重放受保护区域404提供重放保护。
在一实施例中,重放受保护区域404的大小是8 兆字节(MB),且每个高速缓存行208具有64字节(512比特),重放受保护区域404具有128K高速缓存行。在其中每ML 206带有16个MAC的一实施例中,8192个ML存储用于128K高速缓存行的128K MAC。在每个MAC具有32比特,并且MAC区域400中为重放受保护区域404中每个128K高速缓存行存储一个MAC的情况下,MAC区域400是512千字节(KB)。每个ML具有在计数器150中存储的相应计数器201。在一实施例中,8192个ML的每个ML具有用于扩展调整的60比特计数器,并且60KB的易失性存储器(例如,静态随机存取存储器(SRAM))用于在处理器101中存储8192个计数器。在存储器105中存储8192个60比特计数器在处理器中消耗的存储器是在重放受保护区域404中为每个高速缓存行存储32比特MAC要求的512KB的8分之一。
在处理器101的初始化期间,计数器150被初始化成非随机值。在一实施例中,非随机值为0。存储器中的高速缓存行208和ML 206也被初始化成可以为0以外的值的其它非随机值。另外,用于生成MAC的密钥被初始化成随机值。在一实施例中,从处理器101中的随机号生成器为密钥采样。
在图4所示实施例中,重放受保护区域是在存储器的更低地址区域,并且MAC行区域是在存储器的更高地址区域。区域基址寄存器存储重放受保护区域的底部的地址(RPR_ADDRESS),并且MAC区域基址寄存器存储MAC行区域的底部的地址(MLR_ADDRESS)。
从MAC区域基址开始,在重放受保护区域中地址“A”的高速缓存行的偏移是比匹配该地址的MAC高速缓存行的偏移的16倍,这是因为每个MAC高速缓存行覆盖重放受保护区域中的16行。
因此,能够如下计算对应于地址“A”的MAC高速缓存行的地址(MAC_LINE_ADDRESS):
MAC_LINE_ADDRESS = [(地址'A' - RPR_ADDRESS/16] + MLR_ADDRESS
在重放受保护区域中有64字节高速缓存行的一实施例中,如下执行重放受保护区域中40比特高速缓存行地址(地址[39:0])到匹配MAC行地址和SRAM阵列条目中XTS+计数器的索引的映射:
高速缓存行地址的比特[5:0]始终为0(由于64字节对齐的原因。
高速缓存行地址的比特[9:6]存储对应于高速缓存行的MAC行中MAC值的索引(选择16个中的一个)。
高速缓存行地址的比特[22:10]识别8192个MAC高速缓存行之一和与该MAC高速缓存行相关联的计数器。
高速缓存行地址的比特[39:23]存储重放受保护区域的基址。
图5是示出用于执行数据分块到图4所示受保护区域450中高速缓存行208的写入的方法的一实施例的流程图。
软件应用被存储在(写入到)存储器105中时,软件应用填充存储器105中重放受保护区域404中的一个或多个高速缓存行208。在一实施例中,每个高速缓存行208具有64字节(512比特)。每个高速缓存行208具有在存储器105中MAC区域400中的ML 206中存储的对应32比特MAC 204。无论何时对于第一次填充高速缓存行208(在重放受保护区域404中),便递增101用于对于该高速缓存行208保留MAC 204的MAC高速缓存行206的对应计数器201。
在方框500,在存储器105的重放受保护区域404中分配高速缓存行208以存储要写入的数据。此外,在存储器105的MAC区域400中分配MAC条目204以存储用于要写入重放受保护区域404中高速缓存行208的数据的MAC。(数据的)每个高速缓存行208在MAC条目204中存储其自己的MAC。(数据的)几个高速缓存行208的MAC存储在MAC区域400的一个ML行206中的MAC条目204中。在MAC具有32比特的一实施例中,16个MAC存储在MAC区域400中的一个512比特ML 206中。在一实施例中,将MAC区域400中的高速缓存行进行XTS+加密,其中MAC区域中的每个ML 206具有相应计数器。处理通过方框502继续。
在方框502,读取与存储高速缓存行208的MAC 204的ML 206相关联的计数器201的内容。也读取ML 206的内容。在一实施例中,ML 208具有512比特以存储16个32比特MAC,对于16个高速缓存行208中的每个一个MAC。处理通过方框504继续。
在方框504,将ML 206的内容解密以便恢复用于ML 206中存储的MAC的明文。使用XTS-AES增强调整操作模式(“扩展XTS-AES”)执行解密。处理器101中的存储器加密控制器103实现XTS-AES增强调整操作模式,其中,T是计数器值,并且u是MAC高速缓存行的物理地址,以及j是分块的索引。这样,调整值(X)不但被绑定到存储器450中ML 206的地址,而且被绑定到在存储器105中分配ML 206的时间处理器101存储的计数器值(“时间戳值”)。
“计数器”和初始化及递增它的方法可有所不同。在一实施例中,计数器能够是线性反馈位移寄存器(LFSR),其初始化为固定或随机化并且使用时钟输入递增的非零值。在另一实施例中,计数器能够是包括随机或确定性地初始化的递增逻辑的寄存器。在仍有的另一实施例中,计数器能够是从随机比特生成器采样的值。计数器的长度(输出比特的数量)能够以这种方式确定,使得尝试在相同计数器值重放复制的映像是不可行的。处理通过方框506继续。
在方框506,使用XTS-AES将要写入高速缓存行208的数据加密。处理通过方框508继续。
在方框508,通过执行ML 206的当前内容与从要在高速缓存行208存储的未加密数据生成的MAC的合并(读取-修改-写入),生成要写入ML 206的数据,该ML206存储与要写入的高速缓存行208相关联的MAC。为更新ML 206中MAC条目之一的内容,读取整个ML 206并将其解密,将用于MAC条目的新数据写入ML 206,并且将ML 206的内容加密,写入并存储在ML区域中。处理通过方框510继续。
在方框510,递进从与ML 206相关联的计数器读取的时间戳值(“计数”)。处理通过方框512继续。
在方框512,使用带有修改的“时间戳值”的扩展XTS-AES,将ML 206的修改的内容加密。处理通过方框514继续。
在方框514,将修改的“时间戳值”写入与处理器中ML 206相关联的计数器201,并且将修改的ML写入ML 206,以及将加密数据写入高速缓存行208。处理结束。
在结合图5所述实施例中,数据分块在写入高速缓存行208之前加密。在其它实施例中,不执行方框506,并且要写入高速缓存行208的数据是明文(未加密)。
图6是示出用于执行对图4所示受保护区域450中的读取访问的方法的一实施例的流程图。
在方框600,读取高速缓存行208、存储用于该高速缓存行208的MAC 205的ML 206及计数器150中与ML 206相关联的计数器201。高速缓存行208、ML 206和计数器201基于如结合图4所述,在读取命令中的存储器地址确定。处理通过方框602继续。
在方框602,使用XTS-AES将从高速缓存行208读取的加密数据解密。处理通过方框604继续。
在方框604,使用扩展XTS-AES和从与ML 206相关联的计数器读取的时间戳值将从ML 206读取的加密MAC 205解密。处理通过方框606继续。
在方框606,从ML 206的解密(明文)内容中的多个MAC提取与高速缓存行208相关联的MAC 205。在一实施例中,在512比特ML 206中存储有16个32比特MAC 205。MAC 205使用从高速缓存行208读取的数据的解密的明文结果生成。处理通过方框608继续。
在方框608,比较生成的MAC和从ML 206读取的MAC。如果相等,则处理通过方框610继续。如果存在不匹配,则处理通过方框612继续。
在方框610,返回从高速缓存行208读取的数据(明文)。
在方框612,已检测到不匹配,并且生成系统重置。
在结合图6所述实施例中,将从高速缓存行208读取的数据加密。在其它实施例中,由于从高速缓存行208读取的数据不是明文(未加密),因此,不执行方框602。
在一实施例中,每个MAC中比特的数量是32,以便降低用于存储MAC的存储器量和为多个高速缓存行中的每个计算相应MAC的时间。如果攻击者修改加密映像,则攻击者在单次尝试中具有2-32的成功概率。每个不匹配导致如结合图6所述由系统重置造成的系统的关闭。在关闭后,系统通过新随机密钥初始化以生成MAC。在一实施例中,从初始化到引导操作系统及最终运行攻击脚本,每次失败的攻击周期占用至少一秒。因此,连续的尝试能够占用高达232秒(大约146年)。
图2所示基于树的重放保护方案是安全的,并且防止高速缓存行的内容被篡改。基于树的重放保护方案防止了字典和生日两种攻击。
字典攻击使用连续尝试来自列表(称为字典)的值的子集而不是所有可能值的技术。字典攻击只尝试最可能成功的那些值。攻击者可收到成对的高速缓存行和对应MAC以构建字典。攻击者随后能够动态搜索字典是否有匹配MAC,并且重放来自收到高速缓存行的密文。
例如,使用32比特MAC时,攻击者能够准备表,该表存储要攻击的高速缓存行的232个“版本”的加密映像和存储用于要攻击的高速缓存行的MAC值的对应MAC行。写入高速缓存行时,攻击者能够将其加密内容替代为高速缓存行的恶意加密版本,并且将MAC行的对应加密内容替代为来自表的匹配加密内容。这将通过MAC检查,产生成功攻击。然而,由于MAC行使用扩展XTS-AES加密,因此,带有两个不同计数器值的完全相同MAC行的加密是不同的,从可行角度而言,使得攻击者建立字典是不切实际/不可行的。因此,基于树的重放保护方案防止了字典攻击。
生日攻击是一种类型的加密攻击,它利用概率理论中生日问题后的数学,即,在随机选择人员的(足够大)集合中,某两个人员将具有相同生日的概率。
例如,如果MAC以独立于地址的方式进行加密,并且攻击者能够生成高速缓存行CL中存储的加密数据的明文,则生日悖论(birthday paradox)能够应用到在两个高速缓存行中存储的数据。攻击者看到存储相同值的两个高速缓存行从而知道MAC (CL1) = MAC (CL2)时,攻击者能够确定有关用于产生MAC的密钥的信息。有关此密钥的信息允许创建将具有所需MAC值并且因此通过MAC检查的伪造数据行。
一般情况下,为防止生日攻击,选择MAC中比特的数量足够大,以便生日攻击变得不切实际。在一实施例中,虽然MAC短(少量的比特),但MAC行使用扩展XTS-AES加密,因此,带有两个不同计数器值的完全相同MAC行的加密是不同的,这防止了生日攻击。另外,计数器未随机初始化到固定值以便防止在计数器上的生日攻击。
在一实施例中,通过在外部存储器中提供另一级的计数器,基于树的重放保护方案能够扩展到N级树。这些计数器使用扩展XTS-AES、处理器中的计数器和外部存储器中计数器的地址进行加密。在MAC行的扩展XTS-AES加密中或者在外部存储器中另一级的计数器的扩展XTS-AES加密中,使用外部存储器中存储的计数器。
基于树的重放保护方案提供在外部存储器中的受保护区域的完整性检查和重放保护。例如,如果攻击者随机损坏外部存储器中的MAC行,则经解密随机修改MAC行中的每个32比特MAC。成功攻击的概率是2-32。失败导致如更早所述占用大约一秒的重置。如果攻击者随机攻击外部存储器中的高速缓存行,则成功攻击的概率是2-32。失败导致如更早所述占用大约一秒的重置。
如果攻击者重放无计数器翻转(counter rollover)的MAC行,则这导致MAC行的随机损坏,这导致如更早所述的重置。如果攻击者重放带有成功计数器翻转的MAC行,则攻击将成功,但实际上,翻转60比特计数器将占用太多时间而使此类攻击策略不可行。
用于XTS-AES的一实施例已描述,然而,扩展调整模式不限于XTS-AES,并且能够在其它实施例中应用到其它可调整加密方案。例如,在用于LRW(M. Liskov、R. Rivest和D. Wagner)可调整分块密码的实施例中,LRW能够以类似方式增强为增强LRW模式。
本领域技术人员将明白的是,本发明的实施例中涉及的方法可包含在包括计算机可用媒体的计算机程序产品中。例如,此类计算机可用媒体可包括上面存储有计算机可读程序代码的诸如压缩光盘只读存储器(CD ROM)光盘或常规ROM装置等只读存储器装置或计算机软磁盘。
虽然本发明的实施例已参照其实施例特别示出和描述,但本领域的技术人员将理解,在不脱离随附权利要求包含的本发明的实施例的范围的情况下,可在形式和细节上对其进行各种更改。

Claims (20)

1.一种方法,包括:
由处理器生成用于与应用相关联的数据分块的消息验证码(MAC);
在处理器中提供多个计数器,每个计数器与存储器中多个MAC高速缓存行之一相关联;
由所述处理器将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的计数器读取的时间戳值;
由所述处理器在所述存储器的高速缓存行中存储所述数据分块;以及
由所述处理器在所述存储器中MAC高速缓存行中存储所述MAC,所述存储器与所述处理器分开。
2.如权利要求1所述的方法,其中所述应用是安全应用,所述数据分块由所述处理器加密,并且所加密的数据分块由所述处理器在存储器的所述高速缓存行中存储。
3.如权利要求1所述的方法,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES) 调整的XEX加密模式。
4.如权利要求1所述的方法,其中所述调整是LRW 调整。
5.如权利要求1所述的方法,其中所述MAC高速缓存行是在所述存储器的受保护区域中。
6.如权利要求1所述的方法,其中所述高速缓存行是在所述存储器的重放受保护区域中。
7.如权利要求1所述的方法,其中所述MAC具有32比特,所述MAC高速缓存行具有512比特,以及所述高速缓存行具有512比特。
8.一种设备,包括:
多个计数器,每个计数器与外部存储器中多个MAC高速缓存行之一相关联;以及
逻辑,所述逻辑生成用于与所述外部存储器中存储的应用相关联的数据分块的消息验证码(MAC),所述逻辑将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的所述计数器读取的时间戳值,所述逻辑在所述外部存储器的高速缓存行中存储所述数据分块以及在所述外部存储器中的MAC高速缓存行中存储所述MAC。
9.如权利要求8所述的设备,其中所述应用是安全应用,所述数据分块由所述处理器加密,并且所加密的数据分块由所述处理器在存储器的高速缓存行中存储。
10.如权利要求8所述的设备,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES) 调整的XEX加密模式。
11.如权利要求8所述的设备,其中所述调整是LRW 调整。
12.如权利要求8所述的设备,其中所述MAC高速缓存行是在所述外部存储器的受保护区域中。
13.如权利要求8所述的设备,其中所述高速缓存行是在所述外部存储器的重放受保护区域中。
14.如权利要求8所述的设备,其中所述MAC具有32比特,所述MAC高速缓存行具有512比特,以及所述高速缓存行具有512比特。
15.一种包括具有相关联信息的机器可存取媒体的制品,其中所述信息在被存取时促使机器执行以下操作:
由处理器生成用于与应用相关联的数据分块的消息验证码(MAC);
在处理器中提供多个计数器,每个计数器与存储器中多个MAC高速缓存行之一相关联;
由所述处理器将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的计数器读取的时间戳值;
由所述处理器在所述存储器的高速缓存行中存储所述数据分块;以及
由所述处理器在所述存储器中的MAC高速缓存行中存储所述MAC,所述存储器与所述处理器分开,所述数据分块由所述处理器加密,并且所加密的数据分块由所述处理器在存储器的高速缓存行中存储。
16.如权利要求15所述的制品,其中所述应用是安全应用。
17.如权利要求15所述的制品,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES) 调整的XEX加密模式。
18.如权利要求15所述的制品,其中所述调整是LRW 调整。
19.一种系统,包括:
存储应用的海量存储装置;以及
处理器,包括:
多个计数器,每个计数器与外部存储器中多个MAC高速缓存行之一相关联;以及
逻辑,所述逻辑生成用于与所述外部存储器中存储的应用相关联的数据分块的消息验证码(MAC),所述逻辑将所述MAC加密,所述MAC使用调整来加密,所述调整包括用于所述MAC高速缓存行的高速缓存行标识符以存储所述MAC和从与所述MAC高速缓存行相关联的计数器读取的时间戳值,所述逻辑在所述外部存储器的高速缓存行中存储所述数据分块以及在所述外部存储器中的MAC高速缓存行中存储所述MAC。
20.如权利要求19所述的系统,其中所述调整是带有调整和密文窃取(XTS)-高级加密标准(AES) 调整的XEX加密模式。
CN201180071957.XA 2011-06-29 2011-06-29 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备 Active CN103620617B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/042413 WO2013002789A1 (en) 2011-06-29 2011-06-29 Method and apparatus for memory encryption with integrity check and protection against replay attacks

Publications (2)

Publication Number Publication Date
CN103620617A true CN103620617A (zh) 2014-03-05
CN103620617B CN103620617B (zh) 2016-08-17

Family

ID=47424443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180071957.XA Active CN103620617B (zh) 2011-06-29 2011-06-29 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备

Country Status (7)

Country Link
US (1) US9076019B2 (zh)
EP (1) EP2726991B1 (zh)
JP (1) JP5700481B2 (zh)
KR (1) KR101577886B1 (zh)
CN (1) CN103620617B (zh)
TW (1) TWI556106B (zh)
WO (1) WO2013002789A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653467A (zh) * 2015-05-21 2016-06-08 宇龙计算机通信科技(深圳)有限公司 一种存储空间分配方法及装置
CN106664460A (zh) * 2014-06-20 2017-05-10 索尼公司 信息处理设备和信息处理方法
CN107111730A (zh) * 2014-11-07 2017-08-29 新思公司 用于数据存储的完整性保护
CN107408081A (zh) * 2015-03-26 2017-11-28 英特尔公司 提供对存储器的加强重放保护
CN107771324A (zh) * 2015-09-17 2018-03-06 慧与发展有限责任合伙企业 有效地存储初始化矢量
CN107835145A (zh) * 2016-09-21 2018-03-23 炫彩互动网络科技有限公司 一种防重放攻击的方法及分布式系统
CN107851170A (zh) * 2015-07-20 2018-03-27 英特尔公司 支持用于存储器地址范围的可配置安全级别
CN108351839A (zh) * 2015-12-24 2018-07-31 英特尔公司 用来挂起/恢复安全飞地页面高速缓存中飞地的迁移的指令和逻辑
CN109697174A (zh) * 2018-12-14 2019-04-30 中国航空工业集团公司西安航空计算技术研究所 一种机载计算机存储系统敏感分区防护方法
CN109829316A (zh) * 2017-11-23 2019-05-31 三星电子株式会社 加密设备、包括所述加密设备的片上系统以及电子设备
CN110825672A (zh) * 2014-06-16 2020-02-21 德州仪器公司 用于联机加密处理的高性能自主硬件引擎
US20200358620A1 (en) * 2019-05-10 2020-11-12 Samsung Electronics Co., Ltd. Method of operating memory system with replay attack countermeasure and memory system performing the same
CN112699383A (zh) * 2019-10-22 2021-04-23 英飞凌科技股份有限公司 数据密码设备、存储器系统及其操作方法
CN117407928A (zh) * 2023-12-13 2024-01-16 合肥康芯威存储技术有限公司 存储装置、存储装置的数据保护方法、计算机设备及介质

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101577886B1 (ko) 2011-06-29 2015-12-15 인텔 코포레이션 무결성 검사 및 리플레이 공격들에 대한 보호를 이용하는 메모리 암호화를 위한 방법 및 장치
US8996934B2 (en) 2012-09-29 2015-03-31 Intel Corporation Transaction-level testing of memory I/O and memory device
US9003246B2 (en) 2012-09-29 2015-04-07 Intel Corporation Functional memory array testing with a transaction-level test engine
US9009540B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem command bus stress testing
US9009531B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem data bus stress testing
TWI517655B (zh) * 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
US20150033034A1 (en) * 2013-07-23 2015-01-29 Gideon Gerzon Measuring a secure enclave
WO2015084797A1 (en) 2013-12-02 2015-06-11 Mastercard International Incorporated Method and system for secure tranmission of remote notification service messages to mobile devices without secure elements
US9213653B2 (en) * 2013-12-05 2015-12-15 Intel Corporation Memory integrity
US9910790B2 (en) * 2013-12-12 2018-03-06 Intel Corporation Using a memory address to form a tweak key to use to encrypt and decrypt data
US10185842B2 (en) 2015-03-18 2019-01-22 Intel Corporation Cache and data organization for memory protection
US9798900B2 (en) 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
US9792229B2 (en) * 2015-03-27 2017-10-17 Intel Corporation Protecting a memory
US10230528B2 (en) * 2015-05-04 2019-03-12 Intel Corporation Tree-less integrity and replay memory protection for trusted execution environment
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US9904805B2 (en) 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US9990249B2 (en) 2015-12-24 2018-06-05 Intel Corporation Memory integrity with error detection and correction
US10594491B2 (en) 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
CN105491069B (zh) * 2016-01-14 2018-08-21 西安电子科技大学 云存储中基于抵抗主动攻击的完整性验证方法
US10346318B2 (en) * 2016-09-13 2019-07-09 Intel Corporation Multi-stage memory integrity method and apparatus
US10528485B2 (en) 2016-09-30 2020-01-07 Intel Corporation Method and apparatus for sharing security metadata memory space
US10235304B2 (en) * 2016-10-01 2019-03-19 Intel Corporation Multi-crypto-color-group VM/enclave memory integrity method and apparatus
TWI610196B (zh) * 2016-12-05 2018-01-01 財團法人資訊工業策進會 網路攻擊模式之判斷裝置、判斷方法及其電腦程式產品
WO2018154623A1 (ja) * 2017-02-21 2018-08-30 三菱電機株式会社 暗号化装置及び復号装置
US10733313B2 (en) * 2018-02-09 2020-08-04 Arm Limited Counter integrity tree for memory security
US11082432B2 (en) * 2017-12-05 2021-08-03 Intel Corporation Methods and apparatus to support reliable digital communications without integrity metadata
KR20190075363A (ko) * 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
US20190196984A1 (en) * 2017-12-27 2019-06-27 Qualcomm Incorporated Method, apparatus, and system for dynamic management of integrity-protected memory
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
US10838773B2 (en) * 2018-03-30 2020-11-17 Intel Corporation Techniques for dynamic resource allocation among cryptographic domains
KR102625275B1 (ko) * 2018-08-03 2024-01-12 엘지전자 주식회사 비휘발성 메모리를 구비하는 전자 기기
US11120167B2 (en) * 2019-03-25 2021-09-14 Micron Technology, Inc. Block chain based validation of memory commands
KR20200128825A (ko) 2019-05-07 2020-11-17 삼성전자주식회사 분리된 rpmb 기능을 가지는 스토리지 시스템 및 그 구동 방법
US11797717B2 (en) 2019-05-21 2023-10-24 Micron Technology, Inc. Bus encryption for non-volatile memories
US11520905B2 (en) 2019-11-20 2022-12-06 Kyndryl, Inc. Smart data protection
US11659001B2 (en) 2019-12-12 2023-05-23 General Electric Company Non-intrusive replay attack detection system
US20230132163A1 (en) * 2020-04-23 2023-04-27 Nec Corporation Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium
US20220207194A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Memory address bus protection for increased resilience against hardware replay attacks and memory access pattern leakage
KR20220093664A (ko) 2020-12-28 2022-07-05 삼성전자주식회사 크립토 장치, 그것을 갖는 집적 회로 및 컴퓨팅 장치, 및 그것의 쓰기 방법
GB2622066A (en) * 2022-09-01 2024-03-06 Advanced Risc Mach Ltd Counter tree
GB2622065A (en) * 2022-09-01 2024-03-06 Advanced Risc Mach Ltd Counter integrity tree

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007062941A2 (en) * 2005-12-01 2007-06-07 Telefonaktiebolaget Lm Ericsson (Publ) Secure and replay protected memory storage
US20090172416A1 (en) * 2007-12-28 2009-07-02 Peter Bosch Storage and Retrieval of Encrypted Data Blocks with In-Line Message Authentication Codes
US20110123020A1 (en) * 2009-11-26 2011-05-26 Samsung Electronics Co., Ltd. Endecryptor capable of performing parallel processing and encryption/decryption method thereof
US20110154059A1 (en) * 2009-12-23 2011-06-23 David Durham Cumulative integrity check value (icv) processor based memory content protection

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816968B1 (en) * 1998-07-10 2004-11-09 Silverbrook Research Pty Ltd Consumable authentication protocol and system
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP2003228284A (ja) * 2002-01-31 2003-08-15 Fujitsu Ltd データ保存装置、データ保存方法、データ検証装置、データアクセス許可装置、プログラム、記録媒体
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
DE10221409A1 (de) * 2002-05-14 2003-12-04 Infineon Technologies Ag Schaltung und Verfahren zur Durchführung einer Berechnung
US20050144468A1 (en) * 2003-01-13 2005-06-30 Northcutt J. D. Method and apparatus for content protection in a personal digital network environment
US7392399B2 (en) * 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
JP4409619B2 (ja) * 2006-02-24 2010-02-03 富士通株式会社 情報処理装置、制御装置および制御方法
US8095802B2 (en) * 2006-09-12 2012-01-10 International Business Machines Corporation System and method for securely saving a program context to a shared memory
US8356178B2 (en) * 2006-11-13 2013-01-15 Seagate Technology Llc Method and apparatus for authenticated data storage
US8209542B2 (en) * 2006-12-29 2012-06-26 Intel Corporation Methods and apparatus for authenticating components of processing systems
US8879727B2 (en) 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
US9324361B2 (en) * 2007-08-14 2016-04-26 Seagate Technology Llc Protecting stored data from traffic analysis
US20090187771A1 (en) * 2008-01-17 2009-07-23 Mclellan Jr Hubert Rae Secure data storage with key update to prevent replay attacks
US8615799B2 (en) * 2008-05-24 2013-12-24 Via Technologies, Inc. Microprocessor having secure non-volatile storage access
JP5333450B2 (ja) * 2008-08-29 2013-11-06 日本電気株式会社 調整値付きブロック暗号化装置、方法及びプログラム並びに復号装置、方法及びプログラム
EP2340631A1 (en) * 2008-11-10 2011-07-06 William V. Oxford Method and system for controling code execution on a computing device using recursive security protocol
US8468365B2 (en) * 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
KR101577886B1 (ko) 2011-06-29 2015-12-15 인텔 코포레이션 무결성 검사 및 리플레이 공격들에 대한 보호를 이용하는 메모리 암호화를 위한 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007062941A2 (en) * 2005-12-01 2007-06-07 Telefonaktiebolaget Lm Ericsson (Publ) Secure and replay protected memory storage
US20090172416A1 (en) * 2007-12-28 2009-07-02 Peter Bosch Storage and Retrieval of Encrypted Data Blocks with In-Line Message Authentication Codes
US20110123020A1 (en) * 2009-11-26 2011-05-26 Samsung Electronics Co., Ltd. Endecryptor capable of performing parallel processing and encryption/decryption method thereof
US20110154059A1 (en) * 2009-12-23 2011-06-23 David Durham Cumulative integrity check value (icv) processor based memory content protection

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ALOMARI.M.A ET AL: "《A Study on Encryption Algorithms and Modes for Disk Encryption》", 《2009 INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING SYSTEMS, IEEE》 *
HATZIDIMITRIOU ET AL: "《Implementation of a P1619 crypto-core for Shared Storage Media》", 《2010 15TH IEEE MEDITERRANEAN ELECTROTECHNICAL CONFERENCE》 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825672B (zh) * 2014-06-16 2023-11-28 德州仪器公司 用于联机加密处理的高性能自主硬件引擎
CN110825672A (zh) * 2014-06-16 2020-02-21 德州仪器公司 用于联机加密处理的高性能自主硬件引擎
CN106664460B (zh) * 2014-06-20 2019-08-20 索尼公司 信息处理设备和信息处理方法
CN106664460A (zh) * 2014-06-20 2017-05-10 索尼公司 信息处理设备和信息处理方法
US10284529B2 (en) 2014-06-20 2019-05-07 Sony Corporation Information processing apparatus and information processing method
CN107111730A (zh) * 2014-11-07 2017-08-29 新思公司 用于数据存储的完整性保护
CN107111730B (zh) * 2014-11-07 2021-01-08 新思公司 用于数据存储的完整性保护
CN107408081A (zh) * 2015-03-26 2017-11-28 英特尔公司 提供对存储器的加强重放保护
CN107408081B (zh) * 2015-03-26 2021-09-21 英特尔公司 提供对存储器的加强重放保护
CN105653467A (zh) * 2015-05-21 2016-06-08 宇龙计算机通信科技(深圳)有限公司 一种存储空间分配方法及装置
CN107851170B (zh) * 2015-07-20 2022-06-24 英特尔公司 支持用于存储器地址范围的可配置安全级别
CN107851170A (zh) * 2015-07-20 2018-03-27 英特尔公司 支持用于存储器地址范围的可配置安全级别
CN107771324A (zh) * 2015-09-17 2018-03-06 慧与发展有限责任合伙企业 有效地存储初始化矢量
CN108351839B (zh) * 2015-12-24 2023-10-31 英特尔公司 挂起/恢复飞地页面高速缓存中飞地的迁移的设备和方法
CN108351839A (zh) * 2015-12-24 2018-07-31 英特尔公司 用来挂起/恢复安全飞地页面高速缓存中飞地的迁移的指令和逻辑
CN107835145A (zh) * 2016-09-21 2018-03-23 炫彩互动网络科技有限公司 一种防重放攻击的方法及分布式系统
CN107835145B (zh) * 2016-09-21 2019-12-31 炫彩互动网络科技有限公司 一种防重放攻击的方法及分布式系统
CN109829316A (zh) * 2017-11-23 2019-05-31 三星电子株式会社 加密设备、包括所述加密设备的片上系统以及电子设备
CN109697174A (zh) * 2018-12-14 2019-04-30 中国航空工业集团公司西安航空计算技术研究所 一种机载计算机存储系统敏感分区防护方法
US20200358620A1 (en) * 2019-05-10 2020-11-12 Samsung Electronics Co., Ltd. Method of operating memory system with replay attack countermeasure and memory system performing the same
US11552801B2 (en) * 2019-05-10 2023-01-10 Samsung Electronics Co., Ltd. Method of operating memory system with replay attack countermeasure and memory system performing the same
CN112699383A (zh) * 2019-10-22 2021-04-23 英飞凌科技股份有限公司 数据密码设备、存储器系统及其操作方法
CN112699383B (zh) * 2019-10-22 2023-11-14 英飞凌科技股份有限公司 数据密码设备、存储器系统及其操作方法
CN117407928A (zh) * 2023-12-13 2024-01-16 合肥康芯威存储技术有限公司 存储装置、存储装置的数据保护方法、计算机设备及介质
CN117407928B (zh) * 2023-12-13 2024-03-22 合肥康芯威存储技术有限公司 存储装置、存储装置的数据保护方法、计算机设备及介质

Also Published As

Publication number Publication date
KR20140018410A (ko) 2014-02-12
TW201319809A (zh) 2013-05-16
WO2013002789A1 (en) 2013-01-03
EP2726991A4 (en) 2015-04-08
EP2726991A1 (en) 2014-05-07
TWI556106B (zh) 2016-11-01
CN103620617B (zh) 2016-08-17
JP2014523020A (ja) 2014-09-08
EP2726991B1 (en) 2018-03-14
US9076019B2 (en) 2015-07-07
JP5700481B2 (ja) 2015-04-15
KR101577886B1 (ko) 2015-12-15
US20140223197A1 (en) 2014-08-07

Similar Documents

Publication Publication Date Title
CN103620617A (zh) 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备
KR101479957B1 (ko) 리플레이 공격에 대한 보호를 갖는 메모리 암호화를 위한 트위크 가능한 암호화 모드
EP3355232B1 (en) Input/output data encryption
US9559837B2 (en) Methods for cryptographic delegation and enforcement of dynamic access to stored data
Diesburg et al. A survey of confidential data storage and deletion methods
US5757919A (en) Cryptographically protected paging subsystem
US9443111B2 (en) Device security using an encrypted keystore data structure
US20020099946A1 (en) Cryptographically protected paging subsystem
KR20110036854A (ko) 메시지 인증 코드 사전 연산 방법 및 시스템
US9959216B2 (en) Generating and using an enhanced initialization vector
Benadjila et al. Secure storage—Confidentiality and authentication
CN107563226A (zh) 一种存储器控制器、处理器模块及密钥更新方法
WO2023073368A1 (en) Methods and systems for secure data storage
CN103154967A (zh) 修改元素的长度以形成加密密钥
US20240080193A1 (en) Counter integrity tree

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant