Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
流密码在轻量级密码学中占有特殊地位,因为其内部状态机自然地映射到小型、快速的数字电路。与必须按固定大小块处理数据的分组密码不同,流密码生成连续的密钥流,可与任意长度的明文进行异或——这一特性在具有可变长度数据包的协议中尤为有价值。ISO/IEC 29192-3标准化了在实现极紧凑硬件占地的同时提供至少80位安全性的轻量级流密码。
Trivium使用288位内部状态,组织为三个非线性反馈移位寄存器(NLFSR),长度分别为93、84和111位。在每个时钟节拍,通过提取特定位位置、通过AND和XOR门馈送并循环寄存器来更新状态。该设计的卓越之处在于其简洁性:整个密码可以用不到20行C代码描述,硬件实现包含密钥和IV设置逻辑仅需约2 600 GE。每个时钟周期产生一个密钥流比特,吞吐量为每周期1比特。
Enocoro是标准中纳入的轻量级流密码家族。Enocoro-128v2使用320位内部状态,每时钟周期产生64位密钥流,以适度的面积增加(~3 500 GE)为代价提供比Trivium更高的吞吐量。Enocoro的设计特别注重抵抗时间-内存-数据权衡攻击,当IV长度较短时,这可能是Trivium的一个顾虑。
| 参数 | Trivium | Enocoro-128v2 | Grain-128a |
|---|---|---|---|
| 内部状态(位) | 288 | 320 | 256 |
| 密钥长度(位) | 80 | 128 | 128 |
| 每周期密钥流 | 1 位 | 64 位 | 1 位 |
| 门数 (GE) | ~2 600 | ~3 500 | ~2 900 |
| 设置周期数 | 1 152 | 640 | 256 |
| 目标安全强度 | 80 位 | 128 位 | 128 位 |
流密码默认在同步模式下运行——密钥流仅取决于密钥和IV,而与明文或密文无关。这使得它们天然可并行化,适用于流水线硬件。然而,这也意味着传输中的比特错误以1:1比例传播(无错误扩展),这在嘈杂无线信道中是有利的。缺点是没有内置认证。工程师必须将流密码与单独的MAC(如ISO/IEC 29192-6中的那些)结合使用以提供认证加密。
该标准要求实现记录对简单功耗分析(SPA)和故障注入的抵抗能力。对于Trivium,线性反馈结构使得某些故障注入攻击在状态可被冻结时是可行的。推荐的对策包括双轨逻辑、时间冗余和状态掩码技术,这些技术会增加约15–30%的面积成本。
值得注意的是,流密码的同步特性决定了发送端和接收端必须保持精确的状态同步。在实际无线通信中,数据包丢失是常见现象,因此协议设计必须在每个数据包中携带足够的状态信息(如帧序号或IV),以便接收端在检测到不同步时能够重新同步。ISO/IEC 29192-3建议在每个数据包头部显式携带同步信息,而非依赖于隐式计数,这可以显著降低同步丢失导致的系统故障率。
流密码在物联网中的应用不仅限于数据加密。在LoRaWAN等远程低功耗网络中,Trivium可用于生成伪随机跳频序列,提高抗干扰能力。在蓝牙低功耗(BLE)的广播模式中,流密码可以保护广播数据包的隐私性,防止攻击者通过被动监听获知设备类型和状态。此外,某些专有物联网协议将Trivium作为物理层加扰方案,使信号在频谱分析仪上呈现为类噪声特性,从而提供一定程度的隐蔽通信能力。这些多样化的应用场景充分体现了流密码在轻量级安全解决方案中的核心地位。