下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

密码学之DES算法

作者:课课家教育     来源: http://www.kokojia.com点击数:2266发布时间: 2018-02-25 14:00:44

标签: DES密码学通信安全

软考,您想通过吗?一次通过才是硬道理

  密码学是一门古老的学科,在密码学发展的历史上,出现了多种加密方法,有很早的古典加密算法,后来又出现了更加成熟的分组密码,公钥密码及流密码。密码学中常见的两种体制,一种是对称密码体制,也叫公钥密码体制。对称密码体制是指如果一个加密系统的加密密钥和解密密钥相同,或者不同,但是由其中的任意一个可以很容易推导出另一个,即密钥是双方共享的。下面给大家介绍一种对称密码算法DES。
  1、简介
  DES(Data Encryption Standard,数据加密标准),是由IBM公司研制的一种加密算法,它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准, 它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。
  DES是一个分组加密算法,它以64位为分组对数据加密。同时DES也是一个对称算法:加密和解密用的是同一个算法。它的密匙长度是56位(因为每个第8 位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。其中有极少量的数被认为是弱密匙,但是很容易避开他们。所以保密性依赖于密钥。
  2、基本原理
  其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密
  解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。
  3、算法流程
  密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文组和56位的密钥按位替代或交换的方法形成密文组。DES算法的主要流程如下图所示,本文按照流程依次介绍每个模块。
  密码学之DES算法_DES_密码学_通信_安全_课课家教育
  4、DES解密
  在经过所有的代替、置换、异或盒循环之后,你也许认为解密算法与加密算法完全不同。恰恰相反,经过精心选择的各种操作,获得了一个非常有用的性质:加密和解密使用相同的算法。
  DES加密和解密唯一的不同是密匙的次序相反。如果各轮加密密匙分别是K1,K2,K3….K16那么解密密匙就是K16,K15,K14…K1。
  5、 DES的几种工作方式
  第一种电子密本方式(ECB)
  将明文分成n个64比特分组,如果明文长度不是64比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。
  第二种密文分组链接方式(CBC)
  在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组重的缺点,但由于明文组加密前与一组密文有关,因此前一组密文的错误会传播到下一组。
  第三种密文反馈方式(CFB),可用于序列密码
  明文X=(x0,x1,……,xn-1),其中xi由t个比特组成0
  第四种输出反馈方式(OFB),可用于序列密码
  与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点。
  DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为2的56次方,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。
  由上述DES算法介绍我们可以看到:DES算法中只用到64位密钥中的其中56位,而第8、16、24、......64位8个位并未参与DES运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8,16,24,......64位外的其余56位的组合变化256才得以保证的。因此,在实际应用中,我们应避开使用第8,16,24,......64位作为有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这一点,把密钥Key的8,16,24,......64位作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。

赞(0)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程