加密是将一种形式的信息(通常是人类可读的)转换为另一种形式(通常不是人类可读的)的过程。它以数学为基础,并利用称为密钥的外部信息来执行此转换。加密有些是基于硬件的,例如指纹和视网膜扫描仪,有些是基于软件的,例如用户 ID 和密码,其中最重要的就是DES和AES,下面我们来分别认识一下这两种加密方法。
一、什么是DES?
DES 是一种对称分组密码(共享密钥),密钥长度为 56 位,于 1977 年作为美国联邦信息处理标准 (FIPS) 46 标准发布,后来被美国国家标准与技术研究院 (NIST) 采用。
DES对密码学的进步产生了很大的影响,但是,由于 56 位的短密钥长度,所以对应用程序不安全。1999 年,distributed.net在 22 小时 15 分钟内破解了一个 DES 密钥,在这事件发生后,NIST 撤回了该算法作为标准。
DES 在加密期间将纯文本消息分组为 64 位块,使用置换和替换将块与密钥一起编码为 64 位密文,该过程需要 16 个步骤,可以在四种不同的模式下运行,要么单独加密块,要么使每个密码块依赖于所有先前的块,DES解密过程是其加密步骤的逆过程,颠倒了应用密钥的顺序。
二、什么是AES?
AES 数据加密是一种在数学上更高效、更优雅的加密算法,由美国国家标准与技术研究院于 2001 年推出。作为高级加密标准,AES提供三种密钥长度,分别是128 位、192 位和 256 位,密钥长度越高,破解系统或破解系统所需的时间就越多。因此,AES 被认为比 DES 算法更好。
AES 在通过计算机网络传输数据时被广泛使用,特别是在无线网络中,AES 使用 128 位明文和 128 位密钥来创建 128 位块,然后对其进行处理以生成 16 字节(128 位)密文。
高级加密标准的加密过程是基于迭代方式的替换和置换操作,16 字节的数据以四列四行的矩阵排列,在这个矩阵上,AES 执行几轮替换置换操作。
这些轮次中的每一轮都使用不同的密码密钥,该密钥是根据原始 AES 密钥计算得出的,操作的轮数取决于密钥的大小,方式如下:
- 128 位密钥,10 轮
- 192 位密钥,12 轮
- 256 位密钥,14 轮
三、DES与AES区别
3.1 创建时间
- DES:1976 年
- AES:1999 年
3.2 标准化时间
- DES:1977 年
- AES:2001 年
3.3 设计者
- DES:由IBM 设计
- AES:由Vincent Rijmen和Joan Daeman 设计
3.4 密钥长度
- DES:56 位
- AES:128、192 和 256 位
3.5 块大小
- DES:64 位
- AES:块大小可以是 128、192 或 256 位,取决于密钥长度
3.6 加密过程
- DES: 16 轮
- AES:在 128、192 和 256 位的情况下,加密过程分别涉及 10、12 和 14 轮