Rsa

RSA 和 SHA-256 簽名編碼的初始值

  • November 22, 2020

如 RFC 8017 中所述,RSASSA-PKCS1-V1_5 在編碼過程中使用以下字節:

0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20

有人知道如何計算這些值嗎?

探勘RFC 8017

9.2. EMSA-PKCS1-v1_5

對於附錄 B.1 中提到的九個雜湊函式,DigestInfo 值的 DER 編碼 T 等於以下:

A.2.4。RSASSA-PKCS-v1_5

RSASSA-PKCS1-v1_5 的對象標識符應為

以下之一。

兩者結合在下面;

Hash algorithm   OID                           the DER encoding T of the DigestInfo
------------------------------------------------------------------------------------------
MD2              md2WithRSAEncryption          (0x)30 20 30 0c 06 08 2a 86 48 86 f7 0d 02 02 05 00 04 10 || H.
MD5              md5WithRSAEncryption          (0x)30 20 30 0c 06 08 2a 86 48 86 f7 0d 02 05 05 00 04 10 || H.
SHA-1            sha1WithRSAEncryption         (0x)30 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14 || H.
SHA-224          sha224WithRSAEncryption       (0x)30 2d 30 0d 06 09 60 86 48 01 65 03 04 02 04 05 00 04 1c || H.
SHA-256          sha256WithRSAEncryption       (0x)30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20 || H.
SHA-384          sha384WithRSAEncryption       (0x)30 41 30 0d 06 09 60 86 48 01 65 03 04 02 02 05 00 04 30 || H.
SHA-512          sha512WithRSAEncryption       (0x)30 51 30 0d 06 09 60 86 48 01 65 03 04 02 03 05 00 04 40 || H.
SHA-512/224      sha512-224WithRSAEncryption   (0x)30 2d 30 0d 06 09 60 86 48 01 65 03 04 02 05 05 00 04 1c || H.
SHA-512/256      sha512-256WithRSAEncryption   (0x)30 31 30 0d 06 09 60 86 48 01 65 03 04 02 06 05 00 04 20 || H.

並且在

B.1。雜湊函式

對象標識符 id-md2、id-md5、id-sha1、id-sha224、id-sha256、id-sha384、id-sha512、id-sha512/224 和 id-sha512/256 標識

各自的雜湊函式:

   id-md2      OBJECT IDENTIFIER ::= {
       iso (1) member-body (2) us (840) rsadsi (113549)
       digestAlgorithm (2) 2
   }

   id-md5      OBJECT IDENTIFIER ::= {
       iso (1) member-body (2) us (840) rsadsi (113549)
       digestAlgorithm (2) 5
   }
   ...

因此,它是上述對象標識符的 DER 編碼。請參閱ASN.1、BER 和 DER (5.9) 子集的外行指南範例

引用自:https://crypto.stackexchange.com/questions/86385