Security 两次加密是好还是坏?

Security 两次加密是好还是坏?,security,encryption,Security,Encryption,几个月前,我在某个地方读到,如果你对加密的消息重新加密,它不会提高其安全性,甚至会降低密码的安全性。但当我现在搜索时,我找不到任何关于这个案件的具体文章。如果你能让我知道,那就太好了。如果你能给我一份推荐信,我就可以读到它,那就太棒了。 提前感谢。对于对称分组密码: 有两种不同的情况:使用相同密钥的加密和使用两个独立密钥的加密 使用不同的密钥使加密至少与使用的加密强度相同。实际上可能比强者更强,但这并不能保证 使用同一个密钥会有更大的问题。但实际上,它可能会提高单个密码的安全性 双重加密的主要缺

几个月前,我在某个地方读到,如果你对加密的消息重新加密,它不会提高其安全性,甚至会降低密码的安全性。但当我现在搜索时,我找不到任何关于这个案件的具体文章。如果你能让我知道,那就太好了。如果你能给我一份推荐信,我就可以读到它,那就太棒了。 提前感谢。

对于对称分组密码: 有两种不同的情况:使用相同密钥的加密和使用两个独立密钥的加密

使用不同的密钥使加密至少与使用的加密强度相同。实际上可能比强者更强,但这并不能保证

使用同一个密钥会有更大的问题。但实际上,它可能会提高单个密码的安全性

双重加密的主要缺点是速度慢了一倍

对于RSA 使用普通、无填充的RSA,使用相同密钥进行双重加密根本不会提高安全性,因为组合RSA加密会导致使用组合密钥进行单一RSA加密

但这在实践中并不重要,因为通常不使用RSA直接加密数据,而且几乎总是使用填充



但很大程度上取决于你在做什么。例如,在进行散列时,如何组合散列非常重要,当您以错误的方式组合它们时,您可能会显著削弱您的方案。

答案实际上取决于所使用的加密

如果你两次使用明文,你就会得到明文

如果使用不同的密钥应用了两次,则攻击者可以获得更大的密钥空间进行搜索


区别在于加密函数是否在函数组合下形成代数组。这与说区别取决于,对于加密函数F()和应用于消息m的密钥Ki,对于某些K3,是否F(K1,F(K2,m))==F(K3,m?

说您有一个一次性pad和一个异或函数


但说真的,这并没有什么区别。就我个人而言,我觉得密码应该设计为在一个应用程序中有效,因为根据我的经验,重复的应用程序往往会放大一些人工制品,从而降低密文的熵。这有点像破坏性干扰,大量信号排列在一起……重复同一个密码似乎有时会发生这种情况——尽管(对于好的密码)使用不同的密钥比使用同一个密钥的效果要小得多。但这仍然让我感到不安


我认为这样做的唯一原因是在两个方向上链接明文/密文,以便传播错误并持续显示消息已被篡改

加密比纯文本好,但在可能的情况下,使用单向散列。@Radu Enigma,一种当时(二战前)非常好的加密方案,是对合的。实际上,用同一个密钥加密偶数次是最糟糕的(但希望你能注意到)。被否决的,不是开发问题,而是搜索。如果你找不到答案,他们似乎已经准备好了一支优秀的密码专家团队。@Radu加密算法几乎总是被设计为具有高性能。故意减速只适用于极少数应用程序,如密码哈希。但这首先不是加密。那么你能指出加密/解密速度慢的好处在哪里吗?@Radu-这不一定是真的。假设加密函数F()在functional composition下定义了一个组。然后,两次应用该函数(即使使用两个不同的密钥)将导致输出可以在同一时间解密,就像该函数应用了一次一样。不同之处在于解密密钥是第三个密钥,在加密过程中不使用。也就是说,如果m是消息,F(k2,F(k1,m))==F(k3,m),那么函数组合下的F()定义了一个代数组。@Radu一个较长的密钥会使暴力攻击者的工作变得指数级的困难,而较慢的加密只会线性地困难。哪种选择更优是显而易见的。真正的性能权衡是性能与对密码分析的抵抗。算法的回合数越多,密码分析就越困难。它变慢是一个不受欢迎的副作用。是的,这是真的,但我们知道我们不使用rot-13进行加密,这将用于拼图。不管怎么说,如果你的等式变为真,那么加密两次就没有意义了,对吧?@Erfan-rot-13只是一个例子。想象一下rot-k。如果你应用了rot-5和rot-8,你就真的应用了rot-13。但是是的,如果这个等式是真的,那么加密两次是没有用的。这就是为什么RSA引用的参考文献确定DES不是一个群,即不满足该方程的原因。正如CodeInChaos指出的RSA,它确实满足该方程,因此双重应用它不会带来任何好处。我明白了,现在它对我来说更有意义。谢谢你的帮助。散列也一样吗?我指的是双重散列中的安全概念。“因为在我的经验中,重复的应用程序经常会放大一些降低密文熵的人工制品。”你能举一个非平凡密码的例子吗,比如DES,任何AES最终定稿者,。。。