Botan を使用して公開/秘密 ECDSA キーペアを作成しています。生成される公開鍵 (このコードを使用する別のマシンでも) は非常に似ています...あまりにも似ているため、安全とは言えません。2 つの実行の例を次に示します。
-----BEGIN PUBLIC KEY-----
MIIBEzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEA////////////////
/////////////////////v///C8wRAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBEEEeb5m
fvncu6xVoGKVzocLBwKb/NstzijZWfKBWxb4F5hIOtp3JqPEZV2k+/wOEQio/Re0
SKaFVBmcR9CP+xDUuAIhAP////////////////////66rtzmr0igO7/SXozQNkFB
AgEBAyIAAneDBKm4ubKbv0hxgzhkh0oAI8WKFTs1Hz/Qqyl6qxzD
-----END PUBLIC KEY-----
-----BEGIN PUBLIC KEY-----
MIIBEzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEA////////////////
/////////////////////v///C8wRAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBEEEeb5m
fvncu6xVoGKVzocLBwKb/NstzijZWfKBWxb4F5hIOtp3JqPEZV2k+/wOEQio/Re0
SKaFVBmcR9CP+xDUuAIhAP////////////////////66rtzmr0igO7/SXozQNkFB
AgEBAyIAAtQr5BPT04pk/Ror6uIGRqEKeB8dwIteR8p/r+Nl7hql
-----END PUBLIC KEY-----
X509 エンコーディングを使用して公開鍵をエンコードしています。ECDSA キーを生成するコードは次のとおりです。
LibraryInitializer init;
AutoSeeded_RNG rng;
EC_Group ecGroup("secp256k1");
ECDSA_PrivateKey key(rng, ecGroup);
なぜこのような類似の公開鍵を生成するのですか? 複数のユーザーがこのコードを使用して独自のキーを生成する場合、それは「安全」ではないと仮定するのは正しいですか?
更新:以下の答えは正しいようです。XCA の作成者である Christian Hohnstaedt に電子メールを送り、XCA がこの公開鍵をどのように生成するか、またそれが何であるかについてもう少し調べてみました。彼はそれがEC_POINTであり、コマンドを使用して取得されると答えました
openssl ec -pubin -noout -text
X509 PEM でエンコードされた公開鍵を差し込むと、さまざまな公開 EC ポイントが明らかになります。(私のような他の初心者にとって) 回答の公開 EC ポイントは、それ自体では別のパーティにとって何の役にも立たないことに注意してください。相手は、どの EC グループが使用されているかを知る必要があるため、X509 PEM エンコーディングは単なるECポイントよりもはるかに便利です。