DES算法概述

算法概述

DES算法是一种对称加密算法,基于56位密钥(事实上密钥形式上是64位的,但是有8位是奇偶校验位,剩下的56位才是真正的密钥)。其加密和解密的过程具有一致性。DES是一种典型的快密码,将固定长度(64位分组)的明文经过置换、函数变换等一系列复杂的操作变成同样长度(64位分组)的密文。(明文和密文包括密钥都是由0和1组成的信息)

总体结构

这里写图片描述

模块分解

根据总体结构,我们可以分为以下几个模块:

  1. IP置换模块
  2. 16轮T迭代模块
  3. Feistel函数模块
  4. 密钥生成模块
  5. IP逆置换模块
    这里写图片描述

模块分析

IP置换模块

根据DES算法给出的IP置换表,我们可以算出新的序列:
这里写图片描述
置换表给出的是新的序列的元素对应的原来的序列中的下标位置。
64位的数据进行置换操作,有 64! 种可能的排列,但此处规定是以上的这种排列。
经此操作后,64位的明文M变为:
M0=IPPermutation(M)

密码生成模块

这里写图片描述

  1. 首先,因为原始的64位密钥中包含了8位的奇偶校验位,奇偶校验位均在被8整除的下标中,剩下的56位才是真正的密钥。
    根据PC-1置换表对密钥进行置换,得 k0 :
    k0=PC1(k)

    这里写图片描述

  2. 将置换后得到的序列左右平分成 C0 D0 两段,每段28位。

  3. i=1,2,9,16时循环左移一个位置,其余时候左移两个位置
  4. 循环移位后得到 C1 , D1
  5. 再对 C1 D1 进行PC-2置换,就得到 k1 (PC-2的作用是把56位的秘钥压缩成48位)
    这里写图片描述
  6. 再对 C1 D1 重复 C0 D0 的操作,一直到算出 k16 为止
    ###Feistel函数模块
    这里写图片描述
    Feistel(Ri1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值