您好,欢迎访问三七文档
第4章信息加密与鉴别技术4.1信息加密基础4.1.1信息加密的发展1.信息加密技术的发展2.基本概念4.1.2数据加密模型消息源加密器解密器消息宿密钥源系统分析者安全信道XXZZYYShannon模型X4.2传统加密技术4.2.1替代密码1.简单替代密码(1)凯撒密码凯撒密码就是简单替代密码的一个著名的例子,也称循环移位密码。这是一个古老的加密方法,当年凯撒大帝行军打仗时用这种方法进行通信,因此得名。凯撤密码加密的原理是把明文中所有的字母都用它右边的第k个字母替代,并认为Z后边又是A,这种映射关系表示为如下函数:F(a)=(a+k)modn其中:a表示明文字母n为字符集中字母个数k为密钥(2)ROT13ROT13是建立在UNIX系统上的简单加密程序。它是用字母表里a-m的字符来代替n-z,用n-z的字符来代替a-m字符。它的原理和凯撒密码非常类似。凯撒密码移了2位,而ROT13移了13位。ROT13通常作为简单的手段使得我们的电子邮件不能被直接识别和阅读,也不会被那些匹配程序用通常的方法直接找到。如“vybirlbh!”这个句子实际上是“iloveyou!”。ROT13字母对应关系:abcdefghi…xyznopqrstuv…klm2.同音替代密码3.多字母组替代密码4.多表替代密码这种加密的加密表是以字母表移位为基础把26个英文字母进行循环移位,排列在一起形成26*26的方阵。该方阵被称为Vigenere表。采用的算法为:f(a)=(a+Bi)modn(i=1,2,…,n)4.2.2换位密码1.列换位密码2.周期换位密码4.3对称加密技术4.3.1数据加密标准1.数据加密标准2.DES算法的原理初始变换64位的密文逆初始变换DES原理(1)64位明文64位的密钥加密变换16轮子密钥生成3.DES算法的实现步骤(1)初始变换(2)加密变换(3)最后换位4.DES算法的安全性国际数据加密算法IDEA(InternationalDataEncryptionAlgorithm)是瑞士联邦技术学院开发的一种面向数据分组块的数据加密标准。它使用128位密钥,每次加密一个64位的数据块。任何人都可以得到这个算法,其安全性与DES算法一样并不隐藏算法本身,而在于保存好密钥。IDEA算法被认为是当前最好的、最为安全的加密标准算法,可用于加密和解密。IDEA用了混乱和扩散等操作,主要有3种操作:异或、模加、模乘,容易用软件和硬件实现。IDEA算法运算时间与DES的速度一样快。IDEA算法的安全性有很大的提高,其密钥128位,在穷举的情况下,需要经过2128次加密才能恢复出密钥。对于每秒检查10亿个密钥的计算机,它将检测10年。4.3.2国际数据加密算法4.4非对称加密技术4.4.1公钥体制的原理公钥体制的特点是采用两个相关的密钥将加密与解密分开,其中一个密钥是公开的,称为公钥,用来加密;另一个密钥为用户专用,称为私钥,用于解密。其算法的重要特点是已知密码算法和加密密钥,求解密密钥在计算上是不可行的。1.密钥对的产生1)选择两个大素数p和q,计算:n=p*q欧拉函数值:Φ(n)=(p–1)*((q–1)2)然后随机选择加密密钥e,要求1eΦ(n)且(Φ(n),e)=1即:e与(p-1)*(q–1)互质。3)最后,利用Euclid算法计算解密密钥d,满足e*d=1modΦ(n)注:其中,n和d也要互素。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。2.加密时作如下计算:(公钥加密)C=P^emodn3.解密时作如下计算:(私钥解密)P=C^dmodn4.4.2RSA算法的基本思想4.4.3RSA算法的安全性RSA算法的安全性主要是基于大数分解困难的假设,因为是否等同于大数分解一直未能得到理论上的证明,不过目前RSA算法的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法,它经历了各种攻击,至今未被完全攻破。现在,人们已经能分解多个十进位的大素数,而且随着人类计算能力的不断提高,原来被认为不可能分解的大数已被成功分解,这对RSA算法的安全性构成了潜在的危险,对于大整数分解的威胁除了人类的计算能力外,还有来自分解算法的改进,因此,使用RSA算法时其密钥大小的选取就显得特别重要,一般情况下模数n选得大一些为好,但还要因具体适用情况而定。4.5密钥管理与交换4.5.1密钥分配1.常规加密密钥的分配(1)集中式密钥分配方案。在集中式密钥分配方案中,由一个中心节点负责密钥的产生并分配给通信双方,或者由一组节点组成层次结构负责密钥的产生并分配给通信的双方。在这种情况下,用户不需要保存大量的会话密钥,只需要保存中心节点的加密密钥,用于安全传送由中心节点产生的即将用于与第三方通信的会话密钥。这种方式的缺点是通信量大,同时需要较好的鉴别功能以鉴别中心节点和通信方。(2)分散式密钥分配方案使用密钥分配中心进行密钥分配要求密钥分配中心是可信任的,并且应该保护它免于被破坏。如果密钥分配中心被第三方破坏,那么所有依靠该密钥分配中心分配会话密钥进行通信方将不能进行正常的安全通信,如果密钥分配中心被第三方控制,那么所有依靠密钥分配中心分配会话密钥进行通信的所有通信方之间的通信信息将被这个入侵的第三方轻而易举地窃听到。如果把单个密钥分配中心分散成几个密钥分配中心,将会降低这种风险。更进一步,可以把几个密钥分配中心分散到所有的通信方,即每个通信方同时也是密钥分配中心,也就是说每个通信方自己保存同其他所有通信方的主密钥。2.公开加密密钥的分配3.利用公开密钥加密进行常规加密密钥的分配4.5.2密钥管理好的密钥管理系统应该是不依赖于人的因素的,通常要满足以下要求:(1)密钥难以被窃取。(2)在一定条件下窃取了密钥也没有用。(3)密钥有使用范围和时间的限制。(4)密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。在密钥的整个生命周期内,在密钥管理的各个阶段中都要遵循一定的原则。最小特权、最小设备原则和不影响正常工作等原则是应该遵守的。层次化管理是密钥管理常用方式,其中密钥需要动态产生;工作密钥由上层的加密密钥进行保护,最上层的密钥称为主密钥,是整个密钥管理系统的核心;多层密钥体制大大加强了密码系统的可靠性,因为用得最多的工作密钥常常更换,而高层密钥用的较少,使得破译者的难度增大。4.5.3密钥交换1.Diffie-Hellman密钥交换算法2.Diffie-Hellman算法的特征(1)仅当需要时才生成密钥,减小了将密钥存储很长一段时间而致使遭受攻击的机会。(2)除对全局参数的约定外,密钥交换不需要事先存在的基础结构。3.Diffie-Hellman密钥交换算法的缺点(1)没有提供双方身份的任何信息。(2)它是计算密集性的,因此容易遭受阻塞性攻击,即对手请求大量的密钥。(3)没办法防止重演攻击。(4)容易遭受中间人的攻击。4.6计算机网络加密技术4.6.1链路加密链路加密是目前常用的一种加密方法,通常用硬件在网络层以下的物理层和数据链路层中实现,它用于保护通信节点间的数据。4.6.2节点加密节点加密是链路加密的改进,其目的是克服链路加密在节点处易遭非法存取的缺点。在协议传输层上进行加密,是对源点和目标节点间传输的数据进行加密保护。4.6.3端-端加密网络层以上的加密,通常称为端-端加密。端-端加密是面向网络高层主体进行的加密,即在协议表示层上对传输的数据进行加密,而不对下层协议信息加密。协议信息以明文形式传输,用户数据在中间节点不需要加密。数字签名是通过一个单向函数对要传送的报文进行处理所得到的,用以认证报文来源并核实其是否发生变化的一个字符串。目前的数字签名是建立在公钥体制基础上的,是公用密钥加密技术的另一类应用。2.数字签名的原理(1)发送方对要发送的原始报文通过哈希算法生成一个固定长度的字符串,称为报文摘要,并确保不同的报文所得到的摘要不同,而相同的报文生成的摘要是惟一的。(2)发送方用自己的私有密钥对报文摘要进行加密来形成发送方的数字签名。(3)发送方将数字签名作为报文的附件和报文一起发送给接收方。(4)接收方首先从接到的原始报文中用同样的算法计算新的报文摘要,再用发送方的公钥对报文附件的数字签名进行解密,比较两个报文摘要,如果相同,接收方就可以确认该签是发送方的。4.7数字签名4.7.1数字签名的原理1.数字签名4.7.2数字签名的功能在传统的商业活动中,为了辨别往来文书的真伪通常都是采用亲笔签名或印章的手段来来实现认证、核准、生效的作用,以规定和明确契约双方的责任和义务。在电子商务中,传送的文件是通过数字签名证明当事人身份与数据真实性的。数字签名用来保证信息传输过程中信息的完整性和提供信息发送者的身份确认的功能。可以解决否认、伪造、篡改及冒充等问题,即发送者事后不能否认发送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者或接收者。4.8.1报文鉴别码报文鉴别码MAC(MessageAuthenticationCode)是用一个密钥生成的一个小的数据块追加在报文的后面。这种技术是假定通信的双方共享一个密钥K,当用户A向用户B发送报文M时,就根据此密钥和报文计算出报文鉴别码MAC=F(K,M),这里F就是加密算法的某一函数。此报文的报文鉴别码连同报文一起传送到用户B。用户B用收到的报文(不包括报文鉴别码),使用同样的密钥K,再计算一次报文鉴别码,并与收到的报文鉴别码相比较。如果二者一致,则鉴别此报文是真的。4.8报文鉴别技术4.8.2散列函数1.单向散列函数报文摘要MD(MessageDigest),将可变长度的报文M作为单向散列函数的输入,然后得出一个固定长度的标志H(M)。H(M)通常称为报文摘要MD。通常有三种方法来使用MD。2.MD5报文摘要算法算法大致的过程为:(1)填充。(2)附加长度值(3)初始化MD缓存器(4)处理报文分组(5)输出。即输出128位的报文摘要。身份认证指的是对用户身份的证实,用以识别合法或非法的用户,阻止非授权用户访问网络资源。一般来说,用户身份认证可通过三种基本方式或其组合方式来实现:(1)只有该主体了解的秘密,如口令、密钥等。(2)主体所持有的某个秘密信息(硬件),即用户必须持有合法的随身携带的物理介质,例如智能卡中存储用户的个人化参数,以及访问系统资源时必须要有的智能卡等。(3)主体具有独一无二的特征或能力,如指纹、声音、DNA图案、视网膜扫描等等,这种认证方案一般造价较高,多半适用于保密程度很高的场合。4.9身份认证4.9.1身份认证系统原理1.基于密码的认证2.基于智能卡的认证3.基于一次性口令的认证4.基于USBKey的认证5.基于生物特征的认证4.9.2身份认证的基本方法1.基于Kerberos的身份认证(1)Kerberos认证协议(2)Kerberos的工作原理阶段1:认证服务:客户C与认证服务器AS之间进行交互,向KDC请求与TGS通信时使用的凭据以及会话密钥的过程。1)客户在工作站上向AS发送包含有客户方用户名、服务器名字的消息。C->AS:C,tgs,2)AS验证C的真实性和访问权限后,随机生成一个加密密钥Kc,tgs作为下一阶段客户方与TGS通信时使用的会话密钥,构造一个包含客户方,会话密钥以及开始和生存期等信息的特殊凭据TGT,用TGS的密钥进行加密。AS将新的会话密钥和TGT用客户方的密钥Kc加密送回给客户方。AS->C:{Kc,tgs,{Tc,tgs}Ktgs}Kc4.9.3身份认证技术阶段2:授权凭据业务交换:客户C向TGS请求与最终的应用服务器进行通信所需要的凭据和会话密钥的过程。3)客户方向TGS发送包含一个访问TGS用的TGT,需要访问的服务器名,以及一个身份认证者的消息,即用会话密钥签名的客户方信息,以防止这些数据在传输过程中被篡改。C->TGS:{Ac}Kc,tgs,{Tc,tgs}Ktgs4)TGS将客户与服务器
本文标题:信息加密与鉴别技术
链接地址:https://www.777doc.com/doc-44572 .html