PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件。

产生背景:

电子邮件在传输中使用SMTP协议存在这样的问题

1.无法保证邮件在传输过程中不被人偷看

2.无法确认来源

3.无法确定邮件是否在传输过程中被篡改

4.当邮件被发到错误地址,可能造成信息泄漏

PGP对这些问题提供一个安全电子邮件解决方案,具有以下功能

1.消息加密

2.数字签名

3.完整性确认

4.数据压缩

PGP使用的对称算法: IDEA, DES, Triple DES, CAST, AES, Twofish

PGP使用的不对称算法: RSA, DH

加密流程:

用会话钥匙加密明文,然后用公共钥匙加密会话钥匙,讲这两个加密出来的内容打包放在一起传输。

解密流程:

将收到的数据(密文和加密后的会话钥匙)分开,用私钥来解密加密后的会话钥匙,得到会话钥匙,用会话钥匙来解密密文。

会话钥匙加密解密用的同一把,所以是对称加密算法。另外的公钥加密,私钥解密,是公钥加密算法。

PGP整合了对称加密和公钥加密的方案。

保持了对称加密算法速度快的特点,又具有公钥算法密钥分配方便的特点。

PGP数字签名:

签名算法:RSA+MD5, RSA+ SHA1, DSS+SHA1

数字签名过程:

数字签名是用私钥加密,就可以确认消息来源和保证完整性,因为私钥是个人持有的且是对明文签名。

但是直接对明文进行数字签名存在一些问题

1.速度非常慢

2.生成大量的数据

PGP的解决办法是对明文使用一种Hash函数(PGP使用Hash函数: MD5, SHA1),产生定长的数据,称为消息摘要。使用签名算法对摘要签名,然后将签名和明文放在一起。

下面来说说公钥密码算法的一个重要问题,如何传播公钥?

假设有这样一个场景,A想写信给B,A先要得到B的公钥,A在某处查到一个公钥以为是B的,实际上是C的公钥,是C有意假冒B,C窃听到密信,然后用对应的私钥解密,C看到了信的内容。此时,C已经假冒B成功了,C再给A写一封信,A仍用B的假公钥来打开C的信,A读到C假冒B写的信。

因此,公钥的分发是很重要的。

公钥分发模型:

1.金字塔模型

这个模型的基础是要有上层的机构是值的信赖的机构,由上层机构来分发公钥,需要公钥的时候,向上层机构询问。

2.信任网络模型(PGP采用):

PGP数据证书:

证书包含拥有者的信息

证书可以自己创建和声明

证书上包含自签名

证书可能包含多个人的签名

证书正确性检查

1.手工途径:要求接收者亲自把公钥交给你

      检查证书的指纹

2.信任途径:相信已经进行了检查过程的第三方结果(上面可能有一些签名,保证证书上的公钥属于某个人)

私钥保护问题:

PGP利用一个Passphrase来获得自己的私钥。

压缩预处理问题:

PGP对明文加密前进行压缩处理,使用PKZIP算法压缩。

好处:压缩后比原来的明文更短,节省网络传输的时间;压缩相当于一次变换,信息变的杂乱,对攻击的抵御能力更强。

转载于:https://www.cnblogs.com/13jhzeng/p/5517770.html

