AES 高级密码加密标准介绍,与DES区别

AES 高级密码加密标准介绍,与DES区别

-
这两种DES(数据加密标准)AES(高级加密标准)是美国的标准。传统 使用 IBM 开发的 Lucifer,而当前标准 通过开放选择指定 Rijndael。通常将 和 AES 称为密码本身。例如,AES 和 Rijndael 的不同之处在于,“Rijndael 本身指定的块和密钥大小可以是 32 位的任意倍数,最小为 128 位,最大为 256 位。” 但是,AES 指定了 128 位的“固定块大小”,但密钥大小有 128、192 或 256 位三种选择。(维基百科

DES 和 AES 是分组密码。块是一组位。块是块密码的基本处理单元。DES 将数据分成 64 位块,而 AES 以 128 位块处理数据。但是,密钥可能不等于数据块。DES 密钥大小名义上是 64 位(8 字节),但一个字节的每一位都是所谓的用于错误控制的奇偶校验位。因此,有效密钥长度为 56 位(64-8=56)。DES 块大小比其后继 AES 小得多,AES 使用 128 位块。

因为分组密码使用固定大小的块,明文不能总是分成整个块或块大小的倍数。“ Padding ”是将数据加入明文中以便将其划分为完整块的过程。位置(开始、中间或结束)、单位(位或字节)和模式(全为零或全为 1)是填充问题。ANSI X9.23、PKCS#5、PKCS#7、ISO/IEC 7816-4 等是处理填充数据模式的标准。
ECB 模式中的 AES 可能不涉及初始化向量 (IV)。分组密码可以在各种操作模式下工作。最著名的电子代码簿 (ECB) 不涉及启动向量,但可能会生成重复的模式。

DES 于 1970 年代初由 IBM 开发,基于 Horst Feistel 的早期设计。它于 1976 年被批准为美国标准。三重 DES (3DES/TDES) 是 DES 在 1990 年代被破坏后的一种解决方法。3DES 使用相同的 DES 算法三次以增加工作因子。3DES 需要三个密钥(每个 DES 操作一个);但是,第一次使用的密钥可以在第三次处理时使用。名义上,3DES 使用三个密钥,但实际上它可以使用两个密钥(第一次和第三次使用相同的密钥)。DES3-EEE 意味著使用三个不同的密钥应用 DES 加密三次。

参考
分组密码
高级加密标准
数据加密标准
三重DES
奇偶校验位(維基百科)
填充(密码学)
初始化向量
java中AES-256加密需要多大的初始化向量?
RSA 中的典型塊大小是多少?

资料来源: Wentz Wu QOTD-20210629

本文转载自:choson,版权归原作者所有,本博客仅以学习目的的传播渠道,不作版权和内容观点阐述,转载时根据场景需要有所改动。