现代对称加密和DataEncryptionStandard
1. 现代对称加密
1.1 P 盒(Permutation box 置换盒)
P 盒类似于传统的置换密码,用于置换 bit 位。P 盒分三种类别:
- Straight P-box:输入数 = 输出数(只有该 P 盒可逆)
- Compress P-box:输入数 > 输出数
- Expansion P-box:输入数 < 输出数
1.2 S 盒(Subtitution box 替换盒)
S 盒接受特定数量的输入比特 m,并将其转换为特定数量的输出比特 n,其中 n 不一定等于 m 。一个 m×n 的S盒可以通过包含 2m 条目,每条目 n 比特的查找表实现。
1.3 扩散 Diffusion
隐藏明文和密文之间的联系。
1.4 混淆 Confusion
隐藏密文和密钥之间的联系。
1.5 现代分组密码
现代分组密码都是乘法密码,分为两类:
- 费斯妥密码 Feistel ciphers
费斯妥网络是一种迭代密码,其中的内部函数称为轮函数。费斯妥密码使用了三种类型的组件:自可逆、可逆、不可逆组件

- Non-Feistel ciphers
非费斯妥密码只能使用可逆组件。
2. Data Encryption Standard (DES)
2.1 简化版的 DES
- Key size = 10 bits (56 bits for DES)
- Number of rounds = 2 (16 for DES)
- Plaintext block = 8 bits (64 bits for DES)
- Ciphertext block = 8 bits (64 bits for DES)

简化 DES 加密流程中的 Feistel 函数具体内容如下:

2.2 DES

- 初始置换 IP

- 轮函数
- 初始置换 IP

- 轮密钥生成
置换 ,循环左移,置换

2.3 DES 分析
-
雪崩效应:同一密钥加密仅一个 bit 位的不同明文,最后得到的密文大相径庭
-
完整性:一个密文 bit 位依赖与许多明文 bit 位
-
设计原则:
- S 盒:提供混淆和扩散作用
- P 盒:提供扩散作用
- 轮函数:使用 16 轮 Feistel 加密
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!