MD5算法原理及其碰撞攻击

  • 格式:pdf
  • 大小:76.74 KB
  • 文档页数:2

3 MD5算法的碰撞攻击
约 定 格 式 、有 语 义 的 信 息 , 那 么 推 演 出 的 信息B将不是 一个 符合 约定 格式 、有语 义
MD5的创始人Rivest猜测, MD5可能是 128位的Hash码中最强的算法, 即Hash码相 同的两条消息所需的代价为264数量级, 找到 给定摘要的消息所需的代价为2128数量级。
步数为160( 5轮, 每轮16步) 。 ( 3) MD5与SHA- 1、RIPEMD- 160的 比
较 MD5、SHA - 1、RIPEMD - 160 均 基 于
MD4。 抗穷举攻击的能力: 3种算法都不易
受 到 对 抗 弱 碰 撞 性 的 攻 击 。由 于 MD5使 用 的是128位 的摘 要, 所 以 它 极 易 受 基 于 抗 强 碰 撞 性 的 生 日 攻 击 , 而 SHA - 1 和 RIPEMD- 160在不 久的 将来 对基 于抗 强碰 撞性的生日攻击是安全的。
( 2) Boer 和 Bosselaers[2]说 明 了 如 何 找 到消息分组X和两个有关的链 接变 量使 得
的 信 息 。 比 如 说 , A是 一 个 符 合X509格 式 的数字证书, 那么 推出 的B不 可能 刚好 也 是一个符合X509格式, 而 且是 伪造 者希 望 的数字证书。
众所周知, 电子合同需要双方甚至多 方电子签名。对于双方签名, 相当于先产 生A的Hash值H1, 然后对A和H1合起来的 信 息 进 一 步 产 生Hash值 H2。目 前 的 研 究 发 现还无法找到一 种方 法推 出一 则信 息B刚 好产生同样的H1和H2。其次, 即使MD5被 破解, 也 有更 好的 更安 全 的Hash算 法 。应 该 使 用 Hash码 更 长 其 抗 密 码 分 析 能 力 更 强 的Hash函 数 代 替MD5, 其 中2种 常 用 的 函数是下节中的SHA- 1和RIPEMD- 160。
T[4]=C1BDCEEE ………
T[20]= E9B6C7AA
………
破, 也就是对于给定的 T[36]=FDE5380C T[52]=FC93A039 明 文 及 摘 要 , 能 够 用 数
………
………
学计算的方法, 求出另 一个也能产生出此摘
T[16]=49B40821
T[32]=
T[48]=C4AC5665 T[64]=EB86D391 要 的 等 价 的 明 文 ; 第 2
抗 密 码 分 析 的 能 力 : MD5 已 经 被 破 解 , RIPEMD- 160正 是 为 抗 已 知 密 码 分 析 攻击而设计。虽然对SHA- 1的设计原则知 之甚少, 但它抗已知密码分析攻击的能力 很强, 但与SHA- 1相 比 , 对RIPEMD- 160的 密码分析更加困难。
找到一个碰撞大约需要的消息数如下: MD5算法: 264≈1.8×1019 SHA- 1算法: 280≈1.2×1224 RIPEMD- 160算法: 280≈1.2×1024 速 度 : 3种 算 法 都 是 基 于 模 232加 法 和 简单 的位 逻辑 运算 , 所以 它 们 在32位 机 上 执行速度较快。 此外,还有其它一些消息摘要长度更大 的 安 全 Hash 算 法 , 例 如 SHA- 256、SHA- 384、SHA- 512。 随着新的攻击方法的提出和计算能 力的不断提高, MD5 已经被攻破, 另外一 些 Hash函 数 如SHA- 1也 将 在 今 后 几 年 面 临 严 峻 的 考 验 。因 此 设 计 新 的 高 安 全 度 的 Hash函 数 的 需 求 越 来 越 迫 切 。基 于 MD5的 碰撞攻 击, Hash函 数的 设计 应 该 考 虑 到 如 下2个 方面 : ①输 出Hash值 的 长 度 要 提 高 ; ②抵抗差分攻击的能力要强。
它们产生相同的输出, 也就是说, 对一个 512 位 的 分 组 , MD5 压 缩 函 数 对 缓 冲 区
5 安全Hash算法介绍
ABCD的 不同 值产 生相 同的 输出 , 称 之 为 伪 碰 撞 。目 前 尚 无 法 用 上 述 方 法 成 功 地 攻 击 MD5算 法 。
( 3) Dobbertin[3]提出的攻击对MD5最具 威胁, 它可使MD5压缩函数产生碰撞。但到 目前为止, 尚不能用Dobbertin提出的方法 对使用初值( IV) 的整个消息进行攻击。
第4轮的 输出 与 第1轮 的 输 入 ( CVq) 相 加 得到CVq+1, 这里 的加 法是 指缓 冲 区 中 的 4 个 字 与 CVq中 对 应 的 4 个 字 分 别 232模 相 加。
( 5) 步骤5: 输 出 。所 有L个512位 分 组 处 理完 毕, 最 后的 结 果 就 是128位 消 息 摘 要。
8D2A4C8A
种是对于给定的明文
X[k]=M[q×16+k]=消 息 第 q个512位 分 及摘要 , 能够 用随 机碰 撞的 方 法 找 到 另 一
组 的 第 k个 32位 字 T [i]=矩 阵T中 的 第i个32位 字+=模232
个等价的明文; 第3种也是用随机碰撞的 方法, 找到两个具有相同摘要的不同的明
作者简介:舒畅( 1982- ) , 女, 湖北黄石人, 广东省清远市公安消防支队助理工程师, 研究方向为网络安全。
软件导刊·2007·6 月号 103
算法与语言
表 2 从正弦函数构造的表 T
4 MD5算法的破解
T[1]=D76AA478 T[17]=F61E2562 T[33]=FFFA3942 T[49]=F4292244 及其意义 一 种 Hash 函 数 被
算法与语言
MD5算法原理及其碰撞攻击
舒畅
(清远市公安消防支队, 广东 清远 511515)
摘 要: MD5作为一种重要的Hash函数, 被广泛应用于数据完整性和消息认证领域。详细探讨了MD5算法的
原 理 、MD 5算 法 的 碰 撞 攻 击 以 及MD 5算 法 破 解 的 重 要 意 义 。
关键词: 密码学; Hash函数; MD5; 碰撞攻击
每一轮 包含 对缓 冲 区ABCD进 行16步 迭代, 每步迭代形为:
a←b((a+g(b,c,d,)+X" k # +T" i $ )<<<s) 其中 a,b,c,d=缓冲区 的4个 字, 它 按一 定次 序随迭代步变化。 g=基本逻辑函数F, G, H, I之一 <<<s=32位 的 变 量 循 环 左 地址字节上) 如下:
字 A: 01 23 45 67 字 B: 89 AB CD EF 字 C: FE DC BA 98 字D: 76 54 32 10 ( 4) 步 骤 4: 以 512位 的 分 组 ( 16个 字 ) 为 单 位 处 理 消 息 。算 法 的 核 心 是 压 缩 函 数 ( HMD5) , 它包括4轮处理。4轮处理具有相 似的结构, 但每次使用不同的基本逻辑函 数, 记为F、G、H、I, 如表1所示。 每 一 轮 以 当 前 的 512位 分 组 ( Yq) 和 128位缓 冲区ABCD作为 输入 , 并 修 改 缓 冲 区 的内容 。每 次 使 用64元 素 表T[1L 64]中 的1/4。 该 T表 有 sin函 数 构 造 而 成 。T的 第 i 个 元 素 表 示 为T[i], 其 值 等 于232×abs(sin(i)) 的整数部分, 其中i是弧 度。由 于abs(sin(i)) 是 一个0到1之 间 的 数 , T的 每 一 个 元 素 是
( 2) 步骤2: 填充长度。原始消息长度 ( 二 进制 位的 个数 ) 用64位 表 示 , 并 附 在 步 骤1的结果后。
由 这2个 步 骤 得 到 长 度 为 512整 数 倍 的 报 文 。 表 示 为L个512位 的 分 组 : Y0, Y1, … … YL- 1。其 长 度 为 L×512bits。令 N=L×16, 则长度为N个32位的字。令M×[OL N- 1]表
加法 每次循 环进 行16步 操 作 , 其 中S的 值
在4次循环中都有不同的定义, 并且在每 一步的值也不同。
文, 其工作量比第2种情况要小很多。 根据MD5破 解算 法, 对 一个 消息A及
其Hash值H, 有 可 能 推 出 另 一 则 信 息B, 它 的Hash值 也 是H。如 果A是 一 个 符 合 预 先
表 1 基本逻辑函数的真值表 b c d F GHI 0000001 0011010 0100110 0111001 1000011 1010101 1101100 1111110
一个可 以表 示成32位的 整数 。T表 提 供 了 随机 化的32位模 板, 消 除 了 在 输 入 数 据 中 的任何规律性的特征,如表2所示。
T[2]=E8C7B756 T[18]=C040B340 T[34]=8771F681 T[50]=432AFF97
T[19]=265E5A51
T[3]=242070DB
T[35]=699D6122 T[51]=AB9423A7
破解, 通常有3种情况: 第1种 是 函 数 的 单 向 性 被攻破, 即最彻底的攻
示以字为单位的消息表示。 ( 3) 步 骤 3: 初 始 化 MD缓 冲 区 。 一 个
128 位 MD 缓 冲 区 用 以 保 存 中 间 和 最 终 Hash函数 的结 果。它 可 以 表 示 为4个32位 的寄存器( A, B, C, D) 。
寄 存 器 初 始 化 为 以 下 的 16进 制 值 : A=67452301 B=EFCDAB89 C=98BADCFE D=10325476
中图分类号: TP312
文献标识码: A
文章编号: 1672- 7800(2007)06- 0103- 02
1 MD5消息摘要算法
MD5 ( RFC1321) 的 全 称 是 Message - Digest Algorthm 5, 即 将 任 意 长 度 的 “字 节 串”变 换成 一个128bit的大 整数 , 是 一 种 不 可逆的字符串变换算法。通过数学运算, 把 不 同 长 度 的 信 息 转 化 到 128位 编 码 中 , 形 成Hash值 , 通过 比较 该数 值 是 否 正 确 , 来确定通信双方的合法性, 即数字签名功 能 。在数 据传 输后 , 可以 通 过 比 较Hash值 来判断信息途中是否被截获修改, 是否由 合法的发送人发送或者合法的接收人接 收等。用这种方法, 可以防止密钥丢失。