• 理解DES算法


    首先 了解对称密码加密技术:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。但是有时候密钥不用完全相同 只要相似也可以。因为用一个密钥可以推导出另一个。


    传统密钥算法有:DES,IDEA,TDEA,RC5等

    同时 DES还是分组加密。对称加密分为分组加密和序列密码。

    分组密码,也叫块加密(block cyphers),一次加密明文中的一个块。是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组。
    序列密码,也叫流加密(stream cyphers),一次加密明文中的一个位。是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密。
    解密是指用同样的密钥和密码算法及与加密相同的伪随机位流,用以还原明文位流。

    下面来了解DES:

     DES算法的主要过程:

     那么首先 我们来看一下初始置换

    这一部分 我们将密文按照固定的矩阵 进行位序的移动 这部分与密钥毫无关系

     如上图 原本64位的58位 移动到了第一行第一列 原本的50位 移动到了一行二列

    这一部分很明显是可逆的

    之后我们把对来看一下密钥的操作

     我们先去掉8个校验位(但是原本的序号肯定是不变的,从图中可以看出是去掉每个字节第八位)

    然后再将56位换成两个28位

     

    之后 这里的左移是二进制位运算的左移嗷

     一共16轮          16轮不就生成了16个密钥嘛

    两个28位左移比单纯56位左移 复杂性更高

     之后

    此时56位成为了48位 很多位数又没了

    总的过程:

    前边的这些操作都是移位 置换 没经过什么运算

    现在乘机变换要真正进行加密了

     经过扩展变换之后其实还有很多变换

    乘积变换有点复杂 上边的可能看的有点晕 我就先大体说一下 我们首先是把初始置换(IP)的明文分成两部分 L0和R0

    之后我们进行:

    Li = Ri-1 

    Ri = Li-1 异或 f(Ri-1,Ki)

    一共16次迭代变换 对应1<=n<=16 这里的f()函数 其中就包含了Rn-1先扩展变换(E盒变换)为48位 后与子密钥Ki异或运算 之后经过s盒压缩变换为32位 然后经过p盒32位的置换

    这样应该就能懂了

    那么现在讲讲扩展变换:

     其实也就是变成了

     扩展变换的结果与Ki进行二进制异或运算

    得到的结果再经过s盒变换

     

     大概的规则就是这个

     我们举个例子 就能看懂了

     

     之后就要经过P盒置换 从32位线性变换为32位 这就很简单了

     这时候     f(Ri-1,Ki)的结果已经出来了 我们只需要把它和Li-1异或 就得到了Ri

    经过16次运算 得到了L16和R16

    好了 这时候我们再将L16和R16两部分 颠倒 合并为新的64位

    也就是 新的64位 是R16和L16  这个能懂吧

    然后对其执行一个最终的变换 IP-1 了

     其实是IP的逆矩阵哦  要用到线性代数的知识

    然后我们就得到了 明文M的加密形式C

    现在再来讲讲解密 因为是对称密码 所以解密就简单多了 就是一个逆过程罢了

    我们加密时16轮的迭代子密钥顺序是k1到k16

    我们解密是从k16到k1

    同时 产生子密钥的循环移位 是右移

    之后我们就总结一下DES加密的数学模型吧:

     解密的数学模型:

  • 相关阅读:
    zabbix4.2.5常见问题指南
    postgres常用运维sql
    centos7部署inotify与rsync实现实时数据同步
    postgres主从基于流复制
    postgres高可用学习篇三:haproxy+keepalived实现postgres负载均衡
    postgres高可用学习篇二:通过pgbouncer连接池工具来管理postgres连接
    postgres高可用学习篇一:如何通过patroni如何管理3个postgres节点
    centos7安装yum安装pip
    nginx1.15.10配置使用非https访问返回403
    zabbix4.2.5自定义告警模板
  • 原文地址:https://www.cnblogs.com/ranzhong/p/12986872.html
Copyright © 2020-2023  润新知