RFC 5932 PROPOSED STANDARD TLS · ENCRYPTION · CIPHER SUITES

Camellia TLS: Camellia Cipher Suites for TLS

TLS cipher suites that use the Camellia block cipher, now with SHA-256 variants alongside the SHA-1 ones.

On rfc-editor.org ↗
PUBLISHED
June 2010
AUTHORS
A. Kato, M. Kanda, S. Kanno
STREAM
IETF
BUILDS ON
RFC 4132 — Camellia in TLS
UPDATED BY
RFC 10015 — Deprecate TLS 1.2 kex
CIPHER SUITES DEFINED
24
KEY SIZES
128-bit and 256-bit
IV SIZE
128 bits
NEW IDENTIFIERS
0xBA to 0xC5
MAC FOR _SHA SUITES
HMAC-SHA1
MAC FOR _SHA256 SUITES
HMAC-SHA-256
DOI
10.17487/RFC5932

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                           A. Kato
Request for Comments: 5932                      NTT Software Corporation
Obsoletes: 4132                                                 M. Kanda
Category: Standards Track                                            NTT
ISSN: 2070-1721                                                 S. Kanno
                                                NTT Software Corporation
                                                               June 2010


                     Camellia Cipher Suites for TLS

Abstract

   This document specifies a set of cipher suites for the Transport
   Security Layer (TLS) protocol to support the Camellia encryption
   algorithm as a block cipher.  It amends the cipher suites originally
   specified in RFC 4132 by introducing counterparts using the newer
   cryptographic hash algorithms from the SHA-2 family.  This document
   obsoletes RFC 4132.

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 5741.

   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/rfc5932.

Copyright Notice

   Copyright (c) 2010 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.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

1.  Introduction

   This document proposes the addition of new cipher suites to the
   Transport Layer Security (TLS) [RFC5246] protocol to support the
   Camellia [RFC3713] encryption algorithm as a block cipher algorithm,
   adding variants using the SHA-2 family of cryptographic hash
   algorithms [FIPS180-3] to the TLS cipher suite portfolio originally
   specified in RFC 4132 [RFC4132].  This document obsoletes RFC 4132.

   The Camellia algorithm and its properties are described in [RFC3713].

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.  Proposed Cipher Suites

   The cipher suites defined here have the following identifiers:

  CipherSuite TLS_RSA_WITH_CAMELLIA_128_CBC_SHA         = { 0x00,0x41 };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA      = { 0x00,0x42 };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA      = { 0x00,0x43 };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA     = { 0x00,0x44 };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA     = { 0x00,0x45 };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA     = { 0x00,0x46 };

  CipherSuite TLS_RSA_WITH_CAMELLIA_256_CBC_SHA         = { 0x00,0x84 };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA      = { 0x00,0x85 };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA      = { 0x00,0x86 };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA     = { 0x00,0x87 };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA     = { 0x00,0x88 };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA     = { 0x00,0x89 };

  CipherSuite TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256      = { 0x00,0xBA };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256   = { 0x00,0xBB };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256   = { 0x00,0xBC };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256  = { 0x00,0xBD };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256  = { 0x00,0xBE };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256  = { 0x00,0xBF };

  CipherSuite TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256      = { 0x00,0xC0 };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256   = { 0x00,0xC1 };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256   = { 0x00,0xC2 };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256  = { 0x00,0xC3 };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256  = { 0x00,0xC4 };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256  = { 0x00,0xC5 };

3.  Cipher Suite Definitions

3.1.  Key Exchange

   The RSA, DHE_RSA, DH_RSA, DHE_DSS, DH_DSS, and DH_anon key exchanges
   are performed as defined in [RFC5246].

3.2.  Cipher

   The CAMELLIA_128_CBC cipher suites use Camellia [RFC3713] in Cipher
   Block Chaining (CBC) mode with a 128-bit key and 128-bit IV; the
   CAMELLIA_256_CBC cipher suites use a 256-bit key and 128-bit IV.

3.3.  Hash and Pseudorandom Function

3.3.1.  Hash and Pseudorandom Function for TLS 1.1

   The cipher suites ending with _SHA use HMAC-SHA1 as the MAC
   algorithm.

   When used with TLS versions prior to 1.2, the pseudorandom function
   (PRF) is calculated as specified in the appropriate version of the
   TLS specification.

