首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EC SubjectPublicKeyInfo格式

EC SubjectPublicKeyInfo格式
EN

Cryptography用户
提问于 2018-10-19 23:26:36
回答 1查看 797关注 0票数 1

在EC SubjectPublicKeyInfo结构中,我无法计算额外的0x00字节。

代码语言:javascript
复制
> openssl asn1parse -i -in ecpub.pem -dump
0:d=0  hl=2 l=  89 cons: SEQUENCE          
2:d=1  hl=2 l=  19 cons:  SEQUENCE          
4:d=2  hl=2 l=   7 prim:   OBJECT            :id-ecPublicKey
13:d=2  hl=2 l=   8 prim:   OBJECT            :prime256v1
23:d=1  hl=2 l=  66 prim:  BIT STRING        
  0000 - 00 04 d0 ee 64 61 7b 90-48 a2 a9 5f b5 a3 da 67   ....da{.H.._...g
  0010 - 53 56 91 e0 cf 5b b8 85-3e 05 0c b9 e6 95 c3 8d   SV...[..>.......
  0020 - 26 ab d7 ee 47 94 38 61-1e cd 07 e6 90 0b 3d 4a   &...G.8a......=J
  0030 - 6a df c5 d5 9f f3 11 91-53 00 ff 0e 91 93 49 44   j.......S.....ID
  0040 - 4c 58                                             LX

在表示八位格式的公钥的位字符串中,在0x04字节之前的0x00字节是什么(我原以为它是第一个字节)?没有神秘的0x00字节,公钥将达到65个字节,整个结构与SEC1规范一致。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-10-19 23:33:58

位字符串值以一个字节开始,该字节指示未使用的位数。位字符串可以是任意大小的,因此它们可能不是8的倍数。因此,它们从应该跳过的位数开始。在您的示例中,它告诉用户,最后一个字节58 (以位表示的01011000)的所有位都是值的一部分。

大多数情况下,位字符串对字节数组进行编码,因此通常将其设置为00,而不是其他7种可能性中的一种。

第一位是最左边的,最后一位是最右边的。但只有当比特的顺序是重要的时候,这才是重要的。在这种情况下,位字符串包含未压缩的EC点W,所以它并不重要。

您可以在外行指南ASN.1由伯顿S.卡里斯基小。第5.4节“位字符串”中找到这一点,当然还有标准文档ITU-TX.680和X.690 (都是payware,所以我不会链接)。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/63266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档