在C中实现ECC

5 c cryptography public-key-encryption

我想使用非对称椭圆曲线密码术而不是其他算法如RSA或ElGamal来实现"我自己的混合加密引擎".

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

C/C++中最安全的实现(不使用C++ STL),例如,侧通道攻击?我想将它实现为一个"单独的"模块,所以我希望清楚的源代码或良好的参考.

Acc*_*dae 1

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

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