-
-
[求助]问个第六章IDEA算法的问题
-
发表于: 2010-10-16 16:50 3923
-
很早就买加解三了,但第六章,加密算法我就从未看过,最近才开始看
看到IDEA算法那里的时候
1,子密钥生成
说到,拿一个128位的密钥分成8个16位的分组,当前8个子密钥
然后128位密钥循环左移25位,就是一个新的128位密钥,然后在重新分成8个16位分组
不断重复,直到生成52个子密钥
我谷歌了一下都没发现说这个子密钥生成要左移25位,当然可能是我没找到
还有我看代码
这段代码我看他也就是不断的循环,拿数组中的S[1],S[2]运算,在拿S[2],S[3]运算。。。
运算中也就是左移右移后,在异或
这是书上说的128位密钥循环左移25位吗,我怎么看都不是啊
我现在的问题就是:
这个子密钥的生成,是不是纯粹自己设计的,没有个标准?
或者说,如果是我搞错了,请指出
看到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位吗,我怎么看都不是啊
我现在的问题就是:
这个子密钥的生成,是不是纯粹自己设计的,没有个标准?
或者说,如果是我搞错了,请指出
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [求助]IDA70分析过程假死怎么回事? 2847
- [求助]安卓现在有类似X86这样的指令手册么,chm的 4487
- [原创]第一阶段第二题 17234
- [原创]第一阶段第一题 3752
看原图
赞赏
雪币:
留言: