RFC 2040 (rfc2040) - Page 1 of 29
The RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS Algorithms
Alternative Format: Original Text Document
Network Working Group R. Baldwin
Request for Comments: 2040 RSA Data Security, Inc.
Category: Informational R. Rivest
MIT Laboratory for Computer Science
and RSA Data Security, Inc.
October 1996
The RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS Algorithms
Status of this Memo
This memo provides information for the Internet community. This memo
does not specify an Internet standard of any kind. Distribution of
this memo is unlimited.
Acknowledgments
We would like to thank Steve Dusse, Victor Chang, Tim Mathews, Brett
Howard, and Burt Kaliski for helpful suggestions.
Table of Contents
1. Executive Summary ....................... 1
2. Overview ................................ 2
3. Terminology and Notation ................ 3
4. Description of RC5 Keys ................. 4
5. Description of RC5 Key Expansion ........ 6
6. Description of RC5 Block Cipher ......... 10
7. Description of RC5-CBC and RC5-CBC-Pad .. 12
8. Description of RC5-CTS .................. 18
9. Test Program and Vectors ................ 19
10. Security Considerations ................. 26
11. ASN.1 Identifiers ....................... 28
References ........................................ 28
Authors' Addresses ................................ 29
1. Executive Summary
This document defines four ciphers with enough detail to ensure
interoperability between different implementations. The first cipher
is the raw RC5 block cipher. The RC5 cipher takes a fixed size input
block and produces a fixed sized output block using a transformation
that depends on a key. The second cipher, RC5-CBC, is the Cipher
Block Chaining (CBC) mode for RC5. It can process messages whose
length is a multiple of the RC5 block size. The third cipher, RC5-
CBC-Pad, handles plaintext of any length, though the ciphertext will
be longer than the plaintext by at most the size of a single RC5
Baldwin & Rivest Informational