加密数据的最新方法是使用一种称为一体式结构的认证加密算法,该算法也称为有附加数据的认证加密。从之前的博客中,我们看到在特定的操作模式中使用的分组密码,如CBC、OFB、CFB、CTR,提供了IND-CPA安全性。
但是IND-CCA安全性呢?
不可篡改性/不可延展性 - Non-Malleability
可篡改性:给定密文C,可以为相关消息生成C'(不知道消息)
例如,给定M的C,生成M+1的C'
IND-CCA意味着不可延展性
事实上IND-CCA ≡ NM-CCA,NM就是Non-Malleability。
那么OFB是IND-CCA吗?
对于未知 𝑀1来说𝐶 = (𝐶0, 𝐶1)
对于𝑀1′= 𝑀1 ⊕ Δ来说,𝐶′= (𝐶0, 𝐶1 ⊕ Δ)是一个有效的密文
事实上,CBC, OFB, CFB, CTR都不属于IND-CCA安全。
那么该如何实现IND-CCA安全呢?
为了避免Malleability,我们需要确保如果任何密文被更改,它们都会无效
即我们需要保护密文的完整性/真实性
针对早期版本IPSec的实际攻击表明了这一点
加密-and-MAC
输入:
消息𝑀, 钥