3.3.2.  Hash and Pseudorandom Function for TLS 1.2

   The cipher suites ending with _SHA256 use HMAC-SHA-256 as the MAC
   algorithm.  The PRF is the TLS PRF [RFC5246] with SHA-256 as the hash
   function.  These cipher suites MUST NOT be negotiated by TLS 1.1 or
   earlier versions.  Clients MUST NOT offer these cipher suites if they
   do not offer TLS 1.2 or later.  Servers that select an earlier
   version of TLS MUST NOT select one of these cipher suites.

4.  IANA Considerations

   IANA has updated the entries for the following numbers that were
   allocated in RFC 4132 to reference this document:

  CipherSuite TLS_RSA_WITH_CAMELLIA_128_CBC_SHA         = { 0x00,0x41 };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA      = { 0x00,0x42 };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA      = { 0x00,0x43 };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA     = { 0x00,0x44 };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA     = { 0x00,0x45 };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA     = { 0x00,0x46 };

  CipherSuite TLS_RSA_WITH_CAMELLIA_256_CBC_SHA         = { 0x00,0x84 };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA      = { 0x00,0x85 };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA      = { 0x00,0x86 };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA     = { 0x00,0x87 };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA     = { 0x00,0x88 };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA     = { 0x00,0x89 };

   IANA has allocated the following numbers in the TLS Cipher Suite
   Registry:

  CipherSuite TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256      = { 0x00,0xBA };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256   = { 0x00,0xBB };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256   = { 0x00,0xBC };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256  = { 0x00,0xBD };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256  = { 0x00,0xBE };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256  = { 0x00,0xBF };

  CipherSuite TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256      = { 0x00,0xC0 };
  CipherSuite TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256   = { 0x00,0xC1 };
  CipherSuite TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256   = { 0x00,0xC2 };
  CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256  = { 0x00,0xC3 };
  CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256  = { 0x00,0xC4 };
  CipherSuite TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256  = { 0x00,0xC5 };

5.  Security Considerations

   At the time of writing this document, there are no known weak keys
   for Camellia, and no security problem has been found on Camellia (see
   [NESSIE], [CRYPTREC], and [LNCS]).

   Also, security issues are discussed throughout RFC 5246 [RFC5246],
   especially in Appendices D, E, and F.

6.  References

6.1.  Normative References

   [FIPS180-3]  National Institute of Standards and Technology, "Secure
                Hash Standard (SHS)", FIPS PUB 180, October 2008,
                <http://csrc.nist.gov/publications/fips/fips180-3/
                fips180-3_final.pdf>.

   [RFC2119]    Bradner, S., "Key words for use in RFCs to Indicate
                Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3713]    Matsui, M., Nakajima, J., and S. Moriai, "A Description
                of the Camellia Encryption Algorithm", RFC 3713,
                April 2004.

   [RFC5246]    Dierks, T. and E. Rescorla, "The Transport Layer
                Security (TLS) Protocol Version 1.2", RFC 5246,
                August 2008.

6.2.  Informative References

   [CRYPTREC]   Information-technology Promotion Agency (IPA),
                "Cryptography Research and Evaluation Committees",
                <http://www.ipa.go.jp/security/enc/CRYPTREC/
                index-e.html>.

   [LNCS]       Mala, H., Shakiba, M., and M. Dakhil-alian, "New Results
                on Impossible Differential Cryptanalysis of Reduced
                Round Camellia-128", LNCS 5867, November 2009,
                <http://www.springerlink.com/content/e55783u422436g77/>.

   [NESSIE]     "The NESSIE project (New European Schemes for
                Signatures, Integrity and Encryption)",
                <http://www.cosic.esat.kuleuven.be/nessie/>.

   [RFC4132]    Moriai, S., Kato, A., and M. Kanda, "Addition of
                Camellia Cipher Suites to Transport Layer Security
                (TLS)", RFC 4132, July 2005.

Authors' Addresses

   Akihiro Kato
   NTT Software Corporation

   Phone: +81-45-212-9803
   Fax:   +81-45-212-9800
   EMail: kato.akihiro@po.ntts.co.jp


   Masayuki Kanda
   NTT

   Phone: +81-422-59-3456
   Fax:   +81-422-59-4015
   EMail: kanda.masayuki@lab.ntt.co.jp


   Satoru Kanno
   NTT Software Corporation

   Phone: +81-45-212-9803
   Fax:   +81-45-212-9800
   EMail: kanno.satoru@po.ntts.co.jp

AI ELI5

