【问题标题】:public key signing algorithm公钥签名算法
【发布时间】:2011-10-27 02:35:16
【问题描述】:

我为一个大型网站工作。我们计划使用必须由大量应用程序验证但由身份验证应用程序颁发的身份验证令牌。我正在考虑非对称而不是对称签名方案,以避免在大量应用程序服务器上存储秘密。

我列出了候选算法 - dsa、ecdsa、rsa,Java 中有加密提供者。

比较 dsa 与 rsa: dsa 具有独立于密钥强度的签名,并且比同等安全性的 rsa 签名小得多(rsa 1024/1568 与 dsa 192)。但是 dsa 验证(预计验证调用是 100 倍问题)比 rsa 验证慢约 10 倍。 dsa192 可以只使用 sha1 作为可能被破坏的摘要,尽管我想我可以使用 Sha234 并将输出截断为 192 位。

对 dsa 与 rsa 的审查还提出了其他深奥的问题 - dsa 中私钥的保密性非常依赖于 k 参数的随机性,dsa 不支持防火墙哈希,这对我们来说不是问题。

比较 ecdsa 与 dsa - ecdsa 在签名和验证方面稍快一​​些,我看到有人声称使用 ecdsa 我们有信心签名会验证(这里有点担心)。签名大小相同,不进入图片。

由于令牌随每个请求一起发送,并且我们在编码前讨论的是 40 字节与 128/196 字节,我正在考虑使用 ecdsa-192 并将 sha2 截断为 192 位 - 我认为 10 倍的成本是不幸的,但希望主要是 I/O 成本。

感谢反馈。让我知道我错过了什么。

【问题讨论】:

    标签: performance cryptography


    【解决方案1】:

    是的,您使用的加密类型很重要,但请记住,恶意用户破坏您的安全的最简单方法不是破坏加密,而是拦截/窃取密钥。查看 Eric Lippert 的博客以进行良好的直觉检查:http://blogs.msdn.com/b/ericlippert/archive/2011/09/27/keep-it-secret-keep-it-safe.aspx

    【讨论】:

    • 是的,没有任何争论,事实上这也是我们探索不对称的原因,尽管开销很大。
    • @mar:我认为这里的相关点是,即使是非对称系统也需要一种安全机制来分发公钥。你有这样的机制吗?如果没有,请在过度强调性能成本之前先考虑设计它。
    • 是的,当然我们有几层安全性。我正在寻找对 rsa 与 ecdsa/dsa 的安全性/性能进行评估以在一些最大的互联网站点上使用的人。其他问题虽然有效,但与范围无关。我也知道 gnupg 最近选择使用 rsa。
    猜你喜欢
    • 2018-09-13
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2012-07-26
    相关资源
    最近更新 更多