一、加密算法的分类
1.对称加解密算法
a.通信双方同时掌握一个密钥,加密解密都是由一个密钥完成的(即加密密钥等于解密密钥,加解密密钥可以相互推倒出来)。
b.双方通信前共同拟定一个密钥,不对第三方公开。
c.不具有个体原子性,一个密钥被共享,泄漏几率增大
2.公私钥加解密算法
a.通信双方掌握不同的密钥,不同方向的加解密由不同的密钥完成。
二、对称加密算法的代表----DES加密算法
原理:该算法是一个利用56+8奇偶校验位(第8,16,24,32,40,48,56,64)=64位的密钥对以64位为单位的块数据进行加解密。
具体过程:
有明文M(64位) = 0123456789ABCDEF
即M(64位) = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
L(32位) = 0000 0001 0010 0011 0100 0101 0110 0111
R(32位) = 1000 1001 1010 1011 1100 1101 1110 1111
有密钥64位:133457799BBCDFF1
即K(64位) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
注:其中红色为奇偶校验位,即实际密钥为56位
第一步:按照下表中的规则对各个位进行交换,生成16个子钥(48位)
交换规则表(8*7):57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
交换方法:第一行第一列的数为57,那么就将K中第一位上的数换成K中第57位上的数(将0换为了57位上的1),依次类推。
那么原K(64位) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
去掉奇偶校验位,再经过上表的转换就变为了:
K + (56位) = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
因此:C0(28位) = 1111000 0110011 0010101 0101111
D0(28位) = 0101010 1011001 1001111 0001111
下来依次是C1,D1为C0,D0左移一位,C2,D2为C1,D1左移一位,C3,D3为C2,D2左移两位.......