单片机唯一的特征标识进行加密

前言

​ 之前在开发单片机的嵌入式程序的时候,使用单片机不存在 读保护的方法,于是开始思考这个问题,如何对单片机进行芯片加密,由于产品在研发的过程可能 需要将产品给客户进行送样。所以为了防止在送样阶段芯片被破译导致代码被破解,所以需要对芯片进行加密处理。目前市面上大部分的单片机都存在读保护,避免单片机的数据外泄,但是如果芯片不存在读保护设置,那怎么进行芯片的代码的保护了?

单片机唯一的特征标识进行加密

加密的原理

​ 单片机存在唯一的标志,例如现在的单片机在出厂的时候只会有唯一的序列号码,这个序列号码就相当一个人的身份证,那么可以根据这个序列对内部的代码进行加密,理论上可以做到难破解。

实现步骤

​ 获取单片机唯一id特征,对id进行加密处理,将得到的密文放置到flash中存储(作为钥匙),单片机在运行的读取id特征使用相同的算法加密为密文和之前放入flash中的密文进行对比,如果密文和钥匙相同(匹配成功)单片机的程序则正常运行,反之则运行失败。尽量不用IF判断语句。可用子程序调用地址来参与特征字的加密运算。

实现流程图

实现代码

具体的实现代码可以去我github下载

https://github.com/Krone-D/id_encry

posted @ 2023-03-18 16:46  Kroner  阅读(117)  评论(0编辑  收藏  举报