数据加密标准

更新时间:2023-12-23 20:29

数据加密标准( Data Encryption Standard)1977年美国国家标准局公布IBM公司研制的用于电子数据加密的对称密钥算法。DeDES是原型块密码,它采用固定长度的明文比特字符串,并通过一系列复杂的操作将其转换成相同长度的另一个密文比特字符串。 在DES的情况下,块大小是64位。 DES还使用密钥来定制变换,使得解密可以仅由知道用于加密的特定密钥的人来执行。

算法简介

DeDES是原型块密码,它采用固定长度的明文比特字符串,并通过一系列复杂的操作将其转换成相同长度的另一个密文比特字符串。 在DES的情况下,块大小是64位。 DES还使用密钥来定制变换,使得解密可以仅由知道用于加密的特定密钥的人来执行。 密钥表面上由64位组成; 然而,其中只有56个实际上被算法使用。 还有8位仅用于检查奇偶校验,并且此后被丢弃。 因此,有效密钥长度为56位。

密钥名义上存储或传输为8字节,每个具有奇偶校验。 根据ANSI X3.92-1981(现在,称为ANSI INCITS 92-1981),第3.5节:KEY的每个8位字节中的一个位可以用于密钥生成,分配和存储中的错误检测。 位8,16,...,64用于确保每个字节具有奇数奇偶性。

与其他块密码一样,DES本身不是加密的安全手段,而是必须在操作模式中使用。 FIPS-81规定了与DES一起使用的几种模式。解密使用与加密相同的结构,但使用相反顺序的密钥。 (这具有可以在两个方向上使用相同的硬件或软件的优点)。

发展历史

该算法基于Horst Feistel的早期设计在20世纪70年代早期由IBM开发,在机构邀请后提交给国家标准局(NBS),以提出保护敏感、未分类的电子政府数据的候选。 1976年,在与国家安全局(NSA)协商后,国家统计局最终选择了一个略微修改的版本(加强了防差别密码分析,但对强力攻击削弱),作为官方的联邦信息处理标准美国在1977年。

国家安全局批准的加密标准的出版同时导致其迅速的国际通过和广泛的学术审查。争议来自分类的设计元素,对称密钥块密码设计的相对短的密钥长度,以及NSA的参与,滋扰对后门的怀疑。随着时间的推移,算法所接受的激烈的学术审查导致了对块密码及其密码分析的现代理解。

DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出来。DES用软件进行解码需要用很长时间,而用硬件解码速度非常快。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。所以,当时DES被认为是一种十分强壮的加密方法。

随着攻击技术的发展,DES本身又有发展,如衍生出可抗差分分析攻击的变形DES以及密钥长度为128比特的三重DES等。

算法

算法的整体结构如图1所示:有16个相同的处理阶段,称为循环。还存在称为IP和FP的初始和最终排列,其是反转(IP“撤销”FP的动作,反之亦然)。 IP和FP没有加密意义,但是它被包含在内以便于在20世纪70年代中期基于8位的硬件加载块使用。

在主循环之前,块被分成两个32位半部分进行交替处理;这个十字交叉被称为Feistel方法。 Feistel结构确保解密和加密是非常类似的过程 - 唯一的区别是当解密时子密钥以相反的顺序应用。算法的其余部分是相同的。这极大地简化了实现,特别是在硬件中,因为不需要单独的加密和解密算法。

F函数

图2所示的F函数一次操作半个数据块(32位),由四个阶段组成:

扩展:使用扩展置换(在图2中用E表示),通过复制一半的比特,将32比特半块扩展为48比特。输出由8个6位(8 * 6 = 48位)片组成,每个片包含4个对应输入位的副本,以及从每个输入片到任一侧的直接相邻位的副本。

密钥混合:结果与使用异或运算的子密钥组合。使用密钥调度表从主密钥导出16个48位子密钥(每个循环一个)。

替换:在子密钥中混合之后,该块在被S盒或替换盒处理之前被分成8个6位片。八个S盒中的每一个根据以查找表的形式提供的非线性变换,用其四个输出位替换其六个输入位。 S盒提供了DES的安全性的核心 - 没有它们,密码将是线性的,并且易于破坏。

置换:最后,根据固定置换,P盒,重新排列来自S盒的32个输出。这被设计为使得在置换之后,每个S盒的输出比特在下一轮中散布在四个不同的S盒上。来自S盒的替换的交替和来自P盒和E扩展的比特的置换分别提供了所谓的“混淆和扩散”,Claude Shannon在1940年代时认为这是安全的必要条件。

调度-生成子密码

图片显示了用于加密的密钥调度 - 生成子密钥的算法。

最初,通过排列选择1(PC-1)从初始64中选择密钥的56个比特,剩余的8个比特被丢弃或用作奇偶校验比特。 然后将56位分成两个28位的一半; 然后分别处理每一半。 在连续的循环中,两半都向左旋转一位或两位(为每个循环指定),然后通过排列选择2(PC-2)选择48个子密钥位,从左半边开始24位,从右边开始24位 。 旋转(在图3中由“<<<”表示)意味着在每个子密钥中使用不同的比特集合; 每个位用于16个子密钥中的14个。

解密的关键调度表类似 - 子密钥与加密相反的顺序。 除了这种变化,该过程与加密相同。

简化

简化DES(SDES)

简化DES(SDES)仅用于教育目的,以帮助学生了解现代密码分析技术。 SDES具有与DES类似的属性和结构,但已经被简化,以使其更容易用铅笔和纸张手动执行加密和解密。 有些人认为学习SDES可以了解DES和其他块密码的原理。

威胁意义

原定服役十年,由于在这期间,该加密标准没有受到真正的威胁,20多年来一直活跃在国际保密通信的舞台上。近些年,随着计算机技术的提高,已经有了现实的威胁。512位的密钥已经能被破解,但是要花很多的时间,计算量非常大,1024位长度密钥至今没能被破解。DES作为一种高速对称加密算法,仍然具有重要意义,特别是DES(密钥系统)和公钥系统结合组成混合密码系统。使DES和公钥系统(如RSA)能够各自扬长避短,提高了加密系统的安全和效率。

破译方法

DES受到的最大攻击是它的密钥长度仅有56比特,1990年S.Biham 和 A.Shamir提出了差分攻击的方法,采用选择明文247攻击,最终找到可能的密钥,M.Matsui 提出的线性分析方法,利用243个已知明文,成功地破译了16圈DES算法,到目前为止,这是最有效的破译方法。

DES挑战赛

从1997年开始,RSA公司发起了一个称作“向DES挑战”的竞技赛。在首届挑战赛上,罗克·维瑟用了96天时间破解了用DES加密的一段信息。

1999年12月22日,RSA公司发起“第三届DES挑战赛(DES Challenge III)”。2000年1月19日,由电子边疆基金会组织研制的25万美元的DES解密机以22.5小时的战绩,成功地破解了DES加密算法。DES已逐渐完成了它的历史使命。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}