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 的国产化兼容替代. 了解相关的信息, 可以联系该公司.
来源: http://www.bubuko.com/infodetail-3412641.html