Na criptografia, RC6 é uma cifra de bloco de chaves simétricas derivada de RC5. RC6 é um algoritmo parametrizado com um tamanho de bloco variável, um tamanho dechave variável e um número variável de rodadas. RC significa "Rivest Cipher", ou, em alternativa, "Ron's Code".
Em 1997, o NIST anunciou uma competição para escolher um sucessor do Data Encryption Standard (DES) para ser conhecido como Advanced Encryption Standard (AES). O RC6 foi derivado do RC5 para atender aos requisitos da competição, e foi selecionado como um dos cinco finalistas da competição Padrão Avançado de Criptografia (AES), mas não foi selecionado como padrão.
A fim de proporcionar variedades de níveis de segurança e eficiência, o RC6 permite escolhas para o tamanho do bloco: 32 bits (apenas para fins de experimentação e avaliação), 64 bits (para uso como substituto do DES) e 128 bits (destinados à AES). O número de rondas pode variar de 0 a 255, enquanto os tamanhos das chaves podem variar de 0 bits a 2040 bits de tamanho.
O RC6 é muito semelhante ao RC5 em estrutura e poderia ser visto como um entrelaçamento de dois processos paralelos de criptografia RC5. Entretanto, o RC6 usa uma operação de multiplicação extra não presente no RC5 e o uso de quatro registros de trabalho b/4-bit (veja divisão de blocos de texto em cifra de feistel) ao invés de dois registros b/2-bit como no RC5 (b é o tamanho do bloco). A multiplicação por inteiro é usada para aumentar a difusão obtida por redonda de modo que menos redondas sejam necessárias e a velocidade da cifra possa ser aumentada.
A razão para usar quatro registros de trabalho em vez de dois é principalmente para otimização em CPUs de 32 bits. O tamanho padrão do bloco RC5 era de 64 bits, enquanto o tamanho padrão do bloco AES é de 128 bits. O RC5 tem apenas dois registros de trabalho. Ele usa operações de 32 bits ao lidar com blocos de 64 bits e operações de 64 bits ao lidar com blocos de 128 bits, portanto são necessários quatro registros de trabalho para construir a arquitetura AES usando apenas operações de 32 bits.
RC6 é um algoritmo proprietário e patenteado (pela RSA Security U. S. Patent 5.724.428 e U. Patent 5.835.600 ), e pode exigir licenciamento e pagamento de royalties para qualquer produto que utilize o algoritmo. Ele foi projetado por Ron Rivest, Matt Robshaw, Ray Sidney e Yiqun Lisa Yin, e também foi submetido aos projetos NESSIE e CRYPTREC.