DES算法流程

DES数据加密标准 (Data Encryption Standard)是一个16轮的Feistel型结构密码,它的分组长度为64比特,用一个56比特的密钥来加密一个64比特的明文串,输出一个64比特的密文串。其中,使用密钥为64比特,密钥位数是56比特,另8位用作奇偶校验,加密用的位数是48比特。加密的过程是先对64位明文分组进行初始置换,然后分左、右两部分分别经过16轮迭代,然后再进行循环移位与变换,最后进行逆变换得出密文。加密与解密使用相同的密钥,因而它属于对称密码体制。
DES算法流程

  1. 初始置换IP
  2. 生成16个48位的子密钥
  3. 16轮feistel结构迭代
    a) 扩展置换E
    b) S盒代换
    c) 置换P
  4. 逆初始置换IP-1
    在这里插入图片描述
    Feistel结构:feistel结构把任何函数(一般称为F函数,又称轮函数)转化为一个置换。
    子密钥的生成:子密钥K的生成大致分成三个过程:置换选择PC1,循环左移,置换选择PC2。
    Ln = R(n - 1);
    Rn = L(n - 1)⊕f(Rn-1,kn-1)
    1.初始置换
    DES算法使用64位的密钥key将64位的明文输入块变为64位的密文输出块,并把输出块分为L0、R0两部分,每部分均为32位。初始置换规则如下:
    注意:这里的数字表示的是原数据的位置,不是数据
    在这里插入图片描述
    初始置换把64位明文的第1位置换到第40位,第2位置换到第8位,第3位置换到第48位。以此类推,最后一位是原来的第7位。
    M1=(123456789ABCDEF)16
    =(00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111)2
    经过IP置换,并分成左右两部分,结果为:
    L0=11001100 00000000 11001100 11111111
    R0=11110000 10101010 11110000 10101010
    2.生成16个48位的子密钥
    D
  • 9
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值