主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。
内容补充:骆婷老师的PPT
《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节
密码学复习笔记 这个博主好有意思
初步笔记,如有错误请指正
快速补充一些密码相关的背景知识
本节学习用于抵抗CCA攻击的加密方案以及同时保证通信机密性和真实性的认证加密方案。
目录:CCA安全加密,认证加密,确定性加密,密钥派生函数。
回顾CCA不可区分实验
消息传递方案
定义安全消息传递
关于认证加密的例题
加密和认证组合
分析组合的安全性
构造AE/CCA安全的加密方案
AE/CCA安全加密方案证明
定理:如果 Π E \Pi_E ΠE? 是CPA安全的私钥加密方案并且 Π M \Pi_M ΠM? 是一个安全的MAC,那么构造 Π ′ \Pi' Π′ 是CCA安全的。
证明: V Q \mathsf{VQ} VQ (有效查询): A \mathcal{A} A 向预言机 D e c ′ \mathsf{Dec}' Dec′提交一个新查询并且 V r f y = 1 \mathsf{Vrfy}=1 Vrfy=1。注:VQ表示敌手向预言机查询可经过验证并解密。
Pr ? [ P r i v K A , Π ′ c c a ( n ) = 1 ] ≤ Pr ? [ V Q ] + Pr ? [ P r i v K A , Π ′ c c a ( n ) = 1 ∧ V Q  ̄ ] \Pr[\mathsf{PrivK}^{\mathsf{cca}}_{\mathcal{A},\Pi'}(n)=1] \le \Pr[\mathsf{VQ}] + \Pr[\mathsf{PrivK}^{\mathsf{cca}}_{\mathcal{A},\Pi'}(n)=1 \land \overline{\mathsf{VQ}}] Pr[PrivKA,Π′cca?(n)=1]≤Pr[VQ]+Pr[PrivKA,Π′cca?(n)=1∧VQ?]
我们需要证明以下:
Pr ? [ V Q ] \Pr[\mathsf{VQ}] Pr[VQ] 是可忽略的;敌手无法利用解密预言机获得有效查询;
Pr ? [ P r i v K A , Π ′ c c a ( n ) = 1 ∧ V Q  ̄ ] ≤ 1 2 + n e g l ( n ) \Pr[\mathsf{PrivK}^{\mathsf{cca}}_{\mathcal{A},\Pi'}(n)=1 \land \overline{\mathsf{VQ}}] \le \frac{1}{2} + \mathsf{negl}(n) Pr[PrivKA,Π′cca?(n)=1∧VQ?]≤21?+negl(n);在无法利用解密预言机时难以破解加密方案。
证明敌手无法利用解密预言机获得有效查询
证明在无法利用解密预言机时难以破解加密方案
思路:将 A E \mathcal{A}_E AE? (以 E n c k 1 ( ? ) \mathsf{Enc}_{k_1}(\cdot) Enck1??(?) 预言机来攻击 Π E \Pi_E ΠE? ) 规约到 A \mathcal{A} A。
A E \mathcal{A}_E AE? 以 A \mathcal{A} A 为子函数来运行。 A E \mathcal{A}_E AE? 扮演 A \mathcal{A} A 的加密预言机和解密预言机方法与 A M \mathcal{A}_M AM? 的类似;
实验 P r i v K A E , Π E c p a \mathsf{PrivK}^{\mathsf{cpa}}_{\mathcal{A}_E,\Pi_E} PrivKAE?,ΠE?cpa? 与实验 P r i v K A , Π ′ c c a \mathsf{PrivK}^{\mathsf{cca}}_{\mathcal{A},\Pi'} PrivKA,Π′cca? 的运行一样, A E \mathcal{A}_E AE? 输出与 A \mathcal{A} A 一样的 b ′ b' b′ ;
Pr ? [ P r i v K A E , Π E c p a ( n ) = 1 ∧ V Q  ̄ ] = Pr ? [ P r i v K A , Π ′ c c a ( n ) = 1 ∧ V Q  ̄ ] \Pr[\mathsf{PrivK}^{\mathsf{cpa}}_{\mathcal{A}_E,\Pi_E}(n)=1 \land \overline{\mathsf{VQ}}] = \Pr[\mathsf{PrivK}^{\mathsf{cca}}_{\mathcal{A},\Pi'}(n)=1 \land \overline{\mathsf{VQ}}] Pr[PrivKAE?,ΠE?cpa?(n)=1∧VQ?]=Pr[PrivKA,Π′cca?(n)=1∧VQ?];
Pr ? [ P r i v K A E , Π E c p a ( n ) = 1 ] ≥ Pr ? [ P r i v K A , Π ′ c c a ( n ) = 1 ∧ V Q  ̄ ] \Pr [\mathsf{PrivK}^{\mathsf{cpa}}_{\mathcal{A}_E,\Pi_E }(n)=1] \ge \Pr[\mathsf{PrivK}^{\mathsf{cca}}_{\mathcal{A},\Pi'}(n)=1 \land \overline{\mathsf{VQ}}] Pr[PrivKAE?,ΠE?cpa?(n)=1]≥Pr[PrivKA,Π′cca?(n)=1∧VQ?]。
认证加密理论与实践
安全消息传递补充
确定性CPA安全(Deterministic CPA Security)
在变长加密中的一个常见错误
合成初始向量法(Synthetic IV (SIV))
宽块PRP(Wide Block PRP)
可调加密(Tweakable Encryption)
XTS
密钥派生函数(Key Derivation Function (KDF))
基于口令的KDF(Password-Based KDF, PBKDF)
IV,Nonce,Counter,Tweak和Salt
总结