固件加密
固件加密流程
前言
通常所说的MCU加密是指将用户的程序固件保护起来,防止别人通过外部调试接口或者其他方法读取烧写在Flash中的程序。保护自家方案不轻易被别家抄袭,从硬件上保护自己的知识产权。MCU加密还指防止自家程序被恶意读取破解。
整体思路:
- 使用公钥加密算法,生成公私钥数据 (例如: ECDSA256), 私钥保存好,对每一台出厂设备都使用相同的私钥进行加密
- 加密: 读UID -> sha256计算摘要 -> 私钥加密摘要生成签名
- 数据保存: 将签名和公钥保存到设备
- 解密: 读UID -> sha256计算摘要1, 公钥解密签名还原摘要2, 比较摘要1是否等于摘要2?
保密流程:
- 公钥私钥是对称加密算法, 私钥加密的数据只能使用公钥解密
- sha256是不可逆算法,可以隐藏被加密的数据
- 设备上只有公钥和签名数据,很安全,不会被反向破解
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小石头的博客!