密钥扩展方法和装置的制造方法_2

文档序号:8285003阅读:来源:国知局
η个第二分组对应的掩码作为预设非线性变换的输入值进行所述预设非线性变换。
[0026]例如,在图2中,将第一密钥的第4个第二分组Κ3'和所述第二分组Κ3'对应的掩码m3作为所述预设非线性变换的输入进行所述预设非线性变换。
[0027]在本发明的实施例中,所述非线性变换可以为S盒变换,也就是说,将所述第一密钥的第二分组Κ3'和所述第二分组Κ3'对应的掩码m3作为S盒的输入进行S盒变换。
[0028]步骤S103,将所述预设非线性变换的结果进行线性变换后的值、所述第一密钥的第I个第二分组和预设值进行异或后的值作为第二密钥的第I个第二分组。
[0029]例如,在图2中,将第一密钥的第二分组Κ3'和所述第二分组Κ3'对应的掩码m3作为所述预设非线性变换的输入进行所述预设非线性变换后的值进行所述预设线性变换。
[0030]将第一密钥的第二分组Κ3'和所述第二分组Κ3'对应的掩码m3作为所述预设非线性变换的输入,进行所述预设非线性变换,非线性变换后的结果进行所述预设线性变换后的值、第一密钥的第I个第二分组KO'、以及预设值Rcon进行异或运算后的值作为第二密钥的第I个第二分组Κ4'的值。
[0031]在本发明的实施例中,所述预设值Rcon可以是常数值,所述常数值可以根据密钥扩展轮数和加密解密状态等进行设置。
[0032]步骤S104,将所述第一密钥的第η个第二分组对应的掩码进行所述预设线性变化后的值和所述第一密钥的第I个第二分组对应的掩码进行异或后的值作为所述第二密钥的第I个第二分组对应的掩码。
[0033]例如,在图2中,将第一密钥的第4个第二分组Κ3'对应的掩码m3进行所述预设线性变换后的值、和所述第一密钥的第I个第二分组对应的掩码m0进行异或后的值作为所述第二密钥的第I个第二分组K4'对应的掩码m4的值。
[0034]步骤S105,将所述第二密钥的第j个第二分组和所述第一密钥的第j+Ι个第二分组进行异或后的值作为所述第二密钥的第j+Ι个第二分组的值。
[0035]例如,将所述第二密钥的第I个第二分组K4'和所述第一密钥的第2个第二分组Kl'进行异或后的值作为所述第二密钥的第2个第二分组K5'的值;将所述第二密钥的第2个第二分组K5'和所述第一密钥的第3个第二分组K2'进行异或后的值作为所述第二密钥的第3个第二分组K6'的值;将所述第二密钥的第3个第二分组K6'和所述第一密钥的第4个第二分组K3'进行异或后的值作为所述第二密钥的第4个第二分组K7'的值。
[0036]步骤S106,将所述第二密钥的第j个第二分组对应的掩码和所述第一密钥的第j+Ι个第二分组对应的掩码进行异或后的值作为所述第二密钥的第j+Ι个第二分组对应的掩码,I彡j < η。
[0037]例如,将所述第二密钥的第I个第二分组Κ4'对应的掩码m4和所述第一密钥的第2个第二分组Kl'对应的掩码ml进行异或后的值作为所述第二密钥的第2个第二分组K5,对应的掩码m5 ;将所述第二密钥的第2个第二分组K5'对应的掩码m5和所述第一密钥的第3个第二分组K2'对应的掩码m2进行异或后的值作为所述第二密钥的第3个第二分组K6'对应的掩码m6 ;将所述第二密钥的第3个第二分组K6'对应的掩码m6和所述第一密钥的第4个第二分组K3'对应的掩码m3进行异或后的值作为所述第二密钥的第4个第二分组K7'对应的掩码m7。
[0038]需要说明的是,通过上述步骤SlOl至S106将第一密钥扩展为第二密钥,在本发明的实施例中,所述密钥扩展方法还可以包括多轮密钥扩展,每一轮密钥扩展的方法和上述将第一密钥扩展为第二密钥的方法相似,且在相邻两轮密钥扩展之间,上一轮密钥扩展的输出值将作为下一轮密钥扩展的输入值。例如,还可以利用所述密钥扩展方法将所述第二密钥扩展为第三密钥,具体地,请参考图3,所述密钥扩展方法还可以包括步骤S107至
Slllo
[0039]下面将具体结合图4对步骤S107至Slll进行详细说明。
[0040]步骤S107,将所述第二密钥的第η个所述第二分组和所述第二密钥的第η个第二分组对应的掩码作为预设非线性变换的输入值进行所述预设非线性变换。
[0041]例如,在图4中,将第二密钥的第4个第二分组Κ7'和所述第二分组Κ7'对应的掩码m7作为所述预设非线性变换的输入进行所述预设非线性变换。在本发明的实施例中,所述非线性变换可以为S盒变换,也就是说,将所述第二密钥的第二分组K7'和所述第二分组K7'对应的掩码m7作为S盒的输入进行S盒变换。
[0042]步骤S108,将所述预设非线性变换的结果进行线性变换后的值、所述第二密钥的第I个第二分组和预设值进行异或后的值作为第三密钥的第I个第二分组。
[0043]例如,在图4中,将第二密钥的第二分组W和所述第二分组W对应的掩码m7作为所述预设非线性变换的输入进行所述预设非线性变换后的值进行所述预设线性变换。
[0044]将第一密钥的第二分组K7'和所述第二分组K7'对应的掩码m7作为所述预设非线性变换的输入进行所述预设非线性变换后的结果进行所述预设线性变换后的值、第二密钥的第I个第二分组K4'、以及预设值Rcon进行异或运算后的值作为第三密钥的第I个第二分组K8'的值。
[0045]在本发明的实施例中,所述预设值Rcon可以是常数值,所述常数值可以根据密钥扩展轮数和加密解密状态等进行设置。
[0046]步骤S109,将所述第二密钥的第η个第二分组对应的掩码进行所述线性变化后的值和所述第二密钥的第I个第二分组对应的掩码进行异或后的值作为所述第三密钥的第I个第二分组对应的掩码。
[0047]例如,在图4中,将第二密钥的第4个第二分组Κ7'对应的掩码m7进行所述预设线性变换后的值、和所述第二密钥的第I个第二分组对应的掩码m4进行异或后的值作为所述第三密钥的第I个第二分组K8'对应的掩码m8的值。
[0048]步骤S110,将所述第三密钥的第j个第二分组和所述第二密钥的第j+Ι个第二分组进行异或后的值作为所述第三密钥的第j+Ι个第二分组的值。
[0049]例如,在图4中,将所述第三密钥的第I个第二分组K8'和所述第二密钥的第2个第二分组K5'进行异或后的值作为所述第三密钥的第2个第二分组K9'的值;将所述第三密钥的第2个第二分组K9'和所述第二密钥的第3个第二分组K6'进行异或后的值作为所述第三密钥的第3个第二分组KlO'的值;将所述第三密钥的第3个第二分组KlO'和所述第二密钥的第4个第二分组K7'进行异或后的值作为所述第三密钥的第4个第二分组Kir的值。
[0050]步骤S111,将所述第三密钥的第j个第二分组对应的掩码和所述第二密钥的第j+Ι个第二分组对应的掩码进行异或后的值作为所述第三密钥的第j+Ι个第二分组对应的掩码,I彡j < η。
[0051]例如,在图4中,将所述第三密钥的第I个第二分组Κ8'对应的掩码m8和所述第二密钥的第2个第二分组K5'对应的掩码码进行异或后的值作为所述第三密钥的第2个第二分组K9'的掩码m9 ;将所述第三密钥的第2个第二分组K9'对应的掩码m9和所述第二密钥的第3个第二分组K6'对应的掩码m6进行异或后的值作为所述第三密钥的第3个第二分组K1(V对应的掩码mlO ;将所述第三密钥的第3个第二分组K1(V对应的掩码mlO和所述第二密钥的第4个第二分组K7'对应的掩码m7进行异或后的值作为所述第三密钥的第4个第二分组Κ1Γ对应的掩码mil。
[0052]需要说明的是,在本发明的上述实施例中,仅以第一分组和第二分组都为4个为例进行说明,在本发明的其他实施例中,所述第一分组和第二分组可以为可适用的任意个数。另外,在本发明的上述实施例中,仅以两轮密钥扩展为例进行说明。在本发明的其他实施例中,所述密钥扩展方法可以包括任意可适用轮数的上述密钥扩展运算。
[0053]本发明的实施例还提供了一种密钥扩展装置。请参考图5,所述密钥扩展装置200包括:第一处理单元201,用于将初始密钥的η个第一分组分别和η个随机数进行异或,以获得第一密钥的η个第二分组,其中,所述第一密钥的第k个第二分组对应的掩码为第k个所述随机数,l^k^n ;第二处理单元202,用
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1