现代密码学应用的范例-PGP相关推荐

  1. 《NJUPT》网络信息安全_期末PPT整理笔记

    零.基础知识 信息安全包括:信息安全管理.物理场所安全.设备的硬件安全.软件安全(操作系统/其他系统软件应用软件).网络信息安全(TCP/IP ).密码学的应用.信息隐藏.其他不常见技术 不同的研究方 ...

  2. python计算机程序设计语言的是-Python是一种面向对象的解释型计算机程序设计语言...

    [判断题]非对称密码算法与对称密码算法,加密和解密使用的都是两个不同的密钥. [单选题]对被判处无期徒刑的罪犯,可以暂予监外执行的情形是 [多选题]下列关于质性研究和量化研究说法正确的是 [单选题]制 ...

  3. 密码学在信息安全领域的应用

    目录 1. 前言... 2.密码学在网络安全中的应用... 2. 1 对称加密技术在 IPSec 和 SSL 中的应用... 2. 2 对称加密和非对称加密体制在应用层安全协议中的结合应用... 3. ...

  4. 我看过的密码学方面的好文章

    本文不定期更新,最后更新于2019-5-18 密码 在Visual Studio命令提示符界面下编译链接OpenSSL自带的示例程序 数据安全及各种加密算法对比 非对称加密和证书总结 HTTPS 原理 ...

  5. 豆瓣评分9.4,跪着推荐这本密码学入门第一书

    "密码"这个词,总是让人难以捉摸,有时候你认为它很简单,其实它却包含着几种看似差不多但本质上却完全不同的含义,还真是不简单. 那么"密码"到底是什么呢?它其实是 ...

  6. 密码学+赛博朋克,关于密码朋克们的奇妙故事

    注: 本文是仅是一个旁观者的叙述,本文所提到的Hacker,主要是指沉迷于密码学和网络安全方面的计算机科学家. 本号不提供任何投资建议,不接任何PR需求.本文不构成任何投资上的建议. 作者 | 阿法兔 ...

  7. 【密码学】一万字带您走进密码学的世界(下)

    引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 在<一万字带您走进密 ...

  8. apache shiro_Apache Shiro第3部分–密码学

    apache shiro 除了保护网页和管理访问权限外, Apache Shiro还执行基本的加密任务. 该框架能够: 加密和解密数据, 哈希数据, 生成随机数. Shiro没有实现任何加密算法. 所 ...

  9. Apache Shiro第3部分–密码学

    除了保护网页和管理访问权限外, Apache Shiro还执行基本的加密任务. 该框架能够: 加密和解密数据, 哈希数据, 生成随机数. Shiro没有实现任何加密算法. 所有计算都委托给Java密码 ...

最新文章

  1. arm linux gcc 4.6.3,编译gcc-4.6.3
  2. idea没有错误出现红色波浪线怎么去掉?
  3. 什么笔记本电脑好_买个什么价格的笔记本电脑好,如何选购笔记本电脑
  4. 谷歌新作gVisor:VM容器融合技术已经到来
  5. Ctrl+Alt+F1~F6
  6. SQL Server之视图基础知识
  7. An Openfire plugin for Webspell sites.
  8. 黑马程序员-JavaSE核心知识-03第一个Java程序
  9. 一维傅里叶变换后的复数怎样理解?
  10. 开展批评时的方式与态度
  11. python项目方案书模板格式_项目计划书格式范本word文档
  12. JAVA:项目文档及编写目的汇总
  13. 中国第一政经博客 数学
  14. java专业考独立本科_复旦大学-计算机网络(独立本科B080709)(停考过渡)
  15. 基于GEE的bfastmonitor的改编
  16. Linux学习系列 --awk命令学习
  17. 基于Android车载系统模块资料
  18. Python每日一记192计算机组成原理之存储器存取周期、存储器带宽
  19. 前端开发vue技术栈程序员的vs code插件分享
  20. Arduino与Proteus仿真实例-电子相册仿真

热门文章

  1. 【Qt开发】常用控件--QLineEdit
  2. arduino与DS1302时钟调试失败的分析
  3. SQL SERVER 通用分页存储过程
  4. SpringMVC中@GetMapping和@RequestMapping的区别
  5. 基本HTTP协议流程是什么?
  6. jni 入门 android的C编程之旅 ---环境搭建helloworld
  7. Perseus-BERT——业内性能极致优化的BERT训练方案
  8. Lambda and Anonymous Classes
  9. 30-seconds-code——math
  10. 14.ZooKeeper Java API 使用样例