Camellia TLS: Camellia Cipher Suites for TLS
TLS cipher suites that use the Camellia block cipher, including SHA-2 based ones.
Kato, A., Kanda, M., and S. Kanno, "Camellia Cipher Suites for TLS", RFC 5932, DOI 10.17487/RFC5932, June 2010, <https://www.rfc-editor.org/info/rfc5932>.
@misc{rfc5932,
series = {Request for Comments},
number = 5932,
howpublished = {RFC 5932},
publisher = {RFC Editor},
doi = {10.17487/RFC5932},
url = {https://www.rfc-editor.org/info/rfc5932},
author = {A. Kato and M. Kanda and S. Kanno},
title = {{Camellia Cipher Suites for TLS}},
pagetotal = 6,
year = 2010,
month = jun,
} RFC text
Contents
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
ISO Plain Language
On this page
§1Introduction
The document specifies a set of cipher suites for the Transport Layer Security protocol, as described in RFC 5246, that support the Camellia encryption algorithm as a block cipher. It adds variants that use the SHA-2 family of cryptographic hash algorithms to the set originally specified in RFC 4132, and it obsoletes RFC 4132.
The Camellia algorithm and its properties are described in RFC 3713. The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL are to be interpreted as described in RFC 2119.
TLS negotiates a cipher suite before any data is sent. The suite decides the key exchange, the cipher and the hash function. Camellia was added as one more option for the cipher, and this document defines the complete set of suites that use it.
§2The Cipher Suite Identifiers
Each cipher suite has a two byte identifier, and the document lists all of them. Six suites use Camellia with a 128-bit key and the older SHA-1 based hash, running from {0x00,0x41} for TLS_RSA_WITH_CAMELLIA_128_CBC_SHA to {0x00,0x46} for TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA. Six more use a 256-bit key with the same hash, from {0x00,0x84} to {0x00,0x89}.
The second block of twelve uses the SHA-256 based hash. The 128-bit key suites run from {0x00,0xBA} for TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 to {0x00,0xBF} for TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256, and the 256-bit key suites from {0x00,0xC0} to {0x00,0xC5}.
The pattern in each name is the same throughout. The first part names the key exchange, the middle names Camellia and its key size, and the last part names the hash function used for message authentication.
Each suite is identified by two bytes, and the names follow the same pattern every time: how the key is agreed, which Camellia key size is used, and which hash function checks the data.
- {0x00,0x41}TLS_RSA_WITH_CAMELLIA_128_CBC_SHA — Camellia with a 128-bit key in CBC mode, HMAC-SHA1, RSA key exchange.
- {0x00,0x42}TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA — Camellia with a 128-bit key in CBC mode, HMAC-SHA1, DH_DSS key exchange.
- {0x00,0x43}TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA — Camellia with a 128-bit key in CBC mode, HMAC-SHA1, DH_RSA key exchange.
- {0x00,0x44}TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA — Camellia with a 128-bit key in CBC mode, HMAC-SHA1, DHE_DSS key exchange.
- {0x00,0x45}TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA — Camellia with a 128-bit key in CBC mode, HMAC-SHA1, DHE_RSA key exchange.
- {0x00,0x46}TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA — Camellia with a 128-bit key in CBC mode, HMAC-SHA1, DH_anon key exchange.
- {0x00,0x84}TLS_RSA_WITH_CAMELLIA_256_CBC_SHA — Camellia with a 256-bit key in CBC mode, HMAC-SHA1, RSA key exchange.
- {0x00,0x85}TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA — Camellia with a 256-bit key in CBC mode, HMAC-SHA1, DH_DSS key exchange.
- {0x00,0x86}TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA — Camellia with a 256-bit key in CBC mode, HMAC-SHA1, DH_RSA key exchange.
- {0x00,0x87}TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA — Camellia with a 256-bit key in CBC mode, HMAC-SHA1, DHE_DSS key exchange.
- {0x00,0x88}TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA — Camellia with a 256-bit key in CBC mode, HMAC-SHA1, DHE_RSA key exchange.
- {0x00,0x89}TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA — Camellia with a 256-bit key in CBC mode, HMAC-SHA1, DH_anon key exchange.
- {0x00,0xBA}TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 — Camellia with a 128-bit key in CBC mode, HMAC-SHA-256, RSA key exchange.
- {0x00,0xBB}TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 — Camellia with a 128-bit key in CBC mode, HMAC-SHA-256, DH_DSS key exchange.
- {0x00,0xBC}TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 — Camellia with a 128-bit key in CBC mode, HMAC-SHA-256, DH_RSA key exchange.
- {0x00,0xBD}TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 — Camellia with a 128-bit key in CBC mode, HMAC-SHA-256, DHE_DSS key exchange.
- {0x00,0xBE}TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 — Camellia with a 128-bit key in CBC mode, HMAC-SHA-256, DHE_RSA key exchange.
- {0x00,0xBF}TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 — Camellia with a 128-bit key in CBC mode, HMAC-SHA-256, DH_anon key exchange.
- {0x00,0xC0}TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 — Camellia with a 256-bit key in CBC mode, HMAC-SHA-256, RSA key exchange.
- {0x00,0xC1}TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 — Camellia with a 256-bit key in CBC mode, HMAC-SHA-256, DH_DSS key exchange.
- {0x00,0xC2}TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 — Camellia with a 256-bit key in CBC mode, HMAC-SHA-256, DH_RSA key exchange.
- {0x00,0xC3}TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 — Camellia with a 256-bit key in CBC mode, HMAC-SHA-256, DHE_DSS key exchange.
- {0x00,0xC4}TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 — Camellia with a 256-bit key in CBC mode, HMAC-SHA-256, DHE_RSA key exchange.
- {0x00,0xC5}TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 — Camellia with a 256-bit key in CBC mode, HMAC-SHA-256, DH_anon key exchange.
§3Key Exchange, Cipher and Hash
The RSA, DHE_RSA, DH_RSA, DHE_DSS, DH_DSS and DH_anon key exchanges are performed as defined in RFC 5246, so this document changes nothing about how the two sides agree on a key.
The cipher is Camellia in Cipher Block Chaining mode. The CAMELLIA_128_CBC suites use a 128-bit key and a 128-bit initialisation vector, and the CAMELLIA_256_CBC suites use a 256-bit key and a 128-bit initialisation vector.
The cipher suites whose names end in _SHA use HMAC-SHA1 as the message authentication code algorithm. When they are used with TLS versions prior to 1.2, the pseudorandom function is calculated as specified in the appropriate version of the TLS specification.
The cipher suites whose names end in _SHA256 use HMAC-SHA-256 as the message authentication code algorithm, and the pseudorandom function is the TLS PRF of RFC 5246 with SHA-256 as the hash function.
Only two things are new: the cipher, which is Camellia in CBC mode with a 128-bit or 256-bit key, and the hash, which is HMAC-SHA1 for the older suites and HMAC-SHA-256 for the newer ones. Everything else, including how the key is agreed, follows the TLS specification unchanged.
| Aspect | Suites ending in _SHA | Suites ending in _SHA256 |
|---|---|---|
| Message authentication code | HMAC-SHA1 | HMAC-SHA-256 |
| Pseudorandom function | The one from the TLS version in use before TLS 1.2 | The TLS PRF from RFC 5246 with SHA-256 |
| TLS versions | No restriction is stated | Must not be negotiated by TLS 1.1 or earlier |
| Key sizes | 128 bits and 256 bits | 128 bits and 256 bits |
| Initialisation vector | 128 bits | 128 bits |
§3.3.2The Version Rule for the SHA-256 Suites
The cipher suites ending in _SHA256 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.
The rule exists because the pseudorandom function for these suites is the TLS PRF with SHA-256 as the hash function, and that construction is tied to TLS 1.2.
The SHA-256 suites need TLS 1.2 or later. A client running an older version must not offer them, and a server that settles on an older version must not pick one.
- NegotiationThe cipher suites ending in SHA256 must not be negotiated by TLS 1.1 or earlier versions.
- ClientsA client that does not offer TLS 1.2 or later must not offer these cipher suites.
- ServersA server that selects an earlier version of TLS must not select one of these cipher suites.
§4IANA Considerations
IANA updated the entries for the numbers that had been allocated in RFC 4132 to reference this document instead. Those are the six _SHA suites for a 128-bit key, from {0x00,0x41} to {0x00,0x46}, and the six for a 256-bit key, from {0x00,0x84} to {0x00,0x89}.
IANA also allocated the twelve new numbers for the SHA-256 suites: the six 128-bit key suites from {0x00,0xBA} to {0x00,0xBF}, and the six 256-bit key suites from {0x00,0xC0} to {0x00,0xC5}.
The registry now points the old Camellia codes at this document, and the twelve new codes for the SHA-256 suites have been handed out by IANA.
§5Security Considerations
At the time of writing, there are no known weak keys for Camellia, and no security problem had been found in Camellia, according to the NESSIE project, the Cryptography Research and Evaluation Committees and the published analysis of Camellia-128.
Security issues are discussed throughout RFC 5246, especially in its Appendices D, E and F.
The document reports that no weak Camellia keys are known and that no security problem had been found in the cipher. The wider questions about TLS security are covered in the TLS specification itself.
§6Status Today
This document was published in June 2010 as an Internet Standards Track document. It obsoletes RFC 4132, which had defined the original Camellia cipher suites for TLS in July 2005, and it has since been updated by RFC 10015.
The document's own scope is narrow on purpose. It defines which cipher suite identifiers exist and which TLS versions may use them; the algorithm itself is specified separately in RFC 3713, and the handshake that negotiates them is specified in RFC 5246.
RFC 4132 was the original document for Camellia cipher suites, and this one replaced it, later amended by RFC 10015. It remains the reference for the Camellia cipher suite codes and for the rule that the SHA-256 suites need TLS 1.2.