On this page
PROBLEMTLS needs named cipher suites before a client and server can use the Camellia block cipher. RFC 4132 defined those suites only with SHA-1 based message authentication.
MECHANISMRFC 5932 keeps the SHA-1 suites and adds counterparts that use SHA-256 for the MAC and the TLS 1.2 pseudorandom function. Each suite pairs Camellia in CBC mode with a 128-bit or 256-bit key and one of six key exchange methods.
STATUS TODAYRFC 5932 obsoletes RFC 4132 and has been updated by RFC 10015. The new SHA-256 suites MUST NOT be negotiated by TLS 1.1 or earlier.

§1Introduction

RFC 5932 adds cipher suites to the Transport Layer Security protocol (TLS 1.2, RFC 5246) so that it can use the Camellia block cipher, which RFC 3713 describes. It builds on the suites originally specified in RFC 4132 by adding variants that use the SHA-2 family of hash algorithms.

The document obsoletes RFC 4132. It contains no new protocol machinery: it assigns names and numbers to cipher suites and says how each part of a suite is to be computed.

TLS keeps a menu of ways to scramble messages. This document adds more Camellia dishes to the menu.

§2The Cipher Suites

There are 24 suites in four groups of six. Each group has one entry for each key exchange: RSA, DH_DSS, DH_RSA, DHE_DSS, DHE_RSA and DH_anon. The groups are Camellia with a 128-bit key and SHA, Camellia with a 256-bit key and SHA, and the same two with SHA256.

Each suite has a two-byte identifier. For example, TLS_RSA_WITH_CAMELLIA_128_CBC_SHA is { 0x00,0x41 } and TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 is { 0x00,0xBA }. The 128-bit SHA group runs from 0x41 to 0x46, the 256-bit SHA group from 0x84 to 0x89, the 128-bit SHA256 group from 0xBA to 0xBF and the 256-bit SHA256 group from 0xC0 to 0xC5.

Each cipher suite is a combo meal with a code number: which way to swap secrets, which scrambler, and which seal to check the message.

THE FOUR SUITE GROUPS (RFC 5932, SECTION 2)
GroupKey sizeMACIdentifiers
CAMELLIA_128_CBC_SHA128 bitsHMAC-SHA10x41 to 0x46
CAMELLIA_256_CBC_SHA256 bitsHMAC-SHA10x84 to 0x89
CAMELLIA_128_CBC_SHA256 THIS RFC128 bitsHMAC-SHA-2560xBA to 0xBF
CAMELLIA_256_CBC_SHA256 THIS RFC256 bitsHMAC-SHA-2560xC0 to 0xC5

§3How the Suites Are Built

The key exchanges (RSA, DHE_RSA, DH_RSA, DHE_DSS, DH_DSS and DH_anon) work exactly as RFC 5246 defines them. The cipher is Camellia in Cipher Block Chaining (CBC) mode. The CAMELLIA_128_CBC suites use a 128-bit key and a 128-bit IV, and the CAMELLIA_256_CBC suites use a 256-bit key and a 128-bit IV.

Suites ending in _SHA use HMAC-SHA1 as the MAC algorithm. With TLS versions before 1.2, the pseudorandom function (PRF) is computed as that version of TLS specifies.

Suites ending in _SHA256 use HMAC-SHA-256 as the MAC, and the PRF is the TLS PRF from RFC 5246 with SHA-256 as the hash. Because of this, they MUST NOT be negotiated by TLS 1.1 or earlier. A client MUST NOT offer them unless it also offers TLS 1.2 or later, and a server that selects an earlier version MUST NOT select one of them.

The scrambler uses a secret key. The SHA seal is like wax on an envelope, and the newer SHA-256 wax is only allowed with the newest version of TLS.

§4IANA Registrations

IANA updated the registry entries for the twelve SHA suites that RFC 4132 had allocated (0x41 to 0x46 and 0x84 to 0x89) so that they reference this document instead. It also allocated twelve new numbers in the TLS Cipher Suite Registry for the SHA256 suites (0xBA to 0xBF and 0xC0 to 0xC5).

A librarian keeps the official list of code numbers. The old numbers now point to this document, and twelve new numbers were added.

§5Security Considerations

The RFC says that when it was written there were no known weak keys for Camellia and no security problem had been found in it, citing the NESSIE project, CRYPTREC and a paper on impossible differential cryptanalysis of reduced-round Camellia-128. That is a statement about the time of writing, not a lasting guarantee.

It also points to the security discussion throughout RFC 5246, especially its Appendices D, E and F. It adds no other security analysis of its own.

When this was written, nobody had found a way to break Camellia. It also tells readers to look at the TLS rules for more safety advice.

§6References