目录:(点击即可跳转)

  • 1、DES概况
  • 1.1、DES是什么
  • 1.2、DES整体特点
  • 2、 DES算法结构
  • 2.1、整体框图
  • 2.2、加密过程
  • 3、子密钥的产生
  • 3.1、作用
  • 3.2、整体框图
  • 3.3、置换选择1
  • 3.3.1、作用
  • 3.3.2、矩阵
  • 3.3.3、说明
  • 3.4、循环移位
  • 3.4.1、作用
  • 3.4.2、循环移位表
  • 3.5、置换选择2
  • 3.5.1、作用
  • 3.5.2、矩阵
  • 3.5.3、说明
  • 4、初始置换 IP
  • 4.1、作用
  • 4.2、矩阵
  • 5、逆初始置换 IP-1
  • 5.1、作用
  • 5.3、相逆性
  • 5.3、保密作用不大
  • 5.4、矩阵
  • 6、 加密函数 f
  • 6.1、作用
  • 6.2、整体框图
  • 6.3、选择运算E
  • 6.3、代替函数组S(S盒)
  • 6.3.1、S盒的一般性质:
  • 6.3.2、S盒的设计准则
  • 6.4、置换运算P
  • 7、 解密过程
  • 8、DES的安全性问题
  • 8.1、攻击
  • 8.2、安全弱点
  • 9、 3重DES
  • 9.1、3DES的优势:
  • 9.2、3DES的弱势:
  • 9.3、2密钥3DES框图


1、DES概况

1.1、DES是什么

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。

1.2、DES整体特点

①分组密码:

  • 明文、密文和密钥的分组长度都是64位。

②面向二进制的密码算法:

  • 因而能够加解密任何形式的计算机数据。

③对合运算:

  • f = f-1
  • 加密和解密共用同一算法,使工程实现的工作量减半。

④综合运用了置换、代替、代数等基本密码技术。

⑤基本结构属于Feistel结构。

2、 DES算法结构

2.1、整体框图

des算法的优势与劣势 des算法特点_加密解密

2.2、加密过程

1 、64位密钥经子密钥产生算法产生出16个子密钥:K1,K2,…,K16,分别供第一次,第二 次,…,第十六次加密迭代使用。

2 、64位明文经初始置换IP,将数据打乱重排并分成左右两半。左边为 L0 ,右边为 R0 。

3 、第一次加密迭代:

  • 在子密钥 K1的控制下,由加密函数 f 对 R0 加密: L0 ⊕ f ( R 0 , K1 )
  • 以此作为第二次加密迭代的R1,以 R0 作为第二次加密迭代的 L1 。

4 、第二次加密迭代至第十六次加密迭代分别用子密钥 K2 ,… , K16进行,其过程与第一次加密迭代相同。

5 、第十六次加密迭代结束后,产生一个64位的数据组。以其左边32位作为 R16 ,以其右边32位作为 L16 。

6 、 R16 与 L16合并,再经过逆初始置换 IP–1 ,将数据重新排列,便得到 64位密文。

7 、DES加密过程的数学描述:

des算法的优势与劣势 des算法特点_加密解密_02

3、子密钥的产生

3.1、作用

  • 64位密钥经过置换选择1循环左移置换选择2 等变换,产生16个子密钥 K1,K2,… K16
  • 分别供各次加密迭代使用 分别供各次加密迭代使用。

3.2、整体框图

des算法的优势与劣势 des算法特点_des算法的优势与劣势_03

3.3、置换选择1

3.3.1、作用

  • 去掉密钥中的8个奇偶校验位。
  • 打乱重排,形成 C0 (左28位),D0 (右28位) 。

3.3.2、矩阵

des算法的优势与劣势 des算法特点_des算法的优势与劣势_04

3.3.3、说明

  • 矩阵中第一个数字47,表明原密钥中的第47位移到 C0 中的第一位。

3.4、循环移位

3.4.1、作用

  • 对C0 ,D0 分别循环左移位。

3.4.2、循环移位表

des算法的优势与劣势 des算法特点_IP_05

3.5、置换选择2

3.5.1、作用

  • 从Ci 和 Di (56位)中选择出一个48位的子密钥Ki

3.5.2、矩阵

des算法的优势与劣势 des算法特点_密码学_06

3.5.3、说明

  • 从Ci中取出24位,从Di 中取出24位,形成 48位的子密钥Ki

4、初始置换 IP

