首页
社区
课程
招聘
[原创]CRC非对称密码体系的研究
2009-11-21 16:57 5931

[原创]CRC非对称密码体系的研究

2009-11-21 16:57
5931
CRC非对称密码体系的研究(雁塔菜农)

本文推导工具: 最新版的HotWC3网上在线CRC运算器V4.18
CRC表格及逆向等均采用HotWC3网上在线CRC运算器。
所有眼晕的数字全部由HotWC3自动生成,而且可以在任何C语言环境下直接运行

有人要看着迷糊,可以看结尾部分的蓝色的文字部分。数字太多是眼晕~~~

CRC非对称密码的构想:在非对称密码体系中,加密和解密密钥各不相同。假若加密过程不可逆,

则加密密钥可以公开。假设从加密密钥很难推导出解密密钥,则该系统既为公开密钥密码系统。

CRC的可逆条件:
多项式含有“+1”的CRCn是可逆的,反之不可逆。
或CRCn可逆:左移CRC权值最低位为1,右移CRC权值最高位为1。

在CRC运算中,允许明文范围小于权值范围,虽然肯定发生碰撞,但加密和解密方同步时就可避免。
先以下面2个CRC位域8碰撞来说明CRC非对称密码的构想是成立的,虽然很容易从加密密钥中推出
解密密钥,但菜农认为继续研究下去终会出现转机。


本文有关CRC三点或四点攻击请参阅:CRC权值方向初值出值测试方法(破解CRC之法)

例一:
CRC多项式:右移CRC64=X64+X4+X3+X+1 (有X0=1 该CRC多项式可逆)
CRC简 写:CRCR64_D800000000000000_0000000000000000_0000000000000000
第1采样点 第2采样点 第3采样点 第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 01B0000000000000 D800000000000000 5300000000000000

CRC多项式:左移CRC64=X64+X56+X55+X53+X52 (无X0=1 该CRC多项式不可逆)
CRC简 写:CRCL64_01B0000000000000_0000000000000000_0000000000000000

            第1采样点      第2采样点      第3采样点     第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 01B0000000000000 D800000000000000 BA20000000000000

三点采样逆向碰撞:0000000000000000 01B0000000000000 D800000000000000

//CRC位域4表(小端):
const U64 CRCR64_D800000000000000_Table[16] = {
0x0000000000000000L,0x1B00000000000000L,0x3600000000000000L,0x2D00000000000000L,
0x6C00000000000000L,0x7700000000000000L,0x5A00000000000000L,0x4100000000000000L,
0xD800000000000000L,0xC300000000000000L,0xEE00000000000000L,0xF500000000000000L,
0xB400000000000000L,0xAF00000000000000L,0x8200000000000000L,0x9900000000000000L
};

//CRC位域4表(大端):
const U64 CRCL64_01B0000000000000_Table[16] = {//此表不可逆
0x0000000000000000L,0x01B0000000000000L,0x0360000000000000L,0x02D0000000000000L,
0x06C0000000000000L,0x0770000000000000L,0x05A0000000000000L,0x0410000000000000L,
0x0D80000000000000L,0x0C30000000000000L,0x0EE0000000000000L,0x0F50000000000000L,
0x0B40000000000000L,0x0AF0000000000000L,0x0820000000000000L,0x0990000000000000L
};

