美文网首页
【转】什么是AEAD加密

【转】什么是AEAD加密

作者: kim4apple | 来源:发表于2018-09-24 23:02 被阅读477次

转:https://zhuanlan.zhihu.com/p/28566058

Authenticated Encryption with Associated Data (AEAD) 是一种同时具备保密性,完整性和可认证性的加密形式。

AEAD 产生的原因很简单,单纯的对称加密算法,其解密步骤是无法确认密钥是否正确的。也就是说,加密后的数据可以用任何密钥执行解密运算,得到一组疑似原始数据,而不知道密钥是否是正确的,也不知道解密出来的原始数据是否正确。

因此,需要在单纯的加密算法之上,加上一层验证手段,来确认解密步骤是否正确。

简单地把加密算法和认证算法组合,可以实现上述目的,并由此产生了几个方案:

第一种方案,EtM (Encryption then MAC)

EtM
图片来自 https://en.wikipedia.org/wiki/Authenticated_encryption

先加密,然后对密文进行 MAC 运算(一般用各种 HMAC),把二者拼接起来,发给接收方。
接收方先验证 MAC,如果验证通过,则证明密钥是正确的,然后执行解密运算。

第二种方案,E&M (Encryption and MAC)

E&M

图片来自 https://en.wikipedia.org/wiki/Authenticated_encryption

同时对原始数据执行加密和 MAC 运算,把二者拼接起来,发给接收方。

接收方先进行解密,然后对解密结果执行 MAC 运算,比对发来的 MAC,验证正确性。

第三种方案,MtE (MAC then Encryption)

MtE
图片来自 https://en.wikipedia.org/wiki/Authenticated_encryption

与 EtM 相反,先对原始数据执行 MAC 运算,与原始数据拼接后,执行加密算法,将密文发送给接收方。

接受方先进行解密,然后执行 MAC 运算,验证解密结果是否正确。

然而,业内逐渐意识到以上通过组合加密和认证算法来实现 AEAD 的方案都是有安全问题的。

具体安全问题细节略去不表。

从 2008 年起,业内开始提出,需要在一个算法在内部同时实现加密和认证

基于这个思想,一些新的算法被提出,这些算法被称为真正的 AEAD 算法。

常见的 AEAD 算法如下:

  • AES-128-GCM
  • AES-192-GCM
  • AES-256-GCM
  • ChaCha20-IETF-Poly1305
  • XChaCha20-IETF-Poly1305

在具备 AES 加速的 CPU(桌面,服务器)上,建议使用 AES-XXX-GCM 系列,移动设备建议使用 ChaCha20-IETF-Poly1305 系列。

在设计加密系统的时候,请务必选用 AEAD 算法,抛弃旧的 MtE,EtM,E&M 方案。

相关文章

  • 【转】什么是AEAD加密

    转:https://zhuanlan.zhihu.com/p/28566058 Authenticated Enc...

  • 现代密码算法

    对称加密算法: AEAD_AES_256_GCM AEAD_CHACHA20_POLY1305一般用于保存用户资料...

  • 最近用到的一些String的一些常用方法

    string的Base64加密/解密 oc 加密 oc解密 swift 加密 swift 解密 oc字典转jso...

  • SQLCipher

    转自使用SQLCipher加密SQLite数据库其他参考文章: 集成SQLCipher SQLite 加密 -- ...

  • Java加解密学习笔记

    java加解密 密码常用术语 明文:待加密信息 密文:经过加密后的明文 加密:明文转为密文的过程 加密算法:明文转...

  • Java实现Base64加密

    密码常用术语 明文:待加密信息; 密文:经过加密后的明文; 加密:明文转为密文的过程; 加密算法:明文转为密文的转...

  • Spring Cloud学习day105:配置中心的安全与加密

    一、对称加密 1.什么是对称加密? 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(d...

  • 什么是加密货币?

    本指南旨在为加密货币世界带来简单易懂的介绍,并深入了解竞争您的投资和市场主导地位的不同项目以及底层技术,历史和趋势...

  • 什么是对称加密?

    对称加密是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。事实...

  • 对称与非对称加密

    在数字加密算法中,通过可划分为对称加密和非对称加密。 一:什么是对称加密? 在对称加密算法中,加密和解密使用的是同...

网友评论

      本文标题:【转】什么是AEAD加密

      本文链接:https://www.haomeiwen.com/subject/thahoftx.html