DES 轮函数中安全级别最高的组件是什么?
DES 的各个组件如下:
密钥转换 - 初始的 64 位密钥通过丢弃每第 8 位来转换为 56 位密钥。因此,每一轮都适用 56 位密钥。从这个 56 位密钥中,每一轮都会使用称为密钥转换的过程产生多个 48 位子密钥。56 位密钥被分成两半,每半 28 位。
| 轮数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 密钥位移位数 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
每轮密钥位移位数
密钥转换过程中,包括从原始 56 位密钥中置换和选择 48 位密钥,这被称为压缩置换。在压缩置换技术中,每一轮都使用了密钥位的多个子集。这使得 DES 不容易破解。
扩展置换 - 初始置换后,它有两个 32 位明文区域,称为左明文 (LPT) 和右明文 (RPT)。在扩展置换中,RPT 从 32 位扩散到 48 位。它可以将位大小从 32 位增强到 48 位,位也被置换,也就是扩展置换。
首先可以看到密钥转换过程将 56 位密钥压缩到 48 位。因此,扩展置换过程将 32 位 RPT 扩展到 48 位。
S 盒替换 - S 盒替换是一个过程,它接收来自异或运算的 48 位输入(包含压缩密钥和扩展 RPT),并使用替换技术生成 32 位输出。
替换由八个替换盒(也称为 S 盒)实现。八个 S 盒中的每一个都有一个 6 位输入和一个 4 位输出。48 位输入块被分成 8 个子块(每个包含 6 位),每个子块都被提供给一个 S 盒。
P 盒置换 - S 盒的输出包含 32 位。这 32 位使用 P 盒进行置换。这个简单的置换结构包含简单的置换,包括根据 P 盒表中定义的将每个位替换为另一个位,而无需任何扩展或压缩。这被称为 P 盒置换。
异或和交换 - 所有这些操作只能在 64 位原始明文的 32 位右半部分(即 RPT)上实现。左半部分(即 LPT)到目前为止没有受到影响。
在这个阶段,初始 64 位明文块的左半部分(即 LPT)与 P 盒置换生成的输出进行异或运算。这个异或运算的结果成为新的右半部分(即 RPT)。旧的右半部分(即 RPT)在交换过程中成为新的左半部分。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP