Aes轮运算方法和电路的制作方法

文档序号:7816627阅读:490来源:国知局
Aes轮运算方法和电路的制作方法
【专利摘要】本发明AES轮运算方法和电路,利用数据掩蔽和不同S盒电路随机排列来防御功耗分析,在AES流程中,对只涉及位置交换或简单布尔运算的线性运算包括行移位、列混合和轮密钥加法,采用异或操作来进行掩蔽和恢复数据;对非线性运算的S盒,设计出不同电路结构的S盒,这些S盒运算时的功耗曲线各不相同,数据经过S盒时,通过随机选择数据通路上S盒的排列,从而使得AES中S盒运算的功耗随机化。有益效果如下:1)攻击者在数据通路上无法观测到加解密过程的真实数据,同时由于功耗随机化,统计分析密钥也变得非常困难;2)不改变AES的电路结构,算法简洁、容易实现;3)能够以较小的代价大幅度提高AES电路抵御功耗分析攻击的能力。
【专利说明】AES轮运算方法和电路

【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种AES轮运算方法和电路。

【背景技术】
[0002]高级加密标准(Advanced Encrypt1n Standard, AES),是美国国家标准技术研究所(Nat1nal Institute of Standard and Technologies,NIST)于2001 年 11 月发布的新的对称数据加密标准,具有密钥建立时间极短、灵敏性良好、抗攻击性强等特点。AES的区块长度固定为128比特,密钥长度则可以是128,192或256比特,是NIST旨在取代DES (DataEncrypt1n Standard)的21世纪的加密标准。
[0003]AES算法在POS机、智能卡、计算机网络、存储系统中被广泛应用,以此来实现关键数据的保密。AES算法设计时考虑了抵御数学上的攻击,但是新出现的旁路攻击(SideChannel Attack)成为必须考虑的因素。截至2006年为止,针对AES唯一的成功攻击是旁路攻击。
[0004]抗功耗攻击的AES设计有两种基本的方法:一种是采用特殊的电路结构和逻辑形式实现AES,如使用差分级联开关逻辑(DCVSL, Differential Cascade Voltage SwitchLogic),或者波动动态数字逻辑(WDDL, Wave Dynamic Digital Logic),并且在版图设计中采用差分布线技巧,以及随机开关逻辑(RSL, Random Switching Logic)等,异步电路设计也有良好的抗攻击性能,这种方法的不足是需要专门设计的版图库,其电路面积和额外的功耗都比较大。另一种方法的是采用掩蔽技术,将AES中加密解密的中间结果随机化,这种方法可以在智能卡上采用软件实现,也可以在电路上实现。在加密算法运算时,每一个中间值都与某个作为掩码的随机数进行变换,使得功耗信息不仅与密钥有关,而且与引入的随机数相关。这种方法实现起来简便易行,不依赖工艺。针对线性运算的部分掩蔽和恢复都比较容易,对非线性运算的S盒,这种掩蔽则非常困难。


【发明内容】

