||The English used in this article or section may not be easy for everybody to understand. (April 2011)|
In cryptography, RC6 is a symmetric-key block cipher derived from RC5. RC6 is a parameterized algorithm with a variable block size, a variable key size, and a variable number of rounds. RC stands for "Rivest Cipher", or alternatively, "Ron's Code".
In 1997, the NIST announced a competition to choose a successor to Data Encryption Standard (DES) to be known as Advanced Encryption Standard (AES). RC6 was derived from RC5 to meet the competition requirements, and was selected as one of the five finalists of the Advanced Encryption Standard (AES) competition, but was not selected as a standard.
In order to provide varieties of security and efficiency levels, RC6 allows choices for the block size: 32 bits (for experimentation and evaluation purposes only), 64 bits (for use as a replacement for DES), and 128 bits (intended for AES). The number of rounds can range from 0 to 255, while the key sizes can range from 0 bits to 2040 bits in size.
RC6 is very similar to RC5 in structure and could be viewed as interweaving two parallel RC5 encryption processes. However, RC6 does use an extra multiplication operation not present in RC5 and the use of four b/4-bit working registers (see splitting of plaintext blocks in feistel cipher) instead of two b/2-bit registers as in RC5 (b is the block size). Integer multiplication is used to increase the diffusion achieved per round so that fewer rounds are needed and the speed of the cipher can be increased.
The reason for using four working registers instead of two is mainly for optimization on 32-bit CPUs. The default block size of RC5 was 64 bits, while the default block size of the AES is 128 bits. RC5 has only two working registers. It uses 32-bit operations when dealing with 64-bit blocks and 64-bit operations when dealing with 128-bit blocks, so four working registers are required to build the AES architecture using only 32-bit operations.
RC6 is a proprietary and patented algorithm (by RSA Security U.S. Patent 5,724,428 and U.S. Patent 5,835,600), and may require licensing and royalty payments for any products using the algorithm. It was designed by Ron Rivest, Matt Robshaw, Ray Sidney, and Yiqun Lisa Yin, and was also submitted to the NESSIE and CRYPTREC projects.
References[change | change source]
- R.L. Rivest, M.J.B. Robshaw, R.Sidney, and Y.L. Yin. The RC6 Block Cipher. v1.1, August 1998.
- J. Beuchat FPGA Implementations of the RC6 Block Cipher.