DES(数据加密标准) - DES算法及操作
数据加密标准,或 DES,是一种加密密码,用于保护和隐藏敏感信息,使其免受网络攻击的查看或检索。
DES 可以描述为一种分组密码、加密/对称密钥算法。对称密钥意味着相同的算法/密钥用于加密和解密。另一方面,非对称密钥使用两个不同的密钥 - 一个是公钥,另一个是私钥。
DES 的历史和现状
DES 由 IBM 公司的密码学研究员霍斯特·费斯泰尔于 1971 年开发。它基于“LUCIFER”(费斯泰尔分组密码),DES 由 16 轮 LUCIFER 组成。64 位的明文块被输入到 DES 中,DES 输出等量的 64 位密文。用于此过程的 DES 密钥大小为 56 位。
DES 是政府的官方加密标准,直到 2002 年高级加密标准 (AES) 在公开竞赛中取代了它。国家标准与技术研究院 (NIST) 最初批准了 DES 用于联邦用途,现在已撤销其政府用途的资格。然而,最新的迭代三重 DES (3DES) 已获准在 2030 年之前用于敏感的政府数据。3DES 的轮数是 DES 的三倍,即 48 轮而不是 16 轮,但并没有变得更加强大。
DES 算法和过程
DES 算法按照以下步骤执行:
在加密过程开始之前,64 位的明文会被转换为 DES 密钥大小,即 56 位。序列中的每第 8 位都会被丢弃,这些奇偶校验位有助于检测代码集之间的任何差异。如果明文超过 64 位且不可整除,则某些序列可能会更短 - 它们会填充额外的位进行处理。
然后开始密码学中的基本过程 - 替换和转置,然后是 16 个阶段的加密过程。
阶段 1:初始置换
明文首先通过初始置换 (IP) 进行处理。IP 重新排列 64 位明文块,并将块转置到密钥的每第 8 位位置。然后,IP 将 64 位块分成两半,即 32 位的半块,称为 LPT(左明文)和 RPT(右明文)。
阶段 2:加密
步骤 1:密钥转换
此步骤称为压缩置换 - 创建的原始 56 位块通过丢弃一些位进一步压缩为 48 位块。然后两个 28 位的半块进行循环置换,得到一个 48 位的子集。
步骤 2:扩展置换
此步骤与步骤 1 相反。两个 32 位的半块扩展为一个 48 位的整体。每个 32 位的半块被分成 8 个 4 位的块。然后从相邻的两侧附加 2 位到 4 位块,使其成为 6 位。LPT 和 RPT 现在都是 48 位块,每个块包含 8 个 6 位。
步骤 3:S 盒置换
替换盒置换/替换采用 48 位的 RPT 和 LPT,并使用查找盒将 6 位部分更改为 4 位输出,生成 32 位输出。此阶段为密码添加了额外的安全层。
步骤 4:P 盒置换
此步骤仅涉及重新排列 32 位输出并将它们排序到四个单独的 S 盒中。
步骤 5:XOR(异或)和交换
将称为 XOR 的数学函数应用于四组 S 盒位。位只能测量为 0 或 1。比较两组位以查看它们是否匹配。在最小的位级别匹配可以增强代码。
阶段 3:组合
加密完成后,LPT 和 RPT 侧重新组合形成 64 位密文。
阶段 4:最终置换
对 64 位原始块进行最终置换以获得最终输出,即 64 位密文。
操作模式
我们已经探讨了 DES 算法的工作原理。现在我们来看看不同的应用方法。
- 模式 1:ECB – 电子密码本
ECB 是最基本的操作模式。单个 DES 算法用于一次加密一个块。没有向过程中添加任何不同的变量,这使得它非常简单,但也容易受到攻击,特别是通过中间人 (MITM) 攻击。
- 模式 2:CBC – 密码分组链接模式
CBC 使用初始化向量 (IV) 将先前的明文块合并到当前块中。CBC 的链接过程意味着先前的块的输入明文决定了下一个块的解密。XOR 机制整合了当前和先前的输入,以便不会生成类似的密文。
- 模式 3:CFB- 密码反馈模式
CFB 也使用 IV,但输入大小(段)可以从一位到整个块不等。但这次,前一个块的密文作为反馈集成到加密算法中。这创建了一个密钥流,进而决定当前的下一个加密。应用 XOR 编码函数来整合密钥流,并生成当前明文和伪随机输出。
- 模式 4:OFB- 输出反馈模式
OFB 和 CFB 非常相似。唯一的区别是 OFB 有一个额外的内部机制,可以创建与明文输入和密文输出无关的密钥。密钥对整个 DES 输出进行额外的加密以创建唯一的密文。
- 模式 5:CTR – 计数器模式
计数器方法加密每个明文块并应用 XOR 计数器。此计数器会随着每个块的处理而逐步累加。
结论
DES 如今已不再使用。它无法抵御来自复杂代码破解技术的暴力攻击,并且其密钥长度太短。但研究 DES 至关重要,因为它为其他加密标准和算法奠定了基础,并且通过突出不同技术的优势和劣势,为当代密码学发展提供了借鉴。