实验三 加密与解密
【实验说明】
本实验采用OPENSSL开放源程序,整个电子商务安全实验分为2个小实验,实验采用命令方式操作,每个实验步骤进行详细说明,没有任何DOS命令基础的学生都可以顺利完成整个实验操作。
通过本实验可以了解对源文件进行base64编码和解码的整个过程
1. OpenSSL简介
Openssl是一个自由软件,包含了SSL接口、对称加密、非对称加密及PKCS接口(包括X509证书、PKCS标准、ASN.1)等功能。到目前为止,Openssl已发展到0.95版,功能越来越丰富。
OpenSSL软件由两部分组成,分为ssleay模块和openssl模块。openssl模块是建立在ssleay模块上的一个高级应用;ssleay模块是整个Openssl软件的核心,由Eric A. Young和Tim J. 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是ssleay license和openssl license的结合,属于BSD类型。按照license里面的说明,OpenSSL可以被用于各种商业、非商业的用途,当然也需遵守一些基本协议,目的是为了保护软件作品,其他人想要在ssleay或openssl的基础上进行开发,必须遵守它的license。
OpenSSL软件包含下表中的一些主要文件。
文件 | 说明 |
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的安装
从 网站下载相应平台下的OpenSSL压缩软件包,如openssl-0.9.7d.tar for windows版,把它解压缩到某个目录如c:openssl下,按照安装手册中的安装要求进行安装。由于OpenSSL软件是用C语言和Perl语言编写的,安装时需要使用C语言编译器来进行编译和Perl语言来进行解释,因此,要求在安装OpenSSL之前系统平台上必须先装有Perl语言和C语言编译器,Perl语言可以使用ActiveState Perl,网站 上可进行自由下载;至于C语言编译器,可为Visual C++或Borland C或GNU C (Cygwin or MinGW)三者之一。
下面以Windows平台为例,说明安装OpenSSL软件的具体步骤,详细情况可参见Install.w32文件说明(unix平台下可参照INSTALL文件说明,OpenVMS平台下可参照INSTALL.VMS文件说明)。
1)运行配置文件Configure,进行环境变量设置
执行步骤为: c:openssl>perl Configure VC-WIN32
c:openssl>msdo_ms
如果Windows下存在masm编译器,也可运行msdo_masm文件来代替do_ms文件。
2)编译Openssl软件
若为vc++环境,则执行:c:openssl>nmake -f mstdll.mak
成功后,将会在c:openssl下生成out32dll目录,目录下存有Openssl的相关dll文件和exe文件。
【准备工作】
共享文件如何加密步骤一 下载OPENSSL安装包。(下载地址:)
步骤二 解压缩软件包,解压缩在C盘根目录下,自动生成OPENSSL文件夹。
步骤三 点击“开始”、“程序”、“附件”、“命令提示符”,打开“命令提示符”窗口。
步骤四 在“C:\Documents and Settingsowner>”键入cd c:\openssl\out32dll,输入后按回车键,进入到openssl\out32dll的目录下
实验3.1用对称加密的方法对某个文件进行加密和解密
【实验目的】
(1)熟悉用对称加密的方法加密和解密。
【实验说明】
通过本实验可以了解用对称加密的方法加密和解密的整个过程
【实验内容及步骤】
步骤一 用记事本创建一个文本文件,文件名为学生的学号(如),内容为学生的名字和学号,保存在c:\openssl\out32dll的文件夹下。
步骤二 输入命令“openssl enc -des3 - -out out026h231f.des”,输入后按回车键,加密过程中会提示你输入保护密码,按回车键后会再输一次密码进行确认,(注:输入密码时屏幕无任何显示)。执行完上述命令完后,在c:\openssl\out32dll目录下会自动生成一个用des3算法加密后out026h231f.des的文件。
步骤三 用“type out026h231f.des”命令查看加密后的out026h231f.des文件的内容。
步骤四 用“openssl enc -des3 -d -in out026h231f.des -”命令对文件内容进行解码(注:这里需要输入原先设定的保护密码)。
步骤五 输入命令查看解密后的文件内容。判别是不是与源文件的内容一致。
【相关知识】
1. 基于私有密钥体制的信息认证
基于私有密钥(private key,私钥)体制的信息认证是一种传统的信息认证方法。这种方法采用对称加密算法,也就是说,信息交换的双方共同约定一个口令或一组密码,建立一个通讯双方共享的密钥。通信的甲方将要发送信息用私钥加密后传给乙方,乙方用相同的私钥解密后获得甲方传递的信息。
由于通信双方共享同一密钥,通信的乙方可以确定信息是由甲方发出的。这是一种最简单的信息来源的认证方法。图12-1是对称加密示意图。
对称加密算法有多种,最常用的是DES算法。该算法于1975年由IBM公司研制成功,采用多次换位与替代相组合的处理方法。这种算法被美国国家标准局于1977年1月正式确定为美国的统一数据加密标准,近30年来得到了广泛的应用。
对称加密算法在电子商务交易过程中存在三个问题:
(1)要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥。直接的面对面协商可能是不现实而且难于实施的,所以双方可能需要借助于邮件和电话等其它相对不够安全的手段来进行协商。
(2)密钥的数目将快速增长而变得难于管理,因为每一对可能的通讯实体需要使用不同的密钥,很难适应开放社会中大量的信息交流。
(3)对称加密算法一般不能提供信息完整性的鉴别。
实验3.2 利用RSA非对称密钥对文件进行加密与解密
【实验目的】
熟悉利用RSA非对称密钥对文件进行加密与解密的整个过程方法。
【实验说明】
通过本实验可以了解用非对称加密的方法加密和解密的整个过程。
【实验内容及步骤】
1. 基本过程
步骤一 用记事本创建一个文本文件,文件名为学生的学号(如),内容为学生的名字和学号,保存在c:\openssl\out32dll的文件夹下。
步骤二 产生一个私钥。具体的操作步骤如下:输入命令“openssl genrsa -des3 -out myrsaCA.key 1024”,输入后按回车键,出现等待提示页面,提示你输入保护密码,按回车键后会再输一次密码进行确认(注:输入密码时屏幕无任何显示)。执行完上述命令完后,在c:\openssl\out32dll目录下会自动生成一个用于存放rsa私钥的文件myrsaCA.key。
步骤三 查看私钥内容。在c:\openssl\out32dll输入“openssl rsa -in myrsaCA.key -text –no
out”命令,然后根据提示输入先前设定的保护密码,查看私有密钥文件中的私钥内容。
步骤四 导出公共密钥,输入命令:openssl rsa -in myrsaCA.key -pubout -out myrsapubkey.pem(注:需输入原先设定的保护密码),产生一个存放共钥myrsapubkey.pem文件。
步骤五 查看公钥内容。在c:\openssl\out32dll,输入“type myrsapubkey.pem”命令查看文件“myrsapubkey.pem”中的公钥内容。
2. 用公钥对文件加密和用私钥对文件解密
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论