为什么这些Botan公钥如此相似?

时间:2013-01-07 15:22:02

标签: security public-key-encryption x509 botan ecdsa

我正在使用Botan创建公共/私人ECDSA密钥对。生成的公钥(即使在使用此代码的不同计算机上)也非常相似......我觉得太安全了。以下是两次运行的示例:

-----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点更有帮助。

1 个答案:

答案 0 :(得分:3)

这些实际的公钥是:

02:77:83:04:A9:B8:B9:B2:9B:BF:48:71:83:38:64:87
4A:00:23:C5:8A:15:3B:35:1F:3F:D0:AB:29:7A:AB:1C
C3 

02:D4:2B:E4:13:D3:D3:8A:64:FD:1A:2B:EA:E2:06:46
A1:0A:78:1F:1D:C0:8B:5E:47:CA:7F:AF:E3:65:EE:1A
A5

这些都不一样,所以没有明显的理由担心这方面。相同的数据是关键的元数据和编码bumf(对于相同的格式键,您可以期望它们相同)。

通过导入xca(linux)获得的值。有更好的工具来检查DER编码数据,但我找不到任何容易的。