已知明文m=computer,密钥k=program。用DES算法求第一轮之后的结果
时间: 2024-05-27 12:12:06 浏览: 184
DES密钥计算工具
4星 · 用户满意度95%
首先,将明文m进行初始置换(IP置换)得到m'=pm=01110000 01001100 01000011 01101111 01101101 01110000 01110101 01110100。
接着,将密钥k进行初始置换选择(PC-1置换)得到k'=pk=01000011 01101000 01110101 01110100 01101001 01101110 01100111 00101110 例如,第8位为1表示选择k的第7位,第6位表示选择k的第5位,以此类推。
然后,将k'进行左移位操作(LS置换),得到C1=10000110,D1=11010011。其中,C1表示k左移1位后的56位,D1表示k左移1位后的另外56位。左移操作中,每位都向左移动1位,最右边的位移动到最左边。
接着,将C1和D1合并(PC-2置换),得到k1=11001000 10100011 10010111 01011110 。
然后,将m'划分为左右两部分(L0和R0),每部分32位。得到L0=01110000 01001100 01000011 01101111,R0=01101101 01110000 01110101 01110100。
接下来,进行16轮迭代。每轮迭代包括以下步骤:
1. 将Ri-1进行扩展置换(E置换),得到48位的Ri-1'。
2. 将Ri-1'与Ki进行异或操作,得到48位的结果。
3. 将异或结果分为8组,每组6位。每组6位中,第1位和第6位组成行号,第2-5位组成列号,根据S盒进行替换。替换后,每组变成4位。
4. 将替换后的8组结果合并,得到32位的结果。
5. 将32位的结果进行置换(P置换),得到32位的Ri。
6. 将Li-1和Ri进行异或操作,得到32位的Li。
最后,将R16和L16合并,进行逆初始置换(IP^-1置换),得到密文c。
因此,第一轮之后的结果为L1=01101101 01110000 01110101 01110100,R1=11010000 10001010 11000111 11110010。
阅读全文