对称密钥原语的实用构造
1. 密码攻击与安全性概念
在密码学中,存在不同类型的攻击方式。在选择密文攻击中,攻击者可以获得由其选择的 ${x_i}$ 对应的 ${F_k(x_i)}$,以及其选择的 ${y_i}$ 对应的 ${F^{-1}_k(y_i)}$。
能够抵御选择明文攻击的密码对应于伪随机置换,而能抵御选择密文攻击的密码则对应于强伪随机置换。除了区分 $F_k$ 与均匀置换的攻击外,我们还关注密钥恢复攻击,即攻击者在与 $F_k$ 交互后能够恢复密钥 $k$,这种攻击比区分 $F_k$ 与均匀置换更强。
2. 分组密码设计挑战
一个安全的分组密码(使用随机密钥)必须表现得像一个随机置换。对于 $\ell$ 位字符串,有 $2^{\ell}!$ 种置换,要表示一个任意置换需要 $\log(2^{\ell}!) \approx \ell \cdot 2^{\ell}$ 位。当 $\ell > 20$ 时,这变得不切实际;当 $\ell > 60$ 时,几乎不可行。现代分组密码的块长度 $\ell \geq 128$。
设计分组密码的挑战在于构造具有简洁描述(即短密钥)且表现得像随机置换的置换。具体来说,就像对仅在一位上不同的两个输入评估随机置换应产生两个(几乎)独立的输出一样,当 $k$ 是均匀且攻击者未知时,改变 $F_k(\cdot)$ 输入的一位也应产生(几乎)独立的结果,这意味着输入的一位变化应该“影响”输出的每一位,但不是所有输出位都会改变,而是每个输出位大约有一半的概率发生改变,要实现这一点并不容易。
3. 混淆 - 扩散范式
香农除了在完美保密方面的工作外,还引入了
超级会员免费看
订阅专栏 解锁全文
29

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



