Camellia Encryption for Kerberos 5
RFC 6803

Document Type RFC - Informational (November 2012; Errata)
Author Greg Hudson 
Last updated 2015-10-14
Stream Internet Engineering Task Force (IETF)
Formats plain text html pdf htmlized (tools) htmlized bibtex
Stream WG state Submitted to IESG for Publication
Document shepherd Jeffrey Hutzelman
Shepherd write-up Show (last changed 2012-03-09)
IESG IESG state RFC 6803 (Informational)
Action Holders
Consensus Boilerplate Unknown
Telechat date
Responsible AD Stephen Farrell
IESG note The Document Shepherd for this document is Jeffrey Hutzelman (
Send notices to (None)
Internet Engineering Task Force (IETF)                         G. Hudson
Request for Comments: 6803                       MIT Kerberos Consortium
Category: Informational                                    November 2012
ISSN: 2070-1721

                   Camellia Encryption for Kerberos 5


   This document specifies two encryption types and two corresponding
   checksum types for the Kerberos cryptosystem framework defined in RFC
   3961.  The new types use the Camellia block cipher in CBC mode with
   ciphertext stealing and the CMAC algorithm for integrity protection.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   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).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see 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

Copyright Notice

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

Hudson                        Informational                     [Page 1]
RFC 6803           Camellia Encryption for Kerberos 5      November 2012

1.  Introduction

   The Camellia block cipher, described in [RFC3713], has a 128-bit
   block size and a 128-bit, 192-bit, or 256-bit key size, similar to
   AES.  This document specifies Kerberos encryption and checksum types
   for Camellia using 128-bit or 256-bit keys.  The new types conform to
   the framework specified in [RFC3961] but do not use the simplified

   Like the simplified profile, the new types use key derivation to
   produce keys for encryption, integrity protection, and checksum
   operations.  Instead of the key derivation function described in
   [RFC3961], Section 5.1, the new types use a key derivation function
   from the family specified in [SP800-108].

   The new types use the CMAC algorithm for integrity protection and
   checksum operations.  As a consequence, they do not rely on a hash
   algorithm except when generating keys from strings.

   Like the AES encryption types [RFC3962], the new encryption types use
   CBC mode with ciphertext stealing [RFC3962] to avoid the need for
   padding.  They also use the same PBKDF2 algorithm for key generation
   from strings, with a modification to the salt string to ensure that
   different keys are generated for Camellia and AES encryption types.

2.  Protocol Key Representation

   The Camellia key space is dense, so we use random octet strings
   directly as keys.  The first bit of the Camellia bit string is the
   high bit of the first byte of the random octet string.

3.  Key Derivation

   We use a key derivation function from the family specified in
   [SP800-108], Section 5.2, "KDF in Feedback Mode".  The PRF parameter
   of the key derivation function is CMAC with Camellia-128 or
   Camellia-256 as the underlying block cipher; this PRF has an output
   size of 128 bits.  A block counter is used with a length of 4 bytes,
   represented in big-endian order.  The length of the output key in
   bits (denoted as k) is also represented as a 4-byte string in big-
   endian order.  The label input to the KDF is the usage constant
   supplied to the key derivation function, and the context is unused.
   In the following summary, | indicates concatenation.  The random-to-
   key function is the identity function, as defined in Section 6.  The
   k-truncate function is defined in [RFC3961], Section 5.1.

Hudson                        Informational                     [Page 2]
RFC 6803           Camellia Encryption for Kerberos 5      November 2012

   n = ceiling(k / 128)
   K(0) = zeros
   K(i) = CMAC(key, K(i-1) | i | constant | 0x00 | k)
   DR(key, constant) = k-truncate(K(1) | K(2) | ... | K(n))
   KDF-FEEDBACK-CMAC(key, constant) = random-to-key(DR(key, constant))

   The constants used for key derivation are the same as those used in
   the simplified profile.

4.  Key Generation from Strings

   We use a variation on the key generation algorithm specified in
Show full document text