DES 加密、解密

DES 介绍

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。

1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。

DES算法的入口参数有三个:Key、Data、Mode。

其中,Key为7个字节共56位,是DES算法的工作密钥(对称的);Data为8个字节64位,是要被加密或被解密的数据(DES算法加密解密的数据块大小,如果待加密数据不是64位的倍数,会有某种填充规则);Mode为DES的工作方式,有两种:加密或解密。

DES设计中使用了分组密码设计的两个原则:混淆(confusion)和扩散(diffusion),其目的是抗击敌手对密码系统的统计分析。

混淆,是使密文的统计特性与密钥的取值之间的关系尽可能复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来说是无法利用的。

扩散的作用,就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,并且使每一位密钥的影响尽可能迅速地扩展到较多的密文位中,以防对密钥进行逐段破译。