CN104969508B - 用于保护固定长度的数据结构的完整性的方法 - Google Patents

用于保护固定长度的数据结构的完整性的方法 Download PDF

Info

Publication number
CN104969508B
CN104969508B CN201480007504.4A CN201480007504A CN104969508B CN 104969508 B CN104969508 B CN 104969508B CN 201480007504 A CN201480007504 A CN 201480007504A CN 104969508 B CN104969508 B CN 104969508B
Authority
CN
China
Prior art keywords
key
mask
data structure
authentication code
message authentication
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
Application number
CN201480007504.4A
Other languages
English (en)
Other versions
CN104969508A (zh
Inventor
A·W·登特
C·E·阿卡尔
B·B·布伦利
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104969508A publication Critical patent/CN104969508A/zh
Application granted granted Critical
Publication of CN104969508B publication Critical patent/CN104969508B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

一个特征涉及一种用以通过使用计算高效的算法来保全数据结构的机制。在启动或起始会话后,可以预先产生多个密钥及/或掩模。通过选择所述多个预先产生的密钥的子集及/或从所述多个预先产生的掩模中选择掩模,可以针对每一数据结构(例如,存储器块或标头块)计算验证代码。所述验证代码可以存储在所述数据结构内,用于进一步检验所述数据结构的完整性。在同一周期或会话期间,用于所有验证代码(例如,用于其它数据结构)的所述密钥及/或掩模可以选自相同的多个密钥及/或掩模。

Description

用于保护固定长度的数据结构的完整性的方法
技术领域
多个特征涉及通过使用消息验证代码保护数据结构免受攻击。
背景技术
堆存储器由处理器保留且通过元数据结构的使用组织。元数据结构可以是固定长度的数据结构,所述数据结构含有关于哪一变量“控制”存储器的下一部分(如果指派存储器)及保留在对应存储器块中的存储器的量的信息(例如,在标头块中)。攻击者可能希望破坏这些元数据结构(例如,修改标头块),以便减小自由存储器的量或保全某些重要数据片置于存储器的易受损部分中。因此,需要保护此元数据(例如,在数据结构或存储器块的标头块中的数据)以防止数据结构的未经授权的更改。
因此,需要一种计算量少的解决方案来保护数据结构。
发明内容
提供一种产生验证代码的方法。在启动处理电路或在所述处理电路上执行的会话后,预先产生包括多个不同密钥的密钥的集合。还预先产生包括多个不同掩模的掩模的集合。在启动所述处理电路或在所述处理电路上执行的所述会话后,还可以预先产生掩模的所述集合。可以基于随机值产生密钥的所述集合及/或掩模的所述集合中的至少一者。
可以获得与固定长度的数据结构相关联的多个可变输入。可以至少部分地基于所述多个可变输入中的至少一者选择所述掩模及选定对应密钥中的每一者。
所述多个可变输入中的每一者可以与来自密钥的所述集合的选定对应密钥组合以获得多个暂时性值。随后可以组合所述多个暂时性值以获得中间值。随后可以在所述中间值与来自掩码的所述集合的选定掩模之间执行运算以获得用于所述固定长度的数据结构的消息验证代码。密钥的所述集合可以被细分成密钥的子集且从密钥的任一单个子集选择仅密钥的一子集(例如,一个密钥、两个密钥等)来计算所述消息验证代码。
所述多个可变输入中的所述至少一者可以是与所述固定长度的数据结构相关联的存储器地址。可以基于所述存储器地址选择所述选定对应密钥中的每一者。可以基于所述存储器地址选择所述选定掩模。
所述多个暂时性值可以通过以下方式组合:(a)将所述多个暂时性值相加以获得经组合值,及/或(b)通过预先选定的固定质数对经组合值执行模运算以获得所述中间值。密钥的所述集合中的每一密钥的值可以在零与所述预先选定的固定质数之间。所述中间值与所述选定掩模之间的运算可以是(例如)按位异或运算。
掩模的所述集合及密钥的所述集合中的至少一者可以在启动之间或会话之间的持续时间内存储在安全的存储器位置中。所述消息验证代码可以存储在存储器装置中的所述固定长度的数据结构内。所述消息验证代码可以存储在用于所述固定长度的数据结构的标头块中。
在随后的验证阶段期间,可以从所述数据结构中获得先前存储的消息验证代码。所述消息验证代码随后可以与所述先前存储的消息验证代码相比较以确认所述数据结构的完整性。
类似地,可以提供包括存储器装置及耦合到所述存储器装置的处理电路的装置。所述存储器装置可以用于存储固定长度的数据结构。所述处理电路可以经配置或经调适以:(a)在启动处理电路或在所述处理电路上执行的会话后预先产生包括多个不同密钥的密钥的集合;(b)预先产生包括多个不同掩模的掩模的集合;(c)获得与所述固定长度的数据结构相关联的多个可变输入;(d)将所述多个可变输入中的每一者与来自密钥的所述集合的选定对应密钥组合以获得多个暂时性值;(e)将所述多个暂时性值组合以获得中间值;(f)在所述中间值与来自掩模的所述集合的选定掩模之间执行运算以获得用于所述固定长度的数据结构的消息验证代码。
在启动所述处理电路或在所述处理电路上执行的所述会话后,还可以预先产生掩模的所述集合。
基于随机值产生密钥的所述集合及掩模的所述集合中的至少一者。
所述多个暂时性值可以通过以下方式组合:(a)将所述多个暂时性值相加以获得经组合值,及/或(b)通过预先选定的固定质数对所述经组合值执行模运算以获得所述中间值。密钥的所述集合中的每一密钥的值可以在零与所述预先选定的固定质数之间。所述中间值与所述选定掩模之间的运算可以是按位异或运算。
基于所述多个可变输入中的至少一者选择所述掩模及所述选定对应密钥中的每一者。所述多个可变输入中的所述至少一者是与所述固定长度的数据结构相关联的存储器地址。基于所述存储器地址选择所述选定对应密钥中的每一者。可以基于所述存储器地址选择所述选定掩模。
密钥的所述集合可以被细分成密钥的子集且从密钥的任一单个子集选择仅密钥的一子集(例如,一个密钥、两个密钥等)来计算所述消息验证代码。
所述处理电路可以进一步经调适以在启动之间或会话之间的持续时间内将掩模的所述集合及密钥的所述集合中的至少一者存储在安全的存储器位置中。
所述处理电路还可以进一步经调适以将所述消息验证代码存储在存储器装置中的所述固定长度的数据结构内。所述消息验证代码可以存储在用于所述固定长度的数据结构的标头块中。
所述处理电路可以进一步经调适以:(a)从所述数据结构获得先前存储的消息验证代码;及/或(b)将所述消息验证代码与所述先前存储的消息验证代码相比较以确认所述数据结构的完整性。
附图说明
图1是说明使用加密密钥通过消息验证代码(MAC)保护存储器中的数据结构的一个方法的方框图,所述加密密钥存储在安全的长期存储装置中或每当相关联的存储器控制器启动时随机产生且保存在安全的易失性存储器中。
图2是说明使用相较于图1的加密MAC计算更高效的MAC-Lite产生器保护数据结构的另一方法的方框图。
图3说明MAC-Lite算法302的实例,其相较于图1的加密MAC计算更高效,同时相较于循环冗余检查(CRC)或探测值具有更高安全性。
图4说明可以经实施以产生相较于传统MAC更高效的MAC的MAC-Lite算法的一个实例。
图5说明其中基于掩模的不同集合及密钥的不同集合的预先产生而产生验证代码的一般方法。
图6是说明经调适以执行MAC-Lite算法以保全数据结构的完整性的装置的示例性实施的方框图。
图7说明基于掩模的不同集合及密钥的不同集合的预先产生而产生用于存储器空间的验证代码的实例。
具体实施方式
在以下描述中,给出具体细节以提供对本发明的各种方面的彻底理解。然而,所属领域的技术人员应理解,可以在不具有这些具体细节的情况下实践所述方面。举例来说,可以通过框图展示电路以便避免以不必要的细节混淆所述方面。在其它情况下,可以不详细展示众所周知的电路、结构及技术以便不混淆本发明的方面。
词语“示例性”在本文中用以意味着“充当实例、例子或说明”。本文中描述为“示例性”的任何实施方案或方面未必应解释为比本发明的其它方面优选或有利。同样,术语“方面”不要求本发明的所有方面包含所论述的特征、优点或操作模式。
概述
一个特征提供用以通过使用计算高效的算法来保全数据结构的机制。在启动或起始会话后,可以预先产生多个密钥及/或掩模。通过选择多个预先产生的密钥的子集及/或从多个预先产生的掩模中选择掩模,可以针对每一数据结构(例如,存储器块或标头块)计算验证代码。验证代码可以存储在数据结构内,用于进一步检验数据结构的完整性。在同一周期或会话期间,用于所有验证代码(例如,用于其它数据结构)的密钥及/或掩模可以选自相同的多个密钥及/或掩模。
此方法相较于其它加密消息验证代码(MAC)方法可以提供较低安全性,但是相较于循环冗余检查(CRC)或探测值可以提供较高安全性,同时具有略低于标准CRC实施方案的实施成本。通过了解输入的格式且通过使用数目比平时多的随机或伪随机密钥,此解决方案会增加效率。
具有动态产生的消息验证代码的示例性存储器结构
图1是说明使用加密密钥通过消息验证代码(MAC)保护存储器中的数据结构的一个方法的方框图,所述加密密钥存储在安全的长期存储装置中或每当相关联的存储器控制器启动时随机产生且保存在安全的易失性存储器中。处理电路102可以耦合到及/或集成存储器装置104或存储装置。存储器装置104可以包含布置为存储器块114a、114b及/或114c的存储器空间。每一存储器块114a、114b、114c可以包含标头块106a、106b及106c及对应块保留的存储器空间108a、108b及108c。标头块106可以用以存储数据结构(例如,元数据结构)。
处理电路102可以经配置以实施MAC产生器112,所述MAC产生器针对每一标头块106或存储器块114计算MAC 110且将此MAC 110存储在每一对应标头块106中。在一个实例中,MAC产生器(例如,处理电路或模块)可以实施具有多个循环或迭代的特定MAC算法116(例如,基于散列的消息验证代码(HMAC)-安全散列算法1(SHA-1)、高级加密标准(AES)-基于密文的MAC(CMAC)及数据验证算法(DAA)等)。
有时也称为带密钥或加密散列函数的典型MAC算法116接受秘密密钥118及待验证的任意长度消息120作为输入且输出MAC值。MAC值通过允许检验者(此外拥有秘密密钥的人)检测对消息内容(例如,标头块106及/或存储器块114)的任何改变而保护消息的数据完整性以及其真实性两者。
在各种实例中,MAC算法116可以包含存储器地址122作为“消息”输入120的一部分,标头块开始于所述存储器地址处、块保留的存储器空间开始于所述存储器地址及/或数据结构中的特定元数据保存在所述存储器地址处。此MAC可以存储在数据结构中(标头块106中)且每当读取或写入数据结构时进行检查。另外,MAC算法116还可以包含其它输入1…n 124作为“消息”输入120的一部分,例如,标头块(例如,存储在其中的数据结构)的内容及/或命令。由于基于对应标头块106a中的至少一些信息(例如,用于存储器块114a或块保留的存储器空间108a的存储器地址、存储器块114a或块保留的存储器空间108a的大小等)计算MAC 110a,因此可以通过检验对应MAC 110a检测篡改标头块106a、用于存储器块114a或块保留的存储器空间108a的地址及/或对应存储器块114a及/或块保留的存储器空间108a的大小的任何尝试。
然而,此方法具有计算量大的缺点,从而每当存取数据结构(标头块106)时需要加密MAC运算。典型的加密MAC算法(例如,HMAC-SHA-1、AES-CMAC、DAA等)寻求通过在计算MAC时实施多个计算量大的循环及/或产生伪随机掩模值而提供更大安全性。因此,典型的加密MAC运算是计算密集型的且每当计算加密MAC时可能消耗相当大的处理资源。
如果通常存取存储器块114(例如,及/或对应标头块106中的数据结构),这在数据结构保存关于例如堆存储器结构等的存储器分配的信息的情况下是很可能的,那么MAC110的检验可能消耗不可接受的处理资源。
使用预先产生的密钥及/或掩模的具有简洁消息验证代码的示例性存储器结构
图2是说明使用相较于图1的加密MAC计算更高效的MAC-Lite产生器保护数据结构的另一方法的方框图。处理电路202可以耦合到及/或集成存储器装置204或存储装置。存储器装置204可以包含布置为存储器块214a、214b及/或214c的存储器空间。每一存储器块214a、214b、214c可以包含标头块206a、206b及206c及对应块保留的存储器空间208a、208b及208c。标头块206可以用以存储数据结构(例如,元数据结构)。
处理电路202可以经配置以实施MAC Lite产生器212,其针对每一标头块206或存储器块214计算MAC 210且将此MAC 210存储在每一对应标头块206中。在一个实例中,MAC产生器212(例如,MAC处理电路或模块)可以实施特定MAC-Lite算法216,其中多个启动产生的密钥218及/或启动产生的掩模217用于产生消息输入220(例如,数据结构)的MAC。
多个启动产生的密钥218及/或启动产生的掩模217可以用于在启动之间或在应用会话期间产生MAC。举例来说,来自多个启动产生的密钥218及/或启动产生的掩模217的选定密钥及/或掩模可以用于在周期或会话期间产生用于所有数据结构的所有MAC。
在各种实例中,MAC-Lite算法216可以包含存储器地址222作为“消息”输入220的一部分,标头块开始于所述存储器地址处、块保留的存储器空间开始于所述存储器地址处及/或数据结构的特定元数据保存在所述存储器地址处。消息输入(例如,存储器地址等)中的至少一者可以用于从启动产生的密钥218选择不同的一或多个密钥及/或从启动产生的掩模217选择掩模。选定密钥及/或掩模随后用于产生MAC 210,同时在运行时避免多个计算量大的循环及/或伪随机掩模值的计算。
另外,MAC算法216还可以包含其它输入1…n 224作为“消息”输入220的一部分,例如,标头块(例如,存储在其中的数据结构)的内容。由于基于对应标头块206a中的至少一些信息(例如,用于存储器块214a或块保留的存储器空间208a的存储器地址、存储器块214a或块保留的存储器空间208a的大小等)计算MAC 210a,因此可以通过检验对应MAC 210a检测篡改标头块206a、用于存储器块214a或块保留的存储器空间208a的地址及/或对应存储器块214a及/或块保留的存储器空间208a的大小的任何尝试。
此MAC 210可以存储在数据结构中(标头块206中)且每当存取(例如,读取或写入操作)数据结构时进行检查。
图3说明MAC-Lite算法302的实例,其相较于图1的加密MAC计算更高效,同时相较于循环冗余检查(CRC)或探测值具有更高安全性。此MAC-Lite算法302可以例如通过图2中的MAC-Lite产生器212实施。
在此方法中,密钥304及/或掩模306的集合可以在开机及/或启动时预先产生且随后可以用于(例如,在整个会话期间)产生一或多个存储器块的MAC。举例来说,多个密钥304k[0][0]、…、k[n][NK-1]可以随机或伪随机地产生(例如,基于随机或伪随机值产生)。在此实例中,多个密钥304k[0][0]、…、k[n][NK-1]已被分组成多个子集306a、306b及306c,包含密钥的第一子集306a k[0][0]、…、k[0][NK-1]、密钥的第二子集306b k[1][0]、…、k[1][NK-1],及密钥的第三子集306c k[N][0]、…、k[n][NK-1]。这些密钥值应该是秘密的且不可由潜在攻击者改变。
类似地,包含mask[0]、mask[1]、…、mask[NM-1]的多个掩模值308,可以在开机及/或启动时预先产生且随后可以用于(例如,在整个会话期间)产生一或多个存储器块的MAC。
在此实例中,MAC-Lite算法302可以采用如下项作为输入:多个输入Input_1310a、Input_2 310b及Input_n 310c、可变存储器地址312、预先选定或预定的质数p 314、选定掩模316及/或选自密钥304的集合的选定的多个密钥318。在一个实例中,掩模值308,即mask[0]、mask[1]、…、mask[NM-1]可以各自与质数p 314具有相同位长度。另外,在密钥304的集合中的密钥值k[0][0]、…、k[n][NK-1]可以在0与p-1(包含的)之间。
对于给定存储器块,可以使用MAC Lite算法302产生MAC。多个密钥318可以例如基于从可变存储器地址312产生的一或多个索引选自密钥304的集合。例如,函数f及可变存储器地址312addr可以用以产生密钥索引:f(addr)=key_index_0、…、key_index_n。举例来说,密钥索引中的每一者可以在整数值0与NK-1之间。因此,密钥318的选定集合可以选自多个密钥304的子集306a、306b及306c中的每一者。
类似地,掩模316可以例如基于从可变存储器地址312产生的索引选自多个掩模值308。例如,相同或不同函数f及可变存储器地址312addr可以用以产生掩模索引:f(addr)=mask_index。举例来说,mask_index 313可以在整数值0与NM-1之间。因此,掩模316可以选自多个掩模308。
选定的多个密钥318、选定掩模316、质数p 314及可变存储器地址312、input_1310a、input_2 310b、…、input_n310可以通过产生难以预测的MAC输出的方式组合。在存储器管理的情况下,可变存储器地址(addr)312可以例如是用于存储器结构的标头块的开始地址。同样地,多个其它输入变量input_1 310a、input_2 310b、…、input_n 310c可以是在数据结构或标头块中的不同变量。MAC-Lite算法302可以通过可以大于任何可能的个别输入(例如,k(j][i]≤p-1)的质数p 314参数化,这可以由于已知用于MAC-Lite算法302的输入特性的假设而确定。此质数p 314可以小于一些可能输入(例如,选定密钥318、选定掩模316、存储器地址312及/或输入310),只要通过双射方式将可能输入的集合有效地映射到均保证小于质数p 314的输入的集合。这还允许小输入组合成一个较大变量。此质数p 314可以公开,但不应由攻击者可改变。
在替代实施方案中,输入(例如,选定密钥318、选定掩模316、存储器地址312及/或输入310)还可以通过将所述输入映射到域的元素中使用任意有限域GF(2^n)实施。
在一个实例中,MAC-Lite算法302可以涉及两个阶段。首先,中间多项式值(Val)被计算为:
Intermediate_Val=addr*k[0][key_index_0]+
input_1*k[1][key_index_1]+
input_2*k[2][key_index_2]+…+
input_n*k[n][key_index_n]mod p。
随后MAC值被计算为:
MAC_value=Intermediate_Val XOR mask[mask_index]。
以此方式,MAC-Lite算法302可以产生相对安全的输出MAC值320,同时每当存取存储器块时避免迭代计算的多个循环。
图4说明可以经实施以产生相较于传统MAC更高效的MAC的MAC-Lite算法的一个实例。在装置或会话启动或起始402时预先产生密钥的集合k[0][0]、…、k[n][NK-1]。类似地,在装置或会话启动或起始404时预先产生掩模的集合mask[0]、mask[1]、…、mask[NM-1]。获得与数据结构406相关联的多个可变输入(例如,addr、input_1、input_2、…、input_n)。基于输入408中的一或多者从密钥的集合中选择多个密钥(例如,k[0][key_index_0]、k[1][key_index_1]、k[2][key_index_2]及k[n][key_index_n])。类似地,基于可变输入410中的一或多者从掩模的集合中选择掩模(例如,mask[mask_index])。通过以下方式计算中间值:将多个可变输入中的每一者与对应选定密钥组合以获得多个暂时性值、将多个暂时性值组合及执行模p运算以获得中间值412。在各种实例中,每一输入及对应密钥可以使用逻辑运算、算术运算(例如,乘法)及/或可以用于组合两个值且获得暂时性值的任何其它运算或函数来组合。在一个实例中,Intermediate_val=addr*k[0][key_index_0]+input_1*k[1][key_index_1]+input_2*k[2][key_in dex_2]+…+input_n*k[n][key_index_n]modp,其中p是质数。随后可以在中间值与选定掩模(例如,mask[mask_index])之间执行异或(XOR)运算以获得消息验证代码(MAC)414。
在一个示例性实施方案中,多个密钥304(例如,密钥的集合)可以索引化(例如,通过key_index_x可选择的)。类似地,多个掩模308(例如,掩模的集合)可以索引化(例如,通过313可选择的)。因此,可以基于用于数据结构的可变输入中的一者产生key_index值及/或mask_index。使用可变输入的多个其它方法可以单独地或与其它信息组合用于产生取决于可变输入(例如,其中可变输入变化在整个数据结构中可以是不同的)变化的mask_index。mask_index可以选自多个NM掩模308之中,其中NM是整数值,并且用于MAC值320的计算中。特定mask_index 313的从多个掩模308之中的选择可以是随机的、伪随机的及/或根据一些选择算法(例如,根据存储器地址312)。在一个实例中,多个掩模308中的掩模的每一者可以具有与质数p 314相同的位长度。
在一个实例中,多个密钥304可以被细分成子集306a、306b、306c,每一者具有NK元素(即,密钥)。类似于mask_index的选择,可以基于相同可变输入或不同可变输入选择多个key_index_x。举例来说,密钥304的集合中的子集306a、306b及306c的长度NK可以用于推导用于子集306a、306b、306c中的每一者的密钥索引值。例如,特定key_index 313(例如,key_index_1、key_index_2、…、key_index_n)的从多个掩模308之中的选择可以是随机的、伪随机的及/或根据一些选择算法(例如,根据存储器地址312)。优选地,到子集306a、306b、306c中的每一者中的key_index是不同的以对抗攻击者提供更高安全性。
应注意,MAC-Lite算法302可以用于多个不同情形中,而不仅仅用于存储器完整性。在此MAC-Lite算法302用于存储器完整性的情况下,MAC 320可以作为数据结构的一部分存储在用于存储器块的标头块中。在随后存取(例如,读取或写入)相同存储器块后,MAC产生并且与标头块中先前存储的MAC相比较以保全它们是相同的。如果MAC是不同的,那么可以假设或推断存储器块已受损且存储器块可能被清空或忽略。另外,受损存储器块的出现可能还指示存储器区内的其它存储器结构可能已受损。因此,其它存储器块还可能被清空、忽略或系统可以重新启动。
图5说明其中基于掩模的不同集合及密钥的不同集合的预先产生而产生验证代码的一般方法。预先产生502包括多个不同密钥的密钥的集合。例如,在启动处理电路、开启处理电路及/或起始在处理电路上执行的会话(例如,处理会话、应用会话、通信会话等)后可以产生密钥的集合。在一些实施方案中,密钥的集合可以被细分成如图3中所说明的子集(例如,密钥304的集合及子集306a、306b及306c)。类似地,预先产生304包括不同掩模的掩模的集合。例如,在启动处理电路、开启处理电路及/或起始在处理电路上执行的会话(例如,处理会话、应用会话、通信会话等)后还可以产生掩模的集合。可以基于随机值(例如,来自硬件随机位产生器、基于不可预测系统事件的随机数产生器、软件随机数产生器、基于种子值的伪随机数产生器等)产生密钥的集合及掩模的集合中的至少一者。密钥的集合及掩模的集合可以保持为秘密的。
随后可以获得506与数据结构(例如,消息、存储器区域、数据、文件、传输、标头块信息等)相关联的多个可变输入。在一些实施方案中,此类可变输入可以包含与数据结构或数据结构的位置相关联的存储器地址。
多个可变输入中的每一者可以与来自密钥的集合的选定对应密钥组合(例如,通过逻辑或算术运算,例如乘法)以获得多个暂时性值508。随后组合多个暂时性值(例如,通过逻辑或算术运算,例如加法等)以获得单个经组合值510。可以基于多个可变输入中的至少一者选择多个不同密钥中的每一者。随后可以使用固定质数值对单个经组合值执行模运算以获得中间值512。在一个实例中,中间值可以计算为多个可变输入中的每一者与其选定对应密钥相乘以获得多个暂时性值、加上所得的暂时性值及通过预先选定的固定质数执行模运算。所使用的每一密钥的值可以在零与质数之间。
随后可以在中间值与来自掩模的集合的选定掩模之间执行异或(XOR)运算以获得用于数据结构514的消息验证代码。可以基于多个可变输入中的至少一者(例如,对应于数据结构的可变存储器地址空间)选择掩模。应注意,在替代实施方案中,可以使用不同运算(例如,逻辑运算或算术运算)来组合中间值及选定掩模。
消息验证代码可以存储在存储器装置516中的数据结构内。在一些实例中,数据结构可以是固定长度的数据结构。
随后,当再次存取数据结构时,从数据结构518中获得先前存储的消息验证代码。随后,消息验证代码可以与先前存储的消息验证代码相比较以确认数据结构520的完整性。
图6是说明经调适以执行MAC-Lite算法以保全数据结构的完整性的装置的示例性实施的方框图。所述装置可以包含耦合到独立或集成存储器装置604的处理电路602。处理电路602可以包含消息验证代码(MAC)产生器606,其可以经调适以在存储于存储器装置604中的一或多个数据结构608a、608b、608c上实施MAC-Lite算法以保全数据结构的完整性。
MAC产生器606可以包含实施MAC-Lite算法的一或多个函数或步骤的多个电路及/或模块。在启动或开启处理电路602或起始在处理电路602上执行的会话或应用后,密钥预先产生电路/模块610可以随机地或伪随机地产生包括多个密钥的密钥628的集合。密钥628的集合可以存储在安全存储器装置626中或处理电路602或存储器装置604内的安全位置中。类似地,在启动或开启处理电路602或起始在处理电路602上执行的会话或应用后,掩模预先产生电路/模块612可以随机地或伪随机地产生包括多个掩模的掩模630的集合。掩模630的集合可以存储在安全存储器装置626中或处理电路602或存储器装置604内的安全位置中。可以在启动之间或(应用)会话之间的持续时间内将掩模的集合及/或密钥的集合存储在安全存储器装置626(或位置)中。因此,掩模的集合及/或密钥的集合不用于仅一个读取/写入操作或单个存储器块。替代地,在周期期间(例如,在启动之间或在会话之间)其用于所有读取/写入操作及所有存储器块。
在存取用于写入操作或读取操作的数据结构后,密钥选择器电路/模块614可以基于与数据结构相关联的至少一个输入(例如,用于数据结构的可变存储器地址等)从密钥628的集合中选择多个密钥。类似地,掩模选择器电路/模块616可以基于至少一个输入(例如,用于数据结构的可变存储器地址等)或与数据结构相关联的不同一或多个输入从掩模630的集合中选择掩模。
输入及密钥组合电路/模块618可以用以将输入与对应(不同)选定密钥(来自密钥选择器电路/模块614)组合。举例来说,每一输入可以乘以不同选定密钥且结果可以相加在一起。模运算符电路/模块620可以应用于使用固定质数p 632从输入及密钥组合电路/模块618产生的结果。掩模组合电路/模块622可以采用从模运算符电路/模块622产生的结果且应用选定掩模(来自掩模选择器电路/模块616)来产生用于数据结构的MAC-Lite值。
MAC比较器电路/模块624可以用以通过将用于数据结构的先前存储的MAC值与动态计算出的MAC值(来自掩模组合电路/模块622)相比较来检查数据结构的完整性。
图7说明基于掩模的不同集合及密钥的不同集合的预先产生而产生用于存储器空间的验证代码的实例。获得用于固定长度的数据结构702的存储器地址。此外基于固定长度的数据结构704中的信息获得多个输入。不同密钥选择用于存储器地址及多个可变输入中的每一者,其中不同密钥中的每一者选自预先产生的密钥706的不同集合。在一个实例中,可以基于(例如,根据)存储器地址选择多个不同密钥中的每一者及/或掩模。在启动处理电路/装置后或在起始在处理电路/装置上执行的会话后,可能已产生预先产生的密钥的不同集合。
存储器地址与选定第一密钥组合以及多个可变输入中的每一者与选定对应密钥组合以获得中间值708。中间值可以计算为存储器地址与第一密钥的乘积加上多个可变输入中的每一者与其选定对应密钥的乘积及通过预先选定的固定质数执行模运算。所使用的每一密钥可以在零与质数之间。
在中间值与选自预先产生的掩模的不同集合的掩模之间执行异或(XOR)运算以获得用于固定长度的数据结构710的验证代码。在启动处理电路/装置后或在起始在处理电路/装置上执行的会话后,可能已产生预先产生的掩模的不同集合。密钥的不同集合及掩模的不同集合可以保持为秘密的。
验证代码随后可以存储在固定长度的数据结构712内。举例来说,验证代码可以存储在用于固定长度的数据结构的标头块中。存储器地址可以对应于用于固定长度的数据结构的标头块的地址。
在固定长度的数据结构的随后存取中,其完整性可以通过再产生消息验证代码及将所述消息验证代码与用于相同数据结构的先前存储的消息验证代码相比较来检验。
图式中所说明的组件、步骤、特征及/或功能中的一或多者可以重新布置及/或组合成单个组件、步骤、特征或功能或体现在若干组件、步骤或功能中。在不脱离本发明的情况下,还可以添加额外的元件、组件、步骤及/或功能。图式中所说明的设备、装置及/或组件可以经配置以执行图式中描述的方法、特征或步骤中的一或多者。本文中所描述的算法也可以有效地实施于软件中及/或嵌入于硬件中。
此外,在本发明的一个方面中,在图1、2及6中所说明的处理电路102、202及/或602可以是专用处理器(例如,专用集成电路(例如,ASIC)),其专门经设计及/或硬连线以执行在图3、4、5及/或7中所说明的算法、方法及/或步骤。因此,此专用处理器(例如,ASIC)可以为用于执行图3、4、5及/或7中所描述的算法、方法和/或步骤的装置的一个实例。处理器可读存储媒体可以存储当由专用处理器(例如,ASIC)执行时致使专用处理器执行本文中所描述的算法、方法及/或步骤的指令。
此外,应注意,可以将本发明的各方面描述为过程,所述过程被描绘为流程图、流图、结构图或方框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新布置操作的次序。当过程的操作完成时,所述过程终止。过程可以对应于方法、函数、步骤、子例程、子程序等。当过程对应于函数时,其终止对应于所述函数返回到调用函数或主函数。
此外,存储媒体可以表示用于存储数据的一或多个装置,包含只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置及/或其它机器可读媒体及处理器可读媒体,及/或用于存储信息的计算机可读媒体。术语“机器可读媒体”、“计算机可读媒体”及/或“处理器可读媒体”可包含(但不限于)非暂时性媒体(例如,便携式或固定存储装置)、光学存储装置及能够存储、含有或携载指令及/或数据的各种其它媒体。因此,本文中描述的各种方法可以完全或部分地由可以存储在“机器可读媒体”、“计算机可读媒体”及/或“处理器可读媒体”中且由一或多个处理器、机器及/或装置执行的指令及/或数据来实施。
此外,本发明的方面可以由硬件、软件、固件、中间件、微码或其任何组合实施。当以软件、固件、中间件或微码实施时,用以执行必要任务的程序代码或代码段可以存储在例如存储媒体或其它存储装置的机器可读媒体中。处理器可以执行必要任务。代码段可以表示步骤、函数、子程序、程序、例程、子例程、模块、软件包、类别,或指令、数据结构或程序语句的任意组合。代码段可以通过传递及/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包含存储器共享、消息传递、权标传递、网络传输等任何合适的方式传递、转发或传输。
结合本文中揭示的实例描述的各种说明性逻辑块、模块、电路、元件及/或组件可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中描述的功能的任何组合来实施或执行。通用处理器可以为微处理器,但在替代方案中,处理器可以为任何常规处理器、控制器、微控制器或状态机。处理器还可以实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心的结合,或任何其它此类配置。
结合本文所揭示的实例描述的方法或算法可以处理单元、编程指令或其它方向的形式直接体现在硬件、可由处理器执行的软件模块或两者的组合中,且可以包含于单个装置中或跨越多个装置而分布。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除式磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。存储媒体可以耦合到处理器,使得处理器可以从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可以与处理器整合。
所属领域的技术人员将进一步了解,结合本文所揭示的方面描述的各种说明性逻辑块、模块、电路及算法步骤可以实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。此种功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。
本文所述的本发明的各种特征可以实施于不同系统中而不脱离本发明。应注意,本发明的前述方面仅为实例,且不应解释为限制本发明。本发明的各方面的描述既定是说明性的,且不限制权利要求书的范围。因此,本发明的教示可以容易应用于其它类型的设备,且所属领域的技术人员将明白许多替代方案、修改及变化。

Claims (38)

1.一种产生验证代码的方法,其包括:
在启动处理电路或起始在所述处理电路上执行的会话后,预先产生包括多个不同密钥的密钥的集合;
预先产生包括多个不同掩模的掩模的集合;
获得与固定长度的数据结构相关联的多个可变输入;
将所述多个可变输入中的每一者与来自密钥的所述集合的选定对应密钥组合以获得多个暂时性值;
组合所述多个暂时性值以获得中间值;及
在所述中间值与来自掩模的所述集合的选定掩模之间执行运算以获得用于所述固定长度的数据结构的消息验证代码。
2.根据权利要求1所述的方法,其中在启动所述处理电路或起始在所述处理电路上执行的所述会话后还预先产生掩模的所述集合。
3.根据权利要求1所述的方法,其中基于随机值产生密钥的所述集合及掩模的所述集合中的至少一者。
4.根据权利要求1所述的方法,其中所述多个暂时性值通过以下方式组合:
将所述多个暂时性值相加以获得经组合值,及
通过预先选定的固定质数对所述经组合值执行模运算以获得所述中间值。
5.根据权利要求4所述的方法,其中密钥的所述集合中的每一密钥的值在零与所述预先选定的固定质数之间。
6.根据权利要求4所述的方法,其中在所述中间值与所述选定掩模之间的所述运算是按位异或运算。
7.根据权利要求1所述的方法,其中基于所述多个可变输入中的至少一者选择所述选定掩模及所述选定对应密钥中的每一者。
8.根据权利要求7所述的方法,其中所述多个可变输入中的所述至少一者是与所述固定长度的数据结构相关联的存储器地址。
9.根据权利要求8所述的方法,其中基于所述存储器地址选择所述选定对应密钥中的每一者。
10.根据权利要求8所述的方法,其中基于所述存储器地址选择所述选定掩模。
11.根据权利要求1所述的方法,其中密钥的所述集合被细分成密钥的子集且从密钥的任一单个子集选择仅密钥的一子集来计算所述消息验证代码。
12.根据权利要求1所述的方法,其进一步包括:
在启动之间或会话之间的持续时间内将掩模的所述集合及密钥的所述集合中的至少一者存储在安全的存储器位置中。
13.根据权利要求1所述的方法,其进一步包括:
将所述消息验证代码存储在存储器装置中的所述固定长度的数据结构内。
14.根据权利要求13所述的方法,其中所述消息验证代码存储在用于所述固定长度的数据结构的标头块中。
15.根据权利要求1所述的方法,其进一步包括:
从所述数据结构中获得先前存储的消息验证代码;及
将所述消息验证代码与所述先前存储的消息验证代码相比较以确认所述数据结构的完整性。
16.一种产生验证代码的装置,其包括:
存储器装置,其用以存储固定长度的数据结构;
处理电路,其耦合到所述存储器装置,所述处理电路经调适以:
在启动处理电路或起始在所述处理电路上执行的会话后,预先产生包括多个不同密钥的密钥的集合;
预先产生包括多个不同掩模的掩模的集合;
获得与所述固定长度的数据结构相关联的多个可变输入;
将所述多个可变输入中的每一者与来自密钥的所述集合的选定对应密钥组合以获得多个暂时性值;
组合所述多个暂时性值以获得中间值;及
在所述中间值与来自掩模的所述集合的选定掩模之间执行运算以获得用于所述固定长度的数据结构的消息验证代码。
17.根据权利要求16所述的装置,其中在启动所述处理电路或起始在所述处理电路上执行的所述会话后还预先产生掩模的所述集合。
18.根据权利要求16所述的装置,其中基于随机值产生密钥的所述集合及掩模的所述集合中的至少一者。
19.根据权利要求16所述的装置,其中所述多个暂时性值通过以下方式组合:
将所述多个暂时性值相加以获得经组合值,及
通过预先选定的固定质数对所述经组合值执行模运算以获得所述中间值。
20.根据权利要求19所述的装置,其中密钥的所述集合中的每一密钥的值在零与所述预先选定的固定质数之间。
21.根据权利要求19所述的装置,其中在所述中间值与所述选定掩模之间的所述运算是按位异或运算。
22.根据权利要求16所述的装置,其中基于所述多个可变输入中的至少一者选择所述选定掩模及所述选定对应密钥中的每一者。
23.根据权利要求22所述的装置,其中所述多个可变输入中的所述至少一者是与所述固定长度的数据结构相关联的存储器地址。
24.根据权利要求23所述的装置,其中基于所述存储器地址选择所述选定对应密钥中的每一者。
25.根据权利要求23所述的装置,其中基于所述存储器地址选择所述选定掩模。
26.根据权利要求16所述的装置,其中密钥的所述集合被细分成密钥的子集且从密钥的任一单个子集选择仅密钥的一子集来计算所述消息验证代码。
27.根据权利要求16所述的装置,其中所述处理电路进一步经调适以:
在启动之间或会话之间的持续时间内将掩模的所述集合及密钥的所述集合中的至少一者存储在安全的存储器位置中。
28.根据权利要求16所述的装置,其中所述处理电路进一步经调适以:
将所述消息验证代码存储在存储器装置中的所述固定长度的数据结构内。
29.根据权利要求28所述的装置,其中所述消息验证代码存储在用于所述固定长度的数据结构的标头块中。
30.根据权利要求16所述的装置,其中所述处理电路进一步经调适以:
从所述数据结构中获得先前存储的消息验证代码;及
将所述消息验证代码与所述先前存储的消息验证代码相比较以确认所述数据结构的完整性。
31.一种产生验证代码的装置,其包括:
用于在启动处理电路或起始在所述处理电路上执行的会话后预先产生包括多个不同密钥的密钥的集合的装置;
用于预先产生包括多个不同掩模的掩模的集合的装置;
用于获得与固定长度的数据结构相关联的多个可变输入的装置;
用于将所述多个可变输入中的每一者与来自密钥的所述预先产生的集合的选定对应密钥组合以获得多个暂时性值的装置;
用于组合所述多个暂时性值以获得中间值的装置;及
用于在所述中间值与来自预先产生的掩模的所述集合的选定掩模之间执行运算以获得用于所述固定长度的数据结构的消息验证代码的装置。
32.根据权利要求31所述的装置,其进一步包括:
用于在启动之间或会话之间的持续时间内将掩模的所述集合及密钥的所述集合中的至少一者存储在安全的存储器位置中的装置。
33.根据权利要求31所述的装置,其进一步包括:
用于将所述消息验证代码存储在存储器装置中的所述固定长度的数据结构内的装置。
34.根据权利要求33所述的装置,其中所述消息验证代码存储在用于所述固定长度的数据结构的标头块中。
35.根据权利要求31所述的装置,其进一步包括:
用于从所述数据结构中获得先前存储的消息验证代码的装置;及
用于将所述消息验证代码与所述先前存储的消息验证代码相比较以确认所述数据结构的完整性的装置。
36.一种具有一或多个指令的处理器可读存储媒体,所述一或多个指令在由至少一个处理电路执行时致使所述至少一个处理电路进行以下操作:
在启动处理电路或起始在所述处理电路上执行的会话后,预先产生包括多个不同密钥的密钥的集合;
预先产生包括多个不同掩模的掩模的集合;
获得与固定长度的数据结构相关联的多个可变输入;
将所述多个可变输入中的每一者与来自密钥的所述集合的选定对应密钥组合以获得多个暂时性值;
组合所述多个暂时性值以获得中间值;及
在所述中间值与来自掩模的所述集合的选定掩模之间执行运算以获得用于所述固定长度的数据结构的消息验证代码。
37.根据权利要求36所述的处理器可读存储媒体,其进一步具有在由至少一个处理电路执行时致使所述至少一个处理电路进行以下操作的一或多个指令:
将所述消息验证代码存储在存储器装置中的所述固定长度的数据结构内。
38.根据权利要求36所述的处理器可读存储媒体,其进一步具有在由至少一个处理电路执行时致使所述至少一个处理电路进行以下操作的一或多个指令:
从所述数据结构中获得先前存储的消息验证代码;及
将所述消息验证代码与所述先前存储的消息验证代码相比较以确认所述数据结构的完整性。
CN201480007504.4A 2013-02-07 2014-01-31 用于保护固定长度的数据结构的完整性的方法 Expired - Fee Related CN104969508B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/762,195 US9298947B2 (en) 2013-02-07 2013-02-07 Method for protecting the integrity of a fixed-length data structure
US13/762,195 2013-02-07
PCT/US2014/014148 WO2014123779A1 (en) 2013-02-07 2014-01-31 Method for protecting the integrity of a fixed-length data structure

Publications (2)

Publication Number Publication Date
CN104969508A CN104969508A (zh) 2015-10-07
CN104969508B true CN104969508B (zh) 2018-04-10

Family

ID=50113037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480007504.4A Expired - Fee Related CN104969508B (zh) 2013-02-07 2014-01-31 用于保护固定长度的数据结构的完整性的方法

Country Status (6)

Country Link
US (1) US9298947B2 (zh)
EP (1) EP2954636A1 (zh)
JP (1) JP6077678B2 (zh)
KR (1) KR101734205B1 (zh)
CN (1) CN104969508B (zh)
WO (1) WO2014123779A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12015697B2 (en) 2016-10-03 2024-06-18 Visa International Service Association Network topology

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443107B2 (en) * 2013-02-19 2016-09-13 Qualcomm Incorporated Method for protecting the integrity of a group of memory elements using an aggregate authentication code
US9177123B1 (en) * 2013-09-27 2015-11-03 Emc Corporation Detecting illegitimate code generators
US10019603B2 (en) * 2014-04-16 2018-07-10 Synopsys, Inc. Secured memory system and method therefor
US10230531B2 (en) 2014-10-23 2019-03-12 Hewlett Packard Enterprise Development Lp Admissions control of a device
WO2016068941A1 (en) * 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Secure transactions in a memory fabric
WO2016068942A1 (en) 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Encryption for transactions in a memory fabric
US10523418B2 (en) * 2016-06-03 2019-12-31 Cryptography Research, Inc. Providing access to a hardware resource based on a canary value
US11349639B2 (en) * 2018-12-28 2022-05-31 ePIC Blockchain Technologies Inc. Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms
CN112185435A (zh) * 2019-07-03 2021-01-05 旺宏电子股份有限公司 电子装置、存储器装置及其存储数据的读取方法
US11943367B1 (en) * 2020-05-19 2024-03-26 Marvell Asia Pte, Ltd. Generic cryptography wrapper
US11271739B2 (en) * 2020-06-25 2022-03-08 Digital 14 Llc Error-correcting key agreement for noisy cryptographic systems
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム
US11698971B2 (en) * 2021-04-15 2023-07-11 Honeywell International Inc. Secure boot device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1386250A (zh) * 2000-06-08 2002-12-18 布尔Cp8公司 在嵌入式微芯片系统,尤其是智能卡的存储器中安全存储敏感数据的方法和实现该方法的嵌入式系统
CN1779689A (zh) * 2000-01-21 2006-05-31 索尼公司 数据处理设备和数据处理方法
CN101779435A (zh) * 2007-08-08 2010-07-14 高通股份有限公司 分组数据汇聚协议报头中的密钥标识符

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ240019A (en) * 1991-09-30 1996-04-26 Peter John Smith Public key encrypted communication with non-multiplicative cipher
US7069287B2 (en) * 2000-09-19 2006-06-27 Worcester Polytechnic Institute Method for efficient computation of odd characteristic extension fields
JP4087149B2 (ja) * 2002-05-20 2008-05-21 株式会社日立製作所 ディスク装置共有システム、及び計算機
US7697681B2 (en) * 2004-02-06 2010-04-13 Nortel Networks Limited Parallelizable integrity-aware encryption technique
US7500098B2 (en) 2004-03-19 2009-03-03 Nokia Corporation Secure mode controlled memory
US7549045B2 (en) 2004-10-25 2009-06-16 Microsoft Corporation Delegate registration in a managed code execution environment
ATE365938T1 (de) * 2005-01-07 2007-07-15 Ericsson Telefon Ab L M Aktualisierung von speicherinhalt in einem datenverarbeitungssystem
JP2006203564A (ja) 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
US8189786B2 (en) * 2005-05-25 2012-05-29 Zenith Electronics Llc Encryption system
EP1949591B1 (en) 2005-11-04 2013-01-09 Isis Innovation Limited Security in computing networks
JP4712017B2 (ja) * 2006-11-13 2011-06-29 韓國電子通信研究院 ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
KR20080046515A (ko) * 2006-11-22 2008-05-27 삼성전자주식회사 콘텐츠 파일의 암호화 및 복호화 방법
US8909931B2 (en) 2008-02-29 2014-12-09 Nec Corporation Server authentication system, server authentication method, and program for server authentication
JP5248145B2 (ja) * 2008-03-05 2013-07-31 株式会社日立製作所 情報提供サーバ、プログラム、情報提供方法及び情報提供システム
JP5156540B2 (ja) 2008-08-22 2013-03-06 株式会社日立製作所 ハッシュ値生成装置
US8452984B2 (en) * 2008-08-28 2013-05-28 Alcatel Lucent Message authentication code pre-computation with applications to secure memory
US8645714B2 (en) 2010-05-25 2014-02-04 Via Technologies, Inc. Branch target address cache for predicting instruction decryption keys in a microprocessor that fetches and decrypts encrypted instructions
JP5225414B2 (ja) 2011-03-08 2013-07-03 株式会社東芝 暗号演算装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1779689A (zh) * 2000-01-21 2006-05-31 索尼公司 数据处理设备和数据处理方法
CN1386250A (zh) * 2000-06-08 2002-12-18 布尔Cp8公司 在嵌入式微芯片系统,尤其是智能卡的存储器中安全存储敏感数据的方法和实现该方法的嵌入式系统
CN101779435A (zh) * 2007-08-08 2010-07-14 高通股份有限公司 分组数据汇聚协议报头中的密钥标识符

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12015697B2 (en) 2016-10-03 2024-06-18 Visa International Service Association Network topology

Also Published As

Publication number Publication date
US20140223192A1 (en) 2014-08-07
EP2954636A1 (en) 2015-12-16
KR20150115874A (ko) 2015-10-14
JP2016508002A (ja) 2016-03-10
CN104969508A (zh) 2015-10-07
US9298947B2 (en) 2016-03-29
JP6077678B2 (ja) 2017-02-08
KR101734205B1 (ko) 2017-05-11
WO2014123779A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
CN104969508B (zh) 用于保护固定长度的数据结构的完整性的方法
US10891384B2 (en) Blockchain transaction device and method
EP2526505B1 (en) Device and method for obtaining a cryptographic key
CN110300973A (zh) 联盟区块链网络的建立
EP2273718B1 (en) Cryptographic key generation using a stored input value and a count value stored for later regeneration
US11184164B2 (en) Secure crypto system attributes
EP2893431B1 (fr) Protection contre canaux auxiliaires
TW201141173A (en) Verifiable, leak-resistant encryption and decryption
WO2017123902A1 (en) Cryptographic asic including circuitry-encoded transformation function
CA2983163A1 (en) Generating cryptographic function parameters from compact source code
CN107276762A (zh) 一种多协议区块链的工作方法及装置
CN102411694B (zh) 加密装置及存储器系统
CN103914662A (zh) 一种基于分区的文件加密系统的访问控制方法和装置
CA2983166A1 (en) Generating cryptographic function parameters based on an observed astronomical event
CA2983164A1 (en) Generating cryptographic function parameters from a puzzle
CN110855667A (zh) 一种区块链加密方法、装置及系统
CN102270285B (zh) 密钥授权信息管理方法及装置
JP4386766B2 (ja) データ処理装置における誤り検出
FR2806858A1 (fr) Procede cryptographique de protection contre la fraude
EP3871368B1 (en) Blockchain secured by backward chained elements
CN107133517A (zh) 一种基于内存中数据加密和计算的数据还原方法
Zhang et al. Side‐Channel Attacks and Countermeasures for Identity‐Based Cryptographic Algorithm SM9
Guin et al. Obfuscation and encryption for securing semiconductor supply chain
CN112863040B (zh) 投票结果的生成、统计与获取方法、装置及电子设备
KR102118810B1 (ko) 암호기법을 사용한 탈중앙화 된 의사 난수발생방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180410

Termination date: 20190131