3.3.1 DES

2025-06-17 17:12:18 更新

(一)DES (Data Encryption Standard)

(1)发展史

数据加密标准,IBM公司在1972年发明,1976年成为美国标准,支持64位明文块加密,密钥长度为56位。存在弱点,容易受到暴力破解和差分攻击。

1997年,RSA实验室发起了破解DES密文的挑战。被70000多台联网计算机暴力破解成功。次年又被一台价值25万美元的机器在3天内攻破。于是DES 56bit的密钥长度不再安全。

1999年10月,美国国家标准技术研究所(NIST)采用三重DES(Triple Data Encryption Algorithms,TDEA)作为过渡期间国家标准,以增强DES的安全性,同时开始征集AES(Advanced Encryption Standard)算法。

(2)DES加密流程(难点)

1、初始置换(IP置换):将输入的64位明文块进行置换和重新排列,生成新的64位数据块。

2、加密轮次:DES加密算法共有16个轮次,每个轮次都包括四个步骤:

a. 将64位数据块分为左右两个32位块。

b. 右侧32位块作为输入,经过扩展、异或、置换等操作生成一个48位的数据块。这个48位的数据块被称为“轮密钥”,它是根据加密算法的主密钥生成的子密钥。

c. 将左侧32位块和轮密钥进行异或运算,结果作为新的右侧32位块。

d. 将右侧32位块与原来的左侧32位块进行连接,生成一个新的64位数据块,作为下一轮的输入。

3 末置换(FP置换):在最后一个轮次完成后,将经过加密的数据块进行置换和重新排列,得到加密后的64位密文。

总的来说,DES加密的过程就是通过一系列置换、异或、扩展等运算,将明文分成若干个小块,然后根据主密钥生成一系列的轮密钥,利用轮密钥对每个小块进行加密,最终将加密结果重新组合成一个整体,得到密文。

(3)DES加密过程【难点】

DES算法明文分组长度为64bit(16*4=64四行16列),密钥长度也为64bit,但实际密钥长度只有56位。

其中第8、16、24、32、40、48、56、64位是奇偶校验位(下表红色位),用于检查密钥可能发生的错误。

☆ 全过程:明文64位初始置换IP生成子密钥在密钥控制下进行16轮加密变换交换左右32比特逆初始置换IP-1密文64位

1)明文IP置换

明文根据IP置换表重新得到新的明文,得到一个乱序64bit明文组。

2)子秘钥生成

DES加密过程有16轮循环函数,需要用到16个密钥,所以要将56bit密钥扩展生成16个48位(DES算法核心操作如S盒替换基于48位输入设计)子密钥。

(4)S盒密码算法【难点】

S盒是对称密钥算法执行置换计算的基本结构。作用是增强安全性,使得加密过程不易被统计分析。

每个S盒都是一个4行16列的表,其中的每一项都是一个4位二进制数表示的十进制数。输入的高低两位作为行数,中间四位作为列数,在S盒的查找表中查找对应的数据。

(二)TDEA(3DES,Triple Data Encryption Algorithm)

TDEA是一种分组密码,采用三个独立的DES加密算法进行加密和解密操作。使用三个不同密钥,每个密钥长度为56位,总共168位的密钥长度。

(1)基本思想

将明文数据分成多个64位的块,每个块经过三次DES加密处理,以提供更高的安全性。

(2)加密操作

使用DES对明文进行“加密(秘钥1)解密(秘钥2)加密(秘钥3)”操作,即对DES加密后的密文进行解密再加密。

(3)解密操作

使用DES对密文进行“解密(秘钥3)加密(秘钥2)解密(秘钥1)”操作,即对DES密文先解密,然后加密再解密。

(4)特别说明

  1. 若秘钥1、秘钥2、秘钥3,使用完全一样的秘钥,那么3DES与DES完全一样
  2. 若秘钥1与秘钥3使用相同秘钥,而秘钥2使用不同秘钥,三重DES就称为DES-EDE2