RC6
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.
Perguntas e Respostas
P: O que é RC6?
R: RC6 é uma cifra de chave simétrica derivada de RC5. É um algoritmo parametrizado com um tamanho de bloco variável, tamanho de chave, e número de rodadas.
P: Quem projetou o RC6?
R: O RC6 foi projetado por Ron Rivest, Matt Robshaw, Ray Sidney, e Yiqun Lisa Yin.
P: Quais são os tamanhos de bloco padrão para o RC5 e AES?
R: O tamanho padrão do bloco RC5 é 64 bits, enquanto o tamanho padrão do bloco AES é 128 bits.
P: Como a estrutura do RC6 se compara com a do RC5?
R: A estrutura do RC6 é muito parecida com a do RC5, mas usa uma operação de multiplicação extra não presente no último, bem como quatro registros de trabalho b/4 bits, em vez de dois registros b/2 bits.
P: Por que são usados quatro registros de trabalho em vez de dois para construir a arquitetura AES usando apenas operações de 32 bits?
R: A multiplicação inteira é usada para aumentar a difusão obtida por rodada, de modo que menos rodadas são necessárias e a velocidade pode ser aumentada. Quatro registros de trabalho são necessários porque são usadas operações de 32 bits quando se lida com blocos de 64 bits e operações de 64 bits quando se lida com blocos de 128 bits.
P: Há algum licenciamento ou pagamento de royalties necessários para os produtos que usam o algoritmo?
R: Sim, já que é um algoritmo patenteado (pela RSA Security U.S. Patent 5.724.428 e US Patent 5.835.600 ), o licenciamento e pagamentos de royalties podem ser exigidos para quaisquer produtos que usem o algoritmo.