[0005]有鉴于此,有必要提供一种AES轮运算方法和电路。
[0006]本发明提供一种AES轮运算方法,该方法包括如下步骤:
[0007]S1:采用随机数X,对任一 128位的明文进行掩蔽;
[0008]S2:判断掩蔽后的数据是中间轮操作或末轮操作,并暂存所述数据,若判断是中间轮操作时,进行步骤S3a ;若判断是末轮操作时,则进行步骤S3b ;
[0009]S3a:对所述随机数X进行扩展运算E,得到E⑴;
[0010]S4:将所述E(X)、轮密钥及S2暂存的数据同时进行异或,得到进入第一 S盒阵列的值;
[0011]S5:对所述进入第一 S盒阵列的值,进行S盒运算,并将经过所述第一 S盒阵列运算后输出的数据,与所述随机数X进行异或;
[0012]S6:对所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据,进行行移位和列混合,并将得到的数据返回至步骤S2 ;
[0013]S3b:对步骤S2的数据进入第二 S盒阵列,进行S盒运算;
[0014]S7:将经过所述第二 S盒阵列运算后输出的数据,与所述随机数X进行异或;
[0015]S8:对所述第二 S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位,并对所述随机数X进行行移位,得到S(X);
[0016]S9:对末轮密钥、所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位得到的数据和所述S(X)进行异或,得到最终的密文,其中,所述第一及第二 S盒阵列,均由4个分别从N种不同电路结构的S盒中随机选择的S盒构成,N为不小于3的自然数。
[0017]其中,所述的步骤SI包括:
[0018]Sll:数据通路上的操作数A,经过线性运算,得到结果为K,K = f(A),其中f代表加解密过程的中间操作;
[0019]S12:采用所述随机数X通过异或来运算,产生新的操作数B,B = A ? X,其中?表示异或操作;
[0020]S13:用所述新的操作数B代替A进行加解密运算,得到结果为L,L = f(B)=f(A ? X);
[0021]S14:所述随机数X进行上述同样的操作,得到结果为M,M = f (X)。
[0022]其中,所述的步骤b包括:
[0023]bl.通过扩展运算E,将所述掩蔽后的数据由32位扩展为48位,并输出包括8个6位的块,每块包含4位对应的输入位,以及2个邻接的块中紧邻的位。
[0024]其中,所述轮密钥为利用密钥调度从主密钥生成的若干个128位的子密钥之一,所述每个子密钥用于I个回次处理。
[0025]其中,所述第一及第二 S盒阵列,包括LUT、SOP、PPRM和DSE结构的S盒。
[0026]其中,所述第一及第二 S盒阵列,均由4个分别通过随机选通器从N种不同电路结构的S盒中随机选择的S盒构成。
[0027]其中,所述的步骤S5包括:
[0028]S51:所述每一个S盒,使用以查找表方式提供的非线性变换,将所述进入S盒阵列的值中每个块的8个输入位转换成8个输出位。
[0029]本发明还提供一种AES轮运算电路,该轮运算电路包括掩蔽模块、数据选择模块、数据寄存模块、扩展运算模块、第一异或运算模块、第一 S盒阵列、第二异或运算模块、第一置换运算模块、第二 S盒阵列、第三异或运算模块,第二置换运算模块及第四异或运算模块,其中:
[0030]所述掩蔽模块用于采用随机数X,对任一 128位的明文进行掩蔽;
[0031]所述数据选择模块用于判断掩蔽后的数据是中间轮操作或末轮操作;
[0032]所述数据寄存模块用于暂存经所述数据选择模块判断的数据;
[0033]所述扩展运算模块用于对所述随机数X进行扩展运算E,得到E (X);
[0034]所述第一异或运算模块用于将所述E(X)、轮密钥及S2暂存的中间轮操作的数据同时进行异或,得到进入第一 S盒阵列的值;
[0035]所述第一 S盒阵列用于对所述进入第一 S盒阵列的值,进行S盒运算;
[0036]所述第二异或运算模块用于将将经过所述第一 S盒阵列运算后输出的数据,与所述随机数X进行异或;
[0037]所述第一置换运算模块用于对所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据,进行行移位和列混合,并将进行行移位和列混合后的数据返回至所述数据选择1吴块;
[0038]所述数据寄存模块还用于暂存的经所述数据选择模块判断的末轮操作的数据,上述数据进入所述第二 S盒阵列;
[0039]所述第二 S盒阵列用于运算经所述数据选择模块判断的末轮操作的数据并输出该数据;
[0040]所述第三异或运算模块用于将经过所述第二 S盒阵列运算后输出的数据,与所述随机数X进行异或;
[0041 ] 所述第二置换运算模块用于对所述第二 S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位,并对所述随机数X进行行移位,得到S(X);
[0042]所述第四异或运算模块用于对末轮密钥、所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位得到的数据和所述S(X)进行异或,得到最终的密文,其中,所述第一及第二 S盒阵列,均由4个分别从N种不同电路结构的S盒中随机选择的S盒构成,N为不小于3的自然数。
[0043]其中,所述的不同电路结构的S盒,包括SOP、PPRM和DSE结构的S盒。
[0044]本发明AES轮运算方法和电路,利用数据掩蔽和不同S盒电路随机排列来防御功耗分析,在AES流程中,对只涉及位置交换或简单布尔运算的线性运算包括行移位、列混合和轮密钥加法,采用异或操作来进行掩蔽和恢复数据;对非线性运算的S盒,设计出不同电路结构的S盒,这些S盒运算时的功耗曲线各不相同,数据经过S盒时,通过随机选择数据通路上S盒的排列,从而使得AES中S盒运算的功耗随机化。有益效果如下:1)攻击者在数据通路上无法观测到加解密过程的真实数据,同时由于功耗随机化,统计分析密钥也变得非常困难;2)不改变AES的电路结构,算法简洁、容易实现;3)能够以较小的代价大幅度提高AES电路抵御功耗分析攻击的能力。

