Zum Hauptinhalt springen

3. Algorithm Identifiers

This section preserves the RFC text for X.509 SLH-DSA algorithm identifiers, including ASN.1, OIDs, AlgorithmIdentifier, id-slh-dsa-* and id-hash-slh-dsa-* names, DER examples, certificates, key usage, IANA registrations, and security requirements.

Original RFC Text​

3.  Algorithm Identifiers

   The AlgorithmIdentifier type is defined in [RFC5912] as follows:

   AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::=
           SEQUENCE {
               algorithm   ALGORITHM-TYPE.&id({AlgorithmSet}),
               parameters  ALGORITHM-TYPE.
                      &Params({AlgorithmSet}{@algorithm}) OPTIONAL
           }

      |  NOTE: The above syntax is from [RFC5912] and is compatible with
      |  the 2021 ASN.1 syntax [X680].  See [RFC5280] for the 1988 ASN.1
      |  syntax.

   The fields in AlgorithmIdentifier have the following meanings:

   *  algorithm identifies the cryptographic algorithm with an object
      identifier.

   *  parameters, which is optional, identifies the associated
      parameters for the algorithm identifier in the algorithm field.

   The object identifiers for SLH-DSA are defined in the NIST Computer
   Security Objects Register [CSOR] and are reproduced here for
   convenience.  The same algorithm identifiers are used for identifying
   a public key, a private key, and a signature.

   The Pure SLH-DSA OIDs are defined in the ASN.1 module in [RFC9814]
   and reproduced here for convenience:

      nistAlgorithms OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
        country(16) us(840) organization(1) gov(101) csor(3) 4 }

      sigAlgs OBJECT IDENTIFIER ::= { nistAlgorithms 3 }

      id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 }

      id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 }

      id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 }

      id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 }

      id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 }

      id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 }

      id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 }

      id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 }

      id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 }

      id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 }

      id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 }

      id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 }

   The HashSLH-DSA OIDs are:

      nistAlgorithms OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
        country(16) us(840) organization(1) gov(101) csor(3) 4 }

      sigAlgs OBJECT IDENTIFIER ::= { nistAlgorithms 3 }

      id-hash-slh-dsa-sha2-128s-with-sha256 OBJECT IDENTIFIER ::= {
         sigAlgs 35 }

      id-hash-slh-dsa-sha2-128f-with-sha256 OBJECT IDENTIFIER ::= {
         sigAlgs 36 }

      id-hash-slh-dsa-sha2-192s-with-sha512 OBJECT IDENTIFIER ::= {
         sigAlgs 37 }

      id-hash-slh-dsa-sha2-192f-with-sha512 OBJECT IDENTIFIER ::= {
         sigAlgs 38 }

      id-hash-slh-dsa-sha2-256s-with-sha512 OBJECT IDENTIFIER ::= {
         sigAlgs 39 }

      id-hash-slh-dsa-sha2-256f-with-sha512 OBJECT IDENTIFIER ::= {
         sigAlgs 40 }

      id-hash-slh-dsa-shake-128s-with-shake128 OBJECT IDENTIFIER ::= {
         sigAlgs 41 }

      id-hash-slh-dsa-shake-128f-with-shake128 OBJECT IDENTIFIER ::= {
         sigAlgs 42 }

      id-hash-slh-dsa-shake-192s-with-shake256 OBJECT IDENTIFIER ::= {
         sigAlgs 43 }

      id-hash-slh-dsa-shake-192f-with-shake256 OBJECT IDENTIFIER ::= {
         sigAlgs 44 }

      id-hash-slh-dsa-shake-256s-with-shake256 OBJECT IDENTIFIER ::= {
         sigAlgs 45 }

      id-hash-slh-dsa-shake-256f-with-shake256 OBJECT IDENTIFIER ::= {
         sigAlgs 46 }

   The contents of the parameters component for each algorithm MUST be
   absent.