加密文件的安全性如何?

信息安全 加密
2021-08-24 07:42:00

如果一个加密的文档有一个损坏的字节——我们只会得到一个错字。但是加密文件呢?看来,如果我错了,请纠正我,如果加密正确 - 每个字节都取决于前面的字节。这引起了人们的关注。如果我制作磁盘映像并对其进行加密 - 也许有一个不可忽略的机会,我将无法恢复它。

我明白,即使我是对的——确切的答案将取决于媒体类型、年龄等,即便如此——也只是一个猜测。但我希望至少有一个数量级的错误普遍存在。(或者如果我最初的假设是错误的——我当然想知道。)

1个回答

这完全取决于使用的加密算法。Claude Shannon 的格言之一是错误不应该传播。在 CBC 模式下的 AES 情况下,单个位错误将传播到两个块。

现代密码系统很可能使用摘要或其他消息完整性机制来检测篡改,以便在加密数据出现错误的情况下,整个密文将根据不匹配的摘要表明被篡改而被拒绝。

现代计算硬件非常强大,以至于担心错误可能没有意义。如果纠错是一个重要的考虑因素,那么数据应该在加密之前添加纠错码。这样,可以纠正解密数据中的错误。但是,如果尽管摘要不匹配,但仍接受解密的数据,则无法再检测到篡改。

编辑:现在我认为它是一个{ahem}位,加密数据中的位错误并不比明文中的位错误更有可能。如果您接受单个位错误会使磁盘的整个物理块不可读,那么传播到下一个 128 位块(AES、CBC)的加密数据中的位错误也会导致单个 512-字节磁盘块 32 次中的第 31 个,在剩下的 1/32 情况下最多两个物理磁盘块。除非我遗漏了概率中的某些内容,否则对于 512 字节的物理块,加密中的位错误会在 97% 的时间内破坏一个块,在剩余的 3% 的时间里破坏两个块。

如果您还接受单个不可读的物理块意味着文件被有效破坏,那么加密不会有错误率损失。

在任何情况下,防御不可读密文的方式与防御不可读明文的方式相同:RAID 和文件备份副本、物理上小心磁盘驱动器等。