主题
最后登录1970-1-1
回帖0
精华
积分1395
威望
RP
金钱 柯币
人气 ℃
注册时间2005-10-2
|
[CENTER]原文:Matthew Fischer[/CENTER]
[CENTER]翻译:小榕软件实验室[/CENTER]
DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。DES算法以被应用于许多需要安全加密的场合。(如:UNIX的密码算法就是以DES算法为基础的)。下面是关于如何实现DES算法的语言性描述,如果您要其源代码,可以到Http//Assassin.yeah.net下载,后者您有任何问题也可以写信给我([email protected])。
1-1、变换密钥
取得64位的密钥,每个第8位作为奇偶校验位。
1-2、变换密钥。
1-2-1、舍弃64位密钥中的奇偶校验位,根据下表(PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位以被舍弃。
[CENTER]Permuted Choice 1 (PC-1)[/CENTER]
[CENTER]57 49 41 33 25 17 9[/CENTER]
[CENTER]1 58 50 42 34 26 18[/CENTER]
[CENTER]10 2 59 51 43 35 27[/CENTER]
[CENTER]19 11 3 60 52 44 36[/CENTER]
[CENTER]63 55 47 39 31 23 15[/CENTER]
[CENTER]7 62 54 46 38 30 22[/CENTER]
[CENTER]14 6 61 53 45 37 29[/CENTER]
[CENTER]21 13 5 28 20 12 4[/CENTER]
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值决定左移的位数。见下表
[CENTER]I: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16[/CENTER]
[CENTER]左移位数: 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1[/CENTER]
1-2-3-2、将C[I]D[I]作为一个整体按下表(PC-2)变换,得到48位的K[I]
[CENTER]Permuted Choice 2 (PC-2)[/CENTER]
[CENTER]14 17 11 24 1 5[/CENTER]
[CENTER]3 28 15 6 21 10[/CENTER]
[CENTER]23 19 12 4 26 8[/CENTER]
[CENTER]16 7 27 20 13 2[/CENTER]
[CENTER]41 52 31 37 47 55[/CENTER] |
|