目录
一 背景说明
项目程序需要进行加密处理。
考虑利用嵌入式芯片的唯一UID,结合Flash读写来实现。
加密后的程序,可以使得从芯片Flash中读取出来的文件(一般为HEX格式)不能用于其他的芯片。
二 原理介绍
【1】芯片唯一ID
芯片提供了器件电子签名,即唯一身份标识。该信息存储在产品唯一身份标识寄存器中:
UID寄存器描述如下:
其中,UID1、UID2均为16位,UID3为32位,UID4为32位。
这样就可以从0x0x1FFFF7E8地址读取3个32bit的数据,获取它的唯一ID。
【2】程序加密逻辑说明
在讲解简单的程序加密方法之前,先了解一下通常的MCU程序复制方法。
通过烧写器(或者其他手段),将MCU内部程序存储区中的内容全部读出,就获取了烧写文件。如果烧写文件没有被加密,则可以直接将它烧写到别的MCU中运行,就完成了复制。
有没有办法可以使得对方即使获取了烧写文件,也不能直接烧写到别的MCU中运行呢?
我们可以利用芯片的唯一ID来实现一种简单的程序加密方法。由于每个芯片的唯一ID是不同的&