网络传输经常采用http的方式,假设一个发送方向接收方发送消息,如果没有任何加密算法。那么消息在被中间人截获到之后,即使中间人无法篡改消息,也可以窥探到消息的内容,从而暴露双方通信的私密。如果在战场中被敌人破获了消息,那带来的打击可是毁灭性的。
因此,我们在传递消息的时候,需要通过对称加密的方式传输密文,如下图所示:
DES算法原理
DES(Data Encryption Standard)是一种用于电子数据加密的对称密钥块加密算法.它以64位为分组长度,64位一组的明文作为算法的输入,通过一系列复杂的操作,输出同样64位长度的密文。DES 同样采用64位密钥,但由于每8位中的最后1位用于奇偶校验,实际有效密钥长度为56位。密钥可以是任意的56位的数,且可随时改变。
DES 使用加密密钥定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。DES的两个重要的安全特性是混淆和扩散。其中混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数学上描述或者统计。扩散是指明文和密钥中的每一位信息的变动,都会影响到密文中许多位信息的变动,从而隐藏统计上的特性,增加密码的安全。
DES算法的基本过程是换位和置换。如图,有16个相同的处理阶段,称为轮。还有一个初始和最终的排列,称为 IP 和 FP,它们是反向的 (IP 取消 FP 的作用,反之亦然)。
算法流程
1.输入64位明文数据,并进行初始置换IP。
2.在初始置换IP后,明文数据再被分为左右两部分,每部分32位,以L0,R0表示。
3.在秘钥的控制下,经过16轮运算(T)。
4.16轮后,左、右两部分交换,并连接再一起,再进行逆置换。
5.输出64位密文。
我们将算法分为了三大块:IP置换、16次T迭代和IP逆置换,加密和解密过程分别如下:
| 符号 | 释意 |
|---|---|
| M | 算法输入的64位明文块 |
| E | 描述以K 为密钥的加密函数,由连续的过程复合构成 |
| IP | 64位初始置换 |
| Tn | 一系列的迭代变换 |
| W | 为64位置换,将输入的高32位和低32位交换后输出 |
| IP-1 | 是IP的逆置换 |
| C | 算法输出的64位密文块 |











网友评论