芯片作为数据处理的大脑, 需要对其安全进行重点保障, 因此芯片加密技术至关重要。为了防止未经授权访问或拷贝单片机的机内程序, 大部分芯片都带有加密锁定位或者加密字节, 以保护片内程序。
一般来说, 将加密认证芯片放在PCB板上, 外加一些简单的电路, 同时写入算法防止芯片里面的程序被别人读走, 就被称为芯片加密。这时候, 编程时加密锁定位被使能(锁定), 普通编程器就不能直接读取芯片内的程序, 起到保护措施。
根据加密方案和用法的不同, 可以分为两类加密芯片
一种是是智能卡芯片平台的加密芯片, 应用方案采用算法、数据移植方案。将板上主控MCU的程序和数据移植一部分到加密芯片中运行, 借助加密芯片完成MCU缺失的功能, 同时又保证这部分程序的安全, 进而保证整个产品的安全性。
另一种认证类加密芯片, 其优点是加密芯片平台安全, 算法统一, 应用简单。缺点是整体加密方案安全性较低, 对板上主控MCU的保护力度较弱, 已经证明存在明显安全漏洞。是可以通过对MCU的攻击, 间接破解掉加密芯片的。
加密芯片的原理通常分为以下几种:
1、芯片内部置入数据, 通过对比数据是否相同
缺点:容易被模拟
2、板子与加密芯片同时置入密钥(可相同, 或者通过特别数据运算后相同), 同时加密随机数(不会重复使用), 根据结果来判定是否为合法芯片。
优点:不会被模拟
缺点:如果板子程序被破, 加密芯片就会失效
3、 板子部分核心数据移植到加密芯片中, 需要时调用加密芯片功能
优点:不会被模拟;板子程序被破而加密芯片不被破, 不会影响程序安全