密码学学习笔记
2015-12-22 13:57
225 查看
一、密码学范畴
现代密码学的基本内容可分为两大部分:密码算法和密码协议;其中密码算法又分为密码编码和密码解码两部分。二、分组密码
1.流密码每次加密数据流的一bit或一个byte,分组密码是将一个明文分组作为整体加密并且通常得到的是与明文等长的密文分组。2.现在使用的大多数对称分组加密算法都是基于Feistel分组密码结构的。
3.理想分组密码是指对于任意一个n bit的明文,都有一个唯一的n bit密文与之对应。明文与密文之间是一一映射的,这个映射关系就是密钥。
4.理想分组密码在实现上不可行,因为如果n太小,则密码系统等同与替代密码,易受统计分析攻击;如果n大到足以抗击统计分析,则密钥又会太长
5.Feistel是理想分组密码的近似。
6.Feistel结构的安全性依赖于下列参数:
分组长度
密钥长度
迭代轮数
子密钥产生算法复杂度
轮函数复杂度
7.雪崩效应:明文或密钥的某一位发生变化会导致密文的很多位发生变化。雪崩效应越强,算法的安全性越好
8.DES算法不安全的原因是:密钥长度太短,抗穷举攻击能力差,而并非算法本身有致命的弱点
9.迭代轮数越多,密码分析就越困难;一般来说迭代轮数的选择标准是使密码分析的难度大于简单穷举攻击的难度
10. AES算法的密钥长度有128bit,192bit,256bit三种,但明文和密文块大小固定为128bit,即16字节
三、流密码
1. RC4算法已经不再安全(rfc7457)四、数据完整性算法
1. 认证-加密的组合方式主要有:Encrypt-and-MAC
MAC-then-Encrypt
Encrypt-then-MAC
TLS协议规定使用 MAC-then-Encrypt,即先计算MAC,然后把 “明文+MAC” 再加密(块加密或者流加密)的方式。但近些年,人们发现 MAC-then-Encrypt 这种结构导致了 很容易构造padding oracle 相关的攻击,例如;BEAST 攻击 , Lucky 13攻击 (CVE-2013-0169), 和 POODLE 攻击(CVE-2014-3566).
目前因此,学术界已经一致同意:Encrypt-then-MAC 才是最安全的。
2.学术界有人就提出将Encrypt和MAC直接集成为一个算法,在算法内部解决好安全问题,这就是AEAD(Authenticated-Encryption With Addtional data)类的算法,CCM和GCM模式就属于AEAD。
五、公钥密码
1.相关文章推荐
- 数据库性能指标 2005-04-06 19:36:14(转载)
- struts2拦截器中 如果获取当前请求action 和请求的方法
- yum命令Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
- ansible动态inventory获取主机列表
- struts2 ,session失效,拦截器
- 个人常用iOS第三方库以及XCode插件介绍
- 瓷片电容容量 102 103 104 222 223 472 473 474 是多少
- Js 中json简单处理
- [bzoj1587] [Usaco2009 Mar]Cleaning Up 打扫卫生
- Hadoop学习笔记(十一)思维导图整理(附源文件)
- Spring quartz 任务调度器 启动加载,定时加载
- CAP理论十二年回顾:"规则"变了
- MATLAB GUI 通过点击控件关闭figure
- CAP理论十二年回顾:"规则"变了
- ITeye、CSTO站点升级公告
- EditText clearFocus
- Plupload js插件 使用pluploadQueue实例化uploader文件上传
- sql 中延迟执行
- C#邮件发送帮助类
- HTTP协议之基本认证