免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
打印 上一主题 下一主题

达人请进,请问这个简单加密办法,被猜出的可能性如何? [复制链接]

论坛徽章:
0
71 [报告]
发表于 2010-06-20 03:43 |只看该作者
明文 异或 密文 = 密钥

论坛徽章:
0
72 [报告]
发表于 2010-06-21 15:51 |只看该作者

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
73 [报告]
发表于 2010-06-22 14:38 |只看该作者
或者帮推荐一个其他的简单加密办法呢?要非单向的,不需要除法运算的。
多谢~
群雄逐鹿中原 发表于 2010-06-11 15:01



   你这个程序内存会溢出。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
74 [报告]
发表于 2010-06-22 14:42 |只看该作者
本帖最后由 yulihua49 于 2010-06-22 14:44 编辑
以前我在CSDN上和那些小孩玩过。他们很得意的弄个字符串,弄个加密结果。一看加密前后的差异,我直接就能猜 ...
shan_ghost 发表于 2010-06-11 17:00



    雪崩效应不需要高深的数学。
RSA还是比较高深,但是太慢了。
简单的雪崩,这个帖子前几页有。

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
75 [报告]
发表于 2010-06-22 15:16 |只看该作者
雪崩效应不需要高深的数学。
RSA还是比较高深,但是太慢了。
简单的雪崩,这个帖子前几页有。
yulihua49 发表于 2010-06-22 14:42



    又一个只看到现象就瞎猜的。拜托多少动点脑子吧。或者问问google。


提示一下吧: 扔一颗石子就可能导致一场大雪崩,席卷百万吨的冻雪下来。这是典型的初始条件的轻微扰动,便导致结果完全不同,也就是所谓的“混沌”;满足这个条件的,才有资格叫“雪崩”。


何谓密码学所谓的“雪崩”效应?
1、初始条件敏感,1bit的扰动就要彻底改变结果
2、无法由结果推出原因——就好像你不可能仅凭着几万亩被雪冲垮的森林,就推断出这场雪崩是因为一颗石子还是某个登山队员的一声咳嗽一样。


所以所谓半雪崩、部分雪崩之类说法,统统都是无知的屁话。



另,软件破解(crack)和密码学之间没有半点关系。前者是玩弄调试器的技巧,后者是一整套的数学理论。也就是在中国,老有人一说起加解密就能扯到软件破解。

不好意思,虽然有些冒犯,但我还是得说:哥德巴赫猜想和打桥牌之间,鸟毛关系都没有。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
76 [报告]
发表于 2010-06-22 16:11 |只看该作者
本帖最后由 yulihua49 于 2010-06-22 16:31 编辑
又一个只看到现象就瞎猜的。拜托多少动点脑子吧。或者问问google。


提示一下吧: 扔一颗石子 ...
shan_ghost 发表于 2010-06-22 15:16



    我没说过半雪崩之类的话啊?!
我说的雪崩与你的意思没有区别。前边帖子是讨论了点破解问题,有点走题。但其中的算法,你把。。。。。干点别的。。。。。去掉,那就是雪崩流程啊,经过那个流程处理的信息就满足雪崩条件。
正好你给看看,这个程序是否满足雪崩条件:
  1. void enigma_rev(ENIGMA ep,char *buf,int len)
  2. {
  3. int i;
  4. char *p;
  5.         if(!buf||len<=0) return;
  6.         frenz_encode(ep,buf,len);//把buf的信息加密,变化bit之后的内容已经乱掉
  7.         b_revers(buf,len);//全文反序
  8.         p=buf;//前半部已经乱掉
  9.         for(i=0;i<len-1;i++) {//再乱一遍,全文乱掉
  10.                 p[1]^=*p;
  11.                 p++;
  12.         }
  13. }
  14. void enigma2_encode(ENIGMA2 *ep,char *buf,int len)
  15. {
  16. char *p;
  17.         if(!ep) return;
  18.         enigma_rev(ep->t,buf,len); //调用加密程序,中间结果已经完全乱掉,并且是反序的。
  19.         str_rotor(buf,len,ep->crc%len);//用密钥的crc旋转电文,把头藏起来。
  20.         enigma1(ep->r,buf,len);// 再次加密
  21. }


复制代码
演示一下结果;
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是最后的。

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
77 [报告]
发表于 2010-06-22 16:19 |只看该作者
回复 76# yulihua49


   
2、无法由结果推出原因——就好像你不可能仅凭着几万亩被雪冲垮的森林,就推断出这场雪崩是因为一颗石子还是某个登山队员的一声咳嗽一样。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
78 [报告]
发表于 2010-06-22 16:33 |只看该作者
本帖最后由 yulihua49 于 2010-06-22 16:52 编辑
回复  yulihua49
shan_ghost 发表于 2010-06-22 16:19



    完全同意你的观点,请分析楼上,有什么漏洞?
