网站证书的公钥的位数是怎么看和计算的?

2019-06-25 10:24:08 +08:00
 rebeccaMyKid

比如 V2EX 的证书里面,有一栏是写着公钥 ECC(256bits)

内容是:

04 27 8d b7 3e 58 81 a5 f1 fe 35 75 76 44 ef f2 20 a2 1d 05 58 0a cb f6 c7 e9 7c e7 4a ee 3c 99 9a d6 cf 9a 48 7c aa 75 34 1c 38 69 54 64 ba 91 a1 31 ce 03 af 72 ce fd bd e7 bb a9 32 76 9c 75 f9

可是我用python计算len('上面的字符串'.split(' ')) == 65, 65*8 == 520,这不是 520bits 吗?

我是哪里算错了?

1608 次点击
所在节点    问与答
7 条回复
qwerthhusn
2019-06-25 10:50:03 +08:00
prime256v1 的公钥长度是 65 个字节,你看到的只是公钥长度
rebeccaMyKid
2019-06-25 11:36:49 +08:00
@qwerthhusn 65 个字节×8 不就是位数了吗
qwerthhusn
2019-06-25 11:41:29 +08:00
@rebeccaMyKid 说的位数又不是公钥的位数,而是这个算法。具体我也不清楚,但是 prime256v1 的公钥位数就是 65 字节 520b
honeycomb
2019-06-25 13:35:43 +08:00
@rebeccaMyKid
p256v1 的未压缩形式的公钥长度为 32+32+1 字节,压缩形式的则为 32+1。
这里的 32 大概对应了 256 位
honeycomb
2019-06-25 13:38:00 +08:00
@rebeccaMyKid 可以考虑参考文档:

www.secg.org/sec1-v2.pdf
rebeccaMyKid
2019-06-25 14:19:34 +08:00
@honeycomb 哦哦,是这样啊。我就是好奇,知道个大概就行了。因为我看知乎的那个 public key 写着 2048bits,拉出来算了一下的确是这么长,v2 的这个就搞不明白了,谷歌用的也是 v2 这种。
qwerthhusn
2019-06-25 14:41:31 +08:00
@rebeccaMyKid Google 和 v2 用的都是 ECC 证书,一般密钥都是 256 位的。然后其他大部分网站用的是 RSA 证书,一般密钥用的都是 2048 位的。。。而且 v2 我记得之前也是用的 TrustAsia 发的 RSA 证书,看时间,应该是几天前才换的 ECC 证书

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/577161

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX