打印
[HotBooks菜农丛书]

《菜农CRC秘籍》大纲,欢迎爱好CRC的网友多提建议和需求

[复制链接]
1420|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2018-4-24 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
《菜农CRC秘籍》大纲

一 引言
二 CRC之渊源
菜农从1990年首次**CRC32开始了长达28年的CRC**生涯,**的CRC类通讯协议或文件CRC保护无数。
三 CRC之用途
举例:
三个数据:123
那么累加和为1+2+3=6
那么,无论其排列如何,累加和都恒定为6。
即发生了“累加和碰撞”,这样就不能辨别原文(即明文)的真伪,故累加和无法满足和胜任数据流的校验工作。
而CRC就大为不同,它的主要算法是移位和异或。
移位可以打乱混淆,异或可以保持数据能得到还原。
例如:
CRC8:多项式=X8+…+1
数据流:010203(16进制数)
得到校验和:XX
数据流:010302(16进制数)
得到校验和:XX

数据流:030201(16进制数)
得到校验和:XX
可以发现三个结果很难一致,即很难发生CRC碰撞。
故结论:
在数据流的校验中,CRC类的移位+异或的校验算**比其他算法(例如累加和)要可靠的多。
四 CRC之多项式
重点:
CRC成员:
CRCn、移动方向、权值、初值和出值。
缺点:
CRC多项式表述的信息在实际应用中是不全的,菜农认为“CRC简写式”可以表述完全,它是“最科学且有效”的CRC多项式的表述方法,且能使机器(程序代码即软件)识别。

五 CRC哈希函数之归属及HotHash之诞生
重点:
CRC正确地应该归属为“陷门单向散列函数”,即得到其陷门后,CRC就变为可逆。若此CRC无此陷门,则CRC不可逆。
HotHash:
当所求明文长度是权值长度的整数倍时,CRC碰撞概率是完全可以统计的,其碰撞次数为:
2^(明文长度-权值长度)。
否则,当所求明文长度不是权值长度的整数倍时,CRC碰撞概率是无法统计的,即诞生了HotHash,即此CRC为真的哈希函数,即无陷门单向散列函数。
六 CRC之可逆
重点:
当CRC多项式中含有“+1”时,CRC可逆。否则,CRC不可逆。
在CRC简写式中,对于左移CRC,最低位D0为1时,CRC可逆。否则,CRC不可逆。
在CRC简写式中,对于右移CRC,最高位Dn-1为1时,CRC可逆。否则,CRC不可逆。
七 CRC之碰撞
重点:
官方只给出了“CRC碰撞”,即任意长度的明文,一样的CRC校验结果。
菜农又推出了几个“CRC碰撞”:
CRC权值碰撞
CRC初值碰撞
CRC出值碰撞
CRC表格碰撞
特定:
当需要伪造的明文长度是权值长度的整数倍时,其CRC碰撞可以用“CRC可逆原理”逆向计算出伪造的明文。
当需要伪造的明文长度不是权值长度的整数倍时,则发生“HotHash现象”,即必须用穷举而不是用逆运算的方法来找到其CRC碰撞。而且其CRC碰撞的概率是无法预测的。
参见:五 HotHash的诞生
八 CRC碰撞概率之误区
重点:
网上对CRC碰撞概率的分析几乎都是在穷举CRC碰撞值
而菜农是根据CRC可逆原理来逆向计算CRC碰撞值,这是一个不同级别的比对。
前者需要耗费大量的穷举时间,后者瞬间出结果。
只有当出现HotHash现象时,菜农才会如网上进行穷举CRC碰撞值。
九 HotCRC之诞生及在线运行
从1990年开始走向了CRC**的“不归路”后,网上就有很多人找菜农**CRC,其中也有国外的网友。
虽然菜农可以编写一些PC软件,专门用于某个CRCn的**或计算,但想要把这些“独门绝学”留给后人就很难了,因为未来是网络的时代,故菜农在2000年就计划用网页编写,因为网页文件可以用任何文件打开,故是开源的,会将菜农的思路流传下去,让后人特别是喜爱HotCRC的网友接下去升级和维护。
故在2003年在网上发布了“群魔乱舞的CRC.html”
有因为菜农的网名叫“HotPower”(Hot),而且要嵌入“菜农星期公式”(W),主打CRC(C),还有特别直接三角形即三角密码(3)。
故最终取名:HotWC3
最早可以在网站上在线运行的就是**的网站,后来转到了21ic至今。
8年前为了“互联卫士”,中途更名为:HotAjax。
由于一些特殊原因,其计划被迫暂时取消(一等就是8年),在2017年,菜农又改回了HotWC3。
后来网友要求HotWC3密码和HotCRC分离简化,故菜农又分别命名。
十 HotCRC之运算
重点:
与其他第三方CRC计算器几乎一样,但是HotCRC分为:
CRC多项式、CRC简写式、CRC权值、CRC初值、CRC出值。
CRC明文即待验证的数据流,CRC结果。
十一 HotCRC之还原
重点:
与其他第三方CRC计算器最大的不同就是多了一个“密文编辑框”。
就是因为有它,才使HotCRC独步于天下!!!
这样可以点击“还原”按钮来解密CRC,而对应的“计算”按钮实际是加密CRC。
为何不标注加密或解密呢???
答案:CRC不适合做密码,虽然它因为是陷门单向散列函数,可以有逆运算,即可以加密和解密。
但是CRC做密码的“败笔”就是:
本次的密文是下次的初值。明文和初值可以交换。
即可以从密文逆运算出明文,当然这必须要在知道CRC多项式(准确地说是CRC简写式)的前提下才能逆运算出明文。
十二 HotCRC之多种CRC任意碰撞
重点:
当不发生HotHash现象时,可以通过CRC逆运算来得到CRC碰撞值。
反之需要穷举出CRC碰撞值。
演示与截图:

十三 HotCRC之四点攻击及任意克隆第三方CRC计算器
重点:
实际上对于某个固定方向的CRC多项式即CRC简写式,那么只需三点攻击即可。
但为了攻击的

十四 HotCRC之生成任意CRC表格及C语言源码和仿真信息
十五 HotCRC之**任意CRC类通讯协议
重点:
目前只有高版本的HotCRC具备此功能,因为大范围发布,会使CRC类通讯协议之产品造成混乱,故目前只作为研究之用。
十六 HotCRC之版权保护及防止文件被篡改
十七 HotPage-菜农电子工程师导航网站之介绍
十八 菜农网络资源部署
十九 总结


菜农 HotPower@163.com 2018.4.22 14:38 于西安雁塔菜地


相关帖子

沙发
cgd| | 2018-4-24 20:40 | 只看该作者
沙发

使用特权

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

本版积分规则

个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1460

主题

21619

帖子

506

粉丝