计算机网络信息安全第4章_第1页
计算机网络信息安全第4章_第2页
计算机网络信息安全第4章_第3页
计算机网络信息安全第4章_第4页
计算机网络信息安全第4章_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章网络平安密码学根本理论4.1密码学概况4.2密码体制分类4.3常见密码算法4.4杂凑函数4.5数字签名4.6平安协议4.7密码理论的网络平安应用举例4.8本章小结本章思考与练习4.1密

4.1.1密码学开展简况密码学是一门研究信息平安保护的科学。它最早可追溯到几千年前,主要用于军事和外交通信。随着网络与信息技术的开展,密码学的应用不再局限于军事、政治、外交领域,而是逐步应用于社会各个领域,例如电子商务、个人平安通信、网络平安管理等。密码学的开展可大致划分为四个阶段:第一个阶段:从古代到1949年。该时期的密码学没有数学理论根底,其应用领域仅限于通信。第二个阶段:从1949年到1975年。这一时期的标志性事件是香农在1949年发表的著名论文——?保密系统的信息理论?,该文为私钥密码系统奠定了理论根底。第三个阶段:1976年到1990年。这一时期的密码技术出现了革命性变化,一是开辟了公钥密码学的新纪元,公钥密码体制诞生。二是美国政府提出了数据加密标准(DES)。这两个引人瞩目的事件标志着现代密码学的诞生。这一阶段的密码学应用不够广泛,使用人员并不多。第四个阶段:1990年到至今。因特网技术的普及和信息技术的开展极大地带动了密码学的应用需求,密码技术成为网络与信息平安的核心技术。在这一时期,密码学的应用得到了社会的广泛认同,密码学正影响着网络与信息技术的开展。4.1.2密码学根本概念密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学那么是在不知道密钥的情况下识别出明文的科学。所谓明文,是指需要采用密码技术进行保护的消息。而密文那么是指用密码技术处理“明文〞后的结果,通常称为加密消息。将明文变换成密文的过程称作加密(encryption)。其逆过程,即由密文恢复出原明文的过程称作解密(decryption)。加密过程所使用的一组操作运算规那么称作加密算法;而解密时使用的一组运算规那么称作解密算法。加密和解密算法的操作通常都是在密钥(key)控制下进行的,分别称为加密密钥和解密密钥。4.1.3密码攻击分类与平安根据密码分析者破译时已具备的前提条件,人们通常将攻击类型分为三种:*惟密文攻击:密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。*明文攻击:密码分析者仅知道当前密钥下的一些明文及所对应的密文。*选择明文攻击:密码分析者能够得到当前密钥下自己选定的明文所对应的密文。*选择密文攻击:攻击者能够得到任何选定的密文所对应的明文。4.2密码体制分类

4.2.1私钥密码体制私钥密码体制又称作对称密码体制,是广泛应用的普通密码体制。该体制的特点是加密和解密使用相同的密钥,如图4-1所示。私钥密码体制可看成保险柜,密钥就是保险柜的号码。持有号码的人能够翻开保险柜,放入文件,然后再关闭它。持有号码的其他人可以翻开保险柜,取出文件。没有保险柜号码的人就必须摸索保险柜的翻开方法。当用户应用这种体制时,消息的发送者和接收者必须事先通过平安渠道交换密钥,以保证发送消息或接收消息时能够有供使用的密钥。图4-1私钥密码体制原理示意图

显然易见,私钥密码体制的密钥分配和管理是极为重要的问题。为了保证加密消息的平安,密钥分配必须使用平安途径,例如由专门人员负责护送密钥给接收者。同时,消息发送方和接收方都需要平安保管密钥,防止非法用户读取。除了密钥的平安分配和管理外,私钥密码体制另外的问题是密钥量管理。由于加密和解密使用同一个密钥,因此,在不同的接收者分别进行加密通信或信息交换时,需要有几个不同的密钥。假设网络中有n个使用者,使用者之间共享一个密钥,那么共有n(n-1)/2个密钥。如果n很大,密钥将多的无法处理。在私钥体制中,使用者A和B具有相同的加、解密能力,因此使用者B无法证实收到的A发来的消息确实来自A。私钥密码体制的缺陷可归纳为三点:密钥分配问题、密钥管理问题以及无法源认证。虽然私钥密码体制有缺乏之处,但私钥密码算法处理速度快,常常用作数据加密处理。目前,私钥密码典型算法已有DES、IDEA、AES等,其中,DES是美国早期数据加密标准,现在已经被AES取代。4.2.2公钥密码体制1976年,W.Diffie和M.E.Hellman发表了论文?密码学的新方向?,提出了公钥密码体制的思想。公钥密码体制又称作非对称密码体制,根本的原理是在加密和解密的过程中使用不同的密钥处理方式。其中,加密密钥可以公开,而只需要把解密密钥平安存放即可。在平安性方面,密码算法即使公开时,由加密密钥推知解密密钥的计算也是不可行的。公钥密码体制原理示意如图4-2所示。图4-2公钥密码体制原理示意图

