打印
[菜农群课笔记]

菜农群课笔记之加密的革命道理

[复制链接]
2154|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 xyz549040622 于 2011-12-5 09:23 编辑

欢迎菜农大叔重新回到菜农新唐M0技术交流再次进行革命教育!!!这是12.04上午的革命教育,由于时间关系,下午的明天上传!再次感谢菜农大叔,珍惜来之不易的学习机会!

首先打开网页http://www.hotpage.net.cn/HotPower_HotAjax.html,经网友确认,不支持火狐浏览器,IE9(需安装插件,待求证,浏览器必须是基于IE的核360浏览器和IE8可以打开。

打开后出现下图


初始配置:选择最大的crc64_ecma选择文本(因为人名是有汉字的),把可逆的钩去掉,权值选默认的。


例如,明文选项输入地球三个字,将会出现下图





结果为:543EAF52207E1623即为网友“地球人”申请到助学板的确认码。即使告诉你权值你也反不出来,因为你不知道543EAF52207E1623对应的就是地球人。比如,我们点击还原,结果出现下图



明文变成了“聏腤”这是怎么回事?

这就是传说中的单向散列函数,因为名字长短不一,可以任意长,而结果确是固定长度的。下面补充一下散列函数的知识。Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。】知道散列函数的定义后,通过散列值还原出“聏腤 ”也就不奇怪了。

如果想要**,至少要知道原文的长度,而且要知道原文,还要知道“权”,“初值”,“出值"和”方向“,这四个就是”CRC密钥“,这就是菜农发明的CRC对称密码安全体系。【具体介绍见菜农的新浪博客 http://blog.sina.com.cn/s/blog_5f17741f0100gftb.html

现在再说说安全认证,假如网友“地球人”,假设他的密码是250,即原文=地球人250,运算后得到下图



结果为:
E93D34D240D2AAD1.现在明文为姓名+密码生成散列值,这样我们就可以认为,地球人250就等效为E93D34D240D2AAD1,即地球人250的别名(数字签名)为E93D34D240D2AAD1。但是任何单向散列函数都会发生碰撞的问题,即别人也可以有此数字签名【不同的输入可能会散列成相同的输出】,为了减少碰撞的发生,我们取:姓名+散列值为数字签名最终的结果,这样就会几乎没有碰撞了。

例如论坛的注册问题 ,假若地球人在二姨那里注册,这样论坛只留有姓名+散列值,但不知道其密码!!故管理员也无法进入,因为很难找到结果:E93D34D240D2AAD1,因为不可逆,故管理员也要用地球人“+xxx穷举出E93D34D240D2AAD1,所以,这种机制是非常可靠的。这就是菜农的“HotWC3单向散列函数的精华所在。

然后我们再看看这套加密体系在微群和微博的应用。打开链接http://t.cn/SbnQVa出现下列网站,如下图
打开前
            

打开后
            

可以看出,http://t.cn/SbnQVa而实际对应的是https://bbs.21ic.com/icview-291819-1-1.html后者的长度远远地超过了前者。再看菜农的微博链接



其链接全部是6个字符!!这六个字符是什么东西呢???他们都是固定长度的。。。我们继续用实验验证。



选择功能为UucodeSbnQVa填写到密文,文本前面的钩去掉,点击求逆,结果如下



结果明文为
CC33B1DC10,这就变成可逆的了,这就是SbnQVa的散列值了,以此类推,故我们可以认为新浪和腾讯是用的32位的散列值,可是,为什么要这么做呢,因为散列值是!!!

腾讯和新浪这样最重要的是加快搜索速度,节约搜索空间,这是哈希函数的应用之一。





菜农群课笔记之加密的革命道理.rar

482.59 KB

相关帖子

沙发
hotpower| | 2011-12-4 22:53 | 只看该作者
用code方式贴出了。
也附压缩包。

因为一般人不会解压缩的。
换位思考一下。

你会解压看吗???手机能看否???

使用特权

评论回复
板凳
hotpower| | 2011-12-5 11:19 | 只看该作者
好像没贴完呀,俺下午还讲了《hotwc3的三方安全应用》

使用特权

评论回复
地板
xyz549040622|  楼主 | 2011-12-5 14:03 | 只看该作者
大叔下午的精神还在理解中,等我稍微明白点就上传,今晚之前搞定

使用特权

评论回复
5
xyz549040622|  楼主 | 2011-12-5 17:11 | 只看该作者
继续《HotWC3在三方安全认证的应用》。

用户持有:姓名+密码;管理员持有:姓名+散列值;机器持有:算法,MD5是公开了,故实际为两方,那么HotWC3为何能为三方呢???


菜农称它们为“CRC密钥”, 假若选择“可逆”,则为“HotWC3”密码。否则为“HotWC3”单向散列函数,如MD5等。他们的最大的区别就是可逆否。上午说的例子,论坛注册,银行取款,微博链接,这三个应用实际都是一样的。即用户-->姓名+密码,管理员--->姓名+散列值。为何要如此呢???


可以看出,他们都知道姓名,例如论坛知道菜农的网名,但不知道菜农的密码,菜农不知道散列值,因为菜农不知道算法。再如银行,用户只知道密码和卡号,银行的数据库管理员知道姓名和散列值,但不知道密码。【算法实际可能由某个加密专用芯片组成,就是计算结果。】再微博的应用,用户都是一样:姓名+密码,由于链接可能很长,而且是字符型的,那么搜索即比较就很慢,而计算机如32位机运算32位数据,和32个字节是不同的,即数和字符的区别。假若新浪的所有链接都可以生成32位无碰撞的散列值,那么搜索将是瞬间,所以结果即散列值都是一个固定长度的“数”而非字符。故微博持有散列值+姓名,这样就可以在数据库中找到唯一的链接。


