例如,Threefish的密钥长度为1024,并且有很长的回合数(80)。但是,我没有多少听说过Threefish-1024是特别安全的,那么有哪些对称密钥密码是安全的,不是因为它们的大量圆圈或长密钥长度,而是因为它们本身的密码操作?为什么对称密钥密码是安全的?
翻译用户
发布于 2023-02-18 19:46:26
Threefish是专为在散列函数Skein中操作而设计的块密码。在许多哈希函数设计中,消息被用作密钥,因此,拥有512或1024位的密钥是有用的,因为它允许以更大的块处理消息,从而提高性能。它并没有得到真正独立的研究,但是最好的公开密码分析表明它是安全的。
当我们讨论通常用于加密的块密码时,我们通常以相同的方式实现它们,使用几组较小的单词,我们使用加法和减法,按位运算(以及,OR,XOR和NOT),有时使用乘法。( Threefish也是如此。)我们之所以使用这些技术,是因为它们在各种现代硬件上都是简单而高效的。无论安全性如何,使用速度慢、效率低的算法通常要少得多。
没有一种方法可以构造分组密码,但是通常会有某种类型的S盒(替换盒),它被设计成非线性的,以及各种帮助产生扩散的线性运算。这些帮助提供了防御线性和差分密码分析,以及其他技术。还有许多常见的设计: Feistel、Lai和置换网络.
至于轮数,这取决于每一轮的复杂程度。Threefish有更简单的子弹,所以需要更多的子弹。Twofish和AES有更复杂的回合,同时做得更多,所以他们需要的更少。正确的回合数在很大程度上取决于设计和预期的安全强度:通常使用更大的块或键需要更多的混合,这就需要更多的回合。
在所有这些情况下,我们希望最著名的攻击是蛮力:猜测关键。这对于三重加密是正确的,对于更常见的块密码,如AES和Serpent也是如此。不同的是,AES和Serpent使用较小的密钥,因为我们目前认为256位键在不确定的未来就足够了,包括量子计算。(执行2^{128} 操作被认为超出了这个星球的资源。)因此,拥有较长密钥的唯一好处是在密码结构(例如哈希函数)中使用它。
最终,我们构建像三层密码这样的分组密码的方式并没有太大的不同,而像AES或毒蛇这样的更常见的密码的构造方式并没有太大区别。
https://crypto.stackexchange.com/questions/104300
复制相似问题