PGP软件系统实验步骤

时间:2024.3.31

练习二 利用PGP实现安全通信过程

【实验目的】

1. 理解PGP邮件加密实现安全通信的原理

2. 通过实验实现对邮件加密后安全通信

3. 学习对文件和文件夹加密的简单原理并利用工具实现对文件和文件夹加密、解密过程

【实验人数】

每组2人

【系统环境】

Windows虚拟机

【实验环境】

该实验采用网络结构一

【实验工具】

Gnupg——PGP加密及签名工具。

【实验原理】

一.PGP简介

在现代社会里,电子邮件和网络上的文件传输已经成为生活的一部分。邮件的安全问题也就突出了,大家都知道在互联网上传输的数据是不加密的。如果用户不保护自己的信息,第三者就会轻易获得用户的隐私。还有一个问题就是信息认证,如何让收信人确信邮件没有被第三者篡改,就需要使用数字签名技术。

RSA公钥体系的特点使它非常适合用来满足上述两个要求:保密性(privacy)和公证性(authentication)。PGP(Pretty Good Privacy),是一个基于 RSA 公钥加密体系的邮件加密软件,它提出了公共钥匙或不对称文件加密和数字签名。其创始人是美国的 Phil Zimmermann 。他的创造性在于他把 RSA 公钥体系的方便和传统加密体系的高速结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计,因此 PGP 成为目前几乎最流行的公钥加密软件包。

PGP有以下主要功能:

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

2. 能给加密的邮件追加上数字签名,从而使收信人进一步确信邮件的发送者,而事先不需要任何保密的渠道用来传递密钥;

3. 可以实现只签名而不加密,适用于发表公开声明时证实声明人身份,也可防止声明人抵赖,这一点在商业领域有很大的应用前景;

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

5. 利用 PGP代替 Uuencode生成RADIX64(就是 MIME的BASE 64格式)的编码文件。

二.PGP的加密机制

假设甲要寄信给乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信来信是不是甲的,这就是数字签名的必要性,用数字签名来确认发信的身份。

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版本兼容的算法。

【实验步骤】

本次练习由2名同学使用Windows虚拟机共同完成,以下简称为单号机和双号机。本机用户名为userX,X为本主机编号,,本机用户名则为user1。userY为对方用户名,Y为对方主机编号。

首先使用【快照X】恢复Windows虚拟机。

任务一:PGP安全通信

1. 单、双号机生成公私密钥

(1) 单、双号机在【网络信息安全教学实验平台->密码学应用实验->利用PGP实现安

全通信过程】中打开【GnuPG】控制台。

(2) 在控制台中输入命令:

gpg --gen-key

(3) 在选择使用的密码种类时输入“1”(DSA和El Gamal);

(4) 接下来在“钥匙长度”中选择默认,直接点击回车;

(5) 在“密钥的有效期”中输入“0”(永不过期);

(6) 在输入“y”后会提示填入用户标识(以user5D为例);

(7) 真实姓名:user5D;电子邮件地址:user5D@CServer.NetLab;注释:user5D;

(8) 则选定了这个用户标识:user5D (user5D) (user5D@CServer.NetLab);

(9) 在确定以上信息后,需要填写自己的密码,为了方便记忆,我们选择密码与用户名

相同;

(10) 这样就生成公、私钥,存放在“C:\Documents and Settings\Administrator\

Application Data\gnupg”下,名字分别为:“pubring.gpg”和“secring.gpg”

2. 导出公钥

? 单、双号机在控制台中输入命令:

gpg -a -o D:\work\PGP\userXpubkey.asc --export user5D (user5D) (user5D@CServer.NetLab)

? 即可将公钥导入到“ D:\work\PGP\”这个指定目录的user5Dpubkey.asc文件

中。

【注】双号机应为user2,公钥导入到user2pubkey.asc文件中。

3. 传递公钥

? 单号机使用Outlook Express将公钥以电子邮件的形式发送给双号机。双号机

接收邮件并将公钥文件存到 “D:\work\PGP\”下。双号机同样将公钥发给单号机,并由单号机保存到“D:\work\PGP\”下。

4. 导入对方公钥

? 单号机在控制台中输入命令:

gpg --import D:\Work\PGP\user5Cpubkey.asc

? 双号机在控制台中输入命令:

gpg --import D:\Work\PGP\user5Cpubkey.asc

即可导入对方公钥。

5. 双号机利用对方公钥进行加密并用自己的私钥签名

(1) 在“D:\Work\PGP\”目录中新建一文本文件“user5D.txt”,内容是:______

______________________________________________________________________________________________

(2) 在控制台中输入命令:

gpg -sea -r user5C@CServer.NetLab 待加密文件及目录

