在信息安全中,DES 密钥生成的步骤是什么?
数据加密标准 (DES) 是一种分组密码算法,它将明文以 64 位的块进行分组,并使用 48 位的密钥将其转换为密文。它是一种对称密钥算法,这意味着加密和解密信息使用相同的密钥。
DES 接收一个 64 位的明文并生成一个 64 位的密文;在解密端,DES 接收一个 64 位的密文并生成一个 64 位的明文块。相同的 56 位密码密钥可用于加密和解密。
DES 的关键特性在于算法是固定的并且是公开数据。但是,实际使用的密钥是发送方和接收方之间共享的秘密。
DES 的改进包括将密钥长度延长到 128 位,以及多重 DES,它通常包括使用多个密钥进行三次加密和解密。
DES 是国际商用机器 (IBM) 公司在 1960 年代后期启动的一个研究项目的成果,该项目产生了一种称为 LUCIFER 的密码。在 1970 年代初期,决定对 LUCIFER 进行降级,并引入了多项创新。
该算法实现了 16 轮加密,并且每一轮都会生成一个唯一的密钥。在开始进行这些步骤之前,了解明文中位从 1 到 64 进行标记,其中 1 是最高有效位,64 是最低有效位至关重要。密钥生成过程如下:
轮密钥生成器从 56 位密码密钥中生成 16 个 48 位密钥。密码密钥以 64 位密钥的形式提供,其中 8 个额外位是奇偶校验位,在实际密钥生成过程开始之前会被丢弃。
奇偶校验位丢弃过程会从 64 位密钥中丢弃奇偶校验位(第 8 位、第 16 位、第 24 位、第 32 位…第 64 位),并根据如下奇偶校验位丢弃表中预定义的规则对剩余位进行置换。
这些剩余的 56 位通常用于密钥生成。
置换后,密钥被分成两个 28 位的部分。每个部分根据轮数左移一位或两位。
在第 1 轮、第 2 轮、第 9 轮和第 16 轮中,移位一位,而在其他轮中移位两位。这两个部分被合并以构建一个 56 位的部分。
因此,压缩 D 盒将其转换为 48 位。这 48 位被用作一轮的密钥。
| 57 | 49 | 41 | 33 | 25 | 17 | 09 | 01 |
| 58 | 50 | 42 | 34 | 26 | 18 | 10 | 02 |
| 59 | 51 | 43 | 35 | 27 | 19 | 11 | 03 |
| 60 | 52 | 44 | 36 | 63 | 55 | 47 | 39 |
| 31 | 23 | 15 | 07 | 62 | 54 | 46 | 38 |
| 30 | 22 | 14 | 06 | 61 | 53 | 45 | 37 |
| 29 | 21 | 13 | 05 | 28 | 20 | 12 | 04 |

数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP