该方案安全性仅次于算法移植方案,高于市面上常见的对比认证方案,调试简单,不需要对主控MCU端原有程序做太大的改动,调试周期和研发投入相对较小。无法直接找到比对点,程序执行中没有绝对的对错判断。该方案适用于实时性要求高,MCU端无合适代码移植到安全芯片内部,但又需要高安全防护的项目。凌科芯安公司提供相应的Demo例程,用户直接移植即可使用。
参数保护方案实现的步骤如下:
1、加密芯片与主控MCU端分别预置安全密钥Key1、Key2(相同的3DES密钥);
2、加密芯片端预置用户产品的相关参数Data存储时为Lv格式。可存入参数的大小由“macro.h”中的 “ParamData_Size”宏决定;
3、MCU端发送附带16字节随机数Rand1(密文传送)的读指令读取参数;
4、加密芯片端产生16字节随机数Rand2,生成TempKey=Rand1^Rand2;
5、使用Key1对Rand2加密产生C1,同时使用TempKey对需要读出的参数Data加密得到C2。MCU端传出密文C, C=C1 || C2;
6、加密芯片端接收到密文C后,使用Key2对C1部分解密得到Rand2;
7、MCU端计算TempKey,TempKey=Rand1^Rand2;
8、使用TempKey对C2部分进行解密得到所需要使用的参数数据Data。