encryption - 最好的加密机制是Triple DES或RC4?

标签 encryption cryptography comparison

Triple DESRC4

我可以选择雇用任何一个。

最佳答案

从较高的角度看,下面对这两个方面的评论都将是有用的。

  • 基于RC4(例如WEP)创建强度非常低的协议(protocol)(在几分钟之内被商品硬件破坏就非常脆弱)是非常容易的。
  • Triple DES的缺点在于它的强度来自于过多的cpu努力,但它的强度(从理论上讲,在现实世界中)比RC4大得多,因此应作为默认选择。

  • 更深入一点:
    在没有明确定义的目标应用程序的加密领域中,“最佳”的定义天生就很难,因为算法的“适应性”是多种多样的。
  • 易于实现
  • 可以在商用硬件上运行它吗?
  • 实现是否受到意外漏洞的影响,这些漏洞会显着降低安全性,同时仍然允许行为的“正确性”。

  • 实现成本
  • 进行编码/解码的功率/硅/时间。

  • 努力奋斗
  • 暴力破解能力。相当可量化的
  • 对密码分析的抗拒性,难以量化,您可能会这样认为,但也许合适的人还没有尝试过:)

  • 灵活性
  • 您可以权衡上述之一换另一种
  • 吗?
  • 最大 key 大小(因此是蛮力的上限)是多少?
  • 要获得适当的加密,需要什么样的输入大小,是否需要加盐。


  • 实际上,要想实现自我突破的工作需要大量的时间和精力,这就是为什么您(作为非密码学家)会去做已经做的事情,而不是自己动手做。随着时间的流逝,它也可能会发生变化,希望这完全是由于可用硬件的改进,而不是所发现算法的基本缺陷。
    当然,最重要的核心问题就是它是否安全?应当指出,以前被认为是安全的许多较旧的算法不再属于该类别。有些漏洞是如此有效,以至于它们的使用是毫无意义的,您根本没有任何安全性(只是默默无闻)(有用但绝不能与真实的安全性相比)。
    当前,RC4和TDES的核心算法都不属于该类别,但是RC4的幼稚实现被认为在协议(protocol)中可能存在严重缺陷,在这些协议(protocol)中,消息数据可能被强制重复。 RC4具有比TDES更为重要的理论缺陷。
    也就是说,在上述所有领域中,TDES都不比RC4更好。它的计算成本明显更高(并且昂贵性尚不合理,存在其他成本更低的加密系统,其安全性可与TDES媲美)
    有了真实的应用程序后,通常会获得以下一项或两项:
  • 约束您的硬件以执行任务
  • 约束条件是您正在加密的数据(例如,用于传输仅需要保密X天的数据...)

  • 然后,您可以使用容差和假设陈述可以实现此目标的条件(或者,如果您根本无法做到)并做到这一点。
    在没有任何此类约束的情况下,我们只能为您提供以下内容:
    易于实现
    两者都具有适用于几乎任何可用架构和平台的可公开获得的安全免费实现。
    如果可以强制重复该消息(请参阅WEP问题),则RC4的实现可能没有您认为的安全。合理地使用盐分可以减少这种风险,但这不会受到原始实现情况的严格分析,因此应谨慎对待。
    实现成本
    我没有RC4的有用基准(它是旧的)。http://www.cryptopp.com/benchmarks.html有一些有用的指南,可将TDES与RC5相比要慢一些(比RC4慢至少一个数量级)。RC4可以将流加密到大约7在现代x86处理器上的快速实现中,每个字节的周期数可以进行比较。
    努力奋斗
    目前认为,即使存在许多加密输出,TDES的暴力破解能力仍然很高。
    RC4蛮力复原力比TDES低几个数量级,并且在某些操作模式下极低(无法丢弃流的初始位)
    抵抗密码分析,Triple DES存在着一些众所周知的缺陷,但是它们并不会降低其在 future 一到两年内对实际攻击的有效性,对于RC4而言并非如此,因为RC4已知一些缺陷并结合在一起产生了可靠的攻击基于它的几种协议(protocol)。
    灵活性
    TDES几乎没有灵活性(而且您的库可能也不会公开它们)
    RC4具有更大的灵活性(用于初始化它的 key 在理论上可以任意长,尽管该库可能对此有所限制。
    基于此以及您必须使用一种或另一种的声明,只有在TripleDES的CPU成本使其在您的环境中无法实现或RC4提供的低安全性仍然比您高得多的情况下,才应考虑RC4实现。要求指定。
    我还应该指出,从经验上讲,在所有领域都存在比RC4和TDES更好的系统。
    eSTREAM项目正在评估每个字节不超过5个或更少周期的各种流密码,尽管对它们的密码分析工作尚未真正完成。
    存在许多更快,更强大的密码学来与TDES竞争。 AES可能是最著名的,并且将是候选者,因为它具有可比(如果不是更好)的安全性,但速度要快得多。

    关于encryption - 最好的加密机制是Triple DES或RC4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/632300/

    相关文章:

    javascript - 仅比较日期部分而不比较 JavaScript 中的时间

    python - 比较 7 个制表符分隔的文件,打印相似之处

    JAVA - 检索/存储用户名和密码到服务器的安全方法?

    java - 基于浏览器的文档签名(带数字签名)的最佳跨浏览器解决方案是什么?

    java - 如何在 Windows 机器上检查 java 无限强度加密策略

    php - 与 libsodium 的安全 key 交换

    python - 使用 AES+CTR 的 PyCrypto 问题

    ruby - 在字符串数组中查找字符串的最快方法

    python - 使用 RSA 在 Python 中逐行加密文件并将其与另一个文件进行比较

    c - OpenSSL的AES_ctr128_encrypt()的参数详情