Ree*_*ore 24

提供的安全性没有区别,但由于压缩算法的工作方式,如果先压缩然后加密,则可能会获得更好的压缩效果.

压缩算法利用数据中的统计冗余(例如以自然语言或许多文件格式存在的冗余),当您对其进行加密时应该将其消除,因此加密的消息不应该被很好地压缩.

来自维基百科的文章:

但是,无损数据压缩算法总是无法压缩某些文件; 实际上,任何压缩算法都必然无法压缩任何不包含可辨别模式的数据.因此,尝试压缩已经压缩的数据通常会导致扩展,尝试压缩除了最简单的加密数据之外的所有数据.

  • @john:不,如果它是无损压缩,那么在*之后压缩*是不值得的. (4认同)
  • 加密前的压缩可以帮助抵御某些攻击.特别是已知的明文攻击,其中已知的明文在其他未知的明文内,使得已知文本的压缩版本受未知明文的影响. (4认同)
  • 顺便说一句,压缩也会减少明文的大小——这可能是安全性的无限小增加。 (3认同)
  • 所提供的安全性存在差异。首先压缩揭示了原始消息的可压缩性。例如,可以通过检查发送到用户设备的地图图块的大小来确定用户在地图上的位置。 (2认同)
  • 该答案已过时,应删除。参见约翰·梅勒的回答 (2认同)

Joh*_*lor 14

警告:如果攻击者控制了被压缩的部分明文,并且可以观察得到的加密密文的大小,他们可以通过调整他们控制的部分直到密文的长度来推断出其余的明文.减少(这意味着他们控制的明文部分与明文的秘密部分之间存在一些重复).

例如,请参阅https://en.wikipedia.org/wiki/CRIME.


MSa*_*ers 9

加密对短消息的效果更好,符号分布均匀.压缩使用更均匀分布的另一个更短的符号序列替换具有非均匀分布符号的消息.

因此,在加密之前压缩它在数学上更安全.加密后的压缩不会影响加密,由于明文的分布不均匀,加密仍然相对较弱.

当然,如果你使用像AES256这样的东西,并且NSA不在你身后,那么这就是理论.

  • @Steve:现代对塞浦路斯的攻击假设你至少对可能的明文有一些了解.由于压缩良好的数据与随机数据无法区分,因此很难无法验证您是否在破解密钥方面取得了任何进展.如果您不知道自己是否取得了任何进展,则必须恢复强制解密.在极端情况下,当您使用完美的加密算法加密真正的随机数据时,无法确定任何密钥是否正确.例如,对于One Time Pad,这很简单. (2认同)