• 第二十七个知识点:什么是对称密码加密的AEAD安全定义?


    第二十七个知识点:什么是对称密码加密的AEAD安全定义?

    AEAD

    在之前的博客里,Luke描述了一种被广泛使用的操作模式(ECB,CBC和CTR)对块密码。我们也可能会想我们加密方案的完整性,完整性意味着接收到的消息就是发送的消息,在信道中没有意外修改或者恶意修改,真实性意味着接收者确实是收到了发送者的消息。为了使用这些特性,我们通常使用消息认证码(MAC),那些基于hash的消息认证码叫做HMAC。把这两个密码原语放在一起不是平凡的:为了获得IND-CCA安全方案,我们需要遵循加密然后MAC的范式,使用安全的加密方案和一个强不可伪造的MAC,这意味着在密文上进行MAC。(这里这里给出了更多的信息关于“加密和MAC”,“MAC后加密”,关注为了我们要避免它们。“AD”指的是可变长度的相关数据(Associated Data),如包头,我们通常期望真实性和完整性,但不希望这个可选组件具有保密性。更多的阅读和例子,看Adam Langley's 博客关于这个话题的。

    实际上传统的EtM,MtE,MaE都是有一些问题的,设计时要用真正的AEAD算法。

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

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

    IND-CCA

    下周的博客将会深入研究IND-CCA2安全在一个公钥加密的上下文。在真随机数下的IND-CCA2(和IND-CCA1)安全定义是给攻击者一个加密oracle的权利,加密oracle的密钥是固定的。输入消息m,返回一个加密过的(E_k(m))或者返回一个(E_k($^{|x|})),同时也给一个解密oracle给出密文(c),然后返回(D_k(c))。然后攻击者进行区分。在2004年,Shrimpton展示了一种新的被称为IND-CCA3的概念,解密oracle对一个无法解密的oracle会返回一个不合法的符号,与之前考虑过的AE概念相同,其中隐私和真实性/完整性的概念分别进行研究。这一观察结果被纳入罗格威和希姆普顿的论文中,研究密钥包装问题和确定性认证加密。有关关联数据影响的更多信息,请参见此处此处

    CCM和GCM

    实际上,大量组织使用CCM模式和GCM模式。CCM模式是一种计数模式和CBC-MAC使用MAC-then-Encrypt方法构造的。GCM是块密码的计数模式和基于多项式的哈希函数GHASH使用Encrypt-then-MAC构造的。CCM相对没有效率,每次需要两个块密码的调用,同时CCM也不是在线的(每次在处理消息之前需要知道消息的长度)。GCM在这篇文章里也有一些缺点:http://eprint.iacr.org/2011/202

    CAESAR competition

    凯撒密码竞赛目前正在进行中,目的是在经过彻底的学术公众审查的基础上,选择一组经过认证的密码进行推荐。主要目标之一是让更多的研究人员思考这样一个重要的主题,而第一轮提交的大量论文(性质各异)表明,这一目标已经实现。第二轮的候选名单预计将于下周公布,提交的名单可以在AE Zoo(https://aezoo.compute.dtu.dk/doku.php)找到,由DTU的一些研究人员管理。

    竞赛已经结束。(2020年)

  • 相关阅读:
    软件性能中几个主要的术语
    (转)性能测试指标
    不同角度关注的软件性能
    《跃迁:从技术到管理的硅谷路径》读书笔记
    Mysql基础知识—索引
    Python学习笔记系列——高阶函数(map/reduce)
    Python学习笔记系列——高阶函数(filter/sorted)
    (转)Python学习笔记系列——Python是一种纯粹的语言
    Python学习笔记系列——读写文件以及敏感词过滤器的实现
    双向链表(Double-Linked List)
  • 原文地址:https://www.cnblogs.com/zhuowangy2k/p/12245563.html
Copyright © 2020-2023  润新知