OpenPGP 加密的文件是否容易受到数据损坏的影响?

chr*_*.fy 2 encryption file-corruption gnupg openpgp

我已经使用 GnuPG 来加密一些长期备份,但我担心随着时间的推移数据损坏是否会导致无法恢复档案。

你能解密部分损坏的 OpenPGP 文件吗?

Jen*_*rat 5

加密系统是否对部分损坏(这称为自同步密码)具有弹性取决于操作模式

OpenPGP(标准 GnuPG 实现)依赖于密码反馈模式 CFB和一个移位寄存器,使密码模式自同步。密码文本中的损坏块将导致明文中的两个块受到影响:直接受损坏影响的块中的损坏位和下一个块完全乱码。此后,密码再次同步并返回正确的明文。

要让 GnuPG 忽略检测到的损坏,请应用该--ignore-mdc-error选项。但请注意,此类损坏也可能是攻击者有意为之,禁用此检查可防止检测到此类问题(来自man gpg):

此选项将 MDC 完整性保护失败更改为警告。如果消息部分损坏,这可能很有用,但有必要从损坏的消息中获取尽可能多的数据。但是,请注意 MDC 保护失败也可能意味着消息被攻击者故意篡改。

但请注意,通常在加密之前应用压缩(因为压缩比加密便宜/快得多,并且还可以防止对 OpenPGP进行相当深奥的攻击):取决于所使用的压缩算法(OpenPGP 内部或外部,如 JPEG 压缩图像),可能会发生额外的损坏。

为了通常防止随时间发生随机损坏,请定期“清理”原始和备份副本。ZFS、BTRFS 和 Microsoft 的 ReFS 等现代文件系统在文件系统级别实现了这样的清理功能,所有适当的备份软件也都这样做。