公钥密码体制可看成邮箱,任何人都能容易地把邮件放进邮箱,只要翻开口子投进去就行了。把邮件放进邮箱是一件公开的事情,但翻开邮箱却不是,它是难的,需要吹焊器或其他工具。然而,如果持有秘密信息(钥匙或组合密码),就很容易翻开邮箱了。与对称密码体制相比较,公钥密码体制有以下优点:(1)密钥分发方便,可以以公开方式分配加密密钥。例如,因特网中的个人平安通信常将自己的公钥公布在网页中,方便其他人用它进行平安加密。(2)密钥保管量少。网络中的消息发送方可以共用一个公开加密密钥,从而减少密钥数量。只要接收方的解密密钥保密,消息的平安性就能实现。(3)支持数字签名。二十多年来,许多曾经提出的公钥密码体制已经被攻破了,也有很多被证明是不实用的。目前,只有三类体制被证明是平安和有效的,即RSA体制、ELGamal体制以及椭圆曲线密码体制。4.2.3混合密码体制混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制方式,进行加密和解密运算。混合密码体制的工作原理如图4-3所示。第一步,消息发送者Alice用对称密钥把需要发送的消息加密。第二步,Alice用Bob的公开密钥将对称密钥加密,形成数字信封,然后一起把加密消息和数字信封传送给Bob。第三步,Bob收到Alice的加密消息和数字信封后,用自己的私钥将数字信封解密,获取Alice加密消息时的对称密钥。第四步,Bob使用Alice加密的对称密钥把收到的加密消息解开。

图4-3混合密码体制原理示意图

4.3常见密码算法

