CN1898896A - 高级加密标准算法的可编程数据加密引擎 - Google Patents

高级加密标准算法的可编程数据加密引擎 Download PDF

Info

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
Application number
CN02827580.2A
Other languages
English (en)
Other versions
CN1898896B (zh
Inventor
尤塞弗·斯坦
哈伊姆·普里莫
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.)
Analog Devices Inc
Original Assignee
Analog Devices 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 Analog Devices Inc filed Critical Analog Devices Inc
Priority claimed from PCT/US2002/040901 external-priority patent/WO2003053001A1/en
Publication of CN1898896A publication Critical patent/CN1898896A/zh
Application granted granted Critical
Publication of CN1898896B publication Critical patent/CN1898896B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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

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=(((02S00k0)03S10)01S20)01S30
其中=伽罗瓦域加法,且=伽罗瓦域乘法变换。每个伽罗瓦域乘法线性变换器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,α23,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*b0a0*b1
c2=a2*b0a1*b1a0*b2
c3=a3*b0a2*b1a1*b2a0*b3
c4=a3*b1a2*b2a1*b3
c5=a3*b2a2*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)=x13x11x9x8x7
x7x5x3x2x
x6x4x2xx
=x13x11x9x8x6x5x4x31
第二步
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*b6a6*b7
c12=a7*b5a6*b6a5*b7
c11=a7*b4a6*b5a5*b6a4*b7
c10=a7*b3a6*b4a5*b5a4*b6a3*b7
c9=a7*b2a6*b3a5*b4a4*b5a3*b6a2*b7
c8=a7*b1a6*b2a5*b3a4*b4a3*b5a2*b6a1*b7
c7=a7*b0a6*b1a5*b2a4*b3a3*b4a2*b5a1*b6a0*b7
c6=a6*b0a5*b1a4*b2a3*b3a2*b4a1*b5a0*b6
c5=a5*b0a4*b1a3*b2a2*b3a1*b4a0*b5
c4=a4*b0a3*b1a2*b2a1*b3a0*b4
c3=a3*b0a2*b1a1*b2a0*b3
c2=a2*b0a1*b1a0*b2
c1=a1*b0a0*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的可编程数据加密引擎,其中所述并行查询表系统包括一个用于实现所述字节替换/字替换变换的第一并行查询表,以及一个用于实现所述行移位/字旋转变换的第二并行查询表。
CN02827580.2A 2001-12-18 2002-12-18 高级加密标准算法的可编程数据加密引擎 Expired - Fee Related CN1898896B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (31)

* Cited by examiner, † Cited by third party
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