单片机加密方法

Posted WCW的故事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机加密方法相关的知识,希望对你有一定的参考价值。

                          单片机加密方法

  在最近一个项目中,急急忙忙把功能完成就给了客户,完全没有安全意识,现在用烧录器把Flash里的程序一读,我就慌了,完全没有加密,随随便便就把程序读出来了,那我干了一个月的活,被人家花几秒钟读出来了,我这不是白干吗。因此,在这里普及一下安全意思,顺便介绍几种常见的加密方法。

一、打磨或更改芯片型号丝印

  打磨或更改芯片型号丝印可以迷惑破解者,使破解者不知从何入手。当然,这是需要成本的,根据产品价格考虑是否需要打磨。

二、使用加密芯片

  使用加密芯片的成本更加高,同时对于加密芯片可靠度无法掌握,风险很大。

三、开启单片机Flash保护

  大部分有价值的单片机都有Flash保护功能,使能对应的标志位,烧录器就无法通过通讯脚读取Flash里的数据,唯有全部擦除数据。如图1-1新塘单片机图1-1

  也有一些单片机通过程序直接把通讯线路物理意义上的断开,这种方法保护更有效,但从此不能再对单片机写入程序,对于售后服务来说是一种风险。如图1-2ST单片机

图1-2

 

三、使用唯一ID号

  对于一些高端的单片机,在出厂的时候芯片内部就给予了一个唯一的ID号。我们可以添加一个存储器(有的单片机内部有),然后组织一种特殊的算法,利用这个唯一的ID号,产生一组数据,把这个数据预先烧录到存储器里。单片机上电初始化的时候,先读出存储器里的这个数据X,然后读出自身的ID号通过加密算法算出一个值Y,然后比较XY值是否一样,如果一样则继续工作,否则停止工作。这种方法是最实用的一种。如图1-3ST单片机的唯一ID号

图1-3

四、利用外部电路参数校正

  对于一些非纯数字电路,电路自身存在有较大的参数偏差,这时候可以利用软件校正参数偏差,这使得每一块电路板的程序电路一样,但Flash数据不一样。破解者即使破解出程序和电路,如果无法理解电路的含义,则无法校正Flash数据,产品运行结果就会有偏差。

以上是关于单片机加密方法的主要内容,如果未能解决你的问题,请参考以下文章

xxtea---单片机数据加密算法

单片机通信的加密和解密

(023) 关于51单片机的A5指令

现在单片机可以不用烧写器了吗?

LPC2141芯片解密 芯片解密干什么

C#实现HMACSHA256加密算法