我想归档一些GB的敏感数据。它是存储在一个外部驱动器,其中也包括非敏感数据,所以我不想加密整个驱动器。为此,我想使用7zip和7z文件格式,使用AES-256加密和一个长(16+字符)密码。
由于大部分要加密的数据已经压缩或压缩(例如视频),磁盘空间也没有问题,我想选择"Store“作为压缩级别,以加快归档的创建。
我对加密的技术方面不太了解,但从我发现压缩不会影响加密,所以选择更高的压缩级别不会对文件安全性产生任何影响(正或负)。
我的问题是这是对的,还是真的有影响?
发布于 2020-10-20 06:15:47
如果攻击者像提到的在这个岗位上那样控制加密数据的一些明文,则压缩会影响加密。
它可能不会对您的用例产生影响,因为数据是存档的,很多人不会访问这些数据,但是如果数据是敏感的,那么为了更好的安全性,可以节省额外的GB。
发布于 2020-10-21 21:52:59
简短的回答:提前压缩可以稍微增加加密档案的安全性。如果您想要更多的安全性,请使用更长的密码。
较长的答案:一些信息论可能会有所帮助。在形式上,信息与熵是可互换的。纯随机数据的信息集中度最高,而结构化数据(如人类可读的文本)的信息集中度较低。
压缩是通过消除重复来集中数据的熵。随机数据通常是不可压缩的,因为它不会精确地重复。
基于块的加密是通过重复的操作来人为地增加数据的熵,这把它已经和密钥的熵混合在一起。然后,他们把这个熵分散到输出上。这样做是为了使输出看起来像随机数据。
也许最著名的密码分析攻击是在第二次世界大战中针对德国的Enigma机器。这在一定程度上是因为加密过程的输入中有重复的信息。压缩输入稍微降低了这种攻击的可能性。然而,这些攻击在今天并不普遍可行。
大多数用于存档目的的基于文件的加密是对称的,而大多数对称加密算法使用相当长的密钥。你提到了AES- 256,它使用256位作为密钥。还记得我前面说过,块加密将数据的熵与密钥的熵混合在一起吗?如果您的密钥具有低熵,则最终结果是加密数据中的低熵。
密码强度是一个复杂的话题,但可以概括为在一个位置上可能出现的符号数量上升到幂的位置数。例如:
正如你所看到的,16个字母不足以接近最大熵,AES-256可以使用。16个美国键盘字符正接近于AES-128的性能,但仍然只使用了AES-256键空间的三分之一。
256位是32字节,64位随机十六进制数字,或40个随机键盘字符。
使用更长的密码将为您提供比压缩更多的安全性,或者缺少它可能会使您获得或付出代价。
而且,这两种方法都不会保护您免受攻击者的攻击,攻击者知道或控制加密输入的很大一部分。一个字节的知识?不是威胁。有千兆字节的知识?大威胁。这种水平的知识或控制可以让人得到钥匙,而不管它的长度。
https://security.stackexchange.com/questions/239782
复制相似问题