//CRC位域8表(小端):
const U64 CRCR64_D800000000000000_Table[256] = {
0x0000000000000000L,0x01B0000000000000L,0x0360000000000000L,0x02D0000000000000L,
0x06C0000000000000L,0x0770000000000000L,0x05A0000000000000L,0x0410000000000000L,
0x0D80000000000000L,0x0C30000000000000L,0x0EE0000000000000L,0x0F50000000000000L,
0x0B40000000000000L,0x0AF0000000000000L,0x0820000000000000L,0x0990000000000000L,
0x1B00000000000000L,0x1AB0000000000000L,0x1860000000000000L,0x19D0000000000000L,
0x1DC0000000000000L,0x1C70000000000000L,0x1EA0000000000000L,0x1F10000000000000L,
0x1680000000000000L,0x1730000000000000L,0x15E0000000000000L,0x1450000000000000L,
0x1040000000000000L,0x11F0000000000000L,0x1320000000000000L,0x1290000000000000L,
0x3600000000000000L,0x37B0000000000000L,0x3560000000000000L,0x34D0000000000000L,
0x30C0000000000000L,0x3170000000000000L,0x33A0000000000000L,0x3210000000000000L,
0x3B80000000000000L,0x3A30000000000000L,0x38E0000000000000L,0x3950000000000000L,
0x3D40000000000000L,0x3CF0000000000000L,0x3E20000000000000L,0x3F90000000000000L,
0x2D00000000000000L,0x2CB0000000000000L,0x2E60000000000000L,0x2FD0000000000000L,
0x2BC0000000000000L,0x2A70000000000000L,0x28A0000000000000L,0x2910000000000000L,
0x2080000000000000L,0x2130000000000000L,0x23E0000000000000L,0x2250000000000000L,
0x2640000000000000L,0x27F0000000000000L,0x2520000000000000L,0x2490000000000000L,
0x6C00000000000000L,0x6DB0000000000000L,0x6F60000000000000L,0x6ED0000000000000L,
0x6AC0000000000000L,0x6B70000000000000L,0x69A0000000000000L,0x6810000000000000L,
0x6180000000000000L,0x6030000000000000L,0x62E0000000000000L,0x6350000000000000L,
0x6740000000000000L,0x66F0000000000000L,0x6420000000000000L,0x6590000000000000L,
0x7700000000000000L,0x76B0000000000000L,0x7460000000000000L,0x75D0000000000000L,
0x71C0000000000000L,0x7070000000000000L,0x72A0000000000000L,0x7310000000000000L,
0x7A80000000000000L,0x7B30000000000000L,0x79E0000000000000L,0x7850000000000000L,
0x7C40000000000000L,0x7DF0000000000000L,0x7F20000000000000L,0x7E90000000000000L,
0x5A00000000000000L,0x5BB0000000000000L,0x5960000000000000L,0x58D0000000000000L,
0x5CC0000000000000L,0x5D70000000000000L,0x5FA0000000000000L,0x5E10000000000000L,
0x5780000000000000L,0x5630000000000000L,0x54E0000000000000L,0x5550000000000000L,
0x5140000000000000L,0x50F0000000000000L,0x5220000000000000L,0x5390000000000000L,
0x4100000000000000L,0x40B0000000000000L,0x4260000000000000L,0x43D0000000000000L,
0x47C0000000000000L,0x4670000000000000L,0x44A0000000000000L,0x4510000000000000L,
0x4C80000000000000L,0x4D30000000000000L,0x4FE0000000000000L,0x4E50000000000000L,
0x4A40000000000000L,0x4BF0000000000000L,0x4920000000000000L,0x4890000000000000L,
0xD800000000000000L,0xD9B0000000000000L,0xDB60000000000000L,0xDAD0000000000000L,
0xDEC0000000000000L,0xDF70000000000000L,0xDDA0000000000000L,0xDC10000000000000L,
0xD580000000000000L,0xD430000000000000L,0xD6E0000000000000L,0xD750000000000000L,
0xD340000000000000L,0xD2F0000000000000L,0xD020000000000000L,0xD190000000000000L,
0xC300000000000000L,0xC2B0000000000000L,0xC060000000000000L,0xC1D0000000000000L,
0xC5C0000000000000L,0xC470000000000000L,0xC6A0000000000000L,0xC710000000000000L,
0xCE80000000000000L,0xCF30000000000000L,0xCDE0000000000000L,0xCC50000000000000L,
0xC840000000000000L,0xC9F0000000000000L,0xCB20000000000000L,0xCA90000000000000L,
0xEE00000000000000L,0xEFB0000000000000L,0xED60000000000000L,0xECD0000000000000L,
0xE8C0000000000000L,0xE970000000000000L,0xEBA0000000000000L,0xEA10000000000000L,
0xE380000000000000L,0xE230000000000000L,0xE0E0000000000000L,0xE150000000000000L,
0xE540000000000000L,0xE4F0000000000000L,0xE620000000000000L,0xE790000000000000L,
0xF500000000000000L,0xF4B0000000000000L,0xF660000000000000L,0xF7D0000000000000L,
0xF3C0000000000000L,0xF270000000000000L,0xF0A0000000000000L,0xF110000000000000L,
0xF880000000000000L,0xF930000000000000L,0xFBE0000000000000L,0xFA50000000000000L,
0xFE40000000000000L,0xFFF0000000000000L,0xFD20000000000000L,0xFC90000000000000L,
0xB400000000000000L,0xB5B0000000000000L,0xB760000000000000L,0xB6D0000000000000L,
0xB2C0000000000000L,0xB370000000000000L,0xB1A0000000000000L,0xB010000000000000L,
0xB980000000000000L,0xB830000000000000L,0xBAE0000000000000L,0xBB50000000000000L,
0xBF40000000000000L,0xBEF0000000000000L,0xBC20000000000000L,0xBD90000000000000L,
0xAF00000000000000L,0xAEB0000000000000L,0xAC60000000000000L,0xADD0000000000000L,
0xA9C0000000000000L,0xA870000000000000L,0xAAA0000000000000L,0xAB10000000000000L,
0xA280000000000000L,0xA330000000000000L,0xA1E0000000000000L,0xA050000000000000L,
0xA440000000000000L,0xA5F0000000000000L,0xA720000000000000L,0xA690000000000000L,
0x8200000000000000L,0x83B0000000000000L,0x8160000000000000L,0x80D0000000000000L,
0x84C0000000000000L,0x8570000000000000L,0x87A0000000000000L,0x8610000000000000L,
0x8F80000000000000L,0x8E30000000000000L,0x8CE0000000000000L,0x8D50000000000000L,
0x8940000000000000L,0x88F0000000000000L,0x8A20000000000000L,0x8B90000000000000L,
0x9900000000000000L,0x98B0000000000000L,0x9A60000000000000L,0x9BD0000000000000L,
0x9FC0000000000000L,0x9E70000000000000L,0x9CA0000000000000L,0x9D10000000000000L,
0x9480000000000000L,0x9530000000000000L,0x97E0000000000000L,0x9650000000000000L,
0x9240000000000000L,0x93F0000000000000L,0x9120000000000000L,0x9090000000000000L
};

