浅谈密码学DES

        DES虽然已经被淘汰,却是密码学历史长河中不可磨灭的一次改革。DES是密码学发展史上被广泛应用的商用数据加密算法,他的出现是现代密码发展史上一件非常有影响力的事件对现在的密码学发展仍有借鉴意义。现在新的密码AES已经替代了DES,我在 https://blog.csdn.net/qq_38324605/article/details/106904315 有介绍AES,感兴趣的小伙伴可以看看。在这里我粗浅的介绍一下DES,有认识不到位的地方请指出。

DES基本介绍

  •  按64位分组长度加密数据        
  •  明文分组长度64bits
  • 密文分组长度64bits
  • 密钥长度56位, 初始密码中有8位奇偶校验位,位置号分别为8,16,24,32,48,56和64,真正有效的只有56位
  •  加解密使用基本相同的算法和密钥        

DES算法描述

DES加密

  加密流程图如下:

浅谈密码学DES_第1张图片

具体流程即

  • 将64bit明文分组送入初始置换函数IP,进行初始置换

浅谈密码学DES_第2张图片

我实在太懒了,图片截自李子尘老师的密码学一书,下面截图均是来自此书,如有侵权删。

  • 初始置换函数将明文分为左右两半,左右明文各32位
  • 左右明文经过16轮加密过程
  • 将左右明文重新连接起来,对组成的块进行逆置换,得到64位密文

现在我们分别介绍每一步具体操作以及作用  

  •  DES的一轮迭代

流程图如下:

浅谈密码学DES_第3张图片

其中选择压缩变换即SP变换

  • 选择扩展运算    Ri-1由32位扩展到48位   (其中子密钥Ki是由密钥K生成的48bit数据)
  •  扩展的48位明文和48位子密钥异或,将结果传到S盒
  • S盒替换,48位输入,32位输出   (非线性变换)

 浅谈密码学DES_第4张图片S盒6进4出,对于每个S盒,将输入的第一位盒第六位组成的二进制作为横坐标,其他4位作为纵坐标(注这里没位都表示8进制,因此输入为48bit,输出为32bit),查询相应的S盒,再将对应位置上的十进制用二进制表示。
 P盒变换,根据固定的P盒变换表,置换到相应的位置
 密钥变换:每一轮从56位密钥产生不同的48位子密(即有 56位密钥置换密钥分为两半,各28位。 循环左移一位或者两位(  轮数:1,2,9,16 移一位,其余都移两位 (循环左移))从56位新密钥中选择48位且每一轮使用不同的密钥位子集,增加破译的复杂度)
  DES解密
   加解密共有相同的算法
    不同点:1,子密钥使用顺序相反 ;2,子密钥使用顺序相反;   3,轮数:1不移位,2,9,16移1位,其余移2位
    安全性?依赖与S盒设计标准保密,56位密钥难以抵御穷举攻击

    改进:三重DEA  


 

你可能感兴趣的:(密码学,密码学,算法,DES)