MCU/ARM/DSP工程师很多在设计初期就想到自己即将完成的作品
是否被克隆,总想着用加密几率小的芯片,...在其程序中布满了
陷阱...但往往忽略了串行接口的通讯协议的明文传送的危险,
总认为和PC通讯可能被破解的概率很小,甚至不相信会被破解~~~
实际上裸露通讯线比芯片更危险...
因为大多数人会在你的PC软件下认输,也会在你的MCU/ARM/DSP/CPLD/FPGA下止步,但他们可以通过原硬件进行
技术解密~~~可能比你做的更好~~~因为他的技术水平和经验可能更高.
但是如果再将通讯协议明码交给了对方,恐怕"输得裤子都提不起来"~~~
所以在通讯协议中加密,芯片即使被技术解密也要再解密通讯协议才可~~~
在一般使用中,异或/求和/取反等很常见...这主要是算法简练不太浪费
空间和时间.但这很容易破解~~~
若用复杂的加密解密算法,空间和时间都是问题~~~
所以通过长期的应用,俺觉得CRC密码很实用~~~(算自己是HotCRC的托吧~~~)
CRC密码很简单,变种很多,五花八门~~~这正和MCU工程师的胃口~~~
所以俺别称它为"群魔乱舞的CRC密码"~~~
最基本的是CRC运算的结果的输出流即为CRC密码流.
在CRC计数器上点击"计算"(加密)后再点击"还原"(解密)即可.
CRC密码是可逆运算,它的密钥保护是个实际问题,这个我承认是它最大的弱点~~~
但结合"三角密码"的不可逆,难度为提高,不过乘方/开方对一般MCU不利~~~
若采用交换CRC的几个"关键部件"---移动方向,初值,权后,那么只有
知道原密钥才能攻破CRC密码,即只有用穷举法才能攻破,那么这种密码机制不可靠吗???
|
|
文章评论(0条评论)
登录后参与讨论