zoukankan      html  css  js  c++  java
  • 数据加密标准(DES)2

    DES的子密钥生成

    step1:

    最初64bit密钥通过置换选择PC-1得56bit密钥

    • 步骤一:
      • 去掉第8、16、24、32、40、48、56、64八位;
      • 剩余的56bit按照表打乱次序。

    step2:

    56bit密钥分为2个28bit数据C0D0,每轮迭代中,Ci-1和Di-1分别循环左移1位或2位,得Ci和Di.
    (注:1、2、9、16轮左移1位,其它轮左移2位)

    step3:

    • 将56bitCi和Di输入置换选择PC-2,产生一个48bit的输出,即子密钥ki;
      PC-2步骤:
    • 去掉第9、18、22、25、35、38、43、54八位;
    • 剩余的48bit按照表打乱次序

    子密钥生成过程图示

    演示DES软件

    • DES优先:加解密算法公开,安全性依赖密钥;
    • DES缺点:速度慢,密钥需通过安全信道传递,密钥56bit较短,可被攻击。

    三重DES

    DES密钥长度64bit有效位56bit,较短容易被穷举破译,使用多重DES可以增加密钥量,抵抗穷举攻击。常用三重DES模式,有4种模式:

    • DES——EEE3模式:使用3个不同密钥,顺序3次DES加密;
    • DES——EDE3模式:使用3个不同密钥,依次使用加密-解密-加密;
    • DES——EEE2模式:使用2个不同密钥,顺序使用3次加密,一三次密钥相同;
    • DES——EDE2模式:使用2个不同密钥,加密-解密-加密,其中一、三次加密密钥相同。
      优点:
    • 密钥长度:前两种563=168bit,后两种562=112bit,可有效抵抗穷举攻击;
    • DES使用规模大,升级到三重DES比更换新的算法成本小。
      缺点:
    • 处理速度较慢;
    • 密钥长度增加,明文长度没有变化,仍为64bit,就效率和安全性而言,与密钥的增长不相匹配。
  • 相关阅读:
    Ajax 笔记
    Node.js笔记
    Linux 简介与安装
    安装 Git for Windows
    Git学习:版本控制、Git简介与安装
    Git学习:基本设置、基本操作与工作原理
    JAVA:一篇文章理清多态
    浅入浅出数据结构(25)——最小生成树问题
    浅入浅出数据结构(24)——最短路径问题
    浅入浅出数据结构(23)——图的概念、存储方式与拓扑排序
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/12422452.html
Copyright © 2011-2022 走看看