加密和认证是信息安全领域两大主题,加密保证数据的隐秘性,认证签名保证数据的完整性,二者每每密不可分,主要工做模式有三种:安全
一、先加密后对密文签名(encrypt-then-mac)ide
二、先对明文签名,而后对明文和签名进行加密(mac-then-encrypt)加密
三、先对明文签名,而后对明文加密,最后将签名附在密文以后(mac-and-encrypt)it
三种方式都能在必定程度上保证信息的隐秘和完整,但各有特色。分析下三种模式,首先是1,它能够保证接收方在解密以前验证数据的完整性,对没法经过HMAC验证的数据直接丢弃,提升了处理速度,可是,一旦HMAC密钥泄露,将威胁通讯的安全,由于***者能够将一段随机的数据HMAC以后发送给接收方,并能够经过接收方的认证,从而是接收方认为这是一段合法的数据。可是在2和3中就不会有这种状况发生,即便HMAC密钥泄露,方案2和3同样能够保证通讯的安全,由于***者不知道加密密钥,没法伪造出能经过认证的数据。可是方案二、3在应用中速度会比1慢。class