虚拟专用网(VPN)加密算法的分析与实现-毕业论文_第1页
虚拟专用网(VPN)加密算法的分析与实现-毕业论文_第2页
虚拟专用网(VPN)加密算法的分析与实现-毕业论文_第3页
虚拟专用网(VPN)加密算法的分析与实现-毕业论文_第4页
虚拟专用网(VPN)加密算法的分析与实现-毕业论文_第5页
免费预览已结束,剩余40页可下载查看

下载本文档

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

文档简介

厦门大学本科毕业论文本科毕业论文(科研训练、毕业设计)题 目:虚拟专用网(VPN)加密算法的分析与实现姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级:学 号:指导教师(校内): 职称: 年 月8虚拟专用网(VPN)加密算法的分析与实现摘要 随着网络技术的发展,网络的应用越来越广,对网络通信的可靠性和安全性的要求也越来越高。IPSec技术是为在IP层提供通信安全而制定的一套协议簇,对IP数据包进行封装,保证网内数据通信的安全、可靠。本文主要是对其用于IPSec的3DES算法进行分析与实现。3DES是DES加密算法的一种模式,DES是一种分组密码,综合运用了置换、代替、代数等多种运算,执行效率高,常用于加密保护静态存储和传输信道中的数据,为提高DES的安全性常采用3DES加密。关键词 VPN IPSec 3DESVPN Encryption Algorithm Analysis And ImplementAbstract With the development of technique of computer network, and increasingly wide application of computer network, credibility and security of network communication is becoming more and more important. IPsec is a set of protocols for safely communication in IP layer, and it provides confidentiality, integrity and authentication. Target of this papers is to analysis and implementation the 3DES algorithm that is used to IPsec.3DES is one of mode in the DES Encryption algorithm, DES is a block cipher Encryption Technique, it mainly uses displacement, replace etc algebra operation, and can encrypt and decrypt data efficiently. Its common use is to encrypt the data stored in disk or delivered in communication tunnel In order to enhance data security, 3DES, a DES based method, is often used.Key words VPN IPSec 3DES目录引言1第1章 VPN介绍31.1 VPN的构成31.2 VPN工作原理31.3 VPN的优势4第2章 VPN技术分类52.1 覆盖模型VPN技术52.1.1 二层隧道52.1.2 三层隧道62.2 对等模型VPN技术82.2.1 三层MPLS VPN (基于IP的MPLS VPN)82.2.2 二层MPLS VPN9第3章 加密算法概述123.1 常规密码体制123.2 公钥密码体制14第4章 DES算法介绍164.1 DES产生的历史背景164.2 DES算法174.2.1 DES的加密过程174.2.2 子密钥的生成214.2.3 DES的解密过程234.2.4 DES的安全性23第5章 3DES算法255.1 3DES算法介绍255.2 3DES算法实现265.3 程序结果27第6章 总结30致谢语31参考文献32ContentsIntroduction1Chapter 1 VPN Introduction31.1 The Form of VPN31.2 The Basic Principles of VPN31.3 The Advantage of VPN4Chapter 2 VPN Technology Categories52.1 Overlay VPN Technology52.1.1 Past Tunnel52.1.2 Three Tunnel62.2 Peer VPN Technoloty82.2.1 Three MPLS VPN (MPLS VPN Basted IP)82.2.2 Bilevel MPLS VPN9Chapter 3 Encryption Algorithm Overview123.1 Conventional Cryptosystem123.2 The Public-key System14Chapter 4 The DES Arithmetic Introduction164.1 The Historical Context of DES164.2 DES Arithmetic174.2.1 The Encryption Process of DES174.2.2 The Son Airtight Key of Born214.2.3 The Decryption Process of DES234.2.4 The Security of DES23Chapter 5 3DES Arithmetic255.1 3DES Arithmetic Introduction255.2 3DES Arithmetic Implement265.3 The Result of Programme27Chapter 6 Summary30Acknowledgement31References32引言VPN ( Virtual Private Network 虚拟专用网络)是一种网络技术,通常用于实现相关组织和个人跨开放、分布式的公用网络之间的安全通信。对于VPN中的所有主机来说,如同处于同一个网络之中,不会觉察到公共网络的存在。早些时候,相关组织和个人为了保证远程网络之间通信的安全,只能敷设或租借专用通信线路来连接远程网络,构成专用网络。这种方式在一定程度上保证了远程通信的安全,但线路租借和管理费用昂贵,同时专线技术存在不灵活和难扩展等缺点。随着帧中继和ATM等分组交换技术的大规模出现,基于这些分组技术的VPN开始逐步取代专用网络。同专用网络方式相比,基于帧中继和ATM的VPN成本较低,但连接不灵活和不易扩展的缺点仍然存在,同时在不同运营商的网络之间互连也存在问题,还是不能满足用户的需求1。IP 技术和IP业务的发展,基于IP技术的VPN开始出现并得到应用。其实质是利用共享的互联网设施,模拟“专用”广域网,利用互联网广泛的网络覆盖和低廉的接入费用,结合安全隧道、身份认证和加解密等技术,克服互联网内在的不安全性,实现与专用网络相媲美的安全性能。VPN 的类型主要分为三种:远程访问虚拟网(Access VPN)、企业内部虚拟网(Internet VPN)和企业扩展虚拟网(Extranet VPN)。远程访问虚拟网主要通过公用网络与企业网建立专用的网络连接,使出差员工等远端用户能够方便及时的访问。企业内部虚拟网主要是通过公用网络将企业的各个分布点互联。对于内部用户如同在同一个点上。企业扩展虚拟网是指利用VPN将企业网络扩展至合作伙伴与客户。VPN技术非常复杂,它涉及到通信技术、密码技术和现代认证技术,是一项交叉科学。目前,VPN主要包含两种技术:隧道技术与安全技术,而VPN隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKS v5。目前,市场上大部分VPN采用将L2TP和IPSec结合起来: 用L2TP作为隧道协议,用IPSec协议保护数据。IPSec协议是一个范围广泛、开放的VPN安全协议,工作在OSI模型中的第三层网络层。它提供所有在网络层上的数据保护和透明的安全通信。IPSec协议可以设置成在两种模式下运行:一种是隧道模式,一种是传输模式。在隧道模式下,IPSec把IPv4数据包封装在安全的IP帧中。传输模式是为了保护端到端的安全性,不会隐藏路由信息。1999年底,IETF安全工作组完成了IPSec的扩展,在IPSec协议中加上了ISAKMP协议,其中还包括密钥分配协议IKE和Oakley。IPSec通过ISAKMP/IKE/Oakley 协商确定几种可选的数据加密算法,如DES 、3DES等。DES密钥长度为56位,容易被破译,3DES使用三重加密增加了安全性。3DES是DES加密算法的一种模式,它使用3条64位的密钥对数据进行三次加密,比起最初的DES,3DES更为安全。本文主要是对其用于IPSec的3DES算法进行分析与实现。第1章 VPN介绍本章主要介绍VPN的构成、工作原理、优势。1.1 VPN的构成一个典型VPN 的组成部分如图1-1所示。VPN 服务器:接受来自VPN 客户机的连接请求,对客户机进行身份验证2。VPN 客户机:发出连接请求的设备,可以是终端计算机,也可以是路由器。隧道:由隧道协议形成的数据传输通道,在其中传输的数据必须经过封装。VPN 连接:在VPN 连接中,数据必须经过加密。隧道协议:封装数据、管理隧道的通信标准。传输数据:经过封装、加密后在隧道上传输的数据。公共网络:如Internet,也可以是其他共享型网络。图1-1 VPN的组成部分1.2 VPN工作原理虚拟专用网络(VPN)采用了一种称之为隧道的技术,使得企业网内一个局域网的数据透明地穿过公用网到达另一个局域网3。其基本过程是在原局域网与公用网的接口处将局域网发送的数据作为负载封装在一种可以在公用网上传输的数据格式中,在目的局域网与公用网的接口处将公用网的数据解封装后,取出负载在目的局域网传输。由于封装与解封装只在两个接口处由设备按照隧道协议配置进行,在此过程中,被封装的数据包在隧道的两个端点之间通过公共互联网络进行路邮,而被封装的数据包在公共互联网络上传递时所经过的逻辑路径就被称为隧道。1.3 VPN的优势(1) 安全保障通过提供身份认证、访问控制、数据加密及数据完整来保障其安全可靠性。(2) 服务质量保证(QoS) QoS 指包在一个或多个网络的传输过程中所表现的各种性能的具体描述,如丢包率、延迟等。VPN 根据用户需求为用户提供不同等级的服务质量保证,为重要数据提供可靠的带宽。VPN 与一些网络技术(如IPSec 、MPLS)的结合能够为需要服务质量保证的用户提供不同程度的QoS 保证。(3) 可扩充性和灵活性VPN支持通过Internet的任何类型数据流,方便增加新的结点,支持多种类型的传输媒介,可满足同时传输语音、图像和数据等新应用对高质量传输及带宽增加的需求。(4) 可管理性在VPN管理方面,VPN 要求用户将管理功能从内部网络无缝地延伸到公网,主要包括安全管理、设备管理、配置管理、访问控制列表管理、QoS 管理等。管理的目标是:减少网络风险、增强高扩展性、经济性、高可靠性等优点。第2章 VPN技术分类根据VPN的实现技术,主要分为覆盖型(Overlay) VPN和对等型( Peer)VPN。覆盖型VPN从实现技术看主要包括二层VPN技术和三层VPN技术。其中二层VPN技术主要包括PPTP, L2F, L2TP等技术,而三层VPN技术主要包括GRE, IPSec等技术4。对等型VPN包括三层MPLS VPN、二层MPLS VPN等技术,如图2-1所示。图2-1 VPN的分类2.1 覆盖模型VPN技术当前大多数的VPN产品属于覆盖模型VPN。覆盖型VPN主要通过在通信的两端建立安全隧道,从而保证数据在隧道里传输的安全性。隧道技术是覆盖模型VPN的基本技术,也是它的关键技术,它类似于点对点连接技术,在公用网建立一条数据通道(隧道),让数据包通过这条隧道传输。隧道技术可以支持各种形式的接入,如拨号方式接入、CABLE Modem、xD2SL以及ISDN、DDN专线、无线接入等。可以说覆盖模型是基于隧道的VPN,它包括二层隧道和三层隧道。2.1.1 二层隧道二层隧道是在远程接入VPN的隧道终端执行点对点数据链连接。二层隧道技术主要有Microsoft公司支持的点对点隧道协议PPTP (Point-to-Point Tunneling Protocol), Cisco公司提出并倡导的L2F以及IETF建议的第二层隧道协议L2TP (Layer 2 Tunneling Protocol) 。PPTP通过网络层的PPP( Point-to-Point Protocol)和GRE (Generic Routing Encapsulation)对从终端到远程接入服务器的认证和加密访问的数据包进行双重封装。L2TP通过在各种网络(如IP,ATM)之间创建二层隧道,也能够提供认证功能。L2TP集中了PPTP和L2F的优点,成为最主要的二层隧道技术。L2TP可以让用户从客户端或接入服务器端发起VPN连接。L2TP定义了利用公共网络设施封装传输链路层PPP帧的方法。L2TP的好处就在于支持多种协议,用户可以保留原来的IPX,App leTalk等协议或企业原有的IP地址,企业在原来非IP网上的投资不致于浪费。在安全性考虑上,L2TP仅仅定义了控制包的加密传输方式,对传输中的数据并不加密,因此, L2TP并不能满足用户对安全性的需要。如果需要安全的VPN,则依然需要三层隧道所用的IPSec。2.1.2 三层隧道三层隧道提供基于IP的虚拟连接。三层隧道技术包括GRE,IPSec。GRE规定了如何用一种网络协议去封装另一种网络协议的方法5。GRE的隧道由两端的源IP地址和目的IP地址来定义,允许用户使用IP包封装IP,IPX,App leTalk包,并支持全部的路由协议(如RIP2,OSPF等) 。通过GRE,用户可以利用公共IP网络连接IPX网络、App leTalk网络,还可以使用保留地址进行网络互连,或者对公网隐藏企业网的IP地址。但GRE只提供了数据包的封装,并没有加密功能来防止网络侦听和攻击,所在实际环境中经常与IPSec一起使用,由IPSec提供用户数据的加密,从而给用户提供更好的安全性。正常IP包在隧道终端之间路由,终端由任意居间网络拓扑隔离的。通过隧道的包被捆绑在IETF定义的头中,保证了信息的完整性和机密性。现在这些功能已由IPSec ( Internet Protocol Security)协议簇完成。IPSec是一个第三层VPN协议标准,它把几种安全技术结合在一起形成一个较为完整的体系。在第二层隧道协议只能保证在隧道发生端及终止端进行认证及加密,而隧道在公网的传输过程中并不能完全保证安全。而IPSec加密技术则是在隧道外面再封装,保证了隧道在传输过程中的安全性。IPSec由IP认证头AH (Authentication Header) 、IP安全载荷封载ESP (Encapsulated Security Payload)和密钥管理协议组成。它提供三个基本的能力:认证、数据的完整性和机密性、安全通信。(1)认证,用于对主机和端点进行身份鉴别。(2)数据的完整性和机密性检查,用于保证数据在通过网络传输时没有被修改。(3)安全通信,加密IP地址和数据以保证其安全通信。它的核心是SA ( Security Association )的概念,它指明安全服务应该被用在传输中。网络密钥交换协议IKE ( Internet Key Exchange )使两个IPSec实体之间能够进行安全连接SA的自动协商。IPSec协议是一个范围广泛、开放的虚拟专用网安全协议。IPSec适应向IPv6迁移,它提供所有在网络层上的数据保护,提供透明的安全通信。但万物都有利弊,它的优缺点如下:优点是它定义了一套用于认证、保护私有性和完整性的标准协议。IPSec用来在多个防火墙和服务器之间提供安全性。IPSec可确保运行在TCP / IP协议上的VPNs之间的互操作性。IPSec最适合可信的LAN到LAN之间的虚拟专用网,即内部网虚拟专用网。缺点是IPSec在客户机/服务器模式下实现有一些问题,在实际应用中,需要公钥来完成,而且还会造成性能的下降。IPSec需要已知范围的IP地址或固定范围的IP地址,因此在动态分配IP地址时不太适合于IPSec。除了TCP / IP协议外,IPSec不支持其他协议。除了包过滤之外,它没有指定其他访问控制方法。虽然二层隧道和三层隧道在建立安全隧道的协议方面存在很大的差别,但是它们在结构特征上是一致的,它们都是在双方之间建立安全通道。可以将各个VPN站点之间连接起来的隧道网络称为虚拟骨干网。虚拟骨干网提供了站点之间的安全连通。下面通过图2-2来说明覆盖模型VPN技术的原理和特点。图2-2 覆盖模型VPN实例在这个例子中共有两个VPN, 分别为VPNA 和VPNB。VPNA 和VPNB 分别有三个站点,分别为站点1、站点2、站点3,站点之间相互用隧道相连。覆盖模型VPN技术原理简单,实现起来也相对容易,它的技术也已经比较成熟,但是覆盖模型VPN的一些缺点也不容忽视:(1)由于覆盖模型VPN 要求VPN站点之间建立全网结构,当VPN的站点数比较多的时候就会出现管理困难、效率低等问题。(2)由于每增加一个站点,就要与其他所有站点建立连接,使得VPN的可扩展性差。2.2 对等模型VPN技术为了克服覆盖模型VPN的缺点,发展出对等模型VPN6。对等型VPN是通过限制路由信息的传播来达到数据安全性的VPN技术,实现网络资源逻辑划分和安全隔离。可以说对等模型是基于网络的VPN。其基本思想是路由流确定了数据流,限制了路由流就限制了数据流。对等模型是基于第三层的无连接结构提出的一种高度可扩展的VPN解决方案,是由网络服务提供商配置部分甚至全部VPN的功能。一个客户端仅需与一个路由器对等。这个路由器放在服务提供商所在的地方,它与同一个VPN里所有其他的VPN终端或客户服务器相独立。实际上,对等模型VPN最优越的地方是基于多协议标记交换技术MPLS(Multi-Protocol Label Switching)。MPLS正作为下一代网络,尤其是光网和高速骨干网的核心技术快速发展。MPLS在本质上是一种混合路由/转发策略, IP包在第二层与第三层之间进行交换,通过更好的流量工程策略和QoS, CoS。MPLS主要重点在改善网络的扩展性上。详细来讲,MPLS结构的本质在于采用一系列基于多层包标记结构对流量工程的约束,动态地在IP网络创建转发隧道或者标记交换路径(Label Switched Paths, LSPs)的能力。这些约束包括指定路径、带宽、可接受的网络资源和QoS。基于MPLS的VPN,不像传统的VPN依赖封装和加密机制,而是利用巧妙的转发和包标记来隔离客户信息并创建安全信道。MPLSVPN包含的所有能力都能在MPLS骨干网中体现,并且描绘出一种在IP网络上构造高性能VPN的全新方法。对于使用基于MPLS的VPN,有许多不同的有争议的提议,都有各自的特色和优缺点。首先,MPLS VPN经常被看作基于IP的MPLS VPN。允许网络通过传递目标IP专用连接,配置可扩展第三层IP VPN ( IP Layer 3 VPN)的中枢设备到VPN指定的用户组,并支持QoS。其次,MPLS也能作为汇聚层网络结构实现。另外将IP封装到MPLS包中,像帧中继、ATM和以太网那样。这个应用对终端用户是透明的,这将意味着服务提供商能够在支持先前网络设备(如虚电路、点对点帧中继和扩展以太网)的条件下,基于MPLS内核进行流水线操作。网络术语中这被称为第二层MPLS VPN。2.2.1 三层MPLS VPN (基于IP的MPLS VPN)三层MPLS VPN基于IETF RFC2547bis标准,由于路由协议和信令协议的限制,目前只支持纯IP的业务。它通过利用边界网关协议BGP (Border Gateway Protocol)的路由分发控制能力,支持多种VPN拓扑结构。进一步说就是当BGP在骨干网上进行VPN的路由分配时,MPLS就开始转发包。利用对用户IPv4地址前缀进行编码,MPLS VPN 能在各种不同的ISPs和AS (Autonomous Systems)之间的Internet的核心路由器上实现。一个MPLS网络可以支持成千上万个 VPN。每个MPLSVPN网络的内部是由供应商(P)设备组成,这些设备构成了MPLS核心,且不直接与CE (Customer Edge)路由器相连。供应商边界路由器PE ( Provider Edge)环绕着核心设备P实现MPLSVPN网络的VPN功能。P和PE路由器称为标记交换路由器LSR (Label Switch Routers) 。LSR设备基于标记来交换数据包。VPN终端路由器被称为客户边缘路由器CE。因此,一个VPN由一组CE路由器连接到MPLS骨干网上的PE路由器所组成。只有PE路由器意识到VPN的存在,而CE路由器根本没意识到这个潜在的网络,只感觉到它们正通过一个真正的专用网连接。每个RFC2547MPLS VPN对应一个VPN路由/转发实例VRF (VPN Routing/Forwarding instance)。一个VRF定义了与PE路由器相连的客户站点的VPN成员资格。一个VRF数据包括IP路由表,一个派生的Cisco Express Forwarding (CEF)表,一套使用转发表的接口,一套控制路由表中信息的规则和路由协议参数。一个站点可以且仅能与一个VRF相联系。客户站点的VRF中的数据包含了其所在的VPN中所有的可能连到该站点的路由。对于每个VRF,数据包转发信息存储在IP路由表和CEF表中。每个VRF维护一个单独的路由表和CEF表。这些表可以防止转发信息被传输到VPN之外,同时也能阻止VPN之外的数据包转发到VPN内的路由器中。这个机制使得VPN具有安全性。在每个VPN内部,可以建立任何连接:每个站点可以直接发送IP数据包到VPN中另外一个站点,无需穿越中心站点。MPLSVPN中,客户站点运行的是通常的IP协议,它们并不需要运行MPLS, IPSec或者其他特殊的VPN功能。一个路由识别器RD (Route Distinguisher) 可以识别每一个单独的VPN, RD利用不同VPNs包含的IP地址前缀来区分它们。路由识别器在PE路由器中被配置,是设置VPN站点工作的一部分,它并不在客户设备上进行配置,对于客户来说是透明的。当CE路由器执行正常路由时, PE路由器正负责着MPLS LSPs的建立和拆除。PE的输入接口决定处理包时所用的转发表,因为PE的输入接口对应独立的VPN。2.2.2 二层MPLS VPN三层MPLSVPN仅仅支持VPN上的IP传输,然而在IP骨干网上仍需许多其他的协议(如IPX和App leTalk)7。在MPLS骨干网上传输普通二层协议的思想近来已被提出,这就是所谓二层MPLSVPN,它采用Any Transport over MPLS(AToM)的技术。AToM是一种MPLS网络中封装和传输二层帧的结构,完全支持二层设备如ATM VPN。二层MPLS VPN可在现有的MPLS网络中为用户提供私有的二层网络服务。二层MPLS VPN将网络的管理职责分离,服务提供商的PE设备仅负责用户CE设备之间二层的连接和转发,而三层以上的功能由用户的CE设备实现,降低了服务提供商的管理开销。对于二层MPLS VPN,VPN内部的路由信息取决于用户自己的配置和规划,具备非常突出的私有化特征。对于服务提供商来说,无论是PE设备还是P设备,都不需要参与三层处理,也不需要保留任何VPN内部的路由信息,可使二层MPLSVPN与用户的三层网络协议无关,但要求同一个VPN中PE和CE设备之间的链路层保持一致。二层MPLS VPN中的专线业务和传统的基于ATM /FR的二层VPN在实现原理上一致,这使得现有的二层VPN业务可以很方便地切换到MPLS网络中。二层MPLS VPN业务在网络中采用双层标签封装,外层标签为标志PE间共享隧道,内层标签标志CE 间的专有连接。不同VPN的二层连接在PE设备之间可以复用相同的隧道LSP,内层标签直接在PE设备之间通告,在VPN配置和扩展非常容易。二层MPLS VPN技术可以实现帧中继、ATM、以太网、以太网VLAN、Cisco HDLC、PPP、SONET/SDH链路仿真服务以及多种二层链路技术的互通,运营商和客户之间的责任明确,运营模式清晰,是迈向IP /MPLS全业务网的关键一步,它可以实现真正意义上的多网合一。二层MPLS VPN的特性,也使其可以很容易地实现目前困扰三层MPLS VPN的很多技术,如网络的组播。可以说,二层MPLS VPN的出现,是MPLS VPN技术的一个新亮点,随着其协议的成熟和标准的确定,二层MPLS VPN将成为MPLS VPN的主流技术。二层MPLS VPN面临的最大问题就是协议不成熟,没有标准化。目前设备厂家间解决方案种类繁多,大多数的设备只实现了协议定义的基本功能,还不具备全业务支持的能力,各种解决方案之间也无法实现互通。二层MPLS VPN协议本身的不完善也是制约其应用的一个重要因素,目前大多数的二层VPN的配置过程都需要进行大量的手工配置,不适合组建大规模的网络。图2-3是一个基于服务提供商骨干网的MPLSVPN实例。图2-3 基于服务提供商骨干网的MPLS VPN对等模型使得VPN服务提供商可以提供规模非常大的VPN服务(每一个服务提供商提供几千到几百万个VPN) 。它存在如下优点:(1)配置非常简单。因为客户路由器(CE)只与一台提供商路由器( PE)交换路由信息,所以技术人员只需这一台提供商路由器的路由信息,而不用配置其他VPN站点相关信息。(2)容易实现QoS。对等模型使得更容易配置彼此之间的带宽。(3)更具可扩展性。因为新加入一个站点,不需要与其他站点建立连接,不存在覆盖模型的扩展问题。第3章 加密算法概述一般的数据加密模型如图3-1所示。明文X用加密算法和加密密钥进行加密得到密文8。在传送过程中可能出现密文截获者,截获者又称攻入者或入侵者。到了收端,利用解密算法和解密密钥解出明文。图3-1 一般的数据加密模型3.1 常规密码体制所谓常规密钥密码体制是指加密密钥与解密密钥相同的密码体制,常规密码体制又称对称密码体制。在早期的常规密钥密码体制中,有两种常用的密码,即代替密码和置换密码。代替密码是指明文中的每一个字母都用另一个字母替换,从而得到密文。代替密码中的凯撒密码采用的是把明文中的每个字母分别向后移位,从而得到密文。由于26个英文字母中各个字母出现的频率早已有人做过统计,所以根据字母频率表很容易对这种代替密码进行破译。目前代替密码只是作为复杂的编码过程中的一个中间步骤。置换密码则是按照某一规则重新排列明文中的比特或字符的顺序。例如,以CIPHER这6个字母作为密钥,将明文以6个字符为一组写在密钥下,如下图3-2所示:图3-2 字母表然后按密钥中的字母在字母表中的排列顺序按列抄出密文,得abacnuaiotettgfksr。接收者按密钥中的字母顺序按列写下按行读出,即得明文。这种密码也容易破译,一般也只作为加密过程的中间步骤。从得到的密文序列的结构来划分,则有序列密码和分组密钥两种不同的密钥体制。序列密码体制又叫流密码体制,是将明文看作连续不断的比特流(或字符流),并且用密钥序列中的第个元素对明文中的进行加密,即 (3-1)图3-3给出了序列密码体制的框图。图3-3 序列密码体制开始工作时,种子对密码序列产生器进行初始化。和均为1比特(或均为1个字符),并按照模2加(即异或)进行运算,得出 (3-2)在收端,对的解密算法为: (3-3)序列密码的安全性完全取决于密钥的随机性。如果密码是真正随机的,则这种体制就是理论上不可破的,这也称为一次一密乱码本体制。一次一密乱码本体制所需的密钥量大得惊人,实际中很难满足。实际中常使用伪随机序列作为密钥序列。这里关键是序列的周期要足够长,并且序列要有很好的随机性。另一种密码体制与序列密码不同。它将明文划分成固定的比特的数据组,然后以组为单位,在密钥控制下进行一系列的线性或非线性的变化而得到密文。这就是分组密码体制。图3-4为分组密码体制的原理框图。图3-4 分组密码体制分组密码一次变换一组数据。当给定一个密钥后,分组密码总是把明文分组变换成同样长度的一个密文分组。若明文分组相同,那么密文分组也相同。分组密码的一个重要优点是不需要同步,因而在分组交换网中有着广泛的应用。最典型的分组密码是数据加密标准(DES)和国际数据加密算法(IDEA)。常规密码体制的优点是有很强的保密强度,且经受住了时间的检验和攻击,但其密钥必须通过安全的途径传送。因此,其密钥管理成为系统安全的重要因素。3.2 公钥密码体制公开密钥密码体制的概念是由Diffie与Hellman于1976年提出的。所谓公开密钥密码体制是指加密密码与解密密钥不同,由加密密钥推导解密密钥在计算上是不可行的密码体制,公钥密码体制又叫非对称密码体制。公钥密码体制产生的主要原因有两个:一是由于常规密码体制的密钥分配问题;二是由于对数字签名的需求。我们知道在常规密码体制中,通信双方必须使用相同的密钥。因此,在通信前双方必须持有相同的密钥。怎样才能做到这一点呢?一是事先约定,另一种是用信使来传送。在高度自动化的大型计算机网络中,用信使来传送密钥显然是不合适的。如果事先约定,若有个人互相通信,每个人必须保存另外个人的密钥,网络中就会出现 个密钥,这给密钥的管理和更换都带来了极大的不便。另外,如果两个从未见过面的入要进行通信,那么他们必须事先送一个密钥来,这显然有些过分。对数字签名的强烈需要也是产生公钥密码体制的一个原因。在公钥密码体制中,加密密钥(即公开密钥)PK是公开的,而解密密钥(即秘密密钥SK)是需要保密的。加密算法和解密算法是分开的。虽然SK是由PK决定的,但却不能根据PK计算出SK,公钥密码体制的特点如下:(1)用加密密钥PK对明文加密后,再用解密密钥SK解密,即可恢复出明文: (3-4)此外,加密和解密运算可以对调。(2)加密密钥不能用来解密,即 (3-5)(3)在计算机上可以很容易地产生成对的PK和SK。(4)从已知的PK不可能推导出SK。或者说,从PK到SK是“计算上不可能的”。公钥加密系统不存在对称加密系统中密钥的分配和保存问题,对于具有个用户的网络,仅需要2个密钥。公钥加密系统除了用于数据加密外,还可用于数字签名。公钥加密系统可提供以下功能:机密性(Confidentiality):保证非授权人员不能非法获取信息。这可以通过数据加密来实现。确认(Authentication):保证对方属于所声称的实体。这可以通过数字签名来实现。数据完整性(Data integrity):保证信息内容不被篡改,入侵者不可能用假消息代替合法消息。这可用数字签名来保证。不可抵赖性(Nonrepudiation):发送者不能事后否认他发送过消息,消息的接收者可以向中立的第三方证实发送者确实发送了消息。这也是通过数字签名来实现的。可见公钥加密系统满足信息安全的所有主要目标。目前已有多种公钥加密方法,它们的安全性都是基于复杂的数学难题。对某种数学难题,利用通用的算法计算出密钥的时间越长,基于这一数学难题的公钥加密系统就被认为越安全。根据所基于的数学难题来分类,以下三类系统目前被国际公认为是安全和有效的:整数因子分解系统(代表性的有RSA);离散对数系统(代表性的有DSA);椭圆曲线离散对数系统(ECC)。第4章 DES算法介绍本章介绍了DES的历史背景和具体的算法过程。4.1 DES产生的历史背景DES的出现是密码技术史上的一个重要事件,它是密码技术史上第一个广泛应用于商用数据保密的、公开的密码算法,它开创了公开密码算法的先例9。DES是美国国家标准局NBS(后改名为美国国家标准技术研究所(NIST)为了满足计算机通信网络的发展对安全保密的需求,实现系统同一水平的安全性和兼容性,降低数据加密产品的生产成本,推广使用密码算法而公开征集的一种用政府部门及民间进行计算机数据加密的密码算法。NBS最初于1973年5月13日向社会公开发起征集。在NBS发布征集公告之后,公众对密码标准表现出了极大的兴趣,但提交的算法都相差较远。1974年8月27日,NBS又发表了第二次征集,最终NBS选中了IBM公司提出的一种加密算法(该算法是IBM在1970年初开发的一个称为Lucifer算法发展起来的)。在美国国家安全局(NSA)的帮助下,NBS对算法进行详细了解后,尽管当时争议很多,DES还是于1976年11月23日被采用作为联邦信息处理标准,并授权在非密级的政府通信中使用。该标准的正式文本FIPS PUB46(DES)于1977年1月15日公布,其他标准文件FIPS PUB81(DES的工作方式)、FIPS PUB74(DES的实现和使用指南)、FIPS PUB112(DES口令加密)、FIPS PUB113(DES计算机数据鉴别)等联邦信息处理标准相继于20世纪80年代公布。当时预计DES可使用1015年,NBS大约每5年就要对DES进行审查和更新。1981年美国标准研究所(ANSI)批准DES作为私营部门的数据加密标准,称其为DEA,有关文件ANSIX3.92(DEA)、ANSIX3.106(DEA工作方式)、ANSIX3.105(网络加密标准)等也相继公布。ISO(国际标准化组织)将DES改名为DEA-1准备作为国际标准。但是1997年ISO的信息处理技术委员会(TC97)决定接受密码算法公开注册,而不再进行密码算法的标准化工作,这样DES最终没能成为国际标准。DES公布和正式实施后,虽然有不少用户和专家对它的设计问题提出进质疑和反对,但仍被迅速推广使用,美国的许多专用系统纷纷宣布采用DES作为其信息处理安全标准。如美国的海军系统、金融系统等,计算机厂商也大量生产以DES为基本算法的专用机、芯片、软件,形成了一个以DES为核心的数据安全加密市场。虽然DES在最新规定使用期为10年,但出于种种原因,DES在这10年内没有受到什么威胁。DES分别在1983年、1987年、1992年、1994年都通过了安全性评估,作为信息安全加密处理标准一直使用到1998年(以后不再使用),这样DES作为数据加密标准的使用期限已有20余年了。但是在近年来,对DES的一些先天性不足(其密钥过短,只有56位,也是导致其备受批评的重要原因),对DES的成功攻击屡见报道。如1991年1月,RSA数据安全公司宣布该公司所发起的对56位DES的攻击已由一个称为电子边境基金会的(EFF)的组织在22小时15分钟内完成(该攻击通过互联网上的100 000台计算机合作完成)。在这种情况下,大家对于替换DES的要求日益增长,最终NIST于1997年发布公告,征集新的数据加密标准为联邦信息处理标准以代替DES。2000年10月,公布了新的数据加密标准AES。尽管如此,DES仍然具有重要的参考价值,它对于掌握分组密码的基本理论与设计思想具有重要意义。4.2 DES算法4.2.1 DES的加密过程在DES中数据以64位分组进行加密,密钥长度为56位10。加密算法经过一第列的步骤把64位的输入变换成64位的输出,解密过程使用同样的步骤和同样的密钥。DES加密过程如图4-1所示。其他加密方案一样,加密函数有两个输入:待加密的明文和密钥。在这里明文的长度为64位,而密钥的长度为56位(实际上这个函数要求一个64位的密钥作为输入,然而其中用到的只有56位,另外8位可以用做奇偶检验或完全随意设置)。 64位的明文进行初始置换后,其左半边32位和右半边32位分别记为L0和R0,然后再经过16次的迭代操作。如果用和分别代表第次迭代结果的左半边和右半边(各32位),则从图4-1可以看出: (4-1) (4-2)式中,是48位的密钥(这是从原来的64位密钥经过若干次变换而得到的)。从图4-1可以看出:在每次迭代中要进行函数变换、异或运算以及左右半边交换。但在最后一次迭代之后,左右半边没有交换,这是为了使算法既能加密又能解密。注意,最后一次的变换是的逆变换,其输入为,输出为。图4-1 DES的加密过程(1) DES的关键函数函数是一个非常复杂的变换,如图4-2所示。先将32位的根据图4-4(c)进行变换,扩展成48位,记为。它与48位的逐位异或,所得的48位结果顺序地划分为8组6位长的组,然后将6位长的组经“变换”的替代转换为长为4位的组(也是一个复杂的函数)。这里要用到8个不同的函数()。图4-2 函数的实现过程假定盒的6个输入端为,在表(表1)中行,列的元素便是盒的输出。将所得到的8个4位长的按顺序排好,再进行一次置换,即得出32位的函数。图4-3 DES的S盒子的定义(2) DES的置换在DES的加密过程中一共使用了4个置换函数,如图4-4所示。图4-4 DES的4个置换函数4.2.2 子密钥的生成图4-5给出了子密钥的产生过程。图4-5 子密钥的产生过程是对56位的输入进行重新排列,输出顺序如图4-6所示。图4-6 排列选择和分别是经操作后输出结果的左28位和右28位。是循环左移,左移次数如图4-7所示。图4-7 左移位数的取值是从56位输出中选出48位,如图4-8所示图4-8 排列选择4.2.3 DES的解密过程DES的解密过程和加密过程完全类似,只不过将第一圈用第16个子密钥,第2圈用,依次类推。4.2.4 DES的安全性自从DES被提出以来人们就一直担心DES的安全强度。这种担心大体上涉及到两个方面:密钥大小和算法的性质11。(1)56位密钥的使用DES密钥长度为56位,容易被破译。但为了提高DES的安全性,并充分利用现有的软件和硬件资源,人们已设计开发了DES的多种变异版本,如多重DES(多重DES就是使用多个密钥得用DES对明文进行多次加密。使用多重DES可以增加密钥量,从而大大提高对密钥穷举搜索的攻击能力)、DES-S盒变异、DESX、GDES、RDES、DES和CRYPT(3)(是应用在UNIX系统上的DES变种)等。(2)DES算法的性质对DES的另一项担心是利用DES的特性对它进行密码分析的可能性。这种担心主要集中在用于每次迭代的8个S盒子上。因为这些盒子的设计标准(其实也就是整个算法的设计标准)并未公开,人们怀疑这些盒子的设计可能隐藏着一种可以使得了解S盒子弱点的敌对方成功地进行密码分析的隐患。这种可能性使人心神不安,而且这么多年以来的确有不少S盒子的规律性以及未曾料到的行为被发现。尽管如此,至今还没有人成功地发现S盒子想像中的致命缺陷,至少没有人公开承认这样一个发现。第5章 3DES算法本章介绍了3DES算法及其实现。5.1 3DES算法介绍3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形12。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设和代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,3DES加密过程为: (5-1)3DES解密过程为: (5-2)具体的加/解密过程如图5-1所示。图5-1 3DES加/解密过程、决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,可以等于。在这种情况下,密钥的有效长度为112位。5.2 3DES算法实现下面图5-2给出3DES加/解密具体的流程图。图5-2 3DES加/解密流程图下面主要说明3DES加解密过程中对数据的处理。由于DES加密以8个字节为单位进行处理,因此在对信息明文进行处理时,必须先分成8个字节的明文块进行加密,由于明文的大小不定,不能确保都是8字节的倍数,所以可能需要在明文块中添加适当的字节。为了使处理过程具有通用性,本文采用如图5-3所示的方法添加字节:当信息不是8的倍数的时候,计算需要添加的字节数设为

温馨提示

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

评论

0/150

提交评论