实验五 数据加密与解密实验.docx

上传人:b****4 文档编号:4707107 上传时间:2022-12-07 格式:DOCX 页数:13 大小:715.94KB
下载 相关 举报
实验五 数据加密与解密实验.docx_第1页
第1页 / 共13页
实验五 数据加密与解密实验.docx_第2页
第2页 / 共13页
实验五 数据加密与解密实验.docx_第3页
第3页 / 共13页
实验五 数据加密与解密实验.docx_第4页
第4页 / 共13页
实验五 数据加密与解密实验.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验五 数据加密与解密实验.docx

《实验五 数据加密与解密实验.docx》由会员分享,可在线阅读,更多相关《实验五 数据加密与解密实验.docx(13页珍藏版)》请在冰豆网上搜索。

实验五 数据加密与解密实验.docx

实验五数据加密与解密实验

实验五数据加密与解密实验(3学时)

一、实验目的

1、了解OPENSSL开放源程序的应用;

2、熟悉用对称加密的方法加密和解密。

3、熟悉利用RSA非对称密钥对文件进行加密与解密的整个过程方法。

二、实验设备及软件环境

(一)实验设备

服务器、交换机和PC机组成NT网络。

(二)软件环境

1.服务器采用MicrosoftWindows2003Server操作系统;

2.学生客户端采用WindowsXP系统、IE6.0以上浏览器。

3.OPENSSL开放源程序

三、实验内容与步骤(整个实验共分五个部分)

(一)准备工作

步骤一下载OPENSSL安装包到C盘根目录下。

