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

标签 security public-key-encryption x509 botan ecdsa

我正在使用 Botan 创建公共(public)/私有(private) ECDSA key 对。生成的公钥(即使在使用此代码的不同机器上)非常相似......我认为太相似而无法考虑安全。以下是两次运行的示例:

-----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 key 的代码:

LibraryInitializer init;
AutoSeeded_RNG rng;
EC_Group ecGroup("secp256k1");
ECDSA_PrivateKey key(rng, ecGroup);

为什么我要生成如此相似的公钥?如果多个用户使用此代码生成自己的 key ,我的假设是不“安全”的吗?

<小时/>

更新: 下面的答案似乎是正确的。我给 XCA 的创建者 Christian Hohnstaedt 发了一封电子邮件,进一步探讨 XCA 如何生成这个公钥以及它是什么。他回答说是EC_POINT,是通过命令获取的

openssl ec -pubin -noout -text

插入 X509 PEM 编码的公钥确实揭示了不同的公共(public) EC 点。应该注意的是(对于像我这样的其他新手)答案中的公共(public) EC 点对另一方本身没有好处 - 另一方需要知道正在使用哪个 EC 组,这就是为什么 X509 PEM 编码是比 EC 点更有帮助。

最佳答案

这些的实际公钥是:

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(您希望对于相同格式的 key 是相同的)。

通过导入 xca (linux) 获得的值。有更好的工具可用于检查 DER 编码数据,但我无法轻松找到。

关于security - 为什么这些 Botan 公钥如此相似?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14198775/

相关文章:

security - Nginx 安全配置

Java EE 安全性 - 使用哪种方法?

jquery - 强制我的页面为 http 而不是 https?

php - PHP 上的 OpenSSL 问题 - 不同版本的不同行为

C++:从 x509v3 证书中检索主题替代名称

java - 我可以自动下载带链的 X.509 证书吗?

security - 安全 cookie 和无效证书

c# - XmlElement 的 Xml 签名无法验证

javax.crypto.BadPaddingException : Data must start with zero with client cannot decrypt from server

c# - 来自公钥的 RSA 模数和指数