DES 是一种分组密码,己知 DES 加密算法的某个 S 盒如表 4-1 所示。

最全题库2022-08-02  37

问题 DES 是一种分组密码,己知 DES 加密算法的某个 S 盒如表 4-1 所示。表4-1  S盒【问题1】 (4分)请补全该 S 盒,填补其中的空(1) - (4),将解答写在答题纸的对应栏内。【问题 2】 (2分)如果该 S 盒的输入为 110011,请计算其二进制输出。【问题3】(6分)DES加密的初始置换表如下:置换时,从左上角的第一个元素开始,表示输入的铭文的第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解析:
DES算法中的每个S盒都是由4行16列的矩阵构成,每行都是0到15这16个数字,从上表中可以分析得出,第,0行缺少10,第1行缺少6,第3行缺少1,第4行缺少11。

问题2解析:
       S盒的运算规则:设输入为110011,第一位和第六位数字组成的二进制数为11=(3)10;表示选中该S盒中的行号为3的那一行,其余4位数字组成的二进制数为1001=(9)10;表示选中该S盒中列号为9的那一列。交点处的数字为4,则S盒中的输出为0100

问题3解析:
       首先将M = (0123456789ABCDEF)16表示成二进制形式,即1位16进制数字可表示为4位二进制,即M = (00000001 00100011 01000101 01100111 10001001  10101011 11001101 11101111)2
    然后按照初始置换表进行置换,基本置换规则为:原始数据中的第58位放在第一位;第50位放第二位;第42位放第三位……其余依次类推。置换后的结果为:
M’ =(11001100 00000000 11001100 11111111  11110000 10101010 11110000 10101010)2
    =(CC00CCFFF0AAF0AA)16

问题4解析:
       逆初始置换是在初始置换的基础上进行逆置换;比如原始数据顺序为1 2 3 4 5 6 7 8;经过初始置换之后变成:2 6 3 1 4 8 5 7;则逆初始置换是要将其顺序进行还原,比如,原始数据中第一位数据经初始置换之后放到了第4位,那么逆初始置换就要将初始置换后的第4位放到第1位,即逆初始置换表第一位为4;原始数据中第二位数据经初始置换之后放到了第1位,那么逆初始置换就要将初始置换后的第1位放到第2位,即逆初始置换表第二位为1;其余依次类推,得出该逆初始置换表为4  1  3  5  7  2  8  6。

问题5解析:
       DES算法中存在弱密钥和半弱密钥。
弱密钥K:即 K1=K2=…=K16;弱密钥不受任何循环移位的影响,并且只能得到相同的子密钥,由全0或全1组成的密钥显然是弱密钥,子密钥生成过程中被分割的两部分分别为全0或全1时也是弱密钥,并且存在4个弱密钥。
半弱密钥K:有些种子密钥只能生成两个不同的子密钥,这样的种子密钥K称为半弱密钥,DES至少存在12个半弱密钥。半弱密钥将导致把明文加密成相同的密文。
转载请注明原文地址:https://tihaiku.com/congyezige/2414752.html

最新回复(0)