0


S-DES加密算法

一、S-DES

S-DES 是一种简化版的数据加密标准。相对于 DES 来说,S-DES 更加简单、快速、高效,可以用于学习加密算法的入门课程。

二、加密和解密步骤

使用 S-DES 进行加密和解密的步骤如下:

  1. 初始置换(IP)- 将 8 位明文分为左右两部分,各 4 位,进行初始置换,得到置换后的左右两部分。
  2. 轮函数(F)- 对置换后的右半部分进行扩展置换(E-P),将其扩展为 8 位。- 将扩展后的结果与轮密钥 K1 进行异或运算,再将异或的结果拆分成 2 个 4 位的块。- 将这 2 个块分别通过 S 盒代替(S0 和 S1),然后再进行 P4 置换,最后将 P4 置换后的结果与左半部分进行异或,得到 F 函数输出的结果。

S盒运算规则(具体见案例):

  • 将第1和第4的输入比特做2—bit数,指示为S盒的一个行;
  • 将第2和第3的输入比特作为S盒的一个列;
  • 其中S0查表需要E-P和K的异或的结果的前4位,S1为后4位。
  • 如S1=1101 ,第1个数和第四个数代表要查的行,第2个数和第3个数代表要查的列,即11行(第3行),第10列(第2列),查询矩阵的结果是1,即01。

注意矩阵的起始行列都是第0行(列)

  1. 轮秘钥生成- 根据初始密钥生成 2 个 8 位的密钥(K1 和 K2)。- 首先对初始密钥进行 P10 置换,并将置换后的结果分为左右两部分,各 5 位。- 接下来对左右两部分进行循环左移,得到移位后的结果。- 最后将左右两部分合并,并进行 P8 置换,得到 K1。- 对 K1 进行循环左移,并进行 P8 置换,得到 K2。

.drawio.png

  1. 加密和解密- 将明文通过初始置换(IP)得到左右两部分。- 然后进行 2 轮加密/解密操作,每轮操作包括以下步骤: - 将右半部分作为输入,通过 F 函数得到输出。- 将 F 函数的输出与左半部分进行异或运算,得到新的右半部分。- 将原来的右半部分作为新的左半部分。- 如果是加密操作,则使用 K1 进行第一轮加密,使用 K2 进行第二轮加密;如果是解密操作,则使用 K2 进行第一轮解密,使用 K1 进行第二轮解密。- 将左右两部分交换,再进行一次初始置换逆置换( I P − 1 IP^{-1} IP−1),得到密文或明文。

.drawio43d214c1053995fe.png

三、案例

  1. 密钥生成

问题描述:S-DES加密, 密匙 K = ( 10100 , 00010 ) , P 10 = ( 3 , 5 , 2 , 7 , 4 , 10 , 1 , 9 , 8 , 6 ) , P 8 = ( 6 , 3 , 7 , 4 , 8 , 5 , 10 , 9 ) 则 K 1 , k 2 密匙K=(10100,00010),P10=(3,5,2,7,4,10,1,9,8,6),P8=(6,3,7,4,8,5,10,9)则K1,k2 密匙K=(10100,00010),P10=(3,5,2,7,4,10,1,9,8,6),P8=(6,3,7,4,8,5,10,9)则K1,k2分别为?

  1. 计算P10后的密匙

K ( P 10 ) K(P10) K(P10):10100 00010 (3,5,2,7,4 10,1,9,8,6)=10000 01100

  1. 计算 K 1 K1 K1

左四位、右四位 L S − 1 LS-1 LS−1后合并:00001 11000

K 1 ( P 8 ) K1(P8) K1(P8):00001 11000 (6,3,7,4, 8,5,10,9)=1010 0100

  1. 计算 K 2 K2 K2

在已经 L S − 1 LS-1 LS−1的基础上 L S − 2 LS-2 LS−2: 00100 00011

K 2 ( P 8 ) K2(P8) K2(P8):00100 00011(6,3,7,4, 8,5,10,9)=0100 0011

  1. 进行S-DES加密

已知: 明文 P = ( 1011 , 0101 ) , I P = ( 2 , 6 , 3 , 1 , 4 , 8 , 5 , 7 ) , E − P = ( 4 , 1 , 2 , 3 , 2 , 3 , 4 , 1 ) , P 4 = ( 2 , 4 , 3 , 1 ) , I P − 1 = ( 4 , 1 , 3 , 5 , 7 , 2

标签: python 算法 安全

本文转载自: https://blog.csdn.net/weixin_51609498/article/details/130057178
版权归原作者 「已注销」 所有, 如有侵权,请联系我们删除。

“S-DES加密算法”的评论:

还没有评论