PGP——压缩
每天,有超过2500 亿封电子邮件通过 Internet 进行交换。电子邮件从发件人到收件人的传输涉及一系列处理。关于电子邮件的数据(通常是关于发送者、接收者和域),当然还有消息,必须由传输中涉及的系统和服务器处理。为所有 2500 亿封电子邮件完成这项工作是一项艰巨的任务。有时它也可能导致拥塞。因此,电子邮件服务提供商使用压缩作为一种机制来减少要传输的数据量。
压缩基本上是使用压缩算法将 n 位的消息转换为 m 位 (n > m)。压缩有助于电子邮件服务提供商提高他们的生产力,因为他们的服务器维护所花费的存储开销、处理和劳动力都减少了。
PGP 中的压缩服务是使用ZIP算法提供的。压缩包含在 PGP 的组合身份验证和机密性中,如下所示:
图中,
Z – 压缩函数
Z -1 – 减压函数
在 PGP 中,消息只有在签名应用后才被压缩。压缩后的数据在接收端解压得到原始消息和签名。然后,我们可以从签名中提取哈希值,然后我们可以通过简单地计算消息的哈希值并将其与从签名中获得的值进行比较来直接确定真实性。
如果在应用签名之前进行了压缩,这意味着签名中的哈希值不是原始消息的哈希值,而是压缩消息的哈希值。因此,为了在接收者端检查真实性,我们必须要么维护压缩消息,要么重新压缩消息。由于 PGP 算法,我们在重新压缩时会遇到另一个问题,因为该算法可能会根据其实现为输入产生各种结果,因此我们可能会从它们获得的哈希值不一致。因此,在真实性验证中将存在不一致。
即使我们使用不同的算法实现得到不同的压缩消息输出,但当将来自任何实现的压缩消息作为输入给出时,会产生相同的输出用于解压缩。因此,为了实现一致的真实性过程,我们必须使用单个版本实现压缩。因此,为了更安全的使用,PGP 在应用签名后进行压缩。
通常,当消息和签名都被压缩时,它们会被加密。这是为了从密码分析中提供额外的安全层,因为冗余比明文要少。