Camellia in OpenPGP: The Camellia Cipher in OpenPGP
How to use the Camellia encryption cipher in OpenPGP
Shaw, D., "The Camellia Cipher in OpenPGP", RFC 5581, DOI 10.17487/RFC5581, June 2009, <https://www.rfc-editor.org/info/rfc5581>.
@misc{rfc5581,
series = {Request for Comments},
number = 5581,
howpublished = {RFC 5581},
publisher = {RFC Editor},
doi = {10.17487/RFC5581},
url = {https://www.rfc-editor.org/info/rfc5581},
author = {D. Shaw},
title = {{The Camellia Cipher in OpenPGP}},
pagetotal = 3,
year = 2009,
month = jun,
} RFC text
Contents
Network Working Group D. Shaw
Request for Comments: 5581 June 2009
Updates: 4880
Category: Informational
The Camellia Cipher in OpenPGP
Status of This Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (c) 2009 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 (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Abstract
This document presents the necessary information to use the Camellia
symmetric block cipher in the OpenPGP protocol.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Notation . . . . . . . . . . . . . . . . . . . . . 2
3. Camellia . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 2
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 3
6. Normative References . . . . . . . . . . . . . . . . . . . . . 3
1. Introduction
The OpenPGP protocol [RFC4880] can support many different symmetric
ciphers. This document presents the necessary information to use the
Camellia [RFC3713] symmetric cipher in the OpenPGP protocol.
2. Requirements Notation
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].
3. Camellia
Camellia is specified in [RFC3713]. It is a 128-bit symmetric block
cipher (as are AES and Twofish in OpenPGP) that supports 128-bit,
192-bit, and 256-bit keys. This document defines the use of Camellia
in OpenPGP.
+---------------------+----------------------------------------+
| Camellia Key Length | OpenPGP Symmetric-Key Algorithm Number |
+---------------------+----------------------------------------+
| 128 | 11 |
| 192 | 12 |
| 256 | 13 |
+---------------------+----------------------------------------+
OpenPGP applications MAY implement Camellia. If implemented,
Camellia may be used in any place in OpenPGP where a symmetric cipher
is usable, and it is subject to the same usage requirements (such as
its presence in the Preferred Symmetric Algorithms signature
subpacket) as the other symmetric ciphers in OpenPGP.
While the OpenPGP algorithm preferences system prevents
interoperability problems with public key encrypted messages, if
Camellia (or any other optional cipher) is used for encrypting
private keys, there could be interoperability problems when migrating
a private key from one system to another. A similar issue can arise
when using an optional cipher for symmetrically encrypted messages,
as this OpenPGP message type does not use the algorithm preferences
system. Those using optional ciphers in this manner should take care
they are using a cipher that their intended recipient can decrypt.
4. Security Considerations
At publication time, there are no known weak keys for Camellia, and
the Camellia algorithm is believed to be strong. However, as with
any technology involving cryptography, implementers should check the
current literature, as well as the Camellia home page at
http://info.isl.ntt.co.jp/camellia/ to determine if Camellia has been
found to be vulnerable to attack.
5. IANA Considerations
IANA assigned three algorithm numbers from the registry of OpenPGP
Symmetric-Key Algorithms that was created by [RFC4880].
6. Normative References
[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.
[RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.
Thayer, "OpenPGP Message Format", RFC 4880, November 2007.
Author's Address
David Shaw
EMail: dshaw@jabberwocky.com
AI ELI5
On this page
§1Introduction to Camellia
The OpenPGP protocol supports many different symmetric ciphers for message encryption. Camellia is a 128-bit symmetric block cipher (the same block size as AES) that was not initially included in the OpenPGP standard. This RFC provides the necessary information to use Camellia in OpenPGP implementations.
Camellia supports three key lengths: 128 bits, 192 bits, and 256 bits, mirroring the key sizes of other modern ciphers.
Camellia is a way to scramble messages using secret codes. Like other secret codes, it can use different length keys to make it stronger or weaker.
§2Algorithm Numbers in OpenPGP
In OpenPGP, each cipher is assigned a numeric identifier. For Camellia, the RFC defines three algorithm numbers corresponding to the three supported key lengths:
Algorithm 11 for 128-bit keys, Algorithm 12 for 192-bit keys, and Algorithm 13 for 256-bit keys.
These numbers allow OpenPGP implementations to identify which cipher and key length a message used for encryption.
Each way of scrambling a message gets a number. Numbers 11, 12, and 13 are reserved for Camellia with different strength levels.
§3Usage and Interoperability
Camellia is an optional cipher in OpenPGP. Implementations may choose to support it, but they are not required to. When supported, Camellia can be used anywhere a symmetric cipher is usable within OpenPGP, subject to the same usage rules as other ciphers.
Interoperability can be a concern: if Camellia is used to encrypt private keys or symmetrically encrypted messages (which do not use OpenPGP algorithm preference negotiation), recipients must support Camellia to decrypt them. Implementers using optional ciphers must ensure their recipients can decrypt the messages.
Using Camellia is optional, and people can choose not to support it. If you send a message encrypted with Camellia to someone, they need to have Camellia support, or they cannot read it.