ISO/IEC 29167-14 — RFID 安全 AES OFB 密码套件

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

一、RFID 安全的 AES 输出反馈模式

ISO/IEC 29167-14 规定了在输出反馈(OFB)模式下使用高级加密标准作为 RFID 安全服务的密码套件。29167-10(AES-128)在认证时使用 CBC 模式,在加密时使用 CFB 模式,而 29167-14 采用 AES OFB 模式,将 AES 分组密码转换为同步流密码。在 OFB 模式下,密钥流通过重复加密前一次加密输出生成:KSi = EK(KSi-1),其中 EK 是密钥 K 下的 AES-128 加密,KS0 是初始化向量(IV)。然后明文与密钥流进行异或以产生密文。

OFB 模式相比 CFB 模式(用于 29167-10)的关键优势在于错误恢复能力:密文中的单个位错误仅影响解密明文中对应的位,不会传播到后续位。在由于衰落或干扰导致位错误常见的 RFID 环境中(典型 BER 为 10^-3 到 10^-4),OFB 模式提供了更优雅的数据质量降级。

该标准规定了两种密钥大小:AES-128(推荐)和 AES-256(可选,用于更高安全性的应用)。两者都操作 128 位数据块,但 AES-256 变体使用 14 轮而非 10 轮。密钥流从初始 IV 开始连续生成,在单个(密钥,IV)对下可加密的最大块数为 2^32 块,超过此限制必须建立新的 IV。此限制防止密钥流因 128 位分组密码输出的生日界限而进入危害安全的状态。

二、协议与密钥流同步

29167-14 中定义的 OFB 模式认证协议建立在与 29167-10 相同的三次传递 SMP 结构上,但在密钥流管理方面存在重要差异。在 Authenticate 命令期间,读写器向标签发送 128 位 IV。标签使用此 IV 结合其存储的密钥来计算初始密钥流块。通过交换加密的挑战值实现双向认证:标签使用第一个密钥流块加密其随机挑战,读写器验证该挑战并使用第二个密钥流块响应其自己的加密挑战。

特性 29167-10(AES CFB) 29167-14(AES OFB) 影响
模式类型 分组密码反馈(CFB) 流密码(OFB) OFB 可预计算密钥流
错误传播 1 位错误 → 128 位块错误 + 下个块中的位错误 1 位错误 → 仅 1 位错误 OFB 更适合噪声信道
预计算 不可行(需要密文输入) 完全可预计算密钥流 OFB 实现更低延迟
IV 要求 每会话唯一 IV 每会话唯一 IV(严格) 实践中要求相同
每(密钥,IV)块限制 2^32 块 2^32 块 相同的生日界限适用
OFB 模式的预计算能力对 RFID 性能具有变革性意义。标签可以在空闲期间(盘点轮次之间)生成前 1 KB 的密钥流并将其存储在小环形缓冲区中。当 Read 命令到达时,标签只需将预计算的密钥流与要传输的数据进行异或,即可在零额外时钟周期内完成加密。这实际上将加密延迟与数据传输路径解耦。

密钥流同步通过 IV 计数器机制进行管理。读写器和标签都维护一个 32 位块计数器,附加到 IV 以生成唯一的密钥流段。每次加密事务后,计数器递增。如果计数器回绕(经过 2^32 个块,约 68 GB 加密数据后),则需要新的 IV 交换。对于每次事务加密 16–128 字节的典型 RFID 应用,该计数器在需要重新密钥前可在最大数据速率下提供超过 1700 万次事务。

三、安全性分析与实现指南

OFB 模式的安全性关键依赖于 IV 的唯一性。如果两个消息在相同的(密钥,IV)对下加密,密钥流相同,可以通过对两个密文进行异或来抵消密钥流,从而揭示明文的异或结果。该标准通过要求读写器使用单调计数器或至少 128 位熵的硬件随机数生成器生成 IV 来解决此问题。标签应将最后使用的 IV 存储到非易失性存储器中,并拒绝具有重复 IV 的 Authenticate 命令。

OFB 模式中一个微妙的工程陷阱是多读写器环境中的密钥流重叠问题。如果两个读写器独立选择相同的 IV 与共享相同密钥的不同标签通信,密钥流将相同。处于两个读写器范围内的攻击者可以捕获两个密文并执行异或攻击。该标准建议在 IV 中包含读写器标识符以防止读写器间 IV 冲突。

在无源标签上的 AES OFB 硬件实现与其在 29167-10 中规定的 AES-128 核心共享大多数数据路径。唯一额外需要的逻辑是一个 128 位寄存器用于保存反馈状态和一个多路选择器用于在 IV(初始化)和先前输出(后续块)之间选择。相比独立 AES-128 加密,OFB 模式的总面积开销约为 150 GE(用于反馈寄存器和控制逻辑),使其成为现有 AES 核心的低成本附加功能。

OFB 模式不提供内在的消息认证——知道明文的攻击者可以修改密文,使得解密后产生任意的明文更改。该标准强制要求 OFB 加密与单独的消息认证码(MAC)结合使用,通常使用 29167-10 中规定的 AES-CBC-MAC。使用 AES OFB 进行加密而没有 MAC 的实现容易受到主动位翻转攻击。务必实现标准附录 C 中规定的加密后加 MAC 的组合方案。

四、常见问题

问:29167-10(AES CFB)和 29167-14(AES OFB)的实际区别是什么?
主要区别在于反馈机制。CFB 将密文反馈回加密引擎,阻止了预计算。OFB 将加密输出反馈回去,实现了完全的密钥流预计算。对于延迟关键的应用(如高速分拣系统),OFB 的预计算优势具有决定性意义。
问:单个 AES 核心能否同时支持 CFB 和 OFB 模式?
可以。两种模式的 AES 加密数据路径完全相同。只有反馈路径不同:CFB 选择密文作为反馈,而 OFB 选择加密输出。单个配置寄存器位即可在两种模式之间切换,使标签能以极小的面积开销同时支持 29167-10 和 29167-14。
问:在大规模部署中 IV 管理如何工作?
对于具有 1000 万个标签的部署,每个读写器为每次事务生成唯一的 IV。96 位 IV 空间(32 位计数器 + 64 位随机分量)提供 2^96 种唯一组合——足以在整个部署生命周期内不发生碰撞。IV 以明文形式作为 Authenticate 命令的一部分传输,因此 IV 传输不产生加密开销。
问:29167-14 是否支持 AES-256 OFB?
是的,作为可选变体。AES-256 使用 256 位密钥和 14 轮(对比 AES-128 的 10 轮)。面积开销约为 20%(额外的密钥存储 + 修改的密钥调度),加密时间增加 40%(14 轮对比 10 轮)。该标准建议对保护寿命超过 10 年的数据的应用使用 AES-256。

发表回复

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