实用密码学
范学雷
前 Oracle 首席软件工程师,Java SE 安全组成员,OpenJDK 评审成员
14948 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 24 讲
开篇词 (1讲)
课前必读 (1讲)
案例分析 (1讲)
实用密码学
15
15
1.0x
00:00/00:00
登录|注册

15 | AEAD有哪些安全陷阱?

你好,我是范学雷。
上一讲,我们讨论了加密数据如何才能够自我验证,自我验证就是指解密的时候,还能够同时检验数据的完整性。我们还谈到了带关联数据的认证加密(AEAD)是目前市场的主流思路。
我们有了带关联的认证加密算法,应用程序再也不需要自行设计、解决数据的完整性问题了。但问题是,如果我们要在应用程序中使用带关联数据的认证加密,有哪些算法可以使用?
带关联数据的认证加密算法,有没有需要小心的安全陷阱?这是我们这一次需要解决的问题。

有哪些常见的算法?

还是老规矩,我们先来看看有哪些常见的算法。现在,常见的 AEAD 模式有三种:
GCM;
CCM;
Poly1305。
一般地,我们可以把带关联数据的认证加密看做一个加密模式,就像 CBC 模式一样,我们可以和前面提到的 AES 等加密算法进行组合。但 ChaCha20 和 Poly1305 通常组合在一起;Camellia 与 AES 通常和 GCM 以及 CCM 组合在一起。
由于 AEAD 模式相对较新,而 3DES/DES 等遗留或者退役算法又存在明显的安全缺陷,所以,我们一般不会使用遗留或者退役算法的 AEAD 模式。
如果我们重新整理一下,综合考虑加密算法和加密模式,那么,当前推荐使用的、有广泛支持的、风险最小的算法是:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了带关联数据的认证加密算法(AEAD算法)的安全陷阱,重点介绍了常见的AEAD算法以及其安全性问题。文章首先列举了常见的AEAD算法,包括GCM、CCM和Poly1305,并指出了当前推荐使用的算法是AES/GCM、ChaCha20/Poly1305和AES/CCM。随后,文章重点讨论了使用随机数作为初始化向量的问题,包括初始化向量在信息发送方和接收方之间的同步问题、随机数大小的选择、随机数初始化的性能问题等。文章强调了使用随机数作为初始化向量的风险和注意事项,以及解决这些问题的方法。总的来说,本文通过深入讨论AEAD算法的安全陷阱,提醒读者在使用AEAD算法时需要小心谨慎,以确保数据的安全性和完整性。文章还提出了对称密钥依赖的技术随机数的讨论,并提出了一些思考题,引导读者思考在实际项目中初始化向量的使用情况。文章内容丰富,对于了解AEAD算法的读者具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《实用密码学》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 可怜大灰狼
    1.密钥固定不变 2.密钥定期变化,但是没用初始化向量 3.用上了初始化向量,但是这个向量是固定值 4.没用MAC,没用AEAD 完了,完了,该犯的问题,都有了。

    作者回复: 哈哈,能发现问题,就很好!

    2020-12-28
    2
  • 韩露
    AEAD 模式能跟国密算法结合吗?现在都在提倡国产化,如果不能跟国密算法结合,还是用不了AEAD模式。

    作者回复: 可以的

    2021-01-06
    2
    1
  • 老师,后面讲完 非对称加密,可以再来个密码学应用实战,把这些理论知识实践上

    作者回复: 唉,非对称加密都不知道什么时候能讲。圈子小的坏处之一,就是知识传播一点都没有竞争力,很多大部头(包括《应用密码学》)都没有多大的市场,推动不了版本更新。

    2022-08-12归属地:美国
    4
  • harryZ
    对于国密老师什么时候开个专题

    作者回复: 应该不太远了,不过也不太确定,看时间吧。

    2022-05-23
    2
  • Litt1eQ
    想到了802.11当中的wep算法采用了24位的初始化向量与同一把密钥进行运算 从而导致了严重的安全问题
    2020-12-28
    1
    3
  • ifelse
    初始化向量的重复问题,就是使用 AEAD 算法的最大风险,也是最难处理的风险。--记下来
    2022-11-10归属地:浙江
  • ifelse
    学习打卡
    2022-11-10归属地:浙江
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部