//CRC位域8表(大端):
const U64 CRCL64_01B0000000000000_Table[256] = {//此表不可逆
0x0000000000000000L,0x01B0000000000000L,0x0360000000000000L,0x02D0000000000000L,
0x06C0000000000000L,0x0770000000000000L,0x05A0000000000000L,0x0410000000000000L,
0x0D80000000000000L,0x0C30000000000000L,0x0EE0000000000000L,0x0F50000000000000L,
0x0B40000000000000L,0x0AF0000000000000L,0x0820000000000000L,0x0990000000000000L,
0x1B00000000000000L,0x1AB0000000000000L,0x1860000000000000L,0x19D0000000000000L,
0x1DC0000000000000L,0x1C70000000000000L,0x1EA0000000000000L,0x1F10000000000000L,
0x1680000000000000L,0x1730000000000000L,0x15E0000000000000L,0x1450000000000000L,
0x1040000000000000L,0x11F0000000000000L,0x1320000000000000L,0x1290000000000000L,
0x3600000000000000L,0x37B0000000000000L,0x3560000000000000L,0x34D0000000000000L,
0x30C0000000000000L,0x3170000000000000L,0x33A0000000000000L,0x3210000000000000L,
0x3B80000000000000L,0x3A30000000000000L,0x38E0000000000000L,0x3950000000000000L,
0x3D40000000000000L,0x3CF0000000000000L,0x3E20000000000000L,0x3F90000000000000L,
0x2D00000000000000L,0x2CB0000000000000L,0x2E60000000000000L,0x2FD0000000000000L,
0x2BC0000000000000L,0x2A70000000000000L,0x28A0000000000000L,0x2910000000000000L,
0x2080000000000000L,0x2130000000000000L,0x23E0000000000000L,0x2250000000000000L,
0x2640000000000000L,0x27F0000000000000L,0x2520000000000000L,0x2490000000000000L,
0x6C00000000000000L,0x6DB0000000000000L,0x6F60000000000000L,0x6ED0000000000000L,
0x6AC0000000000000L,0x6B70000000000000L,0x69A0000000000000L,0x6810000000000000L,
0x6180000000000000L,0x6030000000000000L,0x62E0000000000000L,0x6350000000000000L,
0x6740000000000000L,0x66F0000000000000L,0x6420000000000000L,0x6590000000000000L,
0x7700000000000000L,0x76B0000000000000L,0x7460000000000000L,0x75D0000000000000L,
0x71C0000000000000L,0x7070000000000000L,0x72A0000000000000L,0x7310000000000000L,
0x7A80000000000000L,0x7B30000000000000L,0x79E0000000000000L,0x7850000000000000L,
0x7C40000000000000L,0x7DF0000000000000L,0x7F20000000000000L,0x7E90000000000000L,
0x5A00000000000000L,0x5BB0000000000000L,0x5960000000000000L,0x58D0000000000000L,
0x5CC0000000000000L,0x5D70000000000000L,0x5FA0000000000000L,0x5E10000000000000L,
0x5780000000000000L,0x5630000000000000L,0x54E0000000000000L,0x5550000000000000L,
0x5140000000000000L,0x50F0000000000000L,0x5220000000000000L,0x5390000000000000L,
0x4100000000000000L,0x40B0000000000000L,0x4260000000000000L,0x43D0000000000000L,
0x47C0000000000000L,0x4670000000000000L,0x44A0000000000000L,0x4510000000000000L,
0x4C80000000000000L,0x4D30000000000000L,0x4FE0000000000000L,0x4E50000000000000L,
0x4A40000000000000L,0x4BF0000000000000L,0x4920000000000000L,0x4890000000000000L,
0xD800000000000000L,0xD9B0000000000000L,0xDB60000000000000L,0xDAD0000000000000L,
0xDEC0000000000000L,0xDF70000000000000L,0xDDA0000000000000L,0xDC10000000000000L,
0xD580000000000000L,0xD430000000000000L,0xD6E0000000000000L,0xD750000000000000L,
0xD340000000000000L,0xD2F0000000000000L,0xD020000000000000L,0xD190000000000000L,
0xC300000000000000L,0xC2B0000000000000L,0xC060000000000000L,0xC1D0000000000000L,
0xC5C0000000000000L,0xC470000000000000L,0xC6A0000000000000L,0xC710000000000000L,
0xCE80000000000000L,0xCF30000000000000L,0xCDE0000000000000L,0xCC50000000000000L,
0xC840000000000000L,0xC9F0000000000000L,0xCB20000000000000L,0xCA90000000000000L,
0xEE00000000000000L,0xEFB0000000000000L,0xED60000000000000L,0xECD0000000000000L,
0xE8C0000000000000L,0xE970000000000000L,0xEBA0000000000000L,0xEA10000000000000L,
0xE380000000000000L,0xE230000000000000L,0xE0E0000000000000L,0xE150000000000000L,
0xE540000000000000L,0xE4F0000000000000L,0xE620000000000000L,0xE790000000000000L,
0xF500000000000000L,0xF4B0000000000000L,0xF660000000000000L,0xF7D0000000000000L,
0xF3C0000000000000L,0xF270000000000000L,0xF0A0000000000000L,0xF110000000000000L,
0xF880000000000000L,0xF930000000000000L,0xFBE0000000000000L,0xFA50000000000000L,
0xFE40000000000000L,0xFFF0000000000000L,0xFD20000000000000L,0xFC90000000000000L,
0xB400000000000000L,0xB5B0000000000000L,0xB760000000000000L,0xB6D0000000000000L,
0xB2C0000000000000L,0xB370000000000000L,0xB1A0000000000000L,0xB010000000000000L,
0xB980000000000000L,0xB830000000000000L,0xBAE0000000000000L,0xBB50000000000000L,
0xBF40000000000000L,0xBEF0000000000000L,0xBC20000000000000L,0xBD90000000000000L,
0xAF00000000000000L,0xAEB0000000000000L,0xAC60000000000000L,0xADD0000000000000L,
0xA9C0000000000000L,0xA870000000000000L,0xAAA0000000000000L,0xAB10000000000000L,
0xA280000000000000L,0xA330000000000000L,0xA1E0000000000000L,0xA050000000000000L,
0xA440000000000000L,0xA5F0000000000000L,0xA720000000000000L,0xA690000000000000L,
0x8200000000000000L,0x83B0000000000000L,0x8160000000000000L,0x80D0000000000000L,
0x84C0000000000000L,0x8570000000000000L,0x87A0000000000000L,0x8610000000000000L,
0x8F80000000000000L,0x8E30000000000000L,0x8CE0000000000000L,0x8D50000000000000L,
0x8940000000000000L,0x88F0000000000000L,0x8A20000000000000L,0x8B90000000000000L,
0x9900000000000000L,0x98B0000000000000L,0x9A60000000000000L,0x9BD0000000000000L,
0x9FC0000000000000L,0x9E70000000000000L,0x9CA0000000000000L,0x9D10000000000000L,
0x9480000000000000L,0x9530000000000000L,0x97E0000000000000L,0x9650000000000000L,
0x9240000000000000L,0x93F0000000000000L,0x9120000000000000L,0x9090000000000000L
};

