需要明白些概念:
程序安全和通信安全不是一回事,程序安全甚至和加密芯片关系都不大。
程序安全一般指程序不容易被坏,运行稳定不失控,有时有延伸指程序(源码)本身不被获取。
通信安全则更是一个复杂的课题啦。但一般通信的底层协议,比如IIC、串口等等都是透传数据,不涉及信息加密保护,甚至都不涉及信息传递的完整性,这些都是更上层的应用协议(自定 协议)负责的,所以对信息如何加密,是你自己选择(制定)具体的上层协议的事情。这就好比同样是TCP/IP协议基础上,可以有http这样不加密传输,也可以有https这样加密传输,就是http上,其实你如果传输的信息有自己加密内容,也只有对应知道解密方法的人才能正确解密。
芯片加密,为了防止未经授权访问或拷贝单片机的机内程序,大部分芯片都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机芯片内的程序,这就叫芯片加密。
加密原理是将内部应用软件的关键的代码和数据安全地移植到芯片的硬件中保护起来。在需要使用时,应用软件可以通过功能调用引擎指令运行硬件中的关键代码和数据并返回结果,从而依然可以完成整个软件全部的功能。由于这些代码和数据在单片机端没有副本存在,因此解密者无从猜测算法或窃取数据,从而极大程度上保证了整个软件系统的安全性。