ATSHA204A是由Atmel推出的一款基于SHA-256摘要算法的加密芯片,主要适用于对比认证方案。其内部的Slot区用于存放密钥,OTP区用于存放数据。其认证思路是:MCU和ATSHA204A基于相同的摘要算法、明文、密钥可以计算出相同的摘要结果。密钥的发放和存储是认证的关键,只有合法身份的MCU和ATSHA204A才拥有正确的密钥,其他设备因没有正确密钥,无法计算出正确摘要结果,无法通过认证。
以下介绍实现方法。
1.生产调试阶段
1.1 ATSHA204A完成出厂烧录工作:向OTP区写入存储数据,向Slot区写入密钥KEY1。
1.2 MCU端移植SHA256算法,存储密钥KEY2。KEY1 = KEY2。
2.应用阶段
2.1 主控端向ATSHA204A发送获取Nonce指令,获取随机数RND并且更新芯片内部Tempkey,Tempkey会作为MAC计算的一个参数在第2.3步中用到。
2.2 主控端向ATSHA204A发送计算MAC指令,后者返回MAC计算的结果C1。
2.3 主控端计算MAC值C2:先使用2.1步中产生的随机数RND计算出Tempkey值,再利用Tempkey值、Slot区中的密钥KEY2和其他参数(序列号、OTP区数据等)计算出MAC值C2。
2.4 主控端比较C1和C2值,若相同,则认证通过,继续执行后续程序。若不同,则认证失败。
近期,凌科芯安科技(北京)有限公司推出了一款兼容ATSHA204A功能的加密芯片,可以实现ATSHA204A的国产化兼容替代。了解相关的信息,可以联系该公司。