标签:
无标签
|
讨论在: http://bbs.21ic.com/club/bbs/list.asp?boardid=11&page=1&t=3016838
hotpower 发表于 2008-6-29 22:59 侃单片机 ←返回版面  |
楼主: 为了革命群众的通讯安危,再举CRC密码大旗保护自己的良田 |
今天农忙有朋友说有一通讯协议很难整,让俺看看~~~ 首先是桌面数据库access被加密...网上有很好的解密的软件~~~所以无密~~~ 再PC到主机有一串口,主机到从机再有N个串口... 协议应该采用的是应答机制,因为无PC软件不能工作...
现在网上的串口拦截/监视软件很多,所以PC到主机的数据流被看的很清晰,很规范~~~ 不得不赞叹~~~太规范了~~~一点"袈裟"也不穿~~~真是"范文"也~~~ 但是主机到从机用串口拦截/监视软件无果...但用串口RXD搭上漏出了原形~~~ 不黄不暴力~~~作者真是个规矩人,熟通电传协议...
半小时的归类分析,完整甚至没拦截到的协议,通过串口调试软件都调试通过...
可能有人说菜农"卑鄙无耻下下流"~~~整天揣者"技巧"游天下...
我晕~~~俺不想PK谁~~~也不想总让人说俺玩得是什么"技巧"~~~
俺这是28年的积累~~~
为向此作者表示"哀悼"和"同情",俺忏悔之中再献CRC密码赎罪~~~
当然在这里俺首先声明CRC密码也不是万能的~~~因为俺此生就破译过2个高难度 的CRC密码...
不过很难~~~俺不过是通过一些"卑鄙"手段侧翼获取~~~
言归正传,俺先浅谈CRC及CRC密码之用途,虽然俺03年开始在网上推销HotCRC, 但估计俺没讲其应用,故很难推广...
这次小朋友给菜农搞了个"老顽童的乐园",见:http://www.hotpage.net.cn/hotpower/HotPower三角及冗余校验密码技术.htm
再通过今天"扒光别人裤头"的产生"喜悦的快感",故感觉CRC密码在MCU的应用应该 得到推广~~~因为它比其他密码更容易嵌入到通讯协议之中~~~
先给几个成功的"案例"吧~~~(和其他软件结果比较)
1.SMBus中的PEC校验
先给个老外网站上的PEC计数器的帖图,可惜后来不知为什么不能网上直接运算了.
注意老外的CRC8实际为PEC

现在用HotCRC(PEC)通用网上验算器计算: 1.设置左移8位CRC. 2.权取0x03---PEC=X8+X2+X1+1

可以从下图中看出两个结果完全一样.


再举个PEC的示例:


再加个例子~~~

下面用菜农的算法得到同样的答案~~~

几个DS1990A的图示样例(单总线上的CRC8)

CRC8"国际算法"


晕到~~~,厂家图中的序列码竟然是错的~~~ 哈哈,要打假呀...晕~~~堂堂DALLAS的文档也有假货,还"全球唯一码"???怪不得被人收购.
正确的序列码校验操作过程图示:
1. 序列码 01 2BC5FB000000 66

2. 序列码 01 B3D8FB000000 E6

以上主要是讲CRC正常校验部分.
实际CRC是可逆的~~~到现在俺还没从数学教授那里得到证实~~~不过长期的应用
菜农是不会毒害劳苦大众的~~~

