第4章密码技术与应用本章内容密码技术概述4.1对称密码技术4.3非对称密码技术4.4散列算法(hash)4.5密钥的管理4.6密码技术与安全协议4.7古典密码技术4.2引导案例:某企业在全国各地拥有多家分支机构,为了实现企业内部的文档和数据传输,需要通过网络实现文件传输。考虑到部分文件具有一定的保密性,需要对一些文件进行加密处理,防止文件被其他人看到并阅读,同时还要保证接受方很容易地获得文件并实现解密。如何实现文件的加密,同时实现加密过程在保密的前提下更加方便快捷,有效地实现数据加密和解密是网络管理者必须考虑的问题。密码技术概述4.1在信息安全领域,如何保护信息的有效性和保密性是非常重要的,密码技术是保障信息安全的核心技术。通过密码技术可以在一定程度上提高数据传输与存储的安全性,保证数据的完整性。目前,密码技术在数据加密、安全通信以及数字签名等方面都有广泛的应用。密码技术应用与发展1密码的基本概念2密码的分类与算法3现代高级密码体系44.1.1密码技术应用与发展用户在生活与工作中很容易遇见一些信息安全问(见P74)密码学的基本思路是加密者对需要进行伪装的机密信息(明文)进行变换,得到另外一种看起来似乎与原有信息不相关的表示(密文),若合法接收者获得了伪装后的信息,那么他可以通过事先约定的密钥,从得到的信息中分析得到原有的机密信息,而不合法的用户(密码分析者)往往会因分析过程根本不可能实现,要么代价过于巨大或时间过长,以至于无法进行或失去破解的价值。密码学包括两个分支:密码编码学和密码分析学。密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法;而密码分析学则与密码编码学相反,它主要研究如何分析和破译密码。这两者既相互对立又相互促进。密码学的数学性很强,几乎所有的密码体制都不同程度地使用了数学方法。密码算法往往利用了现代数学中一些难以破解的问题来实现。密码技术是保障信息安全最核心的技术措施和理论基础,它采用密码学的原理与方法以可逆的数学变换方式对信息进行编码,把数据变成一堆杂乱无章难以理解的字符串。总体来看,密码技术是结合数学、计算机科学、电子与通信等诸多学科于一身的交叉学科。1、密码学的发展和起源(P76-77)近代的加密技术主要应用于军事领域,如美国独立战争、内战和两次世界大战。特别是世界大战。德国Enigma密码机,英国“”炸弹“密码破译机。中国古代也发明了秘密通信的手段。如宋代曾公亮、丁度等。2、计算机密码技术(P77)3、密码技术的主要应用领域(P77)(1)数据保密。(2)认证。(3)完整性保护。(4)数字签名和抗抵赖密码技术主要用于军事、情报系统,但随着计算机技术发展,用户对数据安全的要求越来越高,一些相关密码技术应用产品已经民用化。P77图4-2是一款普通的文件加密软件界面。图4-3是一种采用密码技术的移动硬盘产品。入侵者加密解密接收者信源密钥源密钥源明文明文密文密钥密钥密钥通道4.1.2密码技术基本概念所谓密码技术也就是数据加解密的基本过程,就是对明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为原来数据的过程。其基本原理如图4-4。总体上看,一个完整的信息加密系统至少包括下面四个组成部分:(1)明文。消息的初始形式,未加密的报文。(2)密文。加密后的形式,加密后的报文。(3)加密算法。对明文进行加密操作时所采用的一组规则(4)解密算法。接收者对密文解密所采用的一组规则。(5)密钥。加密/解密算法(密码算法)中的可变参数。改变密钥即改变明文与密文之间等价的数学函数管理。这个过程写成数学表示就是:明文记为P且P为字符序列,则P=[P1,P2,…,Pn];密文记为C,则C=[C1,C2,…,Cn];明文和密文之间的变换记为C=E(P)及P=D(C)。其中C表示密文,E为加密算法,P为明文,D为解密算法,要求密码系统满足P=D(E(P))。加密/解密算法和密钥构成密码体制的两个基本要素。密码算法是稳定的,难以做到绝对保密,可以公开,可视为一个常量。密钥则是一个变量,一般不可公开,又通信双方掌握。密钥分别称为加密密钥和解密密钥,二者可以相同也可以不同。加密和解密算法的操作通常都是在一组密钥的控制下进行的。P794.1.3密码的分类与算法可以从不同角度根据不同的标准对密码技术进行分类。P791.按历史发展阶段划分(1)手工密码。(2)机械密码。(3)电子机内乱密码。(4)计算机密码。2.按保密程度划分(1)理论上保密的密码。(2)实际上保密的密码。(3)不保密的密码。3.按密钥方式划分(1)对称式密码(2)非对称式密码4.按密码算法分,常见的密码算法有:P80(1)DES(DataEncryptionStandard)(2)3DES(TripleDES)(3)RC2和RC4(4)IDEA(InternationalDataEncryptionAlgorithm)(5)RSA(6)DSA(DigitalSignatureAlgorithm)(7)AES(AdvancedEncryptionStandard)(8)单向散列算法1.零知识证明密码学中讲的零知识证明(zero-knowledgeproof),在不让对方获知任何资讯的情况下证明一件事,实例是身份辨别。指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法。例如甲要向乙证明自己拥有某个房间的钥匙(见P80-81)2.量子密码技术量子密码是一种利用光纤传输通道特性所发展出来的密码系统,通道有两个。一个是光纤组成的量子频道,另一个则是一般使用者都能接收到信息的公用频道(使用者可以发送或是接收信息,但不能修改其他人传递的信息)。其安全性是建立在测不准原理上的,如果攻击者企图接收并检测信息发送方的信息(偏振),则将造成量子状态的改变,这种改变对攻击者而言是不可恢复的,而对收发方则可很容易地检测出信息是否受到攻击。量子密码的优点是可以防止窃听(见P81)4.1.4现代高级密码体系在计算机出现之前,密码学的算法主要是通过字符之间代替或易位实现的,一般称这些密码体制为古典密码或者传统加密技术。其中包括:移位密码、单表替换密码、多表替换密码等。古典密码的主要应用对象是对文字信息进行加密解密。以英文为例,文字由字母中的一个个字母组成,字母表可以按照排列组合顺序进行一定的编码,把字母从前到后都用数字表示。此时,大多数加密算法都有数学属性,这种表示方法可以对字母进行算术运算,字母的加减法将形成对应的代数码。古典密码有着悠久的历史(见P81)古典密码技术4.2现代密码算法不再依赖算法的保密,而是把把算法和密钥分开。其中,密码算法可以公开,但是密钥是保密的,密码系统的安全性在于保持密钥的保密性。如果加密密钥和解密密钥相同,或实质上等同(即从一个可以推出另外一个),我们称其为对称密钥、私钥或单钥密码体制。对称密码技术又可分为序列密码和分组密码两大类。序列密码每次加密一位或一字节的明文,也称为流密码。序列密码是手工和机械密码时代的主流方式。分组密码将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。最典型的就是1977年美国国家标准局颁布的DES算法。对称密码技术原理1DES对称加密算法2对称密码技术4.3IDEA算法3高级加密标准AES44.3.1对称密码技术原理在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,通信双方都使用同样的密钥,安全性得不到保证。对称密码系统的安全性依赖于以下两个因素(见P86)此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一钥匙。(见P86)4.3.2DES对称加密算法1.DES算法特点与应用DES采用分组密码体制,使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码时,一个48位的密钥值由56位的完整密钥得出来。(1)DES主要特点DES的安全性不依赖于算法的保密,安全性仅以加密密钥的保密为基础;提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;具有足够的复杂性,使得破译非常困难;容易实现,可以以软件或硬件形式出现;(2)DES的具体应用领域(见P86-87)计算机网络通信。电子货币系统。保护用户文件。用户识别。2.DES算法的实现步骤DES算法实现加密需要三个步骤:第一步:变换明文。对给定的64位比特的明文X,首先通过一个置换IP表来重新排列X,从而构造出64位比特的X0,X0=IP(X)=L0R0,其中L0表示X0的前32位,R0表示X0的后32位。第二步:按照规则迭代。规则为:Li=Ri-1Ri=Li-1异或f(Ri-1,Ki)(i=1,2,3,…,16)其中f表示一种置换,又S盒置换构成,Ki是一些由密钥编排函数产生的比特块。第三步:对L16R16利用IP-1作逆置换,就得到密文y。DES算法具有极高的安全性,目前除了穷举搜索法对DES算法进行攻击外,还没有发现更有效的方法。而56位长的密钥的穷举空间件为256,这意味着如果一台计算机的速度是每秒检测100万个密钥,而搜索完全部密钥就需要将近2285年的时间,具体的密钥长度与破解难度可以参考表4-5。随着科技发展,可以考虑把DES密钥的长度再增加一些,以此来达到更高的保密程度。此外(详见P87-88)3.三重DES(见P88)针对DES密钥短的问题,科学家又研制了80位的密钥,以及在DES的基础上采用三重DES和双密钥加密的方法。三重DES(或称3DES)方法的强度大约和112比特的密钥强度相当。这种方法用两个密钥对明文进行三次运算。设两个密钥K1和K2,其算法步骤如下:(1)用密钥K1进行DES加密(2)用K2对步骤1的结果进行DES解密(3)用步骤2的结果使用密钥K1进行DES加密。如此一来,其效果相当于将密钥长度加倍。4.3.3IDEA算法国际数据加密算法IDEA是瑞士的著名学者提出的。它在1990年正式公布并在以后得到增强。这种算法是在DES算法的基础上发展出来的,类似于三重DES。它也是对64bit大小的数据块加密的分组加密算法,密钥长度为128位,它基于“相异代数群上的混合运算”设计思想算法,用硬件和软件实现都很容易,且比DES在实现上快得多。IDEA自问世以来,已经历了大量的验证,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。4.3.4高级加密标准AESAES(高级加密标准)是美国联邦政府采用的商业及政府数据加密标准,预计将在未来几十年里代替DES在各个领域中得到广泛应用。AES提供128位密钥,128位AES的加密强度是56位DES加密强度的1021倍还多。假设可以制造一部可以在1秒内破解DES密码的机器,那么使用这台机器破解一个128位AES密码需要大约149万亿年的时间。1998年美国召开第一次AES候选会议,并公布了15个AES候选算法(详见P89)若加密密钥和解密密钥不相同,从其中一个难以推出另一个,则称为不对称密码技术或双钥密码技术。不对称密码算法使用两把完全不同但又是完全匹配的一对钥匙—公钥