draft-ietf-lamps-cms-shakes-10.txt | draft-ietf-lamps-cms-shakes-11.txt | |||
---|---|---|---|---|
LAMPS WG P. Kampanakis | LAMPS WG P. Kampanakis | |||
Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
Updates: RFC3370 (if approved) Q. Dang | Updates: 3370 (if approved) Q. Dang | |||
Intended status: Standards Track NIST | Intended status: Standards Track NIST | |||
Expires: October 27, 2019 April 25, 2019 | Expires: December 19, 2019 June 17, 2019 | |||
Use of the SHAKE One-way Hash Functions in the Cryptographic Message | Use of the SHAKE One-way Hash Functions in the Cryptographic Message | |||
Syntax (CMS) | Syntax (CMS) | |||
draft-ietf-lamps-cms-shakes-10 | draft-ietf-lamps-cms-shakes-11 | |||
Abstract | Abstract | |||
This document describes the conventions for using the SHAKE family of | This document describes the conventions for using the SHAKE family of | |||
hash functions with the Cryptographic Message Syntax (CMS) as one-way | hash functions with the Cryptographic Message Syntax (CMS) as one-way | |||
hash functions with the RSA Probabilistic signature and ECDSA | hash functions with the RSA Probabilistic signature and ECDSA | |||
signature algorithms, as message digests and message authentication | signature algorithms, as message digests and message authentication | |||
codes. The conventions for the associated signer public keys in CMS | codes. The conventions for the associated signer public keys in CMS | |||
are also described. | are also described. | |||
skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on October 27, 2019. | This Internet-Draft will expire on December 19, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
1. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3. Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Use in CMS . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Use in CMS . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
4.1. Message Digests . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. Message Digests . . . . . . . . . . . . . . . . . . . . . 6 | |||
4.2. Signatures . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Signatures . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.2.1. RSASSA-PSS Signatures . . . . . . . . . . . . . . . . 7 | 4.2.1. RSASSA-PSS Signatures . . . . . . . . . . . . . . . . 7 | |||
4.2.2. ECDSA Signatures . . . . . . . . . . . . . . . . . . 8 | 4.2.2. ECDSA Signatures . . . . . . . . . . . . . . . . . . 8 | |||
4.3. Public Keys . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Public Keys . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
4.4. Message Authentication Codes . . . . . . . . . . . . . . 9 | 4.4. Message Authentication Codes . . . . . . . . . . . . . . 9 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 12 | 8.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 13 | Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
1. Change Log | 1. Change Log | |||
[ EDNOTE: Remove this section before publication. ] | [ EDNOTE: Remove this section before publication. ] | |||
o draft-ietf-lamps-cms-shake-11: | ||||
* Minor nits. | ||||
* Nits identified by Roman in AD Review. | ||||
o draft-ietf-lamps-cms-shake-10: | o draft-ietf-lamps-cms-shake-10: | |||
* Updated IANA considerations section to request for OID | * Updated IANA considerations section to request for OID | |||
assignments. | assignments. | |||
o draft-ietf-lamps-cms-shake-09: | o draft-ietf-lamps-cms-shake-09: | |||
* Fixed minor text nit. | * Fixed minor text nit. | |||
* Updates in Sec Considerations section. | * Updates in Sec Considerations section. | |||
skipping to change at page 4, line 45 ¶ | skipping to change at page 4, line 49 ¶ | |||
algorithm [RFC8017] and the Elliptic Curve Digital Signature | algorithm [RFC8017] and the Elliptic Curve Digital Signature | |||
Algorithm (ECDSA) [X9.62] with the CMS signed-data content type. | Algorithm (ECDSA) [X9.62] with the CMS signed-data content type. | |||
In the SHA-3 family, two extendable-output functions (SHAKEs), | In the SHA-3 family, two extendable-output functions (SHAKEs), | |||
SHAKE128 and SHAKE256, are defined. Four other hash function | SHAKE128 and SHAKE256, are defined. Four other hash function | |||
instances, SHA3-224, SHA3-256, SHA3-384, and SHA3-512 are also | instances, SHA3-224, SHA3-256, SHA3-384, and SHA3-512 are also | |||
defined but are out of scope for this document. A SHAKE is a | defined but are out of scope for this document. A SHAKE is a | |||
variable length hash function defined as SHAKE(M, d) where the output | variable length hash function defined as SHAKE(M, d) where the output | |||
is a d-bits long digest of message M. The corresponding collision | is a d-bits long digest of message M. The corresponding collision | |||
and second preimage resistance strengths for SHAKE128 are | and second preimage resistance strengths for SHAKE128 are | |||
min(d/2,128) and min(d,128) bits respectively. And, the | min(d/2,128) and min(d,128) bits respectively (Appendix A.1 [SHA3]). | |||
corresponding collision and second preimage resistance strengths for | And, the corresponding collision and second preimage resistance | |||
SHAKE256 are min(d/2,256) and min(d,256) bits respectively. | strengths for SHAKE256 are min(d/2,256) and min(d,256) bits | |||
respectively. | ||||
A SHAKE can be used in CMS as the message digest function (to hash | A SHAKE can be used in CMS as the message digest function (to hash | |||
the message to be signed) in RSASSA-PSS and ECDSA, message | the message to be signed) in RSASSA-PSS and ECDSA, message | |||
authentication code and as the mask generating function in RSASSA- | authentication code and as the mask generation function (MGF) in | |||
PSS. This specification describes the identifiers for SHAKEs to be | RSASSA-PSS. This specification describes the identifiers for SHAKEs | |||
used in CMS and their meaning. | to be used in CMS and their meaning. | |||
2.1. Terminology | 2.1. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Identifiers | 3. Identifiers | |||
This section defines six new object identifiers (OIDs) for using | This section defines four new object identifiers (OIDs) for using | |||
SHAKE128 and SHAKE256 in CMS. | SHAKE128 and SHAKE256 in CMS. | |||
EDNOTE: If PKIX draft is standardized first maybe we should not say | ||||
the identifiers are new for the RSASSA-PSS and ECDSA. | ||||
Two object identifiers for SHAKE128 and SHAKE256 hash functions are | Two object identifiers for SHAKE128 and SHAKE256 hash functions are | |||
defined in [shake-nist-oids] and we include them here for | defined in [shake-nist-oids] and we include them here for | |||
convenience. | convenience. | |||
id-shake128 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | id-shake128 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | |||
country(16) us(840) organization(1) gov(101) csor(3) | country(16) us(840) organization(1) gov(101) csor(3) | |||
nistAlgorithm(4) 2 11 } | nistAlgorithm(4) 2 11 } | |||
id-shake256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | id-shake256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | |||
country(16) us(840) organization(1) gov(101) csor(3) | country(16) us(840) organization(1) gov(101) csor(3) | |||
nistAlgorithm(4) 2 12 } | nistAlgorithm(4) 2 12 } | |||
In this specification, when using the id-shake128 or id-shake256 | In this specification, when using the id-shake128 or id-shake256 | |||
algorithm identifiers, the parameters MUST be absent. That is, the | algorithm identifiers, the parameters MUST be absent. That is, the | |||
identifier SHALL be a SEQUENCE of one component, the OID. | identifier SHALL be a SEQUENCE of one component, the OID. | |||
We define two identifiers for RSASSA-PSS signatures using SHAKEs. | [I-D.ietf-lamps-pkix-shake] [ EDNOTE: Update reference with the RFC | |||
when it is ready ] defines two identifiers for RSASSA-PSS signatures | ||||
using SHAKEs which we include here for convenience. | ||||
id-RSASSA-PSS-SHAKE128 OBJECT IDENTIFIER ::= { iso(1) | id-RSASSA-PSS-SHAKE128 OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) | identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) algorithms(6) | security(5) mechanisms(5) pkix(7) algorithms(6) | |||
TBD1 } | TBD1 } | |||
id-RSASSA-PSS-SHAKE256 OBJECT IDENTIFIER ::= { iso(1) | id-RSASSA-PSS-SHAKE256 OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) | identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) algorithms(6) | security(5) mechanisms(5) pkix(7) algorithms(6) | |||
TBD2 } | TBD2 } | |||
The same RSASSA-PSS algorithm identifiers can be used for identifying | The same RSASSA-PSS algorithm identifiers can be used for identifying | |||
public keys and signatures. | public keys and signatures. | |||
We define two algorithm identifiers of ECDSA signatures using SHAKEs. | [I-D.ietf-lamps-pkix-shake] [ EDNOTE: Update reference with the RFC | |||
when it is ready ] also defines two algorithm identifiers of ECDSA | ||||
signatures using SHAKEs which we include here for convenience. | ||||
id-ecdsa-with-shake128 OBJECT IDENTIFIER ::= { iso(1) | id-ecdsa-with-shake128 OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) | identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) algorithms(6) | security(5) mechanisms(5) pkix(7) algorithms(6) | |||
TBD3 } | TBD3 } | |||
id-ecdsa-with-shake256 OBJECT IDENTIFIER ::= { iso(1) | id-ecdsa-with-shake256 OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) | identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) algorithms(6) | security(5) mechanisms(5) pkix(7) algorithms(6) | |||
TBD4 } | TBD4 } | |||
The parameters for the four RSASSA-PSS and ECDSA identifiers MUST be | The parameters for the four RSASSA-PSS and ECDSA identifiers MUST be | |||
absent. That is, each identifier SHALL be a SEQUENCE of one | absent. That is, each identifier SHALL be a SEQUENCE of one | |||
component, the OID. | component, the OID. | |||
Two object identifiers for KMACs using SHAKE128 and SHAKE256 are | Two object identifiers for KMACs using SHAKE128 and SHAKE256 as | |||
defined below. | defined in by the National Institute of Standards and Technology | |||
(NIST) in [shake-nist-oids] and we include them here for convenience. | ||||
id-KmacWithSHAKE128 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | id-KmacWithSHAKE128 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | |||
country(16) us(840) organization(1) gov(101) csor(3) | country(16) us(840) organization(1) gov(101) csor(3) | |||
nistAlgorithm(4) 2 19 } | nistAlgorithm(4) 2 19 } | |||
id-KmacWithSHAKE256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | id-KmacWithSHAKE256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) | |||
country(16) us(840) organization(1) gov(101) csor(3) | country(16) us(840) organization(1) gov(101) csor(3) | |||
nistAlgorithm(4) 2 20 } | nistAlgorithm(4) 2 20 } | |||
The parameters for id-KmacWithSHAKE128 and id-KmacWithSHAKE256 are | The parameters for id-KmacWithSHAKE128 and id-KmacWithSHAKE256 are | |||
skipping to change at page 7, line 16 ¶ | skipping to change at page 7, line 18 ¶ | |||
Message Digest authenticated attribute included in the | Message Digest authenticated attribute included in the | |||
signedAttributes of the SignedData signerInfo. In addition, digest | signedAttributes of the SignedData signerInfo. In addition, digest | |||
values are input to signature algorithms. The digest algorithm MUST | values are input to signature algorithms. The digest algorithm MUST | |||
be the same as the message hash algorithms used in signatures. | be the same as the message hash algorithms used in signatures. | |||
4.2. Signatures | 4.2. Signatures | |||
In CMS, signature algorithm identifiers are located in the SignerInfo | In CMS, signature algorithm identifiers are located in the SignerInfo | |||
signatureAlgorithm field of SignedData content type and | signatureAlgorithm field of SignedData content type and | |||
countersignature attribute. Signature values are located in the | countersignature attribute. Signature values are located in the | |||
SignerInfo signature field of SignedData and countersignature. | SignerInfo signature field of SignedData content type and | |||
countersignature attribute. | ||||
Conforming implementations that process RSASSA-PSS and ECDSA with | Conforming implementations that process RSASSA-PSS and ECDSA with | |||
SHAKE signatures when processing CMS data MUST recognize the | SHAKE signatures when processing CMS data MUST recognize the | |||
corresponding OIDs specified in Section 3. | corresponding OIDs specified in Section 3. | |||
When using RSASSA-PSS or ECDSA with SHAKEs, the RSA modulus and ECDSA | When using RSASSA-PSS or ECDSA with SHAKEs, the RSA modulus and ECDSA | |||
curve order SHOULD be chosen in line with the SHAKE output length. | curve order SHOULD be chosen in line with the SHAKE output length. | |||
In the context of this document SHAKE128 OIDs are RECOMMENDED for | In the context of this document SHAKE128 OIDs are RECOMMENDED for | |||
2048 or 3072-bit RSA modulus or curves with group order of 256-bits. | 2048 or 3072-bit RSA modulus or curves with group order of 256-bits. | |||
SHAKE256 OIDs are RECOMMENDED for 4096-bit RSA modulus and higher or | SHAKE256 OIDs are RECOMMENDED for 4096-bit RSA modulus and higher or | |||
skipping to change at page 7, line 38 ¶ | skipping to change at page 7, line 41 ¶ | |||
4.2.1. RSASSA-PSS Signatures | 4.2.1. RSASSA-PSS Signatures | |||
The RSASSA-PSS algorithm is defined in [RFC8017]. When id-RSASSA- | The RSASSA-PSS algorithm is defined in [RFC8017]. When id-RSASSA- | |||
PSS-SHAKE128 or id-RSASSA-PSS-SHAKE256 specified in Section 3 is | PSS-SHAKE128 or id-RSASSA-PSS-SHAKE256 specified in Section 3 is | |||
used, the encoding MUST omit the parameters field. That is, the | used, the encoding MUST omit the parameters field. That is, the | |||
AlgorithmIdentifier SHALL be a SEQUENCE of one component, id-RSASSA- | AlgorithmIdentifier SHALL be a SEQUENCE of one component, id-RSASSA- | |||
PSS-SHAKE128 or id-RSASSA-PSS-SHAKE256. [RFC4055] defines RSASSA- | PSS-SHAKE128 or id-RSASSA-PSS-SHAKE256. [RFC4055] defines RSASSA- | |||
PSS-params that are used to define the algorithms and inputs to the | PSS-params that are used to define the algorithms and inputs to the | |||
algorithm. This specification does not use parameters because the | algorithm. This specification does not use parameters because the | |||
hash and mask generating algorithm and trailer and salt are embedded | hash, mask generation algorithm, trailer and salt are embedded in the | |||
in the OID definition. | OID definition. | |||
The hash algorithm to hash a message being signed and the hash and | The hash algorithm to hash a message being signed and the hash | |||
the hash algorithm as the mask generation function used in RSASSA-PSS | algorithm as the mask generation function used in RSASSA-PSS MUST be | |||
MUST be the same, SHAKE128 or SHAKE256 respectively. The output- | the same, SHAKE128 or SHAKE256 respectively. The output-length of | |||
length of the hash algorithm which hashes the message SHALL be 32 or | the hash algorithm which hashes the message SHALL be 32 or 64 bytes | |||
64 bytes respectively. | respectively. | |||
The mask generation function takes an octet string of variable length | The mask generation function takes an octet string of variable length | |||
and a desired output length as input, and outputs an octet string of | and a desired output length as input, and outputs an octet string of | |||
the desired length. In RSASSA-PSS with SHAKEs, the SHAKEs MUST be | the desired length. In RSASSA-PSS with SHAKEs, the SHAKEs MUST be | |||
used natively as the MGF function, instead of the MGF1 algorithm that | used natively as the MGF function, instead of the MGF1 algorithm that | |||
uses the hash function in multiple iterations as specified in | uses the hash function in multiple iterations as specified in | |||
Section B.2.1 of [RFC8017]. In other words, the MGF is defined as | Section B.2.1 of [RFC8017]. In other words, the MGF is defined as | |||
the SHAKE128 or SHAKE256 output of the mgfSeed for id-RSASSA-PSS- | the SHAKE128 or SHAKE256 output of the mgfSeed for id-RSASSA-PSS- | |||
SHAKE128 and id-RSASSA-PSS-SHAKE256 respectively. The mgfSeed is the | SHAKE128 and id-RSASSA-PSS-SHAKE256 respectively. The mgfSeed is the | |||
seed from which mask is generated, an octet string [RFC8017]. As | seed from which mask is generated, an octet string [RFC8017]. As | |||
skipping to change at page 8, line 42 ¶ | skipping to change at page 8, line 46 ¶ | |||
the output size of the hash function must be explicitly determined. | the output size of the hash function must be explicitly determined. | |||
The output size, d, for SHAKE128 or SHAKE256 used in ECDSA MUST be | The output size, d, for SHAKE128 or SHAKE256 used in ECDSA MUST be | |||
256 or 512 bits respectively. | 256 or 512 bits respectively. | |||
It is RECOMMENDED that conforming implementations that generate ECDSA | It is RECOMMENDED that conforming implementations that generate ECDSA | |||
with SHAKE signatures in CMS generate such signatures with a | with SHAKE signatures in CMS generate such signatures with a | |||
deterministically generated, non-random k in accordance with all the | deterministically generated, non-random k in accordance with all the | |||
requirements specified in [RFC6979]. They MAY also generate such | requirements specified in [RFC6979]. They MAY also generate such | |||
signatures in accordance with all other recommendations in [X9.62] or | signatures in accordance with all other recommendations in [X9.62] or | |||
[SEC1] if they have a stated policy that requires conformance to | [SEC1] if they have a stated policy that requires conformance to | |||
these standards. | these standards. These standards have not specified SHAKE128 and | |||
SHAKE256 as hash algorithm options. However, SHAKE128 and SHAKE256 | ||||
with output length being 32 and 64 octets respectively can be used | ||||
instead of 256 and 512-bit output hash algorithms such as SHA256 and | ||||
SHA512 used in the standards. | ||||
4.3. Public Keys | 4.3. Public Keys | |||
In CMS, the signer's public key algorithm identifiers are located in | In CMS, the signer's public key algorithm identifiers are located in | |||
the OriginatorPublicKey's algorithm attribute. The conventions and | the OriginatorPublicKey's algorithm attribute. The conventions and | |||
encoding for RSASSA-PSS and ECDSA public keys algorithm identifiers | encoding for RSASSA-PSS and ECDSA public keys algorithm identifiers | |||
are as specified in Section 2.3 of [RFC3279], Section 3.1 of | are as specified in Section 2.3 of [RFC3279], Section 3.1 of | |||
[RFC4055] and Section 2.1 of [RFC5480]. | [RFC4055] and Section 2.1 of [RFC5480]. | |||
Traditionally, the rsaEncryption object identifier is used to | Traditionally, the rsaEncryption object identifier is used to | |||
skipping to change at page 10, line 11 ¶ | skipping to change at page 10, line 17 ¶ | |||
One object identifier for the ASN.1 module in Appendix A was | One object identifier for the ASN.1 module in Appendix A was | |||
requested for the SMI Security for S/MIME Module Identifiers | requested for the SMI Security for S/MIME Module Identifiers | |||
(1.2.840.113549.1.9.16.0) registry: | (1.2.840.113549.1.9.16.0) registry: | |||
+---------+----------------------+--------------------+ | +---------+----------------------+--------------------+ | |||
| Decimal | Description | References | | | Decimal | Description | References | | |||
+---------+----------------------+--------------------+ | +---------+----------------------+--------------------+ | |||
| TBD | CMSAlgsForSHAKE-2019 | [EDNOTE: THIS RFC] | | | TBD | CMSAlgsForSHAKE-2019 | [EDNOTE: THIS RFC] | | |||
+---------+----------------------+--------------------+ | +---------+----------------------+--------------------+ | |||
IANA has assigned four OID identifiers in the SMI Security for PKIX | ||||
Algorithms [SMI-PKIX] (1.3.6.1.5.5.7.6) registry | ||||
id-RSASSA-PSS-SHAKE128 OBJECT IDENTIFIER ::= { iso(1) | ||||
identified-organization(3) dod(6) internet(1) | ||||
security(5) mechanisms(5) pkix(7) algorithms(6) | ||||
TBD1 } | ||||
id-RSASSA-PSS-SHAKE256 OBJECT IDENTIFIER ::= { iso(1) | ||||
identified-organization(3) dod(6) internet(1) | ||||
security(5) mechanisms(5) pkix(7) algorithms(6) | ||||
TBD2 } | ||||
id-ecdsa-with-shake128 OBJECT IDENTIFIER ::= { iso(1) | ||||
identified-organization(3) dod(6) internet(1) | ||||
security(5) mechanisms(5) pkix(7) algorithms(6) | ||||
TBD3 } | ||||
id-ecdsa-with-shake256 OBJECT IDENTIFIER ::= { iso(1) | ||||
identified-organization(3) dod(6) internet(1) | ||||
security(5) mechanisms(5) pkix(7) algorithms(6) | ||||
TBD4 } | ||||
6. Security Considerations | 6. Security Considerations | |||
This document updates [RFC3370]. The security considerations section | This document updates [RFC3370]. The security considerations section | |||
of that document applies to this specification as well. | of that document applies to this specification as well. | |||
NIST has defined appropriate use of the hash functions in terms of | NIST has defined appropriate use of the hash functions in terms of | |||
the algorithm strengths and expected time frames for secure use in | the algorithm strengths and expected time frames for secure use in | |||
Special Publications (SPs) [SP800-78-4] and [SP800-107]. These | Special Publications (SPs) [SP800-78-4] and [SP800-107]. These | |||
documents can be used as guides to choose appropriate key sizes for | documents can be used as guides to choose appropriate key sizes for | |||
various security scenarios. | various security scenarios. | |||
skipping to change at page 12, line 19 ¶ | skipping to change at page 12, line 5 ¶ | |||
<http://nvlpubs.nist.gov/nistpubs/SpecialPublications/ | <http://nvlpubs.nist.gov/nistpubs/SpecialPublications/ | |||
NIST.SP.800-185.pdf>. | NIST.SP.800-185.pdf>. | |||
8.2. Informative References | 8.2. Informative References | |||
[I-D.housley-lamps-cms-sha3-hash] | [I-D.housley-lamps-cms-sha3-hash] | |||
Housley, R., "Use of the SHA3 One-way Hash Functions in | Housley, R., "Use of the SHA3 One-way Hash Functions in | |||
the Cryptographic Message Syntax (CMS)", draft-housley- | the Cryptographic Message Syntax (CMS)", draft-housley- | |||
lamps-cms-sha3-hash-00 (work in progress), March 2017. | lamps-cms-sha3-hash-00 (work in progress), March 2017. | |||
[I-D.ietf-lamps-pkix-shake] | ||||
Kampanakis, P. and Q. Dang, "Internet X.509 Public Key | ||||
Infrastructure: Additional Algorithm Identifiers for | ||||
RSASSA-PSS and ECDSA using SHAKEs", draft-ietf-lamps-pkix- | ||||
shake-11 (work in progress), June 2019. | ||||
[RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and | [RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and | |||
Identifiers for the Internet X.509 Public Key | Identifiers for the Internet X.509 Public Key | |||
Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
(CRL) Profile", RFC 3279, DOI 10.17487/RFC3279, April | (CRL) Profile", RFC 3279, DOI 10.17487/RFC3279, April | |||
2002, <https://www.rfc-editor.org/info/rfc3279>. | 2002, <https://www.rfc-editor.org/info/rfc3279>. | |||
[RFC5753] Turner, S. and D. Brown, "Use of Elliptic Curve | [RFC5753] Turner, S. and D. Brown, "Use of Elliptic Curve | |||
Cryptography (ECC) Algorithms in Cryptographic Message | Cryptography (ECC) Algorithms in Cryptographic Message | |||
Syntax (CMS)", RFC 5753, DOI 10.17487/RFC5753, January | Syntax (CMS)", RFC 5753, DOI 10.17487/RFC5753, January | |||
2010, <https://www.rfc-editor.org/info/rfc5753>. | 2010, <https://www.rfc-editor.org/info/rfc5753>. | |||
skipping to change at page 13, line 11 ¶ | skipping to change at page 13, line 5 ¶ | |||
[SEC1] Standards for Efficient Cryptography Group, "SEC 1: | [SEC1] Standards for Efficient Cryptography Group, "SEC 1: | |||
Elliptic Curve Cryptography", May 2009, | Elliptic Curve Cryptography", May 2009, | |||
<http://www.secg.org/sec1-v2.pdf>. | <http://www.secg.org/sec1-v2.pdf>. | |||
[shake-nist-oids] | [shake-nist-oids] | |||
National Institute of Standards and Technology, "Computer | National Institute of Standards and Technology, "Computer | |||
Security Objects Register", October 2017, | Security Objects Register", October 2017, | |||
<https://csrc.nist.gov/Projects/Computer-Security-Objects- | <https://csrc.nist.gov/Projects/Computer-Security-Objects- | |||
Register/Algorithm-Registration>. | Register/Algorithm-Registration>. | |||
[SMI-PKIX] | ||||
IANA, "SMI Security for PKIX Algorithms", March 2019, | ||||
<https://www.iana.org/assignments/smi-numbers/ | ||||
smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.6>. | ||||
[SP800-107] | [SP800-107] | |||
National Institute of Standards and Technology (NIST), | National Institute of Standards and Technology (NIST), | |||
"SP800-107: Recommendation for Applications Using Approved | "SP800-107: Recommendation for Applications Using Approved | |||
Hash Algorithms", May 2014, | Hash Algorithms", May 2014, | |||
<https://csrc.nist.gov/csrc/media/publications/sp/800-107/ | <https://csrc.nist.gov/csrc/media/publications/sp/800-107/ | |||
rev-1/final/documents/draft_revised_sp800-107.pdf>. | rev-1/final/documents/draft_revised_sp800-107.pdf>. | |||
[SP800-78-4] | [SP800-78-4] | |||
National Institute of Standards and Technology (NIST), | National Institute of Standards and Technology (NIST), | |||
"SP800-78-4: Cryptographic Algorithms and Key Sizes for | "SP800-78-4: Cryptographic Algorithms and Key Sizes for | |||
skipping to change at page 15, line 25 ¶ | skipping to change at page 15, line 14 ¶ | |||
security(5) mechanisms(5) pkix(7) algorithms(6) | security(5) mechanisms(5) pkix(7) algorithms(6) | |||
TBD1 } | TBD1 } | |||
id-RSASSA-PSS-SHAKE256 OBJECT IDENTIFIER ::= { iso(1) | id-RSASSA-PSS-SHAKE256 OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) | identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) algorithms(6) | security(5) mechanisms(5) pkix(7) algorithms(6) | |||
TBD2 } | TBD2 } | |||
-- When the id-RSASSA-PSS-* algorithm identifiers are used | -- When the id-RSASSA-PSS-* algorithm identifiers are used | |||
-- for a public key or signature in CMS, the AlgorithmIdentifier | -- for a public key or signature in CMS, the AlgorithmIdentifier | |||
-- parameters field MUST be absent. The message digest algorithm | -- parameters field MUST be absent. The message digest algorithm | |||
-- used in RSASSA-PSS MUST be SHAKE128 or SHAKE256 with a 32 or | -- used in RSASSA-PSS MUST be SHAKE128 or SHAKE256 with a 32 or | |||
-- 64 byte outout length respectively. The mask generating | -- 64 byte outout length respectively. The mask generation | |||
-- function MUST be SHAKE128 or SHAKE256 with an output length | -- function MUST be SHAKE128 or SHAKE256 with an output length | |||
-- of (n - 264) or (n - 520) bits respectively, where n | -- of (n - 264) or (n - 520) bits respectively, where n | |||
-- is the RSA modulus in bits. The RSASSA-PSS saltLength MUST | -- is the RSA modulus in bits. The RSASSA-PSS saltLength MUST | |||
-- be 32 or 64 bytes respectively. The trailerField MUST be 1, | -- be 32 or 64 bytes respectively. The trailerField MUST be 1, | |||
-- which represents the trailer field with hexadecimal value | -- which represents the trailer field with hexadecimal value | |||
-- 0xBC. Regardless of id-RSASSA-PSS-* or rsaEncryption being | -- 0xBC. Regardless of id-RSASSA-PSS-* or rsaEncryption being | |||
-- used as the AlgorithmIdentifier of the OriginatorPublicKey, | -- used as the AlgorithmIdentifier of the OriginatorPublicKey, | |||
-- the RSA public key MUST be encoded using the RSAPublicKey | -- the RSA public key MUST be encoded using the RSAPublicKey | |||
-- type. | -- type. | |||
End of changes. 23 change blocks. | ||||
58 lines changed or deleted | 53 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |