V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rebeccaMyKid
V2EX  ›  问与答

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

  •  
  •   rebeccaMyKid · 2019-06-25 10:24:08 +08:00 · 1654 次点击
    这是一个创建于 1984 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如 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 吗?

    我是哪里算错了?

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

    www.secg.org/sec1-v2.pdf
    rebeccaMyKid
        6
    rebeccaMyKid  
    OP
       2019-06-25 14:19:34 +08:00
    @honeycomb 哦哦,是这样啊。我就是好奇,知道个大概就行了。因为我看知乎的那个 public key 写着 2048bits,拉出来算了一下的确是这么长,v2 的这个就搞不明白了,谷歌用的也是 v2 这种。
    qwerthhusn
        7
    qwerthhusn  
       2019-06-25 14:41:31 +08:00
    @rebeccaMyKid Google 和 v2 用的都是 ECC 证书,一般密钥都是 256 位的。然后其他大部分网站用的是 RSA 证书,一般密钥用的都是 2048 位的。。。而且 v2 我记得之前也是用的 TrustAsia 发的 RSA 证书,看时间,应该是几天前才换的 ECC 证书
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:54 · PVG 04:54 · LAX 12:54 · JFK 15:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.