ATSHA204A Microchip CryptoAuthenticationTM 数据手册特性• 具有基于受保护硬件的密钥存储功能的加密元件• 采用对称加密的验证设备主机和客户端操作• 具有报文验证代码(Message Authentication Code, MAC)和哈希报文验证代码(Hash-BasedMessage Authentication Code, HMAC)选项的优异 SHA-256 哈希算法• 一流的 256 位密钥长度;最多可存储 16 个密钥• 有保证的惟一 72 位序列号• 内部高质量随机数发生器(Random Number Generator, ATSHA204A目录特性.:日::日:日:::::日:日:::日应用封装类型1.简介.应用.“.“25551.2.器件特性.1.3.加密操作.2.器件构成…2.1. EEPROM构成:::2.2.静态RAM(SRAM)143.安全特性…3.1.物理安全1632.随机数发生器(RNG)164.通用WO信息4.1.字节和位顺序175.单线接口……185.1.1/O令牌.52.1O标志195.3.同步“.“4195.4.共用接口.…2055.事务示例5.6.单线接口的接线配置6.12C接口246.1.1/O条件.2462.刭 ATSHA204A器件的2C传输256.3.自 ATSHA204A器件的C传输.276.4.地址计数器..…2765.P2C同步66.事务示例7.电气特性307.1.绝对最大值7.2.可靠性7.3.交流参数一一所有MO接口307,4.直流参数一一所有MO接口…33C 2019 Microchip Technology Inc数据手册DS40002025ACN-第3页ATSHA204A8.安全命令368.1.1/O块.…82.休眠序列83.空闲序列.3784.看门狗故障保护.378.5.命令序列379.兼容性.5810.机械信息……10.1.引脚分配5911.封装标识信息6012.封装图.61121.8焊点UDFN61122.8引脚SO|C6412.3.8引脚 TSSOP67124.3引脚触点式.125.3引脚SOT237113.参考和应用笔记7513.1.SHA-256.7513.2.HMAC/SHA-256.75133.密钥值.….17514.版本历史.80Microchip网站变更通知客户服务…客户支持81产品标识体系..82Microchip器件代码保护功能.■■重83法律声明.商标83DNV认证的质量管理体系全球销售及服务网点85C 2019 Microchip Technology Inc数据手册DS40002025ACN-第4页ATSHA204A简介1.简介以下各章节对 Microchip ATSHA204A加密元器件的特性和功能进行了介绍。11应用ATSHA204A属于 Microchip CryptoAuthentication系列高安全性硬件验证器件。它具有灵活的命令集可在许多应用中使用,其中包括防伪验证可移除、可更换或可消耗的客户端是否可信。例如,客户端可以是打印机墨盒、电子子卡、一次性医疗用品或备件。此器件也可用于验证软件/件模块或存储器存储元件。保护固件或介质在启动时验证存储在闪存屮的代码以防止未经授杈的修改(这也被称为安全启动),对下载的媒体文件进行加密,并将代码映像单独加密为仅可在单个系统上使用交换会话密钥在系统微处理器中安全、方便地交换加密/解密引擎使用的数捃流加密密钥,以管理机密通信通道、已加密的下载和类似项。安全地存储数据将加密加速器使用的机密信息密钥存储在标准微处理器中。它还可用亍存储配置、校准、 e Purse值、消耗薮据或其他杋密所需的少量薮据。进行加密/崄证的读取和与入操作时,可实现可编程俫护检查用户密码验证用户输入的密码而不让预期值变为已知,将简单密码怏射到复杂密码,并与远程系统安全地交换密码值。12器件特性ATSHA204A器件包括一个电可擦除的可编程只读存储器( Electricall! y Erasable Programmable Read-OnlMemory, EEPROM)阵列,此阵列可用于密钥存储、其他读/写数据、只读或机密数据、消耗记录和安全配置。可通过不同方式限制对存储器各个部分的访问,并可随后锁定配置以防止更改。有关详细信息,请参见 EEPROM构成一节。ATSHA204A具有多种专门设计的防御机制,可防止对器件本身的物理攻击,或对器件和系统之间传输的数据的逻辑攻击,有关详细信息,请参见安全功能一章。密钥的使用或生成方式上设有硬件限制,这可为某些方式的攻击提供进一步的防御。通过标准P2C接口访问器件,速度最高1Mbps。有关详细信息,请参见P2c接口一章。此接口符合P2C接口规范。此器件还支持单线接口( Single- Wire Interface,sW),可减少系统处理器上所需的GP|O数量,并且/或者减少连接器上的引脚数。有关更多详细信息,请参见单线接口一章使用单线接口时,多个 ATSHA204A器件可共用同一总线,从而减少处理器GP|O在多客户端(例如,不同颜色墨盒或多个备件)系统中的使用。有关实现方式的详细信息,请参见共用接口和 Pause命令一节每个 ATSHA204A都附带一个有保证的惟一9字节(72位)序列号。通过使用器件支持的加密协议,主机系统或远程服务器可证明序列号是真实可信而非副本。序列号通常存储在标准串行 EEPROM中,可轻松复制,主机无法了解序列号是真实可信还是复制品。必须使用亢整的序列号来保证惟一性,ATSHA204A可以生成高质量的随机数,并将其用扌任何目的,包括作为此器件的加密协议的一部分。由于每个32字节(256位)随机数均独立于之前在此器件或仟何其他器件上牛成的数字,因此其包含在协议计算中可确保重放攻击(即,重新传输先前成功的事务)始终失败。请参见随机数发生器(RNG)和Random命令章节C 2019 Microchip Technology Inc数据手册DS40002025ACN-第5页ATSHA204A简介由于具备宽电源电压范围(2.0V至55∨)和超低休眠电流(<150nA)的特性,系统集成非常简单。有关完整直流参数的信息,请参见电气特性一章,本章还介绍了多种封裝选项,其中包括尺寸仪为2.0mmⅹ3.0mm的小型UDFN封装。有关更多详细信息和订购代码,请参见封装图一章有关 Microchip ATSHA204兼容性的信息,请参见兼容性一章。13加密操作ATSHA204A支持标准的质询-响应协议,以简化编程。在最基本的实例中,主机系统向客户端器件发送个质询(例如一个数字),此器件通过来自系统的报文验证代码(MAC)命令将此质询与机密信息密钥组合(如MAC命令一节所述),然后将此响应发送冋系统。此器件使用加密哈希算法来实现此组合(也称为摘要)。使用哈希算法可防止总线上的观察者获取机密信息密钥的值,同时允许接收者使用存储的机密信息副本执行相同的计算(即,将质询与机密信息组合以创建摘要)来验证响应是否正确。由于 ATSHA204A具有灵活的命令集,这种基木操作可通过多种方式扩展。通过使用 GenDig命令( GenDig命令一节),其他槽中的值可以包含在响应摘要中,这提供了一种有效的方式来证眀所读取数据确实来自器件,而不是由中问人攻击者插入。此命令可用于将两个密钥与质询相结合,这在要执行多层验证时十分有用。Deriveκey命令( Deriveκey命令一节)实现了密钥滚动方案。根据命令模式参数,所得到的操作可类似于诸如在远程控制的车库门开启装置中实现的操作。每次使用密钥时,密钥的当前值都会以加密方式与特定于此系统的值组合,此结果随后会构成下一个加密操作的密钥。即使攻击者获得一个密钥的值,此密钥也会在下次使用时永久消失Deriveκeγ还可月于生成新的随机密钥,这些密钥可能仅针对特定主机|D、特定时间段或某个其他受限条件有效。每个生成的密钥都不同于在任何器件上生成的任何其他密钥。通过以这和方式在现场“激活”主机-客户端对,单个客户端的克隆将无法作用于任何其他主机在主机(例如手机)需要验证客户端(例如OEM电池)的主机-客户端配置中,需要将机密信息存储在主机中以验证来自客户端的响应。此 Chec kmac命令( Checkman命令一节)允许主机器件安全地存储客户端的机密信息,并隐藏来自引脚的正确响应值,仅向系统返回yes/ηo回答。需要用户输入的密码吋,chεckac命令还提供了一种在不将密码公开在通信总线上的情况下验证密码以及将密码映射到可具有更高熵的存储值的方法。有关详细信息,请参见密码检查一节。最后,质询和机密信息密钥的哈希组合(例如摘要)可保存在器件上,并与槽中的内容进行异或运算以实现加密读取(Read命令一节),此组合也可以与加密的输入数据进行异或运算以实现加密写入( Write命令一节)。其中的每个操作均可受到防重放攻击保护,方法是将随机临时值( Nonce命令一节)包含在计算中。所冇安全函数均采用行业标准的SHA-256安仝哈希算法实现,此算法是各政府机构和密码专家推荐的最新代高安全性加密算法的一部分。有关算法的详细信息,请参见SHA256一节。必要时,SHA-256算法还可包含在HMAC序列中(见HMac命令一节)。 ATSHA204A采用完整大小的256位机密信息密钥来防止任何形式的穷举攻击。C 2019 Microchip Technology Inc数据手册DS40002025ACN-第6页ATSHA204A器件构成2.器件构成器件包含以下存储块EEPROMSRAM21 EEPROM构成EEPROM共有664宁节(5312位),分为以下几个区域表2-1. ATSHA204A区域区域说明命名法数据512字节(4Kb)的区域分为16个32字节(256位)的通用只读或读/写槽
=存储在存储器槽,每ˆ槽可用于存储密钥、校准数据、型号或其他通常与数据区域的槽YY中的ATSHA204A器件所连接的项有关的信息。每个数据槽的访问策略由编全部内容程到相应配置值中的值确定。但是,策略仅在设置 LockValue宇节时生效配置包含序列号和其他|D信息以及访间数据存储器各槽权限信息的88字节SN=配置区域中的(704位) EEPROM区域。编程到配置区域中的值可确定每个数据槽字段内的字节范围。响应方式的访问策略。配置区域锁定( LockConfig设置为!=0×55)之前可进行修改。为了使能访问策略,必须设置 LockValue字节。(见上文)可一次性编OTP位的64字节(512位)区域。在锁定OTP区域之前,可以使用标准OTP=OTP区域内的程(OTP)rite命令自由写入相应位。OTP区域可用于存储只读数据或单向熔丝一个字节,型消耗记录信息、。而OTP表示一个字节范围。本文档中讨论的术语具有以下含义:表22.文档术语术语含义特定存储区域的单个256位(32字节)区域。工业SHA-256文档使用术语“块”来表示报文输入的模块512位片段。此外,本文档的O部分使用术语“块”来表示在系统和器件之间传输的长度可变的聚合元素对于数据区域,术语“块”和“槽”可以互换使用。对于OTP和配置区域,有多个块(每个块32个槽字节)。param表示参数或字节字段的一位SRAM包含输入和输出缓冲区以及状态存储单元。请参见静态RAM(SRAM)一节从 Microchip发货时,EEPR○M包含可用于固定值电路板测试的出厂测试数据。在锁定器件的配置和/或数据部分之前,此数据必须用所需内容覆盖。关于包含特定交付值的文档,请访问 Microchip网站。21.1 EEPROM数据区域数据区域为512字节(4kb),是 EEPROM阵列的一部分,可用于安全存储目的在锁定配置区域(通过使用Lσck( Config))之前,数据区域不可访问,既不能读取也不能写入。完成配置锁定后,可使用冈riτe命令对整个数据区域进行写操作。如果需要,可以加密要写入的数据。C 2019 Microchip Technology Inc数据手册DS40002025ACN-第7页ATSHA204A器件构成在下表中,“字节地址”表示数据区域内用于相应槽中的第一个字节的字节地址。由于 ATSHA204A的所有Reas和 Writes操作均以字(4字节或32字节)为单位执行,因此下表中的字地址应当用于传送至Read和 Write命令的地址参数。表23数据区域槽槽字节地址(十六进制)字地址(十六进制)字节地址(十六进制)字地址(十六进制)0x00000x000080x01000x00400x00200×000890x01200x0048012345670x00400x0010100x01400×00500x00600x0018110x01600x00580x00800x0020120x01800x00600x00A00×0028130x01A00×00680x00C00x0030140x01c00×00700×00E00×0038150×01E00×00782.1.2配置区域配置区域中的88字节(τ04位〕包含制造标识数据、常规设备和系统配置以及数据区中嘈旳访问限制控制值。这些字节的值始终可使用Read命令获得。此区域的字芍排列如下表所示。表24.配置区域字节0字节1字节2字节3默认值写访问读访问0x00SN<03>0123 XX XX从不始终0x01RevNumXXXXXXXX从不始终0x02SN<4:7>XXXXXX从不始终0×03SN<8>保留2 C Enable保留EE 55 xX 00从不始终0x0412C_ Address CheckMacConfig OTP模式选择器模式c8005500Cong解锁时始终0x05SlotConfig oSlotConfig 18F8080A1Config解锁时始终0x06SlotConfig 2slotConfig 382E0A360 Config解锁时始终0x07Slotconfig 4Slotconfig 59440A085 Config解锁时始终0x08Slotconfig 6SlotConfig 786408707 Config解锁时始终0x09Slotconfig 8Slotconfig 90F0089F2 Contig解锁时始终OXOASlotconfig 10SlotConfig 118A7A0B8 3 Config解锁时始终OxOBSlotconfig 12Slotconfig 130C4CDD4 D Config解锁时始终OOCSlotconfig 14Slotconfig 15C242AF8FCnf解锁时始终0×0 )UseFlag0 UpdateCount0 UseFlag1 Update Count1F00FF00 Config解锁时始终OXDE UseFlag 2Update Count 2 Use Flag 3Update Count3FF00FF00 Config解锁时始终0×0 FUseFlag4 Update Count4 UseFlag5 Update Count5F00F00cong解锁时始终C 2019 Microchip Technology Inc数据手册DS40002025ACN-第8页ATSHA204A器件构成…(续)字字节0字节1字节2字节3默认值写访问读访问0×10 UseFlag6 Update Count6 UseFlag7 Update Count7FF00FF00 Config解锁时始终0×11 LastKeyUse0 LastKeyUse1 LastKeyUse2 LastKeyUse3 FF FFFF FFConfig解锁时始终0×12 LastKeyUse4 LastKeyUse5 LastKeyUse6 LastkeyUse7 FF FF FF FF Config解锁时始终0x13 LastKeyUse8 LastKeyUse9 LastKeyUse LastKeyUse11 FF FFFF FF Config解锁时始终100x14 LastKeyUse LastKeyUse13 LastKeyUse LastKeyUse15 FF FF FF FF Config解锁时始终12140×15 UserExtra选择器LockValueockConfig 00 00 5555仅通过始终UrdateExtra命注1. Lockalue之前称为 LockData。2.1.2.1 12C EnableBit 7-1忽略,山 Microchip设置。Bit O:0=单线接口模式1=P2C接口模式。2.1.2.2 2C Address卩2c模式12 C Enable<0>=1Bit 7-1:P2c器件地址Bit 3:TTL使能(双用途位)F2C地址的一部分,设置阈值0=输入电平使用固定参考1=输入电平使用Vcc作为参考Bit 0:略单线模式2C_ Enable<0>=0Bit:忽略Bit 3:TTL使能0=输入电平使用固定参考。1=输入电平使用VCc作为参考。Bit 2-0:忽略。2.1.2.3 CheckMac Confid此字节仅适用于 CheckMan、Read和 Write命令C 2019 Microchip Technology Inc数据手册DS40002025ACN-第9页ATSHA204A器件构成Read和 Write: CheckMac Config<0>控制槽0和1, CheckMacConfig<1>控制槽2和3,依此类推。如果 TempKey. Source Flag中的值与此字节中的相应位不匹配,则任何加密Read或 Write命令都将失败。对于明文读取利写入,此字节被忽略CheckMan: CheckMacConfig<0>控制槽1, CheckMacConfig<1>控制槽3,依此类推。只有在目标槽对应的 CheckMac Source值与 Checkman命令的 Mode bit2的值匹配吋才会使能复制功能。如果Mode bit2与 TempKey Source Flag不匹配,则此命令将失败,因此这相当于要求此字节中的相应位与 TempKey. SourceFlag匹配21.2.4OTP模式0ⅹAΔ〔只读模式)〓当OTP区域锁定时,禁止写操作,允许所有字的读操作0×55(消耗模式)〓当OTP区域锁定时写入OTP区域会导致位仅从1转换为0。允许读取所有字。0x00(传统模式)三当OTP区域锁定时,禁止写操作,并会禁止字0和1的读懍作以及32字节读操作所有其他模式均保留21.25选择器模式如果为0x00,将月 UpdateExtra更新 Selector如果为其他值,将只允许 Selector在值为零时更新。21.26槽配置请参见表 SlotConfig位(每个槽)2.1.2.7 UseFlag用于“限制使用的槽”。“1”位的数量表示在禁止前槽0至7可使用的次数。2.1.2.8 Update Count表示槽0至7已用 Derivekey更新的次数2.1.2.9 LastKeyUse用于控制槽15的限制使用次数。每个“1”位表示槽15的一次剩余使用次数。仅适用于SlotConfig<5> Limiteduse置1的情况2.1.2.10 UserExtra对于一般的系统使用,可通过 UpdateExtra命令进行修改。21.2.11选择器选择哪个器件将在执行Fεuse命令后保持工作模式2.1.2.12 LockValue控制数据和OTP区域是否解锁、可自由写入但不能读取。0x55=数据和OTP区域已解锁,且具有写访问权限。0κ00≡数据和○TP区域已锁定,并采用配置区域中定义的访冋策略。数据区域中的槽只能根据相应的Write Config字段进行修改。OTP区域只能根据OTP模式进行修改2.1.2.13 Lock Config配置区域访问。0x55=配置区域具有写访问(已解锁)。0x00=配置区域没有写访问(已锁定)。C 2019 Microchip Technology Inc数据手册DS40002025ACN-第10页