- 论坛徽章:
- 15
|
本帖最后由 yulihua49 于 2010-06-22 16:31 编辑
又一个只看到现象就瞎猜的。拜托多少动点脑子吧。或者问问google。
提示一下吧: 扔一颗石子 ...
shan_ghost 发表于 2010-06-22 15:16
我没说过半雪崩之类的话啊?!
我说的雪崩与你的意思没有区别。前边帖子是讨论了点破解问题,有点走题。但其中的算法,你把。。。。。干点别的。。。。。去掉,那就是雪崩流程啊,经过那个流程处理的信息就满足雪崩条件。
正好你给看看,这个程序是否满足雪崩条件:- void enigma_rev(ENIGMA ep,char *buf,int len)
- {
- int i;
- char *p;
- if(!buf||len<=0) return;
- frenz_encode(ep,buf,len);//把buf的信息加密,变化bit之后的内容已经乱掉
- b_revers(buf,len);//全文反序
- p=buf;//前半部已经乱掉
- for(i=0;i<len-1;i++) {//再乱一遍,全文乱掉
- p[1]^=*p;
- p++;
- }
- }
- void enigma2_encode(ENIGMA2 *ep,char *buf,int len)
- {
- char *p;
- if(!ep) return;
- enigma_rev(ep->t,buf,len); //调用加密程序,中间结果已经完全乱掉,并且是反序的。
- str_rotor(buf,len,ep->crc%len);//用密钥的crc旋转电文,把头藏起来。
- enigma1(ep->r,buf,len);// 再次加密
- }
复制代码 演示一下结果;
aaaaaaaaaaaaaaaa
frenz encode:3D 51 74 5A B3 0E B5 5A 8F DF 44 C6 62 0E 7A EC
enigma2 encode:7A 26 68 B9 87 29 25 CB 9C E3 40 AF 4D 54 B7 3E
aaaaaaacaaaaaaaa
frenz encode:3D 51 74 5A B3 0E B5 34 70 E8 36 8B 88 95 58 95
enigma2 encode:02 02 44 1B 3D 87 0C E6 53 BD 9D 85 F2 0D 4E 94
其中frenz是其一次加密的,enigma2是最后的。 |
|