是加密消息然后压缩它还是反过来更好?哪个提供更多安全性?

时间:2010-12-09 15:22:05

标签: encryption compression

我认为根本没有额外的保护。

9 个答案:

答案 0 :(得分:23)

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

压缩算法利用加密时消除的数据中的统计冗余(例如以自然语言或许多文件格式存在的冗余),因此加密消息不应该“”能够很好地压缩。

来自wikipedia article

  

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

答案 1 :(得分:14)

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

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

答案 2 :(得分:9)

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

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

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

答案 3 :(得分:4)

没有增加的安全性(因为压缩不是一种安全机制),但是正确加密的消息不应该是易于压缩的(即经验法则:如果你能够显着压缩加密的消息,那么就会出现问题)。 / p>

因此,压缩然后加密。

答案 4 :(得分:3)

看这里: Super User thread about compression && encryption or the other way around

他们对你的问题有一个完整而详细的答案(顺便说一下,压缩然后加密)。

答案 5 :(得分:0)

您应该在加密前进行压缩。

加密将您的数据转换为高熵数据,通常与随机流无法区分。压缩依赖于模式以减少任何尺寸。由于加密会破坏此类模式,因此如果将压缩算法应用于加密数据,压缩算法将无法为您提供太多(如果有)大小减少。如果加密正确完成,则结果基本上是随机数据。大多数压缩方案的工作方式是在数据中查找可能以某种方式计算出来的模式。

如果攻击者只能控制未压缩的明文,加密前的压缩也会略微增加对差分密码分析(以及某些其他攻击)的实际阻力,因为结果输出可能很难推断出来。

答案 6 :(得分:0)

根据William Stalling在{227,第227章,第7章,出版的“ 网络安全基础:应用程序和标准,第四版”一书中 >

  

默认情况下,PGP应用签名后会压缩消息   但在加密之前。这样做的好处是既节省了空间   电子邮件传输和文件存储。的位置   压缩算法,用Z表示压缩,用Z –1 表示   图7.1中的减压非常关键。

     
      
  1. 签名是在压缩之前生成的,其原因有两个:

         
        
    • 最好对未压缩的消息进行签名,以便仅存储未压缩的消息以及用于以下目的的签名   将来的验证。如果一个人签署了一份压缩文件,那么它   存储消息的压缩版本将很有必要   供以后验证或验证时重新压缩消息   是必需的。
    •   
    • 即使愿意动态生成经过重新压缩的邮件进行验证,PGP的压缩算法也会提出   困难。该算法不是确定性的。各种   该算法的实现在以下方面实现了不同的权衡   运行速度与压缩比的关系,因此产生   不同的压缩形式。但是,这些不同的压缩   算法可以互操作,因为任何版本的算法都可以   正确解压缩任何其他版本的输出。应用   hash228第7章/电子邮件安全功能和签名   压缩后会将所有PGP实现限制为   相同版本的压缩算法。
    •   
  2.   
     

2。   压缩后将应用消息加密,以增强密码安全性。由于压缩后的消息比原始明文具有更少的冗余,因此密码分析更加困难。

尽管已针对Pearson算法说明了这些原因,但它们可以简单地扩展到其他方法。因此最好在加密之前进行压缩。

答案 7 :(得分:-1)

提供的安全性没有区别。

答案 8 :(得分:-2)

是的,提供的安全性应该没有区别。