首页
社区
课程
招聘
[原创]HotWC3密码混淆与扩散的设计与实现
发表于: 2009-7-19 17:59 7580

[原创]HotWC3密码混淆与扩散的设计与实现

2009-7-19 17:59
7580
点击直接运行: 112位HotWC3/CRC通用网上演算器V2.18



在密码学中,混淆与扩散是密码中最基本和最精华的一部分。
混淆可以使解密者无法从明文与密文的对应关系中寻找不出它们与密钥之间的联系。
扩散就是明文或密钥某一位发生变化则对应的密文将引发“雪崩现象”即“面目全非”。

一般常用的是将密钥置换为子密钥再与明文混乱置换、结构交叉互换等各种方法以达到
混淆与扩散的目的。

HotWC3密码采用“各行其道、密钥混淆、随机扩散”的原则:
1.用可逆的核算法CRC8在结构上分为三部分,即CRC密钥、明文流及密文流。
2.在结构上几乎完全对称地化为左右两部分。

从框图上看明文与密文之间几乎无任何关系,唯一的关系就是它们之间的XOR后对天地
和星期两个子密钥的变动。

那么HotWC3如何实现混淆与扩散呢???

在CRC算法中,当CRC密钥确定时,CRC8实际是一张0~255不重复数据的表格。
此时明文对应于唯一确定的一个密文。
故CRC8只是256!(=8*10^506)全排列表中其中的2^16个表格。

那么只要保证每次明文输入时密钥是随机变化的,也就确定了一个随机变化的密文。
注意:
在CRC初值=0时,且权=0,或左移CRC权=1,右移CRC权=0x80时,将发生明文=初值

由于CRC的冗余,即“多对一的关系”,每个密文将对应2^16表格中的某个明文,这种
关系是不可逆的,故不同的密钥就达到了“混淆”的目的。
CRC8密钥碰撞有2^8=256次,即确定的一对明文与密文对应256个不同的密钥(初值、权及方向)。

HotWC3的扩散是随机的。它实际与混淆表格的位置有关。

故HotWC3密码要达到混淆与扩散的目的,只要做到每次加密解密CRC的密钥随机即可。

从框图上看HotWC3是有几个“弱密钥”的,如全部子密钥为0,上部分的子密钥为0x55
0xaa等,因为这些可能使CRC密钥就循环重复几次,即CRC表只有几个。

当然框图是最简洁的,这主要考虑硬件的实现。而且子密钥要先经过内部的初始置换以保证
子密钥的“弱密钥”现象的发生最少。

改进方法可能要加入反馈交叉等方法,使密钥伪随机周期加大。

等和教授们探讨后找出不足而定。

举3个HotWC3混淆和扩散的数据实例(测试工具):

昨日数据:
日期密钥:20090718,用户密钥:12345678,扩展密钥:0000
明文:00000000000000000000000000000000
密文:D5096821C4FBBF51E9CA20F97A54BCE5

今日数据:
日期密钥:20090719,用户密钥:12345678,扩展密钥:0000
明文:00000000000000000000000000000000
密文:E93212BB9FA455524E0D51A9AFDAD49F

明日数据:
日期密钥:20090720,用户密钥:12345678,扩展密钥:0000
明文:00000000000000000000000000000000
密文:2232731E57D89A030444F0D86564DD1F

从以上3组数据可以看出:
1.明文全0,从密文与明文之间的关系很难反推出密钥,即“混淆”---晕
2.密钥之间差一位,3组密文流“面目全非”,即“扩散”---更晕
3.从今日数据和明日数据密文流的第2个数据32可以看出发生了“密文碰撞”。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
CRC加密和解密之间用矩阵表示的关系图示(以CRC4为例):


从HotWC3密码框图可以看出:

用表格分析:
CRC8编码表和解码表各有排列不重复的65536个,每张表格256个0~255不重复的数据。

用矩阵分析:
CRC8编码矩阵和解码矩阵各有256个,前者为对称矩阵,后者不对称。每个矩阵内行列各为256.

对于对称矩阵,行列可交换,故编码矩阵初值和明文的行列位置可以交换。
在权值确定即编码矩阵确定时,初值(行或列)和明文(列或行)对应唯一的密文。(如图所示)

由于解码矩阵不对称,故行列不能交换。
在权值确定即解码矩阵确定时,密文为行时,初值列对应唯一的明文。明文列对应唯一的处置(如图所示)

HotWC3有效攻击途径:
由于HotWC3密码实质是矩阵密码,攻击即破解此密码必须知道明文和密文对在哪2张编解码表中。
又因为HotWC3采用“一次一密”即每对明文和密文都要换编解码表,故必须要得到CRC权,其次为初值和方向。
在框图中很难找出CRC的方向(2个32位的密钥流在随机滚动),就无法确定是哪2张编解码表了。

攻击HotWC3被逼迫找CRC密钥(初值、权及方向),而且明文的输入和密文的输出都有密钥保护。

所以菜农认为HotWC3很难破解,已找知名密码专家论证。
上传的附件:
2009-7-20 18:43
0
游客
登录 | 注册 方可回帖
返回
//