三重DES或RC4?
我可以选择使用其中一个.
作为高级别观点,以下对两者的评论应该是有用的.
创建基于RC4(例如WEP)的协议非常容易,该协议具有极低的强度(在几分钟内可以与商品硬件分解非常弱).
三重DES不是很好,因为它的强度来自于过多的CPU努力,但它的强度(理论上在现实世界的攻击中)比RC4强得多,所以应该是默认选择.
更深入一点:
在没有明确定义的目标应用的加密领域中,"最佳"的定义本身就很难,因为算法的"适应性"是多变量的.
易于实施
你可以在商品硬件上运行吗?
实施是否会受到意外缺陷的影响,这些缺陷会严重降低安全性,同时仍允许"正确"行为.
实施成本
功率/硅/编码/解码时间.
努力打破
蛮力恢复力.相当可量化
对密码分析的抵制,不那么可量化,你可能会这么认为,但也许合适的人还没有尝试过:)
灵活性
你可以将上述其中一种换成另一种
什么是最大键大小(因此暴力的上限)
获得合适的加密需要什么样的输入大小,是否需要腌制.
实际上努力打破自己需要花费大量的时间和精力,这就是为什么你(作为非密码学家)选择已经完成的东西而不是自己的东西.它也可能随着时间的推移而发生变化,希望仅仅是因为可用硬件的改进而不是被发现的算法的基本缺陷.
最重要的核心问题当然是安全吗?应该注意的是,之前被认为是安全的许多旧算法不再属于该类别.有些是如此有效地被打破,以至于它们的使用毫无意义,你没有任何安全性,只是默默无闻(有用但绝不能与真正的安全性相比).
目前RC4和TDES的核心算法都不属于该类别,但RC4的幼稚实现被认为在可强制重复消息数据的协议中存在极大缺陷.RC4比TDES有更多重要的理论缺陷.
也就是说TDES在上面列出的所有领域都不比RC4好.计算成本要高得多(并且昂贵是不合理的,其他成本较低的加密系统与TDES具有相当的安全性)
拥有真实世界的应用程序后,您通常会得到以下一个或两个:
约束你的硬件来完成任务
强加的约束是您正在加密的数据(这用于传输仅需要保密10天的数据...例如)
然后你可以用容忍和假设来说明什么可以达到这个目标(或者如果你根本不能)并且顺其自然.
在没有任何此类限制的情况下,我们只能给您以下内容:
两者都有公开可用的安全免费实现,几乎可用于任何架构和平台.如果可以强制重复消息,RC4实现可能不如您想象的那么安全(请参阅WEP问题).明智地使用腌制可以降低这种风险,但这不会受到原始实施的严格分析,因此应该怀疑.
我没有RC4的有用基准(它是OLD)http://www.cryptopp.com/benchmarks.html有一些有用的指南将TDES置于RC5的上下文中,RC5比RC4慢(TDES至少是一个数量级比RC4慢)RC4可以在现代x86处理器的快速实现中以每字节大约7个周期加密流以进行比较.
目前认为TDES的强力弹性很高,即使存在许多加密输出.RC4强力弹性比TDES低几个数量级,并且在某些操作模式下进一步极低(无法丢弃流的初始位)
对密码分析的抵制,对于Triple DES存在众所周知的缺陷,但它们并未降低其在未来十年或二十年内对现实攻击的有效性,对于RC4来说,情况也是如此,因为已知有几个缺陷并且它们结合起来产生了可靠的攻击在几个基于它的协议上.
TDES的灵活性很小(并且你的库可能不会暴露它们)RC4具有更大的灵活性(用于初始化它的关键在理论上可以任意长,尽管库可能会限制它.
基于此以及您必须使用其中一个或另一个的声明,只有当TripleDES的CPU成本使您在您的环境中实现不切实际或者RC4提供的低安全级别仍远高于您的RC4时,您应该考虑RC4实现要求说明.
我还应该指出,存在的系统在所有领域都比RC4和TDES在经验上更好.该eSTREAM项目在每字节小于或等于5次的顺序评估各种流cyphers虽然对他们的密码分析工作是不是真的完成.存在许多更快,更强的块密码以与TDES竞争.AES可能是最知名的,因为它具有可比性(如果不是更好)的安全性,但速度要快得多.
对不起 - 三重DES不再被视为最佳做法.AES只是一个更好的算法,所以如果你可以使用它,那么你应该.为了便于实施,请转到此处.
我强烈建议您通过阅读维基百科上的TDES了解更多信息.报价是:
"TDES正逐渐从使用中消失,很大程度上被高级加密标准(AES)所取代."
老实说,RC4对于安全性很重要的任何应用来说都不是一个可接受的选择.