《基于安全FTP的计算机加密通信系统的研究与实现.pdf》由会员分享,可在线阅读,更多相关《基于安全FTP的计算机加密通信系统的研究与实现.pdf(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、代号1 0 7 0 1分类号T N 9 1 8。8学号0 4 0 9 3 2 0 5 3 1密级公开蠡簧它手辩镀充警硕士学位论文题(中、英文)目基于安全F T P 的计算机加密通信系统的研究与实现雎曼县地一删!坚塑!婴9 虬拿虹9 旦旦f 墼里】璺丝¥皿9 建Q 婴粤煦罩C o m m u n i c a t i o nS y s t e mB a s e do nS e c u r eF T P-作者姓名张指导教师姓名、职务何文才教授学科门类军事学学科、专业密码学提交论文日期三9 一Q 圭年:且摘要随着网络的不断发展和普及应用,它已经成为党政机关和企事业单位传送信息的一种主要手段,但是,以明
2、文的形式传输敏感信息,缺乏有效的身份认证和访问控制机制等隐患可能会给国家和企业造成巨大的损失和危害。F T P(F i l eT r a n s f e rP r o t o c 0 1)协议主要用来在网络上进行文件传输,它具有传输高效性和实时通信的优点;电子邮件被人们广泛使用,具有操作方便性的特点。本文首先深入研究了F T P 协议及其传输模式,结合F T P 的传输高效性与电子邮件的操作方便性,并利用加密技术,提出一种基于安全F T P 的计算机加密通信系统,实现为党政办公系统传送敏感数据的通道,提供适用于办公系统的收文、发文、预警和日志查询及加解密功能。本文研究的内容主要包括:安全F T
3、 P 解决方案的设计与实现、F T P 服务器端及客户端的的设计与实现、F T P 数据通信管理模块和F T P 监控模块的设计与实现。安全F T P 的解决方案中采用软件加密和硬件加密两种方式。关键词:安全F T P 加密服务器客户端A b s t r a c tW i t ht h ec o n s t a n td e v e l o p m e n ta n dp o p u l a r i z a t i o no fI n t e m e t,i th a sb e c o m eap r i m a r ym e a n so fi n f o r m a t i o nt r
4、a n s m i s s i o ni ng o v e r n m e n ta n de n t e r p r i s e s H o w e v e r,p l a i ni nt h ef o r mo f t r a n s m i s s i o no f s e n s i t i v ei n f o r m a t i o na n dl a c ko f e f f e c t i v ei d e n t i t ya u t h e n t i c a t i o na n da c c e s sc o n t r o lm e c h a n i s m s、】
5、I,i l Ib ec a u s e dg r e a td a m a g ea n dh a r mt oe n t e r p r i s e sa n dc o u n t r y F r P(F i l eT r a n s f e rP r o t o c 0 1)i Sm a i n l yu s e dt of i l et r a n s f e ro nt h en e t w o r kw i t ht h ea d v a n t a g e so f h i g ht r a n s m i s s i o ne f f i c i e n c y,E m a i
6、lh a sb e e nw i d e l yu s e dt Oo p e r a t ec o n v e n i e n e,ef e a t u r e s B a s e do nt h et r a n s m i s s i o nm o d eo fF T Pa n do p e r a t ec o n v e n i e n c eo fe-m a l la n de n c r y p t i o nt e c h n o l o g y,a ne n c r y p t e dc o m p u t e rc o m m u n i c a t i o n ss y
7、s t e mb a s e d-o ns e c u r eF T Pi Sp r o p o s e di nt h ep a p e r T h es y s t e mp r o v i d ef u n c t i o n so ft h ea d m i s s i o n0 伍c es y s t e m st e x td o c u m e n t s、w a r n i n g、l o gi n q u i r i e sa n de n c r y p t i o n,a n dr e a l i z a t i o no fa c c e s sf o rt r a n
8、 s m i ts e n s i t i v ed a t ao fg o v e r n m e n to f f i c e I nt h i sp a p e r t h em a i nc o n t e n t sa r e:d e s i g na n di m p l e m e n t a t i o no fF T Ps e c u r i t ys o l u t i o n,t h er e a l i z a t i o no fF T PS e r v e ra n dC l i e n t,t h ed e s i g no fF T Pd a t ac o m
9、m u n i c a t i o n sm a n a g e m e n tm o d u l ea n dF T Pm o n i t o rm o d u l e F T Ps e c u r i t ys o l u t i o n su s i n ge n c r y p t i o ns o f t w a r ea n dh a r d w a r ee n c r y p t i o ni nt w ow a y s K e y w o r d s:S e c u r i t yF T PE n e r y p t i o nS e r v e rC l i e n t独创
10、性(或创新性)声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名:雌丑羡日期坦Z 星!皇关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校后,发
11、表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。(保密的论文在解密后遵守此规定)本学位论文属于保密在一年解密后适用本授权书。本人签名:导师签名:第一章绪论第一章绪论1 1 引言随着互联网的不断发展和普及应用,它已经成为党政机关和企事业单位传送信息的一种主要手段,但是,以明文的形式传输敏感信息,缺乏有效的身份认证和访问控制机制等隐患将会给国家和企业造成巨大的损失和危害。因此,党政机关和企事业单位对敏感信息安全传输的需求非常突出。目前,国内计算机加密通信系统主
12、要是基于安全电子邮件。1 2 F T P 概述F T P(F i l eT r a n s f e rP r o t o c 0 1)协议主要用来在网络上进行文件传输。通常我们把采用这种协议的应用程序称为F T P。F T P 经过不断的改进和发展,已成为I n t e m e t上普遍应用的重要信息服务工具之一。今天,它已用于从I n t e m e t 上获取远程主机的各类文件信息、数据,包括公用程序、程序代码及其说明文件、研究报告、技术情报、科技论文、数据和图表等。从根本上说,F T P 协议就是在网络中各种不同的计算机之间按照T C P I P 协议来传输文件。F T P 协议采用的也
13、是现在流行的C S(客户服务器)模式,由F T P客户端程序和F T P 服务器端程序组成。通常服务器是远程站点,用户可以通过I n t e m e t 网络连接到远程的F T P 服务器站点。当然并不是所有的站点用户都有权限访问,有些服务器需要用户有一定的权限。F T P 可是公共的,任何能连上I n t e m e t的人都能够访问这种站点;也可以是私有的,这个时候就必须具备一定的权限。F T P 是I n t e m e t 上最早提供的服务之一,目前仍被人们广泛使用着。文件传输给人们带来了巨大的方便,但是,随着文件传输的范围扩大,给管理者带来很多的问题,在考虑一个文件传输的时候,必须要
14、考虑文件传输安全、传输质量、访问控制等诸多方面的因素。其中,F T P 的安全问题是F T P 发展中一个需要解决的主要问题”J。1 3 研究与发展现状目前,国内党政机关和企事业单位办公通信主要有三种途径:人工通信、传真通信和电子邮件加密通信。1 人工通信基于安全F T P 的计算机加密通信系统的研究与实现人工通信是指人工进行文件的传送,通常是指下一级部门工作人员到上一级部门领取文件,或者是下一级工作人员直接到上一级部门来学习文件内容。这是一种古老的传送方式,并且现在仍旧是党政机关办公中敏感信息通信的一种手段。2 传真通信传真通信是指用传真机来发送文件。传真机分加密传真机和普通传真机,可以分别
15、传送加密文件和明传文件。传真通信是目前传送敏感信息的一个主要方式。3 电子邮件加密通信电子邮件加密通信是指文件通过电子邮件的方式发送到接收端,文件先经过密码机加密后发送给接收方,保证传送的数据是以密文的形式在互联网上传送。这种通信方式已经在一些党政部门采用。1。4 F T P 与S M T P 的比较1 邮件传输体系结构I 列S M T P 协议的体系结构如图1 1 所示。S M T P 客户端通过与S M T P 服务器的通信实现双方之间的指令、应答以及邮件消息的交换。下面是砌C 2 8 2 l 中对S M T P客户端给予的说明;“S M T P 客户端的任务是负责把邮件消息传递给一个或多
16、个S M T P 服务器,且在传输失败时进行提示。”S M T P 客户端的任务还包括定位相应的邮件服务器。与该服务器建立会话,实现消息的传输,或通知发送方该消息无法送出等。陌习一S M T P客户端月命令,回复K服务器黔k的鼢孵P1邮件”的s M T P系统 S M T P 客户端S M T P 服务器图i 1S M T P 协议的基本体系结构多数情况下,发送消息的原始客户端是不能直接将其消息发送给其目标邮箱所在的S M T P 服务器的。图1 2 给出消息在通过一台个人电脑A 传递给接收方个人电脑B 的过程中在因特网中所经历的路径。消息在传输过程中需要经历多次跳跃的原因是:首先,网络中所在
17、邮件接收方都必须保证它们的主机全天处于开机运行及接收状态是不现实的。同时,每个潜在接收方所使用的每一台主机上都可以执行S M T P 协议也是不现实的。第一章绪论S M T P 服务器Y 2D N S 系统S M T P J J i 务器Y l图1 2S M T P 协议传递消息过程示意图从上图可知,邮件消息一般不能直接到达消息的目标S M T P 服务器,而必须通过其他S M T P 系统的转发才能到达最终目标。2 F T P 传输和S M T P 传输比较如下:1)传输模式:。C D F T P 是基于C S 模型,客户端按各自不同的权限打开不同的目录进行下载或上传文件,由于服务端和客户端
18、之间是实时通信,客户端和服务器端直接通信,不需要中日j 服务器转发。文件发送成功或失败客户端和服务器端有命令提示。S M T P 协议传输消息基于存储转发模式,客户端发出的邮件要经过邮件中转服务器发送到最终的目的服务器或者退回发件人。因此,这种模式传送消息可能会因为网络故障产生延迟,从而发件人无法确认收信人是否收到邮件。2)传输格式:由于F T P 是面向连接的可以以二进制的方式传送数据,不需要编码转换,因此它可以高效可靠地传输各种数据,如文本文件、图像文件、音频文件、视频文件、可执行文件等。许多电子邮件系统仅仅允许使用由A S C I I 码组成的块,不能传输可执行文件或其他二进制文件对象,
19、必须用M I M E 转换编码才能解决这个问题。另外,电子邮件系统一般对邮箱的大小有容量的限制,在传送一些大容量的文件时可能会出现发送失败。4基于安全F T P 的计算机加密通信系统的研究与实现1 5 研究意义1 理论意义:本系统结合F T P 传输数据的高效稳定性,采用加密算法及公钥密码体制,给F T P 应用提供了安全解决方案。2 现实意义:基于安全F T P 的计算机加密通信系统为党政企事业单位办公提供了可靠的、安全的、快速的传输信息的模式,可以提高工作人员的整体工作效率。1 6 研究的主要内容本文在深入研究F T P 协议的基础上,利用网络通信技术与加密技术,为F T P系统设计安全解
20、决方案,对F T P 上传输的数据提供保密和认证,将安全F T P 系统应用于党政办公传输敏感数据,并提供适用于办公系统的收发文、签收、日志查询及文件加解密功能。研究的主要内容有:安全F T P 方案的设计与实现、F T P 服务器端及客户端的设计与实现、F T P 数据通信管理模块和F T P 监控模块的设计和实现。第二章F T P 协议及相关理论基础第二章F T P 协议及相关理论基础2 1 1F T P 协议概述2 1F T P 文件传输协议文件传输协议F T P(F i l eT r a n s f e rP r o t o c 0 1)是T C P I P 提供的标准机制,用来从一个
21、主机把文件复制到另一个主机。虽然一个系统向另一系统传送文件看起来是很简单的且直截了当的,但有一些问题还要首先进行解决。例如,两个系统可能使用不同的文件名约定,两个系统可能用不同方法表示文本和数据,两个系统可能有不同的目录结构。所有这些问题已经由F r P 以一种简单的巧妙的方式解决了【3 1。F T P 协议位于O S I 网络七层模型的应用层,同时也是T C P I P 协议族的一部分。F T P 协议的原始设计目标有4 个;1)促进文件(包括程序和数据)的共享;2)鼓励间接地或隐式地(通过程序)来使用远程计算机;3)使得不同主机的不同文件存储系统对用户来讲是透明的;4)高效可靠地传输数据【
22、4】。F T P 和其它客户一服务器应用程序的不同就是它在主机之间使用两条连接。一条连接用于数据传送,而另一条连接用于控制信息(命令和响应,把命令与数据的传送分开使得F T P 的效率更高。控制连接使用非常简单的通信规则。我们需要传送的只是一次一行命令或一行响应。另一方面,数据传送需要更加复杂的多的规贝【J,因为传送的数据类型的种类较多。F T P 使用两个熟知端口:端口2 1 号用于控制连接,端口2 0 号用于数据连接【3】。2 1 2F T P 协议的特点文件传输是使用最广泛的T C P I P 应用之一,在现有的网络流量中占相当大的比例。F T P 协议还提供了除文件传输本身之外的其他一
23、些功能1 4】。1 交互式访问尽管F T P 协议是针对应用程序的使用所设计的,但大多数的协议实现都为用户自己与远程服务器的交互提供了很好的交互式接口。例如,用户可以要求列出远程机器上的特定目录下的所有文件。另外用户还可以通过H E L P 命令来获取可以使用的F T P 命令的帮助信息。2 格式(表示)指定F T P 允许客户端指定数据存储的类型和格式。例如,用户可以指定一个文件6基于安全F T P 的计算机加密通信系统的研究与实现是否包含文本或二进制整数以及文本文件采用的是A S C I I 码集还是E B C D I C 码集。3 认证控制F T P 要求客户端通过发送用户名和口令来获得
24、文件访问的授权。如果不能提供有效的用户名和口令将被拒绝访问服务器。2 2 F T P 模型F T P 服务器允许同时被多个客户端所访问。客户端通过T C P 协议(T e l n e t)连接到服务器。服务器端的F T P 解释器进程接受并管理客户端发起的控制连接,同时启动另一个数据传输连接进程。控制连接接受用户的命令并告知服务器传输哪些文件,数据传输连接仍使用T C P 作为传输协议来传输所有的数据。在客户端和服务器端使用F T P 的模型如图2 1 所示【5】o控制连接:服务器和客户端的F T P 协议解释器间传递命令及回复的通信链路,该连接基于T e l n e t 协议。数据连接:负责
25、实际数据传输的全双工通信链路,有其特定的模式和类型,其传输的数据可以是一个文件的一部分,也可以是整个文件或多个文件。该连接可以存在于一个服务器数据传输进程和一个客户端数据传输进程之间,也可以存在于两个服务器数据传输进程之间。数据端口:被动的数据传输进程通过监听该端口来获取主动数据传输进程的连接请求以便打开数据连接。数掘传输进程:数据传输进程用以建立和管理数据连接,可以是主动模式的也可是被动模式的。协议解释器:协议在客户端和服务器端的功能是完全不一样的,所以客户端和服务器端的协议解释器也不一样。服务器端数据进程:在通常的主动模式下,它通过监听数据端口来建立数据连接,为数据传输和存储设置参数并根据
26、其协议解释器的命令进行数据传输。它也可设黄为被动模式来获取数据连接而不是初始化一个数据连接。用户:希望获得文件传输服务的人或进程。第二章F T P 协议及相关理论基础7客户端F r P 系统图2 1F r P 使用模型从图2 1 中可以看出,客户端向服务器发起的控制连接为一个T C P 连接,而与之相关的数据传输连接为另一个T C P 连接。通常控制连接要一直持续到两者之间的F T P 会话结束。而数据传输连接是每次文件传输前建立,传送完毕后撤销。总之,数据传输连接以及使用该连接的数据传输进程是按照需要动态建立的,而控制连接要贯穿整个F T P 会话的始末。一旦控制连接撤销,则F T P 会话
27、中断,同时两边的所有数据连接中断例。2 3F T P 命令F T P 协议采用一系列简单的协议来完成文件传输的各种任务,在发送命令的时候,总是在命令最后加上一个回车换行符,在V B 中可以用“v b c f l f,来实现。以下的命令是从R F C 9 2 9 修改而来的,详细内容参见英文版的R F C 9 2 9 1 4】。1 A B O T 命令:告诉服务器终止上一次F 1 P 服务命令及所有相关的数据传输。2 A C C T 命令:指定用户的帐户信息。这条命令只能在发送P A S S 命令并接收到3 3 2 代码之后发送。3 A L L O 命令:发送文件前在服务器上分配X 个字节。4
28、A P P E 命令:让服务器准备接收一个文件并指示它把这些数据附加到指定的文件名,如果指定的文件尚未存在,就创建它。5 C D U P 命令:把当前目录改为远程文件系统的根目录,无需改变登录、帐号信息或传输参数。8基于安全F T P 的计算机加密通信系统的研究与实现6 C w D 命令:把当前目录改为远程文件系统的指定路径,而无需改变登录、帐号信息或传输参数。7 D E L E 命令:删除服务器站点上在路径名中指定的文件。8 H E L P 命令:让服务器通过到客户的控制连接发送有关其实现状态的帮助信息。9 L I S T 命令:让服务器给客户发送一份列表。l O M K D 命令:创建一个
29、在路径名中指定的目录(如果是绝对路径名)或当前工作目录的子目录(如果是相对路径名)。1 1 M O D E 命令:指定传输模式。S-S t r e a m(流,默认值),B-B l o c k(块),C-C o m p r e s s e d(经过压缩1。1 2 N L S T 命令:让服务器给客户发送一份目录表。1 3 N O O P 命令:这是一条不进行操作的命令,即它什么都不做。1 4 P A S S 命令:向远程系统发送用户的密码,该命令在U S E R 命令后使用。1 5 P A S V 命令:告诉服务器在一个非标准端口上收听数据连接。1 6 P O R T 命令:为数据连接指定一个
30、m 地址和本地端口。1 7 P W D 命令:在应答中返回当前工作目录的名称。1 8 Q U I T 命令:终止连接。1 9 R E I N 命令:终止一个用户。2 0 R E S T 命令:标识出文件内的数据点,将从这个点开始继续传送文件。2 1 R E T R 命令:这条命令让服务器给客户传送一份在路径名中指定的文件的副本。这不会影响该文件在服务器站点上的状态和内容。2 2。R M D 命令;删除一个在路径名中指定的目录或当前工作目录的子目录。2 3 鼢婚R 命令:文件重命名进程的前一半。指定要重命名的文件的旧路径和文件名。2 4 R N T O 命令:文件重命名进程的后一半。指定要重命名
31、的文件的新路径和文件名。一2 5 S I T E 命令:服务器使用S I T E 提供了某些服务特性,这些服务特性在系统中对文件传达而言是必要的,但又不是足够能用的可以包括到协议中作为命令的那些服务特性。这些服务的本质和他们的语法规范可以陈述在对H E L P S l T E 命令的应答中。2 6 S M N T 命令:允许用户装配另一个文件系统的数据结构而无需改变登录、帐号信息或传输参数。2 7 S T A T 命令:使一个状态响应以应答的形式通过控制连接发送出去。2 8 S T O R 命令:让服务器接收一个来自数据连接的文件。2 9 S T O U 命令:让服务器准备接收一个文件,并指示
32、服务器把这个文件用第二章兀 P 协议及相关理论基础9唯一的名称保存到目的目录中。3 0 S T R U 命令:指定传达数据的结构类型。3 1 S Y S T 命令:S Y S T 用于查明服务器上操作系统的类型。3 2 T Y P E 命令:确定数据的传输方式。3 3 U S E R 命令:指定远程系统上的用户名称。1 0基于安全F T P 的计算机加密通信系统的研究与实现第三章密码学基础3 1 对称密码算法对称加密算法通常分为流密码和分组密码两类。这两种类型都使用了固定长度的密钥或长度变化的密钥,这取决于具体的算法。能够支持不同密钥长度的算法具有这样的优点:只需增加密钥长度就可以得到加强。随
33、着计算机能力的增加。穷举搜索攻击更加可行,带有固定密钥长度的算法可能会变得越来越过时。流式算法和分组算法的根本不同在于,算法的每次操作所加密的数据量不同。流密码按照一位接一位的方式来加密消息(有时按一个字节一个字节的方式进行)。分组密码按照一组一组的方式来加密消息1 6 J。3 1 1 流密码流密码一般使用很小的随机密钥,同时带有密钥流发生器,它可以按照一字节接一字节的方式生成密钥,直到达到消息长度为止。从小的输入密钥中生成长密钥时,就叫做密钥流。通过异或运算,密钥流用来加密明文密钥流生成器是确定的,因为它是软件算法。然而,如果该生成器的密钥流足够随机,那么密文就会足够安全。流密码从相同的密钥
34、中会产生相同的密钥流,这与密钥非常相似,流密码的密钥一定不能重新使用【6】。I n t e m e t 应用中最流行的商用流密码可能就是R C 4,它来自R S AS e c u r i t y。R C 4 使用一个密钥流字节对明文的每个字节进行异或处理,从而对其加密。它把输出反馈用作一种加密模式。这有助于使密钥流按照一种随机方式连续变化。R C 4比标准的D E S 加密要快1 0 倍。R C 4 的常见使用环境就是在加密套接字协议层(S S L,S e c u r eS o c k e t sL a y e r)中,用来保证W e b 浏览的安全御。3 1 2 分组密码分组密码把明文组加密
35、成密文块。多数分组密码使用8 字节或1 6 字节。在数学上,分组长度与密钥长度相关联。例如,8 字节的明文块使用“位密钥进行加密,产生8 字节的密文块密钥长度可以是块长度的倍数。例如,B r u c eS c h n e i e r的B l o w f i s h 具有6 4 位的分组长度,它可以接受3 2 位倍数的密钥长度,最大达到4 4 8 位【7 1 分组密码生成的密文最长可以比明文长一块。密文长度始终是分组长度的整第三章密码学基础数倍。明文的长度通常不会是分组长度的倍数。一般情况下,在对其进行加密之前填充明文的最后一组。填充明文应该不会与一次填充加密相混淆,二都之间没有任何联系。例如,
36、如果消息长度为8 0 2 字节,并且加密程序的分组长度为8 个字节,那么,在加密了1 0 0 个消息分组之后,则只剩下了两个字节的消息。在加密之前,这两个字节将会使用6 个附加字节进行填充。一种填充方式就是把每个填充字节设置为组成该填充的字节数(例如,6 个字节包含数字6)1 7】。3 1 3 D E SD E S(D a t aE n c r y p t i o nS t a n d a r d)是迄今为止世界上最为广泛使用和流行的一种分组密码算法,它的分组长度为6 4 比特,密钥长度为5 6 比特。图3 1 是D E S J J I 密算法的框图,其中明文分组长为6 4 比特,密钥长为5
37、6 比特。图的左边是明文的处理过程,有3 个阶段,首先是一个初始置换I P,用于重排明文分组的6 4 比特数据。然后是具有相同功能的1 6 轮变换,每轮中都有置换和代换运算,第1 6 轮变换的输出分为左右两半,并被交换次序。最后再经过一个逆初始置换I P。(为I P 的逆)从而产生6 4 比特的密文。图3 1 右边是使用5 6 比特密钥的方法。密钥首先通过一个置换函数,然后,对加密过程的每一轮,通过一个左循环移位和一个置换产生一个子密钥。其中每轮的置换都相同,但由于密钥被重复迭代,所以产生的每轮子密钥不相同【8 J。1 2基于安全F T P 的计算机加密通信系统的研究与实现3 1 4I D E
38、 A6 4 比特明文5 6 比特密钥6 4 比特密文图3 1D E S 加密算法框图删I D E A 是瑞士联邦理工学院开发的国际数据加密算法,它使用了一个1 2 8 位密钥,并在6 4 位分组上进行操作。该算法在每个分组上运行8 个回合。每个回合都包含3 个不同的运算:异或运算、加法运算和乘法运算。I D E A 非常安全。然而它还没有像D E S 和三重D E S 那么常用。造成这种现象有几个原因。首先,它的速度慢(比D E S 慢,但没有三重D E S 那么慢);乘法运算非常浪费时间。其次,它受至i J A s c o m 的专利保护,未授权则不能进行商业使用。第三,它还没有宣布成为联邦
39、标准。I D E A 用在P G P(P r e t t yG o o dP r i v a c y)中,这是一个非常流行的软件包,可以让用户共享和交互加密信息【6 l。3 1 5A E SA E S 是由两上比利时研究人员D a c m e n 和剐m e n 设计的算法并命名为第三章密码学基础R i j n d a e l 算法。R i j n d a e l 算法同时支持可变密钥长度和可变块长度。密钥和块都可以是1 2 8 位、1 9 2 位或2 5 6 位。所用的回合数目是密钥长度和块长度的函数。每个回合执行4 个基本操作:置换、位移动、乘法和加法。在命名A E S 过程中,根据一些判
40、断标准(包括速度、安全性以及实施的难易程度等),可以说R i j n d a e l 是最好的算法。在近期,好像不可能找出它的任何严重错误。R i j n d a e l 可能变得与D E S 一样受欢迎,甚至更受青睐,对于任何新的应用而言,它都是最佳选择【s】。3 2 公钥密码体制及R S A3 2 1 公钥密码体制的基本原理公钥算法依赖于一个加密密钥和一个与之相关的不同的解密密钥。这些算法都具有下述重要特点 9 1:1 仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的。2 两个密钥中的任何一个都可以用来加密,另一个用来解密。公钥密码体制有6 个组成部分唧:1 明文:算法的输入。它们
41、是可读信息或数据。2 加密算法:加密算法对明文进行各种转换。3 公钥和私钥:算法的输入。这对密钥中一个用于加密,一个用于解密。加密算法执行的变换依赖于公钥和私钥。4 密文:算法的输出。它依赖于明文和密钥,对给定的消息,不同的密钥产生的密文不同。5 解密算法:该算法接收密文和相应的密钥,并产生原始的明文。其主要步骤如下【9】:1 每一用户产生一对密钥,用来加密和解密消息。2 每一用户将其中一个密钥存于公开的寄存器或其他可访问的文件中,该密钥称为公钥,另一密钥是私有的。每一用户可以拥有若干其他用户的公钥。3 若B o b 要发送消息给A l i c e,则B o b 用A l i c e 的公钥对
42、消息加密。4 A l i c e 收到消息后,用其私钥对消息解密。由于只有A l i c e 知道其自身的私钥,所以其他的接收者均不能解密出消息。利用这种方法,通信各方均可访问公钥,而私钥是各通信方在本地产生的,所以不必进行分配。只要系统控制了其私钥,那么它的通信是安全的。在任何时候,系统可以改变其私钥并公布相应的公钥以替代原来的公钥。1 4基于安全F T P 的计算机加密通信系统的研究与实现3 2 2 公钥密码体制的应用公钥密码体制的特点是使用具有两个密钥的密码算法,其中一个密钥是私有的,另一个是公有的。根据不同的应用,发送方可使用其私钥或者接收方的公钥或同时使用二者来执行密码功能。一般地,
43、公钥密码体制的应用可分为三类【9 l:1 加密解密:发送方用接收的公钥对消息加密。2 数字签名:发送方用其私钥对消息“签名”。签名可以通过对整条消息加密或者对消息的个小的数据块加密来产生,其中该小数据块是整条消息的函数。3 密钥交换:通信双方交换会话密钥。有几种不同的方法可用于密钥交换,这些方法都使用了通信一方或双方的私钥。3 2 3R S A 算法R S A 体制是一种分组密码,其明文和密文均是0 至n 1 之间的整数,通常n的大小为1 0 2 4 位二进制数或3 0 9 位十进制数。R i v e s t、S h a m i r 和A d l e m a n 提出的算法使用了乘方运算。明文
44、以分组为单位进行加密,每个分组的二进制值均小于n。也就是说,分组的大小必须小于或等于l o g,(n)位:在实际应用中,分组的大小是k 位,其中2 n 2“1。对于明文分组M 和密文分组C,加密和解密过程如图3 2 所示 9 1:其中收发双方均已知I 1,发送方已知e,只有接收方已知d,因此公钥加密算法的公钥为K U=(e,n),私钥为K R=(d,n)。第三章密码学基础3 3 1H a s h 函数介绍图3 2l I S A 算法3 3H a s h 函数H a s h 函数用于将任意长的消息M 映射为较短的、固定长度的一个值H(M),作为认证符。H a s h 值是所有消息位的函数,它具有
45、错误检测能力,即改变消息的任何一位或多位,都会导致h a s h 码的改变。消息正确时,将h a s h 值附于发送方的消息后;接收方通过重新计算h a s h 值可认证该消息。由于h a s h 函数本身是不保密的,所以需要有某些方法来保护h a s h 值1 9 j。H a s h 函数设计成可以生成足够小以便管理的摘要。同时,这些摘要应该足够大,这样才能不易受到攻击。诸如M D 5 和S H A 1 这样的H a s h 算法是当前使用最常用的算法。M D 5 会生成1 2 8 位(1 6 字节)的消息摘要,而S H A 1 生成1 6 0 位(2 0 字节)的摘要块。1 6基于安全F
46、T P 的计算机加密通信系统的研究与实现通常情况下,采用S H A-1 算法比M D 5 更安全,这也是更好的安全考虑,因为S H A-1 与M D 5 相比,会生成更大的消息摘要。随着近来硬件越来越先进,一些小组认为1 2 8 位的消息摘要已不足以防止强力攻击。对1 2 8 位h a s h 结果进行强制冲突搜索攻击,将需要2“次操作嘲。3 3 2S H A-I 算法步骤S H A-l 算法的输入是长度小于2“位的消息,输出是1 6 0 位的消息摘要,输入消息以5 1 2 位的分组为单位进行处理。S H A 1 算法将消息按5 1 2 位分组,但h a s h值和链接变量长为1 6 0 位。
47、S H A-1 算法包含下列步骤【9 1:步骤1:增加填充位。填充消息使其长度与4 4 8 模5 1 2 同余(即长度一4 4 8 m o d S l 2),即使消息已经满足上述长度要求,仍然需要进行填充,因此填充位数在l 到5 1 2 之间。填充由一个l 和后续的0 组成。步骤2:填充长度。在消息后附加6 4 位,将其看作6 4 位的无符号整数(最高有效字节在前),它包含填充前消息的长度。步骤3:初始化M D 缓冲区。H a s h 函数的中间结果和最终结果保存于1 6 0 位的缓冲区中,缓冲区用5 个3 2 位的寄存器(A,B,C,D,E)表示,并将这些寄存器初始化为下列3 2 位的整数(
48、十六进制值):A=6 7 4 5 1 3 0 1B=E F C K A B 8 9C=9 8 B A D C F EE=C 3 D 2 E 1 F O其中,前四个值与M D 5 中使用的值相同,但在S H A 1 中这些值以高端格式存储,也就是说,字的最高有效字节存于低地址字节位置,即按如下方式存储上述初始值(十六进制):字A:6 74 52 30 1字B:E FC DA B8 9字C:9 8B AD CF E字D:l O3 25 47 6字E:C 3D 2E lF 0步骤4:以5 1 2 位的分组(1 6 个字)为单位处理消息。算法的核心是具有四轮运算的模块,每轮执行2 0 步迭代,其处理过
49、程如图3 3 所示。四轮运算结构相同,但各轮使用不同的基本逻辑函数,分别称为f I,f:,f 3 和f。每轮的输入是当前要处理的5 1 2 位的分组(Y q)和1 6 0 位缓冲区A B C D E 的内容,且每轮都对缓冲区进行更新。每轮使用一个加法常量K,其中t 表示步数,第三章密码学基础1 70 t 7 9,但实际上只使用四个不同的加法常量,下面是这些常量的十六进制和十进制表示:表3 1步骤十六进制取整数部分0 t 1 9K,=5 A 8 2 7 9 9 9【2 加压】2 0 t 3 9K l=6 E D 9 E B A l【2 如X 压】4 0 t 5 9K,=S F l B B C D
50、 C【2”压】6 0 t 7 9Kr=C A 6 2 C I D 6【2 3 0 X 而】第四轮第1 8 步的输出与第一轮的输入(c v,)相加得到c v,这里的加法图3 3S A H t 算法处理5 1 2 位分组的过程1 8基于安全F T P 的计算机加密通信系统的研究与实现是指缓冲区中的第5 个字与C V。中对应的5 个字分别模2 3 2 相加。步骤5:输出。所有的L 个5 1 2 位的分组处理完后,第L 个分组的输出即是1 6 0 位的消息摘要。我们可将S H A 1 的处理过程归纳如下:C V o=I VC V 口+l=S U M 3 2(C V _,A B C D E q)M D=