• Nenhum resultado encontrado

Este capítulo apresenta alguns critérios de projeto relativos ao concurso realizado para selecionar o novo padrão de criptografia simétrico mundial (AES). São apresentados também dados comparativos sobre os outros candidatos concorrentes do Rijndael.

12.1 Motivação Para um Novo Padrão de Criptografia

Simétrica

O plano do NIST foi formalmente anunciado em 2 de janeiro de 1997, quando o órgão convidou qualquer pessoa a submeter um algoritmo como o novo padrão, que seria conhecido como AES. Como uma condição para entrar no processo do AES, os desenvolvedores tinham de abrir mão de quaisquer direitos quanto à propriedade intelectual do algoritmo selecionado. Várias pessoas e empresas responderam e, em 20 de agosto de 1998, o NIST nomeou 15 candidatos (BIHAM, 1999).

O passo seguinte era fazer com que os algoritmos fossem analisados mundialmente, O critério era a segurança (sem nenhuma fraqueza algorítmica), desempenho (teria de ser rápido em várias plataformas) e tamanho (não poderia ocupar muito espaço nem utilizar muita memória). Vários dos 15 algoritmos originais não duraram muito tempo. Fraquezas foram descobertas e alguns simplesmente se mostraram muito grandes ou muito lentos.

Em agosto de 1999, o NIST reduziu a lista a cinco candidatos: o Rijndael, Serpent, Twofish, MARS e RC6. No ano seguinte, pesquisadores, analistas de criptografia e fornecedores de hardware e de software para computadores testaram os cinco algoritmos finalistas para decidir qual deles era o preferido. Vários artigos foram publicados e números estatísticos eram distribuídos comparando esses cinco algoritmos finalistas. Cada um tinha suas forças e suas fraquezas.

Finalmente, em 2 outubro de 2000, o NIST anunciou o vencedor: um algoritmo chamado de Rijndael inventado por dois pesquisadores belgas: Vincent Rijmen e Joan Daemen.

A partir desse momento, o algoritmo de AES está livremente disponível para qualquer pessoa desenvolver, utilizar ou vender. Como o DES, é esperado que o

197 AES torne-se um padrão mundial. Pode-se esperar que isso aconteça em um curto período de tempo.

Apesar do algoritmo Rijndael ter sido o ganhador do concurso e se tornar o algoritmo AES, os outros algoritmos finalistas que também participaram e foram pré-selecionados merecem destaque. As próximas seções apresentam detalhes sobre os critérios utilizados no projeto AES apresentando também algumas características sobre os demais concorrentes.

12.2 Critérios para o Projeto AES

Para poder definir o novo padrão para a criptografia simétrica foram estabelecidos um conjunto de critérios, a fim de permitir a seleção e classificação dos algoritmos concorrentes ao AES (REQUEST AES,1997).

12.2.1 Áreas de Aplicação

Um algoritmo padrão de criptografia deve ser satisfatório para diferentes aplicações como:

Criptografia do tipo Bulk: O algoritmo deve ser eficiente na codificação de dados

de arquivos ou de fluxo contínuo de dados.

Gerador de bit aleatório: O algoritmo deveria ser eficiente na geração de bits

aleatórios.

Criptografia de pacote: O algoritmo deveria ser eficiente na codificação de dados

do tamanho do pacote. Por exemplo, um pacote de um Banco 24 Horas tem um campo de dados de 48 bytes, deveria tornar fácil a implementação em uma aplicação onde pacotes sucessivos podem ser cifrado ou decifrados com chaves diferentes.

Hash : O algoritmo deveria ser eficiente quando convertido a uma função hash

única.

12.2.2 Plataformas

Um algoritmo de criptografia padrão deve ser fácil de implementar em uma variedade de plataformas diferentes, cada um com as suas próprias exigências. Isso inclui:

Hardware especial: O algoritmo deveria ser eficientemente implementado em

hardware VLSI padrão.

Processadores de grande porte: Enquanto hardware dedicado sempre será usado

para as aplicações mais rápidas, implementações de software são mais comuns. O algoritmo deveria ser eficiente em microprocessadores de 32-bits com 4 Kbytes de programa e cache de dados.

198

Processadores de médio porte: O algoritmo deveria funcionar em

microcontroladores e outros processadores de médio porte, como os 68HC11.

Processadores de pequeno porte: Deveria ser possível implementar o algoritmo em

cartões inteligentes (smartcards), mesmo que não fosse eficiente.

As exigências para processadores pequenos são os mais difíceis. Limitações de memória RAM e ROM são severas para esta plataforma. Também, eficientemente, são mais importantes nessas máquinas pequenas que começam a ganhar cada vez mais popularidade. Enquanto Workstations dobram sua capacidade quase que anualmente, pequenos sistemas embarcados (embedded systems) precisam otimizar os recursos que possuem e começam a ser grandemente usados em empresas de diferentes portes, de grandes, médias e até pequenas.

12.2.3 Exigências Adicionais

Com estas exigências adicionais deveria, se possível, ser criado um algoritmo de criptografia padrão. O algoritmo deveria ser simples para implementar também. Experiências com o DES mostram que os programadores freqüentemente cometem erros de implementação caso o algoritmo seja complicado. Se possível, o algoritmo deveria ser robusto contra estes erros.

