您好,欢迎访问三七文档
DES加密算法改进组员:朱璐阳杨星磊DES简介数据加密标准(DES)是一种世界范围之内广泛使用的以密钥作为加密方法的加密手段,被美国政府确定是很难破译的,因此也被美国政府作为限制出口的一种技术。在此标准下有72,000,000,000,000,000(72Q)多种密钥可供使用。对于每条给定的信息,密钥在这72Q个密钥中随机选择。与其它的加密方法一样,加密方和解密方必须使用相同的密钥,所以DES算法也属于对称算法。它的算法是对称的,既可用于加密又可用于解密。设计分组密码算法的核心技术是:在相信复杂函数可以通过简单函数迭代若干圈得到的原则下,利用简单圈函数及对合等运算,充分利用非线性运算。DES算法采用美国国家安全局精心设计的8个S-Box和P-置换,经过16圈迭代,最终产生64比特密文,每圈迭代使用的48比特子密钥是由原始的56比特产生的。DES密码算法输入的是64比特的明文,在64比特密钥的控制下产生64比特的密文;反之输入64比特的密文,输出64比特的明文。64比特的密钥中含有8个比特的奇偶校验位,所以实际有效密钥长度为56比特。DES算法加密时把明文以64bit为单位分成块,而后用密钥把每一块明文转化成同样64bit的密文块。DES提供72,000,000,000,000,000个密钥,用每微秒可进行一次DES加密的机器来破译密码需两千年。采用DES的一个著名的网络安全系统是Kerberos,由麻省理工学院MIT开发,是网络通信中身份认证的工业上的事实标准。DES使用56比特有效密钥的64-比特分组密码来加密64位数据。它是一个16-圈的迭代型密码。加、解密算法一样,但加、解密时所使用的子密钥的顺序刚好相反。DES的硬件实现的加密速率大约为20M比特/秒;DES的软件实现的速率大约为400~500K比特/秒。DES专用芯片的加密和解密的速率大约为1G比特/秒。DES的圈函数f对32比特的串作如下操作:首先将这32比特的串扩展成48比特的串。其次将这48比特的串和48比特的密钥进行组合并将组合结果作为八个不同S-盒的输入。每个S-盒的输入是6比特,输出是4比特。然后将S-盒的32比特做置换作为圈函数f的输出。DES有56比特的有效密钥,64比特密钥中的第8位、第16位、…、第64位为校验位。所以对DES最尖锐的批评之一是DES的密钥太短。DES算法以被应用于许多需要安全加密的场合。(如:UNIX的密码算法就是以DES算法为基础的)。下面是关于如何实现DES算法的语言性描述。1.处理密钥:1-1、变换密钥:取得64位的密钥,每个第8位作为奇偶校验位。1-2、变换密钥。1-2-1、舍弃64位密钥中的奇偶校验位,根据下表(PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位以被舍弃。DES应用自DES算法颁布之后,引起了学术界和企业界的广泛重视。许多厂家很快生产出实现DES算法的硬件产品,广大用户在市场上买到高速而又廉价的DES硬件产品之后,开始用它加密自己的重要数据,从而大大推广了密码技术的使用。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定了一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法。在银行金融界及非金融界,越来越多地用到了DES算法,目前美国使用的128位对称密码算法(DES),支持全美的电子商务活动。1998年全美电子商务营业额为160亿美元,尚未发现有安全问题。目前,在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密。如信用卡持卡人的PIN的加密传输、IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。DES的安全性对称的分组密码算法最主要的问题是:由于加解密双方都要使用相同的密钥,因此在发送、接收数据之前,必须完成密钥的分发。因而,密钥的分发便成了该加密体系中的最薄弱因而风险最大的环节。各种基本的手段均很难保障安全地完成此项工作。从而,使密钥更新的周期加长,给他人破译密钥提供了机会。实际上这与传统的保密方法差别不大。在历史战争中,破获他国情报的纪录不外是两种方式:一种是在敌方更换密码本的过程中截获对方密码本;另一种是敌人密钥变动周期太长,被长期跟踪,找出规律从而被破获。在对称算法中,尽管由于密钥强度增强,跟踪找出规律破获密钥的机会大大减小了,但密钥分发的困难问题几乎无法解决。如,设有n方参与通信,若n方都采用同一个对称密钥,一旦密钥被破解,整个体系就会崩溃;若采用不同的对称密钥则需n(n-1)个密钥,密钥数与参与通信人数的平方数成正比。这便使大系统密钥的管理几乎成为不可能。自DES算法1977年首次公诸于世以来,引起了学术界和企业界的广泛重视。学术界对DES密码进行了深入的研究,围绕它的安全性和破译方法展开了激烈的争论,在一定意义上对密码学的理论研究也起了推动作用。同时人们也一直对DES的安全性持怀疑态度,对密钥的长度、迭代次数及S盒的设计纵说纷纭。从技术上说,对DES的批评主要集中在以下三个方面。作为分组密码,DES的加密单位仅有64位二进制,这对于数据传输来说太小,因为每个区组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。密钥仅有56位二进制未免太短,各次迭代中使用的密钥K(i)是递推产生的,这种相关必降低了密码体制的安全性。目前,有人认为:在现有的技术条件下用穷举法寻找正确密钥已趋于可行,所以若要安全保护10年以上的数据最好不用DES算法。实现替代函数Si所用的S盒的设计原理尚未公开,其中可能留有隐患。更有人担心DES算法中有陷阱,知道秘密的人可以很容易地进行密文解密。目前人们仍然不知道DES中是否存在陷门。所谓陷门,通俗地讲,就是在算法的设计中设计者留了一个后门,知道某一秘密的人可进入这一后门获得使用该算法的用户的秘密密钥。DES的设计准则除了极少数被公布外,其余的仍然是保密的。围绕S-盒人们讨论了一系列问题包括设计准则和构造等。DES算法的应用漏洞DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。由上述DES算法介绍我们可以看到:DES算法中只用到64位密钥中的其中56位,而第8、16、24、......64位8个位并未参与DES运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8,16,24,......64位外的其余56位的组合变化256才得以保证的。因此,在实际应用中,我们应避开使用第8,16,24......64位作为DES密钥的有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这一点,把密钥Key的8,16,24,......64位作为有效数据位使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,是各级技术人员、各级领导在使用过程中应绝对避免的。避开DES算法漏洞安全管理在DES密钥Key的使用、管理及密钥更换的过程中,应绝对避开DES算法的应用误区,即:绝对不能把Key的第8,16,24......64位作为有效数据位,来对Key进行管理。这一点,特别推荐给金融银行界及非金融业界的领导及决策者们,尤其是负责管理密钥的人,要对此点予以高度重视。有的银行金融交易网络,利用定期更换DES密钥Key的办法来进一步提高系统的安全性和可靠性,如果忽略了上述应用误区,那么,更换新密钥将是徒劳的,对金融交易网络的安全运行将是十分危险的,所以更换密钥一定要保证新Key与旧Key真正的不同,即除了第8,16,24,...64位以外其它位数据发生了变化,须务必对此保持高度重视!现代密码学的特征是算法可以公开。保密的关键是如何保护好自己的密钥,而破密的关键则是如何能破解得到密钥。系统的安全主管者,要根据本系统实际所使用的密钥长度与其所保护的信息的敏感程度、重要程度以及系统实际所处安全环境的恶劣程度,在留有足够的安全系数的条件下来确定其密钥和证书更换周期的长短。同时,将已废弃的密钥和证书放入黑库归档,以备可能后用。密钥更换周期的正确安全策略是系统能够安全运行的保障,是系统的安全管理者最重要、最核心的日常工作任务。三重DES虽然DES被认为是一种十分可靠的加密方法,但许多公司仍然采用称为三重DES的方法加密,这种方法边连续使用三个密钥进行加密。因为确定一种新的加密法是否真的安全是极为困难的,而且DES主要的密码学缺点,就是密钥长度相对比较短,所以人们并没有放弃使用DES,而是想出了一个解决其长度问题的方法,即采用三重DES。其基本原理是将128比特的密钥分为64比特的两组,对明文多次进行普通的DES加解密操作,从而增强加密强度。这种方法用两个密钥对明文进行三次加密,假设两个密钥是K1和K2:1.用密钥K1进行DES加密。2.用K2对步骤1的结果进行DES解密。3.用步骤2的结果使用密钥K1进行DES加密三重DESDES算法扩展其密钥长度的一种方法,可使加密密钥长度扩展到128比特(112比特有效)或192比特(168比特有效)。此方法为密码专家默克尔(Merkle)及赫尔曼(Hellman)推荐。据称,目前尚无人找到针对此方案的攻击方法。
本文标题:DES加密算法改进
链接地址:https://www.777doc.com/doc-2909841 .html