ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MD6算法的各种密码分析方法全面盘点

MD6算法的各种密码分析方法全面盘点 MD6算法的各种密码分析方法全面盘点MD6作为NIST SHA-3竞赛的候选算法其密码分析主要针对简化轮数的版本。完整的MD6算法设计有96至168轮而目前已公布的有效攻击均未能突破其完整轮数。以下是针对MD6的主要密码分析方法盘点。1.差分攻击 (Differential Attacks)差分攻击是寻找哈希碰撞最经典的方法之一。线性化框架 (Linearization Framework)这是由Brier、Khazaei、Meier和Peyrin等人提出的一种改进的差分分析框架。其核心思想是将压缩函数线性化以寻找低权重的差分特征。该框架被应用于MD6实现了对16轮MD6的碰撞攻击这是当时已知最好的碰撞攻击结果。具体来说针对16轮MD6的碰撞攻击复杂度为2^30而另一项研究则达到了2^17的复杂度。2.线性攻击 (Linear Attacks)线性攻击通过寻找输入与输出之间有效的线性近似来恢复密钥。抗线性攻击证明MD6的设计者在其原始报告中提供了针对线性密码分析的安全性证明。他们通过类比AES中的“活跃S盒”概念证明了MD6中的“活跃AND门”能有效限制线性路径的相关性。其结论是任何针对密钥版MD6的标准线性攻击至少需要2^210量级的输入/输出对这表明MD6对此类攻击有很高的安全冗余。3.代数攻击 (Algebraic Attacks)代数攻击将密码函数表示为GF(2)上的多元多项式并试图求解。立方攻击 (Cube Attacks)立方攻击由Shamir在CRYPTO 2008上提出是一种适用于低代数次数low-degree密码原语的攻击方法。攻击成果Aumasson, Dinur, Meier和Shamir将立方攻击应用于MD6。最突出的成果是针对14轮MD6的完整128位密钥恢复攻击其复杂度仅为2^22在一台普通PC上不到一分钟即可完成。立方测试器 (Cube Testers)立方测试器是立方攻击的一种变体由同一组研究人员提出。目标与成果与旨在恢复密钥的立方攻击不同立方测试器主要用于检测一个密码函数是否表现出非随机性即与随机函数存在可区分的特征。攻击成果立方测试器在2^17的复杂度下检测到了18轮MD6压缩函数的非随机性。在MD6的一个修改版本上该测试甚至能以2^24的复杂度区分66轮的压缩函数与随机函数。高斯密码分析 (Gaussian Cryptanalysis)方法由Dimitry Khovratovich提出这是一种结合了代数与统计技术的通用密码分析方法可用于寻找碰撞、原像或构建区分器。根据ECRYPT哈希函数网站的记录该方法曾用于对30轮的MD6压缩函数进行非随机性分析。4.其他分析方法SAT求解器技术 (SAT Solver Techniques)MD6的设计者在分析报告中提到他们考虑了将可满足性SAT求解器应用于MD6的可能性并进行了实验。实验证据表明对于超过18轮的MD6通用的SAT求解器未能发现任何弱点。总结下表汇总了针对MD6的主要密码分析方法及其攻击成果分析方法主要目标攻击轮数复杂度/成果主要研究者差分攻击碰撞16轮2^30Khazaei, Meier线性攻击密钥恢复完整版至少2^210抗性证明Rivest等 (MD6设计者)立方攻击密钥恢复14轮2^22Dinur, Shamir立方测试器区分器/非随机性18轮(及修改版66轮)2^17 / 2^24Aumasson, Meier高斯密码分析区分器/非随机性30轮---KhovratovichSAT求解器通用弱点探测18轮未发现弱点Rivest等 (MD6设计者)总结尽管密码分析界对MD6进行了多角度的深入研究但这些攻击都未能突破其完整轮数96-168轮。MD6对目前已公开的各类密码分析方法展现出较强的安全裕度。
返回列表