三点采样逆向结论:CRC多项式右移CRC64=X64+X4+X3+X+1与左移CRC64=X64+X56+X55+X53+X52
发生CRC位域表碰撞。
即它们共有一个CRC位域8表格或错位位域4的1个CRC位域4表格。

例二:(例一的权值反转)
CRC多项式:左移CRC64=X64+X4+X3+X+1 (有X0=1 该CRC多项式可逆)
CRC简 写:CRCL64_000000000000001B_0000000000000000_0000000000000000
第1采样点 第2采样点 第3采样点 第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 000000000000001B 0000000000000D80 00000000000000CA

CRC多项式:右移CRC64=X64+X56+X55+X53+X52 (无X0=1 该CRC多项式不可逆)
CRC简 写:CRCR64_0000000000000D80_0000000000000000_0000000000000000

            第1采样点      第2采样点      第3采样点     第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 000000000000001B 0000000000000D80 000000000000045D

三点采样逆向碰撞:0000000000000000 000000000000001B 0000000000000D80

//CRC位域4表(大端):
const U64 CRCL64_000000000000001B_Table[16] = {
0x0000000000000000L,0x000000000000001BL,0x0000000000000036L,0x000000000000002DL,
0x000000000000006CL,0x0000000000000077L,0x000000000000005AL,0x0000000000000041L,
0x00000000000000D8L,0x00000000000000C3L,0x00000000000000EEL,0x00000000000000F5L,
0x00000000000000B4L,0x00000000000000AFL,0x0000000000000082L,0x0000000000000099L
};

//CRC位域4表(小端):
const U64 CRCR64_0000000000000D80_Table[16] = {//此表不可逆
0x0000000000000000L,0x00000000000001B0L,0x0000000000000360L,0x00000000000002D0L,
0x00000000000006C0L,0x0000000000000770L,0x00000000000005A0L,0x0000000000000410L,
0x0000000000000D80L,0x0000000000000C30L,0x0000000000000EE0L,0x0000000000000F50L,
0x0000000000000B40L,0x0000000000000AF0L,0x0000000000000820L,0x0000000000000990L
};

