简化数据加密标准(S-DES)是DES算法的简单版本。它与DES算法相似,但算法更小,参数比DES少。这样做是出于教育目的,因此对DES的理解将变得更加简单。它是一种分组密码,它采用一块纯文本并将其转换为密文。它需要一个8位的块。
这是一个对称密钥密码,即它们使用相同的密钥进行加密和解密。在本文中,我们将演示s-des加密和解密算法的密钥生成。我们采用一个随机的10位密钥,并产生两个8位密钥,这些密钥将用于加密和解密。
密钥生成概念:在密钥生成算法中,我们接受10位密钥并将其转换为两个8位密钥。此密钥在发送方和接收方之间共享。
在密钥生成中,我们使用三个功能:
1.排列P10
2.排列P8
3.左移
步骤1:我们接受了一个10位密钥,并将这些位放入P10表中进行排列。
Key = 1 0 1 0 0 0 0 0 1 0
(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) = (1, 0, 1, 0, 0, 0, 0, 0, 1, 0)
P10 Permutation is: P10(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) = (k3, k5, k2, k7, k4, k10, k1, k9, k8, k6)
After P10, we get 1 0 0 0 0 0 1 1 0 0
步骤2:将密钥分为2个半部分,每个部分5个位。
l=1 0 0 0 0, r=0 1 1 0 0
步骤3:现在,我们在每个键上向左移一位。
l = 0 0 0 0 1, r = 1 1 0 0 0
第4步:在第3步之后合并两个密钥,然后将它们放入P8表中以对这些比特进行置换。给定表的输出是第一个键K1。
After LS-1 combined, we get 0 0 0 0 1 1 1 0 0 0
P8 permutation is: P8(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) = (k6, k3, k7, k4, k8, k5, k10, k9)
After P8, we get Key-1 : 1 0 1 0 0 1 0 0
步骤5:从步骤3获得的输出,即左移一位后的两半,应该再次经历两位左移的过程。
Step 3 output - l = 0 0 0 0 1, r = 1 1 0 0 0
After two bit shift - l = 0 0 1 0 0, r = 0 0 0 1 1
步骤6:合并从步骤6获得的两半,并将它们放入P8表中进行置换。给定表的输出是第二个键K2。
After LS-2 combined = 0 0 1 0 0 0 0 0 1 1
P8 permutation is: P8(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) = (k6, k3, k7, k4, k8, k5, k10, k9)
After P8, we get Key-2 : 0 1 0 0 0 0 1 1
最终输出:
Key-1 is: 1 0 1 0 0 1 0 0
Key-2 is: 0 1 0 0 0 0 1 1