20155202 信息安全技术概论实验一 PGP的使用

实验原理

一.PGP简介

在现代社会里,电子邮件和网络上的文件传输已经成为生活的一部分。邮件的安全问题也就突出了,大家都知道在互联网上传输的数据是不加密的。如果用户不保护自己的信息,第三者就会轻易获得用户的隐私。还有一个问题就是信息认证,如何让收信人确信邮件没有被第三者篡改,就需要使用数字签名技术。
RSA公钥体系的特点使它非常适合用来满足上述两个要求:保密性(privacy)和认证性(authentication)。PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件,它提供了非对称加密和数字签名。其创始人是美国的Phil Zimmermann,他把RSA公钥体系的方便和传统加密体系的高速结合起来,并且在数字签名和密钥认证管
理机制上有巧妙的设计,因此PGP成为目前非常流行的公钥加密软件包。

PGP有以下主要功能:

使用PGP对邮件加密,以防止非法阅读;
能给加密的邮件追加上数字签名,从而使收信人进一步确信邮件的发送者,而事先不需要任何保密的渠道用来传递密钥;
可以实现只签名而不加密,适用于发表公开声明时证实声明人身份,也可防止声明人抵赖,这一点在商业领域有很大的应用前景;
能够加密文件,包括图形文件、声音文件以及其它各类文件;
利用PGP代替Unicode生成RADIX64(就是MIME的BASE 64格式)的编码文件。

二.PGP加密机制

