密码学中的哈希函数攻击与分析
1. 引言
哈希函数在众多密码学应用中发挥着关键作用。自 MD5 和 SHA - 1 被攻破后,密码学家们一直在寻求安全且高效的哈希构造。为此,NIST 发起了 SHA - 3 竞赛来确定未来的标准哈希函数。在 SHA - 3 竞赛的第二轮候选算法中,有 14 种算法进入考虑范围。目前,这些算法在碰撞抗性和原像抗性等重要安全属性方面尚未被严重攻破,但部分算法的构建模块,如压缩函数或内部置换,已被发现存在不满足理想属性的情况。
许多 SHA - 3 候选算法基于 AES 的设计策略。近年来,针对基于 AES 的哈希函数或置换的密码分析取得了显著进展,如反弹攻击、从中间开始攻击和超级 S 盒分析等,这些方法具有广泛的应用,是强大的分析工具。
2. 相关算法介绍
- AES 置换 :AES 是一个 128 位的分组密码,其状态可表示为 4×4 的字节矩阵。一般的基于 AES 的置换具有 r×r 的状态,每个元素是 c 位的字。一轮基于 AES 的置换包含四个操作:
- SubBytes (SB) :根据 S 盒进行非线性字/字节替换。
- ShiftRows (SR) :将第 j 行的每个字/字节向左旋转 j 个位置。
- MixColumns (MC) :将每列乘以一个 MDS 矩阵。
- AddRoundKey (AK) :将当前状态