В криптографии RC6 является симметричным блочным шифром, полученным из RC5. RC6 представляет собой параметризованный алгоритм с переменным размером блока, переменным размеромключа и переменным количеством раундов. RC обозначает "Rivest Cipher", или альтернативно "Ron's Code".
В 1997 году NIST объявила конкурс на выбор преемника стандарта шифрования данных (DES), который будет известен как Advanced Encryption Standard (AES). RC6 был получен от RC5 для соответствия требованиям конкурса и был выбран в качестве одного из пяти финалистов конкурса Advanced Encryption Standard (AES), но не был выбран в качестве стандарта.
В целях обеспечения различных уровней безопасности и эффективности, RC6 позволяет выбирать размер блока: 32 бита (только для экспериментов и оценки), 64 бита (для использования в качестве замены DES) и 128 бит (для AES). Количество раундов может варьироваться от 0 до 255, в то время как ключевые размеры могут варьироваться от 0 бит до 2040 бит.
По своей структуре RC6 очень похож на RC5 и может рассматриваться как переплетение двух параллельных процессов шифрования RC5. Однако RC6 использует дополнительную операцию умножения, отсутствующую в RC5, и использует четыре b/4-битных рабочих регистра (см. разделение блоков простого текста в feistel cipher) вместо двух b/2-битных регистров, как в RC5 (b - это размер блока). Целочисленное умножение используется для увеличения диффузии, достигаемой за один раунд, так что требуется меньшее количество раундов и может быть увеличена скорость шифра.
Причина использования четырех рабочих регистров вместо двух в основном заключается в оптимизации на 32-битных процессорах. По умолчанию размер блока RC5 составляет 64 бита, а размер блока AES - 128 бит. RC5 имеет только два рабочих регистра. Он использует 32-битные операции при работе с 64-битными блоками и 64-битные операции при работе со 128-битными блоками, поэтому для сборки архитектуры AES с использованием только 32-битных операций требуется четыре рабочих регистра.
RC6 является запатентованным алгоритмом (запатентовано RSA Security США Патент 5 724 428 и Патент США 5 835 600), и может потребовать лицензирования и выплаты роялти для любых продуктов, использующих данный алгоритм. Он был разработан Роном Ривестом, Мэттом Робшоу, Рэем Сиднеем и Иукеном Лизой Инь, а также был представлен на рассмотрение проектов NESSIE и CRYPTREC.