网络综合实践周实践报告班级:学号:姓名:环节名称:网络综合实践周填写时间:2013-11-09实验1数据加密与压缩技术实验练习一加密算法的应用与分析一、实验目的:1.了解常用的加密算法及其工具2.掌握常用加密算法的作用。二、实验原理:1.对称密码体系及其优缺点对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。对称密码体系通常分为两大类,一类是分组密码(如DES、AES算法),另一类是序列密码(如RC4算法)。对称密码体系加密和解密时所用的密钥是相同的或者是类似的,即由加密密钥可以很容易地推导出解密密钥,反之亦然。同时在一个密码系统中,我们不能假定加密算法和解密算法是保密的,因此密钥必须保密。发送信息的通道往往是不可靠的或者不安全的,所以在对称密码系统中,必须用不同于发送信息的另外一个安全信道来发送密钥。图1-1-1描述了对称密码(传统密码)系统原理框架,其中M表示明文;C表示密文;E表示加密算法;D表示解密算法;K表示密钥;I表示密码分析员进行密码分析时掌握的相关信息;B表示密码分析员对明文M的分析和猜测。图1-1-1传统密码系统原理框架图对称密码体系的优缺点(1)加密效率高,硬件实现可达每秒数百兆字节(软件实现略慢一些)。(2)密钥相对比较短。(3)可以用来构造各种密码机制。(4)可以用来建造安全性更强的密码。(5)通信双方都要保持密钥的秘密性。(6)在大型网络中,每个人需持有许多密钥。(7)为了安全,需要经常更换密钥。2.非对称密钥加密机制及其优缺点前面讲述了对称密钥加密体制。使用对称密钥加密体制进行保密通信时,任意不同的两个用户之间都应该使用互不相同的密钥。这样,如果一个网络中有n个用户,他们之间彼此都可能进行秘密通信,这时网络中将需要n(n-1)/2个密钥(其中,每个用户都需要保存n-1个密钥),这样巨大的密钥量给密钥分配和管理带来了极大的困难。另外,随着计算机网络,特别是因特网的发展,网络上互不相识的用户可能需要进行保密的会话(例如,如果用户在进行电子商务活动时,需要保密的连接,这时的客户对象可能根本不是固定的对象)。最后,对称密钥加密机制难以解决签名验证问题。非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。使用公开密钥密码的每一个用户都分别拥有两个密钥:加密密钥和解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算机上是不可行的。每一个用户的加密密钥都是公开的。因此,加密密钥也称为公开密钥。所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上,而它可以被所有用户访问,这样每一个用户都可以得到其他所有用户的公开密钥。同时,每一个用户的解密密钥将由用户保存并严格保密。因此,解密密钥也称为私有密钥。非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的发明。公钥加密算法一般是将对密钥的求解转化为对数学上的困难问题的求解,例如RSA算法的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,已知两个大素数a、b,求出a*b是容易计算的,而已知a*b,想知道其是哪两个大素数的乘积目前还没有好的计算方法,另外也有一些非对称加密算法(如ELGamal算法)的安全性是基于求“离散对数”这个数学难题上的。在公钥密码系统中每个实体都有自己的公钥和相应的私钥。公钥密码系统的加密变换和解密变换分别用E和D表示。任何实体B要向实体A发送信息m的步骤如下:实体B首先获得实体A的真实公钥的拷贝(eA),实体B使用eA计算密文c=E(m)并发送给实体A,实体A使用自己的私钥dA,计算m=D(c)解密密文,恢复出明文m。这里公钥不需要保密,但要保证它的真实性,即eA确实是实体A掌握的私钥dA所对应的公钥。提供真实的公钥比安全地分配密钥实现起来要容易得多。这也是公钥密码系统的主要优点之一。公钥密码系统的主要目的是提供保密性,它不能提供数据源认证(dataoriginauthentication)和数据完整性(dataintegrity)。数据源认证是指:指定的数据是在以前的某个时间确实是由真正的源创建的。数据完整性是指:真正的源创建该数据后经过传输后存储没有发生改变。数据源认证和数据完整性要由其他技术来提供(如消息认证码技术、数字签名技术等)。从本质上来看,公钥密码比对称密钥密码加密的速度要慢,粗略的说,公钥加密算法RSA硬件实现比分组加密算法DES硬件实现的速度慢1500倍,而软件实现的速度要慢100倍。公钥解密也可以提供认证保证(如:在实体认证协议、带认证的密钥建立协议等)。公钥加密中必须有颁发让发送消息的人得到想要发送到的那个人的公钥的真实拷贝,否则就会受到伪装攻击。在实践中有很多方法分发真实的公钥,如:使用可信的公共文件,使用在线可信服务器,使用离线服务器和认证。公钥加密的优缺点(1)大型网络中的每个用户需要的密钥数量少。(2)对管理公钥的可信第三方的信任程度要求不高而且是离线的。(3)只有私钥是保密的,而公钥只要保证它的真实性。(4)多数公钥加密比对称密钥加密的速度要慢几个数量级。(5)公钥加密方案的密钥长度比对称加密的密钥要长。(6)公钥加密方案没有被证明是安全的。3.数字签名及其作用数字签名是在公钥加密系统的基础上建立起来的,数字签名的产生涉及的运算方式是为人们所知的散列函数功能,也称“哈希函数功能”(HashFunction)。哈希函数功能其实是一种数学计算过程。这一计算过程建立在一种以“哈希函数值”或“哈希函数结果”形式创建信息的数字表达式或压缩形式(通常被称作“信息摘要”或“信息标识”)的计算方法之上。在安全的哈希函数功能(有时被称作单向哈希函数功能)情形下,要想从已知的哈希函数结果中推导出原信息来,实际上是不可能的。因而,哈希函数功能可以使软件在更少且可预见的数据量上运作生成数字签名,却保持与原信息内容之间的高度相关,且有效保证信息在经数字签署后并未做任何修改。所谓数字签名,就是只有信息的发送者才能产生的,别人无法伪造的一段数字串,它同时也是对发送者发送的信息的真实性的一个证明。签署一个文件或其他任何信息时,签名者首先须准确界定要签署内容的范围。然后,签名者软件中的哈希函数功能将计算出被签署信息惟一的哈希函数结果值(为实用目的)。最后使用签名者的私人密码将哈希函数结果值转化为数字签名。得到的数字签名对于被签署的信息和用以创建数字签名的私人密码而言都是独一无二的。一个数字签名(对一个信息的哈希函数结果的数字签署)被附在信息之后,并随同信息一起被储存和传送。然而,只要能够保持与相应信息之间的可靠联系,它也可以作为单独的数据单位被存储和传送。因为数字签名对它所签署的信息而言是独一无二的,因此,假如它与信息永久地失去联系则变得毫无意义。数字签名的特点在书面文件上签名是确认文件的一种手段,数字签名同传统的手写签名相比有许多特点。(1)数字签名中的签名同信息是分开的,需要一种方法将签名与信息联系在一起,而在传统的手写签名中,签名与所签署之信息是一个整体;(2)在签名验证的方法上,数字签名利用一种公开的方法对签名进行验证,任何人都可以对之进行检验。而传统的手写签名的验证,是由经验丰富的接收者,通过同预留的签名样本相比较而作出判断的;(3)在数字签名中,有效签名的复制同样是有效的签名,而在传统的手写签名中,签名的复制是无效的。数字签名可以同时具有两个作用:确认数据的来源,以及保证数据在发送的过程中未作任何修改或变动。因此,在某些方面而言,数据签名的功能,更有些近似于整体性检测值的功能。但是,二者的一个主要区别在于,数字签名必须能够保证以下特点,即发送者事后不能抵赖对报文的签名。这一点相当重要。由此,信息的接收者可以通过数字签名,使第三方确信签名人的身份及发出信息的事实。当双方就信息发出与否及其内容出现争论时,数字签名就可成为一个有力的证据。一般来说因信息篡改而受影响较大的是接收方。因此,接收方最好使用与信息发送方不同的数字签名,以示区别。这是整体性检测值所不具有的功能。在这种意义上说来,确认一个数字签名,有些类似于通过辩认手写签名来确认某一书面文件的来源一样的意义。采用数字签名和加密技术相结合的方法,可以很好地解决信息传输过程中的完整性,身份认证以及防抵赖性等问题。(1)完整性:因为它提供了一项用以确认电子文件完整性的技术和方法,所以可认定文件为未经更改的原件。(2)可验证性:可以确认电子文件之来源。由于发件人以私钥产生的电子签章惟有与发件人的私钥对应的公钥方能解密,故可确认文件之来源。(3)不可否认性:由于只有发文者拥有私钥,所以其无法否认该电子文件非由其所发送。4.哈希函数及其特点信息安全的核心技术是应用密码技术。密码技术的应用远不止局限于提供机密性服务,密码技术也提供数据完整性服务。密码学上的散列函数(HashFunctions)就是能提供数据完整性保障的一个重要工具。Hash函数常用来构造数据的短“指纹”,消息的发送者使用所有的消息产生一个短“指纹”,并将该短“指纹”与消息一起传输给接收者。即使数据存储在不安全的地方,接收者重新计算数据的指纹,并验证指纹是否改变,就能够检测数据的完整性。这是因为一旦数据在中途被破坏或改变,短指纹就不再正确。散列函数是一个函数,它以一个变长的报文作为输入,并产生一个定长的散列码,有时也称为报文摘要,作为函数的输出。散列函数最主要的作用是用于鉴别,鉴别在网络安全中起到举足轻重的地位。鉴别的目的有以下两个:第一,验证信息的发送者不是冒充的,同时发信息者也不能抵赖,此为信源识别;第二,验证信息完整性,在传递或存储过程中未被篡改,重放或延迟等。密码学哈希函数(cryptographyhashfunction,简称为哈希函数)在现代密码学中起着重要的作用,主要用于数据完整性认证和消息认证。哈希函数的基本思想是对数据进行运算得到一个摘要,运算过程满足:(1)压缩性:任意长度的数据,算出的摘要长度都固定。(2)容易计算:从原数据容易计算出摘要。(3)抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的摘要都有很大区别。(4)弱抗碰撞:已知原数据和其摘要,想找到一个具有相同摘要的数据(即伪造数据),在计算上是困难的。(5)强抗碰撞:想找到两个不同的数据,使它们具有相同的摘要,在计算上是困难的。三、实验步骤实验开始前,首先使用分组切换器将实验主机切换到理论学习环境中;将智能网络设备的网络结构切换到“网络结构一”;主机A、B、C、D、E、F使用【快照】将Windows虚拟机恢复到“网络结构1”的状态;该实验每组1人,实验步骤以主机A所在组为例进行说明,其它组的操作参考主机A所在组的操作。说明:练习一所有实验步骤中用到的文件都保存在“D:\Work\FileEncrypt”下。1.DES工具加密文件(1)主机A在工具栏单击【EncodeFile】,启动EncodeFile工具。(2)主机A指定源文件(明文文件)D:\Work\FileEncrypt\hello.txt,指定目标文件hello_en.txt,输入密钥12345678(又称会话密钥),单击“加密”按钮,生成密文文件hello_en.txt。(3)主机A查看目标文件(密文文件)hello_en.txt的内容。由此可以分析出:明文文件hello.txt文件内容被加密了。(4)主机A指定源文件(密文文件)hello_en.txt,指定目标文件(明文文件)hello_de1.txt,输入会话密钥,单击“解密”按钮,生成明文文件hello_de1.txt。(5)主机A观察解密后的明文文件hello_de1.txt内容与源明文文件hello.txt内容的一致性。由此可以分析出:解密后的文件hello_de1.txt内容与源明文文件hello.txt内容一致。(6)主机A使用错误的会话密钥解密密文文件hello_en.txt,指定目标文件(明文文件)hello_de2.txt。(7)主机A观察使用错误的会话密钥解密后的明文文件hello_de2.txt内