首页
社区
课程
招聘
[推荐]HotWC3网上运算器CRC碰撞操作方法
发表于: 2009-11-3 21:05 7035

[推荐]HotWC3网上运算器CRC碰撞操作方法

2009-11-3 21:05
7035
收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 164
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
菜农应该让自己的作品放到更大的环境中去检验检验,看雪的密码学板块刚起步,只有少数大牛和版主能和你讨论。记得看你的某帖子中说:王育明教授邀请你去某某论坛的,你完全应该去。
2009-11-3 23:00
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不是到什么论坛~~~

他曾说过他年轻在位一定把我调到他们学校,俺说还是“农村”好~~~
那时候,“农村是个广阔的天地”,俺真没想过去学校。

我对他说:现在有房子,有“地”,俺不图什么,只要开心就好~~~

每次升级我都先发给王教授先用~~~

谢谢2楼的先生~~~

菜农自言自语惯了~~~俺涉及的领域还少有人和菜农谈的来的,可能是俺的思维和表达能力有限。
所以俺孤独惯了~~~

→欢迎访问“电子工程师的收藏夹”!!!
2009-11-3 23:23
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
http://bbs.pediy.com/showthread.php?t=99977


像 '1234' 的 CRC32 为 9BE3E0A3
我试过 长度=4 的明文 只有 '1234'

菜农回答:此话是对的,它即为"CRC签名"

但长度=5的明文有256个, 例如下列几个明文 (十六进制), 其CRC32都是 9BE3E0A3:
20 74 FD 5F DD
21 E2 CD 58 AA
22 58 9C 51 33
23 CE AC 56 44
24 6D 39 32 DA
25 FB 09 35 AD
26 41 58 3C 34
27 D7 68 3B 43
28 46 75 84 D3
29 D0 45 83 A4
2A 6A 14 8A 3D
2B FC 24 8D 4A

长度=16 的明文只有下列一组附合 CRC32=9BE3E0A3
00 00 00 00 00 00 00 01 CE DD 16 26

菜农注解:此话天大的错误!!!
00 00 00 00 00 00 00 01 CE DD 16 26实际长度为12,因为它大于4个字节,故有2^(12-4)次碰撞!!!

输入:0000000000000001CEDD1626
输出:DEBB20E3EDDA1000641C1F5C 结果:9BE3E0A3
攻击位XXXXXXXXXXXXXXXX641C1F5C
菜农开始攻击!

输入:FFFFFFFF00000000CECDCCCB
输出:0000000000000000641C1F5C 结果:9BE3E0A3

输入:E075C51A0E9B2BF4DFDCDDDA
输出:1111111111111111641C1F5C 结果:9BE3E0A3

输入:9D0AD96D9D0AD96D31323334
输出:FFFFFFFFFFFFFFFF641C1F5C 结果:9BE3E0A3

现在再选择16位攻击(2^(16-4)次碰撞):
输入:FFFFFFFF0000000000000000CECDCCCB
输出:000000000000000000000000641C1F5C 结果:9BE3E0A3

输入:9D0AD96D9D0AD96D9D0AD96D31323334
输出:FFFFFFFFFFFFFFFFFFFFFFFF641C1F5C 结果:9BE3E0A3

哈哈~~~现在看出来了吧,碰撞次数一定是个“天文数字”~~~

所以,菜农搞得“CRC任意碰撞”是“可以预测的”

当CRC输入位数=CRC权值即多项式时,此CRC将无任何碰撞发生,此时的CRC可用于数字签名。

这样的无碰撞机制的CRC与MD5等号称无碰撞的散列函数最大的不同:

线性,绝对无碰撞而非号称,因为此时全部的数据都在一个CRC编码矩阵中。
可逆,但必须知道权值和初值及出值和方向。

而MD5是由4个特定数据和4种非线性函数组成的,但它已被发现有MD5碰撞,所以签名是不可靠的,
虽然MD5的碰撞概率很小。

而CRC的碰撞概率是已知的,即2^(输入字节数-CRCN字节).

当输入字节数==CRCN字节时,无CRC碰撞,
当输入字节数<CRCN字节时,有1次CRC碰撞(和CRCN等长的必有一个)

故CRC要用于数字签名,只要满足输入字节数==CRCN字节即可,但它的缺点是有CRC密钥(权、方向、出入值)
此种情况下,出值可以恒为0,只要知道权值和初值即可简化CRC密钥。故有“CRC密钥碰撞”。

菜农虽然不知什么原因CRC128被MD5等散列函数所替代,但菜农坚信CRC256,CRC512,CRC1024一定不会比MD5弱~~~
只是计算机位数的限制,实际CRCN可逆算法可以让N为无穷大。

菜农的HotWC3已满足内核任意CRCN变化,因为CRC位域N可以随意调整。

从HotWC3运算器支持位域4即可输入半字节可以看出菜农说的绝非梦话~~~只是俺的知音太少~~~

或用菜农的三点攻击法则,但必须知道特定三组的明文与密文对,或更多的明文与密文对来攻击CRC权值。
2009-11-4 00:46
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
术语太多,外行不懂。
crc32不是可逆吗?为什么还要碰撞。
2009-11-4 20:58
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
CRC可逆和CRC碰撞实际是两回事,CRC可逆是有条件的,CRC碰撞是无条件的。
可逆是一对明文和密文可逆,而碰撞是指相同的明文流可能得到1个相同的校验和即最后1个密文。
前者是1对1的关系,后者是多对一的关系。

并非所有的CRC32都是可逆的,它的可逆条件是:
左移CRC32权值最低位必须为1,右移CRC32权值最高位必须为1,否则CRC32不可逆。
当CRC32的输入位数不等于32位即4个字节时,将会发生碰撞。

若不说“术语”,可用“狼多肉少”来比喻。
最简单的就是“星期碰撞”,因为没7天将会发生一次,因为一年的天数太多。

在散列函数中,任意长度的信息都会散列为一组固定长度的散列值,那么根据“狼多肉少”的原理,
即会发生碰撞,只是散列函数得到的散列值碰撞的概率极小而已。

在CRC校验中,最害怕的就是碰撞,只是概率很小条件苛刻罢了。
2009-11-4 22:44
0
游客
登录 | 注册 方可回帖
返回
//