Use of the RSASSA-PSS Signature Algorithm in Cryptographic Message Syntax (CMS)
RFC 4056
Document | Type |
RFC - Proposed Standard
(June 2005; No errata)
Was draft-ietf-smime-pss (smime WG)
|
|
---|---|---|---|
Author | Jim Schaad | ||
Last updated | 2013-03-02 | ||
Stream | IETF | ||
Formats | plain text html pdf htmlized bibtex | ||
Stream | WG state | WG Document | |
Document shepherd | No shepherd assigned | ||
IESG | IESG state | RFC 4056 (Proposed Standard) | |
Action Holders |
(None)
|
||
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | Russ Housley | ||
Send notices to | (None) |
Network Working Group J. Schaad Request for Comments: 4056 Soaring Hawk Consulting Category: Standards Track June 2005 Use of the RSASSA-PSS Signature Algorithm in Cryptographic Message Syntax (CMS) Status of This Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2005). Abstract This document specifies the conventions for using the RSASSA-PSS (RSA Probabilistic Signature Scheme) digital signature algorithm with the Cryptographic Message Syntax (CMS). 1. Overview This document specifies the conventions for using the RSA Probabilistic Signature Scheme (RSASSA-PSS) [P1v2.1] digital signature algorithm with the Cryptographic Message Syntax [CMS] signed-data content type. CMS values are generated using ASN.1 [X.208-88], using the Basic Encoding Rules (BER) [X.209-88] and the Distinguished Encoding Rules (DER) [X.509-88]. This document is written to be used in conjunction with RFC 4055 [RSA-ALGS]. All of the ASN.1 structures referenced in this document are defined in RFC 4055. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [STDWORDS]. Schaad Standards Track [Page 1] RFC 4056 CMS and PSS Signature June 2005 1.1. PSS Algorithm Although there are no known defects with the PKCS #1 v1.5 [P1v1.5] signature algorithm, RSASSA-PSS [P1v2.1] was developed in an effort to have more mathematically provable security. PKCS #1 v1.5 signatures were developed in an ad hoc manner; RSASSA-PSS was developed based on mathematical foundations. 2. Algorithm Identifiers and Parameters 2.1. Certificate Identifiers The RSASSA-PSS signature algorithm is defined in RFC 3447 [P1v2.1]. Conventions for encoding the public key are defined in RFC 4055 [RSA-ALGS]. Two algorithm identifiers for RSA subject public keys in certificates are used. These are: rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 } and id-RSASSA-PSS OBJECT IDENTIFIER ::= { pkcs-1 10 } When the rsaEncryption algorithm identifier is used for a public key, the AlgorithmIdentifier parameters field MUST contain NULL. Complete details can be found in [RSA-ALGS]. When the id-RSASSA-PSS algorithm identifier is used for a public key, the AlgorithmIdentifier parameters field MUST either be absent or contain RSASSA-PSS-params. Again, complete details can be found in [RSA-ALGS]. In both cases, the RSA public key, which is composed of a modulus and a public exponent, MUST be encoded using the RSAPublicKey type. The output of this encoding is carried in the certificate subject public key. RSAPublicKey ::= SEQUENCE { modulus INTEGER, -- n publicExponent INTEGER } -- e Schaad Standards Track [Page 2] RFC 4056 CMS and PSS Signature June 2005 2.2. Signature Identifiers The algorithm identifier for RSASAA-PSS signatures is: id-RSASSA-PSS OBJECT IDENTIFIER ::= {pkcs-1 10 } When the id-RSASSA-PSS algorithm identifier is used for a signature, the AlgorithmIdentifier parameters field MUST contain RSASSA-PSS- params. Information about RSASSA-PSS-params can be found in [RSA- ALGS]. When signing, the RSA algorithm generates a single value, and that value is used directly as the signature value. 3. Signed-data Conventions digestAlgorithms SHOULD contain the one-way hash function used to compute the message digest on the eContent value. The same one-way hash function SHOULD be used for computing the message digest on both the eContent and the signedAttributes value if signedAttributes exist. The same one-way hash function MUST be used for computing the message digest on the signedAttributes and as the hashAlgorithm in the RSA- PSS-params structure. signatureAlgorithm MUST contain id-RSASSA-PSS. The algorithm parameters field MUST contain RSASSA-PSS-params. signature contains the single value resulting from the signing operation. If the subjectPublicKeyInfo algorithm identifier for the public key in the certificate is id-RSASSA-PSS and the parameters field is present, the following additional steps MUST be done as part of signature validation:Show full document text