📜  数据加密标准

📅  最后修改于: 2021-01-12 04:43:30             🧑  作者: Mango


数据加密标准(DES)是美国国家标准技术研究院(NIST)发布的对称密钥分组密码。

DES是Feistel密码的实现。它采用16轮Feistel结构。块大小为64位。虽然,密钥长度为64位,DES具有56位的有效密钥长度,由于密钥的64位的8不使用加密算法(如函数仅校验位)。 DES的一般结构如下图所示-

DES结构

由于DES基于Feistel密码,因此指定DES所需要做的就是-

  • 圆形函数
  • 关键时间表
  • 任何其他处理-初始和最终置换

初始和最终排列

初始置换和最终置换是直的置换框(P框),它们彼此相反。它们在DES中没有加密意义。初始和最终排列如下所示-

初始和最终排列

舍入函数

该密码的核心是DES函数f 。 DES函数将48位密钥应用于最右边的32位,以产生32位输出。

舍入函数

  • 扩展置换框-由于右输入是32位,而回合键是48位,因此我们首先需要将右输入扩展到48位。下图以图形方式描绘了排列逻辑-

排列逻辑

  • 以图形方式描述的置换逻辑通常描述为DES规范中的表格,如图所示-

DES规格

  • XOR(增白剂)。 −扩展排列后,DES将对扩展的右部分和圆键进行XOR操作。圆形键仅在此操作中使用。

  • 替代箱。 − S盒进行真正的混合(混淆)。 DES使用8个S-box,每个都有6位输入和4位输出。请参考下图-

S盒

  • S-box规则如下所示-

S盒规则

  • 共有八个S-box表。然后将所有八个s-box的输出合并为32位部分。

  • 直线排列-S-box的32位输出然后按照下图所示的规则进行直线排列:

直排列

密钥生成

轮密钥生成器从56位密码密钥中创建16个48位密钥。下图描述了密钥生成的过程-

密钥生成

DES描述中给出了奇偶校验下降,移位和压缩P-box的逻辑。

DES分析

DES满足块密码的两个所需特性。这两个属性使密码非常强大。

  • 雪崩效应-明文的微小变化会导致密文发生很大的变化。

  • 完整性-密文的每一位都取决于许多明文。

在过去的几年中,当选定的密钥为弱密钥时,密码分析发现DES中存在一些弱点。避免使用这些键。

事实证明,DES是一种设计良好的分组密码。除了详尽的密钥搜索之外,没有对DES进行任何重大的密码分析攻击。