CN1663172A - 为aes rijndael分组密码产生轮次密钥 - Google Patents
为aes rijndael分组密码产生轮次密钥 Download PDFInfo
- Publication number
- CN1663172A CN1663172A CN03814926.5A CN03814926A CN1663172A CN 1663172 A CN1663172 A CN 1663172A CN 03814926 A CN03814926 A CN 03814926A CN 1663172 A CN1663172 A CN 1663172A
- Authority
- CN
- China
- Prior art keywords
- word
- key
- memory
- round
- expanded keys
- 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.)
- Pending
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
当执行密码过程时,依照所述AES分组密码算法根据初始密钥实时地产生扩展密钥的相继轮次密钥,所述初始密钥供密码(加密和/或解密)引擎使用。通过重写先前产生的所述扩展密钥字,只在所述存储器中留下所述初始密钥和最终密钥字,以只使用有限的密钥存储器。从而,在不对所述密码引擎产生延迟的情况下,可以在所述加密或解密方向上重新开始后续的密码运算。
Description
本发明涉及一种用于执行高级加密标准(AES)算法的方法和设备,尤其涉及一种用于实时产生在算法的加密与解密轮次(round)期间所要求的轮次密钥的方法和设备。
本发明在诸如安装在智能卡中的那些密码装置以及其中处理器和存储器资源受限的其它装置中具有特定的应用,但这并不是排他的。
可以使用对输入数据的相继128位分组(block)进行操作的128位、192位或256位密钥来实现所述AES(Rijndael)算法。在依照所述AES算法执行加密运算或解密运算(在下文,通称为“密码运算”)期间,必须扩展所述原始或“初始”密钥以便为加密或解密运算的每个相继轮次提供轮次密钥。轮次的数目(Nr)对128位密钥是10,对192位密钥是12,对256位密钥是14。
从而,所述扩展轮次密钥大小是所述初始密钥乘以(Nr+1)。在128位密钥的情况下,所述扩展密钥包括128×11=1408位;对所述192位密钥而言,所述扩展密钥包括128×13=1664位;并且对所述256位密钥而言,所述扩展密钥包括128×15=1920位。
该扩展密钥的存储消耗密码引擎的数量显著的存储空间,这在有些应用中是十分重要的,所述应用诸如是供应在智能卡上的密码引擎等等,在那里存储空间是有限的。如果在操作密码引擎期间在没有导致其延迟的情况下产生了轮次密钥,那么提供这些空间并不是绝对必要的。
本发明致力于密钥扩展方法和设备,其使用基本上比现有技术降低的存储器分配来实时地实现所述轮次密钥产生函数。
本发明认识到可以在所述密码引擎中与执行所述加密或解密算法并行地执行所述相继轮次密钥的实时产生,并且在加密或解密过程中几乎不影响执行时间,同时减少硬件的数目。
依照一个方面,本发明提供一种根据初始密钥产生扩展密钥的相继轮次密钥的方法,所述初始密钥用于加密和/或解密引擎,包括以下步骤:
在存储器的Nk个单元上存储所述初始密钥的Nk个字;
向密码引擎提供所述初始密钥,用于执行第一密码轮次;
重复地获取扩展密钥的所选择的第一个字和所选择的第二个字,这两个字中的至少一个字是从所述存储器中获取的,并且根据所选择的第一和第二个字产生所述扩展密钥的相继后续字;
向所述密码引擎提供所产生的扩展密钥字,作为用于执行后续密码轮次的轮次密钥;和
通过循环地重写先前产生的扩展密钥字来在所述存储器中存储所产生的后续字的相继字。
依照另一方面,本发明提供一种轮次密钥产生器,用于根据供加密和/或解密引擎使用的初始密码密钥来产生扩展密钥的相继轮次密钥,包括:
存储器,用于存储所述初始密钥的Nk个字;
扩展处理器,用于重复地获取所述扩展密钥的所选择的第一个字和所选择的第二个字,这两个字中的至少一个字是从所述存储器中获取的,并且根据所选择的第一和第二个字产生所述扩展密钥的相继后续字;
用于向所述密码引擎提供所产生的扩展密钥字作为用于执行后续密码轮次的轮次密钥的装置;和
用于通过循环地重写先前产生的扩展密钥字来在所述存储器中存储所产生的后续字的相继字的装置。
依照另一方面,本发明提供了一种包括移位寄存器的AES轮次常数函数产生器,具有:
第一控制输入端,用于使寄存器内容左移;
第二控制输入端,用于使所述寄存器内容右移;和
第三控制输入端,用于使所述移位寄存器内容预置为一些可能值中的一个。
现在将参考附图并通过举例来描述本发明的实施例,其中:
图1是举例说明使用所述AES分组密码算法来执行加密运算的流程图;
图2是用于产生所述扩展加密密钥的AES轮次密钥进度表的流程图,其提供在加密运算期间所需要的多个轮次密钥;
图3是依照本发明的轮次密钥产生器的示意性框图;
图4是在加密期间用于产生相继轮次密钥的密钥扩展处理器的示意性框图;和
图5是在解密期间用于产生相继轮次密钥的密钥扩展处理器的示意性框图。
在图1示出了将明文加密为密文的AES算法。可以使用对输入数据的相继128位分组进行操作的128位、192位或256位密钥来实现所述AES算法。现在在使用128位密钥基本实现的环境下描述图1。
输入明文10的初始128位分组与原始的128位密钥12在初始轮次15进行XOR组合11。然后使由此初始轮次15产生的输出13在加密轮次28经过许多重复的变换阶段,所述加密轮次28包括依照所定义的AES算法的子字节(SubBytes)变换20,移行(ShiftRows)变换21和混列(MixColumns)变换22。
来自所述混列变换22的输出与新的128位轮次密钥26进行XOR组合23,所述新的128位轮次密钥26根据所述初始(原始)密钥12获得。将由此XOR组合得到的输出反馈以便使其再多次经过所述加密轮次28。
对于每个经由所述加密轮次28的相继迭代,依照所述AES轮次密钥进度表根据现有的轮次密钥26获得新的轮次密钥26@。
所述加密轮次28迭代的次数(Nr-1),当使用128位加密密钥时是9,使用192位加密密钥时是11,以及使用256位加密密钥时是13。
在轮次28的必要次数(Nr-1)之后,在判定框24的控制下进入最终轮次,Nr。所述最终轮次30包括进一步的子字节变换31,进一步的移行变换32和后续将所述变换结果与根据先前轮次密钥产生的35最终轮次密钥36进行的XOR组合33。从而所述输出包括所述加密算法的密文输出39。
根据图1应当注意,所述AES加密算法的实现要求根据为每个轮次28、30准备的所述初始密钥12产生新的轮次密钥。
遍及本说明书,所述密钥将按照32位字的数目Nk表示。对初始128位加密密钥12,即4×32位字,Nk=4,并且所述“扩展”密钥包括11×432位字,或44字,写为W(0)...W(43)。对初始192位加密密钥(Nk=6),所述扩展密钥升为13×432位字,或52字,写为W(0)...W(52)。对初始256位加密密钥(Nk=8),所述扩展密钥升为15×432位字,或60字,写为W(0)...W(59)。
在执行所述AES解密算法期间,所述轮次密钥与加密情况相同,但是是以逆序出现的。
参考图2,现在将描述用于在128位密钥环境下(在所述密钥中的字数,Nk=4)产生相继轮次密钥的通用AES密钥扩展算法。应当理解,所述技术还适用于192位(Nk=6)和256位(Nk=8)密钥。
包括四个32位字W(0)、W(1)、W(2)和W(3)的所述初始密钥50被载入到适当的存储器单元510、511、512、513。在常规的实现方式中,所述存储器包括足够的空间,一旦产生扩展密钥的所有字,就在51n容纳所述扩展密钥的所有字。
在所述扩展密钥中的四个字的每个新序列包括新的轮次密钥并且被称为“伸展(strech)”。一般地说,伸展是W(i)到W(i+Nk),其中i是Nk的整数倍数减1(Nk=4时,为0,3,7;Nk=8时,为0,7,15)。一开始,唯一的伸展是所述初始密钥50,并且第一任务是产生新的伸展的第一个字,从而所述判定框53指示路径“是”。
在密钥扩展算法的初始轮中,提取(在52)在先前伸展(513)的最后字并且左移这些位(步骤54),使用S-box查找55依照所述AES密钥扩展算法对其进行变换。所述S-box函数与用于所述AES子字节变换20(图1)的函数相同。作为结果的32位输出56只有第一个八位与在所述AES密钥次序表中定义的常数Rcon 58进行XOR组合57。然后将由此操作得到的输出60与在先前伸展的第一个字(即510)进行XOR组合62,并在514将该结果W(4)写入存储器。
在经过所述流程图中的第二轮,得到第二伸展的下一字W(5)。这是伸展的第二个字,使用所述流程图左手边的路径,在514,新产生的字W(4)被直接复制到为与所述初始密钥50的下一字511作简单XOR组合62而准备的Wtmp缓冲器60。将新产生的字W(5)写入(在63)存储器515。
再重复左手边路径过程两次,在重新开始第三伸展周期以前使用右手路径产生第二伸展的最后两个字W(6)和W(7)。
事实上,可以看出,每个新的伸展的每个字是在其紧接着的先前字和在先前伸展的相应位置的字的XOR组合,在每个伸展的第一个字除外。对在每个伸展中的第一个字,它是所使用的紧接着的先前字的函数,而不是紧接着的先前字本身的函数,所述函数依照图2的步骤54-59执行。
除每个伸展长度分别是六字或八字以外,配置192位(Nk=6)和256位(Nk=8)密钥的原理是相同的。
四个字的每个相继组被用作图1的加密过程的每个相继轮次28、30的轮次密钥。在解密期间,以逆序应用所述轮次密钥。
在一个方面,本发明认识到,在任一时刻只需在存储器中保持原始密钥的Nk个字以及所述扩展轮次密钥的最近的Nk个字。在步骤23或33,将最近产生的四个字(或一般地说,在当前保持的Nk个字中的四个相继字)馈送到所述加密引擎,同时所保持的Nk个字被用来产生如图2所描述的新的伸展。
假如产生新的伸展足够快以跟得上所述加密引擎,并且同时与其保持同步(伸展长度(Nk=4、6或8)和轮次密钥长度(=4)的差异的公差内)以,致最近产生的伸展包括在所述加密引擎中当前所要求的所述轮次密钥,那么只需要提供非常有限的存储器容量和缓冲器需求。
参考图3,所述轮次密钥产生器100包括RAM区101,其被分为相等的部分102、103,每个部分具有例如:4×32位字(对所述128位密钥算法而言)、6×32位字(对所述192位密钥发生器而言)或8×32位字(对所述256位密钥算法而言)的大小。遍及下列描述,假定轮次密钥产生器100能处理256位密钥算法,其可适应容纳更小的密钥长度处理。
为方便起见,将把两个部分102、103称为下半部103和上半部102。由OffSetHiRd指针通过mux 104来为读访问引用各自的部分。对OffSetHiRd=0而言,读取下半部103;对OffSetHiRd=1而言,读取上半部102。在所述RAM 101的下半部103,所述初始加密密钥50存储在单元W0到W7(即第一伸展W(0)...W(7),对Nk=8);在上半部102中,新的计算伸展,例如W(8)...W(15)存储在相应的上半部单元W0...W7。指针OffSetHiWr(未示出)可能用来指向要写入的存储器的半部分。当每个相继伸展被产生并被用于所述加密引擎时,计算下一伸展值(例如W(16)...W(23))并将其重写到所述上半部102中。
所述个体单元W0...W7(下半部)或W1...W7(上半部)由OffSetCnt计数器111为读和写操作而加以引用,所述OffSetCnt计数器111是三位的计数器,其指向在上半部中的一个字单元和/或在下半部中的相应的单元。通常,把所述OffSetCnt计数器111实现为模Nk上/下计数器。
轮次密钥计数器110保持当前计算的轮次密钥(即当前伸展)的计数。状态机106维护所述轮次密钥产生过程的总体控制,并且扩展处理器107执行扩展轮次密钥值(字)的计算。
当完成当前明文分组的加密运算时,所述过程可以从在下半部103中的加密密钥重新开始。做为选择,如果要求解密运算,那么所述解密周期的第一轮次密钥包括根据所述RAM上半部102最近计算的轮次密钥,其可以被移入所述下半部,或从上半部读出。同样,计算相继解密轮次密钥。在完成所述解密轮次密钥产生操作之时,返回所述原始的加密密钥并且可以将其恢复到或保持在RAM 101的下半部,以用于后续加密运算。
图4示出了所述扩展处理器107的框图。所述扩展处理器107包括第一32位的寄存器W,在120示出,和第二32位的寄存器Wtmp,在121示出。每个寄存器W、Wtmp可以从所述RAM 101直接填充。32位的、双输入端多路复用器122还允许经由反馈线路123填充Wtmp。所述扩展处理器107还包括特殊处理逻辑150,用于实现结合图2的变换54、55、58所描述的变换旋转字(RotateWord)154、子字(SubWord)155、Rcon 158。32位的多路复用器124从所述特殊处理逻辑150或者直接从寄存器Wtmp 121中选择输出以便向32位宽的XOR门162提供输入。
加密运算开始时,将初始密钥50(W(0)...W(7))载入到RAM101中的下半部103,位置W0...W7。
将来自RAM 101的所述初始密钥50的第一个字W(0)载入到缓冲器120中,并且将所述初始密钥50的最后字W(Nk-1)载入到缓冲器Wtmp 121中。一般地说,对相继加密轮次,将W(i)载入到缓冲器120中,并且将W(i+Nk)的最后计算的值存储在Wtmp 121中。
如参考图2所定义的那样,在加密的密钥扩展过程期间,一个下列方程式适用于所述扩展轮次密钥的每个新字W(i)的产生:
对于除了下面之外所有的i(即没有特殊处理150),
规则1:W(i)=W(i-Nk)W(i-1)
当i mod Nk=0时(每个伸展的开始),
规则2:W(i)=W(i-Nk)SubWord(RotWord(W(i-1)))Rcon(i/Nk)
当i mod Nk=4并且Nk=8时(每8个字的伸展的中间周期),
规则3:W(i)=W(i-Nk)SubWord(W(i-1))
其中:
RotWord(Wtmp)是Wtmp的逐字节旋转,
SubWord是所述AES的S-box变换,
Rcon是如在所述AES标准中定义的轮次常数,其只应用于在每个伸展中第一个字的第一个字节,而对于其它字节不改变顺利通过,
i=0...4Nr+3,
即对于Nk=4,i=0...43;
对于Nk=6,i=0...51并且
对于Nk=8,i=0...59。
换句话说,对每个新的伸展的第一个字,应用所述特殊处理的步骤54-59并且用来自寄存器120的W(0)和所述变换W(Nk-1)进行XOR组合62来计算W(Nk)。当Nk=8时对于每个伸展的中间字,只应用所述特殊处理的步骤55。对于在每个伸展的其它字,在没有特殊处理步骤54到59的情况下直接XOR组合寄存器120和寄存器121的内容。
参考图4,寄存器W装载着W(0)并且寄存器Wtmp装载着W(Nk-1)[例如,对于Nk=8为W(7)]。然后从XOR门162输出所述计算的结果,W(Nk)[例如W(8)],并将其存储在RAM101[例如在上半部的单元W0]和寄存器Wtmp 121中。然后,寄存器W装载着W(1),而寄存器Wtmp保持W(Nk),[例如W(8)]。然后计算W(Nk+1)[例如W(9)]并将其存储在RAM 101[在上半部的单元W1]和寄存器Wtmp中。
通常,寄存器W从RAM 101加载W(i),而寄存器Wtmp保持所述值W(i+Nk-1)。然后计算W(i+Nk)并将其存储在RAM 101,在上半部的位置W(i+Nk)mod8(即循环地在上半部102存储新值),和Wtmp中。
所述密钥扩展过程与所述加密处理器130并行运行,所述加密处理器130优选逐字工作而不是以128位宽的分组进行工作。用这样的方式,可以将内容W直接传递到所述加密处理器,以便立即用作所述加密过程的输入。可选择地,所述加密处理器130可以直接耦合来访问RAM 101以便获取所要求的轮次密钥字。这种配置允许在所述加密引擎130和扩展处理器107的操作周期的相对定时过程中具有更强的灵活性。
对于每个操作周期,Wtmp的新值是这样:
Wtmp=WtmpW,除下列情况外:
当i mod Nk=0,
那么Wtmp=SubWord(RotWord(Wtmp))Rcon(i/Nk)W
当i mod Nk=4并且Nk=8时,
那么Wtmp=SubWord(Wtmp)W
在所述密钥扩展过程期间,指针OffSetHiRd 105实际上指向在RAM 101中上半部102或者下半部103中的基字单元。通过这个一位的指针来实现读取单元的控制,所述一位的指针分别选择所述存储器的读取半部分。从而,在密钥扩展的第一周期期间(在第二伸展的计算期间),从所述下半部102读取所述初始密钥字W(0)...W(7),即所述读取标志105选择OffSetLo。在加密密钥扩展期间,始终将轮次密钥的新值写入上半部102。
开始,应用下列初始化设置:
OffSetCnt=0,OffSetHiRd=0,OffSetHiWr=1,RndCnt=4Nr+3。
在地址Wk-1读取所述RAM 101,其由OffSetHiRd和OffSetCnt(即OffSetCnt+Nk-1)确定,并将其存储在Wtmp。
然后执行下列过程Nk次:
1.从下半部的WOffSetCnt读取所述RAM,并将其存储在W中。
2.产生下一扩展密钥字并将其写入Wtmp以及存储器上半部102的WOffSetcnt。
3.递增OffSetCnt并且递减RndCnt。
4.只是在所述Nk周期的第一周期以后更新Rcon。
现在已经使用来自下半部103的初始密钥的所有字。OffSetHiRd被设置为1,以致从上半部102读取所有后续的轮次密钥字。例如,对于Nk=8,在地址W8的存储器包含W(8)。
现在,重复地执行下列过程直到RndCnt=Nk-1。
1.从上半部(OffSetHi=1)的OffSetCnt读取RAM并将其存储在W中。
2.产生下一轮次密钥字并将其写入到Wtmp和在RAM中上半部的OffSetCnt。
3.当OffSetCnt=0时,更新Rcon
4.递增OffSetCnt并且递减RndCnt。
对Nk=4,最后计算是W(43)=W(39)W(42)。OffSetCnt=43 mod 4=3。
对Nk=6,最后计算是W(51)=W(45)W(50)。OffSetCnt=51 mod 6=3。
对Nk=8,最后计算是W(59)=W(51)W(58)。OffSetCnt=59 mod 8=3。
因此,与Nk无关地,总是把最后轮次密钥字存储在OffSetCnt=3。
就此,由所述加密处理器130使用最后的Nk个轮次密钥字,但所述扩展处理器不再产生更多的轮次密钥字。从而,重复地执行下列过程直到RndCnt=0:
1.从上半部的WoffSetCnt读取RAM并将其存储在W。
2.递增OffSetCnt并且递减RndCnt。
人们注意到现在所述RAM 101的下半部103包含初始加密密钥(Nk个字),并且现在RAM的上半部102包含所述扩展密钥的最终Nk个字。所述扩展密钥的最终Nk个字是所述解密密钥的最初Nk个字。
因此,现在所述RAM包含用于加密的初始轮次密钥和用于解密的初始轮次密钥。因此,由密码引擎执行的下一运算是加密运算还是解密运算无关紧要-所述扩展处理器可以从上半部102或者下半部101开始密钥扩展。
在解密期间,以逆序应用所述加密轮次密钥。
因此,在操作本发明的过程中,在解密期间有必要根据W(i+Nk)和W(i+Nk-1)产生W(i)。
所述密钥扩展过程的逆向要求:
规则1:W(i-Nk)=W(i)W(i-1))
对于所有的i,除非:
规则2:W(i-Nk)=W(i)SubWord(RotWord(W(i-1)))Rcon(i/Nk)
当i mod Nk=0,和
规则3:W(i-Nk)=W(i)SubWord(W(i-1))
当i mod Nk=4并且Nk=8。
注意,所有的W(i-Nk)和W(i)已经互换位置,但是复杂的第二输入与用于加密的相同。
以Nk=4为例,在加密期间产生的最后W是W(43)。在解密密钥扩展期间,第一次加载W时,其从RAM 101加载;此后可以从Wtmp处获得后续的W。
从而,第一步是将W(43)加载到W(在RAM上半部102的W11处找到的,OffSetCnt 3)以及将W(42)加载到Wtmp(在RAM上半部102的W10处找到的,OffSetCnt 2)。然后,我们计算W(39)=W(43)W(42)并将结果写入到RAM 101的下半部103的W3处。然后将Wtmp的内容移动到W,接下来所述W保持W(42)并且Wtmp装载着W(41)。
在下一周期中,我们计算W(38)=W(42)W(41)并将结果写入到RAM 101的W1,并且我们将Wtmp的内容移动到W,接下来所述W保持W(41)并且我们将W(40)加载到Wtmp中。对相继W重复该周期。
通常,从RAM(或从Wtmp)向寄存器W加载W(i),并且从RAM向寄存器Wtmp加载W(i-1)。然后计算W(i-Nk)并将其存储在RAM低半部位置Wi mod 8上,而Wtmp的内容转送到W。
与解密处理器并行运行所述解密密钥扩展过程,所述解密处理器优选逐字运转而不是以128位宽的分组运转,即所述W的内容还通过所述解密引擎140以用作为解密运算的输入。
开始,应用下列初始化设置:
OffSetCnt=3,OffSetHiRd=1,OffSetHiWr=0,RndCnt=4Nr+3。
在地址OffSet Cnt[OffSet Cnt=3,给定W(4Nr+3),例如对Nk=4为W(43)]读取所述RAM 101并将其存储在W。
然后,执行下列过程Nk-1次:
1.从所述上半部的WoffSetCnt-1 mod Nk处读取所述RAM并将其存储在Wtmp[对于Nk=4,W(42)、W(41)和W(40)]。
2.产生下一扩展密钥字并将其写入到RAM的在下半部的OffSetCnt[对于Nk=4,W(39)、W(38)和W(37)]。
3.将Wtmp的内容转送到W
4.递减OffSetCnt并且递减RndCnt。
现在已经使用来自上半部的所有字。OffSetHiRd被设置为0,因此从下半部读取所有后面的密钥字。例如,对于Nk=4,所述存储器在上半部的地址3包含W(39)。
现在,重复地执行下列过程直到RndCnt=Nk-1。
1.从下半部的WoffSetCnt-1 mod Nk处读取所述RAM并将其存储在Wtmp。
2.产生下一轮次密钥字并将其写入到Wtmp和在存储器的下半部的OffSetCnt。
3.将Wtmp的内容转送到W
4.当OffSetCnt=0时,更新Rcon
5.递减OffSetCnt和RndCnt。
此时,由所述解密处理器140使用最后的Nk个轮次密钥字,但是我们不需要产生更多的轮次密钥字。从而,重复地执行下列过程直到RndCnt=0:
1.从下半部的WoffSetCnt-1 mod Nk处读取所述存储器并将其存储在Wtmp中。
2.将Wtmp的内容转送到W。
3.递减OffSetCnt和RndCnt。
注意可以省略最后的读取,这是因为将不会使用它。
在优选实施例中,可以用与实现加密/解密过程的子字节变换20、31相同的硬件来实现所述密钥扩展过程中的子字(SubWord)函数55、155。实际上,据发现,如果任何延迟影响所述加密/解密过程,那么其已经是最小的了。只有在每个第N个轮次,对于相同硬件,所述密钥扩展处理器才与所述的加密/解密过程相互竞争。
在密钥扩展和密码过程逐字地前后紧接进行的场合,所述密钥扩展引擎和密码引擎在进入下一轮次以前会彼此等待,并且每第N个轮次它们还必须等待来相互独立地访问S-box变换函数。然而,当所述密码引擎执行所述移行变换21或所述混列变换22时,所述密钥扩展处理器可以使用S-box硬件。
高效的双向运算所需要的存储器101的最低量是2Nk个字:一半(Nk)用于存储所述加密密钥并且另一半用于存储所述解密密钥。
在加密期间,从所述加密(下)半部分取出最初的Nk个字。将所有产生的轮次密钥字写入所述解密(上)半部分。在加密结尾,所述解密(上)半部分保持所述解密密钥。
在解密期间,从所述解密(上)半部分取出最初的Nk个字,其实际上是用于解密的“初始密钥”。将所有产生的轮次密钥字写入所述加密(下)半部分。尽管这意味着临时重写所述加密密钥,但在解密之后,重新产生所述加密密钥。所述解密密钥不被重写。
因此,在第一加密过程之后,所述密钥扩展处理器可以通过选择从下半部103或上半部102开始来立即产生扩展加密密钥或扩展解密密钥。对于第一次操作,如果使用新的密钥,就有必要执行加密运算以便产生所述解密密钥。
有可能将存储器的数量减少到和Nk个字一样。然而,如果要求许多连续的加密或解密运算那么这并不是高效的,每一个必须用哑解密或加密运算填充,以便重新产生初始加密(或解密)密钥。通常,这是不怎么希望的。
状态机106按照如下来控制各个寄存器和计数器,适于Nk=4、6或8的所有情况。
所述3比特的上/下计数器OffSetCnt 111指向所述存储器的每个半部分的地址。其在加密期间递加计数;当它达到Nk-1时,它就又被重置为0。在解密期间其递减计数。当其是0时,它被重置为Nk-1。
当OffSetCnt=0时,那么应用W(i)的规则2。当OffSetCnt=4并且Nk=8时,那么应用规则3。对于所有其它OffSetCnt值,应用规则1。
所述1比特的变量OffSetHiRd在加密期间被设置为最初指向(对于最初的Nk次读取)所述RAM下半部分,然后对于所有后续读取指向RAM上半部分。在解密期间,OffSetHiRd被设置为最初指向(对于最初的Nk次读取)所述RAM上半部分,然后对于所有后续读取指向所述RAM下半部分。所述1比特的变量OffSetHiWr在加密期间被设置为对于所有的写入指向所述RAM上半部分102,而在解密期间对于所有写入指向所述RAM下半部分。6位的递减计算器RndCnt110计数轮次的数目。
再次参考图2,所述轮次常数Rcon 58必须每个周期被更新(步骤59)、即在每次使用之后被更新。
对于第一周期,Rcon[1]=1。在每个周期之后,按照如下来更新Rcon值:
Rcon[i/Nk]=xtime(Rcon[i/Nk-1],
即Rcon的先前值被左移,并且当最高有效位=1时,那么将十六进制值1B加到Rcon上。
依照所述AES规范,在如下之时来调用函数Rcon[i/Nk]:
i mod Nk=0,同时Nk≤i<Nb(Nr+1)。
Nk | Nb | Nr | Nb(Nr+1) |
4 | 4 | 10 | 44 |
6 | 4 | 12 | 52 |
8 | 4 | 14 | 60 |
对于Nk=4,在i=4、8、...40调用Rcon[i/Nk],即调用10次。最后值=36h。
对于Nk=6,在i=6、12、...48调用Rcon[i/Nk],即调用8次。最后值=80h。
对于Nk=8,在i=8、16、...56调用Rcon[i/Nk],即调用7次。最后值=40h。
i/Nk | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Rcon[i/N | 01 | 02 | 04 | 08 | 10 | 20 | 40 | 80 | 1B | 36 |
在优选实施例中,以8位移位寄存器的方式实现所述RCon函数58、59,所述移位寄存器可以左移(对于加密)和右移(对于解密)。所述移位寄存器可以被预置为下列值01h、1Bh、36h、80h和40h。
对于加密,其预置为01h。其移向左边,除了当其达到80h时,这时它预置为1Bh。
对于解密,对于Nk=4它预置为36h,对于Nk=6预置为80h以及对于Nk=8为40h。其移向右边,除了当其达到1Bh时,这时它预置为80h。
从而,所述移位寄存器实际上具有三个控制输入端。第一控制输入端引起所述寄存器的左移(位循环),其在所述加密密钥扩展的每个周期期间使用。第二控制输入端引起所述寄存器的右移(位循环),其在所述解密密钥扩展的每个周期期间使用。第三控制输入端依照所述寄存器的当前值和方向(加密或解密),使所述寄存器预置为许多预先确定的值中的一个。
应当注意,从一般意义上讲,本发明提供了根据初始密钥产生扩展密钥的相继轮次密钥字的方法,所述方法基本上只在需要这些产生的扩展密钥的相继轮次密钥字用来产生相继轮次密钥字和用在密码过程的并行操作中时,才在存储器中保持所产生的相继轮次密钥字。
在该优选实施例中,所述初始密钥字还保持在所述存储器中。
其它实施例意欲落入所附权利要求的范围内。
Claims (54)
1.一种从供加密和/或解密引擎使用的初始密码密钥产生扩展密钥的相继轮次密钥的方法,包括步骤:
在存储器的Nk个单元上存储所述初始密钥的Nk个字;
向密码引擎提供所述初始密钥,以便执行第一密码轮次;
重复地获取所述扩展密钥的所选择的第一个字和所选择的第二个字,这两个字中的至少一个字是从所述存储器中获取的,并且根据所选择的第一和第二个字产生所述扩展密钥的相继后续字;
向所述密码引擎提供所产生的扩展密钥字,作为用于执行后续密码轮次的轮次密钥;和
通过循环地重写先前产生的扩展密钥字来在所述存储器中存储所产生的后续字的相继字。
2.如权利要求1所述的方法,其中重写先前产生字的步骤只在那些字已经在产生各自后续字的步骤中被用作所述第一和/或所述第二个选择字之后才发生。
3.如权利要求1所述的方法,其中所使用存储单元的数目小于所述扩展密钥中字的数目。
4.如权利要求1所述的方法,其中所使用的存储单元的数目等于Nk。
5.如权利要求4所述的方法,其中在所述重写步骤期间还通过所述扩展密钥字重写所述初始密钥字。
6.如权利要求1所述的方法,其中所使用的存储单元的数目等于2Nk。
7.如权利要求1所述的方法,其中所述存储器被分成两个部分,第一部分存储所述初始密钥,第二部分接收相继产生的所述扩展密钥字。
8.如权利要求7所述的方法,还包括这样完成所述扩展密钥产生的步骤,以致把所述最终轮次密钥存储在存储器的第二部分中,并且仍然把所述初始密钥存储在所述存储器的第一部分中。
9.如权利要求8所述的方法,还包括从存储在所述存储器的第一部分的所述初始密钥开始执行重复密钥扩展的步骤。
10.如权利要求8所述的方法,还包括从存储在所述存储器第二部分的所述最终轮次密钥开始执行逆向密钥扩展的步骤。
11.如权利要求1至4中任何一项的方法,还包括这样完成所述扩展密钥的产生的步骤,以致将所述最终轮次密钥存储在所述存储器中并且使得所述初始密钥已经被重写。
12.如权利要求11所述的方法,还包括从存储在所述存储器中的所述最终轮次密钥开始执行逆向密钥扩展的步骤,以便重新产生用于后续密码运算的初始密钥。
13.如权利要求7所述的方法,其中所使用的存储单元的数目等于2Nk,第一和第二部分均具有Nk个单元。
14.如之前任一项权利要求所述的方法,其中产生所述扩展密钥的相继后续字的步骤包括依照AES密钥扩展函数产生AES Rijndael分组密码轮次密钥的相继字。
15.如权利要求14所述的方法,其中Nk=8。
16.如之前任一项权利要求所述的方法,其中所述扩展密钥的相继后续字包括加密轮次密钥字。
17.如权利要求1到15中任一项所述的方法,其中所述扩展密钥的相继后续字包括解密轮次密钥字。
18.如权利要求1所述的方法,其中向所述密码引擎提供产生的所述扩展密钥字的步骤包括当所述密码引擎把这些字当作轮次密钥耗用时逐字地提供所述字。
19.如权利要求1所述的方法,其中在所述获取步骤,所述选择的第一个字和选择的第二个字均从所述存储器获取。
20.如权利要求1所述的方法,其中在所述获取步骤,从存储器中获取所选择的第一个字而从用于前面迭代的寄存器中获取所选择的第二个字。
21.如权利要求1所述的方法,其中向所述密码引擎提供产生的所述扩展密钥字的步骤包括提供来自所述存储器的所述产生的字。
22.如权利要求1所述的方法,其中所述产生步骤包括,在轮次密钥字产生的至少一些周期中,执行S-box变换的步骤,所述S-box变换使用与所述密码引擎共享的S-box。
23.如权利要求22所述的方法,还包括保持产生相继轮次密钥字与由所述密码引擎耗用所述轮次密钥字的同步的步骤。
24.一种轮次密钥产生器,用于根据供加密和/或解密引擎使用的初始密码密钥产生扩展密钥的相继轮次密钥,包括:
存储器,用于存储所述初始密钥的Nk个字;
扩展处理器,用于重复地获取所述扩展密钥的所选择的第一个字和所选择的第二个字,这两个字中的至少一个是从所述存储器中获取的,并且根据所选择的第一和第二个字产生所述扩展密钥的相继后续字;
用于向所述密码引擎提供所产生的扩展密钥字作为用于执行后续密码轮次的轮次密钥的装置;
用于通过循环地重写先前产生的扩展密钥字来在所述存储器中存储所产生的后续字的相继字的装置。
25.如权利要求24所述的设备,还包括用于保证只在那些先前产生的字已经被所述扩展处理器用作所述第一和/或第选个择字之后才重写那些先前产生的字的控制装置。
26.如权利要求24所述的设备,其中在存储器中字单元的数目小于所述扩展密钥中字的数目。
27.如权利要求24所述的设备,其中在所述存储器中字单元的数目等于Nk。
28.如权利要求27所述的设备,其中在所述重写期间还通过所述扩展密钥字重写所述初始密钥字。
29.如权利要求24所述的设备,其中在所述存储器中字单元的数目等于2Nk。
30.如权利要求24所述的设备,其中所述存储器被分成两个部分,第一部分存储所述初始密钥并且第二部分接收相继产生的所述扩展密钥字。
31.如权利要求30所述的设备,其中用于存储的装置在完成产生所述扩展密钥之后在所述存储器第二部分存储所述最终轮次密钥并且在所述存储器第一部分保持所述初始密钥。
32.如权利要求31所述的设备,还包括用于从存储在所述存储器第一部分的所述初始密钥开始执行重复密钥扩展的装置。
33.如权利要求31所述的设备,还包括从存储在所述存储器第二部分的所述最终轮次密钥开始执行逆向密钥扩展的装置。
34.如权利要求24至27中任一项的设备,还包括用于完成所述扩展密钥的产生以致将所述最终轮次密钥存储在所述存储器中并且使得所述初始密钥已经被重写的装置。
35.如权利要求34所述的设备,还包括用于从存储在所述存储器中的所述最终轮次密钥开始执行逆向密钥扩展以便重新产生用于后续密码运算的初始密钥的装置。
36.如权利要求30所述的设备,其中在存储器中字单元的数目等于2Nk,第一和第二部分均具有Nk个单元。
37.如之前任一项权利要求所述的设备,其中所述扩展处理器包括用于依照AES密钥扩展函数产生所述AES Rijndael分组密码轮次密钥的相继字的装置。
38.如权利要求37所述的设备,其中Nk=8。
39.如之前任一项权利要求所述的设备,其中所述扩展处理器产生加密轮次密钥字。
40.如权利要求24到38中任一项所述的设备,其中所述扩展密钥处理器产生解密轮次密钥字。
41.如权利要求24所述的设备,还包括密码引擎,和用于当所述密码引擎把这些字当作轮次密钥耗用时逐字地向所述密码引擎提供所述产生的扩展密钥字的装置。
42.如权利要求24所述的设备,还包括用于从所述存储器获取所选择的第一个字和所选择的第二个字的装置。
43.如权利要求24所述的设备,还包括用于从存储器获取所选择的第一个字和从所述扩展处理器中的寄存器获取所选择的第二个字的装置。
44.如权利要求1所述的设备,还包括密码引擎,在所述密码引擎中,所述扩展处理器和所述密码引擎共享S-box。
45.如权利要求44所述的设备,还包括用于保持所述扩展处理器和所述密码引擎之间的同步的装置。
46.一种智能卡,包括根据权利要求24到45中任一项所述的轮次密钥产生器。
47.一种根据初始密钥产生扩展密钥的相继轮次密钥字的方法,所述方法基本上只在要求所述产生的扩展密钥的相继轮次密钥字用来产生相继轮次密钥字和用在密码过程的并行操作中时,才在存储器中保持所产生的相继轮次密钥字。
48.如权利要求47所述的方法,其中还在产生所述扩展密钥的整个过程期间在所述存储器中保持所述初始密钥字。
49.一种包括移位寄存器的AES轮次常数函数产生器,具有:
第一控制输入端,用于使寄存器内容左移;
第二控制输入端,用于使所述寄存器内容右移;和
第三控制输入端,用于使所述移位寄存器内容预置为一些可能值中的一个。
50.如权利要求49所述的设备,其中所述第三控制输入端使所述移位寄存器内容预置为依照寄存器当前内容所确定的值。
51.如权利要求49所述的设备,其中所述一些可能的值是十六进制的01、1B、36、80和40。
52.如权利要求49所述的设备,其中对于每个AES加密运算的轮次都把第一控制输入端置为有效一次,并且其中对于每个AES解密运算轮次都把第二控制输入端置为有效一次。
53.一种基本参考附图在此所描述的的设备。
54.一种基本上参考附图在此所描述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0214620.7A GB0214620D0 (en) | 2002-06-25 | 2002-06-25 | Round key generation for AES rijndael block cipher |
GB0214620.7 | 2002-06-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1663172A true CN1663172A (zh) | 2005-08-31 |
Family
ID=9939228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03814926.5A Pending CN1663172A (zh) | 2002-06-25 | 2003-06-12 | 为aes rijndael分组密码产生轮次密钥 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20050213756A1 (zh) |
EP (1) | EP1518347A2 (zh) |
JP (1) | JP2005531023A (zh) |
CN (1) | CN1663172A (zh) |
AU (1) | AU2003239730A1 (zh) |
GB (1) | GB0214620D0 (zh) |
WO (1) | WO2004002057A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100389553C (zh) * | 2006-07-31 | 2008-05-21 | 西安西电捷通无线网络通信有限公司 | 高效率实现sms4算法的加解密处理设备 |
CN104012030A (zh) * | 2011-12-21 | 2014-08-27 | 英特尔公司 | 用于保护对称加密密钥的系统及方法 |
CN104219043A (zh) * | 2014-07-25 | 2014-12-17 | 西华师范大学 | 一种可预置和重构的密钥装置及运行方法 |
WO2016045217A1 (zh) * | 2014-09-23 | 2016-03-31 | 深圳市汇顶科技股份有限公司 | 加密方法和加密装置 |
CN116126753A (zh) * | 2022-12-28 | 2023-05-16 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937595B1 (en) * | 2003-06-27 | 2011-05-03 | Zoran Corporation | Integrated encryption/decryption functionality in a digital TV/PVR system-on-chip |
WO2005081934A2 (en) * | 2004-02-23 | 2005-09-09 | The Trustees Of Columbia University In The City Of New York | Computer-implemented methods and systems for generating elastic block ciphers for encryption and decryption |
KR20050087271A (ko) * | 2004-02-26 | 2005-08-31 | 삼성전자주식회사 | 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치 |
US7561689B2 (en) * | 2004-06-17 | 2009-07-14 | Agere Systems Inc. | Generating keys having one of a number of key sizes |
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 |
DE102004062825B4 (de) * | 2004-12-27 | 2006-11-23 | Infineon Technologies Ag | Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit |
US7873166B2 (en) * | 2005-09-13 | 2011-01-18 | Avaya Inc. | Method for undetectably impeding key strength of encryption usage for products exported outside the U.S |
US20080037775A1 (en) * | 2006-03-31 | 2008-02-14 | Avaya Technology Llc | Verifiable generation of weak symmetric keys for strong algorithms |
US7890750B2 (en) * | 2006-07-06 | 2011-02-15 | Accenture Global Services Limited | Encryption and decryption on a graphics processing unit |
US7949130B2 (en) | 2006-12-28 | 2011-05-24 | Intel Corporation | Architecture and instruction set for implementing advanced encryption standard (AES) |
US9209967B2 (en) | 2007-03-12 | 2015-12-08 | Exelis, Inc. | Precalculated encryption key |
US8538015B2 (en) | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
JP4939305B2 (ja) * | 2007-05-25 | 2012-05-23 | ルネサスエレクトロニクス株式会社 | 暗号/復号装置 |
EP1998488A1 (de) * | 2007-05-26 | 2008-12-03 | DSI Informationstechnik GmbH | Personalisierte AES Verschlüsselung |
US8085934B1 (en) * | 2007-07-11 | 2011-12-27 | Marvell International Ltd. | Reverse cryptographic key expansion |
US8787565B2 (en) * | 2007-08-20 | 2014-07-22 | Intel Corporation | Method and apparatus for generating an advanced encryption standard (AES) key schedule |
JP5197258B2 (ja) * | 2007-10-10 | 2013-05-15 | キヤノン株式会社 | 暗号処理回路 |
US8855299B2 (en) * | 2007-12-28 | 2014-10-07 | Intel Corporation | Executing an encryption instruction using stored round keys |
JP4990843B2 (ja) * | 2008-06-16 | 2012-08-01 | 日本電信電話株式会社 | 暗号演算装置、その方法、及びプログラム |
JP5319209B2 (ja) * | 2008-08-29 | 2013-10-16 | 株式会社東芝 | 暗号化で用いる鍵をスケジュールする装置、方法およびプログラム |
KR100949538B1 (ko) * | 2008-09-09 | 2010-03-25 | 한국전자통신연구원 | Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법 |
US9336160B2 (en) * | 2008-10-30 | 2016-05-10 | Qualcomm Incorporated | Low latency block cipher |
US20100125740A1 (en) * | 2008-11-19 | 2010-05-20 | Accenture Global Services Gmbh | System for securing multithreaded server applications |
US9237310B2 (en) | 2008-11-26 | 2016-01-12 | Thomson Licensing | Method and system digital for processing digital content according to a workflow |
US8565421B1 (en) | 2009-01-15 | 2013-10-22 | Marvell International Ltd. | Block cipher improvements |
CN101702709B (zh) * | 2009-11-05 | 2013-04-10 | 复旦大学 | 一种适用于mips处理器的aes加密单元 |
US8509424B2 (en) * | 2009-11-15 | 2013-08-13 | Ante Deng | Fast key-changing hardware apparatus for AES block cipher |
US9544133B2 (en) * | 2009-12-26 | 2017-01-10 | Intel Corporation | On-the-fly key generation for encryption and decryption |
US9141831B2 (en) | 2010-07-08 | 2015-09-22 | Texas Instruments Incorporated | Scheduler, security context cache, packet processor, and authentication, encryption modules |
CN101969374B (zh) * | 2010-10-27 | 2012-06-20 | 北京航空航天大学 | 分组密码算法中混淆层的实现方法 |
US9331848B1 (en) | 2011-04-29 | 2016-05-03 | Altera Corporation | Differential power analysis resistant encryption and decryption functions |
JP5755970B2 (ja) * | 2011-08-26 | 2015-07-29 | 株式会社東芝 | 演算装置 |
CN102624520B (zh) * | 2012-05-02 | 2014-10-29 | 西安电子科技大学 | 基于aes的192比特位密钥扩展系统及方法 |
DE102014216392A1 (de) * | 2014-08-19 | 2016-02-25 | Robert Bosch Gmbh | Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung |
EP3086503B1 (en) * | 2015-04-23 | 2018-06-06 | Inside Secure | Fault detection for systems implementing a block cipher |
JP2015173497A (ja) * | 2015-05-27 | 2015-10-01 | 株式会社東芝 | 電子機器 |
GB2551849B (en) * | 2016-06-28 | 2019-10-09 | Mips Tech Llc | AES hardware implementation |
US10911218B2 (en) | 2016-10-09 | 2021-02-02 | Lg Electronics Inc. | Lightweight block cipher |
CN106850214A (zh) * | 2017-03-13 | 2017-06-13 | 上海新储集成电路有限公司 | 一种并行加解密方法 |
CN108777611B (zh) * | 2018-05-11 | 2021-06-18 | 吉林大学 | 基于双密钥流密码的双向链表顺序加密解密方法 |
CN113938268B (zh) * | 2021-10-15 | 2023-07-28 | 湖南麒麟信安科技股份有限公司 | 分组密码算法的硬件控制系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP3851115B2 (ja) * | 2001-06-28 | 2006-11-29 | 富士通株式会社 | 暗号回路 |
GB0121793D0 (en) * | 2001-09-08 | 2001-10-31 | Amphion Semiconductor Ltd | An apparatus for generating encryption/decryption keys |
JP2005527853A (ja) * | 2002-05-23 | 2005-09-15 | アトメル・コーポレイション | 高度暗号化規格(aes)のハードウェア暗号法エンジン |
US20040047466A1 (en) * | 2002-09-06 | 2004-03-11 | Joel Feldman | Advanced encryption standard hardware accelerator and method |
US8520845B2 (en) * | 2007-06-08 | 2013-08-27 | Intel Corporation | Method and apparatus for expansion key generation for block ciphers |
-
2002
- 2002-06-25 GB GBGB0214620.7A patent/GB0214620D0/en not_active Ceased
-
2003
- 2003-06-12 AU AU2003239730A patent/AU2003239730A1/en not_active Abandoned
- 2003-06-12 US US10/519,586 patent/US20050213756A1/en not_active Abandoned
- 2003-06-12 CN CN03814926.5A patent/CN1663172A/zh active Pending
- 2003-06-12 JP JP2004515154A patent/JP2005531023A/ja not_active Withdrawn
- 2003-06-12 WO PCT/IB2003/002623 patent/WO2004002057A2/en active Application Filing
- 2003-06-12 EP EP03732919A patent/EP1518347A2/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100389553C (zh) * | 2006-07-31 | 2008-05-21 | 西安西电捷通无线网络通信有限公司 | 高效率实现sms4算法的加解密处理设备 |
CN104012030A (zh) * | 2011-12-21 | 2014-08-27 | 英特尔公司 | 用于保护对称加密密钥的系统及方法 |
CN104219043A (zh) * | 2014-07-25 | 2014-12-17 | 西华师范大学 | 一种可预置和重构的密钥装置及运行方法 |
CN104219043B (zh) * | 2014-07-25 | 2018-03-20 | 西华师范大学 | 一种可预置和重构的密钥装置及运行方法 |
WO2016045217A1 (zh) * | 2014-09-23 | 2016-03-31 | 深圳市汇顶科技股份有限公司 | 加密方法和加密装置 |
US10164771B2 (en) | 2014-09-23 | 2018-12-25 | Shenzhen GOODIX Technology Co., Ltd. | Encryption method and encryption device |
CN116126753A (zh) * | 2022-12-28 | 2023-05-16 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
CN116126753B (zh) * | 2022-12-28 | 2024-02-02 | 江苏都万电子科技有限公司 | 一种防护存储器及存储方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050213756A1 (en) | 2005-09-29 |
EP1518347A2 (en) | 2005-03-30 |
JP2005531023A (ja) | 2005-10-13 |
WO2004002057A3 (en) | 2004-05-21 |
AU2003239730A1 (en) | 2004-01-06 |
GB0214620D0 (en) | 2002-08-07 |
WO2004002057A2 (en) | 2003-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1663172A (zh) | 为aes rijndael分组密码产生轮次密钥 | |
US7639797B2 (en) | Apparatus and method of performing AES Rijndael algorithm | |
CN1656733A (zh) | 块密码实现方式中的s-box加密 | |
US7158638B2 (en) | Encryption circuit | |
EP2096786B1 (en) | Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation | |
CN1898896A (zh) | 高级加密标准算法的可编程数据加密引擎 | |
CN1672352A (zh) | 基于先进加密标准(aes)的硬件密码机 | |
CN1227859C (zh) | 同步数据流发生器、生成数据流的方法、加密器站、解密器站及消费电子装置 | |
EP2016524A2 (en) | Robust cipher design | |
CN1677921A (zh) | 通过可编程器件实现数据加密的方法 | |
CN1108040C (zh) | 解密方法及电子装置 | |
CN1258148C (zh) | 高安全等级对称密钥算法的加密、解密方法及加密器 | |
KR100949538B1 (ko) | Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법 | |
CN1133297C (zh) | 一种文件加密处理方法 | |
US20140369499A1 (en) | Cryptographic device, cryptographic processing method, and cryptographic processing program | |
JP2006529031A (ja) | Mixcolumn/invmixcolumn関数のハードウェア実装 | |
CN1180351C (zh) | 强化错乱的分组密码加密方法 | |
CN1835586A (zh) | 流密码生成器、随机数生成方法、加密系统及加密方法 | |
JP5113833B2 (ja) | 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置 | |
EP1629626B1 (en) | Method and apparatus for a low memory hardware implementation of the key expansion function | |
CN1833399A (zh) | 瑞恩多尔块密码装置及其加密/解密方法 | |
CN1549105A (zh) | 一种在智能卡中用串行硬件实现aes算法的方法 | |
CN1659512A (zh) | Aes混合列变换 | |
US9264229B1 (en) | System and method for generating random key stream cipher texts | |
Rady et al. | Design and implementation of area optimized AES algorithm on reconfigurable FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: NXP CO., LTD. Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V. Effective date: 20070907 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20070907 Address after: Holland Ian Deho Finn Applicant after: Koninkl Philips Electronics NV Address before: Holland Ian Deho Finn Applicant before: Koninklijke Philips Electronics N.V. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20050831 |