//CRC位域8表(大端):
const U64 CRCL64_000000000000001B_Table[256] = {
0x0000000000000000L,0x000000000000001BL,0x0000000000000036L,0x000000000000002DL,
0x000000000000006CL,0x0000000000000077L,0x000000000000005AL,0x0000000000000041L,
0x00000000000000D8L,0x00000000000000C3L,0x00000000000000EEL,0x00000000000000F5L,
0x00000000000000B4L,0x00000000000000AFL,0x0000000000000082L,0x0000000000000099L,
0x00000000000001B0L,0x00000000000001ABL,0x0000000000000186L,0x000000000000019DL,
0x00000000000001DCL,0x00000000000001C7L,0x00000000000001EAL,0x00000000000001F1L,
0x0000000000000168L,0x0000000000000173L,0x000000000000015EL,0x0000000000000145L,
0x0000000000000104L,0x000000000000011FL,0x0000000000000132L,0x0000000000000129L,
0x0000000000000360L,0x000000000000037BL,0x0000000000000356L,0x000000000000034DL,
0x000000000000030CL,0x0000000000000317L,0x000000000000033AL,0x0000000000000321L,
0x00000000000003B8L,0x00000000000003A3L,0x000000000000038EL,0x0000000000000395L,
0x00000000000003D4L,0x00000000000003CFL,0x00000000000003E2L,0x00000000000003F9L,
0x00000000000002D0L,0x00000000000002CBL,0x00000000000002E6L,0x00000000000002FDL,
0x00000000000002BCL,0x00000000000002A7L,0x000000000000028AL,0x0000000000000291L,
0x0000000000000208L,0x0000000000000213L,0x000000000000023EL,0x0000000000000225L,
0x0000000000000264L,0x000000000000027FL,0x0000000000000252L,0x0000000000000249L,
0x00000000000006C0L,0x00000000000006DBL,0x00000000000006F6L,0x00000000000006EDL,
0x00000000000006ACL,0x00000000000006B7L,0x000000000000069AL,0x0000000000000681L,
0x0000000000000618L,0x0000000000000603L,0x000000000000062EL,0x0000000000000635L,
0x0000000000000674L,0x000000000000066FL,0x0000000000000642L,0x0000000000000659L,
0x0000000000000770L,0x000000000000076BL,0x0000000000000746L,0x000000000000075DL,
0x000000000000071CL,0x0000000000000707L,0x000000000000072AL,0x0000000000000731L,
0x00000000000007A8L,0x00000000000007B3L,0x000000000000079EL,0x0000000000000785L,
0x00000000000007C4L,0x00000000000007DFL,0x00000000000007F2L,0x00000000000007E9L,
0x00000000000005A0L,0x00000000000005BBL,0x0000000000000596L,0x000000000000058DL,
0x00000000000005CCL,0x00000000000005D7L,0x00000000000005FAL,0x00000000000005E1L,
0x0000000000000578L,0x0000000000000563L,0x000000000000054EL,0x0000000000000555L,
0x0000000000000514L,0x000000000000050FL,0x0000000000000522L,0x0000000000000539L,
0x0000000000000410L,0x000000000000040BL,0x0000000000000426L,0x000000000000043DL,
0x000000000000047CL,0x0000000000000467L,0x000000000000044AL,0x0000000000000451L,
0x00000000000004C8L,0x00000000000004D3L,0x00000000000004FEL,0x00000000000004E5L,
0x00000000000004A4L,0x00000000000004BFL,0x0000000000000492L,0x0000000000000489L,
0x0000000000000D80L,0x0000000000000D9BL,0x0000000000000DB6L,0x0000000000000DADL,
0x0000000000000DECL,0x0000000000000DF7L,0x0000000000000DDAL,0x0000000000000DC1L,
0x0000000000000D58L,0x0000000000000D43L,0x0000000000000D6EL,0x0000000000000D75L,
0x0000000000000D34L,0x0000000000000D2FL,0x0000000000000D02L,0x0000000000000D19L,
0x0000000000000C30L,0x0000000000000C2BL,0x0000000000000C06L,0x0000000000000C1DL,
0x0000000000000C5CL,0x0000000000000C47L,0x0000000000000C6AL,0x0000000000000C71L,
0x0000000000000CE8L,0x0000000000000CF3L,0x0000000000000CDEL,0x0000000000000CC5L,
0x0000000000000C84L,0x0000000000000C9FL,0x0000000000000CB2L,0x0000000000000CA9L,
0x0000000000000EE0L,0x0000000000000EFBL,0x0000000000000ED6L,0x0000000000000ECDL,
0x0000000000000E8CL,0x0000000000000E97L,0x0000000000000EBAL,0x0000000000000EA1L,
0x0000000000000E38L,0x0000000000000E23L,0x0000000000000E0EL,0x0000000000000E15L,
0x0000000000000E54L,0x0000000000000E4FL,0x0000000000000E62L,0x0000000000000E79L,
0x0000000000000F50L,0x0000000000000F4BL,0x0000000000000F66L,0x0000000000000F7DL,
0x0000000000000F3CL,0x0000000000000F27L,0x0000000000000F0AL,0x0000000000000F11L,
0x0000000000000F88L,0x0000000000000F93L,0x0000000000000FBEL,0x0000000000000FA5L,
0x0000000000000FE4L,0x0000000000000FFFL,0x0000000000000FD2L,0x0000000000000FC9L,
0x0000000000000B40L,0x0000000000000B5BL,0x0000000000000B76L,0x0000000000000B6DL,
0x0000000000000B2CL,0x0000000000000B37L,0x0000000000000B1AL,0x0000000000000B01L,
0x0000000000000B98L,0x0000000000000B83L,0x0000000000000BAEL,0x0000000000000BB5L,
0x0000000000000BF4L,0x0000000000000BEFL,0x0000000000000BC2L,0x0000000000000BD9L,
0x0000000000000AF0L,0x0000000000000AEBL,0x0000000000000AC6L,0x0000000000000ADDL,
0x0000000000000A9CL,0x0000000000000A87L,0x0000000000000AAAL,0x0000000000000AB1L,
0x0000000000000A28L,0x0000000000000A33L,0x0000000000000A1EL,0x0000000000000A05L,
0x0000000000000A44L,0x0000000000000A5FL,0x0000000000000A72L,0x0000000000000A69L,
0x0000000000000820L,0x000000000000083BL,0x0000000000000816L,0x000000000000080DL,
0x000000000000084CL,0x0000000000000857L,0x000000000000087AL,0x0000000000000861L,
0x00000000000008F8L,0x00000000000008E3L,0x00000000000008CEL,0x00000000000008D5L,
0x0000000000000894L,0x000000000000088FL,0x00000000000008A2L,0x00000000000008B9L,
0x0000000000000990L,0x000000000000098BL,0x00000000000009A6L,0x00000000000009BDL,
0x00000000000009FCL,0x00000000000009E7L,0x00000000000009CAL,0x00000000000009D1L,
0x0000000000000948L,0x0000000000000953L,0x000000000000097EL,0x0000000000000965L,
0x0000000000000924L,0x000000000000093FL,0x0000000000000912L,0x0000000000000909L
};

