原创 CRC密码体系的设计理念和菜农的思维方法

2009-12-16 07:24 2203 5 5 分类: MCU/ 嵌入式

在正常的密码设计思维中,“混淆和扩散”占有极其重要之地位。


传统密码即对称密码体系的主流是基于“S盒”的设计理念,它的鼻祖非DES莫属。


公开密钥密码即非对称密码体系的主流是基于“数学难题”的设计理念,它的鼻祖非RSA莫属。


 


前者的“S魔盒”肯定具有潜在的“陷门”,可能至今未被人们发现,但它们都和CRC编解码矩阵都归属于


某个特定序列的全排列集合之中,区别只是“S盒”号称的“非线性”而CRC编解码矩阵符合查表的“线性”。


 


后者的“数学难题”只能相对某个时代或某些攻击手段之下。“难题”同时归属于编码和解码者。


虽然编码者拥有某些“陷门”可使问题简化,但解码者一样可以借助于“陷门”。


 


两者都有一个共同的理想:“随意拥有任意长度的密钥且总比明文流长”


 


菜农在“广义域陷门三角密码体系”中已解决了“此理想”,现在带来的烦恼:“如何缩减密钥长度与密文流等长”


 


“烦恼”先放在一边~~~看看“CRC密码体系的设计理念”:


首先CRC可看成是“线性的S盒”,其次是“抛开数学难题的限制”,直接从《密码分析学》来看《密码学》。


一个完善的对称密码体系的安全应该只依赖密钥而与其他算法等无关。它可以抗击除穷举之外的任意攻击方法。


那么我们是否可以这样思维:密钥只能穷举,即使给出全部的明文与密文的正确配对。


即能否设计一种基于密钥碰撞的密码安全体系。这样就可以逼近Sannon在1949年提出的“安全密码”的定义。


 


“基于CRC密钥碰撞的CRC对称密码体系”的设计理念:


CRC的密钥包含四大元素:权值、方向、初值和出值。


其中CRC权值和CRC方向共同锁定一张“CRC编解码表”即“CRC编解码矩阵”。


再:CRC权值和初值及出值的位数等长,即CRCn可看成是2^n个位分组。


当明文与CRC权值等长时,由于“CRC初值出值碰撞”的原因,即使破解了CRC权值,经过穷举初值和出值获得正确的密文,也无法知道正确的CRC初值和出值。


因为此时有2^n个初值和出值配对可以得到正确的密文,还有2^(2n)-2^n个不正确的初值和出值配对。


 


当明文长度大于权值长度时,2^n次穷举中的一对初值和出值只能破解明文的前2^n位,其后的全部明文流


必须在那个唯一正确的即2^n中唯一正确的初值和出值配对才能得到正确的2^n后的密文流。


 


故“基于CRC密钥碰撞的CRC对称密码体系”的设计理念是正确的,唯一遗憾的是前2^n位容易受到穷举的攻击。


但这必须在破解CRC权值及方向后才会发生。


 


以CRC16为例(参见《关于CRC实际密钥位长度计算问题》):


CRC16实际密钥位=3*2^(3*16-1)=3*2^47>2^48。即CRC16的密钥长度3*2^47比自己的3倍48位还长点。


 


我们可以简化认为CRC16的密钥是由16位CRC权值和方向,16位的初值和16位的出值共48位密钥。


首先当16位的CRC权值和方向被穷举破解后,对于16位的明文将会每65536个初值和出值组合得到同样的16位密文。


而这65536个初值和出值组合中只有一个是正确的,必须知道它才能得到16位以外的明文对应的密文。


 


菜农的思维方法就是如此的发散,无法“收敛”。王育民教授让俺将此“收敛”写出,实在是“苦恼”!!!


 


此方法及设计理念已在最新版的HotWC3网上在线CRC运算器V5.08中得到验证,暂不发布,等菜农自己先攻击


自己几天~~~


 


菜农HotPower@126.com  2009.12.16 于雁塔菜地


 


●█〓██▄▄▄▄▄▄ ●●●●●●→ ''''╭WWWW╮
▄▅██████▅▄▃▂ 传播非典灌水四方 ( ●_●)
███天█马█行█空████ '''',,,;,;,;'''/▇\''
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲◤ 群魔乱舞见阳光/MMMM\


 


 


 



把 HotPage网址之家 设为首页欢迎访问HotPower的农家乐

 


 


 


 


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条