4.3.1DESDES是数据加密标准的简称,由IBM在20世纪60年代研制出来。DES是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。DES是世界上应用最广泛的密码算法。但是,随着计算机系统运算速度的增加和网络计算的进行,在有限的时间内进行大量的运算将变得更可行。1997年,RSA实验室发出了破解DES密文的挑战。由RocheVerse牵头的一个工程小组动用了70000多台通过互联网连接起来的计算机,使用暴力攻击程序,大约花费96天的时间找到了正确的DES密钥。1998年7月,电子前沿基金会(EFF)花费了250000美元制造的一台机器在不到3天的时间里攻破了DES。因此,DES56比特的密钥长度已缺乏以保证密码系统的平安了。NIST于1999年10月25日采用三重DES作为过渡期间的国家标准,以增强DES的平安性,并开始征集AES(AdvancedEncryptionStandard)算法。4.3.2IDEAIDEA(InternationalDataEncryptionAlgorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。该算法是由来学嘉(X.J.Lai)和Massey提出的建议标准算法,已在PGP中得到应用。IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密。该算法的设计思想是:“混合使用来自不同代数群中的运算〞。4.3.3AES1997年4月15日,美国国家标准技术研究所(NIST)发起征集AES(AdvancedEncryptionStandard)算法的活动,并专门成立了AES工作组。目的是为了确定一个非保密的、公开的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息。NIST规定候选算法必须满足下面的要求:*密码必须是没有密级的,绝不能像保护商业秘密那样来保护它;*算法的全部描述必须公开披露;

*密码必须可以在世界范围内免费使用;*密码系统支持至少128比特长的分组;*密码支持的密钥长度至少为128、192和256比特。截止到1998年8月,已提交了15个候选算法用于AES。由于Rijndeal提供了平安性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此NIST在2000年10月2日确定选择Rijndael作为AES。4.3.4RSAWhitefieldDiffie和MartinHellman于1976年提出了公钥密码系统的思想,然而他们并没有给出一个实用的公钥密码系统。Diffie-Hellman的文章发表两年后,MIT的RonaldRivist、AdiShamir和LenAdlemar开发出了第一个公钥密码体制。RSA密码算法基于大整数因子分解的困难性,可以描述如下:第一步,生成两个大素数p和q。第二步,计算这两个素数的乘积n=pq。

第三步,计算小于n并且与n互素的整数的个数,即欧拉函数φ(n)=(p-1)(q-1)。第四步,选取一个随机数e,且1<e<φ(n),并且e和φ(n)互素,即gcd(e,φ(n))=1。第五步,计算d=e-1modφ(n)。第六步,保密d、p和q,而公开n和e,即d作为私钥,而n和e作为公钥。下面,举一个RSA加密的具体实例。设素数p=3,q=17,并令e=13,那么RSA的加密操作如下:(1)计算n。n=pq=3×17=51,得出公钥n=51,e=13。(2)计算φ(n)和d。φ(n)=(p-1)(q-1)=2×16=32。因为d=e-1modφ(n),所以d=(kφ(n)+1)/e。其中,k是p-1和q-1的最大公约数。所以由此算出d=(2×32+1)/13=5,即解密钥是d=5。(3)加密和解密处理计算。假设Bob的公开密钥是e=13、n=51,Alice需要将明文“2〞发送给Bob,那么Alice首先用Bob的公开密钥加密明文,即C=Memodn=213mod51=8192mod51=32然后,Bob收到Alice发来的密文C后,用自己的私钥d解密密文C,即M=Cdmodn=325mod51=1024×1024×32mod51=512mod51=2RSA平安性保证要做到选取的素数p和q要足够大,使得给定了它们的乘积n后,在事先不知道p或q的情况下分解n,这在计算上是不可行的。因此,破译RSA密码体制根本上等价于分解n。基于平安性考虑,要求n的长度至少应为1024比特。然而从长期的平安性来看,n的长度至少应为2048比特,或者是616位的十进制数。4.3.5Diffie-Hellman密钥交换协议W.Deffie和M.E.Hellman于1976年首次提出密钥交换体制,通常简称Diffie-Hellman密钥交换协议。Diffie-Hellman密钥交换协议基于求解离散对数问题的困难性,即对于下述等式:Cd=MmodP其中,d称为模P的以C为底数的M的对数,在C和P的前提下,由d求M很容易,只相当于进行一次指数计算。而再由M反过来求d,那么需要指数级次计算。随着P取得足够大,就能实现足够的平安强度。现在假设Alice和Bob使用Diffie-Hellman密钥交换协议,在一个不平安的信道上交换密钥,那么其操作步骤如下:第一步,Alice和Bob确定一个适当的素数p和整数a,并使a是p的原根,其中a和p可以公开。第二步,Alice秘密选取一个整数,计算,并把发送给Bob。第三步,Bob秘密选取一个整数,计算,并把发送给Alice。和就是所说的Diffie-Hellman公开值。第四步,Alice和Bob双方分别计算出共享密钥,即Alice通过计算生成密钥;Bob通过计算生成密钥;因为:

所以,Alice和Bob生成的密钥K是相同的,这样一来就实现了密钥的交换。Alice和Bob采用Diffie-Hellman密钥交换的平安性是求解离散对数问题的困难性,即从yA或yB以及计算或在计算上是不可行的。4.4杂

杂凑函数简称Hash函数,它能够将任意长度的信息转换成固定长度哈希值(又称数字摘要或消息摘要),并且任意的不同消息或文件所生成的哈希值是不一样。令h表示Hash函数,那么h应满足以下条件:n

h的输入可以是任意长度的消息或文件M;n

h的输出长度是固定的;n

给定h和M,计算h(M)是容易的;n

给定h的描述,找两个不同的消息M1和M2,使得h(M1)=h(M2)在计算上是不可行的。Hash函数的平安性是指:在现有的计算资源下,找到一个碰撞是不可能的。Hash函数在网络平安应用中,不仅能用于保护消息或文件的完整性,而且也能用作密码信息的平安存储。例如,网页防篡改应用。网页文件管理者首先用网页文件生成系列Hash值,并将Hash值备份存放在平安地方。然后定时再计算这些网页文件的Hash值,如果新产生的Hash值与备份的Hash值不一样,那么说明网页文件被篡改了。目前,主要Hash算法有MD2、MD4、MD5、SHA。其中,MD5能产生128比特长度的哈希值,它的使用广泛,常用于网络中文件的完整性检查。但是,据最新研究说明,MD5的平安性受到挑战,已被中国的王小云女士攻破。而SHA由NIST和NSA研究开发,在美国政府中使用,作为平安哈希标准,SHA产生的哈希值比MD5长,有160比特。4.5数

数字签名(DigitalSignature)是手写签名的电字模拟,是通过电子信息计算处理,产生的一段特殊字符串消息,该消息具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的。因而,通常将这种消息称为数字签名。与手写签名类似,数字签名至少应满足以下三个条件:n

签名者事后不能否认自己的签名;n

接收者能验证签名,而任何其他人都不能伪造签名;n当双方就签名的真伪发生争执时,第三方能解决双方之间发生的争执。

一个数字签名方案一般由签名算法和验证算法组成。签名算法的密钥是秘密的,只有签名人掌握;而验证算法那么是公开的,以便他人验证。典型的数字签名方案有RSA签名体制、Rabin签名体制、ElGamal签名体制和DSS标准。签名与加密很相似,一般是签名者利用秘密密钥(私钥)对需签名的数据进行加密,验证方利用签名者的公开密钥(公钥)对签名数据做解密运算。签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名的目的是让消息接收者确信信息的发送者是谁,信息是否被他人篡改。下面我们给出数字签名的根本流程。假设Alice需要签名发送一份电子合同文件给Bob。Alice的签名步骤如下:第一步,Alice使用Hash函数将电子合同文件生成一个消息摘要。第二步,Alice使用自己的私钥,把消息摘要加密,形成一个数字签名。第三步,Alice把电子合同文件和数字签名一同发送给Bob。Alice的签名过程如图4-4所示。

图4-4数字签名过程示意图

Bob收到Alice发送的电子合同文件及数字签名后,要验证电子合同文件是Alice所认可的,验证步骤如下:第一步,Bob使用与Alice相同的Hash算法,计算出所收到电子合同文件的消息摘要。第二步,Bob使用Alice的公钥,解密来自Alice的加密消息摘要,恢复出Alice原来的消息摘要。第三步,Bob比较自己产生的消息摘要和恢复出来的消息摘要之间的异同。假设两个消息摘要相同,那么说明电子合同文件来自Alice。如果两个消息摘要的比较结果不一致,那么说明电子合同文件已被篡改。图4-5验证数字签名过程示意图

4.6安

4.6.1SSLSSL(SecureSocketLayer)协议是介于应用层和TCP层之间的平安通信协议。其主要目的是当两个应用层之间相互通信时,使被传送之信息具有保密性及可靠性。如图4-6所示,SSL的工作原理是将应用层的信息加密或签证处理后再经TCP/IP网络送至对方,收方经验证鉴别无误后解密复原信息。图4-6SSL协议工作机制

SSL协议是一个分层协议,由两个子协议组成。 较低层协议为SSL记录协议(SSLRecordProtocol),位于传输层(如TCP)之上。SSL记录协议的用途是将各种不同的较高层协议(如HTTP或SSL握手协议)封装后再传送。另一层协议为SSL握手协议(SSLHandshakeProtocol),它由三种协议组合而成,包含HandshakeProtocol、ChangeCipherSpec信息及AlertProtocol,其用途是为两个应用程序在开始传送或接收数据前,提供效劳器和客户端间的相互认证,并相互协商决定双方通信使用的加密算法及加密密钥,如图4-7所示。图4-7SSL协议组成示意图

SSL协议提供平安通信,有三种效劳:(1)保密性通信。握手协议产生秘密密钥(secretkey)后才开始加、解密数据。数据的加、解密使用对称式密码算法,例如DES、RC4等。(2)点对点之间的身份认证。采用非对称式密码算法,例如RSA、DSS等。(3)可靠性通信。信息传送时包含信息完整性检查,使用具密钥之信息认证码(keyedMessageAuthenticationCode,简称MAC)。MAC的计算采用平安杂凑函数(SecureHashfunction),例如SHA、MD5等。SSL协议是个层次式的协议(layeredprotocol),于每一层次中其消息(message)内有许多可能包含消息长度、表达、内容(content)等的字段。SSL记录协议(RecordProtocol)数据处理过程如图4-8所示,其步骤如下:(1)SSL将数据(data)分割成可管理之区块长度。(2)选择是否要将已分割数据压缩。(3)加上消息认证码(MAC)。(4)将数据加密,生成即将发送的消息。(5)接收端将收到的消息解密、验证、解压缩,再重组后传送至较高层(例如应用层),即完成接收。图4-8SSL记录协议数据处理示意图

4.6.2SSHSSH的中文翻译为“平安外壳〞,它是基于公钥的平安应用协议,由SSH传输层协议、SSH用户认证协议和SSH连接协议这三个子协议组成,各子协议分工合作,实现加密、认证、完整性检查等多种平安效劳。SSH最初是Finland的学术研究工程,1998年开始商业化。SSH的研究开发目的是以一种渐进的方式来增强网络平安,通过利用现代密码技术,增强网络中非平安的效劳,例如telnet、rlogin、ftp等,实现效劳器认证和用户认证及平安加密网络连接效劳。目前,SSH已有两个版本:SSH1和SSH2,其中,SSH1因存在漏洞而被停用,现在用户使用的是SSH2。SSH2协议结构如图4-9所示。图4-9SSH2协议结构示意图

SSH传输层协议提供算法协商和密钥交换,并可实现效劳器的认证,最终形成一个加密的平安连接,该平安连接提供完整性、保密性和压缩选项效劳。SSH用户认证协议那么利用传输层的效劳来建立连接,使用传统的口令认证、公钥认证、主机认证等多种机制认证用户。SSH连接协议在前面两个协议的根底上,利用已建立的认证连接,并将其分解成多种不同的并发逻辑通道,支持注册会话隧道和TCP转发(TCP-forwarding),而且能为这些通道提供流控效劳以及通道参数协商机制。SSH的工作机制共分七个步骤,如图4-10所示。目前,用户为了认证效劳器的公钥真实性,有三种方法可选择。第一种,用户直接随身携带含有效劳器公钥的拷贝,在进行密钥交换协议前,读入到客户计算机。第二种,从公开信道下载效劳器的公钥和它对应的指纹后,先通过验证效劳器的公钥指纹的真实性,然后用Hash软件生成效劳器的公钥新指纹,比较下载的指纹和新生成的指纹,假设比较结果相同,那么说明效劳器的公钥是真实的,否那么效劳器的公钥是虚假的。第三种,通过PKI技术来验证效劳器。图4-10SSH工作流程图

在实际的应用中,SSH在端口转发技术(如图4-11所示)根底上,能够支持远程登录(Telnet)、rsh、rlogin、文件传输(scp)等多种平安效劳。SSH的软件包可从://下载,详细用法可参考手册。Linux系统一般提供SSH效劳,SSH的效劳进程端口通常为22。图4-11SSH端口转发示意图

4.7密码理论的网络平安应用举例4.7.1路由器平安应用路由器是网络系统中的核心设备,其平安性直接影响到整个网络。目前,路由器面临的威胁有路由信息交换的篡改和伪造、路由器管理信息泄露、路由器非法访问等。为了解决路由器的平安问题,密码学现已被广泛应用到路由器平安防范工作中,其主要用途有:(1)路由器口令管理。为了使路由器的口令能平安存储,路由器先用MD5把管理员口令信息进行Hash计算,然后再保存到路由器配置文件中。(2)远程平安访问路由器。远程访问路由器常用Telnet,但Telnet容易泄露敏感的口令信息,因此,管理员为增强路由器平安管理,使用SSH替换Telnet。(3)路由信息交换认证。路由器之间需要进行路由信息的交换,以保证网络路由正常进行,因此需要路由器之间发送路由更新包。为了防止路由欺诈,路由器之间对路由更新包都进行完整性检查,以保证路由完整性。目前,路由器常用MD5-HMAC来实现。接收路由器通过重新计算收到的路由信息的Hash值,然后与发送路由器的路由信息的Hash值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论