首页 理论教育 数据加密标准:DES加密算法

数据加密标准:DES加密算法

时间:2023-06-09 理论教育 版权反馈
【摘要】:1977年1月,美国政府将IBM公司设计的方案作为非机密数据的正式数据加密标准。这些内容将在本章2.2.3节中介绍。图2-6为DES算法加密过程的具体描述。由图2-6可以看出,DES算法共需要16轮迭代运算。32位的Ri1经过扩展置换后变成48位,56位的密钥Ki经过左右移位和压缩置换后也变成48位,两者经“异或”运算后作为S盒的输入。48位的数据经过S盒替换后变成32位,再经过P盒置换后与Li1“异或”运算即生成Ri。

数据加密标准:DES加密算法

1977年1月,美国政府将IBM公司设计的方案作为非机密数据的正式数据加密标准(Data Encryption Standard,DES)。它的算法是对称的,既可用于加密又可用于解密。

DES算法可以按4种运行模式之一使用,这4种运行模式分别是电码本模式、密码分组链接模式、输出反馈模式及密码反馈模式。其中,电码本模式是最简单的模式,安全性也最差;密码分组链接模式则经常以软件方法实现;输出反馈模式和密码反馈模式往往用于在硬件实现的算法中。这些内容将在本章2.2.3节中介绍。

DES是一个分组加密算法,它由16个基本单元所组成,每个基本单元都是由加密的两个基本技术——混合和扩散组合而成。置换后被分为左右各32位的两个子分组,通过16轮完全相同的运算之后合二为一,最后通过初始置换的逆置换获得密文。

图2-6为DES算法加密过程的具体描述。由图2-6可以看出,DES算法共需要16轮迭代运算。第i轮运算接受第i−1轮的输出(Li−1Ri−1)和Ki,产生本轮的输出(LiRi)和Ki+1,而这些输出又将是下一轮运算(即第i+1轮运算)的输入。其中主要的计算工作是关于Ri。32位的Ri−1经过扩展置换后变成48位,56位的密钥Ki经过左右移位和压缩置换后也变成48位,两者经“异或”运算后作为S盒的输入。48位的数据经过S盒替换后变成32位,再经过P盒置换后与Li−1“异或”运算即生成Ri。在这些运算当中,扩展置换、移位、压缩置换以及P盒置换都是线性的、可逆的,唯有S盒替换是非线性的、不可逆的,所以说S盒替换是DES算法的关键。下面分别介绍DES算法的各个部分。

1.初始置换IP和逆初始置换IP−1

64位的明文分组M通过初始置换IP,首先将输入的二进制明文块M变换成M'=IP(M),然后M'经过16次的迭代运算,最后通过逆初始置换IP−1得到64位二进制密文输出。置换IP和IP−1表可分别参看表2-1和2-2。由表2-1可知,初始置换IP将M=m0m1m64变成M'=m58m50m7。不难看出,IP−1是IP的逆。

978-7-111-39843-1-Chapter02-6.jpg

图2-6 DES算法加密过程

表2-1 IP

978-7-111-39843-1-Chapter02-7.jpg

表2-2 IP−1

978-7-111-39843-1-Chapter02-8.jpg

2.f函数

函数fRi-lKi)的结构如图2-7所示。首先用扩展置换表E(见表2-3)将Ri-l扩展成48位二进制块ERi-l),然后对ERi-l)和Ki进行“异或”运算,并将其结果分成8个6位二进制块B1,…,B8。每个6位子Bj,都是选择(替换)函数Sj(见表2-4)的输入,其输出是一个4位二进制块SjBj)。把这些子块合成为32位二进制块后,用置换表P(见表2-5)将它变换成最后的输出fRi−lKi)。

978-7-111-39843-1-Chapter02-9.jpg

图2-7 fRi−lKi)函数

表2-3 扩展置换表E

978-7-111-39843-1-Chapter02-10.jpg(www.xing528.com)

表2-4 S盒

978-7-111-39843-1-Chapter02-11.jpg

(续)

978-7-111-39843-1-Chapter02-12.jpg

表2-5 置换表P

978-7-111-39843-1-Chapter02-13.jpg

3.子密钥生成函数

子密钥生成函数如图2-8所示。密钥K是一个64位的二进制块,其中8位是奇偶校验位,分别位于第8,16,…,64位。子密钥置换函数PC-1(见表2-6)把这些奇偶校验位去掉,并把剩下的56位进行置换。置换后的结果PC-l(K)被分成两半C0D0,各有28位。接下来,有如下的变换公式:

Ci=LSiCi-1Di=LSi(Di-1

978-7-111-39843-1-Chapter02-14.jpg

图2-8 子密钥生成函数

其中,LSi是循环左移位变换,LS1LS2LS9LS16循环左移1位,其余的循环左移2位。最后,通过子密钥置换函数PC-2(见表2-7)得出Ki

表2-6 PC-1

978-7-111-39843-1-Chapter02-15.jpg

表2-7 PC-2

978-7-111-39843-1-Chapter02-16.jpg

解密算法和加密算法相同,只不过第1次迭代时用于密钥K16,第2次迭代时用K15,以此类推,第16次迭代时用K1

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