编辑: You—灰機 2019-07-14

1010101011001100111100011110 C2 = 1100001100110010101010111111D2 =

0101010110011001111000111101 C3 = 0000110011001010101011111111D3 =

0101011001100111100011110101 C4 = 0011001100101010101111111100D4 =

0101100110011110001111010101 ……C15 = 1111100001100110010101010111D15 =

1010101010110011001111000111 C16 = 1111000011001100101010101111D16 =

0101010101100110011110001111 第一步:生成16个子钥(48位) Kn(48位) = PC-2( CnDn(56位) )PC-2(8*6)

14 17

11 24

1 53

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 第一步:生成16个子钥(48位) 最终得到所有16个子钥,每个48位:K1 =

000110 110000

001011 101111

111111 000111

000001 110010 K2 =

011110 011010

111011 011001

110110 111100

100111 100101K3 =

010101 011111

110010 001010

010000 101100

111110 011001K4 =

011100 101010

110111 010110

110110 110011

010100 011101K5 =

011111 001110

110000 000111

111010 110101

001110 101000K6 =

011000 111010

010100 111110

010100 000111

101100 101111K7 =

111011 001000

010010 110111

111101 100001

100010 111100K8 =

111101 111000

101000 111010

110000 010011

101111 111011K9 =

111000 001101

101111 101011

111011 011110

011110 000001K10 =

101100 011111

001101 000111

101110 100100

011001 001111K11 =

001000 010101

111111 010011

110111 101101

001110 000110K12 =

011101 010111

000111 110101

100101 000110

011111 101001K13 =

100101 111100

010111 010001

111110 101011

101001 000001K14 =

010111 110100

001110 110111

111100 101110

011100 111010K15 =

101111 111001

000110 001101

001111 010011

111100 001010K16 =

110010 110011

110110 001011

000011 100001

011111 110101 第二步:用子钥对64位数据加密 对明文M使用IP(8*8)58

50 42

34 26

18 10

2 60

52 44

36 28

20 12

4 62

54 46

38 30

22 14

6 64

56 48

40 32

24 16

8 57

49 41

33 25

17 9

1 59

51 43

35 27

19 11

3 61

53 45

37 29

21 13

5 63

55 47

39 31

23 15

7 第二步:用子钥对64位数据加密 由于M(64位) =0000

0001 0010

0011 0100

0101 0110

0111 1000

1001 1010

1011 1100

1101 1110 1111对M运用IP,故有IP(64位) =

1100 1100

0000 0000

1100 1100

1111 1111

1111 0000

1010 1010

1111 0000

1010 1010 第二步:用子钥对64位数据加密 IP(64位) = L0(32位) + R0(32位)故L0 (32位) =

1100 1100

0000 0000

1100 1100

1111 1111 R0 (32位) =

1111 0000

1010 1010

1111 0000

1010 1010 第二步:用子钥对64位数据加密 从L0和R0开始,循环16次,得出L1R1到L16R16,依据递推公式:Ln = R(n-1) Rn = L(n-1) + f (R(n-1),Kn) 其中除了Kn为48位,其他变量及函数均为32位.其中+号表示异或XOR运算,函数f 从一个32位的数据块R(n-1)和一个48位子钥Kn得到一个新的32位数据块.(算法从略) 第二步:用子钥对64位数据加密 到此为止,我们得到了16对32位的数据块,即L1R1, L2R2, L3R3, …, L16R16最后一对L16R16就是我们需要的. 第二步:用子钥对64位数据加密 继续对R16L16(64位)运用一次重排列:IP-1(8*8)

40 8

48 16

56 24

64 3239

7 47

15 55

23 63

31 38

6 46

14 54

22 62

30 37

5 45

13 53

21 61

29 36

4 44

12 52

20 60

28 35

3 43

11 51

19 59

27 34

2 42

10 50

18 58

26 33

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题