1、DES加密过程
①将64位明文进行初始置换;
②将置换后的明文分为32位的L0和R0两部分;
③左边L1=R0;右边R1=L0⊕f(R0,K1),其中f()为轮函数,K1为48bit的子密钥;
④进行16轮迭代;
⑤将最后得到的R16和L16进行拼接后,再进行逆置换,得到密文。
(1)置换
初始置换和逆置换都是按位置换。如初始置换中第一个数字58表示:将原始数据中的第58位换到现在的第1位。
(2)轮函数
1)E扩展置换
32bitR0-->48bitR0 # E扩展置换
①将原始32bit分为8个,每个4bit;
②每个4bit前后各增加一位,增加的第一位是前一个4bit的最后一位;增加的最后一位是后一个4bit的第一位。
2)S盒压缩处理
将置换后的48bit数据分为8个,每个6bit,根据6进4出S盒压缩成4bit。
3)P盒置换
和初始置换一样,如16表示,将原始数据中的第16位换到现在的第1位。
(3)密钥生成
①64bit密钥,去除8个校验位,剩余56bit;
②将56bit通过PC-1表进行置换;
③将置换后的56bit分为C0和D0两部分;
④将C0和D0按照移位次数表移动左移得到C1和D1;
⑤C1和D1拼接后,通过PC-2表进行置换;最后得到48bit的K1。
2、DES软件和硬件实现
软件实现通常指的是在桌面CPU或智能卡或手机的嵌入式微处理器上运行DES。
硬件实现指的是在专用集成电路(ASIC)和现场可编程门阵列(FPGA)的IC上运行DES。
3、DES替换算法
双重DES指的是加密两次。
3DES,也称TDES,对每个数据块应用三次DES加密算法。
3DES加密过程为:C=Ek3(Dk2(Ek1(P)));
3DES解密过程为:P=Dk1(EK2(Dk3(C)))。