? 如gpg -sea -r userY@CServer.NetLab D:\Work\PGP\test.txt,在提示处输入前面所设置的密码(已设置为与用户名相同),然后输入“y”即可完成用对方公钥对本地文件进行加密。

(3) 这时在原文件所在目录下,生成了一个“原文件名.asc”的加密文件

6. 双号机将加密文件发送给单号机

? 双号机利用Outlook Express将生成的加密文件以附件形式发送给单号机。

7. 单号机解密PGP文件

(1) 接收邮件并将附件保存到目录“D:\Work\PGP\”中。

(2) 在命令行中输入命令:

gpg -d 加密文件目录及名称 >欲存目录及名称

? 如gpg -d D:\Work\PGP\text.txt.asc > D:\Work\PGP\original.txt

(3) 这时在存放加密文件的目录下就生成了一个解密后的文件。

(4) 打开解密文件,浏览正文,内容是:_____________________

___________________________________________________________________________

8. 单、双号机交换角色,将5~7步再做一遍。

【思考问题】

简述PGP的加密原理,说明为什么PGP要比RSA加密速度要快得多。


第二篇:实验-PGP加密软件的使用


实验PGP加密软件的使用

实验PGP加密软件的使用

实验PGP加密软件的使用

实验PGP加密软件的使用

实验PGP加密软件的使用

实验PGP加密软件的使用

更多相关推荐:
文件系统实验报告

实验二文件系统实验报告一实验简介本实验要求在假设的IO系统之上开发一个简单的文件系统这样做既能让实验者对文件系统有整体了解又避免了涉及过多细节用户通过createopenread等命令与文件系统交互文件系统把磁...

操作系统文件系统实验报告后附源代码

目录1课程设计简介111课程设计的目的112课程设计内容12数据结构的设计221预定义222结构体223全局变量和函数23功能模块或算法描述531模块划分432模块流程图64程序运行结果85心得体会9参考文献1...

操作系统 实验报告 文件管理

昆明理工大学信息工程与自动化学院学生实验报告201201学年第二学期课程名称操作系统开课实验室年月日一实验目的用C或C语言编写和调试一个简单的文件系统模拟文件管理的基本功能从而对各种文件操作命令的实质内容和执行...

简单文件系统的实现实验报告

操作系统课程设计报告简单文件系统的实现专业班级姓名学号老师一课程设计的目的1通过具体的文件存储空间的管理文件的物理结构目录结构和文件操作的实现加深对文件系统内部数据结构功能以及实现过程的理解二课程设计要求1在内...

文件系统实验报告

试验四文件系统一实验目的1用高级语言编写和调试一个简单的文件系统模拟文件管理的工作过程从而对各种文件操作命令的实质内容和执行过程有比较深入的了解2要求设计一个n个用户的文件系统每次用户可以保存M个文件用户在一次...

实验四 文件系统实验报告

实验四文件系统实验一目的要求1用高级语言编写和调试一个简单的文件系统模拟文件管理的工作过程从而对各种文件操作命令的实质内容和执行过程有比较深入的了解2要求设计一个n个用户的文件系统每次用户可保存m个文件用户在一...

简单文件系统的实现的实验报告

杭州电子科技大学操作系统课程设计完成日期20xx528负责老师胡志凌专业计算机科学与技术22学院计算机学院学号09056012班级09056011课程设计题目简单文件系统的实现姓名庄严简单文件系统的实现一课程设...

操作系统实验报告

操作系统上机实验报告班级学号姓名实验地点E区203实验时间20xx92620xx125实验一进程的建立实验目的创建进程及子进程在父子进程间实现进程通信实验软硬件环境Linux实验内容创建进程并显示标识等进程控制...

Unix操作系统实验报告

Unix操作系统实验报告计算机科学与技术学院实验一Linux基本命令一实验目的掌握linux平台下的基本命令40个二实验说明在介绍所有的命令之前先介绍一下Linux的在线帮助man在Linux下当你要查找一个命...

操作系统实验报告 西安交通大学

操作系统专题实验报告系别计算机科学与技术专业班级计算机15学生姓名高君宇学号2110505112联系电话187xxxxxxxx提交日期20xx年5月4日实验一系统调用31实验目的32实验内容33实验原理34实验...

操作系统实验报告

XXXX大学20xx年20xx年第2学期院系计算机信息工程学院专业信息管理与信息系统课程名称操作系统原理及应用班级姓名学号指导教师实验一操作系统环境与用户界面实验二目录和文件的管理实验三访问权限用户管理与文件系...

内核,文件系统实验报告一

嵌入式系统实验报告一091180083刘浩通信工程一实验目的了解嵌入式系统的开发环境内核的下载和启动过程了解Linux内核源代码的目录结构及相关内容了解Linux内核各配置选项的内容和作用掌握Linux内核的编...

文件系统实验报告(29篇)