Threefish算法的各种密码分析方法全面盘点
针对Threefish算法的密码分析方法,学术界已进行了广泛研究。这些分析主要集中在简化轮数的版本上,目前尚未有能直接攻破完整72轮Threefish-512的有效方法。
以下是各种主流密码分析方法的全面盘点。
🔬主流密码分析方法盘点
- 相关密钥与回旋镖攻击 (Related-Key & Boomerang Attacks):这是最核心、成果最显著的一类攻击-。它利用了密钥之间的关系,通过“回旋镖”结构来创建区分器或恢复密钥。例如,针对Threefish-512,有32轮的密钥恢复攻击(时间2²²⁶)和33轮的攻击(时间2³⁵².¹⁷);针对Threefish-256,则能达到31轮。此外,还构造了34轮的区分器。
- 不可能差分攻击 (Impossible Differential Attacks):该方法寻找概率为零的差分路径来排除错误密钥。相关研究在21轮的Threefish-512上实现了此类攻击。
- 近碰撞攻击 (Near-Collision Attacks):主要针对基于Threefish的Skein哈希函数,寻找输出非常接近但不完全相同的消息对。相关攻击可应用于17轮的Threefish-512。
- 伪线性攻击 (Pseudo-Linear Attacks):利用Threefish的ARX结构,用“伪线性”表达式进行概率性逼近。已知可对Threefish-256的11轮和15轮(无白化密钥版本)实施攻击。
- 矩形攻击 (Rectangle Attacks):回旋镖攻击的变种,同样用于构建区分器。在单密钥、相关调整(related-tweak)场景下,可区分19轮的Threefish-256。
- 旋转反弹攻击 (Rotational Rebound Attacks):结合了旋转和反弹技术,主要攻击Skein哈希函数。已知可攻击53轮的Skein-256,显示了其在分析基于Threefish的哈希函数上的潜力。
- 实用时间区分攻击 (Practical-Time Distinguishing Attacks):这类攻击追求以实际可行的计算资源(如2⁴⁵次操作)来区分Threefish与理想密码。最著名的成果是可在27轮的Threefish-256上实施区分攻击。
📊攻击能力概览
为了更直观地展示各类攻击的威力,下表总结了针对不同版本Threefish的主要攻击成果:
攻击方法 | 目标变体 | 攻击轮数 (总轮数) | 主要成果 | 复杂度/备注 |
相关密钥回旋镖攻击 | Threefish-512 | 32轮 (72轮) | 密钥恢复 | 时间 2²²⁶,内存 2¹² 字节 |
相关密钥回旋镖攻击 | Threefish-512 | 33轮 (72轮) | 密钥恢复 | 时间 2³⁵².¹⁷ |
相关密钥回旋镖区分器 | Threefish-512 | 34轮 (72轮) | 区分器 | --- |
已知相关密钥回旋镖区分器 | Threefish-512 | 35轮 (72轮) | 区分器 | --- |
实用时间区分攻击 | Threefish-256 | 27轮 (72轮) | 区分器 | 工作量约 2⁴² 次查询 |
矩形攻击 (相关调整) | Threefish-256 | 19轮 (72轮) | 区分器 | 工作量约 2²⁶.³ 次评估 |
不可能差分攻击 | Threefish-512 | 21轮 (72轮) | 区分器 | --- |
近碰撞攻击 | Threefish-512 | 17轮 (72轮) | 近碰撞 | --- |
💎总结
总的来说,尽管存在多种针对Threefish的有效攻击方法,但它们都局限于显著简化轮数的版本。这些分析不仅验证了其设计的安全性,也得出了一个重要结论:为确保最佳安全保证,Threefish至少需要36轮。完整72轮的Threefish在当前公开的研究中仍被认为是安全的。
值得一提的是,这些攻击多基于相关密钥模型,该模型假设攻击者能获取不同密钥下的加密结果,这在实际场景中较难实现,但也体现了设计者对于安全性的高标准要求。