作者:吴真 转载请与作者联系 2.3.3 第三步后向混合 把输入的128位的数据,循环左移32位后分成四块D[0],D[1],D[2],D[3] 其中D[0]作为源数据(Source),剩下的3个作为目标数据, 把D[0]循环左移24位后的结果返回给D[0] 把32位的源数据D[0]分成8位的四块b0,b1,b2,b3 b0和b2作为数组下标从S0中寻找s-box替换数:S0[b0],S0[b2] b1和b3作为数组下标从S1中寻找s-box替换数:S1[b1],S1[b3] 对FirstTarget的操作: 将FirstTarget减去S1[b1]后再按位异或S0[b0]的结果返回给FirstTarget 对SecondTarget的操作: SecondTarget减去S0[b2]的结果返回给SecondTarget 对ThirdTarget的操作: ThirdTarget按位异或S1[b3]的结果返回给ThirdTarget. 本步骤共进行8轮,在第3轮和第7轮的128位数据循环左移32位操作之后添加将Source减去FirstTarget的结果返回给Source的操作.在第4轮和第8轮128位数据循环左移32位操作之后添加将Source减去ThirdTarget的结果返回给Source的操作. 2.3.4 明文的输出 进行完上述的操作后,对生成的D[0],D[1],D[2],D[3]与对应的起始4个子密钥进行减法操作还原成明文. D[0] -= K[0]; D[1] -= K[1]; D[2] -= K[2]; D[3] -= K[3]; |
正在阅读:IBM的MARS加密算法实现(9)IBM的MARS加密算法实现(9)
2009-03-12 23:34
出处:PConline
责任编辑:zwg