新闻  |   论坛  |   博客  |   在线研讨会
ECC签名格式
电子禅石 | 2023-03-17 17:58:06    阅读:15546   发布文章

image.png

30 46 02 21 00 B8 BC E6 7F 6F 98 36 37 D7 AD 24 C0 68 FC A7 33 9B 7F 8D 83 C1 B4 66 63 27 AE 82
7C 66 09 CF 5F 02 21 00 EC F4 13 35 FC 9B 0E 8D 18 1A 9F 6E 5F 6A DC 70 4B D2 92 0C 43 F6 48 B6
79 9E C2 50 15 50 8B 69


之前进行ECC的签名验证,发现签名的长度总是不同,查了不少资料才找到相应格式。


签名格式为TLV嵌套格式,签名的主体分为R和S两部分。R(或S)的长度等于ECC私钥长度。R(或S)前的T为0x02,签名T为0x30。总体格式如下:


30 + LEN1 + 02 + LEN2 + 00 (optional) + r + 02 + LEN3 + 00(optional) + s


当r或s的第1字节大于0x80时,需要在r或s前加1字节0x00。


LEN3为,0x00(optional) + s 的字节长度。


LEN2为,0x00(optional) + r 的字节长度。


LEN1为,LEN2+LEN3+4字节长度。


 


示例使用ECC密钥的长度为128bit,即16字节。


 


示例1:


R:


“55C963A8DF3E04D0065BD95AA97AE758F1A550683238978500ED8A77C0BBA438”


S:


“A7ED11F41861833CAC4FBD0CD6F2AF7E682512EA4135F66315F52D76E651CD2D”


Sign:


“3044”+ “0220” + “2025FB2BFE02547D366274D3EE5DB985FE278343D985D195A710D6D6C5F62770” + “0220” + “2ADA9ED4260F0686D098016ACC29369A55760222A071DE2E3A9A739EC0A1E4D4”


 


示例2:


R:


“55C963A8DF3E04D0065BD95AA97AE758F1A550683238978500ED8A77C0BBA438”


S:


“A7ED11F41861833CAC4FBD0CD6F2AF7E682512EA4135F66315F52D76E651CD2D”


Sign:


“3045” + “0220” + “55C963A8DF3E04D0065BD95AA97AE758F1A550683238978500ED8A77C0BBA438” + “0221” + “00” + “A7ED11F41861833CAC4FBD0CD6F2AF7E682512EA4135F66315F52D76E651CD2D”


 


示例3:


R:


“B66E81C0C6E0981CF24F4785A7DC853562D025EDB7407247FD7D29BDA4CFD9BF”


S:


“FA53841387568477283FF104952599582E24BB5EDA7B3318B8AC3661D63E29F3”


Sign:


“3046” + “0221” + “00” + “B66E81C0C6E0981CF24F4785A7DC853562D025EDB7407247FD7D29BDA4CFD9BF” + “0221” + “00” + “FA53841387568477283FF104952599582E24BB5EDA7B3318B8AC3661D63E29F3”

————————————————


原文链接:https://blog.csdn.net/daihuimaozideren/article/details/81072738


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客