AE 一定可以推出 CCA 反之不行
同时可以用下面的 Game 来定义 AE:(这和上面的定义等价)
- 和 :
- :用密钥
k
对消息m
进行加密,产生密文。 - :代表无效的加密操作,即与 m 无关的输出
- :用密钥
- 和 :
- :用密钥
k
对密文c
进行解密,得到原始消息m
或错误。 - :表示永远返回解密错误(无效)
- :用密钥
这样说明攻击者无法构造有效的密文,即使拦截了密文也无法篡改,同时也无法通过密文获取关于明文的任何信息
下面尝试用 IND-CPA 的对称加密和 MAC 来构造 AE
- 第一个方案 tag 会泄露 m(没有 CPA 安全的 MAC)
- 第二个方案无法做到 CCA(Enc 那里泄露,MAC 变成摆设了)
- 第三个方案是 CCA 安全的
直接可以无脑使用的 AE 方案: