下面為大家介紹GD32 MCU所支持的幾種常用的加密方法:
首先GD32 MCU本身支持防硬開蓋破解的功能,GD32 MCU內(nèi)部Flash直接硬開蓋破解讀取的數(shù)據(jù)無法在同型號的產(chǎn)品上運行,因為GD32 MCU內(nèi)部Flash物理地址和邏輯地址是隨機加密的,因而可以有效防止硬破解讀取代碼的可能,這是GD32 MCU本身支持的,無需使用者進行配置;
可以設(shè)置讀保護,GD32 MCU支持讀保護設(shè)置,有些MCU支持低保護等級,設(shè)置讀保護后,通過ISP出廠BOOTLOADER或者SWD端口均無法讀取內(nèi)部Flash數(shù)據(jù),如果去除低保護等級,芯片將會執(zhí)行全片擦除操作;有些MCU可以支持高保護等級,高保護等級下ISP和SWD均無法讀取內(nèi)部Flash數(shù)據(jù),且高保護等級不可逆,相當(dāng)于內(nèi)部熔絲熔斷,因而具有較高的保護效果;
可以進行軟件加密,比如讀取UID進行加密,UID為96位全球唯一ID,相當(dāng)于芯片的身份證號碼,可以通過UID進行芯片加密,下圖為一種簡單的通過UID加密方法,芯片外部可以通過自定義加密算法生成密鑰,并將密鑰保存到芯片或者外部存儲中,MCU內(nèi)部上電運行后,可以軟件讀取UID并通過加密算法計算當(dāng)前芯片對應(yīng)的密鑰,然后和存儲的密鑰進行對比判斷,如果一致,就繼續(xù)運行,如果不一致,可以擦除固件或者其他處理。

實際使用中,大家可以選擇多種加密方式共用,以達到更好的加密效果。
MCU代碼的加密和解密是一個永恒的話題,對于一個成熟的產(chǎn)品芯片加密也是一個必須要考慮的問題,大家如果有其他好的MCU加密方法,也歡迎大家在評論區(qū)留言。