计算机网络

对称加密算法-DES、3DES

2019-04-12  本文已影响1人  羞涩的老湿鸡

前两篇文章中已经分别介绍了对称加密与非对称加密的区别,以及非对称加密算法-RSA的详解。本篇文章主要介绍DES加密算法。

链接:HTTPS详解    非对称加密算法-RSA


一、DES对称加密简介


des对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码),是一种对称加密算法

二、DES加密的原理


采用56位的密钥以及附加的“8位奇偶校验位”,产生最大64位的分组大小。这是一个迭代分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。

三、DES加密的具体步骤


1、假设八位的明文数据:0123    对应的2进制为  0000   0001   0010    0100

2、我们为将八位数据从中间分割为左右两大部分,即:

    左L    0000     0001

    右R   0010     0100

3、设我们的密钥为:3456   对应的2进制为  0100   1000    1001   1010

    其中第8个位置与第16个位置就是上文所指的“8位奇偶校验位”,因此目前我们实际的秘钥仅有14位。

4、假设我们有一个这样的交换表

03,05,04,02,06

07,01,09,10,12,

13,11,14,15

0100   1000 1001   1010

该交换表中的数字代表着原数据的位置,如:将原数据中的第03位,放至在了新数据的第1个位置上。原数据中的第05位放在了新数据的第2位上。原数据中的第04位,放至在了新数据的第三位上。交换后的结果为:0101000 1011001   注:该置换去掉奇偶校验位的8与16

设C0=0101000    D0=1011001   下来依次是C1,D1为C0,D0左移一位,C2,D2为C1,D1左移一位,C3,D3为C2,D2左移两位。

则,C1=1010000  C2=0100001   D1=0110011  D2=1100110

得到该数据后,再次将上面得到的C0、C1、C2、D0、D1、D2进行交换表位置交换。得到全新的数据K1,K2,K3,K4,K5,K6。

上一篇下一篇

猜你喜欢

热点阅读