//CRC位域8表(小端):
const U64 CRCR64_0000000000000D80_Table[256] = {//此表不可逆
0x0000000000000000L,0x000000000000001BL,0x0000000000000036L,0x000000000000002DL,
0x000000000000006CL,0x0000000000000077L,0x000000000000005AL,0x0000000000000041L,
0x00000000000000D8L,0x00000000000000C3L,0x00000000000000EEL,0x00000000000000F5L,
0x00000000000000B4L,0x00000000000000AFL,0x0000000000000082L,0x0000000000000099L,
0x00000000000001B0L,0x00000000000001ABL,0x0000000000000186L,0x000000000000019DL,
0x00000000000001DCL,0x00000000000001C7L,0x00000000000001EAL,0x00000000000001F1L,
0x0000000000000168L,0x0000000000000173L,0x000000000000015EL,0x0000000000000145L,
0x0000000000000104L,0x000000000000011FL,0x0000000000000132L,0x0000000000000129L,
0x0000000000000360L,0x000000000000037BL,0x0000000000000356L,0x000000000000034DL,
0x000000000000030CL,0x0000000000000317L,0x000000000000033AL,0x0000000000000321L,
0x00000000000003B8L,0x00000000000003A3L,0x000000000000038EL,0x0000000000000395L,
0x00000000000003D4L,0x00000000000003CFL,0x00000000000003E2L,0x00000000000003F9L,
0x00000000000002D0L,0x00000000000002CBL,0x00000000000002E6L,0x00000000000002FDL,
0x00000000000002BCL,0x00000000000002A7L,0x000000000000028AL,0x0000000000000291L,
0x0000000000000208L,0x0000000000000213L,0x000000000000023EL,0x0000000000000225L,
0x0000000000000264L,0x000000000000027FL,0x0000000000000252L,0x0000000000000249L,
0x00000000000006C0L,0x00000000000006DBL,0x00000000000006F6L,0x00000000000006EDL,
0x00000000000006ACL,0x00000000000006B7L,0x000000000000069AL,0x0000000000000681L,
0x0000000000000618L,0x0000000000000603L,0x000000000000062EL,0x0000000000000635L,
0x0000000000000674L,0x000000000000066FL,0x0000000000000642L,0x0000000000000659L,
0x0000000000000770L,0x000000000000076BL,0x0000000000000746L,0x000000000000075DL,
0x000000000000071CL,0x0000000000000707L,0x000000000000072AL,0x0000000000000731L,
0x00000000000007A8L,0x00000000000007B3L,0x000000000000079EL,0x0000000000000785L,
0x00000000000007C4L,0x00000000000007DFL,0x00000000000007F2L,0x00000000000007E9L,
0x00000000000005A0L,0x00000000000005BBL,0x0000000000000596L,0x000000000000058DL,
0x00000000000005CCL,0x00000000000005D7L,0x00000000000005FAL,0x00000000000005E1L,
0x0000000000000578L,0x0000000000000563L,0x000000000000054EL,0x0000000000000555L,
0x0000000000000514L,0x000000000000050FL,0x0000000000000522L,0x0000000000000539L,
0x0000000000000410L,0x000000000000040BL,0x0000000000000426L,0x000000000000043DL,
0x000000000000047CL,0x0000000000000467L,0x000000000000044AL,0x0000000000000451L,
0x00000000000004C8L,0x00000000000004D3L,0x00000000000004FEL,0x00000000000004E5L,
0x00000000000004A4L,0x00000000000004BFL,0x0000000000000492L,0x0000000000000489L,
0x0000000000000D80L,0x0000000000000D9BL,0x0000000000000DB6L,0x0000000000000DADL,
0x0000000000000DECL,0x0000000000000DF7L,0x0000000000000DDAL,0x0000000000000DC1L,
0x0000000000000D58L,0x0000000000000D43L,0x0000000000000D6EL,0x0000000000000D75L,
0x0000000000000D34L,0x0000000000000D2FL,0x0000000000000D02L,0x0000000000000D19L,
0x0000000000000C30L,0x0000000000000C2BL,0x0000000000000C06L,0x0000000000000C1DL,
0x0000000000000C5CL,0x0000000000000C47L,0x0000000000000C6AL,0x0000000000000C71L,
0x0000000000000CE8L,0x0000000000000CF3L,0x0000000000000CDEL,0x0000000000000CC5L,
0x0000000000000C84L,0x0000000000000C9FL,0x0000000000000CB2L,0x0000000000000CA9L,
0x0000000000000EE0L,0x0000000000000EFBL,0x0000000000000ED6L,0x0000000000000ECDL,
0x0000000000000E8CL,0x0000000000000E97L,0x0000000000000EBAL,0x0000000000000EA1L,
0x0000000000000E38L,0x0000000000000E23L,0x0000000000000E0EL,0x0000000000000E15L,
0x0000000000000E54L,0x0000000000000E4FL,0x0000000000000E62L,0x0000000000000E79L,
0x0000000000000F50L,0x0000000000000F4BL,0x0000000000000F66L,0x0000000000000F7DL,
0x0000000000000F3CL,0x0000000000000F27L,0x0000000000000F0AL,0x0000000000000F11L,
0x0000000000000F88L,0x0000000000000F93L,0x0000000000000FBEL,0x0000000000000FA5L,
0x0000000000000FE4L,0x0000000000000FFFL,0x0000000000000FD2L,0x0000000000000FC9L,
0x0000000000000B40L,0x0000000000000B5BL,0x0000000000000B76L,0x0000000000000B6DL,
0x0000000000000B2CL,0x0000000000000B37L,0x0000000000000B1AL,0x0000000000000B01L,
0x0000000000000B98L,0x0000000000000B83L,0x0000000000000BAEL,0x0000000000000BB5L,
0x0000000000000BF4L,0x0000000000000BEFL,0x0000000000000BC2L,0x0000000000000BD9L,
0x0000000000000AF0L,0x0000000000000AEBL,0x0000000000000AC6L,0x0000000000000ADDL,
0x0000000000000A9CL,0x0000000000000A87L,0x0000000000000AAAL,0x0000000000000AB1L,
0x0000000000000A28L,0x0000000000000A33L,0x0000000000000A1EL,0x0000000000000A05L,
0x0000000000000A44L,0x0000000000000A5FL,0x0000000000000A72L,0x0000000000000A69L,
0x0000000000000820L,0x000000000000083BL,0x0000000000000816L,0x000000000000080DL,
0x000000000000084CL,0x0000000000000857L,0x000000000000087AL,0x0000000000000861L,
0x00000000000008F8L,0x00000000000008E3L,0x00000000000008CEL,0x00000000000008D5L,
0x0000000000000894L,0x000000000000088FL,0x00000000000008A2L,0x00000000000008B9L,
0x0000000000000990L,0x000000000000098BL,0x00000000000009A6L,0x00000000000009BDL,
0x00000000000009FCL,0x00000000000009E7L,0x00000000000009CAL,0x00000000000009D1L,
0x0000000000000948L,0x0000000000000953L,0x000000000000097EL,0x0000000000000965L,
0x0000000000000924L,0x000000000000093FL,0x0000000000000912L,0x0000000000000909L
};

