ISO/IEC IEC 29167-17 — 信息技术安全 — 第17部分:RFID DSA数字签名套件

基于数字签名算法的 RFID 标签认证协议,提供标签身份验证、数据完整性和不可否认性

1. ISO/IEC 29167-17 概述

ISO/IEC 29167-17 定义了适用于 ISO/IEC 18000 系列空中接口标准 RFID 系统的数字签名算法(DSA)密码套件。与基于对称密钥的套件不同,DSA 提供非对称认证,标签使用私钥生成签名,任何拥有对应公钥的读写器都可以验证签名。这种特性在开环供应链中非常有价值,因为众多不同的读写器无需共享密钥即可验证标签。

该标准支持 1024、2048 和 3072 位的 DSA 密钥长度,分别对应 SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512 哈希函数。本标准定义的 DSA 套件与 FIPS 186-4 兼容,提供标签认证(签名生成)和数据完整性(命令参数签名验证)。

DSA 签名提供不可否认性——标签无法否认已生成某个响应,因为只有标签拥有其私钥。这一特性对于需要验证来源的应用(如药品溯源的谱系验证)至关重要。

2. 签名生成与验证

ISO/IEC 29167-17 中的 DSA 签名过程包含三个阶段。首先,标签生成一个随机的每消息秘密 k 并计算签名分量 r = (g^k mod p) mod q。其次,使用商定的哈希函数计算消息的哈希值 H(m)。最后,计算 s = k^(-1) * (H(m) + x*r) mod q,其中 x 是标签的私钥。签名 (r, s) 与消息一起返回给读写器。

读写器端的验证过程包括计算 w = s^(-1) mod q,u1 = H(m)*w mod q,u2 = r*w mod q,然后检查 v = ((g^u1 * y^u2) mod p) mod q 是否等于 r,其中 y 是标签的公钥。标准规定,读写器必须拒绝 r = 0 或 s = 0 的签名,因为这表明签名生成无效。

DSA 密钥长度 哈希函数 签名大小 安全等级 标签计算时间 典型应用
1024 位 SHA-1 / SHA-224 40 字节 80 位 ~50 ms @ 1 MHz 低成本标签,基本认证
2048 位 SHA-256 56 字节 112 位 ~200 ms @ 1 MHz 供应链,药品追溯
3072 位 SHA-512 64 字节 128 位 ~500 ms @ 1 MHz 高安全,政府应用
DSA 中的每消息秘密 k 对于每个签名必须唯一、保密且不可预测。在两个不同消息的签名中重用 k 将使攻击者能够通过解一个简单的线性方程组来计算私钥。这一漏洞已在真实世界攻击中被利用,包括 2010 年索尼 PS3 事件。

3. 实现挑战与解决方案

在无源 RFID 标签上实现 DSA 面临重大挑战,原因在于操作数规模大(高达 3072 位)以及模幂运算的计算成本。与基于 ECC 的套件(操作数为 160-521 位)不同,DSA 需要对 1024-3072 位的操作数进行算术运算。这直接影响硅片面积:DSA 2048 位模乘法器需要的逻辑门数量约为 ECC-256 乘法器的 4 倍。

为了减轻计算负担,标准允许在消息已知之前预计算指数分量 r。由于 r = (g^k mod p) mod q 仅依赖于随机 k 而非消息,标签可以在空闲期间预计算 r 并将其存储在易失性存储器中。当签名请求到达时,只需实时计算 s 的模逆和乘法,响应延迟可减少约 70%。

在标签空闲期间预计算 DSA r 分量,可将 DSA-2048 的请求时签名生成时间从约 200 ms 降至 60 ms 以下,使 DSA 可用于时间敏感的供应链应用。
为 DSA 签名提供 k 的随机数生成器必须经过严格验证。RNG 的统计缺陷可能导致标签之间或同一标签不同签名之间的 k 值碰撞,进而实现大规模私钥恢复。实现应使用由 NIST SP 800-90A DRBG 支持的硬件真随机数生成器(TRNG)。

4. 常见问题

问:DSA-1024 与 ECC-224 在安全性方面相比如何?
答:DSA-1024 提供约 80 位等效安全强度,而 ECC-224 提供 112 位。对于新设计,通常首选基于 ECC 的套件,因为签名更小且计算更快。
问:DSA 签名能否用于加密标签存储器?
答:不能。DSA 仅提供用于认证和完整性的数字签名。存储器加密需要单独的加密套件,如 AES-GCM(29167-21)或密钥协商与加密的组合。
问:DSA 是否具有抗量子计算能力?
答:没有。DSA 的安全性依赖于离散对数问题,在足够大的量子计算机上可通过 Shor 算法攻破。对于需要 20 年以上安全性的系统,应考虑基于哈希或基于格的抗量子签名方案。
问:无源标签如何安全存储 DSA 私钥?
答:私钥通常存储在标签的不可篡改存储器中,受物理防篡改保护。许多安全标签集成有有源屏蔽层和存储器加密,防止通过微探针或聚焦离子束进行直接密钥提取。

发表回复

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