您好,欢迎访问三七文档
5.3常用加密算法介绍5.3.1古典密码算法古典密码大都比较简单,这些加密方法是根据字母的统计特性和语言学知识加密的,在可用计算机进行密码分析的今天,很容易被破译。虽然现在很少采用,但研究这些密码算法的原理,对于理解、构造和分析现代密码是十分有益的。表5-1给出了英文字母在书报中出现的频率统计。表5-1英文字母在书报中出现的频率字母ABCDEFGHIJKLM频率13.059.028.217.817.286.776.646.645.584.113.602.932.88字母NOPQRSTUVWXYZ频率2.772.622.151.511.491.391.281.000.420.300.230.140.09古典密码算法主要有代码加密、替换加密、变位加密、一次性密码簿加密等几种算法。1.代码加密代码加密是一种比较简单的加密方法,它使用通信双方预先设定的一组有确切含义的如日常词汇、专有名词、特殊用语等的代码来发送消息,一般只能用于传送一组预先约定的消息。密文:飞机已烧熟。明文:房子已经过安全检查。代码加密的优点是简单好用,但多次使用后容易丧失安全性。2.替换加密将明文字母表M中的每个字母替换成密文字母表C中的字母。这一类密码包括移位密码、替换密码、仿射密码、乘数密码、多项式代替密码、密钥短语密码等。这种方法可以用来传送任何信息,但安全性不及代码加密。因为每一种语言都有其特定的统计规律,如英文字母中各字母出现的频度相对基本固定,根据这些规律可以很容易地对替换加密进行破解。以下是几种常用的替换加密算法。1)移位密码是最简单的一类代替密码,将字母表的字母右移k个位置,并对字母表长度作模运算,其形式为:ek(m)=(k+m)=cmodq,解密变换为:dk(c)=(m-k)=mmodq。凯撒(Caesar)密码是对英文26个字母进行移位代替的密码,其q=26。这种密码之所以称为凯撒密码,是因为凯撒使用过k=3的这种密码。2)乘数密码也是一种替换密码,它将每个字母乘以一个密钥k,ek(m)=kmmodq,其中k和q是互素的,这样字母表中的字母会产生一个复杂的剩余集合,若是和q不互素,则会有一些明文字母被加密成相同的密文字母,而且不是所有的字母都会出现在密文字母表中。异或运算(XOR)也常用于替换加密,加密:c=mXORk,解密:m=cXORk。3)多名或同音替换。每个字母可加密或替换成多个密文字母,这种方法是一种一对多的映射关系,可以挫败一般的频度分析攻击。3.变位加密变位加密不隐藏明文的字符,即明文的字母保持相同,但其顺序被打乱重新排列成另一种不同的格式,由于密文字符与明文字符相同,密文中字母的出现频率与明文中字母的出现频率相同,密码分析者可以很容易地由此进行判别。虽然许多现代密码也使用换位,但由于它对存储要求很大,有时还要求消息为某个特定的长度,因而比较少用。以下介绍几种常见的变位加密算法。1)简单变位加密。预先约定好一组数字表示密钥,将文字依次写在密钥下,再按数字次序重新组织文字实现加密,也有人喜欢将明文逆序输出作为密文。例如密钥:524163(密文排列次序)明文:信息安全技术密文:技息全信术安2)列变位法。将明文字符分割成个数固定的分组(如5个一组,5即为密钥!),按一组一行的次序整齐排列,最后不足一组用任意字符填充,完成后按列读取即成密文。如明文是:InformationSecurityTechnology,则分组排列为:InformationSecurityTechnology则密文是:ImnrelnaSicoftethgoicynyrouTo,这里的密钥是数字5。解密过程则是按列排列密文,再按行读取即可。3)矩阵变位加密。将明文中的字母按给定的顺序安排在一个矩阵中,然后用另一种顺序选出矩阵的字母来产生密文。一般为按列变换次序,如原列次序为1234,现为2413。如将明文NetworkSecurity按行排列在3×6矩阵中,如下所示:123456NetworkSecurity给定一个置换:,根据给定的次序,按5、2、6、4、1、3的列序重新排列,得到:526413oerwNtcuekSiyrt所以,密文为:oerwNtcuekSiyrt。解密过程正好相反,按序排列密文后,通过列置换再按行读取数据即可。4.一次性密码簿加密一次性密码簿加密具有代码加密的可靠性,又保持了替换加密的灵活性,密码簿每一页都是不同的代码表,可用一页上的代码来加密一些词,用后销毁,再用另一页加密另一些词,直到全部的明文完成加密,破译的唯一方法就是获取一份相同的密码簿。一次性密码簿加密,要求密码簿至少不小于明文长度,即不得重复用来加密明文的不同部分,否则密文就会呈现出某种规律性,也就可能被破译。一般这种加密方法只用于高度保密的场合下,因为如何将至少同长度的密码簿护送到接收端是一个大代价的行动。5.3.2单钥加密算法传统加密方法的统计特性是此类算法致命的缺陷。为了提高保密强度,可将这几种加密算法结合使用,形成秘密密钥加密算法。由于可以采用计算机硬件和软件相结合来实现加密和解密,算法的结构可以很复杂,有很长的密钥,使破译很困难,甚至不可能。由于算法难以破译,可将算法公开,攻击者得不到密钥,也就不能破译,因此这类算法的保密性完全依赖于密钥的保密,且加密密钥和解密密钥完全相同或等价,又称为对称密钥加密算法,其加密模式主要有序列密码(也称流密码)和分组密码两种方式。流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如0、1数字),字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流解密。流密码的强度完全依赖于密钥流序列的随机性和不可预测性,其核心问题是密钥流生成器的设计,流密码主要应用于政府和军事等国家要害部门。根据密钥流是否依赖于明文流,可将流密码分为同步流密码和自同步流密码,目前,同步流密码较常见。由于自同步流密码系统一般需要密文反馈,因而使得分析工作复杂化,但其具有抵抗密文搜索攻击和认证功能等优点,所以这种流密码也是值得关注的研究方向。分组密码是将明文消息编码表示后的数字序列x1,x2,…,xi,…,划分为长为m的组x=(xo,xl,…,xm-1),各组(长为m的矢量),分别在密钥k=(ko,k1,…,kL-1)控制下变换成等长的输出数字序列y=(yo,y1,…,yn-1)(长为n的矢量),其加密函数E:Vn×K→Vn,Vn是n维矢量空间,K为密钥空间。它与流密码不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是还与一组长为m的明文数字有关。在相同密钥条件下,分组密码对长为m的输入明文组所实施的变换是等同的,所以只需要研究对任一组明文数字的变换规则。这种密码实质上是字长为m的数字序列的代替密码。通常取n=m,若nm,则为有数据扩展的分组密码,若nm,则为有数据压缩的分组密码。围绕单钥密钥体制,密码学工作者已经开发了众多行之有效的单钥加密算法,并且对基于这些算法的软硬件实现进行了大量的工作。常用的单钥加密算法有DES算法、IDEA算法。1.数据加密标准DES算法DES算法的发明人是IBM公司的W.Tuchman和C.Meyer,于1971-1972年研制成功。美国商业部的国家标准局NBS于1973年5月和1974年8月两次发布通告,公开征求用于电子计算机的加密算法,经评选从一大批算法中采纳了IBM的LUCIFER方案,该算法于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(AmericanNationalStandardInstitute,ANSI)承认。1977年1月以数据加密标准DES(DataEncryptionStandard)的名称正式向社会公布,并于1977年7月15日生效。DES算法是一种对二元数据进行加密的分组密码,数据分组长度为64bit(8byte),密文分组长度也是64bit,没有数据扩展。密钥长度为64bit,其中有效密钥长度56bit,其余8bit为奇偶校验。DES的整个体制是公开的,系统的安全性主要依赖密钥的保密,其算法主要由初始置换IP、16轮迭代的乘积变换、逆初始置换IP-1以及16个子密钥产生器构成。56位DES加密算法的框图如图5-9所示。图5-956位DES加密算法的框图DES加密算法框图明文加密过程如下:1)将长的明文分割成64位的明文段,逐段加密。将64位明文段首先进行与密钥无关的初始变位处理。2)初始变位后结果,要进行16次的迭代处理,每次迭代的框图相同,但参加迭代的密钥不同,密钥共56位,分成左右两个28位,第i次迭代用密钥Ki参加操作,第i次迭代完后,左右28位的密钥都作循环移位,形成第i+1次迭代的密钥。3)经过16次迭代处理后的结果进行左、右32位的互换位置。4)将结果进行一次与初始变位相逆的还原变换处理得到了64位的密文。上述加密过程中的基本运算包括变位、替换和异或运算。DES算法是一种对称算法,既可用于加密,也可用于解密。解密时的过程和加密时相似,但密钥使用顺序刚好相反。DES是一种分组密码,是两种基本的加密组块替代和换位的细致而复杂的结合,它通过反复依次应用这两项技术来提高其强度,经过共16轮的替代和换位的变换后,使得密码分析者无法获得该算法一般特性以外更多的信息。对于DES加密,除了尝试所有可能的密钥外,还没有已知的技术可以求得所用的密钥。DES算法可以通过软件或硬件实现。DES算法的安全性。DES的出现是密码学上的一个创举,由于其公开了密码体制及其设计细节,因此其安全性完全依赖于其所用的密钥,关于DES的安全问题,学术界有过激烈的争论,普遍的印象是密钥仅有56bit有点偏短。Diffie和Hellman曾设想花千万美元造一台专用机,渴望一天内找到DES的一个密钥,其基本思想是穷举,即强行攻击(需要255次尝试)。此外,1990年,EliBiham和AdiShamir提出用“微分分析法”对DES进行攻击,实际需要247次尝试,也只有理论上的价值。后来,有人提出一种明文攻击法——“线性逼近法”,它需要243对明文-密文对,在这样强的要求条件下,要十多台工作站协同工作花费十几天才能完成攻击。表5-2为不同条件下DES攻击时间的预测。表5-2不同条件下DES攻击时间的预测攻击者类型密钥长度个人攻击小组攻击院校网络攻击大公司军事情报机构计算资源(假设)1台高性能计算机16台高性能计算机256台高性能计算机大型机(百万美元级)大型机(百万美元级)及先进攻击技术40bit数周数日数小时数毫秒数微秒56bit数百年数十年数年数小时数秒钟64bit数千年数百年数十年数日数分钟80bit不可能不可能不可能数百年数百年128bit不可能不可能不可能不可能数千年在1977年,人们估计要耗资2000万美元才能建成一个专门计算机用于DES的解密,而且需要12h的破解才能得到结果。1997年开始,RSA公司发起了一个称作“向DES挑战”的竞技赛。1997年1月,用了96天时间,成功地破解了用DES加密的一段信息;一年之后的记录是41天;1998年7月,“第二届DES挑战赛(DESChallengeII-2)”把破解DES的时间缩短到了只需56h;“第三届DES挑战赛(DESChallengeIII)”把破解DES的时间缩短到了只需22.5h。总之,随着各种针对DES新攻击手法的不断出现,DES已感觉到了实际的威胁,也许DES即将完成其历史使命。尽管如此,自DES正式成为美国国家标准以来,已有许多公司设计并推广了实现DES算法的产品,有的设计专用LSI器件或芯片,有的用现成的微处理器实现,有的只限于实现DES算法,有的则可以运行各种工作模式。2.国际数据加密算法IDEA近年来,新的分组加密算法不断出现,IDEA就是其中的杰出代表。IDEA是InternationalDataEncryptionAlgorithm的缩写,即国际数据加密算法。它是根据中国学者朱学嘉博士与著名密码学家JamesMassey于1990年联合提出的建议标准算法PES(ProposedE
本文标题:常用加密算法介绍
链接地址:https://www.777doc.com/doc-5101517 .html