【问题标题】:Implementation of ECC in CC中ECC的实现
【发布时间】:2011-09-27 19:24:42
【问题描述】:

我想使用非对称椭圆曲线加密而不是 RSA 或 ElGamal 等其他算法来实现“我自己的混合加密引擎”。

假设我想使用提供更高安全性的曲线,我应该使用哪些曲线?根据我读到的内容,我认为 521 位曲线可能是理想的。有更安全的方案吗?

在 C/C++(不使用 C++ STL)中,针对侧信道攻击等最安全的实现是什么?我想将它实现为一个“单独的”模块,所以我会感谢干净的源代码或好的参考。

【问题讨论】:

  • 您自己的“混合”引擎? 小心。 密码学的第一条规则是“你不能比专业人士做得更好”。您对现有算法所做的任何更改都极有可能会削弱它们,除非您有密码学背景并完全了解加密方案的工作原理——即使那样,您也可能会削弱加密。
  • 你打算用那个 521 位椭圆曲线加密来保护你国家的核武器代码吗?只是想知道您可能有什么秘密,即具有 256 位素数大小或所有简单曲线 25519 的 FIPS 186-3 的标准实现还不够好。这些很容易获得,速度要快几个数量级,而且在您的一生中,其中任何一个都不会被破坏的可能性不大,也不认为 EC 将首先成为切入点(当它更多可能会发现实施漏洞或进行社会工程)。
  • “第一条规则”在零处失败。
  • Jonathan,我没有修改加密方案,这可能更像是构建我自己的“自己的”加密安全通信协议,而不是实现完整的 SSL 支持,我什至还没有实现算法。基本上,我正在寻找 C/C++ 中 ECC 的安全实现(没有 C++ STL)...
  • Damon,我想知道哪些方案应该足够高效和安全,个人而言,我不在乎,例如,量子计算机是否会破坏当前的 PK 算法,如 RSA 或 EC 加密未来......我已经读过521位ECC相当于15360位RSA / DSA,这是足够的安全......正如你所说,实施漏洞更有可能。我已经要求针对漏洞的安全实施。

标签: c cryptography public-key-encryption


【解决方案1】:

在考虑是否有任何标准曲线可能不够安全之前,我先去确保加密模式确实可以抵御普通的旧选择密文攻击。 我认为 Cramer 和 Shoup 于 2003 年发表的论文“Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack”是分析混合加密方案的一个很好的起点。

至于计时攻击:OpenSSL 包含少数选定数量的曲线的实现,这些曲线已实现,以便它们在恒定时间内运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2023-03-07
    • 2010-12-12
    • 2011-04-04
    相关资源
    最近更新 更多