1.程序加密可结合AES算法,在程序运行中,通过外部芯片中的AES密钥,加密数据来验证双方的正确性,称之为对比认证。
2.加密数据传输过程中,可通过AES加密后形成密文传输,到达安全端后再进行解密,实现数据传输安全控制。
3.综合1和2,当前高大上的方式是程序加密可进行移植到加密芯片,存储在加密芯片中,运行也在加密芯片内部运行,输入数据参数,返回执行结果,同时辅助以AES加密和认证,实现数据程序的全方位防护
使用加密芯片对程序加密,可以采用认证的方式,比如存储一个密钥(DES 3DES 或AES)在加密芯片中,MCU中也存储相同的密钥,通过加密同一个数据(一般为随机数),来对比密钥是否相同。
但我更建议的是将密钥方式 与 程序移植类的方案做在一起,因为保护程序嘛,将程序放到加密芯片中才是最安全的,对比认证的方式相对来说安全性要差一点。
程序放在芯片中,那么加密芯片只要保证不被破解,程序就不会丢失,自然安全了。