实验2 数据加密与数字签名

更新时间:2023-10-19 10:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验2 数据加密与与数字签名

一、实验目的与要求

体验各种密码体制的数据安全操作与数据安全软件以及了解我国的电子商务法律,并思考应如何做好电子商务的安全防范。

二、实验内容 1. 2. 3. 4. 5.

运行C语言编程的加密程序。

PGP软件的下载与使用(对邮件以及文件加密)或Openssl软件。 非密码的安全技术。

各国发展电子商务的政策和制定的电子商务法律。 我国第一部电子签名法的内容与实施

三、实验软件

Windows XP ,IE 7 ,PGP软件,Openssl软件 四、实验步骤

(一)数据安全软件的使用 1. 2. 3. 解密)

(1)生成源文件。用记事本创建一个文本文件,文件名为学号

(026h231f.txt),内容为学生的名字与学号,保存在c:\\openssl\\out32dll的文件夹下。

(2)对源文件进行对称加密。输入命令:“openssl enc-des3-in 026h231f.txt-out out026h231f.des”回车后,在加密过程中系统会提示输入保护密码,输入密码后,再次确认(输入密码时屏幕无任何显示),系统在c:\\openssl\\out32dll目录下自动生成一个des3算法加密后的out026h231f.des文件。

(3)查看加密的文件。输入命令:“type out026h23lf.des”,查看加密后的out026h231f.des文件的内容。

下载PGP与安装PGP(见附录) 利用PGP对邮件或磁盘文件进行加密

或者利用Openssl做如下操作:(用对称加密法对文件进行加密与

(4)对加密文件进行解密。输入命令“openssl enc-des3-d-in out026h231f.des -out new026h231f.txt”,并根据提示输入解密密码,对“outmane.txt”文件内容进行解码。

(5)比较解密后文件和源文件,输入命令“type new026h23lf.txt”,查看解密后的文件内容,判断是否与源文件026h23lf.txt的内容一致。 (二)验证恺撒密码 1、请输入如下程序: #include main() { char c;

while((c=getchar())!=’\\n’) {

if((c>=’a’&&c<=’z’)||(c>=’A’&&c<=’Z’)) { c=c+3;

if(c>’z’&&c<=’z’+3||c>’Z’&&c<’Z’+3) c=c-26; }

printf(“%c”,c);}}

2、验证是否是素数?的C语言程序 #include Main() {

Int m,I,k; Scanf(“%d,&m”); K=aqrt(m); For(i=2;i<=k;i++) If(m%i==0)break;

If(i>k) printf(“%d is a prime number\\n”,m); Else printf(%d is not a prime number\\n”,m);} (三)了解RSA加密算法

(四)了解我国非密码的安全技术的发展

(五)了解各国发展电子商务的政策和制定的电子商务法律。 (六)了解我国第一部电子签名法的内容与实施

上网查找《中华人民共和国电子签名法》的内容,分析该法所涉及的技术问题,体会它被称为我国第一部“真正意义上的信息化法律”的含义。

五、写出实验报告

通过这次的实验,能够更好地了解电子商务的安全问题,了解电子商务的安全对策,电子商务发展所依托的平台—互联网络充满了巨大、复杂的安全风险,如黑客的攻击、病毒的肆虐等等都使得电子商务业务很难安全顺利地开展;此外,电子商务的发展还面临着严峻的内部风险,请结合你对电子商务的安全情况的了解,结合电子商务安全的风险管理与电子商务法律的实施,谈谈你对本实验的心得。

附录:PGP软件的使用的步骤:

1. 2. 3. 4. 5.

PGP软件安装。 生成或导入密钥对。

导出或备份密钥对和单独导出公钥。

双方相互发送加密文件,并对接受到的文件进行解密。 双方相互发送签名文件,并对接受到的文件验证对方的签名。

分别修改经过签名的文件的文件名和文件内容,并进行签名的验证,查看和分析所出现的验证结果。

[一]到www.pgp.com网站下载PGP。 【二】启动PGP工具,生成密钥对 1)

启动PGP工具

按执行软件的一般方法,点击“开始”—“程序”—“PGP”—“PGPkeys”

(如果“PGP”中是空的,你可以在“开始”—“程序”—“启动”中找到“PGP”—“PGPtray”),即可启动PGP工具的密钥管理界面,你也可以点击屏幕右下角的PGPtray 图标(

2)

) ,再 选择“PGPkeys”。

生成密钥对

或者选择菜单中的“Keys”

? 在以上PGPkeys界面中,点击工具栏中的

—“New Key”。The PGP Key Generation Wizard将会提供一些介绍性的信息,读后点“下一步”。

? 在“Full Name”框中输入你的用户名(用户名使用学号,譬如:0321XXX),在“Email Address”框中输入你的Email地址,然后点“下一步”。

? 在Passphrase界面中,设置并输入用于以后启用你私钥的密码,在下面的方框内再次输入你私钥的密码已进行确认。为了保密,通常你输入的密码不显示在屏幕上。但如果你确定没有人在偷看,而且你也想看看你输入的密码,将“Hide Typing”小方框中的勾去掉即可。