http://www.hotpage.net.cn/hotpower/HotPower三角及冗余校验密码技术.htm
| |
hotpower 发表于 2008-6-29 23:00 侃单片机 ←返回版面  |
2楼: 占座谈CRC密码对通讯协议的保护作用 |
MCU/ARM/DSP工程师很多在设计初期就想到自己即将完成的作品
是否被克隆,总想着用加密几率小的芯片,...在其程序中布满了
陷阱...但往往忽略了串行接口的通讯协议的明文传送的危险,
总认为和PC通讯可能被破解的概率很小,甚至不相信会被破解~~~
实际上裸露通讯线比芯片更危险...
因为大多数人会在你的PC软件下认输,也会在你的MCU/ARM/DSP/CPLD/FPGA下止步,但他们可以通过原硬件进行
技术解密~~~可能比你做的更好~~~因为他的技术水平和经验可能更高.
但是如果再将通讯协议明码交给了对方,恐怕"输得裤子都提不起来"~~~
所以在通讯协议中加密,芯片即使被技术解密也要再解密通讯协议才可~~~
在一般使用中,异或/求和/取反等很常见...这主要是算法简练不太浪费
空间和时间.但这很容易破解~~~
若用复杂的加密解密算法,空间和时间都是问题~~~
所以通过长期的应用,俺觉得CRC密码很实用~~~(算自己是HotCRC的托吧~~~)
CRC密码很简单,变种很多,五花八门~~~这正和MCU工程师的胃口~~~
所以俺别称它为"群魔乱舞的CRC密码"~~~
最基本的是CRC运算的结果的输出流即为CRC密码流.
在CRC计数器上点击"计算"(加密)后再点击"还原"(解密)即可.
CRC密码是可逆运算,它的密钥保护是个实际问题,这个我承认是它最大的弱点~~~
但结合"三角密码"的不可逆,难度为提高,不过乘方/开方对一般MCU不利~~~
若采用交换CRC的几个"关键部件"---移动方向,初值,权后,那么只有
知道原密钥才能攻破CRC密码,即只有用穷举法才能攻破,那么这种密码机制不可靠吗???
| |
hotpower 发表于 2008-6-29 23:02 侃单片机 ←返回版面  |
3楼: 再预定个座位好好赎罪~~~ |
谈到"赎罪",因为俺此生最得意的是攻克了2个中外著名厂家的CRC密码.
所以俺甚至其厉害和它在MCU中能得到简洁的代码序列,而且有的MCU
还支持SMBus的PEC,用硬件实现.这也为CRC提供了施展的舞台~~~
关于XWJ有关CRC密级及强度的问题,这应该是数学教授研究的话题,
我想XWJ还没资格下此定论~~~至少给个攻击序列和思路也好~~~
我无意强求任何人按俺的方法和思路行事,说不好听的,很少人能跟
上俺的节拍~~~
可以告诉大家,菜农工作在高度机密的"农科所"并承担国家机密的研究~~~
虽然俺没参与其中~~~
最近风声很紧~~~PK声不断~~~本想休眠...但感觉应该让大家了解一下CRC密码在MCU的应用.
虽然加密强度的密码很多,但能在MCU中实用的又有几种???
可怕的代码长度和运行时间,难道能实现"零耗时加密和解密"吗???
网上有个菜农和刀客斑竹搞笑的CRC汇编传送程序,可以看出CRC的加密和解密过程是可以嵌入到传送间隙之中的~~~~
下面的连接可以看到其代码之简洁...
单总线数据发送“零耗时CRC检测”算法的软件实现(灌水作)
| |
xwj 发表于 2008-6-29 23:23 侃单片机 ←返回版面  |
4楼: 说实话,老Hot这个所谓的“加密”根本就没啥强度 |
真对这个感兴趣的话建议研究研究“PGP”、“RSA”、“DES”什么的...
当年读书时有个同学就对PGP非常感兴趣:-)
| |
john_light 发表于 2008-6-29 23:26 侃单片机 ←返回版面  |
5楼: CRC简单而有效 |
|
hotpower 发表于 2008-6-29 23:34 侃单片机 ←返回版面  |
6楼: 哈哈~~~请XWJ破解HotCRC~~~(放心俺不会和你PK~~~) |
|
系统分类:
单片机 | 用户分类:
CRC专栏 | 来源:
原创 | 【推荐给朋友】 | 【添加到收藏夹】