实际上那个汽车电子给的网站里我上传了几个版本的CRC算法.不知还在否.
你现在看到的只是我的基本版,主要是为验证CRC/PEC的结果,故我称之为"网上计算器".
我认为菜农在CRC上"最大的成果"就是那个"权"字.
xwj语录: 用CRC检验来做密码算法更是不合理,CRC的运算就是取多项式G(X)的余数,暴力破解的话最多只要尝试G(X)次就可以试出正确的CRC码 对于16位CRC是69665次,8位CRC就是305次,这个也不会增加多少加密强度(运算量)的
晕倒了~~~我真的想让专家把牙笑掉自己咽到肚子里去~~~ 就那CRC8来说吧: CRC8可以分为左移和右移2种. 在左移中,"权"的D7位无用.在右移中,"权"的D0位无用. 例如左移CRC8: 初值=0x00 权=0x81 源=0x33 结果CRC=0x55 初值=0x00 权=0x01 源=0x33 结果CRC=0x55
例如右移CRC8: 初值=0x00 权=0x81 源=0x33 结果CRC=0xEA 初值=0x00 权=0x80 源=0x33 结果CRC=0xEA
哈哈~~~就先到这里吧~~~
当初值,权,方向,D7D0都在"运动"时,难道菜农倒塌的CRC8让人305次就攻塌了??? 想想这种CRC8+"三角密码"该有多少组合呀~~~ 为何要"三角密码"加入???主要是乘方开方增加解密的计算量~~~
哈哈,我的密码学的书不少~~~
|
|
雁塔菜农 2007-4-13 22:13
谢谢panic关注此类问题!!!
这些道理我很明白.不过我是利用了CRC的多值特性来实现加密强度的.
在基本CRC中,它的本意是作为数据校验,肯定加密强度不高.
根据标准的CRC算法即CRC函数来分析,它的初值和权是不变的.如CRC8一般初值取0,权为0x18,采用右移.
本次CRC的计算结果(也可认为是密文)实际是下次CRC函数的初值.权不变(也可认为是密钥)
由于CRC的8位计算结果(可认为是8位密文)是由初值(可认为是8位密钥),权(可认为是8位密钥),源值(也可认为是8位明文)及左右移动算法(可认为是1位密钥)得出的,即17位密钥对8位明文计算得出了8位密文.
这样就产生了CRC多值不可逆的问题.
即1个密钥对1个明文计算得出很多相同的密文.
那么1个密文必对应很多相同的明文.
但只有1组正确的密钥,明文及密文.
所以8位CRC用256次攻击是不够的~~~这里我只说了"基本CRC"~~~
故对"变种的CRC"及CRC64的攻击次数肯定不是常人所想的那么简单~~~
用户42895 2007-4-13 13:07
破解根本不需要计算什么组合,只要尝试0~255(8bit)以至0~65535(16bit)就一定可以找到正确的结果。。。
通常使用的密钥长度都是比较长的,比如早期DES的56bit,现在的RSA更是长达数kbit。对56bit密钥的穷举现在已经可以做到了,更何况8bit和16bit,以及32bit的CRC