ISO/IEC IEC 29167-22 — 信息技术安全 — 第22部分:RFID SHA-2 密码套件

基于 SHA-256/384/512 哈希函数的 RFID 标签认证和数据完整性验证协议

1. ISO/IEC 29167-22 中的 SHA-2

ISO/IEC 29167-22 规定了 SHA-2(安全哈希算法 2)哈希函数族作为 RFID 系统的密码套件。与 29167 系列中同时提供认证和加密的其他套件不同,SHA-2 是一种单向哈希函数——它接受输入消息并产生固定长度的摘要,该摘要无法反向恢复原始消息。在 RFID 应用中,SHA-2 主要通过 HMAC(基于哈希的消息认证码)结构用于标签认证和数据完整性验证。

该标准支持 SHA-2 族的三个成员:SHA-256(32 字节摘要)、SHA-384(48 字节摘要)和 SHA-512(64 字节摘要)。三者均基于相同的 Merkle-Damgard 构造,但具有不同的字长、轮数和初始值。标准还规定了截断变体(SHA-224 和 SHA-512/256),适用于需要较短摘要以减少空中传输时间的应用。

SHA-256 为 RFID 应用提供了安全性和性能的极佳平衡。256 位摘要提供 128 位碰撞抗性——相当于 AES-128 的安全级别——而硬件实现仅需约 8,000-10,000 个等效门电路。

2. HMAC 构造与认证协议

ISO/IEC 29167-22 中规定的 HMAC 构造遵循 RFC 2104:HMAC(K, m) = H((K’ XOR opad) || H((K’ XOR ipad) || m)),其中 H 是选定的 SHA-2 函数,K’ 是填充到块大小的密钥,opad 和 ipad 是外部和内部填充常量。标签存储共享密钥,在收到读写器挑战后,计算挑战和标签特定上下文(标签 ID、会话计数器或两者)的 HMAC,生成认证响应。

该协议支持单向(标签到读写器)和双向(标签到读写器和读写器到标签)认证。在双向认证模式下,读写器还计算标签响应和自身挑战的 HMAC,证明其拥有共享密钥。此模式可防止恶意读写器试图从标签提取敏感数据的读写器冒充攻击。

参数 SHA-256 SHA-384 SHA-512
摘要大小 256 位(32 字节) 384 位(48 字节) 512 位(64 字节)
字长 32 位 64 位 64 位
轮数 64 80 80
碰撞抗性 128 位 192 位 256 位
门电路数量 ~9,000 GE ~14,000 GE ~18,000 GE
HMAC 吞吐量 @ 1 MHz ~40 次认证/秒 ~25 次认证/秒 ~18 次认证/秒
SHA-2 哈希函数在未使用 HMAC 构造而直接用于认证时容易受到长度扩展攻击。始终使用标准中规定的 HMAC 构造,而不是尝试使用原始 SHA-2 哈希构建自定义认证协议。

3. 硬件实现策略

用于 RFID 标签的 SHA-2 硬件核心包含三个主要组件:消息调度器(将 16 个消息字扩展为 64 或 80 个轮字)、压缩函数(应用轮常数和布尔函数)和状态寄存器文件(保存八个工作变量)。消息调度器占据门电路数量的主导地位,约占核心面积的 45%,压缩函数约占 35%,状态寄存器约占 20%。

对于无源标签,最高能效的 SHA-2 实现采用完全展开的数据路径,每轮一个时钟周期,每次哈希操作共 64-80 个时钟周期。在典型的 1-2 MHz 标签时钟频率下,一次 SHA-256 哈希在 32-80 微秒内完成。在 130 nm CMOS 工艺下,哈希期间的瞬时电流约为 5-15 微安,必须在标签能量收集预算范围内。

SHA-2 相比基于公钥的套件的一个关键优势是哈希函数纯粹是组合逻辑的,不需要任何随机数生成器即可运行。这消除了一个重要的硬件复杂性来源和潜在安全漏洞。
针对 SHA-2 HMAC 实现的侧信道攻击可以通过分析消息扩展阶段的功耗来恢复 HMAC 密钥,因为该阶段具有数据相关的活动。实现应使用掩码技术,在消息字进入调度器之前与随机掩码进行异或,扩展完成后再移除掩码。

4. 常见问题

问:SHA-2 认证与 AES-GCM 认证相比如何?
答:SHA-2 HMAC 仅提供认证(不提供加密),所需硬件少于 AES-GCM。SHA-2 也不受 IV 唯一性要求的约束,这使得 AES-GCM 在多读写器环境中的随机数管理更具挑战性。
问:SHA-256 能否用于标签上的数据加密?
答:不能。SHA-2 是单向哈希函数,不是加密算法。但它可以作为流密码构造或密钥派生的构建块,一些专有设计确实采用了这种用法。
问:SHA-256 是否具有抗量子计算能力?
答:部分具有。SHA-256 的碰撞抗性通过 Grover 算法从 128 位降至约 85 位。虽然未被完全攻破,但设计人员应关注量子哈希碰撞研究的进展情况。
问:新 RFID 设计推荐使用哪种 SHA-2 变体?
答:SHA-256 是推荐的基线。它为大多数应用提供足够的安全级别(128 位碰撞抗性),同时最小化硅片面积和功耗。SHA-384/512 应保留用于高安全政府或金融应用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注