(下载地址:

步骤二在C盘中右击压缩包,使用“解压到openssl\”方式来解压

软件包,在C盘根目录下,自动生成OPENSSL文件夹。

步骤三点击“开始”、“程序”、“附件”、“命令提示符”,打开“命令提示符”窗口。

如图8-1。

图8-1命令提示符

步骤四在“C:

\DocumentsandSettingsowner>”键入cdc:

\openssl\out32dll,输入后按回车键,进入到openssl\out32dll的目录下,如图8-2所示。

(命令的含义:

打开C盘目录下,openssl文件夹下的out32dll文件夹)

图8-2openssl\out32dll的目录

(二)对称加密实验步骤

步骤一 用记事本创建一个文本文件,文件名为学生的学号(如026h321f.txt),内容为学生的名字和学号,保存在c:

\openssl\out32dll的文件夹下,如图9-1所示。

图9-1用记事本创建的文本文件

步骤二 输入命令“opensslenc-des3-in026h231f.txt-outout026h231f.des”(注意所有的-符号的前面都有一个空格),输入后按回车键,加密过程中会提示你输入保护密码,按回车键后会再输一次密码进行确认,(注:

输入密码时屏幕无任何显示)执行结果如图9-2所示。

执行完上述命令完后,在c:

\openssl\out32dll目录下会自动生成一个用des3算法加密后out026h231f.des的文件。

(命令的含义:

使用DES3算法对数据进行对称加密。

-infilename要进行加密的输入文件名,即明文文件

-outfilename加密后得到的文件名,即密文文件)

图9-2输入密码后的执行结果

步骤三 用“typeout026h231f.des”命令查看加密后的out026h231f.des文件的内容,如图9-3所示。

图9-3加密后的文件

步骤四 用“opensslenc-des3-d-inout026h231f.des-outnew026h231f.txt”(注意所有的-符号的前面都有一个空格)命令对out026h231f.des文件内容进行解码(注:

这里需要输入原先设定的保护密码),如图9-4所示。

(命令的含义:

使用DES3算法对数据进行对称解密,使用加密时用到的对称密钥进行。

-infilename要进行解密的输入文件名,即密文文件

-outfilename解密后得到的文件名,即还原的明文文件)

图9-4对out026h231f.des文件内容进行解码

步骤五 输入typenew026h231f.txt命令查看解密后的文件内容,如图9-5所示。

判别是不是与源文件026h231f.txt的内容一致。

图9-5判别与源文件内容的一致性

(三)非对称加密实验步骤

步骤一 用记事本创建一个文本文件,文件名为学生的学号(如026h321f.txt),内容为学生的名字和学号,保存在c:

\openssl\out32dll的文件夹下,如图10-1所示。

图10-1用记事本创建的文本文件

步骤二 产生一个私钥。

具体的操作步骤如下:

输入命令“opensslgenrsa-des3-out myrsaCA.key1024”(注意所有的-符号的前面都有一个空格,另外“1024”前面有空格),输入后按回车键,出现如图10-2所示的等待提示页面,提示你输入保护密码,按回车键后会再输一次密码进行确认(注:

输入密码时屏幕无任何显示)。

执行完上述命令完后,在c:

\openssl\out32dll目录下会自动生成一个用于存放rsa私钥的文件myrsaCA.key。

(命令的含义:

genrsa指令生成RSA私有密钥,并使用DES3加密算法来加密密钥,通过输入保护密码。

myrsaCA.key是私有密钥输入文件名;

1024是产生的参数的长度,必须是本指令的最后一个参数,如果没有指明,则产生512bit长的参数)

图10-2用于存放私钥的文件

步骤三查看私钥内容。

在如图10-2所示页面,输入“opensslrsa-inmyrsaCA.key-text-noout”(注意所有的-符号的前面都有一个空格)命令,然后根据提示输入先前设定的保护密码,查看私有密钥文件中的私钥内容,如图10-3所示。

(命令的含义:

rsa指令专门处理RSA密钥。

-infilename要分析的文件名称,如果文件有密码保护,会要你输入;

-text打印出私有密钥的各个组成部分;

-noout不打印出key的编码版本信息)

图10-3查看私有密钥文件中的私钥内容

步骤四 导出公共密钥,输入命令:

opensslrsa-inmyrsaCA.key-pubout-outmyrsapubkey.pem(注:

需输入原先设定的保护密码)(注意所有的-符号的前面都有一个空格),产生一个存放共钥myrsapubkey.pem文件,如图10-4所示。

(命令的含义:

rsa指令专门处理RSA密钥。

-outfilename要输出的文件名;

-pubin缺省来说是从输入文件中读到私有密钥,有这个选项则可以从输入文件中去读公共密钥;

-pubout缺省来说是打印出私有密钥,有这个选项就可以打印出公共密钥。

图10-4存放公钥的文件

步骤五 查看公钥内容。

在如图10-4所示页面中,输入“typemyrsapubkey.pem”命令查看文件“myrsapubkey.pem”中的公钥内容,如图10-5所示。

图10-5查看文件中的公钥内容

2.用公钥对文件加密和用私钥对文件解密

步骤一 用公钥对文件加密。

在如图8-2所示页面,输入命令“opensslrsautl-encrypt-in026h231f.txt-inkeymyrsaCA.key-outpub026h231f.enc”(注意所有的-符号的前面都有一个空格)后,如图10-6所示,根据提示输入保护密码,敲入回车键完成加密(自己尝试查看加密后的文件,命令为“typepub026h231f.enc”)。

(命令的含义:

rsautl指令能够使用使用RSA算法签名,验证身份,加密和解密数据。

-infilename指定输入文件名;

-outfilename指定输出文件名;

-inkeyfilename指定私有密钥文件,格式必须是RSA私有密钥文件;

-pubin指定公共密钥文件

-sign给输入的数据签名,需要用到私有密钥文件

-verify对输入的数据进行验证

-encrype用公共密钥对输入的数据进行加密

-decrypt用RSA的私有密钥对输入的数据进行解密)

图10-6加密后的文件

步骤二用私钥对加密文件解密。

在如图8-2所示页面中,输入命令“opensslrsautl-decrypt-inpub026h231f.enc-inkeymyrsaCA.key-outnewpub026h231f.txt”(注意所有的-符号的前面都有一个空格)后,根据提示输入原先设定的保护密码,出现如图10-7页面。

(命令的含义:

rsautl指令能够使用使用RSA算法签名,验证身份,加密和解密数据。

-infilename指定输入文件名;

-outfilename指定输出文件名;

-inkeyfilename指定私有密钥文件,格式必须是RSA私有密钥文件;

-decrypt用RSA的私有密钥对输入的数据进行解密)

图10-7用私钥对文件解密

步骤三查看解密后的newpub026h231f.txt文件的内容,命令“typenewpub026h231f.txt”。

如图10-8所示。

判别是不是与源文件026h231f.txt的内容一致。

图10-8判别与源文件内容的一致性

3.用私钥对文件加密和用公钥对文件解密(提示:

类似签名过程)

步骤一 用私钥对026h231f.txt文件加密。

在如图8-2所示页面中,输入命令“opensslrsautl-sign-in026h231f.txt-inkeymyrsaCA.key-outpri026h231f.enc”(注意所有的-符号的前面都有一个空格),然后按回车键,出现如图10-9所示的页面(注:

文件026h231f.txt不能太大,大了就会出错),然后输入原先设定的保护密码,完成对文件的加密。

(命令的含义:

rsautl指令能够使用使用RSA算法签名,验证身份,加密和解密数据。

-infilename指定输入文件名;

-outfilename指定输出文件名;

-inkeyfilename指定私有密钥文件,格式必须是RSA私有密钥文件;

-pubin指定公共密钥文件

-sign给输入的数据签名,需要用到私有密钥文件)

图10-9命令提示符

步骤二 用公钥对026h231f.tx文件解密(提示:

类似对签名进行验证),命令为“opensslrsautl-verify-inpri026h231f.enc-inkeymyrsaCA.key-outnewpri026h231f.txt”(注意所有的-符号的前面都有一个空格),输完按回车键,出现如图10-10所示的页面(注:

需输入原先设定的保护密码)

(命令的含义:

rsautl指令能够使用使用RSA算法签名,验证身份,加密和解密数据。

-infilename指定输入文件名;

-outfilename指定输出文件名;

-verify对输入的数据进行验证

图10-10用公钥解密文件

步骤三 查看解密后的newpri026h231f.txt文件的内容。

在如图10-10所示页面中,输入命令“typenewpri026h231f.txt”,回车后便可查看文件的内容,然后判别是不是与源文件026h231f.txt的内容一致。

(四)搜索《中华人民共和国电子签名法》,通过阅读熟悉该电子签名法的主要内容,每个部分内容都解决了什么问题。

(五)搜索《中国互联网络信息中心域名争议解决办法》,阅读并熟悉其主要内容。

四、实验结果

1、把加密前的明文文件(如026h321f.txt)的内容显示在下面空白处。

 

2、把对明文进行对称加密后的内容(如out026h231f.des文件)显示在下面空白处。

 

4、把对对称加密密文(如out026h231f.des文件)进行解码的内容(如new026h231f.txt)显示在下面空白处。

比较new026h231f.txt与026h321f.txt是否一致。

 

5、将图10-3中私有密钥文件中的私钥内容显示在下面空白处,可通过查看OPENSSL安装目录中的文件myrsaCA.key,打开即为私钥内容。

 

6、将图10-6中公钥加密后的密文(如pub026h231f.enc)的内容,以及公钥文件myrsapubkey.pem的内容显示在下面空白处(可通过查看OPENSSL安装目录中的文件myrsapubkey.pem,打开即为公钥内容)。

 

7、将图10-9中私钥加密后的密文(如pri026h231f.enc)的内容,以及私钥文件myrsaCA.key的内容显示在下面空白处。

五、实验思考

 

【相关知识】

1.OpenSSL简介

Openssl是一个自由软件,包含了SSL接口、对称加密、非对称加密及PKCS接口(包括X509证书、PKCS标准、ASN.1)等功能。

到目前为止,Openssl已发展到0.95版,功能越来越丰富。

OpenSSL软件由两部分组成,分为ssleay模块和openssl模块。

openssl模块是建立在ssleay模块上的一个高级应用;ssleay模块是整个Openssl软件的核心,由EricA.Young和TimJ.Hudson用标准C语言写成,能跨平台运行,功能很齐全,涉及的范围很广,提供的接口大约有2000多个,其中有关对称加密的算法主要有:

DES、IDEA、RC2、RC4、RC5、Blowfish、CAST等;有关非对称加密算法主要有:

RSA、DH、DSA等;有关哈稀算法主要有:

MD2、MD5、SHA、SHA-1、RIPEMD、MDC2等。

单从实现的这些算法来看,就足以用它们构建起各种有关数据加密的应用和PKCS接口了。

更难能可贵的是,它打破了美国不允许强加密产品出口的限制,使用ssleay,完全可以替代微软所提供的用组件来加密应用的低强度加密。

通过调用ssleay接口,开发自己的应用,可以做到SSL的128位甚至更高位数的数据加密。

ssleay除提供底层的加密算法外,还实现了大部分PKCS功能,如PKCS1(对RSA加密算法的描述)、PKCS3(Diffie-Hellmen密钥协商)、PKCS5(基于口令进行加密的标准)、PKCS6(扩展证书语法标准)、PKCS7(加密信息表示的语法标准)、PKCS8(私钥信息语法标准)、PKCS10(证书申请语法标准)、PKCS12(个人身份信息迁移语法标准)。

由于PKCS是一套有关使用公开密钥进行加密的标准,用以规范加密算法的处理,规范数字证书、数据封装、数字签名,以及个人私有信息保护的实现,因而单独利用ssleay,就能实现标准数字证书的申请、签发,个人信息(如证书、私钥等)的安全存放、数据加密、数据密封、数据签名。

正因为OpenSSL有这么强大的功能并且还开放源代码,所以被广泛用于各种应用,在Linux系统中尤为多见。

值得一提的是,OpenSSL的license是ssleaylicense和openssllicense的结合,属于BSD类型。

按照license里面的说明,OpenSSL可以被用于各种商业、非商业的用途,当然也需遵守一些基本协议,目的是为了保护软件作品,其他人想要在ssleay或openssl的基础上进行开发,必须遵守它的license。

OpenSSL软件包含表13-1-1中的一些主要文件。

表14-1-1OpenSSL中的主要文件

文件

说明

libssl.a

实现了SSLv2、SSLv3、TLSv1的安全功能

libcrypto.a

实现了加密、摘要、证书生成的功能,其中对称加密包括DES、RC4、RC2、IDEA,摘要包括MD5、MD2、SHA(SHA-0,SHA-1)、MDC2,公钥加密包括RSA、DSA、Diffie-Hellman

openssl

一个命令行实用工具,可用来生成证书

2.Openssl的安装

从www.openssl.org网站下载相应平台下的OpenSSL压缩软件包,如openssl-0.9.7d.tarforwindows版,把它解压缩到某个目录如c:

openssl下,按照安装手册中的安装要求进行安装。

由于OpenSSL软件是用C语言和Perl语言编写的,安装时需要使用C语言编译器来进行编译和Perl语言来进行解释,因此,要求在安装OpenSSL之前系统平台上必须先装有Perl语言和C语言编译器,Perl语言可以使用ActiveStatePerl,网站C++或BorlandC或GNUC(CygwinorMinGW)三者之一。

下面以Windows平台为例,说明安装OpenSSL软件的具体步骤,详细情况可参见Install.w32文件说明(unix平台下可参照INSTALL文件说明,OpenVMS平台下可参照INSTALL.VMS文件说明)。

1)运行配置文件Configure,进行环境变量设置

执行步骤为:

c:

openssl>perlConfigureVC-WIN32

c:

openssl>msdo_ms

如果Windows下存在masm编译器,也可运行msdo_masm文件来代替do_ms文件。

2)编译Openssl软件

若为vc++环境,则执行:

c:

openssl>nmake-fmstdll.mak

成功后,将会在c:

openssl下生成out32dll目录,目录下存有Openssl的相关dll文件和exe文件。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1