前言
之前在开发单片机的嵌入式程序的时候,使用单片机不存在 读保护的方法,于是开始思考这个问题,如何对单片机进行芯片加密,由于产品在研发的过程可能 需要将产品给客户进行送样。所以为了防止在送样阶段芯片被破译导致代码被破解,所以需要对芯片进行加密处理。目前市面上大部分的单片机都存在读保护,避免单片机的数据外泄,但是如果芯片不存在读保护设置,那怎么进行芯片的代码的保护了?
单片机唯一的特征标识进行加密
加密的原理
单片机存在唯一的标志,例如现在的单片机在出厂的时候只会有唯一的序列号码,这个序列号码就相当一个人的身份证,那么可以根据这个序列对内部的代码进行加密,理论上可以做到难破解。
实现步骤
获取单片机唯一id特征,对id进行加密处理,将得到的密文放置到flash中存储(作为钥匙),单片机在运行的读取id特征使用相同的算法加密为密文和之前放入flash中的密文进行对比,如果密文和钥匙相同(匹配成功)单片机的程序则正常运行,反之则运行失败。尽量不用IF判断语句。可用子程序调用地址来参与特征字的加密运算。
实现流程图
实现代码
具体的实现代码可以去我github下载
https://github.com/Krone-D/id_encry
标签:加密,标识,芯片,单片机,密文,id,进行 From: https://www.cnblogs.com/Kroner/p/17231170.html