GPG 的 MDC 是识别文件损坏的有效方法吗?

GPG 的 MDC 是识别文件损坏的有效方法吗?

我了解 GPG 在使用 AES-256 进行对称加密时会使用修改检测代码。这是否可以确保标记加密文件的任何损坏(例如位腐烂),而不是默默地通过?这种保护与获取加密文件的 sha256sum 哈希值并使用该哈希值确定加密数据的完整性相比如何?

注意:我正在考虑备份环境,我的主要目标是存档一个大文件,并且我想确保它既加密又可以检测到存档中的任何损坏。

答案1

对称加密完整性保护数据包以及修改检测代码包是为了防止对 OpenPGP 协议的一系列攻击而引入的,这些攻击建立在修改密文和使用所谓的解密预言机来部分猜测原始明文的基础上。

使用这两个数据包,可以检测到对密文的修改。当然,这还包括随机位翻转。但它们不提供加密签名。与存储额外的 SHA256 校验和相比,不同之处在于 MDC 数据包使用 SHA-1:但两者都足以检测随机损坏。修改检测也仅限于加密流,而不是 OpenPGP 标头/元数据。在这两种情况下(纯 SHA256 哈希和 MDC 数据包),您将无法恢复腐烂的位,只能检测修改。

您可以通过修改加密的 OpenPGP 消息的加密文本轻松尝试。

相关内容