为了建立计算机系统的商业密码,国家标准局(NBS)于1973年5月和1974年8月两次发布通知,要求社区提供加密算法。
在所获得的算法中,选择了IBM公司提出的算法lucifer。
1975年3月,国家统计局向公众宣布该算法以征询公众意见。
1976年11月美国政府通过后,DES随后被国家标准局和美国国家标准协会(ANSI)认可。
1977年1月,它以数据加密标准(DES)的名义正式向公众宣布。
数据加密标准使用56位密钥和附加的8位奇偶校验位来产生最大64位数据包大小。
这是一个迭代分组密码,使用一种名为Feistel的技术,其中加密的文本块被分成两半。
使用该子键将循环函数应用于其中的一半,然后将输出异或到另一半;然后交换两半,进程将继续,但最后一个循环不会被交换。
数据加密标准使用16个周期,使用XOR,置换,替换和移位操作。
1.将64位密钥K变换为KS,分别生成16个48位子密钥K1,K2 ... K16,进行16次迭代; 2.初始替换IP后,64位明文段为64位数据组,左侧32位构成L0,右侧32位构成R0; 3.通过加密函数f对子密钥Ki到Ri-1的加密变换和Li = Ri-1,Ri = Li-1f(Ri-1,Ki)的迭代变换,迭代过程连续16次; (称为按位模2加法运算)4。
64位数据组由R16作为前32位,L16作为最后32位,以及通过逆初始获得的密文 - 2 - 初始替换IP-1 ;算法是相同的,除了子键使用顺序相反,K16首次使用,K1最后一次使用。