CN1898896A - 高级加密标准算法的可编程数据加密引擎 - Google Patents
高级加密标准算法的可编程数据加密引擎 Download PDFInfo
- Publication number
- CN1898896A CN1898896A CN02827580.2A CN02827580A CN1898896A CN 1898896 A CN1898896 A CN 1898896A CN 02827580 A CN02827580 A CN 02827580A CN 1898896 A CN1898896 A CN 1898896A
- Authority
- CN
- China
- Prior art keywords
- key
- galois field
- programmable data
- transformation
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
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
-
- 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
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Abstract
一种执行高级加密标准(AES)算法的密码函数的可编程数据加密引擎,包括一个并行查询表系统,在第一模式响应第一数据分组以实现AES选择功能并执行在GF-1 (28)的乘法逆运算以及应用GF(2)仿射变换以获得字节替换变换;在第二模式响应字节替换变换,变换字节替换变换以获得行移位变换,以及一个伽罗瓦域乘法器,用于变换行移位变换以获得一个列混合变换,并加上一个轮密钥,导致产生第一数据分组的高级加密标准加密函数。
Description
技术领域
本发明涉及一种用于执行高级加密标准(AES)的密码函数的可编程数据加密引擎。
相关申请
本申请要求2001年12月18日申请的美国临时申请第60/341,634号的优先权。
背景技术
一种用于执行美国国家标准化协会(ANSI)高级加密标准(AES)的加密引擎加密和解密数据分组,通常128位(分组大小)使用多达256位的可变长度的密钥。通过使用用于加密但是改变了密钥位的编排顺序的相同密钥来完成解密,因此解密是加密过程的逆过程。
有许多不同的算法可用于实现AES;其中最突出的一种算法是Rijndael算法。本算法典型地接收四个,四字节,即32位的字,该算法在这四个四字节上执行一个字节替换(subbyte)变换,该变换包括在伽罗瓦域GF-1(28)上的乘法逆运算,和施加仿射(GF(2)上)变换。接着执行一个行移位变换,随后是一个施加列混合变换的列混合变换,并加上一个轮密钥。
这一系列步骤重复很多次。根据Rijndael算法,迭代的次数取决于密钥长度和分组大小。例如,对于密钥长度4个32位字(128位)和分组大小为4个32位字,则迭代次数为10;对于密钥长度6(192位)和分组大小4,则迭代次数为12,而对于密钥长度8(256位)和分组大小4,则迭代次数为14,其中密钥长度是该密钥中32位字的个数,而分组大小是一次要加密的32位字的个数。因此,例如,对于密钥长度4和分组大小4,则需要10次迭代或10轮运算,10个长度为4个32位字的轮密钥,每个轮密钥都需要由一个输入的长度为4个32位字的主密钥生成,一次迭代或一轮运算使用一个轮密钥。通过取决于密钥长度和轮数的一个或两个步骤,这些轮密钥被生成为四十个不同的子密钥。在生成轮密钥的过程中,第一字经过:(a)字旋转,接着是字替换,伽罗瓦域的逆和仿射变换的组合,并且在GF(28)域加上一个Rcon[i](一个迭代相关值);(b)32位字的置换与(a)的结果异或。例如,对于10轮运算和密钥长度4,每四个子密钥的生成周期要经历步骤(a)和(b)。其他的密钥生成周期只经历(c)32位字的置换与先前的子密钥异或。因此周期0,4,8,12,16,20,24,28,32,36,40使用步骤(a)和(b),其它的周期只使用步骤(c)。典型地,这需要90个或更多的时钟周期处理每个字,或者360个时钟周期处理由四个字组成的每个分组,以及3600个时钟周期完成一个AES Rijndael算法。因此,对在四个32位字的128位的分组上运算的10M位的数据流来说,每秒需要281兆指令(MIPS)。
发明内容
因此本发明的一个目的是提供一种用于执行高级加密标准(AES)密码函数的改进的可编程数据加密引擎。
本发明的另一目的是提供一种使用Rijndael算法执行高级加密标准(AES)密码函数的改进的可编程数据加密引擎。
本发明的另一目的是提供一种可用软件实现的用于执行高级加密标准(AES)密码函数的改进的可编程数据加密引擎。
本发明的另一目的是提供一种速度快一个数量级的用于执行高级加密标准(AES)密码函数的改进的可编程数据加密引擎。
本发明的另一目的是提供一种用于执行高级加密标准(AES)密码函数的改进的可编程数据加密引擎,其非常灵活并能够被编程用于许多不同的置换和应用。
本发明的特征在于一种用于执行高级加密标准(AES)算法的密码函数的可编程数据加密引擎,包括一个响应第一数据分组的第一并行查询表,用于实现AES选择功能并执行在GF-1(28)的乘法逆运算以及施加GF(2)仿射变换以得到一个字节替换变换。一个第二并行查询表,其变换一个字节替换变换以获得一个行移位变换。一个伽罗瓦域乘法器,其变换行移位变换以得到一个列混合变换,然后加上一个轮密钥,导致产生第一数据分组的高级加密标准密码函数。
在一个优选实施例中,存在一个为伽罗瓦域乘法器提供多个轮密钥的密钥生成器。密钥生成器可包括一个响应一个主密钥以生成轮密钥的密钥生成器电路。密钥生成器电路可包括一个第三并行查询表,用于旋转主密钥以得到一个旋转后的子密钥。密钥生成器电路可包括一个第四并行查询表,用于执行在GF-1(28)的乘法逆运算并施加GF(2)仿射变换以得到轮密钥。第一和第二并行查询表以及第一伽罗瓦域乘法器可执行多轮变换,为每一轮生成一个轮密钥。每个轮密钥可包括多个子密钥。伽罗瓦域乘法器可包括一个乘法器电路,用于在伽罗瓦域上将两个带系数的多项式相乘以获得它们的乘积;一个响应乘法器电路的伽罗瓦域线性变换器电路,用于预测该多项式对一个不可约分多项式的模余数;一个存储电路,用来为伽罗瓦域线性变换器电路提供一组系数,以对一个预定的不可约分多项式预测模余数;以及一个伽罗瓦域加法器电路,用于在伽罗瓦域将乘法器电路的乘积与带系数的第三多项式相加,以在单个周期中执行乘法和加法运算。并行查询表系统可包括一个存储器,存储在该存储器中的多个查询表,一个存放在查询表中要查询的值的行索引寄存器,一个存储表示在该存储器中存储的每个查询表的起始地址的值的列索引寄存器,以及一个地址转换电路,响应列索引寄存器和行索引寄存器,为行索引寄存器中的每个值同时生成一个地址,以并行定位每个查询表中的那些值的函数。
本发明的特征还在于一种执行高级加密标准(AES)算法的密码函数的可编程数据加密引擎。存在一种并行查询表系统,在第一模式响应第一数据分组,以实现AES选择功能并执行在GF-1(28)的乘法逆运算以及施加GF(2)仿射变换以得到一个字节替换变换,且在第二模式响应该字节替换变换以变换该字节替换变换来得到一个行移位变换。伽罗瓦域乘法器变换该行移位变换得到一个列混合变换,再加上一个轮密钥,导致产生第一数据分组的高级加密标准加密函数。
在一个优选实施例中,该并行查询表系统可以在第三模式响应主密钥以得到一个子密钥,并且可以在第四模式响应该子密钥以生成一个轮密钥。
附图说明
根据下面对一个优选的实施方案的描述和参考附图,本领域技术人员将想到本发明其它的目的、特征及优点,其中:
图1是一个根据本发明的高级加密标准(AES)加密引擎的框图;
图2是说明基本AES加密算法的原理框图;
图3是说明图2所示的AES密码算法的字节替换变换的原理框图;
图4是说明图2所示的AES密码算法的行移位变换的原理框图;
图5是说明根据图2所示的AES密码算法的列混合变换和轮密钥加法的原理框图;
图6是根据本发明图1所示的AES加密引擎的更详细的原理框图;
图7是图6所示的SBOX并行查询表的更详细的原理框图;
图8是图6所示的行移位并行查询表的更详细的原理框图;
图9是图6所示的列混合伽罗瓦域乘法器的更详细的原理框图;
图10是说明实现AES算法的列混合函数的伽罗瓦域转换器的编程的原理图;
图11是根据本发明的AES加密引擎的原理框图,其中单个并行查询表被用于执行密码S-盒和行移位运算;
图12是根据本发明的AES加密引擎的原理框图,其中单个并行查询表被用于执行密码S-盒和行移位运算以及生成轮密钥的字旋转和S-盒运算。
图13是可用于实现本发明的伽罗瓦域乘法/乘法-加法/乘法-累加系统的简化框图;
图14是图13所示的伽罗瓦域乘法/乘法-加法/乘法-累加系统的更详细的示图;以及
图15是可用于实现本发明的可重新配置的并行查询表系统的简化框图。
具体实施方式
除了下面公开的一个或多个优选实施例,本发明可以有其它的实施例,并且可以以不同的方式应用或实施。因此,应当理解为本发明并不局限于以下说明中陈述或附图中示意的详细结构和部件配置的应用。
图1所示是一个根据本发明具有相关输入电路12和输出电路14的AES加密引擎10。由高级加密标准(AES)加密引擎10执行的AES算法如图2所示,其中输入数据分组16首先经过SBOX(S-盒)变换18,然后是行移位变换20,接着是添加密钥23的列混合变换22。在24的输出通过线26反馈很多次,反馈次数取决于所选择的特定AES算法。例如,在下面的表I中:
表I | 密钥长度(Nk个字) | 分组大小(Nb个字) | 轮数(Nr) |
AES-128 | 4 | 4 | 10 |
AES-192 | 6 | 4 | 12 |
AES-256 | 8 | 4 | 14 |
对于算法AES-128,密钥长度为4,分组大小为4,轮数或迭代次数为10,而对于AES-192,密钥长度为6,分组大小为4,迭代次数为12,对于AES-256,迭代次数为14。每进行一轮运算引入一个新的密钥。AES算法的字节替换变换是利用S-盒实现的,其中数据分组16由四个字30,32,34,36组成,每个字有四个字节,S00-S03,S10-S13,S20-S23和S30-S33。S-盒变换首先取GF-1(28)的乘法逆运算,然后施加由图3中方框38所示的矩阵表达式定义的GF(2)仿射变换。输出是数据分组16的字节替换变换17。字节替换变换17(图4)接着经过行移位变换,其中第一行30a根本不旋转,第二行32a旋转一个字节,第三行34a旋转两个字节,而第四行36a旋转三个字节。移位操作由示意图40说明,导致产生经行移位变换的数据分组19,其中出现了相同的值,只是在行32b,34b和36b分别移动了一个,两个和三个位置。列混合变换和轮密钥加法如图5所示,数据分组19接着由列混合变换矩阵42一次乘一列,本例中所示是列混合变换矩阵乘第二列44。再加上轮密钥,即本例中的列46,得到第一数据分组16的全部的高级加密标准密码函数48。
在一个实施例中,根据本发明,AES加密引擎10可包括一张用来执行S-盒变换的并行查询表60,一张用来执行行移位变换的并行查询表62,以及一个用来执行列混合和密钥加法运算的伽罗瓦域乘法器64。每次迭代提供一个不同的密钥或轮密钥。例如,在一个AES128算法的实现中将有10轮运算,每轮运算将需要提供一个密钥。每次迭代引入一个不同的轮密钥66。轮密钥从通过输入端71引入的主密钥70借助密钥生成器电路72中的密钥生成器68生成,密钥生成器电路72包括字旋转并行查询表74和S-盒并行查询表76。字旋转并行查询表74只取一个字(a0,a1,a2,a3)作为输入并执行循环置换后返回字(a1,a2,a3,a0)。S-盒并行查询表76执行S-盒功能,类似于在图3详细说明的图2中的S-盒功能18。一旦密钥或子密钥生成并像图6那样存储在密钥存储器80中,每执行一次迭代或轮运算,这些密钥就每次被用作一个轮密钥,其中一个轮密钥包括四个字,每个字有四个8位字节。
S-盒并行查询表60的操作如图7所示,其中由4个8位字节组成的数据字90递交给地址转换电路92,该电路寻找存储器94中的特殊地址,然后以某一相关的关系读出以产生依据字节替换变换生成的数据字90’,得到图3中的数据分组17。行移位并行查询表62,通过经地址转换电路102将图8所示的数据字100施加到存储器104中的特定地址位置,然后相关地读出这些数据字,以产生如图4所示的字节旋转配置106,来执行图4所示的字节旋转。
列混合伽罗瓦域乘法器64可用图9所示的四个伽罗瓦域乘法器线性变换器110,112,114和116来实现,这样每一个变换器处理数据分组126中的一列118,120,122,124,因此能够立刻处理整个数据分组。每个伽罗瓦域乘法器线性变换器110-116包括三个寄存器RA,RB,RC,所有四个变换器都操作相同的三个寄存器,因此讨论伽罗瓦域乘法器线性变换器110足够说明所有四个变换器的操作。所示的伽罗瓦域乘法器线性变换器110在四个周期上运算,标识为周期1,2,3和4。在周期1中完成一个乘法和加法运算,而在周期2,3和4中,进行乘法累加运算。寄存器RA接收列混合变换矩阵128。寄存器DB接收列118中的字节而寄存器RC接收密钥130,K0-K3。在第一个周期中,在矩阵128第一位置的值与列118中的值S00相乘然后加上密钥K0构成输出Z0。下一个周期中,来自矩阵128的下一个值03与列118中的下一个值S10相乘然后加到输出Z0上以完成乘法累加运算。在下面两个周期与该矩阵中的下两个值和该列中的下两个值执行类似的运算。最后的输出表示为
ZN=(((02S00k0)03S10)01S20)01S30
其中=伽罗瓦域加法,且=伽罗瓦域乘法变换。每个伽罗瓦域乘法线性变换器110-116被如图10所示编程,其中圆圈140表示允许异或门的连接。该编程执行AES伽罗瓦域GF-1(28)不可约分多项式(x8+x4+x3+x+1)。字旋转并行查询表74可以用与图8所示的行移位并行查询表62类似的方式实现。且密钥生成器68中的S-盒并行查询表76可如同图7所示的S-盒并行查询表60那样实现。
尽管迄今为止所示的实施例都使用两张单独的并行查询表执行AES加密引擎中的S-盒和行移位运算,并使用第三和第四并行查询表在轮密钥生成时执行字旋转和S-盒运算,但这并不是对本发明的限制。例如,如图11所示,输入电路12a可以通过一个配置控制电路150与单个并行查询表61互联,该配置控制电路150根据线152上的指令配置并行查询表61用于S-盒运算或者行移位运算。由于这些运算发生在不同的时间,因此同样的并行查询表可做双份工作,在不同的时间执行每个功能,从而节约了硬件。另外,图12中的并行查询表61a在配置电路154的控制下可以有四种不同模式的用法,S-盒和行移位用于密码轮运算,而字旋转和S-盒用于密钥生成。这样配置电路154响应线156上的指令能将并行查询表61a配置成执行密码S-盒,密码行移位,密钥字旋转或密钥S-盒运算。在出现密码运算的第一和第二模式中,并行查询表61a的输出将直接到达伽罗瓦域乘法器64。在执行密钥生成、字旋转和S-盒功能的第三和第四模式,并行查询表61a的输出将传递到伽罗瓦域乘法器64可以访问的密钥存储器80a中。尽管图12使用包括实际逻辑电路的模式转换电路154,但这不是对本发明的必要限制。本发明可简化实现四个并行查询表(PLUT)被作为一个272位的线性并行查询表(PLUT)来处理。其中,密码和轮密钥生成器可共享一个256位的S-盒PLUT。作为两种无记忆字节旋转运算的行移位和字移位变换可共享同样的16字节查询表。通过将要查询的值加上一个起始地址可得到并行查询表中的准确地址。因此模式转换电路可简单地实现为两个并行查询表的起始地址。并行查询表的运算在由stein等人于2002年4月24日申请的标题为“可配置的并行查询表系统”(AD-305J)的美国专利申请中进行了详细的说明。
图13所示为一个实现本发明的伽罗瓦域乘法/乘法-加法/乘法-累加系统210,其能够选择性地将寄存器214和寄存器216中的数值相乘并将它们的乘积提供给输出寄存器211,或者将寄存器214和寄存器216中的数值相乘,并将它们的乘积与寄存器215中的数值求和,然后将结果提供给输出寄存器211。
在详细说明图13所示系统210的图14的实施方案之前,下面先简要地讨论一下伽罗瓦域乘法和加法的特性和运算。
伽罗瓦域GF(n)是一组元素,在其上能够执行两个二进制运算。加法和乘法必须满足交换律、结合律和分配律。一个具有有限数目元素的域是一个有限域。二元域的一个例子是在模2加法和模2乘法下的集合{0,1},并表示为GF(2)。模2加法和乘法运算由下图所示的表格定义。第一行和第一列表示对伽罗瓦域加法器和乘法器的输入。例如,1+1=0和1*1=1。
模2加法(XOR)
+ | 0 | 1 |
0 | 0 | 1 |
1 | 1 | 0 |
模2乘法(AND)
* | 0 | 1 |
0 | 0 | 0 |
1 | 0 | 1 |
通常,如果p是任何一个素数,则GF(p)是一个具有p个元素的有限域,并且GF(pm)是一个具有pm个元素的扩展域。另外,该域的各个元素可以通过一个域元素α自乘到不同幂次生成一个域元素α的各个幂次。例如GF(256)有256个元素,这256个元素都可以通过基本元素α自乘到256个不同幂次生成。
另外,系数是二进制的多项式属于GF(2)。如果一个多项式不能被GF(2)上次数大于零小于m的任何多项式整除,则说GF(2)上的m次多项式是不可约分的。多项式F(X)=X2+X+1是一个不可约分的多项式,因为它不能被X或X+1整除。一个整除X2m-1+1的m次不可约分多项式被称为一个基本多项式。对于给定的m,可以有一个以上基本多项式。经常用于大多数通信标准的一个m=8的基本多项式的例子为F(X)=x8+x4+x3+x2+x+1。
由于伽罗瓦域加法与模加运算一样,因此容易用软件实现。例如,如果29和16是GF(28)上的两个元素,则它们的加法运算可以简单地通过下面的XOR运算完成:29(11101)16(10000)=13(01101)。
另一方面,伽罗瓦域乘法要稍微复杂一些,如下面的例子所示,其通过基本元素α的重复乘法来计算GF(24)的所有元素。为了生成GF(24)的域元素,如下选择一个次数m=4的基本多项式G(X):G(X)=X4+X+1。为了使乘法为求模运算,使得该乘法的结果仍然是域中的元素,任何具有第五位组(bit set)的元素通过使用如下的恒等式F(α)=α4+α+1=0生成一个4位结果。通过设置α4=1+α,重复使用本恒等式生成域中不同的元素。因此,域中的元素可以列举如下:
{0,1,α,α2,α3,1+α,α+α2,α2+α3,1+α+α3,...1+α3}
由于α是GF(24)的基本元素,其可设置为2,以生成GF(24)的域元素为{0,1,2,4,8,3,6,12,11...9}。
可以看出伽罗瓦域多项式乘法能够由两个基本步骤实现。第一个步骤是计算代数展开的多项式乘积c(x)=a(x)*b(x),而且收集类似的幂(加法相当于相应项之间的XOR运算)以给出c(x)。
例如c(x)=(a3x3+a2x2+a1x1+a0)*(b3x3+b2x2+b1x1+b0)
c(x)=c6x6+c5x5+c4x4+c3x3+c2x2+c1x1+c0其中
表II
c0=a0*b0
c1=a1*b0a0*b1
c2=a2*b0a1*b1a0*b2
c3=a3*b0a2*b1a1*b2a0*b3
c4=a3*b1a2*b2a1*b3
c5=a3*b2a2*b3
c6=a3*b3
第二个步骤是计算d(x)=c(x)mod p(x),其中p(x)是一个不可约分的多项式。
举例说明,通过多项式乘法对一个不可约分多项式求模来实现乘法运算。例如:(如果p(x)=x8+x4+x3+x+1)
{57}*{83}={c1}因为
每个{*}字节都是其单个位值(0或1)按顺序{b7,b6,b5,b4,b3,b2,b1,b0}的连接,并使用多项式表示解释为有限元素:
b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x1+b0x0=∑bixi
第一步
(x6+x4+x2+x+1)(x7+x+1)=x13x11x9x8x7
x7x5x3x2x
x6x4x2xx
=x13x11x9x8x6x5x4x31
第二步
x13+x11+x9+x8+x6+x5+x4+x3+1mod(x8+x4+x3+x+1)
=x7+x6+1
根据本发明如图2所示的一种改进的伽罗瓦域乘法器系统10,包括一个二进制多项式乘法器电路12,用来将寄存器14中的两个二进制多项式和寄存器16中的多项式相乘以得到它们的乘积,由表II定义的16项多项式c(x)给出。乘法器电路12实际上包括多个乘法器单元12a,12b,12c...12n。
表III
c14=a7*b7
c13=a7*b6a6*b7
c12=a7*b5a6*b6a5*b7
c11=a7*b4a6*b5a5*b6a4*b7
c10=a7*b3a6*b4a5*b5a4*b6a3*b7
c9=a7*b2a6*b3a5*b4a4*b5a3*b6a2*b7
c8=a7*b1a6*b2a5*b3a4*b4a3*b5a2*b6a1*b7
c7=a7*b0a6*b1a5*b2a4*b3a3*b4a2*b5a1*b6a0*b7
c6=a6*b0a5*b1a4*b2a3*b3a2*b4a1*b5a0*b6
c5=a5*b0a4*b1a3*b2a2*b3a1*b4a0*b5
c4=a4*b0a3*b1a2*b2a1*b3a0*b4
c3=a3*b0a2*b1a1*b2a0*b3
c2=a2*b0a1*b1a0*b2
c1=a1*b0a0*b1
c0=a0*b0
每一项包括一个由*表示的AND函数,每一对项通过由表示的逻辑异或XOR合并。本乘积递交给伽罗瓦域线性变换器电路18,其包括许多伽罗瓦域线性变换器部件18a,18b,18c...18n,每个部件由16*8个单元35组成,响应乘法器电路12产生的乘积,以在一个周期中预测该多项式乘积对一个预定的不可约分多项式的模余数。乘法运算在部件18a,18b,18c...18n中执行。本伽罗瓦域线性变换器电路及其每个变换器部件以及它的乘法器功能的结构和运算,在由stein等人于2002年1月18日申请的标题为“伽罗瓦域线性变换器”的美国临时申请第10/051,533号(AD-239J)和由stein等人于2001年11月30日申请的标题为“伽罗瓦域乘法器系统”的美国临时申请第60/334,510号(AD-240J)中进行了详细的说明,它们的全部内容在此引入作为参考。每个伽罗瓦域线性变换器部件在一个周期中通过用多项式乘积除以一个不可约分多项式来预测模余数。这个不可约分多项式可以是,例如,下表IV所示的任何一个多项式。
表IV
GF(21)
0x3(x+1)
GF(22)
0x7(x2+x+1)
GF(23)
0xB(x3+x+1)
0xD(x3+x2+1)
GF(24)
0x13(x4+x+1)
0x19(x4+x3+1)
GF(25)
0x25(x5+x2+1)
0x29(x5+x3+1)
0x2F(x5+x3+x2+x+1)
0x37(x5+x4+x2+x+1)
0x3B(x5+x4+x3+x+1)
0x3D(x5+x4+x3+x2+1)
GF(26)
0x43(x6+x+1)
0x5B(x6+x4+x3+x+1)
0x61(x6+x5+1)
0x67(x6+x5+x2+x+1)
0x6D(x6+x5+x3+x2+1)
0x73(x6+x5+x4+x+1)
GF(27)
0x83(x7+x+1)
0x89(x7+x3+1)
0x8F(x7+x3+x2+x+1)
0x91(x7+x4+1)
0x9D(x7+x4+x3+x2+1)
0XA7(x7+x5+x2+x+1)
0xAB(x7+x5+x3+x1+1)
0XB9(x7+x5+x4+x3+1)
0xBF(x7+x5+x4+x3+x2+x+1)
0XC1(x7+x6+1)
0xCB(x7+x6+x3+x+1)
0XD3(x7+x6+x4+x+1)
0XE5(x7+x6+x5+x2+1)
0XF1(x7+x6+x5+x4+1)
0XF7(x7+x6+x5+x4+x2+x+1)
0xFD(x7+x6+x5+x4+x3+x2+1)
GF(28)
0x11D(x8+x4+x3+x2+1)
0x12B(x8+x5+x3+x+1)
0x12D(x8+x5+x3+x2+1)
0x14D(x8+x6+x3+x2+1)
0x15F(x8+x6+x4+x3+x2+x+1)
0x163(x8+x6+x5+x+1)
0x165(x8+x6+x5+x2+1)
0x169(x8+x6+x5+x3+1)
0x171(x8+x6+x5+x4+1)
0x187(x8+x7+x2+x+1)
0x18D(x8+x7+x3+x2+1)
0x1A9(x8+x7+x5+x3+1)
0x1C3(x8+x7+x6+x+1)
0x1CF(x8+x7+x5+x3+x2+x+1)
0x1E7(x8+x7+x6+x5+x2+x+1)
0x1F5(x8+x7+x5+x4+x2+1)
表IV示出了本伽罗瓦域乘法器在GF(28)能够执行所有等于和低于28的幂。对于低次多项式,高于所选幂次的系数为0,例如,如果实现GF(25),则GF(25)和GF(28)之间的系数为0,因此该幂次之上不要预测。
对于本特例,已经选择了组合GF(28)中的不可约分或者基本多项式0x11D。带有存储单元226的存储电路220提供给伽罗瓦域线性变换器电路一组系数,用于为该特殊的基本或不可约分多项式预测模余数。
根据本发明的GF乘法的一个例子如下:
GF()乘法之前: GF8()乘法之后
多项式0x11d 多项式0x11d
45230001h 45230001h
GF() GF()
57340001h 57340001h
xx xx xx xxh 72920001h
根据本发明,图14中的第三寄存器215中包括一个在伽罗瓦域带系数的第三多项式。典型的是,每一个寄存器214,216和215都可以包括四个8位字节部分,因此每个寄存器总共可容纳4个字节或32位。寄存器215的输出传送给伽罗瓦域加法器电路219,本实施例中加法器电路219包括总线217和许多异或门219’,每个异或门对应总线217的每一位。在伽罗瓦域线性变换器电路218中获得的乘积在总线221上传送,这样在输出寄存器电路211的Mpy寄存器223可以获得简单乘积,而在总线221上的乘积与第三多项式的合并在包括异或电路219’的加法器电路219中合并,以在输出寄存器电路211的Mpa寄存器225中提供乘法和加法或乘法和累加的结果。例如,如果将伽罗瓦域乘法器系统210的输出循环反馈到输入寄存器电路215,同时两个新值传送到输入寄存器电路214和216,则执行乘法和累加(MAC)运算。另一方面,如果将伽罗瓦域乘法器系统210的输出循环反馈到输入寄存器电路214,同时两个新值传送到输入寄存器电路215和216,则执行乘法和加法(MPA)运算。通过这种方式,寄存器214和216中多项式的所有乘法以及它们与寄存器215中的多项式的加法都是在一个运算周期中完成的。伽罗瓦域乘法器系统210在由stein等人于2002年8月26日申请的“伽罗瓦域乘法/乘法-加法/乘法-累加”的美国专利申请(AD-299J)中进行了更详细的说明,在此引入作为参考。
图15所示,实现本发明的一个可配置的并行查询表系统310,其中包括一个行索引寄存器R2,312和一个列索引寄存器R1,314,一个地址转换电路316和一个包含多个查询表的存储器318。存储器318的输出端传递到输出寄存器320。存储器318包括多个查询表,且行索引寄存器312存有在那些查询表中要查询的值。例如,行索引寄存器312可存有在存储器318的查询表中要查询的角度,其中每个查询表有不同的功能,对那些角度求正弦值、余弦值、正切值等等运算之一。列索引寄存器314中存有表示存储在存储器中的每个查询表的起始地址的值。例如,如果存储器318存有8个查询表,每个查询表有64个字节,那些与列30,32,34,36,38,40,42,44相重合的查询表的起始点为0,64,128,192,256,320,384和448。地址转换电路316将行索引寄存器312中的值与每个查询表的起始地址的表示合并,以同时为索引寄存器中的每个值生成一个地址,来并行定位地定位每个查询表中那些值的函数。并行查询表系统310在由stein等人于2002年4月24日申请的标题为“可重新配置的并行查询表系统”的美国申请第10/131,007号(AD-305J)中进行了更详细的说明,其内容在此引入作为参考。
尽管本发明的详细特征在一些附图中示出而没有在其它附图中示出,这仅仅是为了方便,因为根据本发明每个特征都可以与任何或所有其它特征相结合。在此使用的词“包括”、“包含”、“具有”以及“带有”应取广义而不应局限到任何物理互连。此外,本申请中公开的任何实施方案并不认为是唯一可能的实施方案。
本领域的技术人员将想到其它的实施方案,它们包含在以下的权利要求书中。
Claims (12)
1.一种用于执行高级加密标准(AES)算法的密码函数的可编程数据加密引擎,包括:
一个响应于第一数据分组的第一并行查询表,用于实现AES选择功能并执行在GF-1(28)的乘法逆运算以及应用GF(2)仿射变换来获得字节替换变换;
一个用于变换所述字节替换变换以获得行移位变换的第二并行查询表,以及
一个伽罗瓦域乘法器,用于变换所述行移位变换以获得一个列混合变换,并加上一个轮密钥,导致产生所述第一数据分组的高级加密标准密码函数。
2.根据权利要求1的可编程数据加密引擎,还包括一个为所述伽罗瓦域乘法器提供多个轮密钥的密钥生成器。
3.根据权利要求2的可编程数据加密引擎,其中所述密钥生成器包括一个响应一个主密钥以生成所述轮密钥的密钥生成器电路。
4.根据权利要求3的可编程数据加密引擎,其中所述密钥生成器电路包括一个用于旋转所述主密钥以获得一个旋转后的子密钥的第三并行查询表系统。
5.根据权利要求4的可编程数据加密引擎,其中所述密钥生成器电路包括一个用于在GF-1(28)执行乘法逆运算,并应用GF(2)仿射变换以获得所述轮密钥的第四并行查询表系统。
6.根据权利要求5的可编程数据加密引擎,其中所述第一和第二并行查询表及所述第一伽罗瓦域乘法器执行多轮变换,且为每一轮产生一个轮密钥。
7.根据权利要求6的可编程数据加密引擎,其中每个所述轮密钥包括多个子密钥。
8.根据权利要求1的可编程数据加密引擎,其中所述伽罗瓦域乘法器包括:
一个乘法器电路,用于在伽罗瓦域将两个带系数的多项式相乘以得到它们的乘积;
一个伽罗瓦域线性变换器电路,响应所述乘法器电路,用于预测该多项式乘积对一个不可约分多项式的模余数;
一个存储电路,用于为所述伽罗瓦域线性变换器电路提供一组系数,以对一个预定的不可约分多项式预测模余数;以及
一个伽罗瓦域加法器电路,用于将所述乘法器电路的所述乘积与一个带系数的第三多项式在伽罗瓦域相加,以在单个周期内执行乘法和加法运算。
9.根据权利要求1的可编程数据加密引擎,其中每个所述并行查询表包括:
一个存储器;
存储在所述存储器中的多个查询表;
一个用于存放在所述查询表要查询的值的行索引寄存器;
一个用于存储表示存储在所述存储器中的每个所述查询表的起始地址的值的列索引寄存器;以及
一个地址转换电路,响应所述列索引寄存器和所述行索引寄存器,同时为所述行索引寄存器中的每个值生成一个地址,以并行定位每个查询表中的那些值的函数。
10.一种用于执行高级加密标准(AES)算法的密码函数的可编程数据加密引擎,包括:
一个并行查询表系统,在第一模式响应第一数据分组,以实现AES选择功能并执行在GF-1(28)的乘法逆运算以及施加GF(2)仿射变换以获得字节替换变换,在第二模式响应所述字节替换变换,以变换所述字节替换变换来得到行移位变换;以及
一个伽罗瓦域乘法器,用于变换所述行移位变换以获得列混合变换,并加上一个轮密钥,导致产生所述第一数据分组的高级加密标准加密函数。
11.根据权利要求10的可编程数据加密引擎,其中所述并行查询表系统在第三模式响应一个主密钥以得到一个子密钥,并且在第四模式响应所述子密钥生成一个轮密钥。
12.根据权利要求11的可编程数据加密引擎,其中所述并行查询表系统包括一个用于实现所述字节替换/字替换变换的第一并行查询表,以及一个用于实现所述行移位/字旋转变换的第二并行查询表。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34163401P | 2001-12-18 | 2001-12-18 | |
US60/341,634 | 2001-12-18 | ||
US10/255,971 | 2002-09-26 | ||
US10/255,971 US7508937B2 (en) | 2001-12-18 | 2002-09-26 | Programmable data encryption engine for advanced encryption standard algorithm |
PCT/US2002/040901 WO2003053001A1 (en) | 2001-12-18 | 2002-12-18 | Programmable data encryption engine for advanced encryption standard algorithm |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1898896A true CN1898896A (zh) | 2007-01-17 |
CN1898896B CN1898896B (zh) | 2010-09-22 |
Family
ID=26945076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02827580.2A Expired - Fee Related CN1898896B (zh) | 2001-12-18 | 2002-12-18 | 高级加密标准算法的可编程数据加密引擎 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7508937B2 (zh) |
CN (1) | CN1898896B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145451A1 (zh) * | 2009-09-24 | 2010-12-23 | 中兴通讯股份有限公司 | 一种实现aes加解密的装置和方法 |
CN101394268B (zh) * | 2008-09-12 | 2011-05-18 | 华南理工大学 | 基于广义信息域的高级加密系统及方法 |
CN102171646A (zh) * | 2008-12-19 | 2011-08-31 | 英特尔公司 | 用于执行独立磁盘冗余阵列(raid)操作的方法和装置 |
CN101622816B (zh) * | 2007-03-28 | 2013-05-01 | 英特尔公司 | 用于高级加密标准(aes)的灵活结构和指令 |
CN108702286A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 抗功率侧信道攻击的高级加密标准加速器处理器 |
CN110336658A (zh) * | 2019-07-01 | 2019-10-15 | 武汉能钠智能装备技术股份有限公司 | 基于aes算法的加密方法、用户设备、存储介质及装置 |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7283628B2 (en) | 2001-11-30 | 2007-10-16 | Analog Devices, Inc. | Programmable data encryption engine |
US6766345B2 (en) | 2001-11-30 | 2004-07-20 | Analog Devices, Inc. | Galois field multiplier system |
US7177891B2 (en) * | 2002-10-09 | 2007-02-13 | Analog Devices, Inc. | Compact Galois field multiplier engine |
US7895253B2 (en) | 2001-11-30 | 2011-02-22 | Analog Devices, Inc. | Compound Galois field engine and Galois field divider and square root engine and method |
US7082452B2 (en) * | 2001-11-30 | 2006-07-25 | Analog Devices, Inc. | Galois field multiply/multiply-add/multiply accumulate |
US7269615B2 (en) * | 2001-12-18 | 2007-09-11 | Analog Devices, Inc. | Reconfigurable input Galois field linear transformer system |
US6865661B2 (en) * | 2002-01-21 | 2005-03-08 | Analog Devices, Inc. | Reconfigurable single instruction multiple data array |
US6941446B2 (en) * | 2002-01-21 | 2005-09-06 | Analog Devices, Inc. | Single instruction multiple data array cell |
US7000090B2 (en) * | 2002-01-21 | 2006-02-14 | Analog Devices, Inc. | Center focused single instruction multiple data (SIMD) array system |
US6829694B2 (en) * | 2002-02-07 | 2004-12-07 | Analog Devices, Inc. | Reconfigurable parallel look up table system |
US7447310B2 (en) * | 2002-08-06 | 2008-11-04 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Lean multiplication of multi-precision numbers over GF(2m) |
US7401109B2 (en) * | 2002-08-06 | 2008-07-15 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Multiplication of multi-precision numbers having a size of a power of two |
WO2004056036A1 (en) * | 2002-12-13 | 2004-07-01 | Koninklijke Philips Electronics N.V. | A small hardware implementation of the subbyte function of rijndael |
EP1595357A4 (en) * | 2003-02-06 | 2006-03-01 | Discretix Technologies Ltd | DEVICE AND METHOD FOR HANDLING MASKED DATA |
US7421076B2 (en) * | 2003-09-17 | 2008-09-02 | Analog Devices, Inc. | Advanced encryption standard (AES) engine with real time S-box generation |
US7257225B2 (en) * | 2003-12-29 | 2007-08-14 | American Express Travel Related Services Company, Inc. | System and method for high speed reversible data encryption |
KR100800468B1 (ko) * | 2004-01-29 | 2008-02-01 | 삼성전자주식회사 | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 |
US7613295B2 (en) * | 2004-02-18 | 2009-11-03 | Harris Corporation | Cryptographic device and associated methods |
KR100594265B1 (ko) * | 2004-03-16 | 2006-06-30 | 삼성전자주식회사 | 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법. |
DE602004023436D1 (de) * | 2004-03-29 | 2009-11-12 | St Microelectronics Sa | Prozessor zum ausführen eines aes algorithmus |
US20060002548A1 (en) * | 2004-06-04 | 2006-01-05 | Chu Hon F | Method and system for implementing substitution boxes (S-boxes) for advanced encryption standard (AES) |
US7715555B2 (en) * | 2004-09-07 | 2010-05-11 | Broadcom Corporation | Method and system for extending advanced encryption standard (AES) operations for enhanced security |
US7783037B1 (en) * | 2004-09-20 | 2010-08-24 | Globalfoundries Inc. | Multi-gigabit per second computing of the rijndael inverse cipher |
US7512647B2 (en) * | 2004-11-22 | 2009-03-31 | Analog Devices, Inc. | Condensed Galois field computing system |
US8171238B1 (en) | 2007-07-05 | 2012-05-01 | Silver Peak Systems, Inc. | Identification of data stored in memory |
US8095774B1 (en) | 2007-07-05 | 2012-01-10 | Silver Peak Systems, Inc. | Pre-fetching data into a memory |
US8392684B2 (en) | 2005-08-12 | 2013-03-05 | Silver Peak Systems, Inc. | Data encryption in a network memory architecture for providing data based on local accessibility |
JP4989055B2 (ja) * | 2005-08-31 | 2012-08-01 | 株式会社富士通ビー・エス・シー | 文字コード暗号処理プログラム、および文字コード暗号処理方法 |
US8929402B1 (en) | 2005-09-29 | 2015-01-06 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data by predicting subsequent data |
US8811431B2 (en) | 2008-11-20 | 2014-08-19 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data |
US8489562B1 (en) | 2007-11-30 | 2013-07-16 | Silver Peak Systems, Inc. | Deferred data storage |
US7728744B2 (en) * | 2005-10-26 | 2010-06-01 | Analog Devices, Inc. | Variable length decoder system and method |
US8024551B2 (en) | 2005-10-26 | 2011-09-20 | Analog Devices, Inc. | Pipelined digital signal processor |
US8285972B2 (en) * | 2005-10-26 | 2012-10-09 | Analog Devices, Inc. | Lookup table addressing system and method |
US8885632B2 (en) * | 2006-08-02 | 2014-11-11 | Silver Peak Systems, Inc. | Communications scheduler |
US8755381B2 (en) * | 2006-08-02 | 2014-06-17 | Silver Peak Systems, Inc. | Data matching using flow based packet data storage |
JP4905000B2 (ja) * | 2006-09-01 | 2012-03-28 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US7886143B2 (en) * | 2006-11-30 | 2011-02-08 | Broadcom Corporation | Multi-data rate cryptography architecture for network security |
US8010801B2 (en) * | 2006-11-30 | 2011-08-30 | Broadcom Corporation | Multi-data rate security architecture for network security |
US8112622B2 (en) * | 2006-12-08 | 2012-02-07 | Broadcom Corporation | Chaining port scheme for network security |
US7949130B2 (en) | 2006-12-28 | 2011-05-24 | Intel Corporation | Architecture and instruction set for implementing advanced encryption standard (AES) |
US8538012B2 (en) * | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
US7890565B2 (en) * | 2007-04-30 | 2011-02-15 | Lsi Corporation | Efficient hardware implementation of tweakable block cipher |
US8301990B2 (en) * | 2007-09-27 | 2012-10-30 | Analog Devices, Inc. | Programmable compute unit with internal register and bit FIFO for executing Viterbi code |
US8307115B1 (en) | 2007-11-30 | 2012-11-06 | Silver Peak Systems, Inc. | Network memory mirroring |
US8855299B2 (en) * | 2007-12-28 | 2014-10-07 | Intel Corporation | Executing an encryption instruction using stored round keys |
US20090245510A1 (en) * | 2008-03-25 | 2009-10-01 | Mathieu Ciet | Block cipher with security intrinsic aspects |
US10164861B2 (en) | 2015-12-28 | 2018-12-25 | Silver Peak Systems, Inc. | Dynamic monitoring and visualization for network health characteristics |
US9717021B2 (en) | 2008-07-03 | 2017-07-25 | Silver Peak Systems, Inc. | Virtual network overlay |
US8743683B1 (en) | 2008-07-03 | 2014-06-03 | Silver Peak Systems, Inc. | Quality of service using multiple flows |
US10805840B2 (en) | 2008-07-03 | 2020-10-13 | Silver Peak Systems, Inc. | Data transmission via a virtual wide area network overlay |
US20100046740A1 (en) * | 2008-08-22 | 2010-02-25 | Schneider James P | Embedding a secret in a larger polynomial |
US8718280B2 (en) * | 2010-12-17 | 2014-05-06 | Apple Inc. | Securing keys of a cipher using properties of the cipher process |
US9137250B2 (en) | 2011-04-29 | 2015-09-15 | Stephen Lesavich | Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks |
US9037564B2 (en) | 2011-04-29 | 2015-05-19 | Stephen Lesavich | Method and system for electronic content storage and retrieval with galois fields on cloud computing networks |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US9361479B2 (en) | 2011-04-29 | 2016-06-07 | Stephen Lesavich | Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks |
US20130016825A1 (en) | 2011-07-12 | 2013-01-17 | Dsp Group Ltd. | Method and appratus for advanced encryption standard |
JP5755970B2 (ja) * | 2011-08-26 | 2015-07-29 | 株式会社東芝 | 演算装置 |
US20130067212A1 (en) * | 2011-09-14 | 2013-03-14 | Augustin J. Farrugia | Securing implementation of cryptographic algorithms using additional rounds |
US9130991B2 (en) | 2011-10-14 | 2015-09-08 | Silver Peak Systems, Inc. | Processing data packets in performance enhancing proxy (PEP) environment |
US9626224B2 (en) | 2011-11-03 | 2017-04-18 | Silver Peak Systems, Inc. | Optimizing available computing resources within a virtual environment |
WO2013187887A1 (en) * | 2012-06-12 | 2013-12-19 | Tigerspike Products Pte. Ltd. | A method of cryption |
KR101330664B1 (ko) | 2012-06-15 | 2013-11-15 | 한국전자통신연구원 | 저전력 암호화 장치 및 방법 |
US9401803B2 (en) * | 2012-10-25 | 2016-07-26 | Texas Instruments Incorporated | Flexible scrambler/descrambler architecture for a transceiver |
KR101653121B1 (ko) * | 2012-12-11 | 2016-08-31 | 미쓰비시덴키 가부시키가이샤 | 통합 시큐리티 장치 및 통합 시큐리티 장치에 이용되는 신호 처리 방법 |
US9143317B2 (en) | 2013-05-24 | 2015-09-22 | Apple Inc. | Protecting against white box attacks using column rotation |
US9875377B2 (en) * | 2014-03-31 | 2018-01-23 | Stmicroelectronics S.R.L. | Encryption device of a substitution-box type, and corresponding encryption method and computer program product |
US9948496B1 (en) | 2014-07-30 | 2018-04-17 | Silver Peak Systems, Inc. | Determining a transit appliance for data traffic to a software service |
US9875344B1 (en) | 2014-09-05 | 2018-01-23 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
JP2015173497A (ja) * | 2015-05-27 | 2015-10-01 | 株式会社東芝 | 電子機器 |
US9692592B2 (en) * | 2015-06-05 | 2017-06-27 | Apple Inc. | Using state reordering to protect against white box attacks |
US9996708B2 (en) * | 2015-06-26 | 2018-06-12 | Intel Corporation | SMS4 acceleration processors having encryption and decryption mapped on a same hardware |
US10432484B2 (en) | 2016-06-13 | 2019-10-01 | Silver Peak Systems, Inc. | Aggregating select network traffic statistics |
US9967056B1 (en) | 2016-08-19 | 2018-05-08 | Silver Peak Systems, Inc. | Forward packet recovery with constrained overhead |
US10257082B2 (en) | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
US10892978B2 (en) | 2017-02-06 | 2021-01-12 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows from first packet data |
US10771394B2 (en) | 2017-02-06 | 2020-09-08 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows on a first packet from DNS data |
US11044202B2 (en) | 2017-02-06 | 2021-06-22 | Silver Peak Systems, Inc. | Multi-level learning for predicting and classifying traffic flows from first packet data |
JP6903529B2 (ja) * | 2017-09-11 | 2021-07-14 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
US11212210B2 (en) | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
US10637721B2 (en) | 2018-03-12 | 2020-04-28 | Silver Peak Systems, Inc. | Detecting path break conditions while minimizing network overhead |
US11632231B2 (en) * | 2020-03-05 | 2023-04-18 | Novatek Microelectronics Corp. | Substitute box, substitute method and apparatus thereof |
US20230305846A1 (en) * | 2022-03-24 | 2023-09-28 | Intel Corporation | Processor hardware and instructions for vectorized fused and-xor |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1181461B (de) | 1963-10-08 | 1964-11-12 | Telefunken Patent | Adressenaddierwerk einer programm-gesteuerten Rechenmaschine |
GB1083922A (en) | 1964-04-14 | 1967-09-20 | Mifalei Yam Hamelah | Electric cells |
US3317073A (en) | 1965-01-06 | 1967-05-02 | Schick Electric Inc | Plastic molded case halves with concealed interlock |
US3805037A (en) | 1972-02-22 | 1974-04-16 | J Ellison | N{40 th power galois linear gate |
SE7714587L (sv) | 1977-12-21 | 1979-06-22 | Brendstrom Hugo | System for meddelanden |
US4685132A (en) | 1985-07-30 | 1987-08-04 | Sperry Corporation | Bent sequence code generator |
US4722050A (en) | 1986-03-27 | 1988-01-26 | Hewlett-Packard Company | Method and apparatus for facilitating instruction processing of a digital computer |
US4918638A (en) | 1986-10-15 | 1990-04-17 | Matsushita Electric Industrial Co., Ltd. | Multiplier in a galois field |
FR2605769B1 (fr) | 1986-10-22 | 1988-12-09 | Thomson Csf | Operateur polynomial dans les corps de galois et processeur de traitement de signal numerique comportant un tel operateur |
US4847801A (en) | 1987-10-26 | 1989-07-11 | Cyclotomics, Inc. | Compact galois field multiplier |
DE68925840T2 (de) | 1988-04-27 | 1996-09-12 | Nec Corp | Speicherzugriffssteuerungsvorrichtung, die aus einer verringerten Anzahl von LSI-Schaltungen bestehen kann |
US5062057A (en) | 1988-12-09 | 1991-10-29 | E-Machines Incorporated | Computer display controller with reconfigurable frame buffer memory |
US5095525A (en) | 1989-06-26 | 1992-03-10 | Rockwell International Corporation | Memory transformation apparatus and method |
US5214763A (en) | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
US5446850A (en) | 1991-01-15 | 1995-08-29 | International Business Machines Corporation | Cross-cache-line compounding algorithm for scism processors |
US5386523A (en) | 1992-01-10 | 1995-01-31 | Digital Equipment Corporation | Addressing scheme for accessing a portion of a large memory space |
US5379243A (en) | 1992-08-31 | 1995-01-03 | Comstream Corporation | Method and apparatus for performing finite field division |
KR950015182B1 (ko) | 1993-11-20 | 1995-12-23 | 엘지전자주식회사 | 갈로아 필드 곱셈회로 |
KR0135846B1 (ko) | 1994-02-02 | 1998-06-15 | 김광호 | 룩-업-테이블장치 |
US5642367A (en) | 1994-02-07 | 1997-06-24 | Mitsubishi Semiconductor America, Inc. | Finite field polynomial processing module for error control coding |
US5832290A (en) | 1994-06-13 | 1998-11-03 | Hewlett-Packard Co. | Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems |
US5689452A (en) | 1994-10-31 | 1997-11-18 | University Of New Mexico | Method and apparatus for performing arithmetic in large galois field GF(2n) |
KR100250803B1 (ko) | 1995-09-05 | 2000-04-01 | 다니구찌 이찌로오 | 데이타 변환장치 및 데이타 변환방법 |
US5754563A (en) | 1995-09-11 | 1998-05-19 | Ecc Technologies, Inc. | Byte-parallel system for implementing reed-solomon error-correcting codes |
EP0839418B1 (en) | 1996-05-20 | 2003-05-02 | Koninklijke Philips Electronics N.V. | Cryptographic method and apparatus for non-linearly merging a data block and a key |
US5768168A (en) | 1996-05-30 | 1998-06-16 | Lg Semicon Co., Ltd. | Universal galois field multiplier |
TW340280B (en) * | 1996-09-06 | 1998-09-11 | Toko Inc | Interface module |
US5996066A (en) | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
US6078937A (en) | 1996-12-19 | 2000-06-20 | Vlsi Technology, Inc. | Barrel shifter, circuit and method of manipulating a bit pattern |
GB9627069D0 (en) | 1996-12-30 | 1997-02-19 | Certicom Corp | A method and apparatus for finite field multiplication |
US6002728A (en) | 1997-04-17 | 1999-12-14 | Itt Manufacturing Enterprises Inc. | Synchronization and tracking in a digital communication system |
GB9707861D0 (en) | 1997-04-18 | 1997-06-04 | Certicom Corp | Arithmetic processor |
US6006321A (en) | 1997-06-13 | 1999-12-21 | Malleable Technologies, Inc. | Programmable logic datapath that may be used in a field programmable device |
US6182216B1 (en) * | 1997-09-17 | 2001-01-30 | Frank C. Luyster | Block cipher method |
US6199086B1 (en) | 1997-12-24 | 2001-03-06 | Motorola, Inc. | Circuit and method for decompressing compressed elliptic curve points |
US6223320B1 (en) | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
US5999959A (en) | 1998-02-18 | 1999-12-07 | Quantum Corporation | Galois field multiplier |
GB9806687D0 (en) | 1998-03-27 | 1998-05-27 | Memory Corp Plc | Memory system |
US6067609A (en) | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
US6138208A (en) | 1998-04-13 | 2000-10-24 | International Business Machines Corporation | Multiple level cache memory with overlapped L1 and L2 memory access |
US5996057A (en) | 1998-04-17 | 1999-11-30 | Apple | Data processing system and method of permutation with replication within a vector register file |
KR100296958B1 (ko) | 1998-05-06 | 2001-09-22 | 이석우 | 블록 데이터 암호화 장치 |
US6199087B1 (en) | 1998-06-25 | 2001-03-06 | Hewlett-Packard Company | Apparatus and method for efficient arithmetic in finite fields through alternative representation |
JP2001034167A (ja) | 1999-07-23 | 2001-02-09 | Toshiba Corp | 演算装置及び暗号処理装置 |
US6150838A (en) | 1999-02-25 | 2000-11-21 | Xilinx, Inc. | FPGA configurable logic block with multi-purpose logic/memory circuit |
US6377969B1 (en) | 1999-04-23 | 2002-04-23 | General Dynamics Government Systems Corporation | Method for multiplication in Galois fields using programmable circuits |
JP2001084242A (ja) | 1999-09-10 | 2001-03-30 | Hitachi Ltd | 可変演算プロセッサ |
US6434662B1 (en) | 1999-11-02 | 2002-08-13 | Juniper Networks, Inc. | System and method for searching an associative memory utilizing first and second hash functions |
US6539477B1 (en) | 2000-03-03 | 2003-03-25 | Chameleon Systems, Inc. | System and method for control synthesis using a reachable states look-up table |
KR100449594B1 (ko) | 2000-03-09 | 2004-09-22 | 니뽄 덴신 덴와 가부시키가이샤 | 보조 변환을 이용한 블럭 암호 장치 |
US6384713B1 (en) | 2000-04-21 | 2002-05-07 | Marvell International, Ltd. | Serial comparator |
KR100377175B1 (ko) | 2000-06-08 | 2003-03-26 | 주식회사 하이닉스반도체 | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 |
US6480845B1 (en) | 2000-06-14 | 2002-11-12 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory working spaces |
US7305085B2 (en) * | 2000-06-30 | 2007-12-04 | Kabushiki Kaisha Toshiba | Encryption apparatus and method, and decryption apparatus and method based on block encryption |
JP3505482B2 (ja) | 2000-07-12 | 2004-03-08 | 株式会社東芝 | 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体 |
US7003106B2 (en) * | 2000-08-04 | 2006-02-21 | Innomedia, Pte, Ltd | Efficient method for multiplication over galois fields |
US20020051537A1 (en) | 2000-09-13 | 2002-05-02 | Rogaway Phillip W. | Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function |
GB0023409D0 (en) | 2000-09-22 | 2000-11-08 | Integrated Silicon Systems Ltd | Data encryption apparatus |
EP1246389B1 (en) | 2001-03-27 | 2005-01-05 | Amphion Semiconductor Limited | Apparatus for selectably encrypting or decrypting data |
US6738794B2 (en) | 2001-04-10 | 2004-05-18 | Analog Devices, Inc. | Parallel bit correlator |
GB0111521D0 (en) | 2001-05-11 | 2001-07-04 | Amphion Semiconductor Ltd | A component for generating data encryption/decryption apparatus |
DE60228083D1 (de) | 2001-05-16 | 2008-09-18 | Nxp Bv | Rekonfigurierbare logik-vorrichtung |
US7082452B2 (en) | 2001-11-30 | 2006-07-25 | Analog Devices, Inc. | Galois field multiply/multiply-add/multiply accumulate |
US7269615B2 (en) | 2001-12-18 | 2007-09-11 | Analog Devices, Inc. | Reconfigurable input Galois field linear transformer system |
US7283628B2 (en) | 2001-11-30 | 2007-10-16 | Analog Devices, Inc. | Programmable data encryption engine |
US6766345B2 (en) | 2001-11-30 | 2004-07-20 | Analog Devices, Inc. | Galois field multiplier system |
US6587864B2 (en) | 2001-11-30 | 2003-07-01 | Analog Devices, Inc. | Galois field linear transformer |
US7000090B2 (en) | 2002-01-21 | 2006-02-14 | Analog Devices, Inc. | Center focused single instruction multiple data (SIMD) array system |
US6865661B2 (en) | 2002-01-21 | 2005-03-08 | Analog Devices, Inc. | Reconfigurable single instruction multiple data array |
US6941446B2 (en) | 2002-01-21 | 2005-09-06 | Analog Devices, Inc. | Single instruction multiple data array cell |
US6829694B2 (en) | 2002-02-07 | 2004-12-07 | Analog Devices, Inc. | Reconfigurable parallel look up table system |
US7421076B2 (en) | 2003-09-17 | 2008-09-02 | Analog Devices, Inc. | Advanced encryption standard (AES) engine with real time S-box generation |
-
2002
- 2002-09-26 US US10/255,971 patent/US7508937B2/en not_active Expired - Fee Related
- 2002-12-18 CN CN02827580.2A patent/CN1898896B/zh not_active Expired - Fee Related
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10256971B2 (en) | 2007-03-28 | 2019-04-09 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
CN112532376A (zh) * | 2007-03-28 | 2021-03-19 | 英特尔公司 | 用于高级加密标准(aes)的灵活结构和指令 |
US10158478B2 (en) | 2007-03-28 | 2018-12-18 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
CN101622816B (zh) * | 2007-03-28 | 2013-05-01 | 英特尔公司 | 用于高级加密标准(aes)的灵活结构和指令 |
US10581590B2 (en) | 2007-03-28 | 2020-03-03 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9634828B2 (en) | 2007-03-28 | 2017-04-25 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9634829B2 (en) | 2007-03-28 | 2017-04-25 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9634830B2 (en) | 2007-03-28 | 2017-04-25 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9641319B2 (en) | 2007-03-28 | 2017-05-02 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9641320B2 (en) | 2007-03-28 | 2017-05-02 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9647831B2 (en) | 2007-03-28 | 2017-05-09 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9654282B2 (en) | 2007-03-28 | 2017-05-16 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US9654281B2 (en) | 2007-03-28 | 2017-05-16 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
CN103152168B (zh) * | 2007-03-28 | 2017-12-05 | 英特尔公司 | 用于高级加密标准(aes)的处理器和指令 |
US10554386B2 (en) | 2007-03-28 | 2020-02-04 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10164769B2 (en) | 2007-03-28 | 2018-12-25 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10313107B2 (en) | 2007-03-28 | 2019-06-04 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10171232B2 (en) | 2007-03-28 | 2019-01-01 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10171231B2 (en) | 2007-03-28 | 2019-01-01 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10181945B2 (en) | 2007-03-28 | 2019-01-15 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10187201B2 (en) | 2007-03-28 | 2019-01-22 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10291394B2 (en) | 2007-03-28 | 2019-05-14 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10256972B2 (en) | 2007-03-28 | 2019-04-09 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10263769B2 (en) | 2007-03-28 | 2019-04-16 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US10270589B2 (en) | 2007-03-28 | 2019-04-23 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
CN101394268B (zh) * | 2008-09-12 | 2011-05-18 | 华南理工大学 | 基于广义信息域的高级加密系统及方法 |
CN102171646A (zh) * | 2008-12-19 | 2011-08-31 | 英特尔公司 | 用于执行独立磁盘冗余阵列(raid)操作的方法和装置 |
CN102171646B (zh) * | 2008-12-19 | 2014-05-14 | 英特尔公司 | 用于执行独立磁盘冗余阵列(raid)操作的方法和装置 |
WO2010145451A1 (zh) * | 2009-09-24 | 2010-12-23 | 中兴通讯股份有限公司 | 一种实现aes加解密的装置和方法 |
CN108702286A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 抗功率侧信道攻击的高级加密标准加速器处理器 |
CN110336658A (zh) * | 2019-07-01 | 2019-10-15 | 武汉能钠智能装备技术股份有限公司 | 基于aes算法的加密方法、用户设备、存储介质及装置 |
Also Published As
Publication number | Publication date |
---|---|
US7508937B2 (en) | 2009-03-24 |
CN1898896B (zh) | 2010-09-22 |
US20030133568A1 (en) | 2003-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1898896A (zh) | 高级加密标准算法的可编程数据加密引擎 | |
CN1608244A (zh) | 伽罗瓦域乘法/乘法一加法乘法累加 | |
CN1663172A (zh) | 为aes rijndael分组密码产生轮次密钥 | |
CN1531244A (zh) | 生成加密数据流密码的方法和装置 | |
CN1867889A (zh) | 数据转换器 | |
CN1172235C (zh) | 扩充密钥发生器、加密/解密单元、扩充密钥产生方法 | |
CN1717671A (zh) | 小型伽罗华域乘法器引擎 | |
CN1483271A (zh) | 安全通信包处理装置及其方法 | |
CN1728634A (zh) | 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备 | |
CN1164912A (zh) | 数据变换装置及数据变换方法 | |
CN1528068A (zh) | 用于计算机网络中分布式数据处理的集成式保护的方法与系统 | |
CN1411630A (zh) | 用于生成循环余数核对代码以及生成其他基于余数的编码的方法、设备和产品 | |
CN1875569A (zh) | 用于有效多方乘积的方法和设备 | |
US9417847B2 (en) | Low depth combinational finite field multiplier | |
CN101040474A (zh) | 为提高安全性的置换数据变换 | |
CN1259617C (zh) | 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路 | |
CN1870499A (zh) | 产生新的多变量公钥密码系统的方法 | |
CN1764881A (zh) | 协助处理密码消息的指令 | |
CN1791855A (zh) | 混合Galois域机和Galois域除法器和平方根机及其方法 | |
CN1402920A (zh) | 使用单向函数的数学约束型密钥的生成 | |
CN1368674A (zh) | 应用蒙哥马利算法的幂剩余运算器 | |
CN1178619A (zh) | 非对称密码通信过程与相关的便携装置 | |
CN1281023C (zh) | 离散数据分块加密方法 | |
JP4098719B2 (ja) | Aesアルゴリズム用のプログラマブルデータ暗号化エンジン | |
CN1177430C (zh) | 采用密钥加密算法的对抗方法及采用所述对抗方法的电子元件和智能卡 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100922 Termination date: 20171218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |