Using ChaCha20-Poly1305 Authenticated Encryption in the Cryptographic Message Syntax (CMS)
RFC 8103

Document Type RFC - Proposed Standard (February 2017; No errata)
Last updated 2017-02-28
Replaces draft-housley-cms-chacha20-poly1305
Stream IETF
Formats plain text pdf html bibtex
Reviews GENART will not review this version
Stream WG state Submitted to IESG for Publication
Document shepherd Daniel Migault
Shepherd write-up Show (last changed 2016-11-01)
IESG IESG state RFC 8103 (Proposed Standard)
Consensus Boilerplate Yes
Telechat date
Responsible AD Stephen Farrell
Send notices to "Daniel Migault" <daniel.migault@ericsson.com>
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack
Internet Engineering Task Force (IETF)                        R. Housley
Request for Comments: 8103                                Vigil Security
Category: Standards Track                                  February 2017
ISSN: 2070-1721

            Using ChaCha20-Poly1305 Authenticated Encryption
               in the Cryptographic Message Syntax (CMS)

Abstract

   This document describes the conventions for using ChaCha20-Poly1305
   Authenticated Encryption in the Cryptographic Message Syntax (CMS).
   ChaCha20-Poly1305 is an authenticated encryption algorithm
   constructed of the ChaCha stream cipher and Poly1305 authenticator.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc8103.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Housley                      Standards Track                    [Page 1]
RFC 8103          Using AEAD_CHACHA20_POLY1305 with CMS    February 2017

Table of Contents

   1. Introduction ....................................................2
      1.1. The ChaCha20 and Poly1305 AEAD Construction ................3
      1.2. ASN.1 ......................................................3
      1.3. Terminology ................................................3
   2. Key Management ..................................................4
   3. Using the AEAD_CHACHA20_POLY1305 Algorithm with
      AuthEnvelopedData ...............................................4
   4. S/MIME Capabilities Attribute ...................................5
   5. IANA Considerations .............................................6
   6. Security Considerations .........................................6
   7. References ......................................................7
      7.1. Normative References .......................................7
      7.2. Informative References .....................................8
   Appendix A. ASN.1 Module ...........................................9
   Acknowledgements ...................................................9
   Author's Address ...................................................9

1.  Introduction

   This document specifies the conventions for using ChaCha20-Poly1305
   Authenticated Encryption with the Cryptographic Message Syntax (CMS)
   [CMS] authenticated-enveloped-data content type [AUTHENV].

   ChaCha [CHACHA] is a stream cipher developed by D. J. Bernstein in
   2008.  It is a refinement of Salsa20, which is one of the ciphers in
   the eSTREAM portfolio [ESTREAM].

   ChaCha20 is the 20-round variant of ChaCha; it requires a 256-bit key
   and a 96-bit nonce.  [FORIETF] provides a detailed algorithm
   description, examples, and test vectors of ChaCha20.

   Poly1305 [POLY1305] is a Wegman-Carter, one-time authenticator
   designed by D. J. Bernstein.  Poly1305 produces a 16-byte
   authentication tag; it requires a 256-bit, single-use key.  [FORIETF]
   also provides a detailed algorithm description, examples, and test
   vectors of Poly1305.

   ChaCha20 and Poly1305 have been designed for high-performance
   software implementations.  They can typically be implemented with few
   resources and inexpensive operations, making them suitable on a wide
   range of systems.  They have also been designed to minimize leakage
   of information through side channels.

Housley                      Standards Track                    [Page 2]
RFC 8103          Using AEAD_CHACHA20_POLY1305 with CMS    February 2017

1.1.  The ChaCha20 and Poly1305 AEAD Construction

   ChaCha20 and Poly1305 have been combined to create an Authenticated
   Encryption with Associated Data (AEAD) algorithm [AEAD].  This AEAD
Show full document text