现在说说三方,一个真的三方很难找出算法,但是我们搞MCU的需要,为何?例如银行,用户,管理员(数据库),提款机(机器),后两者可以勾结,用户持有卡号和密码,数据库内有卡号(姓名)和散列值,机器有算法。我们无法阻止银行职员偷看数据库,例如银行数据库维护人员,所以要三方安全认证,这样客户的资料才能安全。这个取钱的流程是:提款机根据用户操作后用机器内部的算法得到散列值,让后它联网找数据库比对,数据库回送散列值和姓名(卡号),这样才发出出钱命令。所以提款机最关键,它实际是内嵌了不公开算法的,实际就是密钥。由于是不可逆的,故即使告诉你全部你也得不到散列值,而且密码三次将会锁定。注意这个过程不是密码学的加密和解密,而是数字认证的过程。但是这个操作是由键盘完成的【除非机器上传(黑客的键盘钩子)和木马】。所以,最关键的就是用户持有的密码!!!


下面再以实际验证!打开HotPower互联卫士



配置如下:选择“文本”“大端”“可逆”, 密文:BC521B782274B363DADC46D3F677E5D6F5F354F9B73FDD5A065FE5184B12121F
结果:F9A01AE7B4EDEDE0
碰撞50位
点击还原,神奇的事情出现了



明文为:恭喜9G是第三届的250!!!那个50就是明文的长度,假如你不知道肯定不对。假设长度设置为30,得到的结果如下


明文为:恭喜9G是?硢,与实际相差很大,所以一定要知道长度。下面再看一个例子,恭喜9G是第三届的250!!!先正运算,得到结果如下


然后再点击还原,结果如下


明文为:6?WF?{w&H,这就是不可逆的安全,所以最关键的就是用户密码。因为这个密码是由用户提款的瞬间输入的,故银行和提款机都不会保留此密码,这样银行内部盗窃也就无法进行了。单向散列函数正向容易反向难,正向是通过机器,绝了人为干预,例如银行职员,再说des,aes等密码,这些都是可以**的,军事和外交密码绝不会采用这样的分组密码。分组密码意味着密码是有长度的,不论明文有多长,密码长度是固定的,但是流密码确不同,只要是随机数,那么理论上无法**,如一次一密,真的随机是不可能的,故一般都是伪随机。世上几乎没真随机,假若密码长度无穷时,总会出现周期,这些都是伪随机。


这个“大辫子”就是想产生随机数。所谓**是针对于密码,而单向散列函数就不存在什么**问题,只有碰撞问题。下面就看看HotWC3是如何碰撞的。

何为“碰撞”??? 碰撞乃伪造也。那些密界高人都是用穷举【穷举法,或称为暴力**法,是一种针对于密码破译方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以**任何一种密码,问题只在于如何缩短试误时间。因此有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。】如同算号器,注册机在园地里冠名“和谐”, 我们用CRC做数据的验证即校验。

我们选美信的CRC8,就是我们助学板的 DS18B20。注意一个“定义”, 结果即校验和是最后两个密文。那么密文串只要保留最后两个密文,就可以伪造出校验和。

配置:明文为2502502500
密文1C82EBD568
点击运算结果为:68





然后改密文为0000000068,保留最后一组(CRC8就是一个字节两个hex码),点击还原,明文为00000000D5,然后清除,输入明文为00000000D5,点击运算,结果为68





伪造即碰撞成功。也就是说2502502500和00000000D5都可以得到相同的结果即散列值。即CRC校验和。可以看到有4个字节的伪造空间,即2^32个碰撞!!!密文为0000000068和1C82EBD568,那么可以看出:0000000068和xxxxxxxxx68,就有 2^32个。再试验,明文:3FC0C0C02A,密文:FFFFFFFF68,结果68


故只需操作两次,还原一次,一次运算(实际是验证),即可搞定。对于算法,可逆就是密码,不可逆就是散列。【上课结束】

道可道
2011.12.04

使用特权

评论回复
6
hotpower| | 2011-12-6 04:11 | 只看该作者
发放裤子,晚上8:25群课。可俺还没迷糊

使用特权

评论回复
7
564451696| | 2011-12-6 08:15 | 只看该作者
大叔,晚上讲什么?我用手机学习。。。

使用特权

评论回复
8
hello某人| | 2011-12-7 16:17 | 只看该作者
我一直以为菜农的所谓确认码是菜农自己随便输的,因为所有的字母都是左手输入,也就是说都是键盘上左边的字母,没见过HJKL等用右手输入的。
没想到还真是算出来的,我试着输入了不同的内容。没见过密文中出现过右手输入 的字母,不明白怎么回事。

使用特权

评论回复
9
xyz549040622|  楼主 | 2011-12-7 16:28 | 只看该作者
这是个问题,求教菜农,而且做验证的时候为什么250250250不成功,要2502502500才可以

使用特权

评论回复
10
recherclj| | 2011-12-7 21:59 | 只看该作者
看的晕乎晕乎的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2810

主题

19297

帖子

104

粉丝