MORUS算法的各种密码分析方法全面盘点
针对MORUS算法的密码分析,已有研究从多个角度进行了深入探索。这些分析主要针对全版本或简化轮数的MORUS,其结论对评估算法的安全边界有重要参考价值。以下是各项攻击方法的盘点。
核心发现:全版本MORUS的线性偏差
这是针对完整版MORUS最著名的分析结果,由Ashur等人在2018年提出。
- 核心技术:利用了MORUS算法中存在的旋转不变性(Rotational Invariants),找到了密钥流中的线性关联。
- 攻击效果:
- 对MORUS-1280,存在一个约2-76
的相关性。利用此偏差,在广播(broadcast)场景下,大约需要2152
个数据块即可恢复部分明文。虽然所需数据量极大,但该攻击在理论上打破了MORUS-1280声称的256-bit安全强度。
- 对MORUS-640,存在约2-73
的相关性,但未突破其安全界限。
- 对MORUS-1280,存在一个约2-76
针对简化轮数的攻击方法
大部分攻击都聚焦于MORUS的简化版本(特别是大幅缩减初始化轮数后的版本),以测试其安全余量。
- 立方攻击(Cube Attack)
- 早期研究:Salam等人(2017年)将立方攻击应用于仅4步初始化的简化版MORUS,能够以约210
(MORUS-640)和29
(MORUS-1280)的复杂度恢复密钥。该研究还给出了针对5步初始化的区分器。
- 后续改进:Li和Wang(2019年)结合了基于比特级可分性(Bit-based Division Property)的立方攻击,将对MORUS-640/1280的密钥恢复攻击分别推进到了5.5步和6.5步。
- 最新进展:韦永壮等人在2018年提出新方法,将对MORUS-640-128的密钥恢复攻击提升到了6步和7步,并将积分区分器推进到了7步。
- 早期研究:Salam等人(2017年)将立方攻击应用于仅4步初始化的简化版MORUS,能够以约210
- 差分分析(Differential Analysis)
- 碰撞攻击:针对MORUS-640-128的研究表明,其具备良好的抗碰撞攻击能力。有分析给出其碰撞概率上界优于2-140
。
- 自动化搜索:刘帅等人(2023年)利用混合整数线性规划(MILP)技术,自动化搜索MORUS初始化阶段的最优差分链,并给出了1至6步状态更新的最优结果,进而发起了差分-区分攻击。
- 碰撞攻击:针对MORUS-640-128的研究表明,其具备良好的抗碰撞攻击能力。有分析给出其碰撞概率上界优于2-140
- 错误注入攻击(Fault Attack)
- 这是一种主动攻击方式,通过向算法运行中注入错误(如电压、时钟毛刺等),比较错误输出与正确输出来获取密钥或内部状态信息。已有文献提出了针对MORUS的基于错误的密钥恢复攻击方案。
其他相关分析
- 简化版分析模型:为了简化分析,研究者提出了MiniMORUS(单字版本的MORUS),并在此模型上验证了线性攻击的有效性。
- Nonce重用分析:有研究指出,如果Nonce被重用,MORUS的安全性会受到影响。例如,在初始化轮数减至10步的简化版中,存在Nonce滥用场景下的密钥恢复攻击。
总结
MORUS算法自提交至CAESAR竞赛以来,经历了全面而严格的审查。目前,针对完整版MORUS最著名的攻击是利用线性偏差进行的区分攻击和明文恢复攻击。虽然该攻击在理论上对MORUS-1280的安全边界构成了挑战,但其所需的计算和数据资源极为庞大,在实际中并不构成直接威胁。
针对简化轮数版本的研究(如立方攻击、差分分析)则更为深入,不断刷新着攻击轮数的记录。这些研究虽然没有攻破完整版的MORUS,但持续为评估其安全余量提供了宝贵的参考。