MD4 and MD5 are seminal cryptographic hash functions proposed in early 1990s. MD4 consists of 48 steps and produces a 128-bit hash given a message of arbitrary finite size. MD5 is a more secure 64-step extension of MD4. Both MD4 and MD5 are vulnerable to practical collision attacks, yet it is still not realistic to invert them, i.e. to find a message given a hash. In 2007, the 39-step version of MD4 was inverted via reducing to SAT and applying a CDCL solver along with the so-called Dobbertin's constraints. As for MD5, in 2012 its 28-step version was inverted via a CDCL solver for one specified hash without adding any additional constraints. In this study, Cube-and-Conquer (a combination of CDCL and lookahead) is applied to invert step-reduced versions of MD4 and MD5. For this purpose, two algorithms are proposed. The first one generates inversion problems for MD4 by gradually modifying the Dobbertin's constraints. The second algorithm tries the cubing phase of Cube-and-Conquer with different cutoff thresholds to find the one with minimal runtime estimation of the conquer phase. This algorithm operates in two modes: (i) estimating the hardness of an arbitrary given formula; (ii) incomplete SAT-solving of a given satisfiable formula. While the first algorithm is focused on inverting step-reduced MD4, the second one is not area-specific and so is applicable to a variety of classes of hard SAT instances. In this study, for the first time in history, 40-, 41-, 42-, and 43-step MD4 are inverted via the first algorithm and the estimating mode of the second algorithm. 28-step MD5 is inverted for four hashes via the incomplete SAT-solving mode of the second algorithm. For three hashes out of them this is done for the first time.
翻译:MD4 和 MD5 是20世纪90年代初提议的初始加密散列函数。 MD4 由48个步骤组成,并产生128比特的散列,给出了任意限制大小的信息。 MD5 是一个更安全的DD4 64 步骤扩展。 MD4 和 MD5 都容易受到实际碰撞攻击, 但反转它们仍然不现实, 即找到给一个散列的信息。 2007年, MD4 的39个步骤版本被倒转为SAT, 并应用了一个 CDCL 解答器, 以及所谓的 Dobbeltin 限制 。 2012年, MD5 的 28 比特类版本被通过 CDCL 解答器被倒转, 一个指定的 CDCLOD 解析算器的第二个阶段是 。 CUDL4 和 MD5 的第二个算法, 用于第二个目的。 在给DCL4 的初始和第二个阶段, 将MDF4 生成为MT4 的变换为 。 在 DBT 研究中, 正在逐渐修改 DBT 。 的第一次算法的第二个阶段, 在第二个阶段中, 在第二个阶段中, 运行中, 在第二个阶段中, 在第二个阶段中, 正在找到一个硬变解解解解算法到第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段, 在第二个阶段,在第二个阶段, 在第二个阶段,