第 8 章:PRF、CPA 和 CCA 安全¶
密钥函数¶
那么有多少种 F 呢?如果长度为 n,那么可以有
让
看起来
伪随机函数 PRF¶
对于函数 F,如果同时满足:
;- 对于所有 PPT 分辨者 D,
,其中 f 是从 中随机取到的某个函数;
那么 F 是个 PRF。
使用 PRF 加密¶
; 。
安全性证明¶
现在有一个很厉害的对手 A,可以打掉上面使用 PRF 加密的 CPA 安全的系统
;D 有访问 g 的权限。
那么如果 A 猜对就输出 1,否则输出 0。
当给 D 一个随机函数 f:
当给 D PRF
所以
伪随机序列 PRP¶
块加密¶
混淆与扩散¶
混淆:打乱明文、密文、密钥之间的依赖关系。
扩散:明文或密钥哪怕只变 1 个 bit 都能影响密文的所有比特,破坏明文统计特性(雪崩效应)。
置换排列网络¶
这是混淆扩散范式的一种变体。
- S 盒
- 主密钥会生成子密钥,子密钥和中间结果作异或。
每一轮有三个步骤:
- 消息与子密钥异或。
- 消息被分割,并通过 S 盒。
- 消息混合排列(位重新排序)。
注意 S 盒必须是可逆的,否则没法解密;并且需要达成雪崩效应:S 盒 1 比特变至少引起 2 比特的变化。
费斯妥网络 Feistel Network¶
S 盒不用可逆,因为加密和解密算出来的密钥是相同的。
CCA 不可区分实验¶
定义一个实验
- 对手有访问
和 的权限。 - 对手:输出等长明文
。 - 挑战者:在 0 和 1 中选择一个
,发送 。 - 对手仍然有有访问
和 的权限,除了不能访问 。 - 对手:猜
的取值 。