
如何实现DES算法 原文:Matthew Fischer
DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。DES算法以被应用于许多需要安全加密的场合。(如:UNIX的密码算法就是以DES算法为基础的)。下面是关于如何实现DES算法的语言性描述:
1-1、变换密钥 取得64位的密钥,每个第8位作为奇偶校验位。
1-2、变换密钥。
1-2-1、舍弃64位密钥中的奇偶校验位,根据下表(PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位以被舍弃。
1-2-2、将变换后的密钥分为两个部分,开始的28位称为C[0>,最后的28位称为D[0>。
1-2-3、生成16个子密钥,初始I=1。
1-2-3-1、同时将C[I>、D[I>左移1位或2位,根据I值决定左移的位数。见下表
1-1、变换密钥 取得64位的密钥,每个第8位作为奇偶校验位。
1-2、变换密钥。
1-2-1、舍弃64位密钥中的奇偶校验位,根据下表(PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位以被舍弃。
Permuted Choice 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
1-2-2、将变换后的密钥分为两个部分,开始的28位称为C[0>,最后的28位称为D[0>。
1-2-3、生成16个子密钥,初始I=1。
1-2-3-1、同时将C[I>、D[I>左移1位或2位,根据I值决定左移的位数。见下表