Answers:
可能是 AES。河豚是Twofish的直接前身。布鲁斯·施耐尔(Bruce Schneier)进入了Twofish,成为了产生AES的竞赛的参与者。它被认为不及名为Rijndael的条目,后者后来成为AES。
除了有趣的问题:在比赛的某一时刻,所有参赛者都被要求给出他们对密码排名的看法。每个团队都将自己的参赛作品选为最佳也许并不奇怪-但其他每个团队都将Rijndael选为第二好。
也就是说,Blowfish与AES的基本目标存在一些基本差异,就绝对安全而言,它们可以(可以说)支持Blowfish。特别是,Blowfish试图通过使初始密钥设置相当慢的操作来使暴力破解(密钥耗尽)攻击变得困难。对于普通用户而言,这几乎没有什么意义(仍然不到一毫秒),但是如果您每秒尝试尝试数百万个密钥来破解它,那么两者之间的差异就很大。
最后,我认为这并不是主要优势。我通常会推荐AES。我的下一个选择可能是该顺序的蛇,MARS和Twofish。河豚会在那之后出现(尽管在河豚之前我可能会推荐其他几个)。
Blowfish
是最快的
分组密码的分组大小也是一个重要的安全考虑因素(尽管远不及密钥大小重要),这是一个不为人所知的事实。
Blowfish(以及同一时期的大多数其他块密码,例如3DES和IDEA)具有64位的块大小,对于当今常见的大文件大小(文件越大,块大小越小),这被认为是不够的。 ,密文中重复块的可能性就更高-这样的重复块在密码分析中非常有用。
另一方面,AES具有128位的块大小。仅出于这种考虑,就证明了使用AES代替河豚的合理性。
就算法本身而言,我会使用AES,原因很简单,那就是它已被NIST接受,并且将经过多年的同行审查和加密分析。但是,我建议在实际应用中,除非您存储了一些政府希望保密的文件(在这种情况下,NSA可能会为您提供比AES和Blowfish更好的算法),但使用以下两种方法都可以没有太大的不同。所有的安全性都应放在密钥中,这两种算法都可以抵抗暴力攻击。在没有利用完整的16轮回合的实现中,河豚仅表现出弱点。尽管AES较新,但这一事实应该使您更倾向于BlowFish(如果您仅考虑年龄的话)。这样想吧
这就是我要向您介绍的内容...除了查看这两种算法并尝试在算法之间进行选择之外,您为什么不查看您的密钥生成方案。想要解密您的文件的潜在攻击者不会坐在那里,拿出一套可以使用的理论密钥,然后进行可能要花费数月的蛮力攻击。相反,他将利用其他东西,例如攻击服务器硬件,对组件进行反向工程以查看密钥,尝试查找其中包含密钥的配置文件,或者勒索您的朋友从计算机中复制文件。这些将是您最脆弱的地方,而不是算法。
AES。
(我还假设您指的是两条鱼,而不是年龄较大且较弱的河豚)
两者(AES和twofish)都是很好的算法。但是,即使它们相等或两条鱼在技术优点方面稍占优势,我还是会选择AES。
为什么?宣传。AES是政府加密的标准,因此数百万其他实体也使用它。一个有才华的密码分析员只是发现“ AES的缺陷”,而后获得了更多的“回报”,而对于鲜为人知和使用过的两条鱼则做到了。
模糊性不提供加密保护。寻找,研究,探测,攻击算法的机构越多越好。您需要可能是目前最“经过审核”的算法,即AES。如果没有对算法进行严格和持续的审查,则应降低算法的强度。当然,twofish并未受到损害。是因为密码或者仅仅是因为实力不够的人已经采取了仔细看..... YET
我知道这个答案违反了您的问题,但是我认为正确的答案很简单:使用任一种算法可以使您拥有最长的密钥长度,然后确保选择一个真正好的密钥。大多数公认的算法(在加密和时间顺序上)的性能的微小差异都被密钥的一些额外位所淹没。