? 点“下一步”,系统开始自动制作密钥对,当提示完成时,点“下一步”。 ? 点“完成”。 2.

上传和下载公钥。

【三】上传公钥

在PGPkeys的主界面中选中将要上传的密钥,然后依次选择菜单中的“Server”—“Send To”—“ldap://keyserver.pgp.com”进行公钥的上传,上传完毕后,PGPkeys会提示你上传成功,这样你的公钥就已上传到了PGP的keyserver服务器,其它人可以根据你的用户名或Email地址搜索你的公钥,并下载。

【四】下载公钥

在PGPkeys的主界面中依次选择菜单中的“Server”—“Search?”进入下图所示界面。

在手指所指位置所入用户号或其他搜索条件,譬如“zxz”,服务器便会在所有以上传的公钥中搜索符合条件的公钥,并加以显示。

按下图所示,在所有搜索到的公钥中找到你所需要的公钥并选中该公钥,使用鼠标右键调出快捷菜单,选中“Import to Local Keyring”将该公钥导入到本地的密钥管理器中。

答:PGP有以下主要功能:

1. 使用 PGP 对邮件加密,以防止非法阅读;

2. 能给加密的邮件追加上数字签名,从而使收信人进一步确信邮件的发送者,而事先

不需要任何保密的渠道用来传递密钥;

3. 可以实现只签名而不加密,适用于发表公开声明时证实声明人身份,也可防止声明

人抵赖,这一点在商业领域有很大的应用前景;

4. 能够加密文件,包括图形文件、声音文件以及其它各类文件;

5. 利用 PGP代替 Uuencode生成RADIX64(就是 MIME的BASE 64格式)的编码文件。 设甲要寄信给乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信来信是不是甲的,这就是数字签名的必要性,用数字签名来确认发信的身份。

PGP的数字签名是利用一个叫“邮件文摘”的功能,“邮件文摘”(message digest),简单地讲就是对一封邮件用某种算法算出一个最能体现这封邮件特征的数来,一旦邮件有任何改变这个数都会发生变化,那么这个数加上用户的名字(实际上在用户的密钥里)和日期等等,就可以作为一个签名了,确切地说PGP是用一个128位的二进制数进行为\邮件文摘\的,用来产生它的算法就是MD5。MD5的提出者是Ron Rirest,PGP中使用的代码是由Colin Plumb 编写的MD5,MD5是一种单向散列算法,它不像校验码,是一份替代的邮件并且与

原件具有同样的MD5特征值。

PGP给邮件加密和签名的过程是这样的:首先甲用自己的私钥将上述的128位值加密,附加在邮件后,再用乙的公钥将整个邮件加密(要注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公钥解密签名所得到的数进行比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。

PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份(在网络上只能如此了),可以用自己的私签名,这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。

为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法,又称为“对称加密法”。

传统加密方法就是用一个密钥加密明文,然后用同样的密钥解密。这种方法的代表是DES,这的主要缺点就是密码长度较短,且传递渠道解决不了安全性问题,不适合网络环境邮件加密需要。

IDEA是一个有专利的算法,它的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥(每次加密不一样),用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。

PGP加密前会对文件进行预压缩处理,PGP内核使用 PKZIP 算法来压缩加密前的明文。一方面对文件而言,压缩后加密产生的密文可能比明文更短,这就节省了网络传输的时间。另一方面,明文经过压缩,实际上相当于经过一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。PGP中使用的PKZIP算法是经过原作者同意的。PKZIP算法是一个公认的压缩率和压缩速度都相当好的压缩算法。在PGP中使用的是PKZIP 2.0版本兼容的算法。

原件具有同样的MD5特征值。

PGP给邮件加密和签名的过程是这样的:首先甲用自己的私钥将上述的128位值加密,附加在邮件后,再用乙的公钥将整个邮件加密(要注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公钥解密签名所得到的数进行比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。

PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份(在网络上只能如此了),可以用自己的私签名,这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。

为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法,又称为“对称加密法”。

传统加密方法就是用一个密钥加密明文,然后用同样的密钥解密。这种方法的代表是DES,这的主要缺点就是密码长度较短,且传递渠道解决不了安全性问题,不适合网络环境邮件加密需要。

IDEA是一个有专利的算法,它的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥(每次加密不一样),用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。

PGP加密前会对文件进行预压缩处理,PGP内核使用 PKZIP 算法来压缩加密前的明文。一方面对文件而言,压缩后加密产生的密文可能比明文更短,这就节省了网络传输的时间。另一方面,明文经过压缩,实际上相当于经过一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。PGP中使用的PKZIP算法是经过原作者同意的。PKZIP算法是一个公认的压缩率和压缩速度都相当好的压缩算法。在PGP中使用的是PKZIP 2.0版本兼容的算法。

本文来源:https://www.bwwdw.com/article/zaof.html

Top