ISO/IEC 29167-10 — RFID 安全 AES-128 密码套件

信息技术 — 自动识别与数据采集技术 — 第10部分:安全服务 AES-128 密码套件

一、RFID 场景下的 AES-128

ISO/IEC 29167-10 规定了高级加密标准(AES)配合 128 位密钥作为 RFID 安全服务的密码套件的使用。AES-128 由 NIST 在 FIPS 197 中标准化,是一种对称分组密码,使用 128 位密钥对 128 位数据块进行操作,经过 10 轮 SubBytes、ShiftRows、MixColumns 和 AddRoundKey 变换。在 RFID 场景下,该标准将 AES-128 适配到无源标签硬件的严格限制中——有限的门数(密码核心通常为 3,000–8,000 门)、超低功耗(1.2 V 下低于 5 µW)以及短暂的事务时间窗口(完整认证周期低于 50 毫秒)。这种适配并非简单的算法移植,而是在保持安全强度的前提下对硬件架构的深度优化。

用于 RFID 的 AES-128 核心采用 0.18 µm CMOS 工艺可实现约 3,400 个等效门,在 100 kHz 下功耗约为 3.8 µW。这使其成为适合标签集成的最具面积效率的分组密码之一。

该标准定义了 AES-128 如何在 29167-1 的安全管理协议(SMP)框架内用于双向认证、加密通信和消息完整性校验。密码套件在认证时使用密码分组链接模式(CBC),在加密数据传输时使用密码反馈模式(CFB)。密钥多样化通过标准中指定的基于 AES 的密钥派生函数实现,该函数从主密钥和标签标识符生成标签唯一密钥(TUK)。

二、认证协议与消息格式

AES-128 认证协议采用三次传递的挑战-响应方案。在第一次传递中,读写器发送包含 128 位随机挑战(R1)和套件标识符的 Authenticate 命令。标签使用自己的 128 位随机挑战(R2)和基于 R1、R2 及共享密钥计算的加密认证令牌进行响应。读写器验证令牌,计算响应令牌并将其发送回以完成双向认证。

步骤 方向 载荷 典型处理时间
1. 读写器挑战 读写器 → 标签 128 位 R1 + 套件 ID 2 毫秒(传输)
2. 标签响应 标签 → 读写器 128 位 R2 + AES(R1 || R2 || 密钥) 12–18 毫秒(加密)
3. 读写器确认 读写器 → 标签 AES(R2 || R1 || 密钥) 2 毫秒(传输)
一项关键的工程成就是将 AES 核心同时复用于认证和加密——同一硬件数据路径同时服务于认证的 CBC-MAC 和数据保密的 CFB 模式。这种双重使用相比实现独立的认证和加密引擎可减少约 25% 的门数。

消息格式利用了现有的 ISO/IEC 18000-6C 命令结构。Authenticate 命令使用保留命令代码(0xE0)编码,载荷包含套件标识符、挑战值和控制标志。标签的响应通过标准的 RN16 握手返回,随后在响应窗口中携带 128 位的加密载荷。这种精心设计的映射确保无需任何物理层更改即可支持 AES-128 安全功能。

三、硬件实现考量

在 RFID 标签上实现 AES-128 密码套件需要仔细的架构决策。数据路径可以实现为全 128 位迭代架构(快速、高门数)或紧凑型迭代架构(较慢、最少门数)。对于 RFID 应用,紧凑型架构——每时钟周期处理一个字节——是主流选择,在一个 AES 轮次中需要 16 个时钟周期,完整的 10 轮加密约需 240 个时钟周期(包括密钥调度)。

AES S 盒是最占用面积的组件,在紧凑型实现中约占门总数的 60%。设计人员通常使用复合域算术(将 GF(2^8) 映射到 GF(2^4)^2)来将 S 盒面积减少 30–40%,代价是增加关键路径延迟。这种权衡对于 RFID 是可接受的,因为工作频率(100–500 kHz)远低于时序收敛极限。

密钥存储是一个关键安全问题。128 位 AES 密钥占用 128 位非易失性存储器(通常为 EEPROM 或 Flash)。该标准强制要求密钥存储在无法通过标准 Read 命令访问的保留存储器库中。只有通过 SMP Authenticate 命令序列才能访问密钥存储器,而且即便如此,密钥本身也从不传输——只有从密钥派生出的加密令牌才被传输。从系统角度来看,密钥管理必须包括标签个性化过程中的安全密钥注入,通常在安全设施中使用基于 HSM 的编码站执行。在实际项目中,密钥管理系统还需要支持密钥的定期轮换和撤销机制,以应对长期部署中的安全风险。

早期 AES-128 RFID 实现中的一个常见漏洞是用于挑战的随机数生成不足。如果 128 位挑战随机数可预测,攻击者可以重放先前的认证迹线或对 AES 引擎执行选择明文攻击。务必使用具有足够熵的硬件真随机数生成器(TRNG),而不是软件伪随机生成器来生成挑战随机数。

四、常见问题

问:AES-128 对于 RFID 安全应用是否足够强大?
是的。截至 2026 年,没有实用攻击能比暴力破解(2^128 次运算)更快地破解 AES-128。对于使用短期会话密钥和频繁重新认证的 RFID 应用,AES-128 提供了稳健的安全性。对于更高安全性的应用,可以在其上层叠 29167-14(AES OFB)。
问:同一个 AES 核心能否同时用于数据加密和认证?
是的。该标准规定使用 CBC-MAC 进行认证,使用 CFB-128 进行加密,两者都复用相同的 AES 加密数据路径。只有模式控制器逻辑在两种操作之间存在差异。
问:AES 对无源标签的功耗影响有多大?
在 100 kHz 和 0.18 µm 工艺下,一次完整的 AES-128 加密消耗约 3.8 µW。这占典型 UHF RFID 标签总功率预算的 10–15%,为存储器读写和反向散射调制留出了足够的余量。
问:如何在现场更新密钥?
SMP 中定义的 KeyUpdate 命令允许读写器向标签发送新的加密密钥。新密钥在当前会话密钥下加密后写入标签的密钥存储器。标签通过返回更新命令的 MAC 来确认更新。

发表回复

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