首页
社区
课程
招聘
与王育民教授邮件中揭示的一些CRC编码矩阵与CRC编解码表之间的关系
发表于: 2009-8-11 00:32 14015

与王育民教授邮件中揭示的一些CRC编码矩阵与CRC编解码表之间的关系

2009-8-11 00:32
14015

http://vipblog.cqvip.com/user1/3643147/

姓 名:王育民
所在的机构:西安电子科技大学
主要研究方向:信息论、编码、密码的理论与应用
社会关系、社会职务:中国电子学会和中国通信学会会士、中国密码学会理事、中国电子学会信息论学会委员、中国自然基金研究会委员、IEEE会员。全国高等学校通信和信息工程专业教学指导委员会主任。陕西电子学会副理事长
出生年月:1936年2月18日

HotWC3已升级到128位流密码体系。
点击直接运行: 128位HotWC3/CRC通用网上演算器V3.08


王老在某次邮件中指出:
XXX:你好!

...


我想请你能将你的方案写一个较简明的说明,给出一个原理图(不是软件实现的流程图),将流密钥生成器的主要运算和步骤描述清楚,能反映出你的主要涉及思想和新颖之处。能让别人能明白你的方案。

当我能搞清楚了你的设计思想后,我们就可以做些讨论了。

祝好!

王育民


王老您好!
不好意思,出差了几天。
近日我又将CRC正运算和逆运算程序做了规范化,将其归为CRC编解码矩阵或CRC编解码表。
这样从编程角度很清晰,但数学证明对我很难。也许“隔行如隔山”吧。但我用穷举证明都是对的。
只是在密码学方面论据不足。
这些关系如下:(其中:初值为上次的密文)
//密文=CRC编码矩阵[初值,明文]=CRC编码矩阵[上次的密文,明文]
//密文=CRC编码矩阵[0, 初值 xor 明文]=CRC编码表[初值 xor 明文]
//密文=CRC编码矩阵[0, 上次的密文 xor 明文]=CRC编码表[上次的密文 xor 明文]
//明文=CRC解码矩阵[初值,密文] = CRC解码矩阵[上次的密文,密文]
//明文=初值 xor CRC解码矩阵[0, 密文] = 初值 xor CRC解码表[密文]

目前教科书和网上流传的CRC查表法可归纳为:(注一般为左移CRCN)
//密文=CRC编码表[((初值 >> (N-k)) ^ 明文) & (2 ** k - 1)] ^ (初值 << k)
其中N为CRCN,即CRC4,CRC8,CRC16,....k=4,8,16,... **表示乘方运算 ^表示异或运算 >> <<表示移位
N >= 4,一般取N>=16,k=8,即256个数据一个CRC表。

您说的“原理图”我知道,不过太繁琐。我画的也不是程序流程图。
“流密钥生成器”我做的与钟控、走停流密钥伪随机生成器相似。

