RSAまたはElGamalのような他のアルゴリズムではなく、非対称楕円曲線暗号を使用して«私自身のハイブリッド暗号エンジン»を実装したいと思います。CでのECCの実装
セキュリティを強化するカーブを使用したいと考えていますが、どのカーネルを使用する必要がありますか?私が読んだことに基づいて、おそらく521ビットのカーブが理想的だと思います。より安全な体制がありますか?
サイドチャネル攻撃などのC/C++(C++ STLを使用しない)で最も安全な実装は何ですか? «separate»モジュールとして実装したいので、きれいなソースコードや参考にしていただければ幸いです。
独自の「ハイブリッド」エンジン? **注意。**暗号の第一のルールは、「あなたは専門家よりも優れた仕事をすることができません」。既存のアルゴリズムを変更すると、暗号化の背景を理解し、暗号化方式がどのように機能するかを完全に理解していない限り、暗号化を弱める可能性があります。 –
あなたはその521ビットの楕円曲線暗号で国家の核兵器コードを保護しようとしていますか?単純に256ビットの素数を持つFIPS 186-3の標準的な実装、あるいは単純にカーブ25519のすべてが秘密を持っている可能性があるのではないでしょうか。それらは容易に入手可能で、より速いオーダーであり、あなたの生涯中にこれらのいずれかが壊れたり、ECをファクタリングすることが第一にエントリーのポイントになるという合理的なチャンスがあるようにはなりません(それがはるかに実装の悪用やソーシャルエンジニアリングを見つける可能性が高い)。 – Damon
"最初のルール"はゼロで失敗します。 –