现代嵌入式软件系统越来越复杂,开发成本很高,且都是基于控制器外加Flash存储芯片的设计方案,上电即从存储芯片读取程序运行,放在Flash中的程序容易被拷贝,PCB电路板也很容易被复制。辛苦设计好的产品总要好好保护免遭克隆,Microchip Atmel 公司专用加密芯片ATSHA204,采用
SHA-256密钥算法,体积小、功耗低、安全性高,可用硬件方式保护程序设计者的知识产权免受侵害。

 

ATSHA204结合内部硬件保护特性,极大地增加了针对OEM电池、游戏控制台、打印机墨盒、经授权附件等装置中安全器件进行硬件攻击而得逞的难度,是工业、消费电子、电力抄表、家庭自动化、计算和医疗应用的理想选择。
时间轴


ATSHA204是采用安全哈希算法(SHA)的全加密安全器件,可以用在大多数密码系统,,是现代大多数安全认证协议的元件。器件包括了高质量硬件随即号码发生器(RNG)以及联邦信息处理标准(FIPS)确定性的随机比特发生器(DRBG),从而防止重放攻击。每个器件保证有单独的72位序列码,主要用在附件、子板等的防复制保护,网络和计算机的安全访问,加密下载的密钥更改,控制网络的加密通信以及建筑物控制和消费类电子等。

 

ATSHA204是一款高安全性的、功能丰富的加密IC,使用SHA-256算法进行加密操作,内置16*32字节的slot(EEPROM)可以存储用户数据和密钥,唯一的9字节序列号用于区分其他芯片,还有512bits的OTP区用于保存一些固定信息。


SHA-256算法
SHA(Securc Hash Algorithm,安全散列算法)是美国国家安全局(NSA)设计、美国国家标准与技术研究院(NIST)发布的一系列密码散列函数。SHA-256是NIST发布了额外的SHA变体,具有256位的信息摘要长度。该算法的简要处理流程包括以下几步:消息填充→附加消息长度→初始化缓存→迭代压缩→得出哈希结果(digest)。
MAC
MAC(消息鉴别码)实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证。ATSHA204中的MAC命令使用SHA-256哈希算法,以88字节的信息量作为输入,并产生一个32字节的报文摘要,以供认证和鉴别。


ATSHA204有两种与主机通信的方式,可以通过单线接口或者I2C总线接口进行通信,本设计采用带有I2C总线接口的芯片。如果主机I/O口在45~85 ms的时间内没有发出时序,则ATSHA204芯片会进入休眠状态,因此在使用前都应当对芯片进行唤醒操作。
(1) 配置config区域。config区域的配置是整个芯片配置的核心,分为对数据槽的配置和对OTP区域的配置。ATSHA204配置区包含对16个数据槽(data slot)的配置,配置的主要目的是对16个数据槽的访问进行限制,每个数据槽的配置项为16位,控制着对应的数据槽的访问和使用,本设计中对16个数据槽统一配置如表1所列,每个数据项的配置值为0x8080。

时间轴


OTP区域配置项对应在config区域中的第4个block中的第3个字节,有两种配置模式:0xAA(Read-onlymode),当OTP区域被锁定时,禁止写入;0x00(Legacymode),当OTP区域被锁定时,禁止写入,32字节读也被禁止。本设计中为了保密设计,配置为0x00。
(2) 使用LOCK命令锁定config区域。
(3) 配置data区域。data区域的配置使用标准的write命令将数据写入其中即可,本设计采用32字节一次性写入的方式,每个data slot可以写入不同的数据,写入data slot中的数据将参与后续的MAC运算,因此对于每组写入data slot中的数据必须谨记。
(4) 写OTP区域。OTP区域属于一次性编程区域,一次性写入之后便不可更改,因此应当谨慎操作,OTP中存放的秘钥也将作为SHA-256输入,在使用MAC方式认证时,只需用到OTP区域中的前11字节,因此只需对前11字节进行写入数据操作即可。
(5) 使用LOCK命令锁定数据区和OTP区域。


先进的多级HW安全:
硬件防探测掩膜,从而防止外界去分析内部数据
所有存储内部加密
硬件编码的安全协议
内部时钟发生器
安全测试方法:没有JTAG、没有调试探测点
旨在防御:探针攻击、计时攻击、协议攻击、故障攻击


相当于智能安全卡
256 位密钥
利用密钥作为HASH消息源的一部分,用于MAC、CheckMac、HMAC、GenDig指令
密钥可以存储于内部EEPROM中的任意位置
(1) Diversified keys根据产品序列码生成key
(2) Rolled Keys:防止每次认证都使用相同的key
(3) Created Keys:根据已知的key产生新的key
(4) Single-use Keys:使用有次数限制
(5) Password Checking:密码检查
(6) 传输key

时间轴

数据手册
应用笔记
应用笔记
干货下载
Atmel-8885-CryptoAuth-ATSHA204A-Datasheet  [下载]
Atmel ATSHA204在安全密钥中的
应用  [下载]
用 Atmel ATSHA204实现安全
引导  [下载]
干货下载——ATMEL_安全加密芯片_ATSHA204  [下载]
微信扫一扫,关注EEWORLD