Trivium流密码:特性、攻击与实现分析
1. 引言
2004 年,欧洲委员会 ECRYPT 卓越网络的 eSTREAM 项目启动,旨在寻找强大的流密码。最初有 34 个候选密码提交到软件或硬件配置文件中。经过 2006 年和 2007 年的初步评估,第三阶段开始时,软件配置文件和硬件配置文件分别剩下 8 个候选密码,且没有一个密码同时出现在两个配置文件中。本文聚焦于硬件配置文件中入围密码的硬件性能方面。
流密码是一种对称密码,它生成一系列加密安全的比特流,即密钥流,然后通过异或操作将其与明文或密文在比特级别进行组合。其基本拓扑结构包括一个用于存储密钥和初始化向量(IV)的寄存器,以及一个更新函数(通常是某种反馈移位寄存器),该寄存器构成了密码的当前状态,并为密钥流的连续比特进行时钟操作。另一个组件是非线性缩减函数,它对部分或全部状态进行操作,以非线性方式组合比特,通常生成密钥流的单个比特,然后将该比特与明文或密文进行异或运算。
在安全方面,初始密钥和 IV 混合的周期至关重要,以防止密钥恢复攻击。在此期间,需要一个加密强度高的反馈函数对状态进行多次迭代操作(基本上是哈希运算),而用于输出密钥流的缩减函数可以相对较弱。然而,流密码的异或特性虽然提供了简单性,但也导致了一种针对所有基本流密码的攻击——位翻转攻击,即主动攻击者可以改变密文中任意位置的明文比特状态。这种攻击的有效性取决于应用场景,可以通过使用消息认证码来防止。
2. Trivium 密码分析结果
攻击类型 | 时间复杂度 | 数据量 |
---|