DES加密算法介绍(含例子)

DES(Data Encryption Standard)算法是世界上最常用的加密算法。在很长时间内,许多人心目中“密码生成”与DES一直是个同义词。

DES是怎么工作的?本文通过一个简单的例子来一部一部展示DES的加密流程。自动DES诞生以来,许多加密算法都采用了类似DES的手段。一旦理解了DES中的变换,你一定能够更轻松的理解这些现代加密算法中的门道。

DES处理比特,或者说二进制数字,我们知道,没四个比特构成一个十六进制数。DES加密一组64位的信息,也就是16个16进制数。为了完成加密,DES

DES秘钥获取:

我们取16进制秘钥K为:

K = 133457799BBCDFF1

我们可以得到他的二进制形式(1为0001,3为0011,依次类推,并且将没8位写成一组。这样每组的最后一位都没有被用上。)

K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001

创建16个子秘钥,每个长48比特

这个64位的秘钥首先根据表格PC-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

 由于上表中第一个元素为57,这将使元秘钥的第57位变换为新秘钥K+的第一位。同理,元秘钥的第49位变换为新秘钥的第2位,,,元秘钥的第4位变换为新秘钥的最后一位,注意元秘钥中只有56位会进入新秘钥,上表也只有56个元素。

比如,对于原秘钥:

K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001

我们将得到56位新秘钥:

K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111

然后,我们将

猜你喜欢

转载自www.cnblogs.com/LoganChen/p/11432092.html