首页
社区
课程
招聘
[求助]问个第六章IDEA算法的问题
发表于: 2010-10-16 16:50 3886

[求助]问个第六章IDEA算法的问题

2010-10-16 16:50
3886
很早就买加解三了,但第六章,加密算法我就从未看过,最近才开始看

看到IDEA算法那里的时候

1,子密钥生成

说到,拿一个128位的密钥分成8个16位的分组,当前8个子密钥

然后128位密钥循环左移25位,就是一个新的128位密钥,然后在重新分成8个16位分组

不断重复,直到生成52个子密钥

我谷歌了一下都没发现说这个子密钥生成要左移25位,当然可能是我没找到

还有我看代码

    
unsigned short S[54];      //前16字节放着从函数外传来的hash值,用来生成剩下的子密钥
                                    //注意数组每两字节是一单位
for( i=8; i<54; i++ )
{
		if( (i+2)%8 == 0 )
		{
			S[i] = 
				( (S[i-7]<<9) ^ (S[i-14]>>7) ) & 65535;
		}
			
		else if( (i+1)%8 == 0 )
		{
			S[i] =
				( (S[i-15]<<9) ^ (S[i-14]>>7) ) & 65535;
		}
			
		else
		{
			S[i] =
				( (S[i-7]<<9) ^ (S[i-6]>>7) ) & 65535;
		}
}


这段代码我看他也就是不断的循环,拿数组中的S[1],S[2]运算,在拿S[2],S[3]运算。。。

运算中也就是左移右移后,在异或

这是书上说的128位密钥循环左移25位吗,我怎么看都不是啊

我现在的问题就是:

这个子密钥的生成,是不是纯粹自己设计的,没有个标准?

或者说,如果是我搞错了,请指出

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//