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,就效率和安全性而言,与密钥的增长不相匹配。
  • 相关阅读:
    SQL 表连接
    SQL 时间日期函数
    SQL 转换函数
    25 -2 正则爬虫例子
    25 -1 正则 re模块 (findall、search、match、sub、subn、split、compile、finditer)
    25 python 常用模块
    24- 1 模块
    23-8 python模块定义
    23-5 面试题:1000个员工,我们认为名字和年龄相等,就为同一个人
    23-4 __eq__方法
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/12422452.html
Copyright © 2011-2022 走看看