您的位置:首页 > 其它

密码学学习笔记

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: