




已阅读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.1 DESDES是数据加密标准的简称,由IBM在20世纪60年代研制出来。DES是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。DES是世界上应用最广泛的密码算法。但是,随着计算机系统运算速度的增加和网络计算的进行,在有限的时间内进行大量的运算将变得更可行。1997年,RSA实验室发出了破解DES密文的挑战。,由Roche Verse牵头的一个工程小组动用了70 000多台通过互联网连接起来的计算机,使用暴力攻击程序,大约花费96天的时间找到了正确的DES密钥。1998年7月,电子前沿基金会(EFF)花费了250 000美元制造的一台机器在不到3天的时间里攻破了DES。因此,DES 56比特的密钥长度已不足以保证密码系统的安全了。NIST于1999年10月25日采用三重DES作为过渡期间的国家标准,以增强DES的安全性,并开始征集AES(Advanced Encryption Standard)算法。,4.3.2 IDEAIDEA(International Data Encryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。该算法是由来学嘉(X.J.Lai)和Massey提出的建议标准算法,已在PGP中得到应用。IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密。该算法的设计思想是:“混合使用来自不同代数群中的运算”。,4.3.3 AES1997年4月15日,美国国家标准技术研究所(NIST)发起征集AES(Advanced Encryption Standard)算法的活动,并专门成立了AES工作组。目的是为了确定一个非保密的、公开的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息。NIST规定候选算法必须满足下面的要求:* 密码必须是没有密级的,绝不能像保护商业秘密那样来保护它;* 算法的全部描述必须公开披露;,* 密码必须可以在世界范围内免费使用;* 密码系统支持至少128比特长的分组;* 密码支持的密钥长度至少为128、192和256比特。截止到1998年8月,已提交了15个候选算法用于AES。由于Rijndeal提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此NIST在2000年10月2日确定选择Rijndael作为AES。,4.3.4 RSAWhitefield Diffie和Martin Hellman 于1976年提出了公钥密码系统的思想,然而他们并没有给出一个实用的公钥密码系统。Diffie-Hellman的文章发表两年后,MIT的Ronald Rivist、Adi Shamir和Len Adlemar开发出了第一个公钥密码体制。RSA密码算法基于大整数因子分解的困难性,可以描述如下:第一步,生成两个大素数p和q。第二步,计算这两个素数的乘积n=pq。,第三步,计算小于n并且与n互素的整数的个数,即欧拉函数(n)=(p1)(q1)。第四步,选取一个随机数e,且1e(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=317=51,得出公钥n=51,e=13。(2) 计算(n)和d。(n)=(p1)(q1)=216=32。因为d=e1 mod (n),所以d=(k(n)+1)/e。其中,k是p1和q1的最大公约数。所以由此算出d=(232+1)/13=5,即解密钥是d=5。,(3) 加密和解密处理计算。假设Bob的公开密钥是e=13、n=51,Alice需要将明文“2”发送给Bob,则Alice首先用Bob的公开密钥加密明文,即C=Memod n=213mod 51=8192 mod 51=32然后,Bob收到Alice发来的密文C后,用自己的私钥d解密密文C,即 M=Cdmod n=325mod51=1024102432mod51=512mod51=2,RSA安全性保证要做到选取的素数p和q要足够大,使得给定了它们的乘积n后,在事先不知道p或q的情况下分解n,这在计算上是不可行的。因此,破译RSA密码体制基本上等价于分解n。基于安全性考虑,要求n的长度至少应为1024比特。然而从长期的安全性来看,n的长度至少应为2048比特,或者是616位的十进制数。,4.3.5 Diffie-Hellman密钥交换协议W. Deffie和M.E. Hellman于1976年首次提出密钥交换体制,通常简称Diffie-Hellman密钥交换协议。Diffie-Hellman密钥交换协议基于求解离散对数问题的困难性,即对于下述等式:Cd=M mod P其中,d称为模P的以C为底数的M的对数,在已知C和P的前提下,由d求M很容易,只相当于进行一次指数计算。而再由M反过来求d,则需要指数级次计算。随着P取得足够大,就能实现足够的安全强度。现在假设Alice和Bob使用Diffie-Hellman密钥交换协议,在一个不安全的信道上交换密钥,则其操作步骤如下:,第一步,Alice和Bob确定一个适当的素数p和整数a,并使a是p的原根,其中a和p可以公开。第二步,Alice秘密选取一个整数A,计算yA,并把发送给Bob。第三步,Bob秘密选取一个整数B,计算yB,并把发送给Alice。 yA和yB就是所说的Diffie-Hellman公开值。第四步,Alice和Bob双方分别计算出共享密钥,即Alice通过计算生成密钥K;Bob通过计算生成密钥K;,所以,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 数 字 签 名,数字签名(Digital Signature)是手写签名的电字模拟,是通过电子信息计算处理,产生的一段特殊字符串消息,该消息具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的。因而,通常将这种消息称为数字签名。与手写签名类似,数字签名至少应满足以下三个条件: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.1 SSLSSL(Secure Socket Layer)协议是介于应用层和TCP层之间的安全通信协议。其主要目的是当两个应用层之间相互通信时,使被传送之信息具有保密性及可靠性。如图4-6所示,SSL的工作原理是将应用层的信息加密或签证处理后再经TCP/IP网络送至对方,收方经验证鉴别无误后解密还原信息。,图4-6 SSL协议工作机制,SSL协议是一个分层协议,由两个子协议组成。较低层协议为SSL记录协议(SSL Record Protocol),位于传输层(如TCP)之上。SSL记录协议的用途是将各种不同的较高层协议(如HTTP或SSL握手协议)封装后再传送。另一层协议为SSL握手协议(SSL Handshake Protocol),它由三种协议组合而成,包含Handshake Protocol、Change Cipher Spec信息及Alert Protocol,其用途是为两个应用程序在开始传送或接收数据前,提供服务器和客户端间的相互认证,并相互协商决定双方通信使用的加密算法及加密密钥,如图4-7所示。,图4-7 SSL协议组成示意图,SSL协议提供安全通信,有三种服务:(1) 保密性通信。握手协议产生秘密密钥(secret key)后才开始加、解密数据。数据的加、解密使用对称式密码算法,例如DES、RC4等。(2) 点对点之间的身份认证。采用非对称式密码算法,例如RSA、DSS等。(3) 可靠性通信。信息传送时包含信息完整性检查,使用具密钥之信息认证码(keyed Message Authentication Code,简称MAC)。MAC的计算采用安全杂凑函数(Secure Hash function),例如SHA、MD5等。,SSL协议是个层次式的协议(layered protocol),于每一层次中其消息(message)内有许多可能包含消息长度、叙述、内容(content)等的字段。SSL记录协议(Record Protocol)数据处理过程如图4-8所示,其步骤如下:(1) SSL将数据(data)分割成可管理之区块长度。(2) 选择是否要将已分割数据压缩。(3) 加上消息认证码(MAC)。(4) 将数据加密,生成即将发送的消息。(5) 接收端将收到的消息解密、验证、解压缩,再重组后传送至较高层(例如应用层),即完成接收。,图4-8 SSL记录协议数据处理示意图,4.6.2 SSHSSH的中文翻译为“安全外壳”,它是基于公钥的安全应用协议,由SSH传输层协议、SSH用户认证协议和SSH连接协议这三个子协议组成,各子协议分工合作,实现加密、认证、完整性检查等多种安全服务。SSH最初是Finland的学术研究项目,1998年开始商业化。SSH的研究开发目的是以一种渐进的方式来增强网络安全,通过利用现代密码技术,增强网络中非安全的服务,例如telnet、rlogin、ftp等,实现服务器认证和用户认证及安全加密网络连接服务。目前,SSH已有两个版本:SSH1和SSH2,其中,SSH1因存在漏洞而被停用,现在用户使用的是SSH2。SSH2协议结构如图4-9所示。,图4-9 SSH2协议结构示意图,SSH传输层协议提供算法协商和密钥交换,并可实现服务器的认证,最终形成一个加密的安全连接,该安全连接提供完整性、保密性和压缩选项服务。SSH用户认证协议则利用传输层的服务来建立连接,使用传统的口令认证、公钥认证、主机认证等多种机制认证用户。SSH连接协议在前面两个协议的基础上,利用已建立的认证连接,并将其分解成多种不同的并发逻辑通道,支持注册会话隧道和TCP转发(TCP-forwarding),而且能为这些通道提供流控服务以及通道参数协商机制。,SSH的工作机制共分七个步骤,如图4-10所示。目前,用户为了认证服务器的公钥真实性,有三种方法可选择。第一种,用户直接随身携带含有服务器公钥的拷贝,在进行密钥交换协议前,读入到客户计算机。第二种,从公开信道下载服务器的公钥和它对应的指纹后,先通过电话验证服务器的公钥指纹的真实性,然后用Hash软件生成服务器的公钥新指纹,比较下载的指纹和新生成的指纹,若比较结果相同,则表明服务器的公钥是真实的,否则服务器的公钥是虚假的。第三种,通过PKI技术来验证服务器。,图4-10 SSH工作流程图,在实际的应用中,SSH在端口转发技术(如图4-11所示)基础上,能够支持远程登录(Telnet)、rsh、rlogin、文件传输(scp)等多种安全服务。SSH的软件包可从下载,详细用法可参考手册。Linux系统一般提供SSH服务,SSH的服务进程端口通常为22。,图4-11 SSH端口转发示意图,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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第22章 二次函数 单元测试(含答案)人教版(2024)数学九年级上 册
- 2025年中高端衡器合作协议书
- 校长招考试题及答案
- 2025年湖南省长沙市雅礼外国语学校中考数学模拟试卷(3月份)(含答案)
- 工程造价信息题库及答案
- 2025年心理与健康考试题及答案
- 2025年阜阳中考试卷及详细答案
- 2025年宁夏二建考试试题及答案
- 2025年分类考试笔试题目及答案
- 慢性伤口概述
- 2025年南昌市公安局新建分局公开招聘警务辅助人员【50人】考试备考试题及答案解析
- 房地产 中国高标仓物流市场报告2025年上半年
- 2025-2026学年湘鲁版(2024)小学英语四年级上册(全册)教学设计(附目录)
- (新教材)2025年秋期部编人教版三年级上册小学语文全册教案(教学设计)(新课标核心素养教案)
- 建设项目安全设施“三同时”(直接使用版)课件
- 第2章曲柄压力机
- 物资储备与物流方案
- 数学课堂教学技能训练
- 译林英语五年级上册教材分析
- 关于加强铁路企业年金管理的指导意见
- 资金筹集业务核算培训教材(共39页).ppt
评论
0/150
提交评论