下面为大家介绍GD32 MCU所支持的几种常用的加密方法:
首先GD32 MCU本身支持防硬开盖破解的功能,GD32 MCU内部Flash直接硬开盖破解读取的数据无法在同型号的产品上运行,因为GD32 MCU内部Flash物理地址和逻辑地址是随机加密的,因而可以有效防止硬破解读取代码的可能,这是GD32 MCU本身支持的,无需使用者进行配置;
可以设置读保护,GD32 MCU支持读保护设置,有些MCU支持低保护等级,设置读保护后,通过ISP出厂BOOTLOADER或者SWD端口均无法读取内部Flash数据,如果去除低保护等级,芯片将会执行全片擦除操作;有些MCU可以支持高保护等级,高保护等级下ISP和SWD均无法读取内部Flash数据,且高保护等级不可逆,相当于内部熔丝熔断,因而具有较高的保护效果;
可以进行软件加密,比如读取UID进行加密,UID为96位全球唯一ID,相当于芯片的身份证号码,可以通过UID进行芯片加密,下图为一种简单的通过UID加密方法,芯片外部可以通过自定义加密算法生成密钥,并将密钥保存到芯片或者外部存储中,MCU内部上电运行后,可以软件读取UID并通过加密算法计算当前芯片对应的密钥,然后和存储的密钥进行对比判断,如果一致,就继续运行,如果不一致,可以擦除固件或者其他处理。
实际使用中,大家可以选择多种加密方式共用,以达到更好的加密效果。
MCU代码的加密和解密是一个永恒的话题,对于一个成熟的产品芯片加密也是一个必须要考虑的问题,大家如果有其他好的MCU加密方法,也欢迎大家在评论区留言。
发表评论 取消回复