ECC簽名格式

之前進行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”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章