【发布时间】: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