第二十七个知识点:什么是对称密码加密的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年)
第二十七个知识点:什么是对称密码加密的AEAD安全定义?的更多相关文章
- centos samba/squid 配置 samba配置 smbclient mount fstab自动挂载samba curl -xlocalhost:3128 www.qq.com squid配置 3128 DNSPOD 第二十七节课
centos samba/squid 配置 samba配置 smbclient mount fstab自动挂载samba curl -xlocalhost:3128 www.qq.com squ ...
- 第十七个知识点:描述和比较DES和AES的轮结构
第十七个知识点:描述和比较DES和AES的轮结构 这是密码学52件事中的第17篇.本周我们描述和比较DES和AES的结构. DES和AES都是迭代分组密码的例子.分组密码通过重复使用一个简单的轮函数来 ...
- NeHe OpenGL教程 第二十七课:影子
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- javaSE第二十七天
第二十七天 447 1:反射(理解) 447 (1)类的加载及类加载器 447 (2)反射: 448 A:定义 448 B:获取字节码对象的三种方式 449 (3) ...
- 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...
- Gradle 1.12用户指南翻译——第二十七章. Ear 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- SQL注入之Sqli-labs系列第二十七关(过滤空格、注释符、union select)和第二十七A
开始挑战第二十七关(Trick with SELECT & UNION) 第二十七A关(Trick with SELECT & UNION) 0x1看看源代码 (1)与26关一样,这次 ...
- “全栈2019”Java多线程第二十七章:Lock获取lock/释放unlock锁
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java第二十七章:流程控制语句中循环语句for
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
随机推荐
- 学习java的第二十一天
一.今日收获 1.java完全学习手册第三章算法的3.2排序,比较了跟c语言排序上的不同 2.观看哔哩哔哩上的教学视频 二.今日问题 1.快速排序法的运行调试多次 2.哔哩哔哩教学视频的一些术语不太理 ...
- Identity Server 4 从入门到落地(七)—— 控制台客户端
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- day34 前端基础之JavaScript
day34 前端基础之JavaScript ECMAScript 6 尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分.实际上 ...
- Azkaban(二)【WorkFlow案例实操】
目录 1.使用步骤 2.案例: 1.hello word 2.作业依赖[dependsOn配置作业的依赖关系] 3.内嵌工作流 4.全局配置 [在开头通过config进行配置,后续可以通过${属性名} ...
- Flume(四)【配置文件总结】
目录 一.Agent 二.Source taildir arvo netstat exec spooldir 三.Sink hdfs kafka(待续) hbase(待续) arvo logger 本 ...
- 修改linux文件权限命令:chmod 转载至 Avril 的随笔
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...
- Linux下强制踢掉登陆用户
1.pkill -kill -t tty 例:pkill -kill -t tty1
- Bootstrap-table动态表格
在开发中遇到一个需要动态生成table的需求,包括表头和数据.在调试的过程中遇到很多问题,包括数据分页,解决之后记录一下. 如下代码的数据加载流程: ①表头是动态的,在初始化table之前需要调一次后 ...
- Shell脚本定期清空大于1G的日志文件
一个关于如何在指定文件大于1GB后,自动删除的问题. 批处理代码如下: #!/bin/bash # 当/var/log/syslog大于1GB时 # 自动将其备份,并清空 # 注意这里awk的使用 i ...
- web端 - 返回上一步,点击返回,跳转上个页面 JS
1.方法一: <script language="javascript" type="text/javascript"> window.locati ...