假设甲要寄信给乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确定来信是不是甲的,这就是数字签名的必要性,用数字签名来确认发信的身份。
PGP的数字签名是利用一个叫“邮件文摘”的功能,“邮件文摘”(message digest),简单地讲就是对一封邮件用某种算法算出一个最能体现这封邮件特征的数来(一旦邮件有任何改变这个数都会发生变化),这个数加上用户的名字(实际上在用户的密钥里)和日期等等,就可以作为一个签名了,确切地说PGP是用一个128位的二进制数做为“邮件文摘”的,用来产生它的算法就是MD5。
PGP给邮件加密和签名的过程是这样的:首先甲用自己的私钥将上述的128位值加密,附加在邮件后,再用乙的公钥将整个邮件加密(要注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的特征值来和用甲的公钥解密签名所得到的数进行比较,如果符合就说明这份邮件确实是甲寄来的。这样两个安全性要求都得到了满足。
PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份,可以用自己的私钥签名,这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。
为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法。
IDEA是一个有专利的算法,它的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥(每次加密不一样),用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。
PGP加密前会对文件进行预压缩处理,PGP内核使用PKZIP算法来压缩加密前的明文。一方面对文件而言,压缩后加密产生的密文可能比明文更短,这就节省了网络传输的时间。另一方面,明文经过压缩,实际上相当于经过一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。PGP中使用的PKZIP算法是经过原作者同意的。PKZIP算法是一个公认的压缩率和压缩速度都相当好的压缩算法。在PGP中使用的是PKZIP2.0版本兼容的算法。

实验过程

  1. 启动pgp10.1,这个程序是用来控制和调用PGP 的全部组件的,接下来进入 新用户创建与设置。新建pgp密钥后,会出现一个PGP Key Generation Wizard(PGP密钥生成向导),点“下一步”按钮,进入Name and Email Assignment(用户名和电子邮件分配)界面,在Full name(全名)处输入你想要创建的用户名,Email address处输入用户所对应的电子邮件地址。

  2. 进入Key Generation Progress密钥生成进程,等待主密钥Key和次密钥Subkey。 生成完毕(出现完成)。点击“下一步”按钮,进入Completing the PGP Key Generation Wizard(完成该PGP密钥生成向导)再点“完成”按钮,用户就创建并设置好了。

  3. 启动PGPkeys,在这里你将看到你密钥的一些基本信息,如:Validity(有效性,PGP系统检查是否符合要求,如符合,就显示为绿色)、Trust(信任度)、Size(大小)、Description (描述)、Key ID(密钥ID)、Creation(创建时间)、Expiration(到期时间)等(如果没有那这么多信息,使用菜单组里的“VIEW(查看)”,并选中里面的全部选项

  4. 导出密钥 这里的用户其实是以一个“密钥对”形式存在的,也就是说其中包含了一个公钥(公用密钥,可分发给任何人,别人可以用此密钥来对要发给你的文件或者邮件等进行加密)和一个私钥(私人密钥,只有你一人所有,不可公开分发,此密钥用来解密别人用公钥加密的文件或邮件)。现在我们要做的就是要从这个“密钥对”内导出包含的公钥。单击显示有你刚才创建的用户那里,再在上面点右键,选“Export„导出

  5. 保存密钥 在出现的保存对话框中,确认是只选中了“Include 6.0 Extensions”(包含6.0公钥),然后选择一个目录,再点“保存”按钮,即可导出你的公钥,扩展名为.asc。

  6. 利用U盘互换公钥

  7. 导入公钥直接点击(根据系统设置不同,单击或者双击)对方发给你的扩展名为.asc的公钥,将 会出现选择公钥的窗口,在这里你能看到该公钥的基本属性,如有效性、创建时间,信任度等,便于了解是否应该导入此公钥。选好后,点击“Import(导入)”按钮,即可导入进PGP不用开启PGPkeys,直接在你需要加密的文件上点右键,会看到一个叫PGP的菜单组,进入该菜单组,选Encrypt(加密),将出现PGPshell – Key Selection Dialog(PGP外壳-密钥选择对话框

  • 输入对方地址
  • 签名并保存:





    解密很简单,直接右键要解密的pgp文件解密



  • 解密完成

实验总结:

  • 本次实验还算简单,就是在传输公钥时候连不上网,不能使用pgp全球名录助手

  • 用u盘导出的公钥,其他步骤还算顺利,整体流程感觉很流畅。

20155202 20155222 信息安全技术概论实验一 PGP的使用的更多相关文章

  1. 《信息安全技术》实验一 PGP的原理与使用

    <信息安全技术>实验一 PGP的原理与使用(macOS High Sierra下实现) 实验目的 理解传统加密.公钥加密.混合加密.数字签名等概念 理解公钥.私钥.会话密钥.对称密钥等概念 ...

  2. 20155231 信息安全技术概论实验二 Windows口令破解

    20155231 信息安全技术概论实验二 Windows口令破解 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 实验人数 每组一人 系统环境 windo ...

  3. 20155306 《信息安全技术概论》实验二 Windows口令破解

    20155306 <信息安全技术概论>实验二 Windows口令破解 [实验目的] 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 [实验人数] 每组1 ...

  4. 20155331 《信息安全技术概论》实验二 Windows口令破解

    20155331 <信息安全技术概论>实验二 Windows口令破解 [实验目的] 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 [实验原理] 口令破 ...

  5. 2017-2018-1 20155219《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155320<信息安全技术>实验二--Windows口令破解 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 实验 ...

  6. 2017-2018-1 20155312《信息安全技术》实验二——Windows口令破解实验报告

    2017-2018-1 20155312<信息安全技术>实验二--Windows口令破解实验报告 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破 ...

  7. 2017-2018-1 201552326《信息安全技术》实验二——Windows口令破解

    2017-2018-1 201552326<信息安全技术>实验二--Windows口令破解 姓名:刘美岑 学号:20155326 班级:1553班 日期:10.24 一.实验环境 操作系统 ...

  8. 《信息安全技术》实验二 Windows口令破解

    <信息安全技术>实验二 Windows口令破解 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 实验环境 实验机Windows Server ...

  9. 2017-2018-1 20155207&20155308《信息安全技术》实验四-木马及远程控制技术

    2017-2018-1 20155207&20155308<信息安全技术>实验四-木马及远程控制技术 实验目的 剖析网页木马的工作原理 理解木马的植入过程 学会编写简单的网页木马脚 ...

随机推荐

  1. vagrant 打造开发环境

    1 vagrant http://www.vagrantup.com/ 2 veewee https://github.com/jedi4ever/veewee 3 vagrant boxes htt ...

  2. 关于crontab中的一些小问题

    今天写了个脚本,要写进crontab做定时任务,每5分钟跑一遍.关于crontab的介绍呢,请大家移步www.baidu.com,在这里我就不仔细介绍了.可以搜索一下“每天一个Linux命令”系列文章 ...

  3. iOS动画暂停和继续-本质是速度控制和时间坐标转换

    时间永不停止! 写一个CALayer的分类,控制动画的暂停与继续 extension CALayer { ///暂停动画 func pauseAnimation() { //取出当前时间,转成动画暂停 ...

  4. session.upload_progress.enabled开启的问题

    exp.php的内容,存在文件包含 <?php include($_GET['lfi']); $key = ini_get("session.upload_progress.prefi ...

  5. gulp基础使用及进阶

    提示:路径中不允许出现中文,否则scss编译会出错,大概. 按照惯例,先检查一下Node.js.npm(cnpm).gulp的版本号 1.新建package.json 我们可以通过手动新建这个配置文件 ...

  6. 20145216史婧瑶《Java程序设计》第五次实验报告

    20145216 实验五<Java网络编程> 实验内容 1.掌握Socket程序的编写 2.掌握密码技术的使用 3.设计安全传输系统 实验要求 1.基于Java Socket实现安全传输 ...

  7. selenium + python自动化测试unittest框架学习(二)

    1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...

  8. leetcode300. Longest Increasing Subsequence 最长递增子序列 、674. Longest Continuous Increasing Subsequence

    Longest Increasing Subsequence 最长递增子序列 子序列不是数组中连续的数. dp表达的意思是以i结尾的最长子序列,而不是前i个数字的最长子序列. 初始化是dp所有的都为1 ...

  9. Spring(十二)之JDBC框架

    JDBC 框架概述 在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等.但 Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQ ...

  10. Linux下Java性能监控

    Linux下Java性能监控 一.JVM堆内存使用监控 获取thread dump的3种方法: 1)使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun. ...