数据加密标准(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二进制数输出。
原文地址:https://www.cnblogs.com/liugangjiayou/p/12422122.html