首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用两只蛇或者三只蛇代替AES有真正的用途吗?

用两只蛇或者三只蛇代替AES有真正的用途吗?
EN

Cryptography用户
提问于 2018-03-20 14:58:08
回答 2查看 2K关注 0票数 3

我想知道其他密码,如毒蛇、双倍甚至三重密码在现实生活中是否真的有用,因为AES在大多数情况下似乎是非常有效的。

但是,例如,TrueCrypt或VeraCrypt提供了服务器和Twofish作为加密驱动器的算法,那么为什么会有人选择那些密码而不是AES呢?(我知道Threefish是可调整的,因此在加密磁盘方面是有效的)。

因此,为了澄清我的问题:使用Twofish、Serpent或Threefish代替AES是否有真正的目的?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2018-03-20 16:00:04

由于位切片设计,蛇的实现非常简单,具有侧通道电阻.因为AES中包含了一个S-Box,它最简单地实现为一个查找表,所以它的实现往往是容易受到侧通道攻击

Threefish是为SHA-3竞赛设计的,目的是成为一种密码原语包的一部分,包括加密、散列和MAC。如果您想要一个不需要实现大量不同算法的密码库,那么Threefish可能是一个不错的选择。

使用AES的一个令人信服的原因是许多现代CPU支持AES-NI指令,这将使使用AES的加密几乎肯定比任何其他算法都快。一个更快的算法总是更好的,但是除非你加密大量的数据,否则你可能永远不会注意到其中的区别。由于AES-NI需要更少的CPU周期,它可能会在您的电源账单上节省几美分。

当然,作为用户,这些实现细节可能是不可见的。您提到的库已经实现了大量不同的算法,所以在您所关注的情况下,这种优势是可以忽略不计的。

提供多个选项通常比一个选项好(在合理的范围内-太多的选择是不好的)。这有点像问为什么一家餐馆的菜单上有不止一个项目。有些人可能因为武断的原因而不关心这一项。

关于为什么选择Rijndael而不是Serpent或Twofish的逐点概述,您可以调查这些与其他相关的问题

票数 9
EN

Cryptography用户

发布于 2019-11-19 19:55:31

在大多数情况下,您可能应该使用AES,特别是在硬件支持的情况下。

在某些情况下,使用另一种可能是有意义的。例如,Threefish的简单性对于使用缺乏AES硬件支持的微控制器来说是有意义的。它缺少S盒,减少了所需ROM的数量。如果您不需要微调功能,则部分预先计算的密钥计划只需要少量的RAM。您可以预计算KN子密钥(从K0到K恩-1),然后在将子密钥注入加密/解密操作时添加子密钥号“动态”。

理论上,如果加密/解密的数据量足够小,则可以对调整的子值执行类似的操作。(这很可能发生在嵌入式控制器中。)

另一方面,在具有预先计算的密钥计划的嵌入式应用程序中,我认为使用不同的键而不是使用调整功能更有意义。

此外,在使用预先计算的密钥计划时,应使用CBC或其他使用初始化向量的模式。

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/57652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档