1.概述
DES(Data Encryption Standard,数据加密标准)是由IBM公司研制的一种对称算法,也就是说它使用同一个密钥来加密和解密数据,并且加密和解密使用的是同一种算法。美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。DES还是一种分组加密算法,该算法每次处理固定长度的数据段,称之为分组。DES分组的大小是64位(8字节),如果加密的数据长度不是64位的倍数,就可以按照某种具体的规则来填充位。DES算法保密性依赖于密钥,保护密钥异常重要。
DES(Data Encryption Standard)加密技术是一种常用的对称加密技术。该技术算法公开,加密强度大,运算速度快,在各行业甚至军事领域得到广泛的应用。DES算法于1977年公布,虽然有些人对它的加密强度持怀疑态度,但是现在还没有发现实用的破译DES的方法,并且在应用中人们不断提出新的方法来增强DES算法的加密强度,如3重DES算法、带有交换S盒的DES算法等,因此DES算法在信息安全领域仍有广泛的应用。
2.DES算法的密钥
严格来讲,DES算法的密钥长度为56位,通常用一个64位的数来表示密钥,然后经过转换得到56位的密钥,而第8、16、24、32、40、48、56、64位是校验位,不参与DES加解密运算,所以这些位上的数值不能算密钥。为了方便区分,我们把64位的数称为从用户处取得的用户密钥,而56位的数称为初始密钥(或工作密钥,或有效输入密钥)。
DES的安全性首先取决于密钥的长度。密钥越长,破译者利用穷举法搜索密钥的难度就越大。目前,根据当今计算机的处理速度和能力,56位长度的密钥已经能够被破解,128位的密钥则被认为是安全的,随着时间的推移,这个数字迟早会被突破。
具体加解密运算前,DES算法的密钥还要通过等分、移位、选取、迭代形成16个子密钥,分别供每一轮运算使用,每个子密钥为48比特。计算出子密钥是进行DES加密的前提条件。
3.DES算法原理
DES算法是分组算法,每组8字节,加密时一组一组进行,解密时也是一组一组进行。
要加密一组明文,每个子密钥按照顺序(1~16)以一系列的位操作施加于数据上,每个子密钥一次,一共重复16次。每一次迭代称为一轮。要对密文进行解密可以采用同样的步骤,只是子密钥是按照逆向的顺序(16~1)对密文进行处理。