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

    数据加密标准(DES)

    概述

    DES(Data Encryption Standard)是由1971年IBM公司设计出的一个加密算法,1977年经美国国家标准局(NBS)采用作为联邦标准之后,已成为金融界及其它各种民间行业最广泛应用的对称密码系统,是第一个被公布出来的标准算法。四十年来,尽管计算机硬件及破解技术的发展日新月异,但对DES的攻击也仅仅做到了“质疑”的地步,其主要缺点之一是密钥太短,若能用DES改进算法加长密钥长度,仍不失为一个安全的密码系统。

    DES结构

    明文m 置换IP m0=L0UR0 密钥源K1 L1UR1 密钥源K2 L2UR2 ……密钥源K16 L16UR16 得到R16UL16 逆置换IP^-1 得到密文C

    • DES是一个对称密码体制,加解密使用同一密钥,密钥、明文、密文长度均为64bit。
    • 解密过程为输入密文C并反序输入子密钥K16,K15,...,K1,最后输出的即明文m。

    DES详细结构图

    置换IP和逆置换IP^-1

    置换IP和逆置换IP-1没有密码学意义,X与IP(X)(或Y与IP-1 (Y))的一一对应关系是已知的,置换的目的是打乱原来输入X的ASII码字的前后关系。

    1. 置换IP
    • 置换IP表中的位序号特征为:64位按照8行8列排列,最右边一列按照1、3、5、7排列,往左边各列的位序号依次为其右边一列各位序号加8.
    1. 逆置换IP^-1
    • 逆置换IP^-1是置换IP的逆过程,表中位序号特征,64位按照8行8列排列,左边第二列按8、7、6、5、4、3、2、1次序排列,往右边隔一序号是当前列序号加8,认为最右边一列的隔一列为最左边一列。

    F函数

    DES的一轮迭代过程见下图,其中的F函数由3部分组成:

    • 扩展置换(E盒)
    • 非线性代换(S盒)
    • 线性置换(P盒)
      substitute:代换
      permute:置换
      expand:扩展
    1. 扩展置换
    • 扩展置换又称E盒,将32别输入扩展为48bit输出。扩展过程如下:

    扩展置换E盒作用:

    • 将32bit扩展为48bit,产生子密钥相同长度的数据使得能进行异或运算;
    • 扩展后的48bit数据在S盒的作用下压缩32bit实现了非线性运算。
    1. 代换
    • 代换盒子又称S盒,其功能是进行非线性代换,S盒子是DES中唯一的非线性部分,DES的安全性主要取决于S盒的安全。

    • S盒是一个查表运算,将48bit输入数据分成8个6bit数据,分别经过对应的8个代换子盒,变为8个bit数据,然后合成32bit数据输出。

    • 具体查表方法如下:

      • 设6bit输入为b1b2b3b4b5b6,则将b1和b6组合,转化为十进制的0~3的某个数,它对应表的行号(行分为第0、1、2、3行);
      • 其余4bit数b2b3b4b5组合,转化为十进制的0~15的某个数,它对应表的列号(列分为第0、1、2、3……15列)。
      • 行列对应位置的十进制数转化为4bit二进制数输出。
  • 相关阅读:
    CentOS6.5 [ERROR] /usr/libexec/mysqld: Can't create/write to file '/var/lib/mysqld/mysqld.pid' (Errcode: 2)
    linux防火墙
    Linux磁盘分区与LVM详解
    LVM分区扩展空间
    linux 分区方法(超过2T的硬盘)
    linux异常处理:selinux配置错误导致无法重启
    linux网卡配置文件
    Zabbix4.0系统clone、mass update使用
    Zabbix系统配置日志监控告警--关键字触发
    Zabbix4.0系统配置事件通知
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/12422122.html
Copyright © 2011-2022 走看看