总之是想得到“无限周期”的密钥流。
图中的子密钥流主要为CRC核的各个参数都提供一个独立的密钥流。
本来CRC就是单向的,但知道了CRC密钥就可逆了。
像A5密码是由3个密钥流组成的,它的核只是简单的xor,而 HotWC3的核是CRC
故可为CRC核的各个参数都提供一个独立的密钥流。
这就是我选择CRC做核的主要原因,这样破解HotWC3只能穷举,因为CRC的参数很多。
又由于CRC可“任意碰撞”,即冗余的原因。
一对多或多对一导致即使知道全部明文与密文对也无法知道CRC 密钥。
CRC本不能作为密码,因为它是单向的,但若加密和解密双方都知道密钥流即生成方法,
则加密和解密都是很容易的,反之不知道密钥流则无法解密。
现列举加密和解密程序片段:
/*
右移crc8正算法:
初值:crcvalue
权值:crcval
明文:crcbyte = 输入
结果:crcvalue = 输出密文或下次初值
*/
function crc8r(crcbyte)
{
var i;
crcbyte &= 0xff;//明文,它在正运算中的作用是提供跳变标志
//密文=CRC编码矩阵[初值,明文]=CRC编码矩阵[上次的密文,明文]
//密文=CRC编码矩阵[0, 初值 ^ 明文]=CRC编码表[初值 ^ 明文]
//密文=CRC编码矩阵[0, 上次的密文 ^ 明文]=CRC编码表[上次的密文 ^ 明文]
crcvalue ^= crcbyte;
for(i = 0; i < 8; i++){
if (crcvalue & 0x01)
{
crcvalue >>>= 1;
crcvalue ^= crcval;
if (checkbox.checked)//可逆选择,不选择将不可逆,主要验证权值可逆的“论据”
crcvalue |= 0x80;//强行可逆
}
else
{
crcvalue >>>= 1;
}
}
crcvalue &= 0xff;//输出密文(下次的初值)
}
/*
右移crc8逆算法:

初值:crcvalue
权值:crcval
密文:crcbyte
结果:crcvalue = 输出明文
*/
function discrc8r(crcbyte)
{
var i;
crcbyte &= 0xff;//初值
//明文=CRC解码矩阵[初值,密文] = CRC解码矩阵[上次的密文,密文]
//明文=初值 ^ CRC解码矩阵[0, 密文] = 初值 ^ CRC解码表[密文]
for(i = 0; i < 8; i++){
if(crcbyte & 0x80){//CRC正运算时隐含告诉过需要X8权的XOR运算
crcbyte ^= crcval;//0x8C;//CRC=X8+X5+X4 D7(X8)的XOR被下句移位破坏
crcbyte <<= 1;//与正运算移位相反才能还原
crcbyte ^= 0x01;//强行可逆
}
else
{
crcbyte <<= 1;//与正运算移位相反才能还原
}
}
crcvalue ^= crcbyte;
crcvalue &= 0xff;//输出明文
}
祝好!
XXXX XXX 2009.8.10 1:15

我们可以发现:
密文 = CRC编码表[初值 xor 明文]
明文 = 初值 xor CRC解码表[密文]

固有:
明文 xor 初值 = CRC解码表[密文]

则:
密文 = CRC编码表[初值 xor 明文] = CRC编码表[CRC解码表[密文]]
明文 = 初值 xor CRC解码表[密文] = 初值 xor CRC解码表[CRC编码表[初值 xor 明文]] = CRC解码表[CRC编码表[明文]]

故:CRC编解码矩阵或CRC编解码表是可逆的。

CRC算法做CRC密码的加密强度不高的原因:

根据上述推导,“CRC编解码表”实际就是在CRC密钥(CRC权值和方向)确定时的置换序列。
由于CRC初值=上次CRC密文,故有:
密文 = CRC编码表[上次CRC密文 xor 明文]
明文 = 上次CRC密文 xor CRC解码表[密文]

故在解密CRC密码时,“初值”只是一种摆设而已,其强度只能由CRC密钥(CRC权值和方向)确定。

那么若CRC初值不等于上次CRC密文,则CRC密钥将由三部分组成:CRC初值、CRC权值和CRC移位方向。

HotWC3就是根据这个思路来达到HotWC3密码的“一次一密”即CRC初值也在随机变换,增大密钥实用长度。

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
这什么高深密码算法?
2009-8-11 02:52
0
雪    币: 164
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
不知菜农还没有下文?愿意倾听。
2009-8-18 23:20
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看的我眼花缭乱   太深奥了
2009-8-19 07:17
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
从HotWC3的框图中我们可以看到:
它的主密钥流分成了左右对称的各子密钥流,由于内核采用强制可逆的CRC算法,
故不需要王教授的“密钥流生成器”,否则与CRC核有些工作相同的且复杂而不必要的步骤。
HotWC3的各自密钥流采用不同的移位及互控走停方式,效率绝不次于传统的“密钥流生成器”。

流密码最大的安全在于流密钥流的伪随机周期尽可能长,从而达到“伪一次一密”,使密码不可破解。
公开的流密码体系很少,因为它比分组密码更安全且主要用于军事和外交及通讯。

流密码的安全基于密钥流发生器的伪随机,分组密码基于非线性置换。
HotWC3结合了流密码和分组密码的优点,在流密码引进了“可逆”的CRC算法进行“置换”。

传统的"CRC碰撞"是指不同的CRC明文会得到相同的密文即CRC校验和,而菜农通过多年对
CRC的研究扩展了"CRC碰撞"的定义,将传统的"CRC碰撞"定义为"CRC明文碰撞",并扩展了
“CRC密钥碰撞”,即不同的CRC密钥(初值、权值及方向)会得到相同的CRC密文或CRC明文和密文对。

