数据加密标准

发布时间:2024-07-26 18:24:54 作者:汉语成语

数据加密标准(DES,DataEncryptionStandard)是一种使用密钥加密的块密码,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。推动了现代的块密码及其密码分析的发展。

由来

为了建立适用于计算机系统的商用密码,美国商业部的国家标准局NBS于1973年5月和1974年8月两次发布通告,向社会征求密码算法。在征得的算法中,由IBM公司提出的算法lucifer中选。1975年3月,NBS向社会公布了此算法,以求得公众的评论。于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(AmericanNationalStandardInstitute,ANSI)承认。1977年1月以数据加密标准DES(DataEncryptionStandard)的名称正式向社会公布。

原理

数据加密标准使用一个56位的密钥以及附加的8位奇偶校验位,产生64位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但一个循环不交换。数据加密标准使用16个循环,使用异或,置换,代换,移位操作四种基本运算。

算法

1、64bit密钥K经变换KS产生16个48bit的子密钥K1、K2…K16,分别供16次迭代使用;

2、64bit明文段经初始置换IP得到64bit数据组,左32bit构成L0,右32bit构成R0;

3、由加密函数f实现子密钥Ki对Ri-1的加密变换和Li=Ri-1,Ri=Li-1f(Ri-1,Ki)的迭代变换,迭代过程连续16次;(其中称作按位模2加运算)

4、由Rl6为前32bit,Ll6为后32bit组成的64bit数据组,经逆初-2-始置换IP-1得密文;

5、脱密的算法相同,只是子密钥使用次序颠倒,K16在次使用,K1在使用。