RFC 2040 (rfc2040) - Page 3 of 29
The RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS Algorithms
Alternative Format: Original Text Document
RFC 2040 RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS October 1996
may add padding or check the length of the message.
In summary, the cipher will be explained in terms of these
operations:
RC5_Key_Create - Create a key object.
RC5_Key_Destroy - Destroy a key object.
RC5_Key_Set - Bind a user key to a key object.
RC5_CBC_Create - Create a cipher object.
RC5_CBC_Destroy - Destroy a cipher object.
RC5_CBC_Encrypt_Init - Bind a key object to a cipher object.
RC5_CBC_SetIV - Set a new IV without changing the key.
RC5_CBC_Encrypt_Update - Process part of a message.
RC5_CBC_Encrypt_Final - Process the end of a message.
3. Terminology and Notation
The term "word" refers to a string of bits of a particular length
that can be operated on as either an unsigned integer or as a bit
vector. For example a "word" might be 32 or 64 bits long depending
on the desired block size for the RC5 cipher. A 32 bit word will
produce a 64 bit block size. For best performance the RC5 word size
should match the register size of the CPU. The term "byte" refers to
eight bits.
The following variables will be used throughout this memo with these
meanings:
W This is the word size for RC5 measured in bits. It is half the
block size. The word sizes covered by this memo are 32 and 64.
WW This is the word size for RC5 measured in bytes.
B This is the block size for RC5 measured in bits. It is twice
the word size. When RC5 is used as a 64 bit block cipher, B is
64 and W is 32. 0