ISO/IEC IEC 29167-21 — 信息技术安全 — 第21部分:RFID AES-GCM 密码套件

基于 AES 伽罗瓦/计数器模式的 RFID 空中接口认证加密,同时提供机密性和完整性保护

1. ISO/IEC 29167-21 中的 AES-GCM

ISO/IEC 29167-21 规定了在 RFID 系统中使用高级加密标准(AES)伽罗瓦/计数器模式(GCM)作为密码套件。AES-GCM 是一种认证加密算法,在单一统一操作中同时提供机密性(加密)和完整性(认证)。对于 RFID 应用,这种双重特性尤为宝贵,因为它消除了对独立加密引擎和 MAC 引擎的需求,同时降低了门电路数量和协议开销。

该标准定义了两种操作模式:用于完整认证加密的 AES-GCM 和用于仅认证场景的 AES-GMAC(伽罗瓦消息认证码)。两种模式都支持 128 位密钥作为最低要求,并可选支持 192 位和 256 位密钥。底层 AES 核心在 128 位数据块上运行,GCM 模式生成的密文长度与明文相同,外加一个 32-128 位的认证标签。

AES-GCM 是 ISO/IEC 29167 系列中唯一从单一硬件核心提供认证加密(机密性+完整性)的套件。其他套件需要独立的加密和认证步骤,计算时间和功耗都将加倍。

2. 协议与操作细节

ISO/IEC 29167-21 中的 AES-GCM 协议从读写器向标签发送初始化向量(IV,建议 96 位)开始。标签从 IV 开始递增一个 32 位计数器,为每个明文块生成唯一的计数器块。每个计数器块用 AES-128 加密,结果与对应的明文块进行异或以产生密文。同时,密文块在 GF(2^128) 中进行乘法运算以计算 GMAC 认证标签。

GCM 相比其他模式(如 29167-11 中使用的 CCM)的一个关键优势是 AES 加密和 GHASH 计算可以流水线化:在 AES 核心加密第 N+1 块的同时,GF 乘法器计算第 N 块的认证标签。这种流水线使 GCM 能够达到接近原始 AES 加密速率的吞吐量,而额外延迟极小。

参数 AES-128-GCM AES-192-GCM AES-256-GCM
密钥长度 128 位 192 位 256 位
IV/随机数长度 96 位 96 位 96 位
认证标签长度 32-128 位 32-128 位 32-128 位
门电路数量 ~10,000 GE ~12,000 GE ~15,000 GE
吞吐量 @ 1 MHz ~8 Mbps ~6.5 Mbps ~5 Mbps
AAD 支持
切勿对同一 AES-GCM 密钥重复使用 IV/随机数值。如果 IV 被重用,攻击者可以通过在 GF(2^128) 上解线性方程组恢复 GHASH 认证密钥 H,从而完全破解机密性和完整性。对于 RFID 系统,这意味着读写器必须保证与同一标签的所有会话中 IV 的唯一性。

3. RFID 标签的工程设计

在 RFID 标签中实现 AES-GCM 需要两个主要硬件模块:AES-128 加密核心和用于 GHASH 的 GF(2^128) 乘法器。AES 核心约占门电路总数的 70%,GF 乘法器约占 25%,其余为控制逻辑。对于仅需要认证(不需要加密)的标签,仅 GMAC 模式消除了输出密文缓冲的需求,门电路数量可减少约 15%。

功耗管理是使用 AES-GCM 的无源标签的关键问题。在典型的 130 nm CMOS 工艺中,一次完整的 AES-128 加密轮约消耗 5-10 微焦耳。对于在典型读取距离(距 4W ERP 读写器 2-5 米)下运行的无源标签,可用功率约为 10-50 微瓦。这意味着在 1.6 MHz 下需要 50-100 时钟周期的 AES-GCM 操作将耗时 30-60 微秒,并消耗可用能量预算的很大一部分。设计人员必须精心安排 AES-GCM 操作与能量收集和存储的时序,以防止在密码处理期间发生掉电。

在无源 RFID 标签上优化实现的 AES-GCM,在 1.6 MHz 下可在 100 微秒内完成 128 位有效载荷的认证和加密。采用 65 nm 低功耗 CMOS 技术实现时,总能耗约 0.5 微焦耳。
允许标签在 GMAC 标签验证之前输出明文将使系统面临基于时序的预言机攻击。实现必须缓冲所有解密数据,仅在 GMAC 验证成功后释放。否则将启用选择密文攻击,可能恢复 GHASH 密钥。

4. 常见问题

问:AES-GCM 与其他 RFID 标准中使用的 AES-CCM 有何区别?
答:GCM 使用 GHASH 多项式求值进行认证,而 CCM 使用 CBC-MAC。GCM 允许流水线化加密和认证以获得更高吞吐量,而 CCM 需要两次顺序 AES 操作,速度较慢但所需硬件较少。
问:ISO/IEC 29167-21 是否支持附加认证数据(AAD)?
答:支持。AAD 通常用于认证协议头部字节(命令代码、标签 ID、参数长度),这些字节必须以明文形式发送以确保协议运行。
问:如何在 AES-GCM 和 29167 系列中其他套件之间进行选择?
答:当需要同时加密和认证且标签成本允许约 10k GE 时选择 AES-GCM。当需要无预共享密钥的密钥协商时选择 ECC 套件。当需要最低成本标签且仅需基本认证时选择 RCS。

发表回复

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