CN102204158B - 低等待时间的分块密码术 - Google Patents

低等待时间的分块密码术 Download PDF

Info

Publication number
CN102204158B
CN102204158B CN200980143933.3A CN200980143933A CN102204158B CN 102204158 B CN102204158 B CN 102204158B CN 200980143933 A CN200980143933 A CN 200980143933A CN 102204158 B CN102204158 B CN 102204158B
Authority
CN
China
Prior art keywords
data
wheel
round key
storage address
block cipher
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.)
Active
Application number
CN200980143933.3A
Other languages
English (en)
Other versions
CN102204158A (zh
Inventor
P·M·霍克斯
L·肖
G·G·罗斯
S·米轮多夫
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 CN102204158A publication Critical patent/CN102204158A/zh
Application granted granted Critical
Publication of CN102204158B publication Critical patent/CN102204158B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

提供了一种保护数据的分块密码术,其通过基于数据要被存储的存储器地址加密该数据来保护该数据。当加密数据以供存储在该存储器地址中时,该存储器地址在第一多个分块密码术轮中被加密。使用来自第一多个分块密码术轮的信息来生成数据轮密钥。把要被存储的数据与经加密的存储器地址相组合并且在第二多个分块密码术轮中通过使用这些数据轮密钥来加密。经加密数据随后存储在该存储器位置中。当解密数据时,存储器地址如之前那样被再次加密,而经加密的存储数据在第二多个分块密码术轮中通过使用数据轮密钥来解密以获得经部分解密的数据。把经部分解密的数据与经加密的存储器地址相组合以获得完全解密的数据。

Description

低等待时间的分块密码术
背景
领域
一个特征涉及存储器内容的保护,尤其涉及使用分块密码术来保护存储到存储器设备的内容的方法。
背景
数字处理器存在于诸如蜂窝电话、计算机、个人数字助理(PDA)、无线网络接入点等的许多设备中。使存储在存储器中的程序和数据得到保护以对抗具有相当尖端的工具的攻击者的需要日渐增长。数字权限管理应用也强加此类限制以控制对数字数据或硬件的访问或使用。例如,中央处理单元(CPU)通常具有某种芯片上存储器存储,可以通过确保数据访问线被埋藏在CPU或板内以使得访问该数据的企图将毁坏该设备并且可以想见在数据能被访问到之前就加扰或毁坏该数据来对该芯片上存储器存储进行安保。
出于规模和经济的原因,希望能够将存储器封装在单独的芯片中。然而,将存储器设备封装在单独的芯片中会使攻击者要通过使用诸如探针之类的简单工具来访问存储器设备相对容易,因为数据在其于CPU与存储器芯片之间往来时是曝露的。
一种解决在将数据存储到分离的存储芯片时缺乏安全性的方法是在CPU上进行加密过程,以使得被写到存储器芯片的数据对攻击者而言是无用的。反之,当从存储器取回数据时,该数据由CPU解密。关于特定存储器分块的地址信息以及仅为CPU所知的密码学密钥是该加密算法的其他输入。
由于存储器位置能被重复写,且常常是用模式化数据来写,因而流密码术以及对应的用于分块密码术的操作模式诸如计数器模式(CTR)之类并不恰适。将地址用作如密码术分块链接(CBC)的模式的初始化矢量的分块密码术在此是恰适的机制。(见FIPS特种出版物800-38A——ModesofoperationforBlockCipher(用于分块密码术的操作模式))。然而,与密码术固有的分块大小相比,在一次操作中要被加密的存储器分块通常很小(例如,往往只是单个分块)。因此,当应用到单个分块时,考虑将CBC模式作为“链接”是反直观的。
现代分块密码术具有常被称为迭代分块密码术的结构。每次迭代被称为一轮,并且重复的函数被称为轮函数(例如,4到32轮之间的任何轮是典型的)。在每一轮中,当被应用到输入分块时,轮函数达成一定量的混乱性和扩散性。为了加密输入分块,该密码术生成该输入分块的置换。解密是通过逆向地运行该过程来达成的。若视作黑盒,则该密码术接收固定大小的单个数据分块以及机密密钥作为输入,重复地将轮函数应用到该输入分块,并且输出单个密码术输出分块。某些密码术允许可变大小的密钥,并且密钥大小可以小于、等于或大于分块大小。例如,高级加密标准(AES)算法具有128位的分块大小,并且能接受128、192或256位的密钥。
在密码术内有数个轮次(例如,在具有128位密钥的AES情形中为10轮)。每一轮具有轮密钥作为其输入的一部分。这些轮密钥是在被称为密钥排程的过程中从机密密钥推导出来的。每一轮旨在对分块和轮密钥的部分执行某种非线性替换,其后继以某种(通常为线性的)扩散操作以将每一替换的效果铺开到整个分块。这些动作旨在挫败诸如线性和差分密码学分析之类的公知形式的密码学分析。
为了加密向存储器发送的数据,存储器地址可被用作初始化矢量。这将保证具有相同数据的不同存储器地址将仍然被不同地加密。该加密可被写为:
C=EK(P⊕A)
其中P是输入明文(原始数据分块),A是存储器地址,C是输出密文(将在存储器芯片中出现在地址A处的输出数据分块),⊕是逐位异或(XOR)运算,而EK表示使用分块密码术以机密密钥K来加密该数据分块。相应地,当要从存储器中读回数据时,将使用逆操作。
P=DK(C)⊕A
其中DK表示在其解密模式中使用分块密码术。然而,与存储器访问速度相比,典型的分块密码术应用具有相当高的等待时间。对于批量加密而言,管线化解决了这个问题,但是当加密单个存储器位置时,管线化并无帮助。
因此,需要一种对少数存储器位置实现分块密码术加密同时减少等待时间的方法。
概述
提供了一种保护数据的分块密码术,其通过基于数据要被存储的存储器地址加密该数据来保护该数据。当加密数据以供存储在该存储器地址中时,该存储器地址在第一多个分块密码术轮中被加密。使用来自第一多个分块密码术轮的信息来生成数据轮密钥。把要被存储的数据与经加密存储器地址相组合并且在第二多个分块密码术轮中通过使用这些数据轮密钥来加密。经加密数据随后被存储在该存储器位置中。当解密数据时,存储器地址如之前那样被再次加密,而经加密的存储数据在第二多个分块密码术轮中通过使用数据轮密钥来解密以获得经部分解密的数据。把经部分解密的数据与经加密存储器地址相组合以获得完全解密的数据。
在存储器地址中数据加密的一个示例中,该存储器地址是在第一多个分块密码术轮中被加密的。加密存储器地址可包括:(a)根据第一变换函数变换该存储器地址,(b)将经变换的存储器地址与轮密钥混合,(c)将存储器地址分段,和/或(d)对不同的存储器地址片段执行位替换。存储器地址可能在数据被存储之前就可用。因此,加密存储器地址可在数据可用之前开始。
数据轮密钥可通过使用来自第一多个分块密码术轮中的一轮或更多轮的信息来生成。生成数据轮密钥可包括:(a)从关于第一多个分块密码术轮中的至少一些轮的经加密存储器地址提取多个位,(b)从提取出的多个位的片段选择数据轮密钥,和/或(c)将提取出的多个位级联到串中,这些数据轮密钥从该串中选择。
数据可与第一多个分块密码术轮之后的经加密存储器地址相组合。例如,可通过可逆操作(例如,模加/模减、逐位XOR运算等)使数据与经加密存储器地址相组合。数据可随后在第二多个分块密码术轮中通过使用这些数据轮密钥来加密。第二多个分块密码术轮多于第一多个分块密码术轮。加密数据可包括:(a)根据第二变换函数变换数据,(b)将经变换的数据与这些数据轮密钥中的一个或更多个混合,(c)将数据分段成多个数据片段,和/或(d)对不同的数据片段执行位替换。
存储器地址可在第一多个分块密码术轮上被迭代地加密,并且数据可在第二多个分块密码术轮上被迭代地加密。在一个示例中,用于第二多个分块密码术轮中较早轮次的数据轮密钥可使用来自源于第一多个分块密码术轮中较晚轮次的经加密存储器地址的位来生成。经加密数据可随后被存储在该存储器地址中。
在解密存储器地址中的数据的另一个示例中,该存储器地址在第一多个分块密码术轮中被加密以获得经加密存储器地址。加密存储器地址可在数据可用之前开始。
加密存储器地址可包括:(a)根据第一变换函数变换存储器地址,(b)将经变换的存储器地址与轮密钥混合,(c)将存储器地址分段,和/或(d)对不同的存储器地址片段执行位替换。
数据轮密钥可通过使用来自第一多个分块密码术轮中的一轮或更多轮的信息来生成。生成数据轮密钥可包括:(a)从关于第一多个分块密码术轮中的至少一些轮的经加密存储器地址提取多个位,(b)从提取出的多个位的片段选择这些数据轮密钥,和/或将提取出的多个位级联到串中,这些数据轮密钥从该串中选择。
经加密数据可从该存储器地址取回。经加密数据可在第二多个分块密码术轮中通过使用这些数据轮密钥来解密以获得经部分解密的数据。解密经加密数据可包括:(a)根据第二逆变换函数变换经加密数据,(b)将变换后的经加密数据与这些数据轮密钥中的一个或更多个混合,(c)将经加密数据分段成多个经加密数据片段,和/或(d)对不同的经加密数据片段执行位替换。
可将经部分解密的数据与经加密存储器地址相组合以获得完全解密的数据。在一个示例中,可通过可逆操作(例如,模加/模减、逐位XOR运算等)使经部分解密的数据与经加密存储器地址相组合。用于第二多个分块密码术轮中较早轮次的数据轮密钥是通过使用来自源于第一多个分块密码术轮中较早轮次的经加密存储器地址的位来生成的。第二多个分块密码术轮多于第一多个分块密码术轮。第一多个分块密码术轮可与第二多个分块密码术轮并发地执行。
这些方法可在硬件、软件、和/或其组合中实现。
附图简述
在结合附图理解下面阐述的详细描述时,本发明各方面的特征、本质和优点将变得更加明了,在附图中,相近参考标记贯穿始终作相应标识。
图1是解说通过在明文输入分块可用之前先部分处理分块密码术藉此减少分块密码术的等待时间来改善分块密码术加密处理的第一特征的框图。
图2是解说通过将分块密码术的第一部分与分块密码术的第二部分并行处理藉此减少分块密码术的等待时间来改善分块密码术解密的第二特征的框图。
图3是解说配置成加密要被存储在存储器中的数据的分块密码术的示例的框图。
图4是解说配置成加密明文数据的分块密码术设备的功能性组件的框图。
图5是解说存储器地址加密或变换模块的一个示例的框图。
图6是解说明文数据加密或变换模块的一个示例的框图。
图7解说使用要存储数据的存储器地址来加密该数据的分块密码术数据加密方法。
图8是解说分块密码术解密从存储器地址读取的数据的处理的框图。
图9是解说配置成解密密文数据的分块密码术设备的功能性组件的框图。
图10是解说密文数据解密或逆变换模块的一个示例的框图。
图11解说用于通过使用在解密经加密数据的同时并发地加密存储器地址以减少分块密码术的等待时间的分块密码术来解密经加密数据的方法。
图12是解说如何可基于来自分块密码术的地址加密轮的结果来生成用于数据加密和解密轮的轮密钥的示例的框图。
图13是解说可配置成执行高效率的分块密码术加密和解密的设备的框图。
详细描述
在以下说明中,给出了具体细节以提供对诸实施例的透彻理解。但是,本领域普通技术人员将可理解,没有这些具体细节也可实践这些实施例。例如,电路可能以框图形式示出,也可能根本不被示出,以免使这些实施例湮没在不必要的细节中。在其它实例中,公知的电路、结构和技术可能不被具体示出以免湮没这些实施例。
综述
若干新颖特征解决了因使用分块密码术来向/从存储器写和读受保护数据所引起的等待时间。一般而言,读操作要比写操作多许多。在现有技术中,加密和解密操作在数据于内部总线上可用(写)或者已从存储器取回(读)之后才开始。但是在典型的硬件设计中,地址信息远在数据之前就可用,在读存储器的情形中尤其如此。
图1是解说通过在明文输入分块可用之前先部分处理分块密码术藉此减少分块密码术的等待时间来改善分块密码术加密处理的第一特征的框图。此加密过程可作为存储器写操作的一部分来执行并且包括在其中存储器地址A106被加密的地址阶段102以及在其中数据被加密的数据阶段104。使用存储器地址A106和用于分块密码术100的机密密钥108来预处理迭代分块密码术的数个密码术轮。明文数据112在若干轮分块密码术加密之后被插入110(例如,与地址阶段102的结果逐位XOR)。具体而言,分块密码术100的一些轮(即,地址阶段轮102)在明文数据112被引入之前执行,而一些轮(即,数据阶段轮104)在明文数据112被引入之后执行以生成密文114。地址阶段102可以不仅加密存储器地址A106还可使用那些轮次的结果来生成用于后续数据阶段轮104的加密密钥(即,密钥排程)。在明文数据112被引入之前和之后所进行的密码术轮次的数目可以相同或不同。此加密过程利用了存储器地址A106在明文数据112之前就可用这一事实来减少在加密要被存储到存储器中的数据时的等待时间。
补充地,可为分块密码术执行更高效率的密钥排程。用于分块密码术的每一轮的轮密钥可在实际明文数据可用之前基于地址数据和机密密钥来生成。因为这些轮密钥是基于存储器地址生成的,所以这意味着分块密码术变换对于每个存储器地址而言均将是不同的,藉此严格地约束对密码术分析可用的资源并且增加了该分块密码术的安全性。
图2是解说通过将分块密码术的第一部分与分块密码术的第二部分并行处理藉此减少分块密码术的等待时间来改善分块密码术解密的第二特征的框图。此解密过程可作为存储器读操作的一部分来执行并且包括在其中存储器地址A206被加密的地址阶段202以及在其中数据被解密的数据阶段204。不是如在常规解密方法中那样后向地运行整个分块密码术,而是从密文214开始后向地处理分块密码密码术200的数据阶段204。与此同时,通过将存储器地址A206和密钥208用作输入来前向地运行分块密码术200的地址阶段202。当这些过程在中间210相遇时,通过对经部分解密的密文与经部分加密的存储器地址进行XOR来推导明文数据212。
使用分块密码术的高效率加密
图3是解说配置成加密要被存储在存储器中的数据的分块密码术的示例的框图。在此过程中,存储器地址A304可能在要被存储的数据分块(即,明文320)可用之前就可用。当数据(明文320)被存入存储器时,可采用迭代分块密码术302来加密该数据例如,CPU可在将数据发送给存储器设备以供存储之前先加密该数据。在此示例中,分块密码术302可包括密钥排程和地址加密阶段303以及数据加密阶段305。
在密钥排程和地址加密阶段303中,使用存储器地址A304和用于分块密码术的机密密钥K机密306来预处理该迭代分块密码术的数个轮次。例如,在实际明文数据分块P320可用之前,先基于机密密钥K机密306来生成用于分块密码术302的相应地址加密轮316、317和318的多个轮密钥K1307、K2308和Ki309。每个轮密钥K1307、K2308和Ki309可基于在前的轮密钥(例如,K1基于K机密,K2基于K1,依此类推)来推导。根据一个示例,机密密钥306可以是w位长并且每个轮密钥K1、K2和Ki是n位长,其中n<w。每个轮密钥K1、K2和Ki是通过从机密密钥取毗连的n个位来生成的,其中机密密钥306被认为在末端卷绕。每个轮密钥K1、K2和Ki可使用机密密钥306不同群组的毗连位序列。
分块密码术302的多个地址加密轮316、317和318可基于存储器地址304和相应的轮密钥K1307、K2308和Ki309来生成。例如,第1轮316使用第一线性和/或非线性函数Ea来变换存储器地址A304的全部或部分,并且基于与密钥K1的可逆操作(例如,模加/模减、逐位XOR运算等)来对其进行进一步变换(例如,R1=Ea(A)⊕K1)。类似地,第2轮317使用第一线性和/或非线性函数Ea来变换第1轮316的结果R1并且基于与相应密钥K2的可逆操作(例如,逐位XOR运算)来进一步变换该结果(例如,R2=Ea(R1)⊕K2)。此过程可被重复多次以将每个变换操作的效果扩散到整个分块。例如,第i轮318使用第一线性和/或非线性函数Ea来变换在前轮的结果Ri-1并且基于与相应密钥Ki的可逆操作(例如,逐位XOR运算等)来进一步变换该结果(例如,Ri=Ea(Ri-1)⊕Ki)。注意,这些第一分块密码术轮303(存储器地址加密阶段)甚至可以在数据可供在数据加密阶段305中加密用之前就被(至少部分地)执行。通过在明文数据分块P320可用之前部分处理(或预处理)分块密码术,分块密码术中的等待时间(即,延迟)可得以减少。
补充地,在密钥排程阶段303期间,可生成用于数据加密阶段305的密钥312、314和315以节约时间。数据加密阶段305密钥Ky、Ky+1和Kx可基于地址加密阶段303的每个密码术轮结果R1、R2、Ri的结果来生成。在一个示例中,轮结果R1、R2和Ri可以是n位长(其中n是正整数)并且来自这些轮中的至少多轮的数个位g被用来生成数据加密阶段密钥Ky、Ky+1和Kx,其中g是小于n的整数。例如,位集S310可通过级联(符号‖)从各轮结果R1、R2、Ri提取出的位以使得S1…p=R11…g1‖R21…g2…‖Ri1…gi来获得,其中p是描绘该位集S310中总位数的整数值。注意,在一些实现中,用于每一轮的位数g1、g2、…、gi可以是相同的,而在其他实现中,位数g1、g2、…、gi可以是不同的。在密钥排程阶段303期间,数据加密阶段密钥Ky、Ky+1和Kx可通过为每个密钥从位集S310提取位片段来生成。在一个示例中,对应于密钥排程和地址加密阶段303中那些较晚密码术轮的位可被用于数据加密阶段305中那些较早的密钥。例如,密钥Ky312可从位集S310的位S(p-j+1)…p取得,这些位S(p-j+1)…p在此示例中对应于来自Ri1…g的位的子集,其中j<g(对于g=g1,g2,…,gi)。类似地,密钥Ky+1314可以等于位集S310的位S(p-2j+1)…(p-j)且密钥Kx可以等于位集S310的位S1…j。在一些实现中,在j<g的场合,密钥排程阶段303中轮次的数目可以小于数据阶段305中轮次的数目。例如,在轮结果R1、R2和Ri是63位长(即,n=63)的场合,可以从每一轮提取45个位(即,g=45)以用于位集S310并且每个数据阶段密钥Ky312、Ky+1314和Kx315可以是32位长(即,j=32)。
一般意义下,可以使用一个或更多个轮密钥函数KSx来生成轮密钥K1、K2、Ki、Ky、Ky+1…Kx中的每一个。在一个示例中,第一密钥排程函数KS1可被用来生成(用于地址加密阶段的)密钥K1、K2、Ki并且第二密钥排程函数KS2可被用来生成(用于数据加密阶段的)密钥Ky、Ky+1、Kx。例如,第一密钥排程函数KS1可被用来生成密钥Ki,以使得Ki=KS1(K机密,i),其中“i”是地址加密阶段303的轮号,而第二密钥排程函数KS2可被用来生成密钥Ky+i,以使得Ky+i=KS2(S1…p,i),其中“y+i”是数据加密阶段305的轮号。
当明文数据分块P320变成可用时,其可在分块密码术302中的一轮或更多轮316、317和318已被执行之后(例如,在密钥排程阶段303之后)被插入分块密码术302。明文数据分块P320可在通常被称为白化的过程中通过使其(在逐位的基础上)与最新近被预处理的轮次(即,第i轮318)的结果Ri进行XOR来插入分块密码术302中。在明文数据分块P320已被引入之后,使用相应的轮密钥Ky312、Ky+1314以及Kx315来执行数据加密阶段305中的一轮或更多轮332、324和326。
在数据加密阶段305期间第y轮322处,由第二线性和/或非线性函数Eb来变换经白化的数据分块D白化321并且基于与相应轮密钥Ky的可逆操作(例如,逐位XOR运算)对其进行进一步变换(例如,Ry=Eb(D白化)⊕Ky)。类似地,在第y+1轮324处,使用第二线性和/或非线性函数Eb来变换第y轮322的结果Ry并且基于与相应密钥Ky+1的可逆操作(例如,模加/模减、逐位XOR运算等)来进一步变换该结果(例如,Ry+1=Eb(Ry)⊕Ky+1)。此过程可被重复多次以将每个变换操作的效果扩散到整个分块。例如,第x轮326使用第二线性和/或非线性函数Eb来变换在前轮的结果Rx-1并且基于与相应密钥Kx的可逆操作(例如,逐位XOR运算等)来进一步变换该结果(例如,Rx=Eb(Rx-1)⊕Kx)以获得密文328。
在各种实现中,密钥排程和地址加密阶段303以及数据加密阶段305的轮次的数目可以相同或不同。在数据解密阶段305期间轮次的数目可被选择成减少分块密码术302的等待时间同时引入向明文数据分块P320提供充足的扩散以减少分块密码术302的等待时间。
图4是解说配置成加密明文数据的分块密码术设备的功能性组件的框图。分块密码术设备402可基于明文数据404要被存储到的存储器地址406以及机密密钥408来加密该明文数据404。分块密码术设备402可包括地址加密模块412,其根据变换或加密函数以及由轮密钥生成器416提供的密钥来变换和/或加密此存储器地址406。轮密钥生成器416可被配置成基于机密密钥408来生成一个或更多个轮密钥。密钥排程模块414也可基于地址加密模块412的结果生成一个或更多个数据密钥。该一个或更多个数据密钥可被存储在数据密钥存储422模块中。可在多轮中通过在每一轮中使用来自轮密钥生成器416的不同轮密钥来迭代地执行地址加密和数据排程功能。在多轮之后,组合器418可使用可逆的操作(例如,模加/模减、逐位XOR等)将明文数据404与地址加密模块412的最后结果相组合。结果得到的经白化的明文数据可随后由数据加密模块420在一轮或更多轮中通过使用来自数据密钥存储422的存储着的数据密钥以及变换或加密函数来迭代地变换或加密以产生密文424。密文424可随后被存储在存储器设备426中该存储器地址406处。
根据一个示例,该分块密码术设备可被实现在具有字节可寻址存储器的系统中。例如,实现该分块密码术的CPU的字长可以是32位,并且存储器地址也可以是32位。如先前所提及的,该分块密码术设备可被配置成执行地址加密阶段和数据加密阶段。
图5是解说存储器地址加密或变换模块的一个示例的框图。在地址加密阶段502期间,可通过运行多个替换-置换密码术轮来变换输入存储器地址(被填充到64位)。可随意任选地,输入存储器地址504可首先通过与轮密钥进行XOR来白化。地址分段模块506可将64位存储器地址504划分成8个8位片段。每个8位片段随后通过8×8替换盒508(例如,高级加密标准(AES)8×8替换盒)。来自每个替换盒508的结果可随后被传递给变换模块510,后者对分段的全集执行线性变换。该线性变换可例如用矩阵乘法Y=CX来实现,其中X是存储器地址矢量,C是变换矩阵,而Y是输出矢量。在一个示例中,变换矩阵C可以是GF(28)(GF:伽罗瓦域)上如具有分支号9的最大距离可分(MDS)映射的8×8矩阵。矩阵C在当且仅当其所有子矩阵都非奇异时可以是MDS的。分块密码术中的许多扩散层(例如,SHARK和Khazad)可以达到此要求。密钥混合模块512随后将经变换的存储器地址与64位轮密钥混合(例如,使用逐位XOR)。对于每一密码术轮,数据轮密钥提取模块514可随后从过渡期的经加密存储器地址提取多个位以获得可在后续数据加密过程中使用的一个或更多个数据轮密钥518。这些密码术轮(例如,包括分段506、替换盒层508、变换510以及密钥混合512)中的多轮可用在每一密码术轮结束时执行数据轮密钥提取514的方式来执行。
图6是解说明文数据加密或变换模块的一个示例的框图。在数据加密阶段602期间,明文数据604可首先由逐位XOR模块605用来自地址加密阶段的经加密存储器地址603来白化。经加密存储器地址603可对应于经加密明文数据要被存储到的存储器地址。例如,如果明文数据604是以32位的分块来处理的,那么可将该明文数据604与来自存储器地址阶段的输出中的32位进行XOR。用于数据加密阶段的轮密钥可以从存储器地址加密阶段推导。数据分段模块606将明文数据604划分或拆分成四个8位片段。每个8位片段通过替换盒608(例如,AES8×8替换盒)。来自替换盒608的结果随后由线性变换模块610来变换(例如,AESMDS映射)。密钥混合模块612可随后将结果得到的经变换明文数据与相应的轮密钥进行逐位XOR。此过程可通过对每一轮使用不同的轮密钥来重复多次。数据加密阶段602的最末密码术轮的结果是输出密文614,该输出密文614能被存储到在相应的地址加密阶段期间使用的存储器地址中。
图7解说使用要存储数据的存储器地址来加密该数据的分块密码术数据加密方法。在此方法中,执行密码术轮的第一集合以在数据实际上就绪或可供存储之前就加密存储器地址并生成数据轮密钥。随后,执行密码术轮的第二集合以加密该数据。
处理器可在数据实际上被接收到之前就获得关于要被存储的数据的存储器地址702。存储器地址可在第一多个分块密码术轮中被加密704。这样的存储器地址加密可包括:(a)将存储器地址分段成多个存储器地址片段,(b)对不同的存储器地址片段执行位替换,(c)根据第一变换函数变换存储器地址,和/或(d)将经变换的存储器地址与轮密钥混合。存储器地址可在第一多个分块密码术轮上被迭代地加密。
数据轮密钥可通过使用来自第一多个分块密码术轮中的一轮或更多轮的信息来生成706。数据轮密钥可如下来生成:(a)从关于第一多个分块密码术轮中的至少一些轮的经加密存储器地址提取多个位,(b)从提取出的多个位的片段选择数据轮密钥,和/或(c)将提取出的多个位级联到串中,这些数据轮密钥从该串中选择。
要被存储的数据可随后在第一多个分块密码术轮之后与经加密存储器地址相组合708。在一个示例中,可藉由可逆的操作(例如,逐位XOR运算)使数据与经加密存储器地址相组合。数据可随后在第二多个分块密码术轮中通过使用这些数据轮密钥来加密710。这样的数据加密可包括:(a)将数据分段成多个数据分段,(b)对不同的数据分段执行位替换,(c)根据第二变换函数来变换数据,和/或(d)将经变换的数据与这些数据轮密钥中的一个或更多个混合。数据可在第二多个分块密码术轮上被迭代地加密。在一个示例中,使用来自源于第一多个分块密码术轮中较晚轮次的经加密存储器地址的位来生成用于第二多个分块密码术轮中较早轮次的数据轮密钥。第二多个分块密码术轮可以多于第一多个分块密码术轮。经加密数据可随后被存储在该存储器地址中712。
使用分块密码术的高效率解密
图8是解说分块密码术解密从存储器地址读取的数据的处理的框图。数据可以在先前已使用例如图1和3-7中所解说的方法被加密。在解密模式中,不是如在常规解密方法中那样后向地运行整个分块密码术,而是从密文828开始后向地处理分块密码术802的第二阶段805同时并发地前向执行第一阶段803。一般而言,将分块密码术轮的第一集合803与分块密码术轮的第二集合805并行地执行,藉此减少分块密码术802的等待时间。即,这些第一分块密码术轮803(存储器地址加密阶段)甚至可以在经加密数据可用或被取回以供由这些第二分块密码术轮805处理之前就被(至少部分地)执行。在密钥排程和地址加密阶段803中,存储器地址804(密文数据828即从该存储器地址804取回)在多个密码术轮中被加密。同时,在数据解密阶段805中,在多个密码术轮中使用在密钥排程阶段803中生成的数据轮密钥来解密密文数据828。来自这两个阶段803和805的结果随后被组合(例如,XOR)以产生原始的明文820。
在密钥排程和地址加密阶段803中,从中取回密文数据828的存储器地址804被加密。使用存储器地址A804和用于分块密码术802的机密密钥K机密806来处理迭代分块密码术802的数个轮次。例如,基于机密密钥K机密806来生成用于分块密码术802的相应地址加密轮816、817和818的多个轮密钥K1807、K2808和Ki809。每个轮密钥K1807、K2808和Ki809可基于先前轮密钥(例如,K1基于K机密,K2基于K1,依此类推)来推导。根据一个示例,机密密钥806可以是w位长并且每个轮密钥K1、K2和Ki是n位长,其中n<w。每个轮密钥K1、K2和Ki是通过从机密密钥806取毗连的n位来生成的,其中机密密钥806被认为在末端卷绕。每个轮密钥K1、K2和Ki可使用机密密钥806的不同群组的毗连位序列。
分块密码术802的多个地址加密轮816、817和818是基于存储器地址804和相应轮密钥K1807、K2808和Ki809来生成的。例如,第1轮816使用第一线性和/或非线性函数Ea来变换存储器地址A804的全部或部分并且基于与密钥K1的可逆操作(例如,模加/模减、逐位XOR等)来对其进行进一步变换(例如,R1=Ea(A)⊕K1)。类似地,第2轮817使用第一线性和/或非线性函数Ea来变换第1轮816的结果R1并且基于与相应密钥K2的逐位XOR来进一步变换该结果(例如,R2=Ea(R1)⊕K2)。此过程可被重复多次以将每个变换操作的效果扩散到整个分块。例如,第i轮818使用第一线性和/或非线性函数Ea来变换先前轮的结果Ri-1并且基于与相应密钥Ki的逐位XOR来进一步变换该结果(例如,Ri=Ea(Ri-1)⊕Ki)。
补充地,在密钥排程阶段803期间,可生成用于数据解密阶段805的密钥812、814和815以节约时间。数据解密阶段805密钥Ky、Ky+1和Kx可基于密钥排程阶段密钥K1、K2和Ki来生成。在一个示例中,密码术轮结果R1、R2和Ri可以是n位长(其中n是正整数)并且来自这些密钥中的每一个的数个位g被用来生成数据阶段密钥Ky、Ky+1和Kx,其中g是小于n的整数。例如,位集S810可通过级联(符号‖)从各个轮结果R1、R2、Ri提取出的位以使得S1…p=R11…g1‖R21…g2…‖Ri1…gi来生成,其中p是描绘位集S810中总位数的整数值。注意,在一些实现中,用于每一轮的位数g1、g2、…、gi可以是相同的,而在其他实现中,位数g1、g2、…、gi可以是不同的。在密钥排程阶段803期间,数据加密阶段密钥Ky、Ky+1和Kx可通过为每个密钥从位集S810提取位片段来生成。
在一个示例中,对应于密钥排程阶段803中那些较早轮次的位可被用于数据解密阶段805中那些较早的密码术轮密钥。这允许与地址加密阶段803并发或并行地执行数据解密阶段805。例如,密钥Kx815可以等于位集S810的位S1…j,这些位S1…j对应于从第一密码术轮R11…g1816提取出的位中的一些。因此,一旦R1结果被生成,就能获得解密密钥Kx815。类似地,密钥Ky+1314可以等于位集S310的位S(p-2j+1)…(p-j)。同样,密钥Ky814可从位集S810的位S(p-j+1)…p取得,这些位S(p-j+1)…p在此示例中对应于来自Ri1…g的位的子集,其中j<g。在一些实现中,在j<g的场合,密钥排程阶段803中密码术轮的数目可以小于数据解密阶段805中轮次的数目。例如,当轮结果R1、R2和Ri是63位长(即,n=63)时,可以从每一轮提取45个位(即,g=45)以用于位集S310,并且每个数据解密阶段密钥Kx815、Ky+1814和Ky812可以是32位长(即,j=32)。
一般而言,可使用一个或更多个轮密钥函数KSx来生成轮密钥K1、K2、Ki、Ky、Ky+1…Kx中的每一个。在一个示例中,可使用第一密钥排程函数KS1来生成(用于地址加密阶段的)密钥K1、K2、Ki并且可使用第二密钥排程函数KS2来生成(用于数据解密阶段的)密钥Ky、Ky+1、Kx。例如,第一密钥排程函数KS1可被用来生成密钥Ki,以使得Ki=KS1(K机密,i),其中“i”是地址加密阶段803的轮号,而第二密钥排程函数KS2可被用来生成密钥Ky+i,以使得Ky+i=KS2(S1…p,i),其中“y+i”是数据解密阶段805的轮号。
在数据解密阶段期间,使用密钥Kx、Ky+1和Ky在多个轮次上解密密文数据(ct)828。例如,第x轮826使用线性和/或非线性解密函数Db来变换结果密文(ct)828并且基于与相应密钥Kx的操作(例如,可逆的模加/模减、逐位XOR等)来进一步变换该结果(例如,Rx=Db(ct)⊕Kx)以获得结果Rx。此解密过程可被重复多次以撤销对存储着的数据的加密。例如,在第y+1轮824处使用线性和/或非线性解密函数Db来变换来自先前轮的结果Ry+1并且基于与相应密钥Ky+1的逐位XOR来进一步变换该结果(例如,Ry=Db(Ry+1)⊕Ky+1)以获得输出Ry。在第y轮822处,结果Ry由线性和/或非线性解密函数Db变换并且基于与相应轮密钥Ky的逐位XOR被进一步变换(例如,D白化=Db(Ry)⊕Ky)以获得经白化的数据分块D白化821。随后,使用可逆的操作(例如,模加/模减,逐位XOR等)将经白化的数据分块D白化与来自地址加密阶段803的结果Ri(例如,经加密地址)相组合以获得明文数据分块P820。
在各种实现中,密钥排程和地址加密阶段803以及数据解密阶段805的轮次的数目可以相同或不同。在数据解密阶段805中使用的解密函数Db可被选择成撤销由在数据加密阶段305(图3)中使用的加密函数Eb所作的加密。例如,解密函数Db可以是加密函数Eb变换的逆变换。
图9是解说配置成解密密文数据的分块密码术设备的功能性组件的框图。分块密码术设备902可包括地址加密模块912,其根据变换或加密函数以及由轮密钥生成器916提供的密钥来变换和/或加密存储器地址906。注意,存储器地址906可以是从存储器设备926中取回密文数据924的位置。轮密钥生成器916可被配置成基于机密密钥908来生成一个或更多个轮密钥。密钥排程模块914也可基于地址变换模块912的结果生成一个或更多个数据密钥。该一个或更多个数据密钥可被存储在数据密钥存储922模块中。可在多个轮次中通过在每一轮中使用来自轮密钥生成器916的不同轮密钥来迭代地执行地址加密和数据排程功能。并发地或并行地,密文数据924可由数据解密模块920在一轮或更多轮中通过使用来自数据密钥存储922的存储着的数据密钥和/或变换或解密函数来迭代地变换或解密以产生经白化的明文数据。在多个解密轮之后,组合器918可使用可逆的操作(例如,模加/模减,逐位XOR等)将数据解密模块920的最后结果(经白化的明文数据)与地址加密模块912的最后结果相组合以获得明文数据904。
注意,在地址加密模块912中,存储器地址可如由分块密码术设备在加密模式中所作的那样被加密。例如,地址加密模块912可包括如图5中所解说的多个替换-置换密码术轮。
图10是解说密文数据解密或逆变换模块的一个示例的框图。例如,此密文数据解密或逆变换模块1002可作为数据解密模块920(图9)的一部分被包括。密钥混合模块1012可在输入密文1014与相应的密码术轮密钥之间执行逐位XOR运算。用于数据解密阶段的密码术轮密钥可以从存储器地址加密阶段推导。来自密钥混合模块1012的结果随后由线性逆变换模块1010(例如,AESMDS映射)来变换。来自线性逆变换模块1010的结果随后由数据分段模块1009分段成多个8位数据片段。随后使该多个8位数据片段通过替换盒1008(例如,AES8×8替换盒)。替换盒1008可逆反数据加密替换盒608(图6)的那些替换盒。
数据组合器模块1006可组合来自替换盒1008的结果得到的输出以产生输出白化明文数据。此过程可通过对每一轮使用不同的轮密钥来重复多次。数据加密阶段1002的最末密码术轮的结果是经白化的明文数据。随后,由逐位XOR模块1005将经白化的明文数据与经加密存储器地址1003相组合以产生输出明文数据1004。注意,经加密存储器地址1003可对应于从中取回此输入密文数据1014的存储器地址。
图11解说用于通过使用在解密经加密数据的同时并发地加密存储器地址以减少分块密码术的等待时间的分块密码术来解密经加密数据的方法。获得关于要被取回的经加密数据的存储器地址1102。该存储器地址在第一多个分块密码术轮中被加密以获得经加密存储器地址1104。这样的地址加密可利用基于机密密钥生成的多个轮密钥。补充地,加密存储器地址可包括(a)将经变换的存储器地址与轮密钥混合,(b)根据第一变换函数变换存储器地址,(c)将存储器地址分段,和/或(d)对不同的存储器地址片段执行位替换。
数据轮密钥也可通过使用来自第一多个分块密码术轮中的一轮或更多轮的信息来生成1106。即,来自第一多个分块密码术轮中的至少一些轮的经部分加密的存储器地址可被用来生成这些数据轮密钥。例如,生成数据轮密钥可包括(a)从关于第一多个分块密码术轮中的至少一些轮的经加密存储器地址提取多个位,(b)从提取出的多个位的片段选择这些数据轮密钥,和/或(c)将提取出的多个位级联到串中,这些数据轮密钥从该串中选择。
经加密数据可从存储器地址取回1108并且在第二多个分块密码术轮中通过使用这些数据轮密钥来解密以获得经部分解密的数据1110。用于第二多个分块密码术轮中较早轮次的数据轮密钥可使用来自源于第一多个分块密码术轮中那些较早轮次得到的经加密存储器地址的位来生成。在一个示例中,解密经加密数据可包括(a)将变换后的经加密数据与这些数据轮密钥中的一个或更多个混合,(b)根据第二逆变换函数来变换经加密数据,(c)将经加密数据分段成多个经加密数据片段,和/或(d)对不同的经加密数据片段执行位替换。可将经部分解密的数据与经加密存储器地址相组合以获得完全解密的数据1112。在一个示例中,藉由可逆的操作(例如,逐位XOR运算)使经部分解密的数据与经加密存储器地址相组合。
第一多个分块密码术轮可与第二多个分块密码术轮并发地执行,藉此加速解密过程。另外,第二多个分块密码术轮可以多于第一多个分块密码术轮。
用于分块密码术的高效率密钥排程
根据一个特征,可执行密钥排程从而高效率地加密和解密数据。在地址加密阶段期间,多个密码术轮可被迭代地执行以加密存储器地址,其中存储器地址是数据要被存储或者要从中取回数据的位置。每个密码术轮产生经加密存储器地址。由这些密码术轮中的一轮或更多轮产生的经加密存储器地址可被(完全或部分地)用来生成数据加密/解密阶段轮密钥。
图12是解说如何可基于来自分块密码术的地址加密轮的结果来生成用于数据加密和解密轮的轮密钥的示例的框图。当分块密码术在加密数据时,基于地址加密阶段1202的结果来生成数据轮密钥。地址加密阶段1202的较早轮次(例如,R11206、R21208…)的结果被用来生成要在数据加密阶段1204中使用的较晚数据加密轮密钥(密钥E61212、密钥E51214…)。类似地,地址加密阶段1202的较晚轮次(例如,R31210…)的结果被用来生成较早数据加密轮密钥(密钥E11222、密钥E21220…)。
类似地,当分块密码术在解密数据时,基于地址加密阶段1202的结果来生成数据轮密钥。地址加密阶段1202的较早轮次(例如,R11206、R21208…)的结果被用来生成要在数据解密阶段1224中使用的较早数据加密轮密钥(密钥D11226、密钥D21228…)。类似地,地址加密阶段1202的较晚轮次(例如,R31210…)的结果被用来生成较晚数据解密轮密钥(密钥D61236、密钥-D51234…)。因此,这允许数据解密阶段1224与地址加密阶段1202并发地(例如,在时间段上交迭或者并行地)执行,从而更高效率地解密数据。
注意到在各种实现中,地址加密阶段、数据加密阶段1204和/或数据解密阶段1224的密码术轮的数目可以多于或少于此示例中所示的那些数目。补充地,根据一个可随意任选的特征,可为明文数据的白化操作保留地址加密阶段1202的最末轮(例如,R41211)的结果的至少某个部分。因此,地址加密阶段1202的该最末轮(例如,R41211)的这个结果不可被用于数据轮密钥生成。
在一些实现中,数据加密轮密钥(或数据解密轮密钥)可基于来自地址加密阶段1202的一个或更多个结果(例如,R11206、R21208…)的位的子集。例如,密钥E11222可基于来自R31210的位的子集,而密钥E2可基于来自R21208和R31210两者的位的子集。
注意,由于存储器地址由分块密码术用来生成用于数据加密/解密阶段1204/1224的加密/解密密钥,因而这意味着对于每个存储器地址而言,明文/密文的分块密码术变换将是不同的,从而严格地约束对密码术分析可用的资源并且增加了分块密码术的安全性。应注意,较早的轮次未必要与较晚的轮次具有相同的分块大小。例如,存储器要以32位的分块来加密而地址可能大于32位是相当可能的。经由这些第一轮次中的并行化可获得效率增益。
根据分块密码术的一个示例,数据加密/解密可以是字节可寻址存储器。具体而言,执行分块密码术的处理器的字(数据分块)是32位,并且地址也是32位。来自地址加密阶段的结果的最后32位可被用作白化密钥。来自地址加密结果(例如,经加密存储器地址)的其余位可被级联到用于数据加密轮密钥的集合S中。可为每一数据加密轮n(例如,对于n=0…5)选择32位长的数据加密轮密钥,以使得加密轮密钥(密钥-En)=集合S的位32*(5-n)到32*(5-n)+31。反之,可为每一数据解密轮n(例如,对于n=0…5)选择32位长的数据解密轮密钥,以使得解密轮密钥(密钥-Dn)=集合S的位32*n到32*n+31。
图13是解说可被配置成执行高效率的分块密码术加密和解密的设备的框图。处理电路1302可耦合至存储器设备1306。处理电路1302可向/从存储器设备1306写和读数据。处理电路1302可被配置成执行分块密码术1304,该分块密码术1304加密要被存储到存储器设备1306的数据/解密要从存储器设备1306取回的数据。这样的加密和解密可基于数据被写入或者从中读取数据的实际存储器地址。例如,分块密码术1304可执行图1-12中描述的操作中的一个或更多个。
应认识到,一般而言,本公开中所描述的绝大多数处理可以用类似的方式来实现。(诸)电路或电路工段中的任何哪个可单独或组合实现为具有一个或更多个处理器的集成电路的一部分。这些电路中的一个或更多个可以在集成电路、先进RISC机(ARM)处理器、数字信号处理器(DSP)、通用处理器等上实现。
还应注意,这些实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多能够并行或并发执行。另外,这些操作的次序可以被重新安排。过程在其操作完成时终止。过程可以对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,其终止对应于该函数返回到调用方函数或主函数。
如在本申请中所使用的,术语“组件”、“模块”、“系统”等旨在指示计算机相关实体,任其是硬件、固件、软硬件组合、软件,还是执行中的软件。例如,组件可以是但不被限定于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为解说,在计算设备上运行的应用和该计算设备两者皆可以是组件。一个或更多个组件可驻留在进程和/或执行的线程中,且组件可以局部化在一台计算机上和/或分布在两台或更多台计算机之间。此外,这些组件能从其上存储着各种数据结构的各种计算机可读介质来执行。各组件可借助于本地和/或远程来通信,诸如根据具有一个或更多个数据分组的信号(例如,来自借助于该信号与本地系统、分布式系统中的另一组件交互、和/或跨诸如因特网等网络上与其它系统交互的一个组件的数据)。
不仅如此,存储介质可以代表用于存储数据的一个或更多个设备,包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备、和/或其他用于存储信息的机器可读介质。术语“机器可读介质”包括,但不被限定于,便携或固定的存储设备、光学存储设备、无线信道以及能够存储、包含或承载指令和/或数据的各种其它介质。
此外,诸实施例可以由硬件、软件、固件、中间件、微代码、或其任何组合来实现。当在软件、固件、中间件或微码中实现时,执行必要任务的程序代码或代码段可被存储在诸如存储介质或其它存储之类的机器可读介质中。处理器可以执行这些必要的任务。代码段可表示规程、函数、子程序、程序、例程、子例程、模块、软件包、类,或是指令、数据结构、或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数、或存储器内容,一代码段可被耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等任何合适的手段被传递、转发、或传输。
图1、2、3、4、5、6、7、8、9、10、11、12、和/或13中解说的组件、步骤、和/或功能之中的一个或更多个可以被重新安排和/或组合成单个组件、步骤、或功能,或可以实施在数个组件、步骤、或功能中。也可以添加更多的元件、组件、步骤、和/或功能。图3、4、8、9和/或13中解说的装置、设备、和/或组件可被配置成执行图1、2、5、6、7、10、11和/或12中描述的方法、特征、或步骤中的一个或更多个。本文中描述的新颖算法可以在软件和/或嵌入式硬件中高效率地实现。
本领域技术人员将可进一步领会,结合本文中公开的实施例描述的各种解说性逻辑框、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件和软件的这种可互换性,各种解说性组件、块、模块、电路、和步骤在上文中以其功能性的形式进行了一般化描述。这样的功能性是实现成硬件还是软件取决于具体应用和加诸整体系统上的设计约束。
这些实施例的描述旨在解说,而并非旨在限定权利要求的范围。由此,本发明的教导能现成地应用于其他类型的装置,并且许多替换、改动、和变形对于本领域技术人员将是明显的。

Claims (43)

1.一种加密数据以供存储在存储器地址中的方法,包括:
在第一多个迭代分块密码术轮中加密所述存储器地址;
使用来自所述第一多个迭代分块密码术轮中的一个或多个中间轮的结果来生成数据轮密钥;
在所述第一多个迭代分块密码术轮之后将所述数据与经加密的存储器地址相组合;以及
在第二多个分块密码术轮中使用所述数据轮密钥来加密所述数据,
其中生成所述数据轮密钥包括:
从关于所述第一多个迭代分块密码术轮中的至少一些中间轮的经加密存储器地址提取多个位;以及
从所提取出的多个位的片段选择所述数据轮密钥。
2.如权利要求1所述的方法,其特征在于,加密所述存储器地址是在所述数据可用之前开始的。
3.如权利要求1所述的方法,其特征在于,加密所述存储器地址包括:
根据第一变换函数变换所述存储器地址;以及
将经变换的存储器地址与轮密钥混合。
4.如权利要求3所述的方法,其特征在于,加密所述存储器地址还包括:
将所述存储器地址分段;以及
对不同的存储器地址片段执行位替换。
5.如权利要求1所述的方法,其特征在于,生成所述数据轮密钥包括:
将所提取出的多个位级联到串中,所述数据轮密钥从所述串中选择。
6.如权利要求1所述的方法,其特征在于,用于所述第二多个分块密码术轮中较早轮次的数据轮密钥是使用来自源于所述第一多个迭代分块密码术轮中较晚轮次的经加密存储器地址的位来生成的。
7.如权利要求1所述的方法,其特征在于,所述数据是藉由可逆的操作来与所述经加密存储器地址相组合的。
8.如权利要求1所述的方法,其特征在于,加密所述数据包括:
根据第二变换函数变换所述数据;以及
将经变换的数据与所述数据轮密钥中的一个或更多个混合。
9.如权利要求1所述的方法,其特征在于,加密所述数据还包括:
将所述数据分段成多个数据片段;以及
对不同的数据分段执行位替换。
10.如权利要求1所述的方法,其特征在于,所述第二多个分块密码术轮多于所述第一多个迭代分块密码术轮。
11.如权利要求1所述的方法,其特征在于,所述存储器地址在所述第一多个迭代分块密码术轮上被迭代地加密,并且所述数据在所述第二多个分块密码术轮上被迭代地加密。
12.如权利要求1所述的方法,其特征在于,还包括:
将经加密的数据存储在所述存储器地址中。
13.一种分块密码术设备,包括:
地址加密模块,用于在第一多个迭代分块密码术轮中加密存储器地址;
密钥排程模块,用于使用来自所述第一多个迭代分块密码术轮中的一个或多个中间轮的结果来生成数据轮密钥;
组合器,用于在所述第一多个迭代分块密码术轮之后将数据与经加密的存储器地址相组合;以及
数据加密模块,用于在第二多个分块密码术轮中使用所述数据轮密钥来加密所述数据,
其中所述密钥排程模块还被配置成:
从关于所述第一多个迭代分块密码术轮中的至少一些中间轮的经加密存储器地址提取多个位;以及
从所提取出的多个位的片段选择所述数据轮密钥。
14.如权利要求13所述的设备,其特征在于,加密所述存储器地址是在所述数据可用之前开始的。
15.如权利要求13所述的设备,其特征在于,所述地址加密模块还被配置成:
根据第一变换函数变换所述存储器地址;以及
将经变换的存储器地址与轮密钥混合。
16.如权利要求13所述的设备,其特征在于,所述地址加密模块还被配置成:
将所述存储器地址分段;以及
对不同的存储器地址片段执行位替换。
17.如权利要求13所述的设备,其特征在于,所述密钥排程模块还被配置成:
将所提取出的多个位级联到串中,所述数据轮密钥从所述串中选择。
18.如权利要求13所述的设备,其特征在于,用于所述第二多个分块密码术轮中较早轮次的所述数据轮密钥是使用来自源于所述第一多个迭代分块密码术轮中较晚轮次的经加密存储器地址的位来生成的。
19.如权利要求13所述的设备,其特征在于,所述数据是藉由可逆的操作来与所述经加密存储器地址相组合的。
20.如权利要求13所述的设备,其特征在于,所述数据加密模块还被配置成:
根据第二变换函数变换所述数据;以及
将经变换的数据与所述数据轮密钥中的一个或更多个混合。
21.如权利要求13所述的设备,其特征在于,所述数据加密模块还被配置成:
将所述数据分段成多个数据片段;以及
对不同的数据片段执行位替换。
22.如权利要求13所述的设备,其特征在于,所述第二多个分块密码术轮多于所述第一多个迭代分块密码术轮。
23.如权利要求13所述的设备,其特征在于,所述存储器地址在所述第一多个迭代分块密码术轮上被迭代地加密,并且所述数据在所述第二多个分块密码术轮上被迭代地加密。
24.一种分块密码术设备,包括:
用于在第一多个迭代分块密码术轮中加密存储器地址的装置;
用于使用来自所述第一多个迭代分块密码术轮中的一个或多个中间轮的结果来生成数据轮密钥的装置;
用于在所述第一多个迭代分块密码术轮之后将数据与经加密的存储器地址相组合的装置;以及
用于在第二多个分块密码术轮中使用所述数据轮密钥来加密所述数据的装置,
其中用于生成所述数据轮密钥的装置包括:
用于从关于所述第一多个迭代分块密码术轮中的至少一些中间轮的经加密存储器地址提取多个位的装置;以及
用于从所提取出的多个位的片段选择所述数据轮密钥的装置。
25.一种解密从存储器地址取回的数据的方法,包括:
在第一多个迭代分块密码术轮中加密所述存储器地址以获得经加密存储器地址;
使用来自所述第一多个迭代分块密码术轮中的一个或多个中间轮的结果来生成数据轮密钥;
在第二多个分块密码术轮中使用所述数据轮密钥来解密经加密数据以获得经部分解密的数据;以及
将所述经部分解密的数据与所述经加密存储器地址相组合以获得完全解密的数据,
其中生成所述数据轮密钥包括:
从关于所述第一多个迭代分块密码术轮中的至少一些中间轮的经加密存储器地址提取多个位;以及
从所提取出的多个位的片段选择所述数据轮密钥。
26.如权利要求25所述的方法,其特征在于,加密所述存储器地址是在所述数据可用之前开始的。
27.如权利要求25所述的方法,其特征在于,还包括:
从所述存储器地址取回所述经加密数据。
28.如权利要求25所述的方法,其特征在于,加密所述存储器地址包括:
根据第一变换函数变换所述存储器地址;以及
将经变换的存储器地址与轮密钥混合。
29.如权利要求28所述的方法,其特征在于,加密所述存储器地址还包括:
将所述存储器地址分段;以及
对不同的存储器地址片段执行位替换。
30.如权利要求25所述的方法,其特征在于,生成所述数据轮密钥包括:
将所提取出的多个位级联到串中,所述数据轮密钥从所述串中选择。
31.如权利要求25所述的方法,其特征在于,用于所述第二多个分块密码术轮中较早轮次的数据轮密钥是使用来自源于所述第一多个迭代分块密码术轮中较早轮次的经加密存储器地址的位来生成的。
32.如权利要求25所述的方法,其特征在于,所述经部分解密的数据是藉由可逆的操作来与所述经加密存储器地址相组合的。
33.如权利要求25所述的方法,其特征在于,解密所述经加密数据包括:
根据第二逆变换函数变换所述经加密数据;以及
将变换后的经加密数据与所述数据轮密钥中的一个或更多个混合。
34.如权利要求25所述的方法,其特征在于,解密所述经加密数据包括:
将所述经加密数据分段成多个经加密数据片段;以及
对不同的经加密数据片段执行位替换。
35.如权利要求25所述的方法,其特征在于,所述第二多个分块密码术轮多于所述第一多个迭代分块密码术轮。
36.如权利要求25所述的方法,其特征在于,所述第一多个分块密码术轮是与所述第二多个分块密码术轮并发地执行的。
37.一种分块密码术设备,包括:
地址加密模块,用于在第一多个迭代分块密码术轮中加密存储器地址以获得经加密存储器地址;
密钥排程模块,用于使用来自所述第一迭代多个分块密码术轮中的一个或多个中间轮的结果来生成数据轮密钥;
数据解密模块,用于在第二多个分块密码术轮中使用所述数据轮密钥来解密经加密数据以获得经部分解密的数据;以及
组合器,用于将所述经部分解密的数据与所述经加密存储器地址相组合以获得完全解密的数据,
其中所述密钥排程模块还被配置成:
从关于所述第一多个迭代分块密码术轮中的至少一些中间轮的经加密存储器地址提取多个位;以及
从所提取出的多个位的片段选择所述数据轮密钥。
38.如权利要求37所述的设备,其特征在于,加密所述存储器地址是在所述数据可用之前开始的。
39.如权利要求37所述的设备,其特征在于,用于所述第二多个分块密码术轮中较早轮次的数据轮密钥是使用来自源于所述第一多个迭代分块密码术轮中较早轮次的经加密存储器地址的位来生成的。
40.如权利要求37所述的设备,其特征在于,所述经部分解密的数据是藉由可逆的操作来与所述经加密存储器地址相组合的。
41.如权利要求37所述的设备,其特征在于,所述第二多个分块密码术轮多于所述第一多个迭代分块密码术轮。
42.一种分块密码术设备,包括:
用于在第一多个迭代分块密码术轮中加密存储器地址以获得经加密存储器地址的装置;
用于使用来自所述第一多个迭代分块密码术轮中的一个或多个中间轮的结果来生成数据轮密钥的装置;
用于在第二多个分块密码术轮中使用所述数据轮密钥来解密经加密数据以获得经部分解密的数据的装置;以及
用于将所述经部分解密的数据与所述经加密存储器地址相组合以获得完全解密的数据的装置,
其中用于生成所述数据轮密钥的装置包括:
用于从关于所述第一多个迭代分块密码术轮中的至少一些中间轮的经加密存储器地址提取多个位的装置;以及
用于从所提取出的多个位的片段选择所述数据轮密钥的装置。
43.如权利要求42所述的设备,其特征在于,还包括:
用于从所述存储器地址取回所述经加密数据的装置。
CN200980143933.3A 2008-10-30 2009-10-28 低等待时间的分块密码术 Active CN102204158B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/262,092 US9336160B2 (en) 2008-10-30 2008-10-30 Low latency block cipher
US12/262,092 2008-10-30
PCT/US2009/062391 WO2010056531A1 (en) 2008-10-30 2009-10-28 Low latency block cipher

Publications (2)

Publication Number Publication Date
CN102204158A CN102204158A (zh) 2011-09-28
CN102204158B true CN102204158B (zh) 2016-01-20

Family

ID=42027710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980143933.3A Active CN102204158B (zh) 2008-10-30 2009-10-28 低等待时间的分块密码术

Country Status (8)

Country Link
US (1) US9336160B2 (zh)
EP (1) EP2356771B1 (zh)
JP (2) JP2012507949A (zh)
KR (1) KR101370223B1 (zh)
CN (1) CN102204158B (zh)
BR (1) BRPI0920045B1 (zh)
TW (1) TWI402675B (zh)
WO (1) WO2010056531A1 (zh)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5272751B2 (ja) * 2009-01-26 2013-08-28 富士通セミコンダクター株式会社 プロセッサ
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US9680637B2 (en) 2009-05-01 2017-06-13 Harris Corporation Secure hashing device using multiple different SHA variants and related methods
US9600421B2 (en) * 2009-05-20 2017-03-21 Conexant Systems, Inc. Systems and methods for low-latency encrypted storage
US8438401B2 (en) * 2009-09-22 2013-05-07 Raytheon BBN Technologies, Corp. Device and method for securely storing data
KR101646705B1 (ko) * 2009-12-01 2016-08-09 삼성전자주식회사 에스-박스를 구현한 암호화 장치
US9544133B2 (en) * 2009-12-26 2017-01-10 Intel Corporation On-the-fly key generation for encryption and decryption
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US8639945B2 (en) * 2010-05-25 2014-01-28 Via Technologies, Inc. Branch and switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
KR20120002760A (ko) * 2010-07-01 2012-01-09 삼성전자주식회사 낸드 플래쉬 메모리의 동작 신뢰성을 향상시키는 데이터 기록 방법 및 데이터 기록 장치
US20120084559A1 (en) 2010-09-30 2012-04-05 Hunt Technologies, Llc Communications Source Authentication
DE112010005842T8 (de) 2010-10-05 2014-07-17 Hewlett-Packard Development Company, L.P. Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern in einer Speichervorrichtung
CN103154967A (zh) * 2010-10-05 2013-06-12 惠普发展公司,有限责任合伙企业 修改元素的长度以形成加密密钥
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
MY150357A (en) * 2010-11-04 2013-12-31 Mimos Berhad A method for linear transformation in substitution-permutation networks symmetric-key block cipher
GB2489405B (en) 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
US9331848B1 (en) * 2011-04-29 2016-05-03 Altera Corporation Differential power analysis resistant encryption and decryption functions
US8958550B2 (en) 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US8726037B2 (en) * 2011-09-27 2014-05-13 Atmel Corporation Encrypted memory access
US9281940B2 (en) * 2012-03-02 2016-03-08 Sony Corporation Information processing apparatus, information processing method, and program
US8976960B2 (en) * 2012-04-02 2015-03-10 Apple Inc. Methods and apparatus for correlation protected processing of cryptographic operations
JP6028798B2 (ja) * 2012-06-28 2016-11-16 日本電気株式会社 暗号化装置、暗号化方法およびプログラム
US10102390B2 (en) * 2012-06-28 2018-10-16 Honeywell International Inc. Memory authentication with redundant encryption
US9379887B2 (en) 2012-09-14 2016-06-28 Qualcomm Incorporated Efficient cryptographic key stream generation using optimized S-box configurations
KR102060996B1 (ko) 2013-01-07 2020-02-11 삼성전자주식회사 단말기의 메모리 주소 및 데이터변환 장치 및 방법
US9294266B2 (en) * 2013-06-27 2016-03-22 Qualcomm Incorporated Method and apparatus to encrypt plaintext data
EP3025271B1 (en) * 2013-07-24 2020-04-01 Marvell World Trade Ltd. Key rotation for a memory controller
US9405919B2 (en) * 2014-03-11 2016-08-02 Qualcomm Incorporated Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers
US10169618B2 (en) * 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10192062B2 (en) 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
DE102014216392A1 (de) * 2014-08-19 2016-02-25 Robert Bosch Gmbh Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung
US9397833B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
US9397832B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
US10313128B2 (en) * 2014-08-29 2019-06-04 The Boeing Company Address-dependent key generator by XOR tree
US10146701B2 (en) * 2014-08-29 2018-12-04 The Boeing Company Address-dependent key generation with a substitution-permutation network
US9946662B2 (en) * 2014-08-29 2018-04-17 The Boeing Company Double-mix Feistel network for key generation or encryption
US9483664B2 (en) * 2014-09-15 2016-11-01 Arm Limited Address dependent data encryption
CN104253684B (zh) * 2014-09-23 2018-02-02 深圳市汇顶科技股份有限公司 加密方法和加密装置
KR102376506B1 (ko) 2014-10-20 2022-03-18 삼성전자주식회사 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법
IL235729A (en) 2014-11-17 2017-06-29 Kaluzhny Uri A device and method for securely storing information
US10262161B1 (en) * 2014-12-22 2019-04-16 Amazon Technologies, Inc. Secure execution and transformation techniques for computing executables
US10013363B2 (en) 2015-02-09 2018-07-03 Honeywell International Inc. Encryption using entropy-based key derivation
EP3272060B1 (en) * 2015-03-20 2019-05-01 Hewlett-Packard Enterprise Development LP Datastream block encryption
WO2016173882A1 (en) * 2015-04-30 2016-11-03 Koninklijke Philips N.V. Cryptographic device for calculating a block cipher
EP3458988B1 (en) * 2016-05-16 2023-10-18 Amgen Inc. Data encryption in medical devices with limited computational capability
US10708073B2 (en) 2016-11-08 2020-07-07 Honeywell International Inc. Configuration based cryptographic key generation
CN107453866A (zh) * 2017-08-03 2017-12-08 致象尔微电子科技(上海)有限公司 一种对数据进行加密的方法
JP6903529B2 (ja) * 2017-09-11 2021-07-14 株式会社東芝 情報処理装置、情報処理方法およびプログラム
CN107967414B (zh) * 2017-11-03 2023-07-28 深圳市航顺芯片技术研发有限公司 微控制芯片指令加密方法、解密方法及加/解密系统
FR3074936B1 (fr) * 2017-12-11 2020-08-14 Stmicroelectronics (Grenoble 2) Sas Procede d'ecriture d'un ensemble d'informations, par exemple un code programme, cryptees dans une memoire externe d'un circuit integre et circuit integre correspondant
CN108197482A (zh) * 2017-12-27 2018-06-22 致象尔微电子科技(上海)有限公司 一种内存数据加密解密方法及装置
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
CN108777611B (zh) * 2018-05-11 2021-06-18 吉林大学 基于双密钥流密码的双向链表顺序加密解密方法
CN109656840A (zh) * 2018-12-21 2019-04-19 成都海光集成电路设计有限公司 一种数据加解密的装置、方法、存储介质、以及数据存储系统
CN110213354B (zh) * 2019-05-20 2021-07-13 电子科技大学 云存储数据机密性保护方法
US11429751B2 (en) * 2019-07-01 2022-08-30 Rajant Corporation Method and apparatus for encrypting and decrypting data on an integrated circuit
US10637837B1 (en) 2019-11-27 2020-04-28 Marpex, Inc. Method and system to secure human and also internet of things communications through automation of symmetric encryption key management
US11645428B1 (en) 2020-02-11 2023-05-09 Wells Fargo Bank, N.A. Quantum phenomenon-based obfuscation of memory
EP3879781B1 (en) * 2020-03-13 2022-07-27 Deutsche Telekom AG Methods and systems for network service management in a distributed architecture
US20240004801A1 (en) * 2022-06-29 2024-01-04 Advanced Micro Devices, Inc. Data encryption suitable for use in systems with processing-in-memory
CN116126753B (zh) * 2022-12-28 2024-02-02 江苏都万电子科技有限公司 一种防护存储器及存储方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
CN1565102A (zh) * 2001-10-03 2005-01-12 皇家飞利浦电子股份有限公司 存储器加密

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4319079A (en) * 1979-09-13 1982-03-09 Best Robert M Crypto microprocessor using block cipher
US6014445A (en) * 1995-10-23 2000-01-11 Kabushiki Kaisha Toshiba Enciphering/deciphering apparatus and method incorporating random variable and keystream generation
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
TW514844B (en) 2000-01-26 2002-12-21 Sony Corp Data processing system, storage device, data processing method and program providing media
WO2002077878A1 (en) * 2001-03-26 2002-10-03 Galois Connections Inc Crypto-pointers for secure data storage
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
GB0214620D0 (en) * 2002-06-25 2002-08-07 Koninkl Philips Electronics Nv Round key generation for AES rijndael block cipher
DE10256587A1 (de) * 2002-12-04 2004-06-17 Philips Intellectual Property & Standards Gmbh Datenverarbeitungseinrichtung, insbesondere elektronisches Speicherbauteil, und hierauf bezogenes Verschlüsselungsverfahren
DE10345454A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Wortindividuelle Schlüsselerzeugung
DE10345385B4 (de) 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
JP2005130059A (ja) 2003-10-22 2005-05-19 Fuji Xerox Co Ltd 画像形成装置および交換部品
KR100604828B1 (ko) * 2004-01-09 2006-07-28 삼성전자주식회사 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치
US7657033B2 (en) * 2004-12-10 2010-02-02 Fiske Software Llc Cryptography related to keys
CN101084506A (zh) 2004-12-20 2007-12-05 皇家飞利浦电子股份有限公司 数据处理设备及操作这种数据处理设备的方法
JP4890976B2 (ja) 2005-08-31 2012-03-07 キヤノン株式会社 暗号処理装置
US8001374B2 (en) 2005-12-16 2011-08-16 Lsi Corporation Memory encryption for digital video
IL174784A0 (en) * 2006-04-04 2006-12-31 Nds Ltd Robust cipher design
KR100837270B1 (ko) * 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
JP4905000B2 (ja) * 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8155308B1 (en) * 2006-10-10 2012-04-10 Marvell International Ltd. Advanced encryption system hardware architecture
JP2008151829A (ja) 2006-12-14 2008-07-03 Fujitsu Ltd 暗号演算装置
EP1978467A1 (en) 2007-04-05 2008-10-08 STMicroelectronics (Research & Development) Limited Integrated circuit and method for secure execution of software
US8112634B2 (en) * 2008-06-04 2012-02-07 Samsung Electronics Co., Ltd. Security-enhanced storage devices using media location factor in encryption of hidden and non-hidden partitions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
CN1565102A (zh) * 2001-10-03 2005-01-12 皇家飞利浦电子股份有限公司 存储器加密

Also Published As

Publication number Publication date
US9336160B2 (en) 2016-05-10
CN102204158A (zh) 2011-09-28
KR101370223B1 (ko) 2014-03-05
US20100115286A1 (en) 2010-05-06
BRPI0920045A2 (pt) 2015-12-15
BRPI0920045B1 (pt) 2020-11-10
WO2010056531A1 (en) 2010-05-20
TWI402675B (zh) 2013-07-21
KR20110089319A (ko) 2011-08-05
TW201027340A (en) 2010-07-16
EP2356771A1 (en) 2011-08-17
EP2356771B1 (en) 2018-05-30
JP2014160256A (ja) 2014-09-04
JP2012507949A (ja) 2012-03-29

Similar Documents

Publication Publication Date Title
CN102204158B (zh) 低等待时间的分块密码术
US10176121B2 (en) Apparatus and method for memory address encryption
US8731188B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
US8634549B2 (en) Ciphertext key chaining
US8396210B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
Muir A tutorial on white-box AES
EP2058781B1 (en) Encryption device, encryption method, and computer program
US20060023875A1 (en) Enhanced stream cipher combining function
US8504845B2 (en) Protecting states of a cryptographic process using group automorphisms
US11606189B2 (en) Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm
CA2765622A1 (en) White-box cryptographic system with configurable key using intermediate data modification
US8675866B2 (en) Multiplicative splits to protect cipher keys
US20120179919A1 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
US20120155638A1 (en) Securing keys of a cipher using properties of the cipher process
US20130067212A1 (en) Securing implementation of cryptographic algorithms using additional rounds
US8553878B2 (en) Data transformation system using cyclic groups
US8687803B2 (en) Operational mode for block ciphers
US8774402B2 (en) Encryption/decryption apparatus and method using AES rijndael algorithm
US10678709B2 (en) Apparatus and method for memory address encryption
EP3413509B1 (en) Cmac computation using white-box implementations with external encodings
US20120321079A1 (en) System and method for generating round keys
Bajaj et al. AES algorithm for encryption
CN104871476A (zh) 用于可计算、大型、可变及安全的替换盒的方法及设备
Radhakrishna et al. A New Approach on Advanced Encryption Standards to Improve the Secrecy and Speed Using Nonlinear Output Feedback Mode

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