CN102138300B - 消息认证码预计算在安全存储器中的应用 - Google Patents
消息认证码预计算在安全存储器中的应用 Download PDFInfo
- Publication number
- CN102138300B CN102138300B CN200980133393.0A CN200980133393A CN102138300B CN 102138300 B CN102138300 B CN 102138300B CN 200980133393 A CN200980133393 A CN 200980133393A CN 102138300 B CN102138300 B CN 102138300B
- Authority
- CN
- China
- Prior art keywords
- data
- rijndael
- piece
- xor
- authentication code
- 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.)
- Expired - Fee Related
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/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/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
-
- 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
-
- 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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
Abstract
一种方法,包括以下步骤:通过执行伪随机置换(PRP)和伪随机函数(PRF)中的至少一个从数据输入创建数据的随机置换;通过组合数据的随机置换和所接收的第二数据块并且在组合的结果上执行ε差分均匀函数,以创建第一数据块;将ε-DU函数评估的结果与秘密密钥进行异或;以及将第一数据块变为第一消息认证码。
Description
技术领域
本发明涉及预计算认证码在安全存储器中应用的方法和装置。
背景技术
消费产品、商业产品甚至是军用设备日益地变得依赖于计算机系统。当产品与计算设备结合时,人们可以设法利用产品的弱点来免费使用产品或者破坏该产品。在计算世界中,黑客、侵权者或者对手试图利用通过篡改设备的存储器来使用计算设备的产品。典型地,在保护计算完整性时有两个主要的安全领域:基于软件和基于硬件。基于软件的安全性涉及软件的完整性。基于硬件的安全性假设黑客已经完全进入计算系统并且可能使用示波器和逻辑分析仪来观察计算系统。
通过将全部系统集成在芯片上(SoC),芯片上的超大规模集成电路的发展已经提供防止篡改的硬件计算系统。因此将整个计算系统集成到芯片上可以阻止对手的攻击。然而,在大部分实际方案中,片上存储器的不足致使该方案无法实现。程序和数据必需存储在片外存储器中。这为对手通过篡改片外存储器来破坏计算设备打开了道路。
对存储器进行签名和加密是阻止对手成功篡改片外存储器的一种方式。消息签名类似于校验和,可以用于验证一块存储器自从上一次读取以来没有发生变化。当数据写入片外存储器时,产生签名并连同该数据进行存储。当从片外存储器读取数据时,通过签名验证来确保数据没有发生变化。产生签名可能是昂贵的操作。需要使用许多时钟周期来产生签名。因此,产生和校验存储器签名必须高效。
消息认证已经成为大量研究的一个课题。虽然大部分普通的MAC方案包括对与冗余数据(例如,32个0的字符串)连接的消息上的伪随机置换(PRP)进行简单的评估,但是这种方案没有给它们自己提供预计算。
MAC计算的另一方法使用通用哈希函数(UHF)。从UHF获得MAC的想法首先由Carter和Wegman提出(Wegman,Carter,新哈希函数以及它们在认证和集合相等性上的使用(New Hash Functions and Their Usein Authentication and Set Equality),JCSS,22:265,1981)。Brassard稍后提出了使用伪随机发生器以减小MAC密钥的大小(Gilles Brassard,请求短秘密共享密钥的用于计算的安全认证标签(On computationally secureauthentication tags requiring short secret shared keys),Crypto’82,79-86)。相应的结构如下:MAC(m,r)=h(m)XOR F(r),其中h是UHF,以及F是伪随机发生器。自此,大量的研究集中在所使用的函数h和F的速度和其它方面的提高上。
MAC预计算结构与之前提出的结构不同,同时拥有在利用预计算的短消息认证中所特别期望的属性。
发明内容
在一个实施方式中,一种用于消息认证码预计算的方法,包括以下步骤:凭借消息认证码(MAC)计算机,通过执行伪随机函数和伪随机置换中的至少一个从数据输入创建数据的随机置换;凭借MAC计算机,通过组合数据的随机置换和所接收的第二数据块并且在组合的结果上执行ε-差分均匀函数,来创建第一数据块;凭借MAC计算机,将所述第一数据块与秘密密钥进行异或;以及凭借MAC计算机,通过异或树将异或的所述第一数据块变为第一消息认证码;其中所述数据输入包括存储器地址,并且独立于所接收的第二数据块来创建数据的随机置换。
在另一个实施方式中,一种用于消息认证码预计算的系统,包括:消息认证码(MAC)计算机,被配置为:通过执行伪随机置换和伪随机函数中的至少一个从包括0填充、随机数和存储器地址的数据输入创建数据的随机置换;通过组合数据的随机置换和所接收的第二数据块并且在组合的结果上执行ε-差分均匀函数,以创建第一数据块;将所述第一数据块与秘密密钥进行异或;以及通过异或树将异或的所述第一数据块变为第一消息认证码;其中MAC计算机包括:PRP F计算器和ε-差分均匀(DU)计算器;MAC计算机与数据处理器和数据加密器通信耦合;PRP F计算器与数据处理器和ε-DU计算器通信耦合;ε-DU计算器与数据处理器和数据加密器通信耦合;数据处理器被配置为将存储器地址发送给PRP F计算器和数据加密器;以及PRP F计算器被配置为通过在存储器地址、随机数和0填充上执行14次Rijndael函数创建Rijndael块,以创建数据的随机置换;其中,在没有所接收的第二数据块的情况下,创建数据的随机置换。
附图说明
通过说明书和附图,本发明示例实现方式的特征将变得显著,其中:
图1是计算机系统的实例框图,其中可以具有用于MAC预计算的装置和方法;
图2是可以用于使用MAC预计算来写入和读取数据的方法的实例;
图3是使用MAC预计算将数据写入存储器的方法;
图4是使用MAC预计算将数据从存储器中读取并进行认证的方法;
图5是可以包括用于执行MAC预计算装置的系统的实施方式。
具体实施方式
正如所讨论的,计算机安全的弱点区域是片外存储器。对手可以改变或者重放包含在片外存储器中的信息以破坏计算机系统。一种限制对手的方法是对片外存储器进行签名和加密。计算存储器上的签名可能需要产生消息认证码(MAC)。可利用密钥和作为输入的数据或者存储器的块来运行MAC算法。MAC算法可以输出签名或者MAC。MAC可以是一个数值。MAC可以是16比特或者32比特。然而,MAC可以更大或者更小。利用写入到片外存储器的数据来计算第一MAC。将第一MAC连同数据进行存储。当从片外存储器读取数据时,从所读取的数据产生第二MAC。如果第一MAC与第二MAC不匹配,系统可以复位和/或丢弃该数据。
转向图1,图1是系统100的实例框图,其中可以具有用于MAC预计算的装置和方法。系统100的主要组件是在片上或者片外的。系统的片外组件是动态随机存取存储器(DRAM)115形式的存储器。DRAM可以存储由驻留在系统的片上部分的软件或者程序所使用的数据。尽管在这个实施方式中描述为DRAM,也可使用DRAM、随机存取存储器、或者任意其它存储器或存储数据的方法来存储系统100中的片外数据。
属于片上的组件可以包括DRAM控制器120、加密认证单元125、总线接口逻辑130、总线135、中央处理单元140和高速缓存145、以及直接存储器存取(DMA)引擎150。
CPU 140和DMA引擎150可以通过总线135与总线接口逻辑130进行通信。总线接口逻辑130可以与EAU 125通信地耦合。EAU 125可以进一步与DRAM控制器120通信地耦合。DRAM控制器可以与DRAM 115通信地耦合。
CPU 140和DMA 150可以从DRAM 115读取数据或者将数据写入DRAM 115中。当CPU 140或DMA 150从DRAM 115读取数据或者将数据写入DRAM 115中时,读取或者写入的数据流经总线接口逻辑130、EAU125和DRAM控制器120。在读取和写入数据时,总线接口逻辑130处理所有大小的业务。然而,EAU 125只从片外DRAM 115读取固定大小的数据块并将固定大小的数据块写入片外DRAM 115中。可以将固定大小的块称为加密块或者数据块。在一个实施方式中,一个数据块包括256个比特。加密块可以是从存储器115读取数据或者将数据写入存储器115的最小单元。由于总线接口逻辑130处理所有大小的业务,EAU 125不得不管理对大于或者小于加密块的数据的读取或写入请求。
在一个实施方式中,用于消息认证码预计算的方法和系统可以驻留在EAU 125上。EAU 125可以执行对向DRAM 115写入或者从DRAM 115读取的数据的加密/解密和认证。在去往DRAM 115的途中可以对写入业务进行加密。在从DRAM 115读取信息时,可以对读取业务进行认证和解密。从而,EAU 125向存储器写入或者从存储器读取的任意数据块可以包括加密的数据。
在认证数据或存储器时,EAU 125可以产生用于数据块的第一MAC,其中EAU 125将该数据块写入存储器。第一MAC于是与该数据块相关联。当从存储器读取数据块时,EAU 125可以根据所读取的数据来产生第二MAC。可以将第二MAC与第一MAC进行比较。如果第一MAC和第二MAC不匹配,则存储器可能已经被破坏或损坏。如果存储器被破坏,EAU125可以执行存储器破坏(corruption)过程。这可能需要使系统复位,或者发送消息给CPU以通知CPU存储器异常。CPU随后可以将系统复位或者采取一些其它的保护动作。
具体地,在与存储器业务相关联的数据到达之前,EAU125接收存储器业务的地址。从而可以在数据到达前执行包括加密数据和产生MAC的大量计算。
转向图2,图2是用于使用MAC预计算写入和读取数据的方法200在安全存储器中应用的一个实施例。方法200可以驻留在加密认证单元125上。该方法首先处理请求210。该请求可以是读取数据或写入数据的请求。该请求可以来自总线接口逻辑130。当总线接口逻辑130发送读取数据或写入数据的请求时,总线接口逻辑130可以将地址传递给方法200。如果请求是写入请求,则地址可以是数据将要写入的地址。如果请求是读取请求,则地址是从其中读取数据的地址。
方法200随后确定请求是否是写入请求215。如果请求是写入请求,方法200调用写入处理器(handler)220。由于这是个写入请求,总线接口逻辑130可以将写入地址传递给方法200。当方法200调用写入处理器时,方法200可以将地址或者写入地址传递给写入处理器。在完成了写入处理器之后处理请求,方法200继续处理请求210。
如果输入的请求不是写入请求,方法200确定该请求是否是读取请求225。如果请求不是读取请求,方法200返回到处理请求210。如果请求是读取请求,方法200可以调用读取处理器230。当方法200调用读取处理器时,方法200可以将地址或者读取地址传递给读取处理器。
转向图3,在一个实施例中,一种使用MAC预计算可以将数据写入DRAM 115的方法。写入处理器方法或者写入处理器300可以驻留在片上以作为EAU 125的一部分。当EAU 125接收数据时,EAU 125可以产生MAC并且还可以对数据进行加密。当写入处理器接收地址310时该处理开始。地址可以是DRAM 115中的位置,其中假设EAU 125写入数据。地址可以是32比特的地址、16比特的地址或者可以用于对DRAM 115进行寻址的任意其它大小的地址。为了便于说明,我们将假设地址的长度为32比特。此时,数据可能还没有到达。
由于地址现在是可用的,MAC计算就可以开始了。方法300不必等到数据到来才开始进行MAC计算。EAU 125可以通过连接208比特的0(填充)、32比特的地址和16比特的随机数(0、地址、和随机数)来创建256比特的数据块。256比特的数据块可以是数据输入。部分计算MAC可以包括使用数据输入来评估PRF或PRP或随机性。对本领域技术人员来说明显的是,PRF/PRP是理想化的分组密码,其中密码导致不能从随机性中识别出来的比特图样。部分计算MAC还可以包括评估epsilon差分均匀(ε-DU)函数。对本领域技术人员来说明显的是,ε-DU函数可以是导致随机比特图样的分组密码。然而,由ε-DU函数创建的比特图样的随机性不如由PRP创建的比特图样的随机性好。从而,由ε-DU函数创建的比特图样可能不如由PRP创建的比特图样安全。本领域技术人员还可以认识到,随机数(nonce),或者使用一次的数,即使重复使用也是很少的数。在该实施方式中,随机数可以是每次执行写入时增加的计数器。
PRP或者PRF函数F可以用于创建在对随机数、地址和0进行加密时所需要的随机水平。方法300可以运行Rijndael(或者它是最流行的示例,高级加密标准或AES)F320。方法300可以在数据输入(0、地址和随机数)上运行14次Rijndael以获得随机的256比特。随机的256比特可以是Rijndael写入块或Rijndael块。例如,随机值或随机性可以是一连串1和0。注意,在一些实施方式中,PRP F可以通过在两组128比特上运行10次AES版本的Rijndael来实现。将两组128比特进行连接以形成256比特的块。当运行Rijndael时,方法300选择随机密钥k1。Rijndael算法可以使用密钥k1作为Rijndael算法的输入。随机或秘密的密钥是随机选择的密钥。例如,随机数发生器可以用于选择随机密钥。可以使用随机发生的其它形式来选择随机密钥。
方法300接收写入数据330。当方法300接收写入数据时,方法300可对数据进行加密。方法300可以通过使用AES、或者任意其它对数据进行加密的方法对数据进行加密。加密数据可以与Rijndael写入块335进行异或335。结果可以是异或的Rijndael写入块。异或的Rijndael写入块可以包括256比特。
方法300可以计算ε-DU函数族的函数G。方法300可以选择第二随机密钥k2,其中k2用作ε-DU函数族的输入。ε-DU函数G可以在异或的Rijndael写入块上运行340。函数G可以是在异或的Rijndael写入块上2次或4次Rijndael的评估,从而结果是256比特的G写入块。G写入块可以与256比特的密钥k3进行异或345,其结果是256比特的M块。通过使用异或树,可以将M块从256比特分解为32比特的MAC或者第一MAC350。加密数据块可以存储在DRAM 360中。32比特的第一MAC和随机数也可以存储在DRAM 360中并与加密数据块相关联。因此,当需要对加密数据进行认证时,可以取回执行认证所需的信息。密钥k1、k2和k3可以存储在EAU中。
尽管在该实施例中,用于预计算MAC的方法和装置用于将数据写入到存储器中,但是该方法和装置还可以用于包括写入数据和发送数据的任意应用中。在其它实施方式中,不使用存储器地址来预计算MAC,而是使用其它值来计算MAC。例如,如果该方法和装置用在消息应用中,可以使用消息上下文识别符来代替地址。此外,地址的大小、随机数和其它变量可以根据用户需求和使用该方法的应用进行变化。
转向图4,图4是在一个实施例中可以从DRAM 115读取数据的方法400。在从DRAM 115读取数据的过程中,方法400可以认证数据。认证数据可能需要根据所存储的数据产生第二MAC,并将第二MAC与初始连同数据进行存储的第一MAC进行比较。方法400可以从总线接口逻辑130接收地址或者读取地址410。
方法400可以检索认证数据所需的信息420。该信息可以包括可能驻留在片上的诸如密钥k1、k2和k3的信息。此外,该信息可以包括可能驻留在片外的诸如第一MAC、随机数和驻留在读取地址上的读取数据的信息。该读取数据可以是加密数据。
方法400可以如图3所述的根据地址、随机数和0(0填充)计算PRPF430。需要用密钥k1来计算PRP F。注意,当认证或读取数据时,用于计算PRP F的密钥k1可以与当写入数据时用于计算PRP F的密钥k1相同。如上所述,通过关于随机数、地址和208比特的0运行14次Rijndael来得到PRP F。14次Rijndael的结果可以是可能是Rijndael块的随机的256比特。还可以通过并行运行的两个示例来获得F,其中该示例为10次128比特AES版本的Rijndael。在读取数据时,Rijndael块可能指的是Rijndael读取块。
在计算G440时,Rijndael读取块可以与读取数据进行异或。结果可以是异或的Rijndael块或异或的Rijndael读取块。可以通过在异或的Rijndael读取块上运行2次或4次Rijndael来获得G。计算G440的结果可以是256比特的G块或G读取块。注意,用于计算G写入块的相同密钥k2可以用于计算G读取块。
G读取块可以与密钥k3进行异或以得到256比特的M读取块。通过异或树450可以将M读取块变为为32比特的第二MAC。可以将第二MAC与第一MAC进行比较470。回想到第一MAC是在将数据初始写入DRAM115时产生的。如果第一MAC和第二MAC不相等,则数据可能已经被破坏或损坏。方法400通过执行存储器破坏响应程序来处理该失配490。如果第一MAC和第二MAC相等,方法400可以将读取数据返回给总线接口逻辑130。由于MAC失效可能导致系统复位,因此还可以先于MAC认证将数据传递给CPU。可以将所描述的方法300和400称为浅MAC(shallow MAC)或者shMAC。
转向图5,图5描述了可以包括用于执行MAC预计算的装置的系统550的实施方式。系统500可以由总线接口逻辑单元130、DRAM控制器120和EAU 125组成。EAU 125可以进一步由数据处理器530、MAC计算机535和数据加密器540组成。MAC计算机535可以进一步由MAC PRPF计算器545和ε-DU计算器550组成。
如上所述,EAU 125可与DRAM控制器120和总线接口逻辑130通信地耦合。DRAM控制器120和总线接口逻辑130可以与数据处理器530通信地耦合。数据处理器530可以是能够与EAU125的外部进行数据读取和写入的节点或组件。节点或组件可以是软件、固件、硬件或者能够执行计算的任意其它类型的装置。
数据处理器530还可以与MAC计算机535和数据加密器540通信地耦合。MAC计算机535可以是能够预计算MAC的节点或组件。数据加密器540可以是能够对数据进行加密的节点或组件。
MAC计算机535可以进一步由PRP F计算器545和ε-DU计算器550组成。PRP F计算器545是能够计算PRP F函数的组件或节点。ε-DU计算器550是能够计算ε-DU函数的组件。
总线接口逻辑130可以发送请求以从DRAM 115读取数据或向DRAM115写入数据。数据处理器530可以接收该请求。写入数据的请求可以来自两部分。首先,总线接口逻辑130可以将地址发送给数据处理器530。在典型的系统中,2个或多个时钟周期后,数据处理器530可以接收与地址相关联的写入数据。在读取数据时,总线接口逻辑130可以发送读取地址。数据处理器通过将读取数据发送给总线接口逻辑130来进行响应。
如果数据处理器530接收到写入请求,数据处理器530可以将写入地址转发给MAC计算机535和数据加密器540。在一些实施方式中,写入地址可以是32比特。数据加密器540可以用写入地址作为加密数据过程的一部分。MAC计算机535可以将写入地址和和随机数转发给PRP F计算器545。在一些实施方式中,随机数可以是16比特。PRP F计算器545可以产生随机密钥K1以用于执行Rijndael函数。PRP F计算器545可以使用K1在256比特的数据输入上运行14次Rijndael(或者两个并行的示例,其中该示例为2次128比特AES版本的Rijndael)。数据输入可以由208比特的0、32比特的地址和16比特的随机数组成。在数据输入上运行14次Rijndael的输出可以是可被称为Rijndael块或Rijndael写入块的256比特的随机数。PRP F计算器545可以将Rijndael写入块传递给ε-DU计算器550。在一些实施方式中,此时写入数据已经到达。然而,PRP F计算器545已经运行Rijndael并创建了Rijndael写入块。
当写入数据到达时,数据处理器530可以将写入数据转发给数据加密器540。数据加密器540可以对数据进行加密并将加密数据传递给ε-DU计算器550。ε-DU计算器550可以将加密数据与Rijndael写入块进行异或。结果可以是256比特的异或Rijndael块或异或Rijndael写入块。ε-DU计算器550可以在初始时产生或选择随机密钥K2。ε-DU计算器550可以使用K2在异或的Rijndael写入块上运行2次或4次Rijndael。在异或的Rijndael写入块上运行4次Rijndael的结果可以为256比特的G写入块。G写入块可以与256比特的密钥K3进行异或以得到256比特的M块。
通过使用异或树,可以将256比特的M块分解为32比特MAC或者第一MAC。可以将加密数据写入DRAM 115中。随机数和第一MAC还可以存储在片外,同时可以与写入到DRAM 115的加密数据相关联。随机数
当数据处理器530接收读取请求时,数据处理器530可以利用读取请求接收读取地址。数据处理器530可以将读取地址传递给MAC计算机535。MAC计算机535可以从片外存储器取回第一MAC、随机数和读取数据。在将读取数据写入DRAM 115时,MAC计算机535还可以取回存储在片上的密钥K1、K2和K3。MAC计算机535可以将密钥、第一MAC、随机数和读取数据传递给PRP F计算器545。PRP F计算器545可以利用K1在由208比特的0(0填充)、32比特的地址和16比特的随机数组成的256比特的数据块上运行14次Rijndael。或者,与写入处理器相关,PRP F计算器545可以并行运行2个示例,其中该示例为2次运行128比特AES版本的Rijndael。运行Rijndael的输出可以为被称为Rijndael块或者Rijndael读取块的256比特的随机数据。PRP F计算器545可以将Rijndael读取块传递给ε-DU计算器550。
ε-DU计算器550可以将加密读取数据与Rijndael读取块进行异或。结果可以是256比特的异或Rijndael块或异或Rijndael读取块。ε-DU计算器550可以在异或Rijndael读取块上使用K2运行4次Rijndael。运行2次或4次Rijndael的结果可以是256比特的G块或G读取块。可以将G读取块与256比特的密钥K3进行异或以得到256比特的M块或M读取块。
通过异或树,可以将256比特的M读取块分解为32比特的第二MAC。可以将第二MAC与第一MAC进行比较。如果第二MAC与第一MAC不相同,则读取数据可能已经被损坏或破坏。如果存储器被损坏或破坏,MAC计算机535可以执行存储器破坏响应程序。
用于消息认证码预计算的系统和方法可以是无状态的。无状态的认证和加密算法可能将存储器对重放攻击开放。例如,对手可以利用之前存储在存储器相同存储单元中的值来替换该存储器的存储单元。相似地,对手在写入业务中可能完全不更新DRAM。这些攻击会导致存储器在解密和认证后将错误认为是正确的。
为了提高效率起见,可以为全部存储器或者大部分存储器创建加密和认证密钥。为了抵制上述的重放攻击,与存储器相关联的加密和认证密钥可以周期性地进行更新。
存储器密钥更新的实施方式可以包括将存储器分为2个区域。存储器是可以被分为第一区域和第二区域的有序阵列。通过边界地址可以将第一区域和第二区域进行分隔。可以利用密钥的第一集合对第一区域进行加密和认证。可以利用密钥的第二集合对第二区域进行加密和认证。更新方法包括牺牲其它区域来增加存储器的一个区域。从而在第二区域的边界到达存储器的末端之前第二区域可以增加。存储器的末端可以是最高可寻址的地址或最低可寻址的地址。
在将数据写入存储器的第二区域时,可以使用密钥的第二集合对数据进行解密和认证。当边界到达存储器的末端时,例如边界到达最低可寻址的地址时,用于存储器的第一区域的密钥可以退役(retired),并可以产生用于存储器第一区域的密钥的新的第三集合。在将数据写入存储器时,使用密钥的第三集合对数据进行加密和认证,并将数据放置在存储器的第一区域。牺牲存储器的第二区域可以增加存储器的第一区域。这一直持续到边界再次到达存储器的末端,例如存储器的最高可寻址的地址。该方法通过产生密钥的第四集合而继续。在将新数据写入存储器时,使用密钥的第四集合对数据进行加密和认证,并将数据放置在存储器的第二区域。重新产生密钥以及写入存储器的不同区域的该方法继续。
在一个实施例中,系统500包括多个组件,例如一个或多个计算机软件组件。在系统500中多个这样的组件能够进行合并或拆分。系统500的一个示例性组件利用和/或包括一组和/或系列利用任意或多个编程语言所书写或者执行的计算机指令,这对于本领域技术人员来说是显而易见的。在一个实施例中,为了便于解释的目的,系统500包括垂直方向,这里的说明书和附图描述系统500的一个示例性方向。
在一个实施例中,系统500利用一个或多个计算机可读信号承载媒介。计算机可读信号承载媒介存储用于执行本发明的一个或多个实现的一个或多个部分的软件、固件和/或汇编语言。在一个实施例中,用于系统500的计算机可读信号承载媒介包括一个或多个磁、电、光、生物和原子数据存储媒介。例如,计算机可读信号承载媒介包括软盘、磁带、CD-ROM、DVD-ROM、硬盘驱动器和电子存储器。
这里所描述的步骤或操作仅用作示例。在不偏离系统500和方法200、300、400的精神下,可以对这些步骤或操作进行多种改变。例如,可以按不同的顺序执行步骤,或者可以增加、删除或修改步骤。
尽管这里详细描述和说明了系统500和方法200、300、400示例性的实现,但是在不偏离方法200、300、400的精神下能够进行各种修改、增加、替代以及类似操作,这对所属领域的技术人员来说是显而易见的,并且因此被认为是落在系统500和方法200、300、400的范围内。
Claims (9)
1.一种用于消息认证码预计算的方法,包括以下步骤:
凭借消息认证码(MAC)计算机,通过执行伪随机函数和伪随机置换中的至少一个从数据输入创建数据的随机置换;
凭借MAC计算机,通过组合数据的随机置换和所接收的第二数据块并且在组合的结果上执行ε-差分均匀函数,来创建第一数据块;
凭借MAC计算机,将所述第一数据块与秘密密钥进行异或;以及
凭借MAC计算机,通过异或树将异或的所述第一数据块变为第一消息认证码;
其中所述数据输入包括存储器地址,并且独立于所接收的第二数据块来创建数据的随机置换。
2.根据权利要求1所述的方法,其中
数据输入还包括0填充和随机数,第一数据块包括异或的Rijndael块,以及所接收的第二数据块是加密数据块;以及
其中凭借MAC计算机,创建数据的随机置换的步骤进一步包括,在地址、随机数和0填充上通过运行14次Rijndael函数和两个实例的10次高级加密标准版本的Rijndael函数中的至少一个来创建Rijndael块的步骤;
其中凭借MAC计算机,创建异或的所述第一数据块的步骤进一步包括,通过将Rijndael块与加密数据块进行异或来创建异或的Rijndael块;以及
其中通过在异或的Rijndael块上执行2次Rijndael函数和在异或的Rijndael块上执行4次Rijndael函数中的至少一个,通过在异或Rijndael块上执行ε-差分均匀函数以创建G块;以及
其中凭借MAC计算机,将所述第一数据块与秘密密钥进行异或的步骤,结果是M块;以及
其中凭借MAC计算机,通过异或树将异或的所述第一数据块变为第一消息认证码的步骤进一步包括,通过所述异或树将M块变为第一消息认证码的步骤。
3.根据权利要求2所述的方法,所述方法进一步包括其中考虑到认证读取数据块,具体包括,取回秘密密钥、第一随机密钥和第二随机密钥、第一消息认证码和随机数;以及
从秘密密钥、第一随机密钥和第二随机密钥、第一消息认证码和随机数创建第二消息认证码。
4.根据权利要求3所述的方法,其中创建第二消息认证码的步骤进一步包括:
在地址、随机数和0填充上通过执行14次Rijndael函数和两个实例的10次高级加密标准函数中的至少一个来创建Rijndael读取块;
通过将Rijndael读取块与加密读取数据块进行异或来创建异或的Rijndael读取块;
其中通过在异或的Rijndael块上执行2次Rijndael函数和在异或的Rijndael块上执行4次Rijndael函数中的至少一个来创建G读取块;
将G块与秘密密钥进行异或以创建M读取块;以及
通过所述异或树将M读取块变为第二消息认证码。
5.根据权利要求4所述的方法,其中认证读取数据块的步骤进一步包括:将第一消息认证码与第二消息认证码进行比较以及如果第一消息认证码与第二消息认证码不相同,执行存储器破坏过程的步骤。
6.一种用于消息认证码预计算的系统,包括:
消息认证码(MAC)计算机,被配置为:
通过执行伪随机置换和伪随机函数中的至少一个从包括0填充、随机数和存储器地址的数据输入创建数据的随机置换;
通过组合数据的随机置换和所接收的第二数据块并且在组合的结果上执行ε-差分均匀函数,以创建第一数据块;
将所述第一数据块与秘密密钥进行异或;以及
通过异或树将异或的所述第一数据块变为第一消息认证码;
其中MAC计算机包括:PRP F计算器和ε-差分均匀(DU)计算器;
MAC计算机与数据处理器和数据加密器通信耦合;
PRP F计算器与数据处理器和ε-DU计算器通信耦合;
ε-DU计算器与数据处理器和数据加密器通信耦合;
数据处理器被配置为将存储器地址发送给PRP F计算器和数据加密器;以及
PRP F计算器被配置为通过在存储器地址、随机数和0填充上执行14次Rijndael函数创建Rijndael块,以创建数据的随机置换;
其中,在没有所接收的第二数据块的情况下,创建数据的随机置换。
7.根据权利要求6所述的系统,其中
数据处理器被配置为将第二数据块发送给数据加密器;以及
其中数据加密器被配置为对第二数据块加密并将加密的数据块发送给ε-DU计算器;以及
其中ε-DU计算器被配置为通过将Rijndael块和加密数据块进行异或以创建异或的Rijndael块;以及
其中ε-DU计算器被配置为通过在异或的Rijndael块上执行2次Rijndael函数和在异或的Rijndael块上执行4次Rijndael函数中的至少一个来创建G块;以及
其中MAC计算机被配置为通过将G块和秘密密钥进行异或来创建M块;以及
其中MAC计算机被配置为通过所述异或树将M块变为第一消息认证码。
8.根据权利要求7所述的系统,其中MAC计算机被配置为通过以下内容来认证读取数据块:
取回秘密密钥、第一随机密钥和第二随机密钥、第一消息认证码和随机数;以及
将秘密密钥、第一随机密钥和第二随机密钥、第一消息认证码和随机数发送给MAC计算机的PRP F计算器。
9.根据权利要求8所述的系统,其中所述系统进一步适于产生第二消息认证码,具体包括:
PRP F计算器被配置为通过在读取地址、随机数和0填充上执行14次Rijndael函数和2个并列的10次Rijndael函数中的至少一个来创建Rijndael读取块;
PRP F计算器被配置为将Rijndael读取块传递给ε-DU计算器;
ε-DU计算器被配置为通过将Rijndael读取块和加密的读取数据块进行异或来创建异或的Rijndael读取块;
ε-DU计算器被配置为通过在异或的Rijndael块上执行2次Rijndael函数和在异或的Rijndael块上执行4次Rijndael函数中的至少一个来创建G读取块;
MAC计算机被配置为通过将G块和秘密密钥进行异或来创建M读取块;
MAC计算机被配置为通过异或树将M块变为第二消息认证码;以及
读取数据块的认证进一步包括:MAC计算机被配置为将第一消息认证码和第二消息认证码进行比较,以及在第一消息认证码与第二消息认证码不相同的情况下,执行存储器破坏过程。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/229,987 | 2008-08-28 | ||
US12/229,987 US8452984B2 (en) | 2008-08-28 | 2008-08-28 | Message authentication code pre-computation with applications to secure memory |
PCT/US2009/004820 WO2010024874A2 (en) | 2008-08-28 | 2009-08-25 | Message authentication code pre-computation with applications to secure memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102138300A CN102138300A (zh) | 2011-07-27 |
CN102138300B true CN102138300B (zh) | 2014-11-26 |
Family
ID=41718390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980133393.0A Expired - Fee Related CN102138300B (zh) | 2008-08-28 | 2009-08-25 | 消息认证码预计算在安全存储器中的应用 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8452984B2 (zh) |
EP (1) | EP2329622B1 (zh) |
JP (1) | JP5306465B2 (zh) |
KR (1) | KR101324825B1 (zh) |
CN (1) | CN102138300B (zh) |
WO (1) | WO2010024874A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566593B2 (en) * | 2009-07-06 | 2013-10-22 | Intel Corporation | Method and apparatus of deriving security key(s) |
EP2290872B1 (en) * | 2009-08-27 | 2014-06-18 | Nxp B.V. | Device for generating a message authentication code for authenticating a message |
US8498410B2 (en) | 2011-03-14 | 2013-07-30 | Motorola Solutions, Inc. | Methods for customizing a Rijndael block cipher |
JP5824849B2 (ja) * | 2011-04-22 | 2015-12-02 | ソニー株式会社 | 情報処理装置および情報処理方法 |
WO2013012435A1 (en) * | 2011-07-18 | 2013-01-24 | Hewlett-Packard Development Company, L.P. | Security parameter zeroization |
US9304944B2 (en) * | 2012-03-29 | 2016-04-05 | Broadcom Corporation | Secure memory access controller |
US20140044262A1 (en) * | 2012-08-09 | 2014-02-13 | Cisco Technology, Inc. | Low Latency Encryption and Authentication in Optical Transport Networks |
US9298947B2 (en) * | 2013-02-07 | 2016-03-29 | Qualcomm Incorporated | Method for protecting the integrity of a fixed-length data structure |
US9264222B2 (en) | 2013-02-28 | 2016-02-16 | Apple Inc. | Precomputing internal AES states in counter mode to protect keys used in AES computations |
CN103716231A (zh) * | 2013-12-06 | 2014-04-09 | 广西科技大学 | 一种ZigBee-CAN网络网关 |
US9460312B2 (en) * | 2014-03-11 | 2016-10-04 | Qualcomm Incorporated | Data integrity protection from rollback attacks for use with systems employing message authentication code tags |
US9509665B2 (en) | 2014-08-11 | 2016-11-29 | Alcatel Lucent | Protecting against malicious modification in cryptographic operations |
US9438425B2 (en) * | 2014-08-15 | 2016-09-06 | Alcatel Lucent | Robust MAC aggregation with short MAC tags |
WO2016063512A1 (ja) * | 2014-10-23 | 2016-04-28 | 日本電気株式会社 | Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体 |
JP6305642B2 (ja) * | 2015-09-28 | 2018-04-04 | 三菱電機株式会社 | メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム |
US10511581B2 (en) | 2015-11-17 | 2019-12-17 | International Business Machines Corporation | Parallelizable encryption using keyless random permutations and authentication using same |
US10608822B2 (en) * | 2017-04-26 | 2020-03-31 | Nxp B.V. | Efficient calculation of message authentication codes for related data |
US10541845B2 (en) * | 2017-09-25 | 2020-01-21 | Kenneth Stuart | Pseudo random multi-carrier method and system |
KR102625275B1 (ko) * | 2018-08-03 | 2024-01-12 | 엘지전자 주식회사 | 비휘발성 메모리를 구비하는 전자 기기 |
WO2020174291A1 (en) * | 2019-02-25 | 2020-09-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Hop by hop security in iab networks |
US11263308B2 (en) | 2019-03-25 | 2022-03-01 | Micron Technology, Inc. | Run-time code execution validation |
US11190339B2 (en) * | 2019-05-14 | 2021-11-30 | Baffle, Inc. | System and method for performing equality and less than operations on encrypted data with quasigroup operations |
US11637690B1 (en) | 2021-10-08 | 2023-04-25 | Baffle, Inc. | Format preserving encryption (FPE) system and method for long strings |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684017A (zh) * | 2004-04-12 | 2005-10-19 | 华为技术有限公司 | 一种软件保护方法及装置 |
US6963976B1 (en) * | 2000-11-03 | 2005-11-08 | International Business Machines Corporation | Symmetric key authenticated encryption schemes |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029200A1 (en) * | 1999-09-10 | 2002-03-07 | Charles Dulin | System and method for providing certificate validation and other services |
US6934388B1 (en) * | 1999-11-12 | 2005-08-23 | Itt Manufacturing Enterprises, Inc. | Method and apparatus for generating random permutations |
JPWO2006019152A1 (ja) * | 2004-08-19 | 2008-05-08 | 株式会社日立製作所 | メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法 |
US8589688B2 (en) * | 2005-11-04 | 2013-11-19 | Nec Corporation | Message authentication device, message authentication method, message authentication program and storage medium therefor |
WO2007088288A1 (fr) * | 2006-02-03 | 2007-08-09 | Advanced Track & Trace | Procede et dispositif d'authentification |
US8687800B2 (en) * | 2006-08-15 | 2014-04-01 | Alcatel Lucent | Encryption method for message authentication |
US8107620B2 (en) * | 2007-03-21 | 2012-01-31 | International Business Machines Corporation | Simple and efficient one-pass authenticated encryption scheme |
US8942219B2 (en) * | 2007-04-13 | 2015-01-27 | Hart Communication Foundation | Support for network management and device communications in a wireless network |
US8161271B2 (en) * | 2007-07-11 | 2012-04-17 | International Business Machines Corporation | Store misaligned vector with permute |
US7941663B2 (en) * | 2007-10-23 | 2011-05-10 | Futurewei Technologies, Inc. | Authentication of 6LoWPAN nodes using EAP-GPSK |
US20090187771A1 (en) * | 2008-01-17 | 2009-07-23 | Mclellan Jr Hubert Rae | Secure data storage with key update to prevent replay attacks |
KR101324351B1 (ko) * | 2008-08-19 | 2013-11-01 | 엔엑스피 비 브이 | 암호 기반 메시지 인증 코드를 생성하는 방법 |
US8122190B1 (en) * | 2009-05-29 | 2012-02-21 | Itt Manufacturing Enterprises, Inc. | Method and system for reconfigurable memory-based permutation implementation |
EP2288195B1 (en) * | 2009-08-20 | 2019-10-23 | Samsung Electronics Co., Ltd. | Method and apparatus for operating a base station in a wireless communication system |
-
2008
- 2008-08-28 US US12/229,987 patent/US8452984B2/en active Active
-
2009
- 2009-08-25 CN CN200980133393.0A patent/CN102138300B/zh not_active Expired - Fee Related
- 2009-08-25 WO PCT/US2009/004820 patent/WO2010024874A2/en active Application Filing
- 2009-08-25 KR KR1020117004620A patent/KR101324825B1/ko not_active IP Right Cessation
- 2009-08-25 EP EP09789201.2A patent/EP2329622B1/en not_active Not-in-force
- 2009-08-25 JP JP2011524982A patent/JP5306465B2/ja not_active Expired - Fee Related
-
2013
- 2013-05-15 US US13/894,581 patent/US8799679B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6963976B1 (en) * | 2000-11-03 | 2005-11-08 | International Business Machines Corporation | Symmetric key authenticated encryption schemes |
CN1684017A (zh) * | 2004-04-12 | 2005-10-19 | 华为技术有限公司 | 一种软件保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR101324825B1 (ko) | 2013-11-01 |
CN102138300A (zh) | 2011-07-27 |
KR20110036854A (ko) | 2011-04-11 |
US20130254557A1 (en) | 2013-09-26 |
EP2329622B1 (en) | 2019-07-31 |
US8452984B2 (en) | 2013-05-28 |
US8799679B2 (en) | 2014-08-05 |
EP2329622A2 (en) | 2011-06-08 |
US20100058070A1 (en) | 2010-03-04 |
WO2010024874A3 (en) | 2010-09-02 |
JP2012501579A (ja) | 2012-01-19 |
JP5306465B2 (ja) | 2013-10-02 |
WO2010024874A2 (en) | 2010-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
KR102430042B1 (ko) | 메모리 동작 암호화 | |
US8171306B2 (en) | Universal secure token for obfuscation and tamper resistance | |
US10313128B2 (en) | Address-dependent key generator by XOR tree | |
CN101149768B (zh) | 一种专用处理器软件的加密和解密方法 | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
CN101582109A (zh) | 数据加密方法及装置、数据解密方法及装置、固态硬盘 | |
EP2990953B1 (en) | Periodic memory refresh in a secure computing system | |
CN109522758B (zh) | 硬盘数据管理方法及硬盘 | |
CN103973698A (zh) | 一种云存储环境中的用户访问权限回收方法 | |
CN106027237B (zh) | 一种rfid系统中基于组的密钥矩阵安全认证方法 | |
Schleiffer et al. | Secure key management-a key feature for modern vehicle electronics | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
CN115865448A (zh) | 一种数据自加密装置和方法 | |
CN114553557A (zh) | 密钥调用方法、装置、计算机设备和存储介质 | |
CN111651788A (zh) | 一种基于格密码的终端访问控制系统及方法 | |
CN107766725B (zh) | 抗模板攻击的数据传输方法及系统 | |
JP2015015542A (ja) | 情報処理システム | |
JP7385025B2 (ja) | 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行 | |
CN102236754B (zh) | 数据保密方法以及使用此数据保密方法的电子装置 | |
CN110555311A (zh) | 一种基于纯软密码运算的电子签章系统安全设计方法及系统 | |
CN114531236A (zh) | 一种密钥的处理方法、装置及电子设备 | |
CN117278212A (zh) | 密钥生成方法、装置、系统、电子设备及可读存储介质 | |
Du et al. | Key management scheme based on micro-certificate for Internet of Things |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190509 Address after: American New York Patentee after: Origin Asset Group Co., Ltd. Address before: New Jersey,USA Patentee before: Alcatel-Lucent America Co., Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141126 Termination date: 20200825 |
|
CF01 | Termination of patent right due to non-payment of annual fee |