2017年上半年信息安全2017年上半年信息安全工程师考试_试题四答案(解题步骤详解)

第4题

【说明】
DES 是一种分组密码,己知 DES 加密算法的某个 S 盒如表 4-1 所示。
2017年上半年信息安全2017年上半年信息安全工程师考试_试题四答案(解题步骤详解)_第1张图片
【问题1】 (4分)
请补全该 S 盒,填补其中的空(1) – (4),将解答写在答题纸的对应栏内。
【问题 2】 (2分)
如果该 S 盒的输入为 110011,请计算其二进制输出。
【问题3】(6分)
DES加密的初始置换表如下:
2017年上半年信息安全2017年上半年信息安全工程师考试_试题四答案(解题步骤详解)_第2张图片
置换时,从左上角的第一个元素开始,表示输入的铭文的第58位置换成输出的第1位,输入明文的第50位置换成输出的第2位,从左至右,从上往下,依次类推。
DES加密时,对输入的64位明文首先进行初始置换操作。
若置换输入的明文M=0123456789ABCDEF(16进制),请计算其输出(16进制表示)。
【问题4】(2分)
如果有简化的DES版本,其明文输入为8比特,初始置换表IP如下:
IP:2 6 3 1 4 8 5 7
请给出其逆初始置换表。
【问题5】(2分)
DES加密算法存在一些弱点和不足,主要有密钥太短和存在弱密钥。请问,弱密钥的定义是什么?

【答案和解析】:

【问题 1】

答案:  (1)10 (2)6 (3)1 (4)11

解析:每一行的元素都是固定是:0 - 15 , 只是顺序不同。

【问题2】

答案:0100

解析: 根据软考指定教材《信息安全工程师教程》的第九十,九十一页: S盒6位输入中第一位和第六位数字组成二进制数值代表选中的行号, 其余四位数字所组成列号

110011 :   行号: (第一位,第6位):11  是第三行

                  列号:(其余四位): 1001 : 第九列

                  结果: 查表可得: 结果为4 , 即0100;

【问题3】

M = (0123456789ABCDEF)16 = (00000001 00100011 01000101 01100111 10001001   10101011 11001101 11101111)2经过IP置换,结果为:M’ =(11001100 00000000 11001100 11111111  11110000 10101010 11110000 10101010)2=(CC00CCFFF0AAF0AA)16

解析:参考于https://www.cnblogs.com/songwenlong/p/5944139.html 中:

表中的数字代表原数据中此位置的数据在新数据中的位置,即原数据块的第1位放到新数据的第58位,第2位放到第50位,……依此类推,第64位放到第7位。置换后的数据分为L0和R0两部分,L0为新数据的左32位,R0为新数据的右32位。

  设转换前的数据位D1D2D3…D64,则IP置换后的结果为L0=D58D50…D8,R0=D57D49…D7。0x0000 0080 0000 0002转换后的结果为0x0002 0000 0000 0001,且L0=0x0002 0000,R0=0x0000 0001。置换步骤如下:

  原数据第33位为1,置换表第33位为64,因此将1放到新数据的第64位;原数据第63位为1,置换表第63位为7,因此将1放到新数据的第7位;其余值为0的位按此置换。要注意一点,位数是从左边开始数的,即最0x0000 0080 0000 0002最左边的位为1,最右边的位为64。


    M = (0123456789ABCDEF)16 = (00000001 00100011 01000101 01100111 10001001   10101011 11001101 11101111)2   , 将二进制数 顺序填入 初始置换表 :

58

   (0)

50

(0)

42

(0)

34

(0)

26

0

18

(0)

10

(0)

2

(1)

60

0

52

0

44

1

36

0

28

0

20

0

12

(1)

4

(1)

62

0

54

(1)

46

0

38

0

30

0

22

(1)

14

0

6

1

64

0

56

1

48

1

40

0

32

0

24

1

16

1

8

1

57

1

49

0

41

0

33

0

25

1

17

0

9

0

1

1

59

1

51

0

43

1

35

0

27

1

19

0

11

1

3

1

61

1

53

1

45

0

37

0

29

1

21

1

13

0

5

1

63

1

55

1

47

1

39

0

31

1

23

1

15

1

7

1

(考试时,在试题上直接填写)

将根据 序号1-64 对于括号内的0,1代码顺序写下来(例如:1 在第四行第八列对应的括号里的数是:1 ):

M’ =(11001100 00000000 11001100 11111111  11110000 10101010 11110000 10101010)2

最后换算成:16进制:

=(CC00CCFFF0AAF0AA)16



【问题4】

4  1  3  5  7  2  8  6

解析:

初始置换表中的数字代表原数据中此位置的数据在新数据中的位置,即原数据块的第1位放到新数据的第58位,第2位放到第50位,……依此类推,第64位放到第7位。置换后的数据分为L0和R0两部分,L0为新数据的左32位,R0为新数据的右32位。

根据这个规律:  原数据中 第1个位置是2  , 那么新数据中  第2个位置就为   1; 原数据中 第2个位置是6 , 那么新数据中  第6个位置就为   2; 以此类推...

答案就是:

4  1  3  5  7  2  8  6

【问题5】

弱密钥不受任何循环移位的影响,并且只能得到相同的子密钥,由全0或全1组成的密钥显然是弱密钥,子密钥生成过程中被分割的两部分分别为全0或全1时也是弱密钥。

你可能感兴趣的:(试题解析)