【专利附图】

【附图说明】
[0045]图1为本发明AES轮运算方法的流程图,其中,图中的Θ符号代表异或(XOR)操作;
[0046]图2为采用随机数X,对任一 128位的明文进行掩蔽的步骤流程图;
[0047]图3为本发明AES轮运算电路的结构图;
[0048]图4为本发明AES的加密计算流程的流程图;
[0049]图5为本发明AES算法的末轮的数据轮运算示意图;
[0050]图6为本发明第一及第二 S盒运算结构图。

【具体实施方式】
[0051 ] 下面结合附图及具体实施例对本发明作进一步详细的说明。
[0052]本发明AES轮运算方法和电路,通过在AES流程中,对只涉及位置交换或简单布尔运算的线性运算,采用异或操作来进行掩蔽和恢复数据;对非线性运算的S盒,设计出不同电路结构、运算时功耗曲线各不相同的S盒,当数据经过S盒时,通过随机选择数据通路上S盒的排列,从而使得AES中S盒运算的功耗随机化。
[0053]如图1所示AES的加密计算AES轮运算方法,该方法包括如下步骤:
[0054]S1:采用随机数X,对任一 128位的明文进行掩蔽;
[0055]优选地,请参阅图2,为采用随机数X,对任一 128位的明文进行掩蔽的步骤流程图,包括下述步骤:
[0056]Sll:数据通路上的操作数A,经过线性运算,得到结果为K,K = f(A),其中f代表加解密过程的中间操作;
[0057]S12:采用所述随机数X通过异或来运算,产生新的操作数B,B = A ? X,其中?表示异或操作;
[0058]S13:用所述新的操作数B代替A进行加解密运算,得到结果为L,L = f(B)=f(A ? X);
[0059]S14:所述随机数X进行上述同样的操作,得到结果为M,M = f (X)。
[0060]可以理解,当f为线性操作时,可以与异或操作任意交换位置,这样掩蔽后数据B计算得到的结果L需要简单和随机数X的f运算结果M进行异或,即可恢复出正确结果K ;
[0061]L ? M = f (A ? X) ? f (X) = f (A ? X ? X) = f (A) =K
[0062]S2:判断掩蔽后的数据是中间轮操作或末轮操作,并暂存所述数据,若判断是中间轮操作时,进行步骤S3a ;若判断是末轮操作时,则进行步骤S3b ;
[0063]S3a:对所述随机数X进行扩展运算E,得到E⑴;
[0064]具体地,通过扩展运算E,将所述掩蔽后的数据由32位扩展为48位,并输出包括8个6位的块,每块包含4位对应的输入位,以及2个邻接的块中紧邻的位。
[0065]S4:将所述E(X)、轮密钥及S2暂存的数据同时进行异或,得到进入第一 S盒阵列的值;
[0066]优选地,所述轮密钥为利用密钥调度从主密钥生成的若干个128位的子密钥之一,所述每个子密钥用于I个回次处理。
[0067]S5:对所述进入第一 S盒阵列的值,进行S盒运算,并将经过所述第一 S盒阵列运算后输出的数据,与所述随机数X进行异或;
[0068]S6:对所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据,进行行移位和列混合,并将得到的数据返回至步骤S2 ;
[0069]S3b:对步骤S2的数据进入第二 S盒阵列,进行S盒运算;
[0070]优选地,所述第一及第二 S盒阵列,包括LUT(Look UP Table)、SOP (Sum OfProducts)、PPRM(Positive Polarity Reed-Muller) >DSE (Decoder-Switch-Encoder)结构的S盒。
[0071]优选地,所述每一个S盒,使用以查找表方式提供的非线性变换,将所述进入S盒阵列的值中每个块的8个输入位转换成8个输出位。
[0072]S7:将经过所述第二 S盒阵列运算后输出的数据,与所述随机数X进行异或;
[0073]S8:对所述第二 S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位,并对所述随机数X进行行移位,得到S (X);
[0074]S9:对末轮密钥、所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位得到的数据和所述S(X)进行异或,得到最终的密文。
[0075]可以理解,S盒运算是非线性运算,采用掩蔽过的数据进入第一及第二 S盒后,将无法简单的恢复到正确的运算结果,因此,本发明采用上述步骤Sll?步骤S14对任一 128位的明文进行掩蔽。掩蔽的数据进行字节替换操作前,通过异或,恢复其本来结果。数据穿过第一 S盒阵列后再进行掩蔽,继续用掩藏的数据进行后续运算。通过这样处理,整个AES运算流程可以简单的用异或操作的方式来进行掩藏和恢复。在字节替换部分采用不同电路结构的S盒,这些S盒输出结果一致,但是运算时的功耗曲线各不相同。数据经过S盒时,通过随机选择数据通路上S盒的排列,从而使得每次加密运算通过的S盒是随机选择的,统计上来看,字节替换操作的功耗即可呈现随机化形态。
[0076]请参阅图3,为本发明AES轮运算电路的结构图,包括掩蔽模块110、数据选择模块120、数据寄存模块130、扩展运算模块140、第一异或运算模块150、第一 S盒阵列160、第二异或运算模块170、第一置换运算模块180、第二 S盒阵列190、第三异或运算模块210,第二置换运算模块220及第四异或运算模块230,其中,
[0077]掩蔽模块110用于米用随机数X,对任一 128位的明文进行掩蔽;
[0078]优选地,掩蔽模块110对数据通路上的操作数A,经过线性运算,得到结果为K,K =f (A),其中f代表加解密过程的中间操作,再采用所述随机数X通过异或来运算,产生新的操作数B,B = A ? X,其中?表示异或操作,通过用所述新的操作数B代替A进行加解密运算,得到结果为L,L = f(B) = f(A ? X),所述随机数X进行上述同样的操作,得到结果为M, M = f (X) ο
[0079]可以理解,当f为线性操作时,可以与异或操作任意交换位置,这样掩蔽后数据B计算得到的结果L需要简单和随机数X的f运算结果M进行异或,即可恢复出正确结果K ;
[0080]L ? M = f (A ? X) ? f (X) = f (A ? X ? X) = f (A) =K
[0081]数据选择模块120用于判断掩蔽后的数据是中间轮操作或末轮操作。优选地,数据选择模块120为数据选择器可以用来选择数据是中间轮操作或末轮数据。可以理解,数据选择模块120还可以选择数据是否为中间轮操作。
[0082]数据寄存模块130用于暂存经所述数据选择模块判断的数据。优选地,数据寄存模块130为寄存器用来暂存经数据选择模块120选择的数据。
[0083]扩展运算模块140用于对所述随机数X进行扩展运算E,得到E (X),其中,E (X)用于消除随机数X的掩蔽。
[0084]第一异或运算模块150用于将所述E (X)、轮密钥及S2暂存的中间轮操作的数据同时进行异或,得到进入第一 S盒阵列的值;
[0085]所述第一 S盒阵列160用于对所述进入第一 S盒阵列的值,进行S盒运算;
[0086]所述第二异或运算模块170用于将将经过所述第一 S盒阵列160运算后输出的数据,与所述随机数X进行异或;
[0087]所述第一置换运算模块180用于对所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据,进行行移位和列混合,并将进行行移位和列混合后的数据返回至所述数据选择模块120 ;
[0088]所述数据寄存模块130还用于暂存的经所述数据选择模块120判断的末轮操作的数据,上述数据进入所述第二 S盒阵列190 ;
[0089]所述第二 S盒阵列190用于运算经所述数据选择模块120判断的末轮操作的数据并输出该数据;
[0090]所述第三异或运算模块210用于将经过所述第二 S盒阵列190运算后输出的数据,与所述随机数X进行异或;
[0091 ] 所述第二置换运算模块220用于对所述第二 S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位,并对所述随机数X进行行移位,得到S(X);
[0092]所述第四异或运算模块230用于对末轮密钥、所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位得到的数据和所述S(X)进行异或,得到最终的密文,其中,所述第一及第二 S盒阵列,均由4个分别从N种不同电路结构的S盒中随机选择的S盒构成,N为不小于3的自然数。
[0093]可以理解,第一及第二 S盒阵列可以合并为同一 S盒阵列。
[0094]具体地,请参阅图4为本发明提出的防御功耗攻击的AES轮运算结构图,数据通路位宽128位。中间轮运算时,明文和随机数X,一起进行异或运算。数据选择模块120用来选择数据是中间轮操作还是首轮操作。数据寄存模块130用来暂存数据,轮密钥加法移到S盒之前进行。E(X)用于消除随机数X的掩蔽,在中间轮的值为随机数X,在中间轮时为随机数X经过行移位和列混合的结果。数据经过改进的S盒阵列完成字节替换操作,在进行行移位和列混合之前,会与随机数X进行异或,来进行数据掩蔽。
[0095]请参阅图5,为末轮的数据轮运算示意图。数据经过改进的S盒阵列后,与随机数X异或,然后数据进行行移位操作。同时,X也进行移位操作,得到的结果为S(X)。最后,末轮密钥、经过行移位的数据和S(X)进行异或,得到最终的密文。
[0096]图6是以数据通路的前32比特(4个S盒)为例,说明可以防御功耗攻击的S盒阵列结构。S盒的实现方式可以有很多种,本发明选取了 LUT (Look UP Table)、SOP (Sum OfProducts)、PPRM(Positive Polarity Reed-Muller) >DSE (Decoder-Switch-Encoder)结构的S盒,不同的电路实现方式其跳转的功耗曲线不同。当数据进入改进的S盒时,根据随机数Y,由随机排序装置来选择这四个S盒的排列顺序。这四种S盒的计算结果完全相同,只是电路结构不同,产生的功耗也不相同。字节替换计算完成后,参与运算的S盒将把数据送出。其他三个32比特的数据通路均可以采用类似的电路结构,从而组成改进S盒阵列。
[0097]功耗攻击的时候需要随机输入大量明文,对某个S盒子功耗曲线进行观察。但是由于S盒运算在随机的实用4个不同结构的S盒电路在进行轮换的运算,使得功耗曲线无法区分,这样就可以有效对非线性单元S盒实施了功耗攻击防护。
[0098]本发明AES轮运算方法和电路,利用数据掩蔽和不同S盒电路随机排列来防御功耗分析,在AES流程中,对只涉及位置交换或简单布尔运算的线性运算包括行移位、列混合和轮密钥加法,采用异或操作来进行掩蔽和恢复数据;对非线性运算的S盒,设计出不同电路结构的S盒,这些S盒运算时的功耗曲线各不相同,数据经过S盒时,通过随机选择数据通路上S盒的排列,从而使得AES中S盒运算的功耗随机化。有益效果如下:1)攻击者在数据通路上无法观测到加解密过程的真实数据,同时由于功耗随机化,统计分析密钥也变得非常困难;2)不改变AES的电路结构,算法简洁、容易实现;3)能够以较小的代价大幅度提高AES电路抵御功耗分析攻击的能力。
[0099]虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。
【权利要求】
1.一种AES轮运算方法,其特征在于,该方法包括如下步骤: 51:采用随机数X,对任一 128位的明文进行掩蔽; 52:判断掩蔽后的数据是中间轮操作或末轮操作,并暂存所述数据,若判断是中间轮操作时,进行步骤S3a ;若判断是末轮操作时,则进行步骤S3b ; S3a:对所述随机数X进行扩展运算E,得到E (X); 54:将所述E(X)、轮密钥及S2暂存的数据同时进行异或,得到进入第一 S盒阵列的值; 55:对所述进入第一 S盒阵列的值,进行S盒运算,并将经过所述第一 S盒阵列运算后输出的数据,与所述随机数X进行异或; 56:对所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据,进行行移位和列混合,并将得到的数据返回至步骤S2 ; S3b:对步骤S2的数据进入第二 S盒阵列,进行S盒运算; 57:将经过所述第二 S盒阵列运算后输出的数据,与所述随机数X进行异或; 58:对所述第二 S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位,并对所述随机数X进行行移位,得到S (X); S9:对末轮密钥、所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位得到的数据和所述S (X)进行异或,得到最终的密文,其中,所述第一及第二 S盒阵列,均由4个分别从N种不同电路结构的S盒中随机选择的S盒构成,N为不小于3的自然数。
2.如权利要求1所述的方法,其特征在于,所述的步骤SI包括: 511:数据通路上的操作数A,经过线性运算,得到结果为K,K = f (A),其中f代表加解密过程的中间操作; 512:采用所述随机数X通过异或来运算,产生新的操作数8,8 =々?乂,其中?表示异或操作; 513:用所述新的操作数B代替A进行加解密运算,得到结果为L,L = f(B)=f(A ? X); 514:所述随机数X进行上述同样的操作,得到结果为M,M = f (X)。
3.如权利要求1所述的方法,其特征在于,所述轮密钥为利用密钥调度从主密钥生成的若干个128位的子密钥之一,所述每个子密钥用于I个回次处理。
4.如权利要求1所述的方法所述的方法,其特征在于,所述第一及第二S盒阵列,包括LUT、SOP、PPRM 和 DSE 结构的 S 盒。
5.如权利要求4所述的方法,其特征在于,所述第一及第二S盒阵列,均由4个分别通过随机选通器从N种不同电路结构的S盒中随机选择的S盒构成。
6.如权利要求1所述的方法,其特征在于,所述的步骤S5包括: S51:所述每一个S盒,使用以查找表方式提供的非线性变换,将所述进入S盒阵列的值中每个块的8个输入位转换成8个输出位。
7.—种AES轮运算电路,其特征在于,该轮运算电路包括掩蔽模块、数据选择模块、数据寄存模块、扩展运算模块、第一异或运算模块、第一 S盒阵列、第二异或运算模块、第一置换运算模块、第二 S盒阵列、第三异或运算模块,第二置换运算模块及第四异或运算模块,其中: 所述掩蔽模块用于采用随机数X,对任一 128位的明文进行掩蔽; 所述数据选择模块用于判断掩蔽后的数据是中间轮操作或末轮操作; 所述数据寄存模块用于暂存经所述数据选择模块判断的数据; 所述扩展运算模块用于对所述随机数X进行扩展运算E,得到E (X); 所述第一异或运算模块用于将所述E(X)、轮密钥及S2暂存的中间轮操作的数据同时进行异或,得到进入第一 S盒阵列的值; 所述第一 S盒阵列用于对所述进入第一 S盒阵列的值,进行S盒运算; 所述第二异或运算模块用于将将经过所述第一 S盒阵列运算后输出的数据,与所述随机数X进行异或; 所述第一置换运算模块用于对所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据,进行行移位和列混合,并将进行行移位和列混合后的数据返回至所述数据选择丰吴块; 所述数据寄存模块还用于暂存的经所述数据选择模块判断的末轮操作的数据,上述数据进入所述第二 S盒阵列; 所述第二 S盒阵列用于运算经所述数据选择模块判断的末轮操作的数据并输出该数据; 所述第三异或运算模块用于将经过所述第二S盒阵列运算后输出的数据,与所述随机数X进行异或; 所述第二置换运算模块用于对所述第二 S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位,并对所述随机数X进行行移位,得到S(X); 所述第四异或运算模块用于对末轮密钥、所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位得到的数据和所述S(X)进行异或,得到最终的密文,其中,所述第一及第二 S盒阵列,均由4个分别从N种不同电路结构的S盒中随机选择的S盒构成,N为不小于3的自然数。
8.如权利要求7所述的电路,其特征在于,所述第一及第二 S盒阵列,包括LUT、SOP、PPRM和DSE结构的S盒。
【文档编号】H04L9/06GK104301096SQ201410537860
【公开日】2015年1月21日 申请日期:2014年10月13日 优先权日:2014年10月13日
【发明者】陈毅成, 张明宇, 吴水源 申请人:深圳中科讯联科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1