三点采样逆向结论:CRC多项式左移CRC64=X64+X4+X3+X+1与右移CRC64=X64+X56+X55+X53+X52
发生CRC位域表碰撞。
即它们共有一个CRC位域8表格或错位位域4的1个CRC位域4表格。

依据以上结论可推出:

右移CRC时,其权值可逆(多项式有+1),且最右端一个字节为0x00时,总能得到1个权值不可逆的
左权,满足三点采样逆向的“CRC位域8碰撞”。

左移CRC时,其权值可逆(多项式有+1),且最左端一个字节为0x00时,总能得到1个权值不可逆的
右权,满足三点采样逆向的“CRC位域8碰撞”。


“CRC位域8碰撞”:不同的权值及方向和相同的初值出值以及0x00~0xFF范围内明文对应相同的密文。
在例一中有:
CRCR64_D800000000000000_0000000000000000_0000000000000000[0x00]=0x0000000000000000
CRCL64_01B0000000000000_0000000000000000_0000000000000000[0x00]=0x0000000000000000

CRCR64_D800000000000000_0000000000000000_0000000000000000[0x01]=0x01B0000000000000
CRCL64_01B0000000000000_0000000000000000_0000000000000000[0x01]=0x01B0000000000000

CRCR64_D800000000000000_0000000000000000_0000000000000000[0x38]=0x2080000000000000
CRCL64_01B0000000000000_0000000000000000_0000000000000000[0x38]=0x2080000000000000

CRCR64_D800000000000000_0000000000000000_0000000000000000[0x88]=0xD580000000000000
CRCL64_01B0000000000000_0000000000000000_0000000000000000[0x88]=0xD580000000000000

CRCR64_D800000000000000_0000000000000000_0000000000000000[0xFF]=0x9090000000000000
CRCL64_01B0000000000000_0000000000000000_0000000000000000[0xFF]=0x9090000000000000

以上明文在位域8即0x00~0xFF的范围内,故会产生碰撞,若明文超出范围则不会发生碰撞,如:
CRCR64_D800000000000000_0000000000000000_0000000000000000[0x1111]=0x1AAAB00000000000
CRCL64_01B0000000000000_0000000000000000_0000000000000000[0x1111]=0xBF50000000000000

在例二中有:
CRCL64_000000000000001B_0000000000000000_0000000000000000[0x00]=0x0000000000000000
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0x00]=0x0000000000000000

CRCL64_000000000000001B_0000000000000000_0000000000000000[0x01]=0x000000000000001B
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0x01]=0x000000000000001B

CRCL64_000000000000001B_0000000000000000_0000000000000000[0x10]=0x00000000000001B0
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0x10]=0x00000000000001B0

CRCL64_000000000000001B_0000000000000000_0000000000000000[0x63]=0x000000000000058D
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0x63]=0x000000000000058D

CRCL64_000000000000001B_0000000000000000_0000000000000000[0x99]=0x0000000000000CF3
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0x99]=0x0000000000000CF3

CRCL64_000000000000001B_0000000000000000_0000000000000000[0xFF]=0x0000000000000909
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0xFF]=0x0000000000000909

以上明文在位域8即0x00~0xFF的范围内,故会产生碰撞,若明文超出范围则不会发生碰撞,如:
CRCL64_000000000000001B_0000000000000000_0000000000000000[0x100]=0x000000000000001B
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0x100]=0x0000000000001B00

CRCL64_000000000000001B_0000000000000000_0000000000000000[0x1000]=0x000000000001B000
CRCR64_0000000000000D80_0000000000000000_0000000000000000[0x1000]=0x0000000000000F51

上面海量的数据让人眼晕~~~但会找到规律,再找几对但不举例。

1.选择右移CRC可逆,保留最右端1个字节为0x00, 找到相对的不可逆的左移CRC,发生CRC位域8碰撞
CRC多项式:右移CRC64=X64+X55+X54+X53+X52+X51+X50+X49+X48+X47+X46+X45+X44+X43+X42+X41
+X40+X39+X38+X37+X36+X35+X34+X33+X32+X31+X30+X29+X28+X27+X26+X25
+X24+X23+X22+X21+X20+X19+X18+X17+X16+X15+X14+X13+X12+X11+X10+X9
+X8+X7+X6+X5+X4+X3+X2+X+1
CRC简 写:CRCR64_FFFFFFFFFFFFFF00_0000000000000000_0000000000000000
            第1采样点      第2采样点      第3采样点     第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 01FFFFFFFFFFFFFE FFFFFFFFFFFFFF00 01018141E1119954

CRC多项式:左移CRC64=X64+X56+X55+X54+X53+X52+X51+X50+X49+X48+X47+X46+X45+X44+X43+X42+X41
+X40+X39+X38+X37+X36+X35+X34+X33+X32+X31+X30+X29+X28+X27+X26+X25+X24
+X23+X22+X21+X20+X19+X18+X17+X16+X15+X14+X13+X12+X11+X10+X9+X8+X7+X6
+X5+X4+X3+X2+X
CRC简 写:CRCL64_01FFFFFFFFFFFFFE_0000000000000000_0000000000000000

            第1采样点      第2采样点      第3采样点     第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 01FFFFFFFFFFFFFE FFFFFFFFFFFFFF00 AB9911E1418101FE

三点采样逆向碰撞:0000000000000000 01FFFFFFFFFFFFFE FFFFFFFFFFFFFF00

