问答题 设DES密码中的初始密钥是K=(b0,b1,…,b63),记DES加密算法中16轮加密过程中所使用的子密钥分别为K1,K2,…,K16。请你计算出第一个子密钥K1的数学表达式。
【正确答案】先对初始密钥K=(b0,b1,…,b63,)进行一个密钥置换PC-1(见下PC-1表1),将初始密钥的8个奇偶校验位剔除掉,而留下真正的56比特初始密钥(C0D0)。接着分别对C0及D0进行左一位循环,得到C1与D1,连成56比特数据。再依密钥置换PC-2(如下PC-2表2)做重排,便可得到子密钥K1
表1:密钥置换PC-1
PC-1
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

表2 密钥置换PC-2
PC-2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
【答案解析】