对称密钥原语的实用构建:加密分析与哈希函数
1. 线性密码分析
线性密码分析是一种攻击密码的方法,与差分密码分析相比,它使用已知明文而非选择明文。这一点非常重要,因为加密文件可以提供大量已知明文,而获取选择明文的加密结果则困难得多。Matsui 证明,仅使用 243 对明文/密文对,就可以通过线性密码分析破解 DES。
线性密码分析对分组密码设计产生了重要影响。现代分组密码的设计和评估部分基于其对差分和线性密码分析的抵抗能力。在构建分组密码时,设计者会选择 S 盒和其他组件,以最小化差分概率和线性偏差。虽然无法消除 S 盒中所有高概率差分,但可以将这些偏差最小化。此外,增加轮数并仔细选择混合置换,既可以降低差分概率,也会使密码分析者更难找到可利用的差分。
2. 压缩函数和哈希函数
密码哈希函数 H 的主要安全要求是抗碰撞性,即难以找到不同的输入 x 和 x’,使得 H(x) = H(x’)。如果哈希函数的输出长度为 ℓ 位,那么我们最多希望使用远少于 2^(ℓ/2) 次 H 的调用就无法找到碰撞。
构建抗碰撞哈希函数有两种方法:
- 从分组密码构建压缩函数:可以从满足强安全属性的分组密码构建抗碰撞压缩函数,常见的方法是 Davies–Meyer 构造。
- 海绵构造:这是一种较新的构建哈希函数的方法,被 SHA - 3 标准采用。
3. 从分组密码构建压缩函数
Davies–Meyer 构造是一种从分组密码构建压缩函数的常见方法。设 F 是一个密钥长度为 n 位、块长度为 ℓ 位的分组密码,Davies–Meyer 构造定义压缩函数 h : {0, 1}^(n + ℓ) →
超级会员免费看
订阅专栏 解锁全文
48

被折叠的 条评论
为什么被折叠?



