0


数据加密标准 DES-密码学复习用(如侵则删)

数据加密标准 DES

DES不安全主要原因:密钥空间太小

DES的特点:

  • 分组长度:64位 (明文和密文 分组皆为64位)
  • 密钥长度:56位(实际上是64位,8位用于奇偶校验)
  • 轮数:16 16轮子密钥,每一个子密钥是48位

DES加密

加密的3个阶段:

  1. 初始置换:重排明文分组
  2. 16轮轮变换:Feistel结构
  3. 逆初始置换:前面有一个左右置换

初始置换:

  • 64位明文分组M以位为一行,共8行(8*8置换表)
  • IP:输入的第58位置换位输出的第一位,输入的第50位置换位输出的第二位,以此类推。
  • 初始置换IP和逆初始置换IP^-1 是互逆的
  • 输入的第1位经过IP置换输出为第40位,经过IP^-1 置换到第一位。

密钥编排:

  1. 密钥56位
  2. 经过置换选择1
  3. 左循环移位再进行置换选择2,产生48位每轮子密钥
  4. 迭代16轮

轮结构

  • DES轮结构分为左右两半
  • 左半部分和Feistel结构一样
  • 右半部分产生每轮子密钥
  • 轮函数F分为4个操作步骤:
  1. 扩展置换E:主要功能是扩散,32位扩展成48位
  2. 异或:与48位子密钥异或
  3. S盒代换:48位通过8个S盒产生32位的输出
  4. P盒置换:重新排列

扩展置换

  • 扩展置换:轮输入的右半部分R为32位,扩展成48位
  • 将32位输入分为8组,每组4位
  • 从相邻两组的邻近位置各取1位形成扩展置换E,其中16个位各重复一次

与子密钥异或

  • 扩散置换喏d'f的输出与48位子密钥进行异或
  • 产生48位,进入S盒代换

S盒代换

  • 代换盒 S盒,S盒是DES安全的关键,提供混淆性能
  • 共8个S盒,每个S盒的输入6位,输出4位
  • S盒是非线性的,可以抵抗差分密码分析
  • S盒是该密码体制的唯一非线性组件

S盒的设计

  • 每个S盒给出了4个代换,每一行定义一个可逆代换。6位输入,取第1位和第6位形成一个2位二进 制数,即行号,中间4位用来选择列号
  • 行列交叉位置的十进制数就是S盒的输出

例如:输入为011001 输出为 1001 ,即为十进制的9

S盒代换

  • 每个S盒是4行16列矩阵,每行定义一个可逆代换
  • DES的S盒设计主要是为了确保非线性关系,并不需要可逆
  • DES算法是基于Feistel密码结构的,其加密盒解密过程是相同的,只是轮密钥的使用顺序相反而已,所以无需加密过程可逆。

P盒置换

  • S盒操作胡为2位(8*4),经过P盒重新置换重新排列
  • P盒式可逆置换

最后一步

  • 将右半边32位作为左半边,而左半边32位与Pbox输出的32位进行异或,并将运算结果作为右半边。
  • 这个过程重复16轮,每轮采用不同子密钥
  • 最后左右互换,经过逆初始变换IP^-1 ,产生64位密文分组。

DES密钥的生成

  • 56位密钥先经过一个置换运算PC1
  • 然后将置换后的56位分为28位左右两半C0,D0
  • 循环生成16轮子密钥
  • 在第i轮对Ci-1和Di-1分别进行左循环移位。在1,2,9,16轮左移一位,其他轮左移两位。
  • 移动总数为28位,即 C16=C0 D16=D0,刚好左移28位回到初态。
  • 移位后的结果作为求下一轮子密钥的输入,同时也作为置换选择PC2的输入,PC2是压缩置换从56位中选48位
  • 通过PC2产生的48位的Ki,即为第i轮的子密钥,作为函数F(Ri-1,Ki)的输入。

密钥

  • DES是一种Feistel结构,DES的解密和加密算法使用同一算法,但子密钥使用的顺序相反。
  • 经典加密法中,密钥基本不变,但在分组加密法中,密钥随明文分组每轮之花不同,这就允许分组加密的每轮使用不同的子密钥来执行操作。

解密

解密是加密的逆过程,算法相同,但子密钥使用的次序相反。

DES的安全性问题

  • 雪崩效应:明文或密钥的某一位发生便话会导致密文多问产生变化。
  • DES能够实现较好的混淆
  • DES存在取反特性
  • DES存在弱密钥和半弱密钥

弱密钥:存在k,使得EK (EK (m)) = m,

DES有4个弱密钥 0101010101010101, 1F1F1F1F0E0E0E0E, E0E0E0E0F1F1F1F1, FEFEFEFEFEFEFEFE

半弱密钥:存在K1,K2,使得EK1 (EK2 (m)) = m

有12个半弱密钥, 形成6对, K1,K2如下: I 01FE01FE01FE01FE,FE01FE01FE01FE01 1FE01FE00EF10EF1 ,E01FE01FF10EF10E 01E001E001F101F1 ,E001E001F101F101 1FFE1FFE0EFE0EFE ,FE1FFE1FFE0EFE0E 011F011F010E010E ,1F011F010E010E01 E0FEE0FEF1FEF1FE , FEE0FEE0FEF1FEF1

这里每字节的最低位用作奇偶校验位

  • DES的弱密钥和半弱密钥,在多重DES加密中,第二次加密可能使第一次加密负元
  • 弱密钥与半弱密钥使得原本多轮迭代的复杂结构简单化和容易分析
  • DES迭代8论以后,就可认为输出和输入不相关。

二重 2DES

加密:C = EK2 (EK1 (P))

解密:P = DK1 (DK2(C))

Caesar密码构成一个群,用Caesar加密一个消息,先用密钥加密,再用密钥5加密,等同于用密钥8加密,所以对于Ceasar密码,双重加密并不增加安全性。那DES呢?

  • DES不是一个群,所以二重加密不等价与用一个单一的密钥加密明文
  • DES二重加密增加安全性,但是增加不多
  • DES的安全行依赖于较大的密钥空间
  • DES的密钥长度使5位,所以密钥空间是 2的56次方
  • 2DES的密钥空间是2的57次方
  • 2DE容易被中途相遇攻击破解

中途相遇攻击

中途相遇攻击需要已知一些明文/密文对。

2DES的密钥空间是2的57次方。

3DES

抵抗中图相遇攻击的一种实用方法是采用3DES

  • 3DES 有168位密钥,3DES可以用2个或3个密钥

  • 方法:仅使用两个密钥做3次DES
  • 加密:C = EK1 (DK2 (EK1 [P]))
  • 解密: P = DK1 (DK2 (DK1 [C]))
  • 当K1=K2时,3DES变成单密钥的DES

3DES使密钥穷搜攻击的复杂度从O(2^56)增至O(2^112),并且 采用一定技巧编程,3DES的加密时间仅为DES的2倍

复习整理,如侵则删

标签: 安全

本文转载自: https://blog.csdn.net/qq_47632786/article/details/124368391
版权归原作者 qq_47632786 所有, 如有侵权,请联系我们删除。

“数据加密标准 DES-密码学复习用(如侵则删)”的评论:

还没有评论