A Description of the RC2(r) Encryption Algorithm
Ronald L. Rivest · 1998
This memo is an RSA Laboratories Technical Note.It is meant for informational use by the Internet community.This memo describes a conventional (secret-key) block encryption algorithm, called RC2, which may be considered as a proposal for a DES replacement.The input and output block sizes are 64 bits each.The key size is variable, from one byte up to 128 bytes, although the current implementation uses eight bytes.The algorithm is designed to be easy to implement on 16-bit microprocessors.On an IBM AT, the encryption runs about twice as fast as DES (assuming that key expansion has been done). Algorithm descriptionWe use the term "word" to denote a 16-bit quantity.The symbol + will denote twos-complement addition.The symbol & will denote the bitwise "and" operation.The term XOR will denote the bitwise "exclusive-or" operation.The symbol ˜ will denote bitwise complement.The symbol ^ will denote the exponentiation operation.The term MOD will denote the modulo operation.There are three separate algorithms involved: Key expansion.This takes a (variable-length) input key and produces an expanded key consisting of 64 words K[0],..., K[63].