文章目录
- 参考书目
- 一、编码与异或
- 1.1 编码
- 1.2 异或
- 二、DES与三重DES
- 三、AES
参考书目
图解密码技术,第三版
一、编码与异或
1.1 编码
计算机的操作对象并不是文字,而是由0和1排列而成的比特序列。无论是文字、图像、声音、视频还是程序,在计算机中都是用比特序列来表示的。
执行加密操作的程序,就是将表将现实世界中的东西映射为比特序列的操作称为编码(encoding)。
例如midnight这个词,我们可以对其中的每个字母逐一进行编码,这种编码规则叫作 ASCII。
1.2 异或
下面是一个非常简单的例子,比特序列的异或,用于理解对称加密
二、DES与三重DES
DES是一种对称密钥加密算法,全称为数据加密标准(Data Encryption Standard),最早由IBM公司在1970年代末期开发,是最早应用于计算机通信安全的加密算法之一。DES使用56位密钥来加密和解密数据,它将明文分成64位的块,并使用密钥对每个块进行加密。DES算法使用的是分组密码工作模式中的电子密码本模式(ECB)。
DES算法曾经被广泛使用,但随着计算机技术的发展,它的密钥长度相对较短,易于被暴力破解,安全性受到了质疑。因此,在1998年,DES的密钥长度被增加到了三重DES(3DES),这是将DES算法应用三次。3DES的密钥长度为168位,提供了更高的安全性,但是速度较慢。
尽管DES算法已经被认为不再安全,但是DES算法仍然具有历史意义,在加密领域有一定的地位。同时,DES算法的设计思路和算法原理也对后来的加密算法的设计产生了重要影响。目前,更安全的加密算法,如AES(高级加密标准)和RSA(非对称加密算法),已经被广泛使用。
由于这两种标准在实际中已经几乎不使用,因此不做过多介绍
三、AES
AES代表高级加密标准(Advanced Encryption Standard),是一种对称密钥加密算法,用于加密和解密电子数据。它曾经被称为Rijndael算法,是由比利时密码学家Joan Daemen和Vincent Rijmen在1998年设计的。
AES算法使用128位、192位或256位密钥来加密和解密数据。它被广泛应用于许多领域,包括保护计算机文件、网络通信和移动设备数据等。由于其高度的安全性和速度,AES算法已经成为许多国家和产业标准的一部分,包括美国政府采用的加密标准。
Rijndael与AES的区别
Rijndael是由比利时密码学家Joan Daemen和 Vincent Rijmen设计的分组密码算法,于2000年被选为新一代的标准密码算法———AES。
Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特到256比特的范围内进行选择。但是在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。