O algoritmo deveria ter um grande espaço de chaves (keyspace), permitindo que qualquer conjunto de bits aleatórios do tamanho desejado possa ser uma chave possível. Não deveria haver nenhuma chave fraca.

O algoritmo deveria facilitar a administração da chave para a implementação de software. Implementações de software, como por exemplo a do DES, geralmente usam técnicas de controle de chave fracas. Em particular, em algumas aplicações, a senha que o usuário digita torna-se a chave. Isso significa que mesmo que o DES tenha um espaço para as chaves, teoricamente de 256, o espaço real é limitado a chaves construídas com os 95 caracteres que podem ser entrados diretamente pelo teclado. O algoritmo deveria ser facilmente modificado para diferentes níveis de segurança, com ambas necessidades, mínima e máxima.

Todas as operações deveriam manipular dados em blocos de tamanho do byte. Onde possível, operações deveriam manipular dados em blocos de 32-bits.

12.2.4 Decisões de Projeto

Baseado nos parâmetros acima, foram criadas essas decisões de projeto. O algoritmo deveria:

♦ Manipular dados em grandes blocos, preferencialmente 32 bits (e não em nível de bits, tal como o DES).

♦ Ter um bloco de 64 ou 128 bits.

199 ♦ Utilizar operações simples que sejam eficientes em microprocessadores: tipo OU-exclusivo, adição, substituições baseadas em procura de tabelas (table lookup) e etc.

♦ Não deveria utilizar mudanças de cumprimento variável ou permutações bit-wise, ou saltos condicionais.

♦ Ser possível de implementar em um processador de 8 bits com no mínimo 24 bytes de RAM (e que a RAM armazene a chave) e 1 Kbyte de ROM. ♦ Utilizar subchaves pré-computáveis. Em sistemas com grande memória,

essas subchaves podem ser pré-calculadas para uma operação mais rápida. Não pré-calcular estas chaves resultará em uma operação mais lenta, mas ainda deveria ser possível cifrar dados sem qualquer pré-computação ou pré-cálculo.

♦ Consistir de um número variável de iterações. Para aplicações com chaves pequenas, a troca entre a complexidade de um ataque de força bruta e um ataque diferencial torna um grande número de iterações supérfluo. E deveria ser possível reduzir o número de iterações sem a perda de segurança (além da causada pelo tamanho reduzido da chave).

♦ Se possível, não ter nenhuma chave fraca. A proporção de chaves fracas deveria ser pequena o bastante para ser improvável a escolha de uma ao acaso. Também, qualquer chave fraca deveria ser conhecida explicitamente, e assim elas podem ser retiradas durante o processo de geração da chave.

♦ Utilizar subchaves que sejam uma hash única da chave. Isso permitiria a utilização de longas frases como chave sem comprometer a segurança. ♦ Não ter nenhuma estrutura linear (por exemplo, a propriedade de

complementação do DES), uma vez que, as estruturas lineares reduzem a complexidade de procura exaustiva.

♦ Utilizar um projeto que seja simples de entender. Isto facilitaria a análise e aumentaria a confiança no algoritmo.

12.2.5 Processamento de Blocos

Existem várias maneiras de construir blocos e produzir cifras fortes. Muitas dessas podem ser implementadas eficientemente em microprocessadores de 32 bits.

Grandes S-boxes: S-boxes maiores são mais resistentes à criptoanálise diferencial.

Um algoritmo com uma palavra de 32 bits pode utilizar S-boxes de 32 bits.

S-boxes dependentes de chaves: Enquanto S-boxes fixos devem ser desenvolvidos

para serem resistentes à criptoanálise diferencial e linear, S-boxes dependentes de chaves são muito mais resistentes a esses ataques.

200

Combinação de operações de grupos algébricos diferentes: O processo de

cifragem no algoritmo IDEA introduziu esse conceito, combinando o XOR mod 216, adição mod 216, e multiplicação mod 216+1.

Outra operação importante é a realização de permutações dependentes de chaves, similar ao realizado pelo algoritmo DES.

12.3 Comparação dos Candidatos ao AES

Como descrito anteriormente, na primeira conferência sobre o AES foram selecionados quinze candidatos. Os concorrentes foram provenientes de vários grupos de pesquisas, incluindo universidades e empresas ligadas à área de segurança. A tabela 12.1 apresenta os algoritmos selecionados e seus respectivos países e autores.

Tabela 12.1 – Sumário dos algoritmos concorrentes ao AES (BIHAM, 1999)

Algoritmo País Autores

LOKI97 Australia Lawrie Brown, Josef Pieprzyk, Jennifer Seberry RIJNDAEL Belgica Joan Daemen, Vincent Rijmen

CAST-256 Canada Entrust Technologies, Inc. DEAL Canada Outerbridge, Knudsen FROG Costa Rica TecApro Internacional S.A.

DFC França Centre National pour la Recherche Scientifique (CNRS) MAGENTA Alemanha Deutsche Telekom AG

E2 Japão Nippon Telegraph and Telephone Corporation (NTT) CRYPTON Coréia Future Systems, Inc.

HPC EUA Rich Schroeppel MARS EUA IBM

RC6 EUA RSA Laboratories SAFER+ EUA Cylink Corporation

TWOFISH EUA Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson

SERPENT Inglaterra, Israel, Noruega

Ross Anderson, Eli Biham, Lars Knudsen

Documentos relacionados