2.选择左移CRC可逆,保留最左端1个字节为0x00, 找到相对的不可逆的右移CRC,发生CRC位域8碰撞
CRC多项式:左移CRC64=X64+X55+X54+X53+X52+X51+X50+X49+X48+X47+X46+X45+X44+X43+X42+X41+X40
+X39+X38+X37+X36+X35+X34+X33+X32+X31+X30+X29+X28+X27+X26+X25+X24+X23
+X22+X21+X20+X19+X18+X17+X16+X15+X14+X13+X12+X11+X10+X9+X8+X7+X6+X5
+X4+X3+X2+X+1
CRC简 写:CRCL64_00FFFFFFFFFFFFFF_0000000000000000_0000000000000000
            第1采样点      第2采样点      第3采样点     第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 00FFFFFFFFFFFFFF 7FFFFFFFFFFFFF80 2A99888782818080

CRC多项式:右移CRC64=X64+X56+X55+X54+X53+X52+X51+X50+X49+X48+X47+X46+X45+X44+X43+X42+X41+X40
+X39+X38+X37+X36+X35+X34+X33+X32+X31+X30+X29+X28+X27+X26+X25+X24+X23+X22
+X21+X20+X19+X18+X17+X16+X15+X14+X13+X12+X11+X10+X9+X8+X7+X6+X5+X4+X3+X2+X
CRC简 写:CRCR64_7FFFFFFFFFFFFF80_0000000000000000_0000000000000000

            第1采样点      第2采样点      第3采样点     第4采样点
四点采样逆向明文: 0000000000000000 0000000000000001 0000000000000080 FFFFFFFFFFFFFFFF
四点采样逆向密文: 0000000000000000 00FFFFFFFFFFFFFF 7FFFFFFFFFFFFF80 7F808182878899D5

三点采样逆向碰撞:0000000000000000 00FFFFFFFFFFFFFF 7FFFFFFFFFFFFF80

3.选择右移CRC可逆,保留最右端1个字节为0x00, 找到相对的不可逆的左移CRC,发生CRC位域8碰撞
CRC多项式:右移CRC16=X16+X7+X6+X5+X4+X3+X2+X+1(可逆)
CRC简 写:CRCR16_FF00_0000_0000
第1采样点 第2采样点 第3采样点 第4采样点
四点采样逆向明文: 0000 0001 0080 FFFF
四点采样逆向密文: 0000 01FE FF00 66CC

CRC多项式:左移CRC16=X16+X8+X7+X6+X5+X4+X3+X2+X(不可逆)
CRC简 写:CRCL16_01FE_0000_0000

            第1采样点      第2采样点      第3采样点     第4采样点
四点采样逆向明文:     0000         0001        0080       FFFF
四点采样逆向密文:     0000         01FE        FF00       CC66

三点采样逆向碰撞:    0000         01FE        FF00

我们可以:
将不可逆的左移CRC16=X16+X8+X7+X6+X5+X4+X3+X2+X即CRCL16_01FE_0000_0000设为加密密钥
将可逆的右移CRC16=X16+X7+X6+X5+X4+X3+X2+X+1即CRCR16_FF00_0000_0000设为解密密钥
加密明文0x99,CRCL16_01FE_0000_0000[0x99]=0xEEEE,并且公开密文0xEEEE
由于不可逆,disCRCL16_01FE_0000_0000[0xEEEE]=0x32,即不能还原明文为0x99。
用解密密钥,disCRCR16_FF00_0000_0000[0xEEEE]=0x99,即用解密密钥得到明文为0x99。

4.选择左移CRC可逆,保留最左端1个字节为0x00, 找到相对的不可逆的右移CRC,发生CRC位域8碰撞
CRC多项式:左移CRC16=X16+X7+X6+X5+X4+X3+X2+X+1(可逆)
CRC简 写:CRCL16_00FF_0000_0000
第1采样点 第2采样点 第3采样点 第4采样点
四点采样逆向明文: 0000 0001 0080 FFFF
四点采样逆向密文: 0000 00FF 7F80 3366

CRC多项式:右移CRC16=X16+X8+X7+X6+X5+X4+X3+X2+X(不可逆)
CRC简 写:CRCR16_7F80_0000_0000
第1采样点 第2采样点 第3采样点 第4采样点
四点采样逆向明文: 0000 0001 0080 FFFF
四点采样逆向密文: 0000 00FF 7F80 6633

三点采样逆向碰撞: 0000 00FF 7F80

我们可以:
将不可逆的右移CRC16=X16+X8+X7+X6+X5+X4+X3+X2+X即CRCR16_7F80_0000_0000设为加密密钥
将可逆的左移CRC16=X16+X7+X6+X5+X4+X3+X2+X+1即CRCL16_00FF_0000_0000设为解密密钥
加密明文0xaa,CRCR16_7F80_0000_0000[0xaa]=0x6666,并且公开密文0x6666
由于不可逆,disCRCR16_7F80_0000_0000[0x6666]=0x55,即不能还原明文为0xaa。
用解密密钥,disCRCL16_00FF_0000_0000[0x6666]=0xaa,即用解密密钥得到明文为0xaa。

总结:

CRC位域8碰撞只能加密或解密1个字节,因为其结果已超出位域8的范围,即必须“一次一密”。
这样才能满足CRC位域8的碰撞条件,而这个恰好避开了CRC三点或四点攻击。
再者,由于输入只能是一个字节,输出得到多个字节,即内核CRCn的位数。
该方法不管用什么CRCn,都只循环8次即1个字节提前退出。
此方法可以实现CRC非对称密码体系,但要想做为公开密钥密码体系,困难在于加密密钥和解密密钥
很容易推出。


有点光亮,菜农继续研究吧~~~可惜真研究CRC密码的太少了~~~

菜农HotPower@126.com 2009.11.19 构思于雁塔菜地


[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞7
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回