ISO/IEC 29167-11 — RFID 安全 PRESENT-80 轻量级密码套件

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

一、PRESENT-80:面向资源受限 RFID 标签的轻量级密码

ISO/IEC 29167-11 规定了 PRESENT-80 分组密码作为 RFID 安全服务的密码套件。PRESENT 是由 Bogdanov 等人于 2007 年设计的轻量级分组密码,特别针对 RFID 标签和传感器节点等资源极度受限的环境进行了优化。它使用 80 位密钥操作 64 位数据块,采用替代-置换网络(SPN)结构,共 31 轮。该密码的突出特点在于其极小的硬件占用:采用 0.18 µm CMOS 工艺的 PRESENT-80 实现仅需约 1,570 个等效门,不到同类 AES-128 核心面积的一半。

PRESENT 密码被选为 ISO/IEC 29167-11 标准,专门用于具有极端面积限制的标签。其 1,570 门的占用面积为芯片上额外的存储器、传感器接口或协议逻辑留出了充足空间——这对于多功能 RFID 标签来说是一个关键优势。

该标准定义了 PRESENT-80 在 SMP 框架内用于双向认证和加密通信的使用。密码在消息认证码(MAC)时使用密码分组链接模式(CBC),在数据加密时使用输出反馈模式(OFB)。80 位的密钥长度提供了适用于供应链和物流应用的安全级别,在这些应用中,每个标签的价值较低但数量巨大。PRESENT S 盒基于 4 位到 4 位的非线性映射,特别适合紧凑型硬件实现,仅需要 16 个查找表条目,而 AES 需要 256 个条目的 S 盒。

二、协议集成与性能特征

PRESENT-80 认证协议遵循 29167-1 中定义的相同三次传递挑战-响应结构,但消息大小已适配 64 位块大小。挑战随机数为 64 位(而不是 AES-128 中的 128 位),认证令牌跨越两个 64 位块。这种减小的块大小对安全余量和事务速度都有影响。

参数 PRESENT-80 AES-128 (29167-10) 工程影响
块大小 64 位 128 位 更小的块减少状态存储器
密钥大小 80 位 128 位 较低的安全余量,更快的密钥调度
轮数 31 10 更多轮次但每轮逻辑更简单
门数 约 1,570 GE 约 3,400 GE PRESENT 面积减少 54%
加密时间(100 kHz) 约 20 ms 约 12 ms 更多轮次抵消了较小数据路径的优势
PRESENT-80 的 31 轮结构,虽然轮数比 AES-128 的 10 轮多,但得益于极轻量级的轮函数。每轮由四个操作组成:AddRoundKey(异或)、sBoxLayer(16 个并行 4 位 S 盒)、pLayer(比特置换)和 addRoundCounter。整轮可以使用组合逻辑在一个时钟周期内完成计算,无流水线停顿。

从协议角度来看,该标准定义了 PRESENT-80 消息如何封装在 SMP 命令中。64 位挑战值被填充到现有命令载荷字段中,128 位认证令牌(两个 64 位块)在连续的响应窗口中返回。读写器必须能够缓冲两块的响应,这需要在读写器的数字基带处理器中增加约 16 字节的额外缓冲存储器。

三、实现权衡与安全性分析

PRESENT-80 的主要工程权衡在于安全级别与实现成本之间。使用 80 位密钥时,该密码针对暴力破解攻击提供约 2^80 的安全级别。虽然低于 AES-128 的 2^128,但对于许多 RFID 应用来说,攻击单个标签的成本超过其保护数据价值的场景,这一级别是足够的。

设计人员必须注意 64 位分组密码的生日界限。在同一密钥下加密约 2^32 个数据块后(64 位密码的”生日界限”),密文发生碰撞的概率为 50%。对于处理数百万笔交易的高吞吐量 RFID 系统,可能在数月内达到这个界限。实现应包含在接近界限之前自动更新密钥或重新密钥的机制。

PRESENT 密码自发布以来已受到广泛的密码分析。截至 2026 年,对 PRESENT-80 的最佳已知攻击是复杂度约为 2^79.5 的双支俱乐部攻击,仅略优于暴力破解。在 RFID 场景下,没有实用的代数攻击或差分攻击威胁该密码。然而,侧信道攻击——特别是简单功耗分析(SPA)和差分功耗分析(DPA)——对于无源标签是一个真正的问题,因为加密期间的功耗曲线可以通过标签的反向散射调制直接观察到。

如果未实施对策,PRESENT-80 容易受到相关功耗分析(CPA)攻击。4 位 S 盒输出转换会在标签的功耗中产生可测量的差异,可以与猜测的密钥位相关联。务必实施以下至少一种对策:(1)随机时钟插入,(2)虚拟轮插入,或(3)预充电双轨逻辑。15% 的门数开销用于对策被认为是行业标准做法。

四、常见问题

问:在 RFID 设计中为何选择 PRESENT-80 而非 AES-128?
当芯片面积是主要约束时——例如,在单品级追踪的一次性 RFID 标签中,每个标签成本必须低于 0.03 美元——PRESENT-80 减少 54% 的占用面积决定了是拥有安全性还是完全没有安全性。
问:64 位块大小是否是安全担忧?
对于大多数 RFID 应用,不是。典型的 RFID 事务每会话仅加密几个数据块(认证 2–4 块 + 数据 1–2 块)。在此数量下,2^32 个块的生日界限在标签的运行寿命内永远不会达到。该担忧仅适用于聚合来自许多标签的加密数据的后端系统。
问:PRESENT-80 能否升级到 PRESENT-128?
29167-11 标准专门定义了使用 80 位密钥的 PRESENT-80。虽然 PRESENT 也支持 128 位密钥变体,但这在标准讨论中单独涵盖。选择 80 位变体用于 RFID 是因为额外的 48 位密钥将需要额外的存储和密钥调度逻辑。
问:31 轮结构如何影响延迟?
在 100 kHz 下,每个 PRESENT 轮次需要 10 µs,每次加密总共 310 µs。结合 20 µs 的 S 盒建立时间,一次完整认证(3 次加密)约需 1 毫秒的计算时间。主要的延迟因素仍然是挑战和响应消息的空中传输时间。

发表回复

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