HotWC3网上CRC超级运算器V5.08开始支持CRC密码并可选择抗击差分攻击,本文数据全部由它提供
在“菜农成功创建基于CRC密钥碰撞的CRC对称密码安全体系”一文中,对CRC改进如下:
基于CRC密钥碰撞的CRC对称密码安全体系:
该“密码安全体系”继承CRC算法的风格,改进如下:
1.初值将单独与每个明文异或而非“第1个明文”。
2.出值将单独与每个密文异或而非“最后1个密文”。
3.本次与出值异或前的密文与原始初值作为下次明文的输入初值。
此“输入初值”都将同时得到原始初值和出值的保护。
现在先给出一些攻击数据:(以CRCL16_1021_1234_5678 为例)
1.攻击出“初值出值碰撞”的根初值
disCRCL16_1021_1234_5678[0x0000]=0xE4C4 即CRCL16_1021_E4C4_0000
2.攻击左权
CRCL16_1021_1234_5678[0xE4C5]=0x1021
或 CRC[n]^CRC[n + 1]=0x1021
3.攻击初值出值数据表
随机抽取3组攻击数据表
CRCL16_1021_E4C4_0000[0x4321]=0x2962 即CRCL16_1021_4321_2962
CRCL16_1021_E4C4_0000[0x5678]=0x1E38 即CRCL16_1021_5678_1E38
CRCL16_1021_E4C4_0000[0x8765]=0xFBB2 即CRCL16_1021_8765_FBB2
对5组数据表进行攻击:
密文=CRC编码矩阵[初值,明文]^出值=编码^出值
明文=CRC解码矩阵[出值,密文]^初值=解码^初值
-----------------------------------------------------------------------------
______ CRC_E4C4_0000 CRC_1234_5678 CRC_4321_2962 CRC_5678_1E38 CRC_8765_FBB2
-----------------------------------------------------------------------------
明文 编码 密文 编码 密文 编码 密文 编码 密文 编码 密文
-----------------------------------------------------------------------------
0x0000 0x45BE,0x45BE 0x13C6,0x45BE 0x6CDC,0x45BE 0x5B86,0x45BE 0xBE0C,0x45BE
0xE4C4 0x0000,0x0000 0x5678,0x0000 0x2962,0x0000 0x1E38,0x0000 0xFBB2,0x0000
0x1234 0x5678,0x5678 0x0000,0x5678 0x7F1A,0x5678 0x4840,0x5678 0xADCA,0x5678
0x4321 0x2962,0x2962 0x7F1A,0x2962 0x0000,0x2962 0x375A,0x2962 0xD2D0,0x2962
0x5678 0x1E38,0x1E38 0x4840,0x1E38 0x375A,0x1E38 0x0000,0x1E38 0xE58A,0x1E38
0x8765 0xFBB2,0xFBB2 0xADCA,0xFBB2 0xD2D0,0xFBB2 0xE58A,0xFBB2 0x0000,0xFBB2
------------------------------------------------------------------------------
3.攻击结果分析
从攻击结果表中可以看出:
对于初值_出值 E4C4_0000,1234_5678,4321_2962,5678_1E38,8765_FBB2
明文0x0000都会得到相同的密文0x45BE。
明文0xE4C4都会得到相同的密文0x0000。
明文0x1234都会得到相同的密文0x5678。
明文0x4321都会得到相同的密文0x2962。
明文0x5678都会得到相同的密文0x1E38。
明文0x8765都会得到相同的密文0xFBB2。
这就是所谓的“CRC初值出值碰撞”,即不同的初值出值,相同的明文得到对应的相同的密文。
其中“编码”是CRC密码经过CRC正运算即CRC编码矩阵中的输出“编码”值,它和出值相异或后产生密文。
它是运算产生的中间结果并作为下次初值的一部分,故此编码是不公开即无法得到的。
由于此CRC密码是在CRC运算的基础上只是将初值和出值的管辖范围增大,并未做相应处理,主要是想突出
说明“CRC初值出值碰撞”。故它的CRC权值实际是暴露的,参见菜农的CRC三点/四点攻击方法。
由于“编码”无任何方法可以求出,故即使破解出了正确的明文与密文组合派对也无法知道正确的初值和
出值组合派对。
即:只能破解CRC密钥的一部分(CRC权值和方向),但不能全部破解(无法找出初值和出值)。
可以用军事密码来形容:被俘了可以给敌方看未销毁的译码后的明文,但绝不交出“密电码”~~~
菜农HotPower@126.com 2009.12.16 于雁塔菜地
●█〓██▄▄▄▄▄▄ ●●●●●●→ ''''╭WWWW╮
▄▅██████▅▄▃▂ 传播非典灌水四方 ( ●_●)
███天█马█行█空████ '''',,,;,;,;'''/▇\''
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲◤ 群魔乱舞见阳光/MMMM\
文章评论(0条评论)
登录后参与讨论