碰撞就是多对一或单向的表现,即已知密文或明文与密文对也无法推出密钥。
碰撞的根本就是不能可逆即不能作为密码体系。
但是加密和解密方都知道密钥时,将不会产生碰撞,它是一对一的关系,即已知密钥和明文必对应
唯一的密文,反之已知密钥和密文,也必对应唯一的明文。

故:HotWC3的安全基于对密钥的保护和CRC的“任意碰撞”
最后归为“HotWC3的安全基于对密钥的保护”

所以HotWC3是一种安全的流密码体系,它巧妙地利用的碰撞的单向性使逆向无法实现。
碰撞也间接地逼迫逆向者只能穷举一条路。

HotWC3的子密钥流长短不一,主要是对付中间攻击,即选择某一明文密文对进行穷举。
HotWC3中间攻击需要80位密钥长度,而主密钥总长大于80位,故必产生“碰撞”。

所以中间攻击对HotWC3是无效攻击。逆向者攻击长度必须大于80位,所以HotWC3是很安全的。
2009-8-19 19:56
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
今天下午与王老见面。有些想法不见面是说不清的~~~
2009-8-29 01:27
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
7
太深奥了……不适合我,呵呵!
2009-8-29 10:34
0
雪    币: 135
活跃值: (226)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
8
有点名气的学术人物基本上都能经常收到民科发来的邮件,主题一般包括证明哥德巴赫猜想,发现相对论的错误,证明熵增原理的错误,发现TOE,以及,发明无法破解的密码,通常证明/论述过程不超过3页纸,或者也可能是一个gif
2009-8-29 13:22
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不深奥,一切出自自然~~~

与王老聊了4个多小时,从古典密码、流密码、分组密码、公开密钥密码到量子密码。

实在受益匪浅~~~
2009-8-29 23:20
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
10
楼主,乃牛人也!
2009-8-30 09:36
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
73岁高龄的王教授现在还在忘我的工作,非常感动。

与王老聊了4个多小时,从古典密码、流密码、分组密码、公开密钥密码到量子密码。

实在受益匪浅~~~

我年轻的时候就只和大自己一辈的高工们交流,从他们那里我学到了不少知识。
以至于和同辈交流很少~~~

现在更是喜欢和“80后”交往,有点“老小孩”的感觉。

也许是这样,我和王老竟然交流了4个多小时~~~
他很慈祥、很近人,很学究~~~

我们交流的共同语言很多,以至于忘了时间~~~

主 题: Re: Re:Re:_Re:迟复  [举报垃圾邮件]               
时 间: 2009年8月30日(星期日) 上午10:29
发件人: ymwang <ymwang1936@foxmail.com>添加到通讯录拒收邀请
收件人: HotPower <hotpower@126.com>
抄送人: (无)
附 件:  Shannon与现代密码学.doc(172.94K) 下载附件 - 保存到网易网盘

X高工:

     很高兴我们能一起愉快地交流一下午,希望将来有机会你能和我们学校的的年轻人一起合作搞些研究。这样可以发挥你的特长,能够互补双赢。

     发去一份材料供你参考。

祝好!

王育民

本想上传王老的文章,可惜这里的论坛vista下不让上传。

与73岁高龄的王教授愉快交流的4个多小时
2009-8-30 18:40
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
12
怎么会不支持呢,我的也是vista的,只是有些看雪下载的文件在Vista下不能打开
2009-8-30 23:54
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
呵呵,8年后菜农将和王育民教授的博士弟子们继续交流探讨。
菜农已经实现任意CRCn内核的HotWC3密码体系。
而且突破了计算机的位数限制,密钥可以达到任意位数。
2017-9-25 06:35
0
雪    币: 129
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
弹指一挥间…… 菜农的HotWC3,HotCRC250,HotCode,HotBase4096,HotPNG都获得了成功! 谢谢王老!!! 没您十年前对HotWC3的肯定,菜农不会检查这十年!!! 当您说单位不会支持自己,并让菜农首先搞定HotCRC后,菜农没有辜负王老的期望,在理论上彻底破解了CRC通讯协议。 如果王老在十年前说一句HotWC3密码是垃圾,那么菜农绝对放弃继续对HotWC3密码的研究。

2019-6-20 05:24
1
游客
登录 | 注册 方可回帖
返回
//