Hash 数字签名中哈希函数的确定
我有一个数字签名(RSA-PKCS#1)。使用RSA公钥解密后,我得到以下128字节Hash 数字签名中哈希函数的确定,hash,rsa,pkcs#1,Hash,Rsa,Pkcs#1,我有一个数字签名(RSA-PKCS#1)。使用RSA公钥解密后,我得到以下128字节 00 01 ff ff ff .. ff 00 30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20 77 51 1b f4 d7 17 d7 ad 8c 2d e5 89 2a ca e0 6d a3 c0 7d 13 4d d7 b8 01 14 87 03 00 69 e4 9b b3 PKCS#删除了1个填充,剩余51个字节: 30 31 3
00 01 ff ff ff .. ff 00 30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20 77 51 1b f4 d7 17 d7 ad 8c 2d e5 89 2a ca e0 6d a3 c0 7d 13 4d d7 b8 01 14 87 03 00 69 e4 9b b3
PKCS#删除了1个填充,剩余51个字节:
30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20 77 51 1b f4 d7 17 d7 ad 8c 2d e5 89 2a ca e0 6d a3 c0 7d 13 4d d7 b8 01 14 87 03 00 69 e4 9b b3
我想了解两件事:
这似乎是EMSA-PKCS1-v1_5,如中所述,这意味着在删除标头和填充后,将对
算法标识符进行DER编码,后跟哈希值本身
从RFC:
对于附录B.1中提到的六个散列函数,DER
DigestInfo
值的编码T等于以下值:
[……]
SHA-256:(0x)30 31 30 0d 06 09 60 86 48 01 65 03 04 02 05 00
04 20 | | H.
因此,在您的示例中,散列值是SHA-256散列起始值77511bf4d7…
这似乎是EMSA-PKCS1-v1_5,如中所述,这意味着在删除标头和填充后,您有一个算法标识符的DER编码,后跟散列值本身
从RFC:
对于附录B.1中提到的六个散列函数,DER
DigestInfo
值的编码T等于以下值:
[……]
SHA-256:(0x)30 31 30 0d 06 09 60 86 48 01 65 03 04 02 05 00
04 20 | | H.
因此,在您的示例中,散列值是SHA-256散列起始值77511bf4d7…