现代密码学
【考后感悟】还是得注重简答题,需每个密码算法都要有所了解(有些难的可以不用了解完整算法过程,估计考不上?),并对几个重要密码算法(重点下面会讲)着重复习(会做大题计算)
✍Created by Sikevin in UESTC
【注】:复习本门课前需要有信息安全数学基础,可以查看博主主页的《信息安全数学复习》一文。
✍博客主页:电子科大不知名程序员
【核心重点算法】:DES算法、RSA、ElGamal、ECC算法、DH算法、Shamir门限方案。
目录(注意重点)
1、引言
什么是密码?采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务
什么是密码学?密码学是研究编制密码和破译密码的技术科学

系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。
保密系统:
一个保密系统由:明文空间、密文空间、密钥空间、加密算法、解密算法构成。
①系统不可破
②保密性依赖于密钥**(Kerckhoffs假设)**
③加密解密算法适用密钥空间中的所有元素
④方便实现、使用
Kerckhoffs假设:假定密码分析者和敌手知道所使用的密码系统。即密码体制的安全性仅依赖于对密钥的保密,不应依赖于算法的保密

无条件安全与计算上安全:

计算上安全:
破译密文的代价超过被加密信息的价值。
破译密文所花的时间超过信息的有用期。
2、分组密码


分组密码应该满足的需求:


分组N要足够大,否则就等价于古典的代换密码
对n比特的代换结构,密钥的大小是n×2^n比特(n比特的分组长度,有2^n种情况)
代换网络:理解成是一种代换关系


乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果
Feistel算法

算法要易分析,软件要易实现

Feistel解密过程本质上和加密过程是一样的,算法使用密文作为输入
但使用子密钥Ki的次序与加密过程相反,即第1轮使用Kn,第2轮使用Kn-1,……,最后一轮使用K1。这一特性保证了解密和加密可采用同一算法。

加密时:


美国制定数据加密标准简况
①高安全性
②易理解
③安全性取决于密钥
④适用于所有用户、多场景
⑤高效、经济、有效、可出口
DES算法
流密码加密是逐字节加密,而DES采用的是块加密,对每个分组进行加密后在合并到一起形成密文
分组长度:64比特
密文长度也为64比特
密钥长度为64比特,其中有8位奇偶校验位,因此有效的密钥长度为56比特


过程:
1、初始ip置换
将64比特明文的位置进行置换,得到一个乱序的64比特明文组

其中的数字代表原来的明文序列对应位置的放在当前位置;例如58表示原序列的第58个比特位放在放到第一位去
2、16轮迭代
①首先对于分组的64比特明文,分成左右两组(32比特)
②密钥有效位为56比特,而密钥经过处理后,使用的是48比特的密钥,左右两组32比特,因此需要E扩展成48比特长度
首先将1到32比特用4行8列的矩阵按顺序写出,然后在左右两边进行扩展,左边扩展就是原矩阵最左边的一列的位置数减一,1没有办法减,就将第32位的值放在1的左边。而右边扩展就是原始矩阵最右边一列的位置加一,32右边放位置1的值。这样32比特就扩展成了

③将扩展好的明文(48比特)与48比特的密文进行异或操作(加密)
④由于明文32位被扩展成48位,因此需要使用S盒还原成32比特位
这里是6进4出的S盒


⑤S盒所得结果再进行P盒置换

3、密钥生成

密钥有64位,除去8比特奇偶校验位还有56位
①种子密钥,红色代表校验位:

②除去校验位后,进行置换选择1(PC1):

③形成了56比特:

④分成C0和D0两部分,分别为28比特位

⑤C0和D0根据密钥计算逻辑进行循环左移得到C1和D1

⑥C1和D1拼接—>置换表—>左移—>C2、D2—>再重复以上过程
DES是一种确定性算法。
4、DES的安全性
DES是不安全的!
密钥:

DES存在弱密钥和半弱密钥。所谓弱密钥指的是在同一密钥下加密两次为恒等变换,DES存在4个弱密钥
- 0101010101010101(十六进制表示:0x0101010101010101)
- FEFEFEFEFEFEFEFE(十六进制表示:0xFEFEFEFEFEFEFEFE)
- E0E0E0E0F1F1F1F1(十六进制表示:0xE0E0E0E0F1F1F1F1)

期末复习笔记&spm=1001.2101.3001.5002&articleId=131317224&d=1&t=3&u=baa7e245ea4949a4b37109f361d75f43)
4318

被折叠的 条评论
为什么被折叠?



