📜  PGP——认证和保密

📅  最后修改于: 2022-05-13 01:57:01.947000             🧑  作者: Mango

PGP——认证和保密

2013 年,当NSA(美国国家安全局)丑闻泄露给公众时,人们开始选择可以为他们的数据提供强大隐私的服务。在人们选择的服务中,尤其是电子邮件服务,他们的浏览器有不同的插件和扩展。有趣的是,在人们开始使用的各种插件和扩展中,有两个主要程序单独负责人们需要的完整电子邮件安全。一个是S/MIME ,我们稍后会看到,另一个是PGP

如前所述, PGP(Pretty Good Privacy)是一种流行的程序,用于为电子邮件和文件存储提供机密性和身份验证服务。它是由Phil Zimmermann早在 1991 年设计的。他以这样的方式设计它,将最好的加密算法,如 RSA、Diffie-Hellman 密钥交换、DSS 用于公钥加密(或)非对称加密; CAST-128、3DES、IDEA 用于对称加密,SHA-1 用于散列。 PGP 软件是开源软件,不依赖于 OS(操作系统)或处理器。该应用程序基于一些非常易于使用的命令。

以下是 PGP 提供的服务:

1. Authentication
2. Confidentiality
3. Compression
4. Email Compatibility
5. Segmentation 

在本文中,我们将了解身份验证和机密性。

1.认证:
身份验证基本上意味着用于验证某事是真实的或真实的东西。为了登录某些网站,有时我们会提供我们的帐户名和密码,这是一个身份验证程序。

在电子邮件世界中,检查电子邮件的真实性只不过是检查它是否真的来自它所说的人。在电子邮件中,必须检查身份验证,因为有些人会欺骗电子邮件或一些垃圾邮件,有时会造成很多不便。 PGP中的Authentication服务提供如下:

如上图所示,哈希函数(H)计算消息的哈希值。出于散列目的,使用SHA-1并生成160 位输出散列值。然后,使用发件人的私钥 (KP a ) 对其进行加密,称为数字签名。然后将消息附加到签名中。到目前为止发生的所有过程,有时被描述为签署消息。然后消息被压缩以减少传输开销并被发送到接收者。

在接收端,数据被解压,得到消息、签名。然后使用发送者的公钥 (PU a ) 对签名进行解密并获得哈希值。消息再次传递给散列函数,计算并获得其散列值。

比较两个值,一个来自签名,另一个来自哈希函数的最近输出,如果两者相同,则表示电子邮件实际上是从已知的电子邮件发送的并且是合法的,否则意味着它不是合法的。

2. 保密:
有时我们会看到一些标有“机密”的包裹,这意味着这些包裹并不适用于所有人,只有选定的人才能看到它们。这同样适用于电子邮件保密性。在这里,在电子邮件服务中,只有发送者和接收者才能阅读邮件,这意味着除了这两个之外,其他人必须对内容保密。

PGP 以下列方式提供保密服务:

消息首先被压缩,由 PGP 生成的 128 位会话密钥 (K s ) 用于通过对称加密对消息进行加密。然后,会话密钥 (K s ) 本身使用接收者的公钥 (KU b ) 通过公钥加密 (EP) 进行加密。两个加密的实体现在被连接并发送到接收器。

正如您所看到的,原始消息最初是经过压缩然后加密的,因此即使任何人可以掌握流量,他也无法读取内容,因为它们不是可读的形式,并且只有在他们有会话时才能读取它们键(K s )。即使会话密钥被传输给接收者,因此在流量中,它是加密形式的,只有接收者的私钥(KP b )可以用来解密,因此我们的消息将是完全安全的。

在接收者端,使用接收者的私钥(KP b )对加密的会话密钥进行解密,并使用获得的会话密钥对消息进行解密。然后,对消息进行解压,得到原始消息(M)。

公钥加密使用RSA算法,对称密钥加密使用CAST-128(或IDEA或3DES)。

实际上,身份验证和保密服务是同时提供的,如下所示:

笔记:
M – 消息
H - 哈希函数
K s - 为对称加密目的创建的随机会话密钥
DP – 公钥解密算法
EP – 公钥加密算法
DC – 非对称加密算法
EC – 对称加密算法
KP b – 用于公钥加密过程的用户 B 的私钥
KP a – 用于公钥加密过程的用户 A 的私钥
PU a – 用户 A 用于公钥加密过程的公钥
PU b – 用于公钥加密过程的用户 B 的公钥
|| – 串联
Z – 压缩函数
Z -1 – 减压函数