什么是 DES?2024年8月28日 | 阅读16分钟 如今,安全性是 IT 领域每个人最关心的问题。根据 Gartner 的数据,在信息安全和风险管理方面的支出预计将从 1550 亿美元增加到 2022 年的 1720 亿美元,这说明了其重要性。虽然有很多工具可以购买来保护您的数据,但加密是每个计算机用户都应该熟悉的网络安全工具。 加密有什么用?加密是一种使数据消息或文件无法阅读的技术,确保只有授权人员才能访问该数据。数据使用复杂的算法进行加密,然后使用消息发送者提供的密钥进行解密。加密在存储或传输信息时,可以保护信息的机密性和私密性。任何未经授权的访问只会看到一堆杂乱的字节。 您应该熟悉以下与加密相关的概念 算法 算法,有时也称为密码,是加密过程的规则或方向。加密的效率取决于所使用的加密方法的密钥长度、功能和特性。 解密 解密是将不可理解的密文转换为可理解数据的过程。 键 加密密钥是一个随机的比特串,用于加密和解密数据。密钥越长越难破解,并且每个密钥都是独一无二的。公钥的长度通常为 2048 位,而私钥通常为 128 位或 256 位。 有不对称和对称的加密密钥方案。 对称密钥系统在对称密钥系统中,访问数据的每个人都使用相同的密钥。为了保持匿名性,加密和解密密钥也必须保密。虽然这在技术上是可行的,但由于需要安全地分发密钥以确保正确的控制措施到位,因此在广泛的商业应用中使用对称加密是不可行的。 非对称密钥系统公钥/私钥系统,有时也称为非对称密钥系统,使用两个密钥。私钥是唯一保密的密钥,而其他密钥则对所有人开放。公钥是众所周知的。由于私钥和公钥之间存在数学关联,因此只有合适的私钥才能解密使用公钥加密的数据。 加密实践这里有一个关于加密如何工作的例子,使用了对电子邮件友好的程序 Pretty Good Privacy (PGP),对于开源软件的爱好者来说,它也被称为 GnuPG 或 GPG。假设我想私密地给你发送一条消息。我使用下面列表中的一个程序来加密它。 建议如下 消息在加密后变成一堆杂乱的随机字符。但是,如果你拥有我给你的密钥,你就可以解开它,找到消息的原始内容。 即使有人设法访问了你的网络或系统,加密也能保护你的数据免受窥探,无论它是在传输中(就像我们讨论热狗派对的电子邮件一样)还是存储在你的硬盘上。 该技术有各种形状和大小,其中密钥大小和强度通常是类型之间最大的差异。 三重 DES 和 DES 的简要历史在 20 世纪 70 年代初,国家标准局(后更名为 NIST)认识到需要一个联邦标准来加密敏感的、非机密的数据。早期提出的 DES 新方案被拒绝。后来,IBM 公司于 1974 年提出了一种名为 Lucifer 的分组密码。在与国家安全局 (NSA) 讨论后,一个修改后的版本于 1976 年被接受为联邦信息处理标准,并于 1977 年 1 月 15 日作为 FIPS PUB 46 发布。它可以用于任何非机密数据。 在授权方法中,密钥长度从 128 位减少到 56 位,以及在隐秘情况下创建的替换框(S-boxes)是与原始 Lucifer 密码相比最显著的两个修改。执行替换的算法部分称为 S-box。 许多专家认为,NSA 以某种方式在算法中植入了后门,以便在不知道加密密钥的情况下能够解码 DES 加密的数据,并且密钥长度的缩减使得 DES 更容易受到暴力破解攻击。十三年后,人们发现 S-boxes 能够抵抗差分密码分析,这是一种在 1990 年被广泛披露的攻击。这意味着 NSA 在 1977 年就已经知道了这种攻击。 尽管存在这些异议,DES 还是被迅速接受,极大地促进了加密系统的研究和开发。在 1983 年、1988 年和 1993 年,它被确认为标准。但随着计算机处理能力的提高,DES 变得更容易受到暴力破解攻击。尽管 56 位密钥空间中有超过 72 千万亿种可能的组合,但这不再提供必要的安全级别。2005 年,该算法被淘汰。 为避免创建全新的密码并简化 DES 的替换,于 1999 年发布了三重 DES 标准 FIPS PUB 46-3。它目前也面临着与其前身相同的命运。 密码学的演进安全专家必须不断提出新的计划和技术来抵御网络攻击,因为网络攻击总是在不断变化的。甚至国家标准与技术研究院 (NIST) 也在研究量子密码学将如何影响加密技术的未来发展。请关注本专栏以获取最新信息。 现代经典、基于二进制、晶体管的计算机在执行某些类型的计算时效率不高。量子计算方法旨在利用量子现象来实现这一点。如果一台具有足够计算能力的量子计算机被制造出来,它可能会执行能够破解我们用来保护数据的许多加密协议的算法。国家标准与技术研究院 (NIST) 计算机安全部主任 Matt Scholl 在接受 Taking Measure 采访时,谈到了我们对此应有多担忧,以及正在采取哪些措施来降低未来量子计算机对我们数据造成的风险。 初始置换 (IP)明文被分成更小的、64 位大小的块。在第一轮之前进行 IP。此步骤描述了置换过程的实现。例如,第一个比特被第 58 个比特替换,第二个比特被第 50 个比特替换,依此类推。左明文 (LPT) 和右明文 (RPT) 是最终 64 位文本的两个相等的 32 位部分。 步骤 1:密钥转换 我们已经知道 DES 算法使用 56 位密钥,这是通过从 64 位密钥的第八位删除所有比特而创建的。在此阶段会生成一个 48 位密钥。将 56 位密钥分成两个相等的半部分,轮数决定了比特向左循环移动的次数。 因此,密钥中的比特都进行了重新排列。显而易见,在移位过程中会丢失一些比特,从而得到一个 48 位密钥。压缩置换就是这个过程。 步骤 2:扩展置换 让我们看看在 IP 步骤生成的 32 位 RPT。在本阶段,它从 32 位扩展到 48 位。将 32 位的 RPT 分成 8 个 4 位块,每个块额外增加 2 位。然后对比特进行置换,以生成 48 位数据。通过 XOR 函数将步骤 1 中获得的 48 位密钥和扩展的 48 位 RPT 结合起来。 三重 DES 算法三重 DES 使用 DES 密码进行三次运算,是一种对称密钥分组密码。它使用密钥 1 (k1) 加密,使用密钥 2 (k2) 解密,然后使用密钥 3 (k3) 加密。 要点
DES 算法过程通俗地说,DES 将 64 位明文转换为 64 位密文。由于使用了非对称方法,因此使用相同的密钥来解密文本。 以下步骤构成了算法过程:
加密过程的阶段(上文第 4 步)进一步细分为以下五个阶段:
我们采用相同的过程进行解密,并以相反的顺序排列 16 个轮密钥。 接下来,让我们研究 DES 的各种操作模式,以便更好地理解它。 DES 的操作模式专家在使用 DES 时有五种主要的操作模式。
接下来,我们将通过检查 DES 的实现和测试来加深对其的理解。 DES 的测试和实现DES 部署需要安全提供商。即使有多种供应商可供选择,选择一个供应商也是部署的关键第一步。您的选择可能会受到您使用的语言的影响,例如 MATLAB、Java、Python 或 C。 一旦选择了提供商,就必须选择是使用明文还是字节数组来构建由密钥生成器随机生成的密钥。 为了确保加密被正确使用,对其进行测试也很重要。 下面是 DES 在 Python 中的示例 输出 ...60AF7CA5 Round 12 FF3C485F 22A5963B C2C1E96A4BF3 Round 13 22A5963B 387CCDAA 99C31397C91F Round 14 387CCDAA BD2DD2AB 251B8BC717D0 Round 15 BD2DD2AB CF26B472 3330C5D9A36D Round 16 19BA9212 CF26B472 181C5D75C66D Cipher Text: C0B7A8D05F3A829C Decryption After initial permutation: 19BA9212CF26B472 After splitting: L0=19BA9212 R0=CF26B472 Round 1 CF26B472 BD2DD2AB 181C5D75C66D Round 2 BD2DD2AB 387CCDAA 3330C5D9A36D Round 3 387CCDAA 22A5963B 251B8BC717D0 Round 4 22A5963B FF3C485F 99C31397C91F Round 5 FF3C485F 6CA6CB20 C2C1E96A4BF3 Round 6 6CA6CB20 10AF9D37 6D5560AF7CA5 Round 7 10AF9D37 308BEE97 02765708B5BF Round 8 308BEE97 A9FC20A3 84BB4473DCCC Round 9 A9FC20A3 2E8F9C65 34F822F0C66D Round 10 2E8F9C65 A15A4B87 708AD2DDB3C0 Round 11 A15A4B87 236779C2 C1948E87475E Round 12 236779C2 B8089591 69A629FEC913 Round 13 B8089591 4A1210F6 DA2D032B6EE3 Round 14 4A1210F6 5A78E394 06EDA4ACF5B5 Round 15 5A78E394 18CA18AD 4568581ABCCE Round 16 14A7D678 18CA18AD 194CD072DE8C Plain Text: 123456ABCD132536 Output: Encryption : After initial permutation: 14A7D67818CA18AD After splitting: L0=14A7D678 R0=18CA18AD Round 1 18CA18AD 5A78E394 194CD072DE8C Round 2 5A78E394 4A1210F6 4568581ABCCE Round 3 4A1210F6 B8089591 06EDA4ACF5B5 Round 4 B8089591 236779C2 DA2D032B6EE3 Round 5 236779C2 A15A4B87 69A629FEC913 Round 6 A15A4B87 2E8F9C65 C1948E87475E Round 7 2E8F9C65 A9FC20A3 708AD2DDB3C0 Round 8 A9FC20A3 308BEE97 34F822F0C66D Round 9 308BEE97 10AF9D37 84BB4473DCCC Round 10 10AF9D37 6CA6CB20 02765708B5BF Round 11 6CA6CB20 FF3C485F 6D5560AF7CA5 Round 12 FF3C485F 22A5963B C2C1E96A4BF3 Round 13 22A5963B 387CCDAA 99C31397C91F Round 14 387CCDAA BD2DD2AB 251B8BC717D0 Round 15 BD2DD2AB CF26B472 3330C5D9A36D Round 16 19BA9212 CF26B472 181C5D75C66D Cipher Text : C0B7A8D05F3A829C Decryption After initial permutation: 19BA9212CF26B472 After splitting: L0=19BA9212 R0=CF26B472 Round 1 CF26B472 BD2DD2AB 181C5D75C66D Round 2 BD2DD2AB 387CCDAA 3330C5D9A36D Round 3 387CCDAA 22A5963B 251B8BC717D0 Round 4 22A5963B FF3C485F 99C31397C91F Round 5 FF3C485F 6CA6CB20 C2C1E96A4BF3 Round 6 6CA6CB20 10AF9D37 6D5560AF7CA5 Round 7 10AF9D37 308BEE97 02765708B5BF Round 8 308BEE97 A9FC20A3 84BB4473DCCC Round 9 A9FC20A3 2E8F9C65 34F822F0C66D Round 10 2E8F9C65 A15A4B87 708AD2DDB3C0 Round 11 A15A4B87 236779C2 C1948E87475E Round 12 236779C2 B8089591 69A629FEC913 Round 13 B8089591 4A1210F6 DA2D032B6EE3 Round 14 4A1210F6 5A78E394 06EDA4ACF5B5 Round 15 5A78E394 18CA18AD 4568581ABCCE Round 16 14A7D678 18CA18AD 194CD072DE8C Plain Text: 123456ABCD132536 下一主题新兴网络安全威胁 |
我们请求您订阅我们的新闻通讯以获取最新更新。