认证加密(AE)是指在通信中同时提供保密性和认证(完整性)的加密系统。许多应用和协议中都同时需要这两种形式的安全性保证。对于消息M有四种同时提供认证和加密的通用方案。
先Hash再加密(H→E)。对于M首先使用密码学Hash函数计十算h=H(M),然后将消息和Hash值一起加密:E(K,(M‖h))
先认证再加密(A→E)。使用两个密钥。首先通过计算MAC值T=MAC(K1,M)对明文进行认证,然后将消息和MAC一起加密:E(K2,[M‖T])。
先加密再认证(E→A)。使用两个密钥。首先加密消息得到密文C=E(K2,M),然后通过计算MAC值T=MAC(K1,C)并考查(C,T)对明文进行认证。
独立进行加密和认证(E+A)。使用两个密钥。加密消息得到密文C=E(K2,M);通过计算MAC值T=MAC(K1,M)并考查(C,T)对明文进行认证。这两个步骤的先后顺序可以交换。
对于每种方案,可直接进行解密和验证。对于H→E、A→→E和E+A,要先解密,后验证。对于E→A,要先验证,后解密。这些方案都存在有安全缺陷。H→→E方案在无线加密协议(WEP)中用于保护WiFi网络,该方案存在根本性的缺陷以至于WEP协议被取代。设计恰当的话,这些方案都能够提供高强度的安全性。