DES (数据加密标准 Data Encryption Standard),因密钥长度过短及可能含有的后门引起争议,现也已经不在作为标准,由AES取代。在学了《网络安全技术》关于加密算法中的DES后,写了这一篇笔记,主要写的是DES算法中子密钥的生成算法。
- 初始密钥也称种子密钥,64位,经过子密钥换位表PC-1的变换后,由64位变成56位,这56位分为两组C0和D0;
子密钥换位表PC-1 57 49 41 33 25 17 09 01 58 50 42 34 26 18, 10 02 59 51 43 35 27 19 11 03 60 52 44 36 63 55 47 39 31 23 15 07 62 54 46 38 30 22, 14 06 61 53 45 37 29 21 13 05 28 20 12 04
- C0和D0作一次循环左移得到C1和D2;
循环左移的规则为:16次循环,每次左移 1 1 2 2, 2 2 2 2, 1 2 2 2, 2 2 2 1
- C1和D2合并为56位,再经过子密钥换位表PC-2的变换后,由56位变成48位,即得到第一个子密钥K1
子密钥换位表PC-2 14 17 11 24 01 05 03 28 15 06 21 10 23 19 12 04 26 08 16 07 27 20 13 02 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
- C1和D2,由C0和D0经过循环左移得到。C2和D2,由C1和D1经过循环左移得到,以此类推。