不敢用明文和密文对照,这样会暴露目标的~~~
看来你没把CRC学习好~~~
CRC本身是做数据校验用的,如果被校验的任意部分被修改,那个校验和就变了~~~
但是你用明文做计数器---不妥!!!
因为他会运行1次看1次数据区的.运行几次后就知道计数器的位置所在了.
如果你用CRC保护,那么就会有2个位置发生变化.
1.计数器. 2.CRC和
所以,应该用密文,每次你将:
初值,权,位数及方向,明文都变化.
只将密文写入eeprom.
这样密钥(初值,权,位数及方向)都事先藏在程序区FLASH里.
根据菜农的CRC密码有多值的特点,他很难**...
例如: CRC8.
由于初值为8位,即有256个组合. 权为8位,但实际为7位,即有128个组合. 方向为1位,即2种组合. 故对其**需要65536个组合.这里密文现在是已知的.
可能你会发现下图的"计算","还原"这2个键.它为什么不用"加密"和"解密"呢???
回头再说~~~
那么攻击65536会得到几个"明文"呢???天知道!!!
因为用1个初值和1个权及方向,必然得到1个结果(256位1个字节).
N个初值和N个权及2个方向,结果也只能在0~255的范围内,即结果为多值.
那么在不知道N个初值和N个权及2个方向时,1个密文有多少个"明文"呢???
哈哈~~~也是---天知道!!!
所以,这就是我酷爱和深入研究CRC密码的原因所在~~~
最后: 只要他复制了eeprom,也就不能阻止继续工作了
如果你内部用FLASH保存一些内容(哪为何再用eeprom,你会这样问的~~~)
再就是用法拉电容或电池...
总之,计数器要是出现"负增量"---格杀勿论!!!
|
|