DES算法全解
一、什么是DES算法
- DES是(Data Encryption Standard)的缩写,为密码体制中的对称密码体制,又被称为美国数据加密标准。
- DES是一种分组密码。明文,密文,密钥的分组长度都是64位。
- DES是面向二进制的密码算法。因而能够加解密任何形式的计算机数据。
- DES是对合运算,因而加密和解密共用同一算法,从而使工程实现的工作量减半
- DES的密码结构属于Feistel结构
二、DES的加密过程
- 64位秘钥经子秘钥产生算法产生出16个子秘钥: K 1 , K 2 , . . . , K 16 K_1,K_2,...,K_{16} K1,K2,...,K16, 分别供第一次,第二次,… ,第十六次加密迭代使用。
- 64位明文首先经过初始置换 I P ( I n i t i a l p e r m u t a t i o n ) IP(Initial\quad permutation) IP(Initialpermutation),将数据打乱重新排列并分成左右两半,左边32位构成 L 0 L_0 L0,右边32位构成 R 0 R_0 R0。
- 由加密函数 f f f实现子密钥 K 1 K_1 K1对 R 0 R_0 R0的加密,结果为32位的数据组 f ( R 0 , K 1 ) f(R_0,K_1) f(R0,K1)。 f ( R 0 , K 1 ) f(R_0,K_1) f(R0,K1)再与 L 0 L_0 L0模2相加,又得到一个有32位的数据组 L 0 ⨁ f ( R 0 , K 1 ) L_0\bigoplus f(R_0,K_1) L0⨁f(R0,K