Internet Engineering Task Force (IETF) S. Turner Request for Comments: 6160 IECA Category: Standards Track April 2011 ISSN: 2070-1721Algorithms for Cryptographic Message Syntax (CMS) Protection of Symmetric Key Package Content Types
Turner Standards Track [Page 1]
RFC 6160 Algorithms for Symmetric Key Packages April 2011 1. IntroductionThis document describes the conventions for using several cryptographic algorithms with the Cryptographic Message Syntax (CMS) [RFC5652] to protect the symmetric key package content type defined in [RFC6031]. Specifically, it includes conventions necessary to implement the following CMS content types: SignedData [RFC5652], EnvelopedData [RFC5652], EncryptedData [RFC5652], and AuthEnvelopedData [RFC5083]. Familiarity with [RFC5083], [RFC5652], [RFC5753], and [RFC6031] is assumed.
1.1. Terminology
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 [RFC2119].
2. SignedData
If an implementation supports SignedData, then it MUST support the signature scheme RSA [RFC3370] and SHOULD support the signature schemes RSA Probabilistic Signature Scheme (RSASSA-PSS) [RFC4056] and Digital Signature Algorithm (DSA) [RFC3370]. Additionally, implementations MUST support the hash function SHA-256 [RFC5754] in concert with these signature schemes, and they SHOULD support the hash function SHA-1 [RFC3370]. If an implementation supports SignedData, then it MAY support Elliptic Curve Digital Signature Algorithm (ECDSA) [RFC6090][RFC5753].
3. EnvelopedData
If an implementation supports EnvelopedData, then it MUST implement key transport, and it MAY implement key agreement.
Turner Standards Track [Page 2]
RFC 6160 Algorithms for Symmetric Key Packages April 2011
When key agreement is used, the same key-wrap algorithm MUST be used for both key and content encryption. If the content-encryption algorithm is AES-128 Key Wrap with Padding, then the key-wrap algorithm MUST be AES-128 Key Wrap with Padding [RFC5649]. If the content-encryption algorithm is AES-256 Key Wrap with Padding, then the key-wrap algorithm MUST be AES-256 Key Wrap with Padding [RFC5649].
4. EncryptedData
If an implementation supports EncryptedData, then it MUST implement AES-128 Key Wrap with Padding [RFC5649] and SHOULD implement AES-256 Key Wrap with Padding [RFC5649].
5. AuthEnvelopedData
If an implementation supports AuthEnvelopedData, then it MUST implement the EnvelopedData recommendations except for the content- encryption algorithm, which, in this case, MUST be AES-GCM [RFC5084]; the 128-bit version MUST be implemented, and the 256-bit version SHOULD be implemented. Implementations MAY also support AES-CCM [RFC5084].
6. Public Key Sizes
The easiest way to implement SignedData, EnvelopedData, and AuthEnvelopedData is with public key certificates [RFC5280]. If an implementation supports RSA, RSASSA-PSS, DSA, RSAES-OAEP, or Diffie- Hellman, then it MUST support key lengths from 1024-bit to 2048-bit, inclusive. If an implementation supports ECDSA or ECDH, then it MUST support keys on P-256.
7. Security Considerations
The security considerations from [RFC3370], [RFC3560], [RFC4056], [RFC5083], [RFC5084], [RFC5649], [RFC5652], [RFC5753], [RFC5754], and [RFC6031] apply. The choice of content-encryption algorithms for this document was based on [RFC5649]:
Turner Standards Track [Page 3]
RFC 6160 Algorithms for Symmetric Key Packages April 2011
In the design of some high assurance cryptographic modules, it is desirable to segregate cryptographic keying material from other data. The use of a specific cryptographic mechanism solely for the protection of cryptographic keying material can assist in this goal.8. References 8.1. Normative References[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Turner Standards Track [Page 4]
RFC 6160 Algorithms for Symmetric Key Packages April 2011
[RFC5649] Housley, R. and M. Dworkin, "Advanced Encryption Standard
8.2. Informative Reference
[SP800-57] National Institute of Standards and Technology (NIST),