欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DES原理学习以及C语言实现(一)

程序员文章站 2022-05-11 20:31:13
...

DES算法是一种最通用的对称**算法,属于分组密码算法。主要用于民用敏感信息加密,该算法是IBM公司在1975年发布。在1977年7月15日得到美国国家标准局认可。

一、DES算法简单描述。

DES的输入是8个字节64位明文和64位**,输出是64位密文。明文和**都是用户输入。

64位明文
           ======>   64位密文
64位**

其加密有四个步骤完成。

  1. 初始置换函数IP
  2. 子**Ki及获取
  3. 密码函数F末
  4. 置换函数IP^-1

DES原理学习以及C语言实现(一)

DES将用户需要加密的数据分组,每组8个字节,64位。不足8位的进行补位。

置换函数IP是将用户的输入的二进制形式在一个8*8的矩阵中进行置换。

经过初始置换后,进行16轮完全相同的运算,在运算过程中数据与秘钥结合。

16个子**是通过用户第一次输入的**得到。

函数F的输出经过一个异或运算,和左半部分结合形成新的右半部分,原来的右半部分成为新的左半部分。每轮迭代的过程可以表示如下:

Li = R(i - 1);

Ri = L(i - 1)⊕f(Ri-1,Ki-1)

将最终的左右不分合在一起,在进行置换IP^-1,也就是第一步的逆置换。

1)、输入64位明文数据,并进行初始置换IP;

2)、在初始置换IP后,明文数据再被分为左右两部分,每部分32位,以L0,R0表示;

3)、在秘钥的控制下,经过16轮运算(f);

4)、16轮后,左、右两部分交换,并连接再一起,再进行逆置换;

5)、输出64位密文。

DES算法特点

  1. 分组加密算法:以64位为分组。64位明文输入,64位密文输出。
  2. 对称算法:加密和解密使用同一秘钥
  3. 有效秘钥长度为56位秘钥通常表示为64位数,但每个第8位用作奇偶校验,可以忽略。
  4. 代替和置换DES算法是两种加密技术的组合:混乱和扩散。先替代后置换。
  5. 易于实现DES算法只是使用了标准的算术和逻辑运算,其作用的数最多也只有64 位,因此用70年代末期的硬件技术很容易实现

秘钥算法的特点

优点:

  1. 效率高,算法简单,系统开销小
  2. 适合加密大量数据
  3. 明文长度和密文长度相等

缺点:

  1. 需要以安全方式进行秘钥交换
  2. 秘钥管理复杂

 

相关标签: 算法 密码学