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

基于 RAM 的对称密钥轻量级 RFID 标签认证和加密协议

1. ISO/IEC 29167-19 概述

ISO/IEC 29167-19 规定了适用于 RFID 系统的 RCS(Ravensar 密码套件)密码套件。RCS 是一种轻量级对称密钥密码协议,专为资源受限的 RFID 标签设计。与需要昂贵公钥运算的 ECC 或 DSA 套件不同,RCS 使用共享密钥和基于 RAM 的密钥流生成器,以最小的门电路数量提供认证和加密功能。

RCS 套件以其极低的硬件资源需求而著称——约 4,000-6,000 等效门电路——使其适用于最成本敏感的 RFID 应用,如零售单品级标记、图书馆管理和药品认证。该算法使用 128 位密钥生成伪随机密钥流,与明文进行异或运算产生密文。

RCS 仅需约 5,000 个等效门电路,是 ISO/IEC 29167 系列中最轻量的密码套件之一。作为对比,AES-128 约需 8,000-12,000 GE,而 ECC-256 在典型 ASIC 实现中需要 20,000-30,000 GE。

2. RCS 协议操作

RCS 协议遵循挑战-响应认证模型。读写器通过向标签发送随机挑战(通常为 64 位)来启动协议。标签将挑战加载到其内部基于 RAM 的状态机中,该状态机使用共享密钥生成密钥流。密钥流的第一部分用作认证响应,后续的密钥流字节可用于加密或解密标签存储器内容。

RCS 的一个显著特征是其基于 RAM 的设计,允许每会话从共享密钥初始化密码状态。这消除了非易失性存储器存储中间状态的需求,降低了制造成本并提高了灵活性。该基于 RAM 的状态机设计为能够抵抗简单功耗分析,确保状态转换次数与密钥或数据值无关。

参数 RCS-64 RCS-128 RCS-256
密钥长度 64 位 128 位 256 位
挑战大小 32 位 64 位 64 位
响应大小 32 位 64 位 128 位
门电路数量 ~3,000 GE ~5,000 GE ~8,000 GE
认证时间 ~5 ms @ 1 MHz ~8 ms @ 1 MHz ~15 ms @ 1 MHz
安全等级 低(基本)
RCS-64 仅对坚决攻击者提供边际安全性,应仅用于低安全应用,如防盗检测或库存管理。对于需要防伪或数据隐私保护的应用,建议使用 RCS-128 或 RCS-256。

3. 实现指导

在标签中实现 RCS 需要仔细设计基于 RAM 的状态机。状态机通常由一组线性反馈移位寄存器(LFSR)和非线性滤波函数组成,用于产生密钥流。非线性函数——通常实现为小型 S 盒或一组布尔函数——是提供抵抗代数和相关攻击能力的关键组件。

密钥加载是一个特别敏感的操作。在密钥加载期间,共享密钥被传输到标签的易失性 RAM。如果攻击者可以观察到这一阶段的功耗,密钥可能通过简单功耗分析被恢复。标准建议使用掩码加载技术,即在传输过程中密钥与随机掩码进行异或,只有在密钥安全存储在状态机中后才移除掩码。

RCS 的 RAM 基础设计允许同一硬件通过在不同会话之间用不同密钥重载状态机来支持多个密钥。这使得 RCS 特别适用于多应用标签,其中不同应用使用不同的密码密钥。
RCS 是一种专有算法,尚未经历与 AES 或 SHA 相同水平的公开密码分析。在安全关键型应用中部署 RCS 之前,确保已由独立第三方进行了全面的安全评估。对于更高保证要求,请考虑使用 ISO/IEC 29167-21(AES-GCM)。

4. 常见问题

问:RCS 能否用于加密标签到读写器的通信?
答:可以。在认证阶段之后,密钥流生成器继续生成伪随机字节,这些字节可以与标签存储器数据进行异或,为后续的读/写命令提供机密性保护。
问:RCS 系统中共享密钥如何分发?
答:密钥分发不在 ISO/IEC 29167-19 的范围内。在实践中,密钥通常在标签个性化期间使用安全编程站加载,对应的密钥存储在后台密钥管理系统中。
问:RCS 是否需要标签上的随机数生成器?
答:不需要。在基本 RCS 协议中,随机挑战由读写器生成,而非标签。这消除了标签上 RNG 的需求,进一步降低了标签成本和复杂度。
问:标签断电时会话密钥会怎样?
答:由于 RCS 使用基于 RAM 的状态,密钥流生成器状态在标签断电时(即离开读写器场时)丢失。这实际上是一个安全特性——每次新会话都从读写器提供的挑战重新开始。

发表回复

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