4.1、作用

  • 把64位明文打乱重排
  • 左一半为 L0 (左32位),右一半为R0 (右32位) 。
  • 例如:把输入的第1位置换到第40位,把输入的第58位置 换到第1位。

4.2、矩阵

des算法的优势与劣势 des算法特点_迭代_07

5、逆初始置换 IP-1

5.1、作用

  • 把64位中间密文打乱重排。
  • 形成最终的64位密文。

5.3、相逆性

  • IP与IP-1互逆。
    例:在IP中把输入的第1位置换到第40位,而在IP-1中 把输入的第40位置换到第1位。

5.3、保密作用不大

  • 由于没有密钥参与,在IP和IP-1公开的条件下,其保密意义不大

5.4、矩阵

des算法的优势与劣势 des算法特点_迭代_08

6、 加密函数 f

6.1、作用

  • DES的轮函数,DES保密的核心。

6.2、整体框图

des算法的优势与劣势 des算法特点_IP_09

6.3、选择运算E

  • 把32位输入扩充为48位中间数据;
  • 通过重复使用数据,实现数据扩充。
  • 矩阵:

des算法的优势与劣势 des算法特点_迭代_10

6.3、代替函数组S(S盒)

6.3.1、S盒的一般性质:

  • S盒是DES中唯一的非线性变换,是DES安全的关键。
  • 在保密性方面,起混淆作用。
  • 共有8个S盒,并行作用。
  • 每个S盒有6个输入,4个输出,是非线性压缩变换。
  • 设输入为 b1 b2 b3 b4 b5 b6 ,则以 b1 b6 组成的二进制数为行号,b2 b3 b4 b5 组成的二进制数为列号。行列交点处的数 (二进制)为输出。
  • 举例:

6.3.2、S盒的设计准则

1976年,NSA公布的DES 的 S盒设计准则:

  • P0:每个 S盒的每一行都是整数 0 到15的一个置换;
  • P1:每个 S盒的输出不是它的输入的线性或仿射函数;
  • P2:改变 S盒的任一输入比特,其输出至少有两比特发生 改变;
  • P3:对任一 S盒和任一输入 x ,S(x) 和S(x ⊕001100)至少有 两位发生变化(这里 x是一个长度为 6的比特串);
  • P4:对任何 S盒和任一输入 x,以及e,f ∈{0,1}, 有 S(x) ≠S(x ⊕11ef00),其中 x是一个长度为 6的比特串;
  • P5:对任何 S盒,当它的任一输入比特位保持不变,其它 5 位改变时,输出数字中 0 和 1的数目大致相等。

其它准则:

美国NSA至今没有完全公布S盒的设计细节。研究表明,除了上述准则外,还有一些其它准则。

  • 非线性度准则:S盒必须有足够的非线性度,否则不能抵 抗线性攻击;
  • 差分均匀性准则: S盒的差分性应均匀,否则不能抵抗差 分攻击;
  • 代数次数及项数分布准则 :S盒必须有足够的代线次数和 项数,否则不能抵抗插值攻击和高阶差分攻击;

6.4、置换运算P

  • 把数据打乱重排。
  • 在保密性方面,起扩散作用:
  • 因为S盒是6位输入,4位输出,其非线性作用是局部的
  • 因此,需要把S盒的混淆作用扩散开来
  • S盒与P置换的互相配合,共同确保DES的安全。
  • 矩阵:

des算法的优势与劣势 des算法特点_迭代_11

7、 解密过程

  • DES的加密算法是对合运算,因此解密和加密可共用同一个算法。
  • 不同点:子密钥使用的顺序不同
  • 第一次解密迭代使用子密钥 K16 ,第二次解密迭代 使用子密钥 K15 ,第十六次解密迭代使用子密钥 K1 。
  • DES解密过程的数学描述:

8、DES的安全性问题

8.1、攻击

  • 穷举攻击。目前最有效的方法。
  • 差分攻击。
  • 线性攻击。

8.2、安全弱点

  • 密钥太短。
  • 存在弱密钥。
  • 存在互补对称性。

9、 3重DES

9.1、3DES的优势:

  • 3密钥的3DES:密钥长度是168位。
  • 2密钥的3DES:密钥长度是112位。
  • 安全:密钥足够长; 经过最充分的分析和实践检验。
  • 兼容性好。

9.2、3DES的弱势:

  • 速度慢。

9.3、2密钥3DES框图

des算法的优势与劣势 des算法特点_IP_12