ISO/IEC 29192-2:轻量级密码学 — 第2部分:分组密码

PRESENT、CLEFIA等适用于受限环境的轻量级分组密码设计

分组密码仍然是对称密码学的主力军,ISO/IEC 29192-2应对了设计与标准化能在极低硬件资源消耗下实现、同时保持足够安全余量的分组密码的挑战。该标准目前指定了三种轻量级分组密码:PRESENT、CLEFIA以及后来加入的SIMON和SPECK家族。每种算法反映了不同的设计理念,适用于不同的应用约束条件。

密码实现的门等效数(GE)是轻量级设计中最重要的度量指标。PRESENT-80在0.18 µm CMOS工艺中仅需约1 570 GE——比紧凑型AES-128实现(约3 400 GE)小约6倍。

PRESENT——SPN轻量级基准

算法结构

PRESENT是一种代换-置换网络(SPN),块大小为64位,有两个密钥长度变体:PRESENT-80(80位密钥)和PRESENT-128(128位密钥)。它使用31轮,每轮包括轮密钥异或、并行应用于所有16个半字节的4×4 S盒,以及按位置换P层。S盒经过精心选择以最小化门数——在最紧凑形式中仅需4个输入与非门——同时提供强大的差分和线性密码分析抵抗力。

在通用MCU上以软件实现PRESENT时,按位置换层会变得昂贵,因为它与字节边界不对齐。查表法可以缓解此问题但会增加内存占用。相比之下,硬件实现将置换实现为简单的导线交叉,门成本为零。

CLEFIA——基于Feistel的灵活性

设计原理

CLEFIA使用广义Feistel网络,块大小为128位,支持128、192和256位密钥。它采用两个不同的S盒(S0和S1)以及一个基于GF(2⁸)上4×4最大距离可分(MDS)矩阵的扩散矩阵。这使得CLEFIA在比纯SPN设计更少的轮数内实现强扩散特性。CLEFIA在硬件中约需3 000 GE,适用于第2类和第3类设备。

算法 块大小 密钥长度 轮数 结构 门数 (GE) 吞吐量 (Mbps @100kHz)
PRESENT-80 64 80 31 SPN 1 570 12.9
PRESENT-128 64 128 31 SPN 1 886 12.9
CLEFIA-128 128 128 18 Feistel (GFN) ~3 000 17.8
SIMON 64/128 64 128 44 Feistel (ARX) ~1 200 27.3
SPECK 64/128 64 128 27 ARX ~1 050 35.6

工程实现考量

硬件优化策略

该标准讨论了几种实现技术。串行化架构在多个时钟周期内复用单轮数据路径,以吞吐量为代价大幅减少面积。对于PRESENT,完全展开实现使用约7 000 GE但每时钟周期处理一个块;串行化版本可降至1 000 GE以下。选择取决于应用是需要高带宽流的实时加密还是短消息的偶尔认证。

侧信道抗性

ISO/IEC 29192-2建议轻量级分组密码实现包括一阶掩码以抵御差分功耗分析(DPA)。对于PRESENT,掩盖S盒并非易事,因为4位S盒不能干净地分解为更小的函数。阈值实现(TI)将每个敏感变量分割为多个份额,是推荐的方法,通常会使门数增加40–60%。

在芯片设计层面,布局布线也会影响密码模块的安全性。标准建议在设计评审中增加安全验证环节,通过DPA仿真工具评估实际功耗轨迹的信息泄露情况。对于量产芯片,建议随机抽样进行侧信道测试,以确保每颗芯片的安全性能一致性。此外,针对故障注入攻击(如时钟毛刺和电压毛刺),标准推荐采用冗余计算和故障检测机制——在加密完成后重新加密一次并比较结果,虽然吞吐量降低50%,但能有效抵御绝大部分故障攻击。

PRESENT和CLEFIA均经过十多年的广泛密码分析。没有实际攻击能在全轮密码上比暴力破解更快。这给设计者信心,即标准化算法是成熟且被充分理解的。
在攻击者可物理接触设备的产品中,切勿使用不带侧信道对抗措施的PRESENT-LIGHT版本。小的S盒使得相关功耗分析在无保护时特别有效。

选择分组密码时还需考虑操作模式的影响。29192-2标准推荐使用CCM(Counter with CBC-MAC)和GCM(Galois/Counter Mode)等认证加密模式,这些模式在提供机密性的同时还能保证数据的完整性和真实性。对于内存极度受限的设备(RAM小于1 KB),CCM模式因其较低的内存需求而成为首选。而对于需要并行处理的高速应用,GCM模式可以利用硬件并行性实现更高的吞吐量。设计者应在协议设计阶段就明确操作模式的选择,避免后期因模式切换导致额外的开发和测试成本。此外,如果应用场景只需要机密性而不需要认证(如某些传感器数据广播场景),可考虑使用CTR模式以进一步降低计算开销,但必须搭配独立的MAC机制以防止数据被篡改。

常见问题

问1:对于超低功耗传感器标签应该选择哪种密码?
PRESENT-80提供最佳面积效率比。如果协议需要128位块,CLEFIA是29192系列内的标准化选择。对于8位MCU上的纯软件效率,SPECK通常表现良好。
问2:29192-2中的密码是否适用于IEEE 802.15.4等无线标准?
可以。PRESENT和CLEFIA可以通过选择适当的操作模式(如用于组合加密和认证的CCM模式)集成到IEEE 802.15.4的安全子层中。
问3:如何处理数百万部署设备的密钥管理?
该标准未规定密钥管理——这是ISO/IEC 11770的领域。但29192-2要求实现至少支持指定的密钥大小,并建议使用轻量级密钥派生函数从设备专用密钥派生出唯一密钥。
问4:PRESENT作为标准化算法的预期寿命是多久?
PRESENT自2009年起已标准化,经受了广泛的密码分析。对于Level 2应用,预计至少在未来十年内仍保持安全。对于更长期部署,建议使用128位密钥变体。

发表回复

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