CN103957100B - 利用单指令在多种模式中执行aes加密或解密 - Google Patents
利用单指令在多种模式中执行aes加密或解密 Download PDFInfo
- Publication number
- CN103957100B CN103957100B CN201410197191.5A CN201410197191A CN103957100B CN 103957100 B CN103957100 B CN 103957100B CN 201410197191 A CN201410197191 A CN 201410197191A CN 103957100 B CN103957100 B CN 103957100B
- Authority
- CN
- China
- Prior art keywords
- encrypted
- result
- operand
- value
- instruction
- 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
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Abstract
一种用于执行加密的处理器,包括:解码器,用于对所述处理器接收到的指令进行解码;执行单元,用于执行所述指令;寄存器文件,其通过内部互连耦合至所述执行单元;所述执行单元包括密码电路,该密码电路用于响应于具有第一操作数和第二操作数、并可在多种加密模式中使用的单个加密指令,将明文值与第二值进行逻辑结合以产生一结合结果,并且使用高级加密标准(AES)算法和由第一隐式寄存器提供的密钥来对该结合结果进行加密以产生一加密结果,其中,所述第一操作数用于确定所述多种加密模式中的一种模式。
Description
本申请是申请日为2008年3月14日、申请号为200810096342.2的同名专利申请的分案申请。
背景技术
所要求保护的发明的具体实现通常会涉及到处理器,尤其是涉及用于使处理器执行高级加密标准(AES)加密或解密的指令。
AES是由美国国家标准与技术研究院(NIST)制定的高级加密标准,并在FIPSPublication197中进行定义。AES可以具有可变的密钥尺寸。其中3种可接受的密钥尺寸为:128比特、192比特以及256比特。AES加密使用128比特的明文输入和一密钥,然后产生128比特的密文(例如,已被用AES加密过的明文)输出。类似地,AES解密执行反向的操作,其使用128比特的密文和一密钥,产生128比特的明文。
AES可以用于多种操作模式。一种较常见的模式是所谓的密码块链接(CBC)模式。一种稍微不常见的模式是所谓的电子密码本(ECB)模式。其它的模式也是可以的,例如新兴的所谓的计数器模式(CTR),它在概念上类似于ECB模式。
在计算系统中,期望有一个或多个针对专用于AES加密和/或解密的处理器的指令。
附图说明
附图被并入且构成本说明书的一部分,其说明了与本发明的原理相一致的一个或多个具体实现,并与说明书一起解释了这些具体实现。这些附图不必是按比例确定的,而是重点在于解释本发明的原理。这些附图中:
图1说明了根据某些具体实现的示例计算机系统;
图2说明了根据某些具体实现的处理器的寄存器文件;
图3概念性地说明了用于ECB模式的AES加密指令;
图4说明了在ECB模式中使用AES加密指令的示例代码;
图5概念性地说明了用于CBC模式的AES加密指令;
图6概念性地说明了用于CBC模式的两个链接的AES加密指令;
图7说明了在CBC模式中使用AES加密指令的示例代码;
图8概念性地说明了用于CTR模式的AES加密指令;
图9说明了在CTR模式中使用AES加密指令的示例代码。
具体实施方式
以下详细说明参考了所附各图。不同附图中可以使用相同的参考数字来标识相同或相似的要素。在以下的描述中,为了解释而不是限定,阐述了许多特定细节,例如特殊的结构、架构、接口、技术等,以便提供对于所要求保护的发明的各个方面的透彻理解。然而,也可以在与这些特定细节不同的其它实例中实现所要求保护的本发明的各个方面,这对于受益于本公开内容的所属领域技术人员而言是显而易见的。在某些实例中,省略了对公知的设备、电路和方法的描述,以避免不必要的细节使本发明的说明书变得难以理解。
概述
本申请描述了在处理器中包括用于执行AES加密和/或解密的指令的方法、装置和系统的实施例。两个这样的指令是:
AESENCRYPT(arg1)xmmdestination,(arg2)xmmsource/memory
AESDECRYPT(arg1)xmmdestination,(arg2)xmmsource/memory
在加密情况下,xmmsource/memory提供要用的明文,而xmmdestination将是密文。在解密情况下,它们的角色颠倒,信源是密文而目标是明文。在某些具体实现中,如下文将进一步解释的,两个操作数都被用于加密或解密。这两种情况下,通过使用一个或多个128比特的隐式寄存器(implicit register)(例如,以下将更详细描述的XMM0和XMM1)将加密密钥提供给AESENCRYPT和/或AESDECRYPT指令。
尽管以下许多描述都将集中于加密指令AESENCRYPT,但加密领域的技术人员应当理解,也可以以类似的方式替代和/或使用解密指令AESDECRYPT以用于进行解密。主要描述AESENCRYPT仅仅是为了说明的清楚和方便,并不表示这些指令中的一个比另一个更重要。
计算机系统
图1示出了根据本发明的一个实施例的示例计算机系统100。计算机系统100包括用于信息通信的互连101。该互连101可以包括一个多点总线、一个或多个点到点互连、或者这两者的任意组合、以及任何其它的通信硬件和/或软件。
图1示出了用于处理信息的处理器109,其与互连101耦合。处理器109代表任意类型架构(包括CISC或RISC类型架构)的中央处理单元。
计算机系统100进一步包括随机存取存储器(RAM)或其它动态存储设备(被称为主存储器104),其耦合至互连101以存储将被处理器109执行的信息和指令。主存储器104也可以在处理器109执行指令的过程中用于存储临时变量或其它中间信息。
计算机系统100还包括只读存储器(ROM)106和/或其它静态存储设备,其耦合至互连101以存储处理器109的静态信息和指令。数据存储设备107耦合至互连101以用于存储信息和指令。
图1还示出了处理器109包括执行单元130、寄存器文件150、高速缓存160、解码器165和内部互连170。当然,处理器109还包含了对于理解本发明而言不必要的其它电路。
解码器165用于对处理器109接收到的指令进行解码,执行单元130用于执行处理器109接收到的指令。除了识别通用处理器中所实现的典型指令外,解码器165和执行单元130还识别这里所描述的用于执行AES加密或解密(AESENCRYPT或AESDECRYPT)操作的指令。解码器165和执行单元130识别用于对压缩(packed)和非压缩数据执行AESENCRYPT或AESDECRYPT操作的指令。
执行单元130通过内部互连170耦合至寄存器文件150。同样地,内部互连170不必一定是多点总线,在替代性的实施例中,也可以是点到点互连或者其它类型的通信路径。
寄存器文件150表示处理器109的一个存储区域,其用于存储包括数据在内的信息。应该理解,本发明的一个方面在于所描述的用于对压缩或非压缩数据执行AESENCRYPT或AESDECRYPT操作的指令实施例。根据本发明的这个方面,用于存储数据的存储区域并不是关键的。不过,寄存器文件150的实施例将参照图2随后描述。
执行单元130耦合至高速缓存160和解码器165。高速缓存160用于对来自例如主存储器104的数据和/或控制信号进行缓存。解码器165用于将处理器109接收到的指令解码为控制信号和/或微代码入口点(microcode entry point)。这些控制信号和/或微代码入口点可从解码器165转发到执行单元130。
响应于这些控制信号和/或微代码入口点,执行单元130执行恰当的操作。例如,如果接收到AESENCRYPT或AESDECRYPT指令,解码器165使得执行单元130执行所需的比特加密或解密。至少在某些实施例中,执行单元130可以使用一个或多个密钥来加密或解密128比特的明文或密文(参见,例如密码电路145)。
解码器165可以用任意数量的不同机制来实现(例如,查找表、硬件实现、PLA等)。因此,虽然由解码器165和执行单元130执行各种指令在此处可以用一系列if/then语句来表示,但应该理解,一条指令的执行并不需要这些if/then语句的一系列处理。而是,任何用于逻辑地执行该if/then处理的机制都被认为落入本发明的范围内。
图1还示出了可以耦合至计算机系统100的数据存储设备107(例如,磁盘、光盘、和/或其它机器可读媒体)。另外,所示的数据存储设备107包括要由处理器109执行的代码195。代码195可包括AESENCRYPT或AESDECRYPT指令142的一个或多个实施例,并且其可以被写入以使处理器109为了任何与安全相关的目的而利用AESENCRYPT或AESDECRYPT指令142来执行比特AES加密或解密。
计算机系统100还可以通过互连101耦合至显示设备121,以便向计算机用户显示信息。显示设备121可以包括帧缓冲器、专业图形渲染设备、液晶显示器(LCD)、和/或平板显示器。
输入设备122包括字母数字和其它按键,其可被耦合至互连101以向处理器109传送信息和命令选择。另一类用户输入设备是光标控制器123,例如鼠标、轨迹球、笔、触摸屏、或者光标方向键,用于向处理器109传送方向信息和命令选择、以及用于控制显示设备121上的光标移动。这类输入设备典型地具有两个轴的自由度,第一轴(例如,x)和第二轴(例如,y),这使得该设备能够指定平面上的位置。然而,本发明并不限于输入设备只有二自由度。
可耦合至互连101的另一个设备是硬拷贝设备124,其可以用于在介质(例如纸、胶片、或相似类型的媒体)上印制指令、数据或其它信息。另外,计算机系统100可以耦合至用于声音记录和/或回放的设备125,例如耦合至麦克风的用于记录信息的音频数字化转换器(audio digitizer)。此外,设备125可以包括扬声器,其耦合至数模(D/A)转换器,用于回放数字化的声音。
计算机系统100可以是计算机网络(例如,LAN)中的一个终端。计算机系统100可以是计算机网络的一个计算机子系统。可选地,计算机系统100包括视频数字化设备126和/或通信设备190(例如,串行通信芯片、无线接口、以太网芯片或调制解调器,其提供与外部设备或者网络的通信)。视频数字化设备126可用于捕获能够传送至计算机网络中的其它计算机的视频图像。
在至少一个实施例中,处理器109支持与由加利福尼亚州Santa Clara的英特尔公司制造的现有处理器(比如说,处理器、 Pro处理器、II处理器、III处理器、4处理器、处理器、2处理器、或者CoreTM Duo处理器)所使用的指令集相兼容的指令集。因此,处理器109除了支持本发明中的操作外,也可以支持现有的处理器操作。处理器109也可适于用一种或多种工艺技术来制造,并通过足够详细地表示在机器可读媒体上的方式,其适于促进所述制造。虽然在以下描述中本发明被具体表现为基于x86的指令集,但是替代性的实施例可将本发明具体表现为其它的指令集。例如,本发明可具体表现为一64位处理器,其使用的指令集不同于基于x86的指令集。
图2示出了根据本发明的一个替代性实施例的处理器的寄存器文件。寄存器文件150可以用于存储信息,包括控制/状态信息、整数数据、浮点数据和压缩数据。在图2所示的实施例中,寄存器文件150包括整数寄存器201、寄存器209、状态寄存器208、扩展寄存器210以及指令指针寄存器211。状态寄存器208、指令指针寄存器211、整数寄存器201和寄存器209都耦合至内部互连170。另外,扩展寄存器210也耦合至内部互连170。内部互连170可以是多点总线,但这不是必须的。替代地,内部互连170可以是任意其它类型的通信路径,包括点到点互连。
在至少一个实施例中,扩展寄存器210被用于压缩的整数数据和压缩的浮点数据。在替代性的实施例中,扩展寄存器210可用于标量数据、压缩的布尔数据、压缩的整数数据和/或压缩的浮点数据。当然,替代性的实施例可被实现为包含更多或更少组的寄存器、在每组中具有更多或更少的寄存器、或者在每个寄存器中具有更多或更少的数据存储比特,这些都不脱离本发明的更广范围。
在至少一个实施例中,整数寄存器201被实现为存储32比特,寄存器209被实现为存储80比特(所有80比特都被用于存储浮点数据,而只有64比特用于压缩数据),扩展寄存器210被实现为存储128比特。此外,扩展寄存器210可以包含8个寄存器,XR0213a至XR7213h。XR0213a、XR1213b和XR2213c都是寄存器210中单个寄存器的示例。例如,128比特的扩展寄存器210可以用于提供AESENCRYPT指令的一个或两个操作数,并且可用于提供由该AESENCRYPT指令使用的一个或两个隐式寄存器(例如,XMM0和XMM1)。
在另一个实施例中,每个整数寄存器201包含64比特,每个扩展寄存器210包含64比特,并且扩展寄存器210包含16个寄存器。在一个实施例中,扩展寄存器210中的两个寄存器可以被成对操作。在另一个替代性的实施例中,扩展寄存器210包含32个寄存器。
AES加密和/或解密操作
图3概念性地示出了用于ECB模式的AES加密指令(AESENCRYPT Arg1,Arg2)310。如图所示,AESENCRYPT310具有两个操作数,其中一个是Arg2,它提供将被加密的明文。加密后的密文被写入到AESENCRYPT310的Arg1中。加密密钥由一个或多个隐式的128比特寄存器XMM0和XMM1提供。如果例如加密密钥长度为128比特,则它可由一个寄存器XMM0来提供。在这种情况下,另一个寄存器XMM1可用于其它功能,将参照图4进行说明。
如图3所示,在ECB模式中,AESENCRYPT310是用一个密钥对来自于Arg2的明文进行加密。一种用于确定AESENCRYPT310工作于哪种模式(例如,ECB、CBC等)的方案是利用操作数来确定模式。在一个具体实现中,AESENCRYPT310对其操作数Arg1和Arg2执行异或(XOR)后,再使用密钥对该结果进行加密。这种方案允许AESENCRYPT310具有一个或两个输入,将参考图4对其作进一步的详细说明。如果只需要一个输入,例如图3所示的用于ECB模式的Arg2,则另一个操作数Arg1可被设为0,从而AESENCRYPT310的XOR运算只生成第一个操作数Arg2,以用密钥进行加密。如何将这种XOR方案用于CBC和CTR模式将参照图5-9进一步说明。
另一种用于确定AESENCRYPT310工作于何种模式的方案(未示出)是在AESENCRYPT310指令中除了两个操作数Arg1和Arg2之外,使用一个立即字节(immediatebyte)。与对操作数执行XOR的第一种方案相比,第二种方案可以基于立即字节的内容来指定如何和/或是否使用AESENCRYPT310的一个或两个操作数。除这两种方案之外的其它方案都是可能的,并设想使单个的二操作数指令(例如AESENCRYPT310(或AESDECRYPT))可用于多种不同的模式(例如,ECB、CBC、CTR等)中。
图4示出了用于在ECB模式中使用AESENCRYPT310的示例代码410(例如,当其被处理器109执行时,构成一个方法)。首先加密密钥被(通过MOV指令或类似指令)装入一个隐式寄存器XMM0。随后一个值(例如,16)被(通过MOV指令或类似指令)装入另一个寄存器ECX,以设定要进行AES加密的128比特明文块的数目。将该值乘以128比特可以指定将被代码410加密的明文的总长度。上述初始化完成后,包括AESENCRYPT310的循环将被执行ECX次。
在该循环中,对于ECB模式,第二隐式寄存器XMM1通过装入0值而被清零。如上所述,当AESENCRYPT310对该0值与第二操作数执行XOR时,产生的是该第二操作数,这正是在ECB模式中工作的期望结果。转向下一条指令,AESENCRYPT310取得Plainmemory[ECX]中的明文,利用XMM0中的密钥加密该明文,并将该结果写入到第二隐式寄存器XMM1。随后XMM1中的密文被存储到Ciphermemory[ECX],并且在跳转回到该循环的起点之前将ECX中的循环值递减。
在下一次循环中,再一次清空了XMM1中之前128比特的加密结果。这样,AESENCRYPT310令对应于ECX中递减值的Plainmemory[ECX]的单个输入被用XMM0中的密钥进行加密。继续代码410的循环执行,直到由装入ECX的初始值指定的所有明文块都被以ECB模式进行了AES加密。
图5概念性地示出了用于CBC模式的AES加密指令(AESENCRYPTArg1,Arg2)310。如图所示,AESENCRYPT310具有两个操作数,其中一个操作数Arg2提供将被加密的明文。在CBC模式中,另一个操作数Arg1提供来自先前加密块的所谓的“旧”密文,AESENCRYPT310在加密之前将其与所述明文进行XOR。加密密钥由一个或多个隐式的128比特寄存器XMM0和XMM1提供。对于当前块的加密后的密文被覆写到AESENCRYPT310的Arg1。
图6概念性地示出了用于CBC模式的两个链接的AES加密指令600。这直观地显示了CBC模式的暂时性(时间上首先发生的运算出现在图的左边),其中对前一个加密块的结果与新的明文进行XOR。这将产生一个比ECB模式更加随机的密文(例如,在ECB模式中,如果是相同的密钥,则相同的明文块将被加密为相同的密文块)。图6所示的CBC模式中,针对一个给定明文块的密文取决于前一轮的密文结果。
图7示出了用于在CBC模式中使用AES加密指令的示例代码710(例如,当其被处理器109执行时,构成一个方法)。首先,加密密钥被(通过MOV指令或类似指令)装入一个隐式寄存器XMM0。然后一个值(例如,16,但该数字可以更高或更低)可被(通过MOV指令或类似指令)装入另一个寄存器ECX,以设定要进行AES加密的128比特明文块的数目。将该值乘以128比特可以指定将被代码710加密的明文的总长度。同样,第一次执行该循环时,XMM1被装入一个0而被清零,这是因为没有来自先前块的密文可用于与第一个明文块相结合。上述初始化完成后,包括AESENCRYPT310的循环将被执行ECX次。
在该循环中,AESENCRYPT310取得Plainmemeory[ECX]中的明文,将其与XMM1中的值(例如,第一遍循环中为0)进行XOR,用XMM0中的密钥对该XOR结果进行加密,并将结果写入到第二隐式寄存器XMM1中以覆盖其中已经存在的值。随后XMM1中的密文被存储到Ciphermemory[ECX]中,并在跳转回到该循环的起点之前将ECX中的循环值递减。
在下一次循环中,与ECB模式不同,XMM1中前一次128比特的非0密文结果不被清零。相反地,根据CBC模式,在使用密钥进行加密前,AESENCRYPT310将该加密结果与下一个明文块进行XOR。这样,AESENCRYPT310具有两个输入,即对应于ECX中递减值的Plainmemory[ECX]、以及XMM1中来自前一次循环的密文值。AESENCRYPT310指令将这两个输入进行XOR并使用XMM0中的密钥对该结果进行加密。继续代码710的循环执行,直到由装入ECX的初始值指定的所有明文块都被以CBC模式进行了AES加密。
以上描述的方案和系统可以有利地使用一个二操作数指令来执行CBC模式和ECB模式加密。该指令支持在AES最常见的两种模式中实现更紧密的AES循环。该指令具有有限数量的操作数,并且将AES最常见的使用转移到单指令中,该单指令仍支持次常见的使用。
图8概念性地示出了用于CTR模式的AES加密指令(AESENCRYPT Arg1,Arg2)810。如图所示,AESENCRYPT810具有两个操作数,其中一个操作数Arg2提供将被加密的计数器值。在CTR模式中,另一个操作数Arg1提供将被加密的明文,在加密后由AESENCRYPT810将其与明文进行XOR。加密密钥由一个或多个隐式的128比特寄存器XMM0和XMM1提供。对于当前块的加密后的密文被覆写到AESENCRYPT810的Arg1。
图9示出了用于在CTR模式中使用AES加密指令的示例代码910(例如,当其被处理器109执行时,构成一个方法)。首先加密密钥被(通过MOV指令或类似指令)装入一个隐式寄存器XMM0中。然后一个值(例如,16,但该数字可以更高或更低)被(通过MOV指令或类似指令)装入另一个寄存器ECX,以设定要进行AES加密的128比特明文块的数目。将该值乘以128比特可以指定将被代码910加密的明文的总长度。然后,一个计数器值被(通过MOV指令或类似指令)装入另一个XMM寄存器(例如XMM4)。上述初始化完成后,包括AESENCRYPT810的循环将被执行ECX次。
在该循环中,AESENCRYPT810取得计数器值,将实际加密该计数器值,随后将其与明文数据执行XOR以产生密文。然后XMM3中的密文被存储到Ciphermemory[ECX],并且在跳转回到该循环的起点之前将ECX中的循环值递减。随后,该计数器被适当调整(通过ADD、MUL或其它指令)。该循环的其它过程与ECB模式相同。
以上对一个或多个实施例的描述提供了示例和说明,但是其并不意味着穷举或者将本发明的保护范围限制在其所公开的精确形式内。基于以上启示可知各种修改或变型,或者也可以从对本发明的各种具体实现的实施中获得。
例如,尽管针对128比特的密钥描述了AES加密和解密,但FIPS Publication197中的NIST标准允许192比特和256比特的密钥。在这种情况下,XMM1可以用于192比特或256比特密钥中另外的64比特或者128比特。在这种情况下,可以使用某些其它128比特寄存器(例如,XMM2、XMM3等),来代替代码410或代码710或代码910(或者任何其中包含AESENCRYPT或AESDECRYPT的代码)中的XMM1,这是因为密钥的一部分将存储在XMM1中。
尽管以上描述了AESENCRYPT,但是也可以以类似方式使用AESDECRYPT Arg1,Arg2,以支持在ECB模式、CTR模式以及CBC模式中的AES解密。本领域技术人员将认识到,使用ECB模式的AESDECRYPT会相对直接,而CBC模式将带来额外的计算,例如对于在加密过程中由AESENCRYPT执行的XOR运算的逆或反运算。
应该理解,尽管没有呈现AESENCRYPT和AESDECRYPT如何精确执行AES算法的细节,但这些都在加密领域的技术人员的能力范围之内。特定的实施例可能旨在对其中执行AESENCRYPT和AESDECRYPT的特定处理器109进行优化。在某些实施例中,这些指令被用机器语言优化从而使最快速的执行成为可能。这些优化的细节与所请求保护的发明并非特别相关,所以为了说明的清楚而将其省略。
本申请的说明书中所使用的元素、动作或指令不应被解释为对本发明是关键的或基本的,除非被明确描述为这样。而且,如这里所使用的,冠词“一个”旨在包括一项或多项。可对所要求保护的发明的上述具体实现进行许多改变或变型,而本质上并不脱离本发明的实质和原理。所有这样的变型和改变在这里都应该被认为包含在本公开的范围之内并受所附权利要求的保护。
Claims (27)
1.一种用于执行加密的处理器,包括:
解码器,用于对所述处理器接收到的指令进行解码;
执行单元,用于执行所述指令;
寄存器文件,其通过内部互连耦合至所述执行单元;
所述执行单元包括密码电路,
所述密码电路用于响应于具有第一操作数和第二操作数、并可在多种加密模式中使用的单个加密指令,将从第一存储器中由计数器值指示的位置获得的所述第二操作数所提供的明文值与由第二寄存器提供的第二值进行逻辑结合以产生一结合结果,并且使用高级加密标准(AES)算法和由第一寄存器提供的密钥来对该结合结果进行加密以产生一加密结果,
其中,所述第一操作数用于确定所述多种加密模式中的一种模式。
2.如权利要求1所述的处理器,其中,所述单个加密指令能够被用在所述多种加密模式中的第一模式中,在所述第一模式中,第一循环被执行以清空所述第二寄存器,所述单个加密指令被执行以对所述明文值与所述第二值进行逻辑结合以产生所述结合结果,并且使用AES算法和所述密钥来对所述结合结果进行加密以产生所述加密结果,并且在执行所述单个加密指令之后,将所述加密结果存储在第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第一循环直到所述计数器值为零。
3.如权利要求1所述的处理器,其中,所述单个加密指令能够被用在所述多种加密模式中的第二模式中,在所述第二模式中,清空所述第二寄存器,然后,第二循环被执行并且所述单个加密指令被执行以对所述明文值与所述第二值进行逻辑结合以产生所述结合结果,并且使用AES算法和所述密钥对所述结合结果进行加密以产生所述加密结果,并且在执行所述单个加密指令之后,将所述加密结果存储在第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第二循环直到所述计数器值为零,其中,所述第二值是前一次加密的结果。
4.如权利要求1所述的处理器,其中,所述密码电路用于对所述明文值和所述第二值进行异或(XOR),以产生所述结合结果,并且所述第一操作数中被写入所述加密结果,而所述第二操作数提供所述明文值。
5.如权利要求1所述的处理器,还包括:
第一寄存器,用于存储所述密钥,其中所述第一寄存器是用于所述单个加密指令的隐式寄存器;以及
第二寄存器,用于存储所述第二值。
6.如权利要求5所述的处理器,其中,所述密码电路用于将所述加密结果存储在所述第二寄存器中。
7.如权利要求6所述的处理器,其中,所述第二值是0。
8.如权利要求1所述的处理器,其中,所述明文值和所述加密结果的长度均为128比特。
9.一种用于执行加密的方法,包括:
响应于具有第一操作数和第二操作数、并可在多种加密模式中使用的单个加密指令,将该指令的第一操作数与该指令的第二操作数相结合,以产生一结果;
根据高级加密标准(AES)算法,使用由第一寄存器提供的密钥对该结果进行加密,以产生一加密结果,所述第一操作数用于确定所述多种加密模式中的一种模式,
其中,在所述多种加密模式中的第一模式中,执行第一循环以执行所述加密,并且在所述多种加密模式中的第二模式中,执行第二循环以执行所述加密。
10.如权利要求9所述的方法,其中,在所述第一循环中,使用处理器的执行逻辑来:清空第二寄存器,对从第一存储器中由计数器值指示的位置获得的所述第二操作数所提供的明文值与由所述第二寄存器提供的第二值进行逻辑结合以产生所述结果,使用AES算法和所述密钥来对所述结果进行加密以产生所述加密结果,将所述加密结果存储在第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第一循环直到所述计数器值为零。
11.如权利要求10所述的方法,其中,清空第二寄存器,然后,在所述第二循环中,使用所述执行逻辑来:对所述明文值与所述第二值进行逻辑结合以产生所述结果,使用AES算法和所述密钥对所述结果进行加密以产生所述加密结果,将所述加密结果存储在所述第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第二循环直到所述计数器值为零,其中,所述第二值是前一次加密的结果。
12.如权利要求9所述的方法,其中,所述密钥的长度为128比特、192比特或256比特。
13.一种用于执行加密的设备,包括:
结合装置,被配置为响应于具有第一操作数和第二操作数、并可在多种加密模式中使用的单个加密指令,将该指令的第一操作数与该指令的第二操作数相结合,以产生一结果;
加密装置,被配置为根据高级加密标准(AES)算法,使用由第一寄存器提供的密钥对该结果进行加密,以产生一加密结果,所述第一操作数用于确定所述多种加密模式中的一种模式,
其中,在所述多种加密模式中的第一模式中,执行第一循环以执行所述加密,并且在所述多种加密模式中的第二模式中,执行第二循环以执行所述加密。
14.如权利要求13所述的设备,其中,在所述第一循环中,所述加密装置用于:清空第二寄存器,对从第一存储器中由计数器值指示的位置获得的所述第二操作数所提供的明文值与由所述第二寄存器提供的第二值进行逻辑结合以产生所述结果,使用AES算法和所述密钥来对所述结果进行加密以产生所述加密结果,将所述加密结果存储在第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第一循环直到所述计数器值为零。
15.如权利要求14所述的设备,其中,清空第二寄存器,然后,在所述第二循环中,所述加密装置用于:对所述明文值与所述第二值进行逻辑结合以产生所述结果,使用AES算法和所述密钥对所述结果进行加密以产生所述加密结果,将所述加密结果存储在所述第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第二循环直到所述计数器值为零,其中,所述第二值是前一次加密的结果。
16.如权利要求13所述的设备,其中,所述密钥的长度为128比特、192比特或256比特。
17.一种用于执行加密的装置,包括:
执行单元,包括密码电路,
所述密码电路包括:
用于响应于具有第一操作数和第二操作数、并可在多种加密模式中使用的单个加密指令,将该指令的第一操作数与该指令的第二操作数相结合,以产生一结果的单元;
用于根据高级加密标准(AES)算法,使用由第一寄存器提供的密钥对该结果进行加密,以产生一加密结果,其中,所述第一操作数用于确定所述多种加密模式中的一种模式的单元;以及
用于将该加密结果放在该指令的第一操作数的位置上的单元。
18.如权利要求17所述的装置,其中,所述单个加密指令能够被用在所述多种加密模式中的第一模式中,在所述第一模式中,第一循环被执行以清空第二寄存器,所述单个加密指令被执行以对从第一存储器中由计数器值指示的位置获得的所述第二操作数所提供的明文值与由所述第二寄存器提供的第二值进行逻辑结合以产生所述结果,并且使用AES算法和所述密钥来对所述结果进行加密以产生所述加密结果,并且在执行所述单个加密指令之后,将所述加密结果存储在第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第一循环直到所述计数器值为零。
19.如权利要求18所述的装置,其中,所述单个加密指令能够被用在所述多种加密模式中的第二模式,在所述第二模式中,清空第二寄存器,然后,第二循环被执行并且所述单个加密指令被执行以对所述明文值与所述第二值进行逻辑结合以产生所述结果,并且使用AES算法和所述密钥对所述结果进行加密以产生所述加密结果,并且在执行所述单个加密指令之后,将所述加密结果存储在所述第二存储器中由所述计数器值指示的位置中,递减所述计数器值,并且重新执行所述第二循环直到所述计数器值为零,其中,所述第二值是前一次加密的结果。
20.如权利要求17所述的装置,其中,所述用于响应于具有第一操作数和第二操作数、并可在多种加密模式中使用的单个加密指令,将该指令的第一操作数与该指令的第二操作数相结合,以产生一结果的单元包括:
用于对所述指令的第一操作数和该指令的第二操作数进行异或,以产生所述结果的单元。
21.如权利要求17所述的装置,其中,所述用于根据高级加密标准(AES)算法,使用由第一寄存器提供的密钥对该结果进行加密,以产生一加密结果,其中,所述第一操作数用于确定所述多种加密模式中的一种模式的单元包括:
用于从一个或多个预定的寄存器中获得所述密钥的单元。
22.如权利要求17所述的装置,其中,所述密钥的长度为128比特、192比特或256比特。
23.如权利要求17所述的装置,其中,所述第二操作数是长度为128比特的要被加密的明文。
24.如权利要求17所述的装置,其中,所述第一操作数是0。
25.如权利要求17所述的装置,其中,所述第一操作数是来自先前加密操作的先前加密结果。
26.一种用于通过根据权利要求1-8中任一项所述的处理器来执行加密的方法,包括:
将加密密钥装入第一隐式寄存器;
将第一值装入第二ECX寄存器中,以设定要进行高级加密标准AES加密的明文块的数目;
将计数器值装入第三寄存器中;
执行第一循环达第一值所指示的次数,所述第一循环包括加密操作。
27.一种机器可读介质,所述机器可读介质包括代码,所述代码在被执行时使得机器执行如权利要求9-12中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/724,005 | 2007-03-14 | ||
US11/724,005 US8538012B2 (en) | 2007-03-14 | 2007-03-14 | Performing AES encryption or decryption in multiple modes with a single instruction |
CN200810096342.2A CN101272238B (zh) | 2007-03-14 | 2008-03-14 | 利用单指令在多种模式中执行aes加密或解密 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810096342.2A Division CN101272238B (zh) | 2007-03-14 | 2008-03-14 | 利用单指令在多种模式中执行aes加密或解密 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103957100A CN103957100A (zh) | 2014-07-30 |
CN103957100B true CN103957100B (zh) | 2018-10-16 |
Family
ID=39328229
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410197191.5A Active CN103957100B (zh) | 2007-03-14 | 2008-03-14 | 利用单指令在多种模式中执行aes加密或解密 |
CN200810096342.2A Active CN101272238B (zh) | 2007-03-14 | 2008-03-14 | 利用单指令在多种模式中执行aes加密或解密 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810096342.2A Active CN101272238B (zh) | 2007-03-14 | 2008-03-14 | 利用单指令在多种模式中执行aes加密或解密 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8538012B2 (zh) |
JP (1) | JP4767985B2 (zh) |
KR (3) | KR20080084752A (zh) |
CN (2) | CN103957100B (zh) |
DE (1) | DE102008014359B4 (zh) |
GB (1) | GB2447563B (zh) |
TW (1) | TWI390401B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8538015B2 (en) | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US8447796B2 (en) * | 2008-11-25 | 2013-05-21 | Intel Corporation | Apparatus with a vector generation unit and encoder for receiving first and second inputs to generate at least significant zero (LSZ) |
EP2196937A1 (en) * | 2008-12-15 | 2010-06-16 | Thomson Licensing | Methods and devices for instruction level software encryption |
US9003170B2 (en) * | 2009-12-22 | 2015-04-07 | Intel Corporation | Bit range isolation instructions, methods, and apparatus |
US8549264B2 (en) | 2009-12-22 | 2013-10-01 | Intel Corporation | Add instructions to add three source operands |
US9990201B2 (en) | 2009-12-22 | 2018-06-05 | Intel Corporation | Multiplication instruction for which execution completes without writing a carry flag |
US8214598B2 (en) * | 2009-12-22 | 2012-07-03 | Intel Corporation | System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries |
EP2717511A1 (en) * | 2012-10-05 | 2014-04-09 | Nagravision S.A. | Method and device for digital data blocks encryption and decryption |
DE102013205166A1 (de) * | 2013-03-22 | 2014-09-25 | Robert Bosch Gmbh | Verfahren zum Erzeugen einer Einwegfunktion |
US9513913B2 (en) | 2014-07-22 | 2016-12-06 | Intel Corporation | SM4 acceleration processors, methods, systems, and instructions |
US9467279B2 (en) | 2014-09-26 | 2016-10-11 | Intel Corporation | Instructions and logic to provide SIMD SM4 cryptographic block cipher functionality |
US10110566B2 (en) * | 2015-07-21 | 2018-10-23 | Baffle, Inc. | Systems and processes for executing private programs on untrusted computers |
CN109804596B (zh) | 2016-12-09 | 2023-05-09 | 密码研究公司 | 具有加掩码的输入的可编程块密码器 |
CN108777611B (zh) * | 2018-05-11 | 2021-06-18 | 吉林大学 | 基于双密钥流密码的双向链表顺序加密解密方法 |
GB2582900A (en) | 2019-03-18 | 2020-10-14 | Pqshield Ltd | Cryptography using a cryptographic state |
KR20210018130A (ko) * | 2019-08-06 | 2021-02-17 | 주식회사 아이씨티케이 홀딩스 | 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치 |
GB2601666B (en) * | 2019-08-06 | 2023-04-26 | Ictk Holdings Co Ltd | Processor, processor operation method and electronic device comprising same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704871B1 (en) * | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
CN1649296A (zh) * | 2004-04-16 | 2005-08-03 | 威盛电子股份有限公司 | 执行透明化密码区块串行模式密码运算的装置及方法 |
CN1677921A (zh) * | 2004-03-31 | 2005-10-05 | 华为技术有限公司 | 通过可编程器件实现数据加密的方法 |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3547474B2 (ja) | 1994-03-22 | 2004-07-28 | 富士通株式会社 | 暗号演算回路 |
US6078663A (en) * | 1995-06-30 | 2000-06-20 | Canon Kabushiki Kaisha | Communication apparatus and a communication system |
US6118870A (en) * | 1996-10-09 | 2000-09-12 | Lsi Logic Corp. | Microprocessor having instruction set extensions for decryption and multimedia applications |
US6324288B1 (en) * | 1999-05-17 | 2001-11-27 | Intel Corporation | Cipher core in a content protection system |
EP1252738A2 (en) * | 2000-01-31 | 2002-10-30 | VDG Inc. | Block encryption method and schemes for data confidentiality and integrity protection |
US7106860B1 (en) * | 2001-02-06 | 2006-09-12 | Conexant, Inc. | System and method for executing Advanced Encryption Standard (AES) algorithm |
US6937727B2 (en) * | 2001-06-08 | 2005-08-30 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
US7280657B2 (en) * | 2001-06-13 | 2007-10-09 | Itt Manufacturing Enterprises, Inc. | Data encryption and decryption system and method using merged ciphers |
JP3851115B2 (ja) * | 2001-06-28 | 2006-11-29 | 富士通株式会社 | 暗号回路 |
US7289524B2 (en) * | 2001-10-04 | 2007-10-30 | Bbn Technologies Corp. | Execution unit for a network processor |
GB2374260B (en) * | 2001-10-12 | 2003-08-13 | F Secure Oyj | Data encryption |
US7508937B2 (en) * | 2001-12-18 | 2009-03-24 | Analog Devices, Inc. | Programmable data encryption engine for advanced encryption standard algorithm |
DE10201449C1 (de) * | 2002-01-16 | 2003-08-14 | Infineon Technologies Ag | Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor |
US7221763B2 (en) * | 2002-04-24 | 2007-05-22 | Silicon Storage Technology, Inc. | High throughput AES architecture |
AU2003241594A1 (en) * | 2002-05-23 | 2003-12-12 | Atmel Corporation | Advanced encryption standard (aes) hardware cryptographic engine |
US20030223581A1 (en) * | 2002-05-30 | 2003-12-04 | Bedros Hanounik | Cipher block chaining unit for use with multiple encryption cores |
US6950517B2 (en) * | 2002-07-24 | 2005-09-27 | Qualcomm, Inc. | Efficient encryption and authentication for data processing systems |
KR20050032588A (ko) | 2002-08-08 | 2005-04-07 | 마츠시타 덴끼 산교 가부시키가이샤 | 암호화 복호화장치 및 방법, 암호화장치 및 방법,복호화장치 및 방법, 그리고 송수신장치 |
US20040047466A1 (en) * | 2002-09-06 | 2004-03-11 | Joel Feldman | Advanced encryption standard hardware accelerator and method |
US20040202317A1 (en) * | 2002-12-20 | 2004-10-14 | Victor Demjanenko | Advanced encryption standard (AES) implementation as an instruction set extension |
US7336783B2 (en) * | 2003-01-24 | 2008-02-26 | Samsung Electronics, C., Ltd. | Cryptographic systems and methods supporting multiple modes |
KR100583635B1 (ko) | 2003-01-24 | 2006-05-26 | 삼성전자주식회사 | 다수의 동작 모드들을 지원하는 암호화 장치 |
JP3818263B2 (ja) | 2003-01-28 | 2006-09-06 | 日本電気株式会社 | Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法 |
US7337314B2 (en) * | 2003-04-12 | 2008-02-26 | Cavium Networks, Inc. | Apparatus and method for allocating resources within a security processor |
US7542566B2 (en) | 2003-04-18 | 2009-06-02 | Ip-First, Llc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US7532722B2 (en) | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US8060755B2 (en) | 2003-04-18 | 2011-11-15 | Via Technologies, Inc | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine |
US7925891B2 (en) | 2003-04-18 | 2011-04-12 | Via Technologies, Inc. | Apparatus and method for employing cryptographic functions to generate a message digest |
US7392399B2 (en) * | 2003-05-05 | 2008-06-24 | Sun Microsystems, Inc. | Methods and systems for efficiently integrating a cryptographic co-processor |
JP2006527865A (ja) * | 2003-06-16 | 2006-12-07 | エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート | ラインドールブロック暗号化装置、及びその暗号化並びに復号化方法 |
AU2004258523B2 (en) * | 2003-07-07 | 2009-12-10 | Irdeto B.V. | Reprogrammable security for controlling piracy and enabling interactive content |
US7421076B2 (en) * | 2003-09-17 | 2008-09-02 | Analog Devices, Inc. | Advanced encryption standard (AES) engine with real time S-box generation |
US7921300B2 (en) * | 2003-10-10 | 2011-04-05 | Via Technologies, Inc. | Apparatus and method for secure hash algorithm |
TWI244299B (en) | 2004-01-07 | 2005-11-21 | Admtek Inc | Method for implementing advanced encryption standards by a very long instruction word architecture processor |
EP1658696B1 (en) * | 2004-02-05 | 2009-07-01 | Research In Motion Limited | On-chip storage, creation, and manipulation of an encryption key |
JP4447977B2 (ja) * | 2004-06-30 | 2010-04-07 | 富士通マイクロエレクトロニクス株式会社 | セキュアプロセッサ、およびセキュアプロセッサ用プログラム。 |
US7496196B2 (en) * | 2004-06-30 | 2009-02-24 | Intel Corporation | Method apparatus and system of performing one or more encryption and/or decryption operations |
US7783037B1 (en) * | 2004-09-20 | 2010-08-24 | Globalfoundries Inc. | Multi-gigabit per second computing of the rijndael inverse cipher |
JP4734906B2 (ja) * | 2004-12-07 | 2011-07-27 | ソニー株式会社 | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム |
EP1865481A1 (en) * | 2005-03-31 | 2007-12-12 | Matsushita Electric Industrial Co., Ltd. | Data encryption device and data encryption method |
US7606363B1 (en) * | 2005-07-26 | 2009-10-20 | Rockwell Collins, Inc. | System and method for context switching of a cryptographic engine |
JP4890976B2 (ja) * | 2005-08-31 | 2012-03-07 | キヤノン株式会社 | 暗号処理装置 |
DE602005022001D1 (de) * | 2005-11-08 | 2010-08-05 | Irdeto Access Bv | Verfahren zur Verschlüsselung und Entschlüsselung von Dateneinheiten |
US8189774B2 (en) * | 2006-01-06 | 2012-05-29 | Fujitsu Semiconductor Limited | Processors for network communications |
US7831039B2 (en) * | 2006-06-07 | 2010-11-09 | Stmicroelectronics S.R.L. | AES encryption circuitry with CCM |
US7769166B2 (en) * | 2006-08-24 | 2010-08-03 | Lsi Corporation | Dual mode AES implementation to support single and multiple AES operations |
-
2007
- 2007-03-14 US US11/724,005 patent/US8538012B2/en active Active
-
2008
- 2008-03-13 JP JP2008064272A patent/JP4767985B2/ja active Active
- 2008-03-13 TW TW097108905A patent/TWI390401B/zh not_active IP Right Cessation
- 2008-03-14 KR KR1020080024067A patent/KR20080084752A/ko active Application Filing
- 2008-03-14 GB GB0804870A patent/GB2447563B/en active Active
- 2008-03-14 CN CN201410197191.5A patent/CN103957100B/zh active Active
- 2008-03-14 DE DE102008014359A patent/DE102008014359B4/de active Active
- 2008-03-14 CN CN200810096342.2A patent/CN101272238B/zh active Active
-
2010
- 2010-06-23 KR KR1020100059386A patent/KR101302799B1/ko active IP Right Grant
-
2013
- 2013-03-08 US US13/790,748 patent/US9325498B2/en not_active Expired - Fee Related
- 2013-05-20 KR KR1020130056494A patent/KR101394710B1/ko active IP Right Grant
-
2016
- 2016-03-24 US US15/079,305 patent/US20160261406A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704871B1 (en) * | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
CN1677921A (zh) * | 2004-03-31 | 2005-10-05 | 华为技术有限公司 | 通过可编程器件实现数据加密的方法 |
CN1649296A (zh) * | 2004-04-16 | 2005-08-03 | 威盛电子股份有限公司 | 执行透明化密码区块串行模式密码运算的装置及方法 |
Non-Patent Citations (2)
Title |
---|
AES 加密机制在IPSec协议中的应用研究;张全林;《计算机工程》;20060131(第02(2006)期);全文 * |
高产能低功率先进加密标准晶片之设计与网络应用;林信夷;《国立清华大学博硕士论文全文系统》;20061231;正文第2节 * |
Also Published As
Publication number | Publication date |
---|---|
KR101302799B1 (ko) | 2013-09-03 |
US8538012B2 (en) | 2013-09-17 |
US9325498B2 (en) | 2016-04-26 |
US20080229116A1 (en) | 2008-09-18 |
GB0804870D0 (en) | 2008-04-16 |
CN103957100A (zh) | 2014-07-30 |
DE102008014359A1 (de) | 2008-10-16 |
KR20080084752A (ko) | 2008-09-19 |
DE102008014359B4 (de) | 2011-08-25 |
KR101394710B1 (ko) | 2014-05-15 |
GB2447563A (en) | 2008-09-17 |
GB2447563B (en) | 2009-09-30 |
TW200903254A (en) | 2009-01-16 |
TWI390401B (zh) | 2013-03-21 |
KR20100082748A (ko) | 2010-07-19 |
CN101272238B (zh) | 2014-06-04 |
JP2008283672A (ja) | 2008-11-20 |
US20130202106A1 (en) | 2013-08-08 |
US20160261406A1 (en) | 2016-09-08 |
CN101272238A (zh) | 2008-09-24 |
KR20130076834A (ko) | 2013-07-08 |
JP4767985B2 (ja) | 2011-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103957100B (zh) | 利用单指令在多种模式中执行aes加密或解密 | |
US11563556B2 (en) | Architecture and instruction set for implementing advanced encryption standard (AES) | |
CN108702286A (zh) | 抗功率侧信道攻击的高级加密标准加速器处理器 | |
EP3575971A1 (en) | An apparatus and method for memory encryption with reduced decryption latency | |
US20160191238A1 (en) | Sms4 acceleration hardware | |
WO2007029330A1 (ja) | 擬似乱数生成装置 | |
JP2004226966A (ja) | 多数の動作モードを支援する暗号化装置 | |
JP2011130340A (ja) | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
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 |