打印
[应用方案]

新唐MCU通过UID加密的一种方法

[复制链接]
2250|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
新唐的每颗MO/M4芯片内部均有一个96位的唯一ID码(UID),通过该UID码,用户可以对程序进行相应的加密,以保证其他人若拿到其程序,将程序烧录到同种MCU,功能也不能正常运行。
下面介绍一种通过MCU的UID码对程序进行加密的方法。
首先对MCU烧录程序时,需把密钥文件同时烧录到MCU的DataFlash(为了加大**难度,可将密钥的位数设置多点,数据设置复杂点),下图为通过ICP工具烧录程序的一个示意图:
MCU烧录程序后,首次上电时,首先读取DataFlash指定位置的密钥,并判断是否与之前烧录的密钥一致,以此来判断该MCU是否是第一次运行。若是第一次运行,首先擦除DataFlash的密钥,然后卖取MCU的UID码并进行加密运算,然后将加密运算后的结果(即密码)存储到DataFlash的指定位置;若不是第一次运行,读取MCU的UID码并进行加密运算,然后将加密运算后的结果与DataFlash 指定位置的密码进行比较。若比较结果一致,则解密通过,程序往下正常运行;若不一致,则解密不通过,程序进入死循环。
相应程序流程图如下:

使用这种加密方法有以下两个优点:1、烧程序时,不用制作专门的,可以生成加密数据的烧录器对芯片进行烧录,芯片首次运行时会自动生成加密数据;2、若客户的产品需要在用户端可以通过串口等升级程序,用这种加密方法,可以保证把程序发给客户升级,客户将该程序烧录至到其他同种类型的芯片上是不能正常运行的。
当然使用这种加密方法也有个缺点,就是必须保证产品出厂前MCU已运行过一次,即已将密钥擦余并已生成加密数据。

使用特权

评论回复
沙发
lidi911| | 2020-11-10 08:10 | 只看该作者
感谢楼主分享经验

使用特权

评论回复
板凳
zeshoufx| | 2020-11-10 08:47 | 只看该作者
谢谢分享【MCU通过UID加密的一种方法】

使用特权

评论回复
地板
taobaofarmer| | 2020-11-10 10:20 | 只看该作者
听说现在深圳POJIE的,已经能把UNIQUE ID修改成和母片一样的了

使用特权

评论回复
5
汽车电子| | 2021-10-10 13:35 | 只看该作者
都这年代了,加密还用判断跳转?太落后了,人家反汇编可以直接跳过这段。

使用特权

评论回复
6
skyred| | 2021-10-11 10:50 | 只看该作者
挺好的,可以试试

使用特权

评论回复
7
两只袜子|  楼主 | 2021-10-12 09:53 | 只看该作者
这加密方法的确有点落后啊

使用特权

评论回复
8
aa642895350| | 2022-3-17 09:53 | 只看该作者
两只袜子 发表于 2021-10-12 09:53
这加密方法的确有点落后啊

还有别的加密的方法么

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2035

主题

7339

帖子

10

粉丝