Hummingbird算法的各种密码分析方法全面盘点
针对Hummingbird系列算法(特别是Hummingbird-1和Hummingbird-2),密码学界已发展出多种分析方法。这些方法主要利用算法结构、实现方式或密钥使用上的特定弱点。以下是对这些攻击方法的全面盘点。
🐦Hummingbird-1密码分析
- 选择IV/选择消息攻击:这是由Markku-Juhani O. Saarinen在FSE'11会议上提出的首个有效攻击。该攻击基于一种差分分治方法,通过选择特定的初始向量(IV)和消息,可以在约2⁶⁴的离线计算量下恢复完整的256位密钥。此攻击已被证实可行。
🐦Hummingbird-2密码分析
针对其改进版本Hummingbird-2,攻击方法更为多样,主要可分为以下几类:
1.相关密钥攻击 (Related-Key Attacks)
此类攻击是分析Hummingbird-2最有效的方法之一,攻击者利用不同密钥之间存在特定数学关系的假设来破解。
- 基于差分序列分析(DSA)的攻击:由Chai和Gong提出,是Hummingbird-2的首个密码分析结果。它利用两对相关密钥(共四个)来减小密钥搜索空间。该方法可恢复128位密钥中的36位(加密)或44位(解密),剩余部分需穷举,总复杂度为2⁴⁸·¹⁴,目前主要具理论意义。
- 基于差分碰撞的攻击:由Zhang, Ding和Guan提出,基于轮函数WD16和密钥加载算法的弱点。该攻击在24对相关密钥下,能以O(2³²·⁶)的计算和数据复杂度恢复完整的128位密钥。
- 实用的相关密钥攻击:由Shi, Zhang和Feng提出,是首个能在个人电脑上数小时内完成的实用攻击。该攻击利用S盒的“组合点”等新概念,通过分治策略以2⁴⁰的复杂度恢复全部128位密钥,显著优于此前结果。
- 高概率相关密钥攻击:由Saarinen提出,利用了产生相同密文概率很高的“高度相关密钥”。其主要攻击复杂度为2⁶⁴,且前64位密钥可仅用2³⁶的工作量独立恢复。这是首个在两把相关密钥下对完整算法的亚穷举攻击。
2.侧信道攻击 (Side-Channel Attacks)
此类攻击不直接攻击算法本身,而是利用算法实现时泄露的物理信息。
- 侧信道立方攻击 (Side Channel Cube Attack):由Fan和Gong提出,结合了立方攻击与侧信道信息。在单比特泄露模型下,该攻击能从Hummingbird-2初始化过程中恢复128位密钥中的48位,数据复杂度约2¹⁸个选择明文。
- 基于时间的侧信道攻击 (Timing-based Side-Channel Attack):由Dhakad和Sharma等研究,旨在利用算法不同输入导致的操作时间差异来推断密钥信息。有研究专门针对Hummingbird算法第一个子轮进行了软件实现的分析。
3.故障攻击 (Fault Attacks)
- 差分故障分析 (Differential Fault Analysis):攻击者通过注入故障(如随机字故障)诱导密文出错,通过分析正确与错误密文的差异来推导密钥。一种针对Hummingbird的故障模型是攻击者能在S盒之后、线性变换之前注入随机字故障。该攻击理论可恢复256位密钥,约需50次故障注入和2⁶⁶步计算。
4.其他分析
- 传统差分与线性密码分析:初步分析显示,Hummingbird对具有实际时间复杂度的标准差分密码分析和线性密码分析攻击具有抵抗性。
📊各攻击方法总结
攻击目标 | 攻击类型 | 关键方法 / 条件 | 主要成果 | 复杂度/备注 |
Hummingbird-1 | 选择IV/选择消息 | 差分分治方法 | 恢复完整256位密钥 | 2⁶⁴ 离线计算量 |
Hummingbird-2 | 相关密钥 (DSA) | 两对相关密钥,差分序列分析 | 恢复36或44位密钥 | 总复杂度 2⁴⁸·¹⁴,理论意义 |
Hummingbird-2 | 相关密钥 (碰撞) | 24对相关密钥,差分碰撞 | 恢复完整128位密钥 | O(2³²·⁶) 计算与数据复杂度 |
Hummingbird-2 | 相关密钥 (实用) | S盒“组合点”,分治策略 | 恢复完整128位密钥 | 2⁴⁰ 复杂度,PC可完成 |
Hummingbird-2 | 相关密钥 (高概率) | 两把“高度相关”密钥 | 恢复完整128位密钥 | 2⁶⁴ 复杂度,可先恢复前64位(2³⁶) |
Hummingbird-2 | 侧信道 (立方) | 单比特泄露,GPU加速 | 恢复48位密钥 | 2¹⁸ 数据复杂度 |
Hummingbird-2 | 侧信道 (时间) | 操作时间差异 | 理论可行性分析 | 针对软件实现的分析 |
Hummingbird | 差分故障 | 约50次随机字故障注入 | 恢复完整256位密钥 | 2⁶⁶ 步计算 |
💎总结
Hummingbird算法的密码分析史清晰地展示了“设计-攻击-改进”的循环。虽然Hummingbird-1被有效攻破,但其后继者Hummingbird-2也暴露出相关密钥攻击方面的严重弱点,这为轻量级密码的设计提供了宝贵教训。这些攻击大多基于差分分析、侧信道分析和故障注入等思想,并常结合分治策略来降低复杂度。