我的意思是,雪崩不需要太复杂的算法。哦,单纯的散列是满复杂的,MD5和SHA1都被反推了,王小云干的。
两端加密恐怕不太好解。

先加密,再扰乱,再加密。作为加密算法的一部分,是必须要反解的,要么怎么解密呢?

这个扰乱,是为了对付差分分析。你不可能从1bit之差的选择明文中推断出密钥。

原始的ENIGMA(德军用的那种),如果明文差1bit,密文只改变1个字节,现代的enigma,你已经完全不认识它了。

原始的ENIGMA,每加密一个字节,转轮旋转1步,frenz是每次旋转步数由明文和转轮决定,不一定怎么转,两个明文自差别比特之后转法就完全不一样了。其后的字节面目全非。

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
79 [报告]
发表于 2010-06-22 16:56 |只看该作者
本帖最后由 shan_ghost 于 2010-06-22 17:17 编辑

王小云对MD5做的攻击,在某种程度上就是证明了这个算法并不满足真正的“雪崩”要求。



如果能证明MD5明文某个bit上的扰动对结果的影响是可以预估的,是可以找到规律的。就说明它违反了条款1:初始条件敏感,1bit的扰动就要彻底改变结果。


如果能证明MD5得到的摘要值(密文)可以通过凑明文凑出来,就说明它违反了条款2:无法由结果推出原因。

如果找到了凑明文的普遍规律,就好像找到了加密函数的反函数一样,这个算法就被彻底攻破了。



王小云的攻击并没有彻底做到如上两点。她只是证明MD5算法内部的碰撞很容易找到而已——也就是说,她并不能找到任意明文的碰撞,也不能为任意的密文凑出明文;但她可以找到很多散列后MD5值相同的字符串:对于加密算法,这种攻击可能还不够,就好像虽然单刀冲到了球门口、还没起脚射门一样;但对于摘要算法,这个攻击已经足以置之于死地。



另,科普一个常识: 现有各种加密算法几乎都是块加密算法。
所谓块加密算法,指的就是按64、128甚至1024、2048位为单位分块,然后对每块单独加密。

换言之,如果你用1024位RSA加密一个1M的文本文件,那么你其实只是用同一个密码、同一个算法分别加密了8K个彼此毫无关系的信息段罢了(补充:这些算法可能会保留某种内部状态,以避免同一个密码同一个算法反复加密同一个数据的问题。但这个状态的设计也是必须谨慎的,稍有不慎就会变成突破口)。



所以,所谓“3DES的安全度也是有漏洞的,明文改变1bit,密文只是其后的分组改变了,前半截没变。”,根本就是外行的屁话。


——千万别自作聪明,搞出类似密码异或1加密第一块,密码异或N加密第N块的飞机。

这的确可以在表面上弥补3DES的所谓“漏洞”。但实际上,其实这就叫外行自作聪明。

攻击者看到你的算法,很可能就能从你密码上的这种规律性上找到突破口。

当年德国的紫密,就是因为类似的愚蠢规定(规定在明文最前重复两次密码以便校验)而大大便利了盟军的破解工作。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
80 [报告]
发表于 2010-06-22 17:10 |只看该作者
本帖最后由 yulihua49 于 2010-06-22 17:41 编辑
王小云对MD5做的攻击,在某种程度上就是证明了这个算法并不满足真正的“雪崩”要求。



如果能证明MD5 ...
shan_ghost 发表于 2010-06-22 16:56


原则上同意你的意见。不过建议说话注意方式,维护讨论氛围。
enigma是完全不同于分组密钥的,它应该属于序列密钥体制。分组密钥是乱一个分组,序列密钥是乱整个序列。
分组密钥的长度是分组的长度。序列密钥没有长度限制。ENIGMA也不是完全的序列密钥,它是由转轮加密的,现在用的是一个密码轮,一个反射轮。这也不同于历史。历史上只用3个密码轮,来回倒换而已,没有多少排列组合。现代的根据密钥制造转轮,加密轮有256!种,反射轮有255×253×251×××××3那么多种,比128,256的DES密钥多得多了。密钥单向散列制造转轮,密钥本身没有长度限制。从转轮反推密钥或从密文和明文反推转轮都是NP问题。ENIGMA的算法是公开的,漫天漫地都是,每人都可以写出不同的变种,我的也可以公开,还可以提供代码分析。

那个3DES,我用的ssl里的DES_ede3_cbcm_encrypt();

相差1比特的明文,密文就是改变了一半。
FF 53 3D 09 B6 56 79 AF E0 E1 30 CE 4A 77 BA 69 CF 77 F8 0C 18 ED EB 26 22 0F 96 87 13 C5 BE A8

decode=41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 43 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41

你可能没看明白我的意思,3DES只改变从变化比特之后的分组。
目前是8字节一个分组。

FF 53 3D 09 B6 56 79 AF E0 E1 30 CE 4A 77 BA 69 FE E2 F1 3B 9C 02 95 B3 44 1A B0 47 B3 0B 90 B1

decode=41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP