Saltar para o conteúdo

Usuário:Josepaulolima/Advanced Encryption Standard

Origem: Wikipédia, a enciclopédia livre.
Advanced Encryption Standard
(Rijndael)

O passo SubBytes, uma das quatro etapas em uma iteração do AES.
Geral
Projetistas Vincent Rijmen, Joan Daemen
Primeira publicação 1998
Derivado(a) de Square
Sucessores Anubis, Grand Cru
Certificação AES winner, CRYPTREC, NESSIE, NSA
Detalhe da cifra
Tamanho da chave 128, 192 ou 256 bits[note 1]
Tamanho do bloco 128 bits[note 2]
Estrutura Substitution–permutation network
Iterações 10, 12 ou 14 (dependendo do tamanho da chave)
Melhor criptoanálise pública
Há registros de que ataques são computacionalmente mais rápidos que um ataque de força bruta, embora nenhum desde 2013 são computacionalmente possíveis.[1] Para o AES-128, a chave pode ser recuperada com uma complexidade computacional de 2126,1 usando o ataque de dois cliques. Para ataques de dois cliques no AES-192 e AES-256, as complexidades computacionais são de 2189,7 e 2254,4 respectivamente. Ataques relacionados a chave podem quebrar o AES-192 e AES-256 com a complexidade de 2176 e 299 no mesmo tempo, respectivamente.[2]

O Advanced Encryption Standard (AES), também conhecido pelo seu nome original Rijndael (Pronúncia neerlandesa: [ˈrɛindaːl]),[3] é um padrão para criptografia de dados eletrônicos estabelecida pelo Instituto Nacional de Padrões e Tecnologia dos EUA (NIST) em 2001.[4]

O AES é um subconjunto da cifra de bloco Rijndael[3] desenvolvido por dois criptógrafos belgas, Vincent Rijmen e Joan Daemen, que submeteram uma proposta[3] ao NIST durante o Processo de Seleção do AES.[5] Rijndael é uma família de cifras com diferentes tamanhos de chaves e blocos.

Para o AES, o NIST selecionou três membros da família Rijndael, cada um com um tamanho de bloco de 128 bits, mas três comprimentos de chave diferentes: 128, 192 e 256 bits.

O AES foi adotado pelo governo dos EUA e agora é usado em todo o mundo. Ele substituiu o Data Encryption Standard (DES),[6] publicado em 1977. O algoritmo descrito pelo AES é um algoritmo de chave simétrica, o que significa que a mesma chave é usada para criptografar e descriptografar os dados.

Nos Estados Unidos, o AES foi anunciado pelo NIST como US FIPS PUB 197 (FIPS 197) em 26 de novembro de 2001.[4] Este anúncio seguiu um processo de padronização de cinco anos no qual quinze projetos concorrentes foram apresentados e avaliados, antes que a cifra Rijndael fosse selecionada como a mais adequada.

O AES se tornou eficaz como um padrão do governo federal em 26 de maio de 2002, após a aprovação da Secretaria de Comércio. Ele está incluído na norma ISO/IEC 18033-3. Também está disponível em muitos pacotes de criptografia diferentes, e é o primeiro (e único) método criptográfico de cifra pública aprovado pela Agência de Segurança Nacional (NSA) para informação confidencial.

Padrões definitivos[editar | editar código-fonte]

O Advanced Encryption Standard (AES) é definido em cada uma das seguintes especificações :

  • FIPS PUB 197: Advanced Encryption Standard (AES)[4]
  • ISO / IEC 18033-3 :: Cifras de bloco[7]

Descrição da cifra[editar | editar código-fonte]

O AES é baseado em um princípio de projeto conhecido como uma rede de substituição-permutação e é eficiente tanto em software quanto em hardware.[8] Ao contrário de seu predecessor DES, o AES não usa uma rede Feistel . O AES é uma variante do Rijndael que tem um tamanho de bloco fixo de 128 bits e um tamanho de chave de 128, 192 ou 256 bits. Por outro lado, o Rijndael per se é especificado com tamanhos de bloco e chave que podem ser qualquer múltiplo de 32 bits, com um mínimo de 128 e um máximo de 256 bits.

O AES opera em uma matriz de bytes de ordem de colunas 4 × 4, denominada estado.[nota 1] A maioria dos cálculos AES é feita em um campo finito particular.

Por exemplo, se houver 16 bytes, , esses bytes são representados como uma matriz bidimensional:

O tamanho da chave usado para uma cifra AES especifica o número de rodadas de transformação que convertem a entrada, chamada de texto simples, na saída final, chamada de texto cifrado. O número de rodadas é o seguinte:

  • 10 rodadas para chaves de 128 bits.
  • 12 rodadas para chaves de 192 bits.
  • 14 rodadas para chaves de 256 bits.

Cada rodada consiste em várias etapas de processamento, incluindo uma que depende da própria chave de criptografia. Um conjunto de rodadas reversas é aplicado para transformar o texto cifrado de volta no texto original usando a mesma chave de criptografia.

Descrição de alto nível do algoritmo[editar | editar código-fonte]

  1. KeyExpansion - as chaves de tom são derivadas da chave de cifra usando a programação chave de Rijndael. O AES requer um bloco de chave redonda de 128 bits separado para cada rodada mais uma.
  2. Adição de chave redonda inicial:
    1. AddRoundKey - cada byte do estado é combinado com um bloco da chave redonda usando xor bit a bit.
  3. 9, 11 ou 13 rodadas:
    1. SubBytes - uma etapa de substituição não linear em que cada byte é substituído por outro de acordo com uma tabela de consulta .
    2. ShiftRows - uma etapa de transposição em que as últimas três linhas do estado são deslocadas ciclicamente para um determinado número de etapas.
    3. MixColumns - uma operação de mistura linear que opera nas colunas do estado, combinando os quatro bytes em cada coluna.
    4. AddRoundKey
  4. Rodada final (fazendo 10, 12 ou 14 rodadas no total):
    1. SubBytes
    2. ShiftRows
    3. AddRoundKey

A etapa SubBytes[editar | editar código-fonte]

Na etapa SubBytes , cada byte no estado é substituído por sua entrada em uma tabela fixa de consulta de 8 bits, S ; b ij = S (a ij ) .
Ver artigo principal: Caixa S Rijndael

Na etapa SubBytes , cada byte na matriz de estado é substituído por um SubByte usando uma caixa de substituição de 8 bits. Esta operação fornece a não linearidade na cifra. A caixa S usada é derivada do inverso multiplicativo sobre GF(28) , conhecido por ter boas propriedades de não linearidade. Para evitar ataques baseados em propriedades algébricas simples, a caixa S é construída pela combinação da função inversa com uma transformação afim inversível. A caixa S também é escolhida para evitar quaisquer pontos fixos (e assim é um desarranjo), ie, , e também quaisquer pontos fixos opostos, ou seja, . Ao executar a descriptografia, a etapa InvSubBytes (o inverso de SubBytes ) é usado, o que requer primeiro tomar o inverso da transformação afim e, em seguida, encontrar o inverso multiplicativo.

O passo ShiftRows[editar | editar código-fonte]

Na etapa ShiftRows , os bytes em cada linha do estado são deslocados ciclicamente para a esquerda. O número de lugares que cada byte é deslocado difere para cada linha.

A etapa ShiftRows opera nas linhas do estado; ele desloca ciclicamente os bytes em cada linha por um determinado deslocamento. Para o AES, a primeira linha é deixada inalterada. Cada byte da segunda linha é deslocado um para a esquerda. Da mesma forma, a terceira e quarta linhas são deslocadas por offsets de dois e três, respectivamente.[nota 2] Dessa forma, cada coluna do estado de saída da etapa ShiftRows é composta de bytes de cada coluna do estado de entrada. A importância desta etapa é evitar que as colunas sejam criptografadas independentemente, nesse caso, o AES degenera em quatro cifras de bloco independentes.

O passo MixColumns[editar | editar código-fonte]

Ver artigo principal: MixColumns de Rijndael
Na etapa MixColumns , cada coluna do estado é multiplicada por um polinômio fixo .

Na etapa MixColumns , os quatro bytes de cada coluna do estado são combinados usando uma transformação linear inversível. A função MixColumns usa quatro bytes como entrada e gera quatro bytes, na qual cada byte de entrada afeta todos os quatro bytes de saída. Juntamente com ShiftRows , MixColumns fornece a difusão na cifra.

Durante esta operação, cada coluna é transformada usando uma matriz fixa (a matriz da esquerda multiplicada pela coluna fornece o novo valor da coluna no estado):

A multiplicação de matrizes é composta de multiplicação e adição das entradas. Entradas são bytes de 8 bits tratados como coeficientes de polinômio de ordem . A adição é simplesmente XOR. A multiplicação é um polinômio modular irredutível . Se processado pouco a pouco, então, após a mudança, um XOR condicional com 1B 16 deve ser executado se o valor deslocado for maior que FF 16 (o transbordamento deve ser corrigido pela subtração do polinômio gerador). Estes são casos especiais da multiplicação usual em .

Em um sentido mais geral, cada coluna é tratada como um polinômio e é então multiplicado o módulo com um polinômio fixo . Os coeficientes são exibidos em seu equivalente hexadecimal da representação binária de polinômios de bit de . O passo MixColumns também pode ser visto como uma multiplicação pela matriz MDS particular mostrada no campo finito .

O passo AddRoundKey[editar | editar código-fonte]

Na etapa AddRoundKey , cada byte do estado é combinado com um byte da subchave redonda usando a operação XOR (⊕).

Na etapa AddRoundKey , a subchave é combinada com o estado. Para cada rodada, uma subchave é derivada da chave principal usando a programação de chaves de Rijndael; cada subchave é do mesmo tamanho que o estado. A subchave é adicionada combinando cada byte do estado com o byte correspondente da subchave usando XOR bit a bit.

Otimização da cifra[editar | editar código-fonte]

Em sistemas com 32 bits ou palavras maiores, é possível acelerar a execução de esta cifra combinando os passos SubBytes e ShiftRows com o passo MixColumns transformando-os em uma sequência de pesquisas de tabela. Isso requer quatro tabelas de 32 bits de 256 entradas (juntas ocupando 4096 bytes). Uma rodada pode ser executada com 16 operações de pesquisa de tabela e 12 operações exclusivas ou de 32 bits, seguidas por quatro operações exclusivas ou de 32 bits na etapa AddRoundKey.[9] Como alternativa, a operação de pesquisa de tabela pode ser executada com uma única tabela de 32 bits de 256 entradas (ocupando 1024 bytes) seguida por operações de rotação circular.

Usando uma abordagem orientada a byte, é possível combinar as etapas SubBytes , ShiftRows e MixColumns em uma única operação de rodada.[10]

Até maio de 2009, os únicos ataques bem-sucedidos publicados contra o AES completo foram os ataques do canal lateral em algumas implementações específicas. A Agência de Segurança Nacional (NSA) analisou todos os finalistas da AES, incluindo Rijndael, e declarou que todos eles eram seguros o suficiente para dados não classificados do governo dos EUA. Em junho de 2003, o governo dos EUA anunciou que o AES poderia ser usado para proteger informações classificadas :

O design e a resistência de todos os comprimentos de chave do algoritmo AES (isto é, 128, 192 e 256) são suficientes para proteger as informações classificadas até o nível SECRET. As informações de TOP SECRET exigirão o uso de 192 ou 256 comprimentos de chave. A implementação do AES em produtos destinados a proteger sistemas de segurança nacional e / ou informações deve ser revisada e certificada pela NSA antes de sua aquisição e uso.

O AES tem 10 rodadas para chaves de 128 bits, 12 rodadas para chaves de 192 bits e 14 rodadas para chaves de 256 bits.

Em 2006, os ataques mais conhecidos foram em 7 rodadas para chaves de 128 bits, 8 rodadas para chaves de 192 bits e 9 rodadas para chaves de 256 bits.[11]

Ataques conhecidos[editar | editar código-fonte]

Para criptógrafos, um "intervalo" criptográfico é qualquer coisa mais rápida que um ataque de força bruta - isto é, executar uma decodificação de teste para cada possível chave em sequência (ver Criptoanálise ). Uma quebra pode, portanto, incluir resultados inviáveis com a tecnologia atual. Apesar de ser impraticável, os intervalos teóricos podem, às vezes, fornecer informações sobre os padrões de vulnerabilidade. O maior sucesso bem-sucedido de força bruta contra um algoritmo de criptografia block-cipher amplamente implementado foi contra uma chave RC5 de 64 bits da distributed.net em 2006.[12]

O espaço de chave aumenta em um fator de 2 para cada bit adicional de comprimento de chave, e se cada valor possível da chave for igualitário, isso se traduz em uma duplicação do tempo médio de pesquisa de chave de força bruta. Isso implica que o esforço de uma pesquisa de força bruta aumenta exponencialmente com o tamanho da chave. O tamanho da chave em si não implica segurança contra ataques, uma vez que existem cifras com chaves muito longas que foram consideradas vulneráveis.

AES tem um quadro algébrico bastante simples.[13] Em 2002, um ataque teórico, chamado de " ataque XSL ", foi anunciado por Nicolas Courtois e Josef Pieprzyk , pretendendo mostrar uma fraqueza no algoritmo AES, parcialmente devido à baixa complexidade de seus componentes não-lineares.[14] Desde então, outros trabalhos mostraram que o ataque, como originalmente apresentado, é impraticável; veja o ataque XSL em cifras de bloco .

Durante o processo de seleção da AES, desenvolvedores de algoritmos concorrentes escreveram sobre o algoritmo de Rijndael "... estamos preocupados com [seu] uso ... em aplicações críticas de segurança".[15] Em outubro de 2000, no entanto, no final do processo de seleção da AES, Bruce Schneier , desenvolvedor do algoritmo concorrente Twofish , escreveu que, embora achasse que um ataque acadêmico bem-sucedido a Rijndael seria desenvolvido algum dia, ele "não acreditava que alguém jamais descubra um ataque que permitirá a alguém ler o tráfego de Rijndael ".[16]

Em 2009, foi descoberto um novo ataque de chave relacionada que explora a simplicidade da programação principal da AES e tem uma complexidade de 2 119 . Em dezembro de 2009, foi melhorado para 2 99,5 . Este é um seguimento de um ataque descoberto no início de 2009 por Alex Biryukov , Dmitry Khovratovich e Ivica Nikolić, com uma complexidade de 2 96 para um em cada 2 35 chaves.[17] No entanto, ataques de chave relacionada não são motivo de preocupação em qualquer protocolo criptográfico adequadamente projetado, já que um protocolo adequadamente projetado (isto é, software implementacional) tomará cuidado para não permitir chaves relacionadas, essencialmente restringindo os meios de um atacante de selecionar chaves para relacionamento.

Outro ataque foi publicado por Bruce Schneier[18] em 30 de julho de 2009 e lançado como pré-impressão[19] em 3 de agosto de 2009. Este novo ataque, de Alex Biryukov, Orr Dunkerman, Nathan Keller, Dmitry Khovratovich e Adi Shamir , é contra o AES-256 que usa apenas duas chaves relacionadas e 239 para recuperar a chave completa de 256 bits de uma versão de 9 rodadas. ou 245 horas para uma versão de 10 rounds com um tipo mais forte de ataque de subchave relacionado, ou 270 para uma versão de 11 rounds. O AES de 256 bits usa 14 rodadas, então esses ataques não são eficazes contra o AES completo.

A praticabilidade desses ataques com chaves relacionadas mais fortes tem sido criticada[20], por exemplo, pelo artigo sobre ataques "escolhidos-chave-em-relações-no-meio" contra AES-128 de autoria de Vincent Rijmen em 2010.[21]

Em novembro de 2009, o primeiro ataque diferenciado de chave conhecida contra uma versão reduzida de 8 rounds do AES-128 foi lançado como pré-impressão.[22] Este ataque distinto de chave conhecida é uma melhoria do rebote, ou do ataque do início ao meio, contra permutações do tipo AES, que vêem duas rodadas consecutivas de permutação como a aplicação de uma suposta Super-Sbox. Ele funciona na versão de 8 rounds do AES-128, com uma complexidade de tempo de 248 e uma complexidade de memória de 232. O AES de 128 bits usa 10 rodadas, então esse ataque não é efetivo contra o AES-128 completo.

Os primeiros ataques de recuperação de chave em AES completos foram devidos a Andrey Bogdanov, Dmitry Khovratovich e Christian Rechberger, e foram publicados em 2011.[23] O ataque é um ataque biclique e é mais rápido que a força bruta por um fator de cerca de quatro. Requer 2 operações126.2 para recuperar uma chave AES-128. Para as operações AES-192 e AES-256, 2190.2 e 2254.6 são necessárias, respectivamente. Este resultado foi melhorado para 2126,0 para AES-128, 2189,9 para AES-192 e 2254,3 para AES-256,[23]que são os melhores resultados atuais no ataque de recuperação de chaves contra o AES.

Esse é um ganho muito pequeno, já que uma chave de 126 bits (em vez de 128 bits) ainda levaria bilhões de anos à força bruta no hardware atual e previsível. Além disso, os autores calculam que o melhor ataque usando sua técnica no AES com uma chave de 128 bits requer o armazenamento de 2 88 bits de dados. Isso equivale a cerca de 38 trilhões de terabytes de dados, o que é mais do que todos os dados armazenados em todos os computadores do planeta em 2016. Como tal, este é um ataque seriamente impraticável que não tem implicação prática na segurança do AES.[24] A complexidade do espaço foi posteriormente aprimorada para 2 56 bits[23] que é 9007 terabytes.

De acordo com os documentos de Snowden, a NSA está pesquisando se um ataque criptográfico baseado na estatística tau pode ajudar a quebrar o AES.[25]

No momento, não há nenhum ataque prático conhecido que permita que alguém sem conhecimento da chave leia dados criptografados pela AES quando implementados corretamente.

Ataques de canal lateral[editar | editar código-fonte]

Os ataques de canal lateral não atacam a cifra como uma caixa preta e, portanto, não estão relacionados à segurança da cifra, conforme definido no contexto clássico, mas são importantes na prática. Eles atacam implementações da codificação em sistemas de hardware ou software que inadvertidamente vazam dados. Existem vários desses ataques conhecidos em várias implementações do AES.

Em abril de 2005, DJ Bernstein anunciou um ataque em cache que usou para quebrar um servidor personalizado que usava a criptografia AES do OpenSSL.[26] O ataque exigiu mais de 200 milhões de textos simples escolhidos.[27] O servidor personalizado foi projetado para fornecer o máximo de informações de tempo possível (o servidor reporta o número de ciclos de máquina obtidos pela operação de criptografia); entretanto, como apontou Bernstein, "reduzir a precisão dos registros de data e hora do servidor ou eliminá-los das respostas do servidor não interrompe o ataque: o cliente simplesmente usa intervalos de ida e volta baseados em seu relógio local e compensa o aumento de ruído". pela média de um número maior de amostras ".[26]

Em outubro de 2005, Dag Arne Osvik, Adi Shamir e Eran Tromer apresentaram um artigo demonstrando vários ataques em cache contra as implementações no AES encontradas no OpenSSL e na função de criptografia de partição dm-crypt do Linux.[28] Um ataque conseguiu obter uma chave AES inteira após apenas 800 operações acionando criptografias, num total de 65 milissegundos. Esse ataque exige que o invasor possa executar programas no mesmo sistema ou plataforma que está executando o AES.

Em dezembro de 2009, foi publicado um ataque contra algumas implementações de hardware que utilizou análise diferencial de falhas e permitiu a recuperação de uma chave com uma complexidade de 232.[29]

Em novembro de 2010, Endre Bangerter, David Gullasch e Stephan Krenn publicaram um artigo descrevendo uma abordagem prática para uma recuperação "quase em tempo real" de chaves secretas da AES-128 sem a necessidade de texto cifrado ou texto simples. A abordagem também funciona em implementações AES-128 que usam tabelas de compactação, como o OpenSSL.[30] Como alguns ataques anteriores, este requer a capacidade de executar código sem privilégios no sistema que executa a criptografia AES, que pode ser obtida por infecção por malware com muito mais facilidade do que comandar a conta raiz.[31]

Em março de 2016, Ashokkumar C., Ravi Prakash Giri e Bernard Menezes apresentaram um ataque de canal lateral muito eficiente nas implementações do AES que podem recuperar a chave AES completa de 128 bits em apenas 6 a 7 blocos de texto simples / texto cifrado que é uma melhoria substancial sobre trabalhos anteriores que exigem entre 100 e um milhão de criptografias.[32] O ataque proposto requer privilégios de usuário padrão, pois os ataques anteriores e os algoritmos de recuperação de chave são executados em menos de um minuto.

Muitas CPUs modernas têm instruções de hardware incorporadas para o AES, que protegem contra ataques de canal lateral relacionados a temporização.[33] [34]

Validação NIST / CSEC[editar | editar código-fonte]

O Programa de Validação de Módulos Criptográficos (CMVP) é operado em conjunto pela Divisão de Segurança de Computadores do Instituto Nacional de Padrões e Tecnologia (NIST) do Governo dos Estados Unidos e o CSE ( Communications Security Establishment ) do Governo do Canadá. O uso de módulos criptográficos validados para o NIST FIPS 140-2 é exigido pelo governo dos Estados Unidos para a criptografia de todos os dados que tenham uma classificação de Sensitive, mas não confidencial (SBU) ou superior. Do NSTISSP # 11, Política Nacional que Governa a Aquisição de Garantia da Informação: "Os produtos de criptografia para proteger informações classificadas serão certificados pela NSA e os produtos de criptografia destinados a proteger informações sensíveis serão certificados de acordo com o NIST FIPS 140-2." [35]

O Governo do Canadá também recomenda o uso de módulos criptográficos validados pelo FIPS 140 em aplicações não confidenciais de seus departamentos.

Embora a publicação NIST 197 ("FIPS 197") seja o documento exclusivo que cobre o algoritmo AES, os fornecedores geralmente abordam o CMVP sob o FIPS 140 e solicitam vários algoritmos (como o Triple   DES ou SHA1 ) validado ao mesmo tempo. Portanto, é raro encontrar módulos criptográficos que são exclusivamente validados pelo FIPS 197 e o próprio NIST não costuma reservar um tempo para listar os módulos validados pelo FIPS 197 separadamente em seu site público. Em vez disso, a validação do FIPS 197 normalmente é listada apenas como uma notação "aprovado pelo FIPS: AES" (com um número de certificado FIPS 197 específico) na lista atual de módulos criptográficos validados pelo FIPS 140.

O Programa de Validação de Algoritmos Criptográficos (CAVP) [36] permite a validação independente da implementação correta do algoritmo AES a um custo razoável   . A validação bem-sucedida resulta em ser listada na página de validações do NIST. [37] Este teste é um pré-requisito para a validação do módulo FIPS 140-2 descrito abaixo. No entanto, a validação bem-sucedida do CAVP não implica de forma alguma que o módulo criptográfico que implementa o algoritmo é seguro. Um módulo criptográfico sem validação do FIPS 140-2 ou aprovação específica da NSA não é considerado seguro pelo governo dos EUA e não pode ser usado para proteger dados do governo. [35]

A validação do FIPS 140-2 é um desafio para se obter técnica e fiscalmente. [38] Há uma bateria padronizada de testes, bem como um elemento de revisão de código-fonte que deve ser passado por um período de algumas semanas. O custo para realizar esses testes por meio de um laboratório aprovado pode ser significativo (por exemplo, bem acima de US $ 30.000) [38] e não inclui o tempo necessário para escrever, testar, documentar e preparar um módulo para validação. Após a validação, os módulos devem ser reenviados e reavaliados se forem alterados de alguma forma. Isso pode variar de simples atualizações na burocracia se a funcionalidade de segurança não for alterada para um conjunto mais substancial de nova verificação se a funcionalidade de segurança foi afetada pela alteração.

Vetores de teste[editar | editar código-fonte]

Vetores de teste são um conjunto de cifras conhecidas para uma dada entrada e chave. O NIST distribui a referência de vetores de teste AES como vetores de teste de resposta conhecida AES (KAT). [note 3]

Desempenho[editar | editar código-fonte]

Alta velocidade e baixos requisitos de RAM foram critérios do processo de seleção do AES. Como o algoritmo escolhido, o AES teve um bom desempenho em uma ampla variedade de hardware, desde cartões inteligentes de 8 bits até computadores de alto desempenho.

Em um Pentium Pro , a criptografia AES requer 18 ciclos de clock por byte, [39] equivalente a uma taxa de transferência de cerca de 11   MB / s para um 200   Processador de MHz. Em um 1.7   GHz Pentium M é de cerca de 60   MB / s

Nos processadores Intel Core i3 / i5 / i7 e AMD Ryzen que suportam as extensões do conjunto de instruções AES-NI , o rendimento pode ser múltiplo GB / s (mesmo acima de 10   GB / s). [40]

Implementações[editar | editar código-fonte]

Veja também[editar | editar código-fonte]

Notas

  1. As variantes de bloco grande do Rijndael usam um array com colunas adicionais, mas sempre quatro linhas.
  2. As variantes de Rijndael com um tamanho de bloco maior têm compensações ligeiramente diferentes.

Referências

  1. «Biclique Cryptanalysis of the Full AES» (PDF). Consultado em 23 de julho de 2013. Cópia arquivada (PDF) em 8 de junho de 2012  – Broken link!
  2. Alex Biryukov and Dmitry Khovratovich, Related-key Cryptanalysis of the Full AES-192 and AES-256, «Archived copy». Consultado em 16 de fevereiro de 2010. Cópia arquivada em 28 de setembro de 2009 
  3. a b c Daemen, Joan; Rijmen, Vincent (9 de abril de 2003). «AES Proposal: Rijndael» (PDF) (em inglês). Consultado em 1 de janeiro de 2020  Erro de citação: Código <ref> inválido; o nome "Rijndael-ammended.pdf" é definido mais de uma vez com conteúdos diferentes
  4. a b c «Announcing the ADVANCED ENCRYPTION STANDARD (AES)» (PDF). Federal Information Processing Standards Publication 197 (em inglês). 26 de novembro de 2001. Consultado em 1 de janeiro de 2020  Erro de citação: Código <ref> inválido; o nome "fips-197" é definido mais de uma vez com conteúdos diferentes
  5. Schwartz, John (3 de outubro de 2000). «TECHNOLOGY; U.S. Selects a New Encryption Technique». The New York Times (em inglês). ISSN 0362-4331 
  6. «NIST reports measurable success of Advanced Encryption Standard. (News Briefs). - Free Online Library». www.thefreelibrary.com (em inglês). Consultado em 1 de janeiro de 2020 
  7. 14:00-17:00. «ISO/IEC 18033-3:2010». ISO (em inglês). Consultado em 1 de janeiro de 2020 
  8. Schneier, Bruce; Kelsey, John; Whiting, Doug; Wagner, David; Hall, Chris; Ferguson, Niels; Kohno, Tadayoshi; Stay, Mike (15 de maio de 2000). «The Twofish Team's Final Comments on AES Selection» (PDF) (em inglês). Consultado em 1 de janeiro de 2020 
  9. Messner, Victor Cracel (2018). ESTUDO E IMPLEMENTAÇÃO EFICIENTE DE ALGORITMOS CRIPTOGRÁFICOS. Dissertação de Mestrado. Rio de Janeiro: COPPE UFRJ 
  10. «byte-oriented-aes – A public domain byte-oriented implementation of AES in C – Google Project Hosting» (em inglês). Consultado em 1 de janeiro de 2020 
  11. Ferguson, N.; Kelsey, J.; Lucks, S.; Schneier, B.; Stay, M.; Wagner, D.; Whiting, D. (2001). «Improved Cryptanalysis of Rijndael». Seventh Fast Software Encryption Workshop: 213-230. Consultado em 1 de janeiro de 2020 
  12. Ou, George. «Is encryption really crackable?». ZDNet (em inglês). Consultado em 1 de janeiro de 2020 
  13. «Sean Murphy». www.isg.rhul.ac.uk (em inglês). Consultado em 1 de janeiro de 2020 
  14. Schneier, Bruce (15 de setembro de 2002). «Crypto-Gram». www.schneier.com (em inglês). Consultado em 1 de janeiro de 2020 
  15. Citação vazia (ajuda) 
  16. Bruce Schneier, AES Announced Arquivado em 2009-02-01 no Wayback Machine, October 15, 2000
  17. Biryukov, Alex; Khovratovich, Dmitry; Nikolić, Ivica (2009). Halevi, Shai, ed. «Distinguisher and Related-Key Attack on the Full AES-256». Berlin, Heidelberg: Springer Berlin Heidelberg (em inglês). 5677: 231–249. ISBN 978-3-642-03355-1. doi:10.1007/978-3-642-03356-8_14. Consultado em 4 de janeiro de 2020 
  18. «Another New AES Attack». Schneier on Security, A blog covering security and security technology 
  19. Biryukov, Alex; Dunkelman, Orr; Keller, Nathan; Khovratovich, Dmitry; Shamir, Adi (2009). «Key Recovery Attacks of Practical Complexity on AES Variants With Up To 10 Rounds» (em inglês). Consultado em 4 de janeiro de 2020 
  20. Ågren, Martin (2012). «On Some Symmetric Lightweight Cryptographic Designs» (em inglês). Consultado em 4 de janeiro de 2020 
  21. Rijmen, Vincent (2010). «Practical-Titled Attack on AES-128 Using Chosen-Text Relations» (em inglês). Consultado em 4 de janeiro de 2020 
  22. Gilbert, Henri; Peyrin, Thomas (2009). «Super-Sbox Cryptanalysis: Improved Attacks for AES-like permutations» (em inglês). Consultado em 4 de janeiro de 2020 
  23. a b c Bogdanov, Andrey; Khovratovich, Dmitry; Rechberger, Christian (2011). Lee, Dong Hoon; Wang, Xiaoyun, eds. «Biclique Cryptanalysis of the Full AES». Springer Berlin Heidelberg. Advances in Cryptology – ASIACRYPT 2011. Lecture Notes in Computer Science (em inglês): 344–371. ISBN 978-3-642-25385-0. doi:10.1007/978-3-642-25385-0_19. Consultado em 4 de janeiro de 2020 
  24. «AES Encryption isn't Cracked | 1Password». 1Password Blog (em inglês). 18 de agosto de 2011. Consultado em 4 de janeiro de 2020 
  25. Staff, SPIEGEL (28 de dezembro de 2014). «Prying Eyes: Inside the NSA's War on Internet Security». Spiegel Online (em inglês). Consultado em 4 de janeiro de 2020 
  26. a b «Index of formal scientific papers» 
  27. «AES Timing Attack - Schneier on Security». www.schneier.com (em inglês). Consultado em 4 de janeiro de 2020 
  28. Osvik, Dag Arne; Shamir, Adi; Tromer, Eran (2006). Pointcheval, David, ed. «Cache Attacks and Countermeasures: The Case of AES». Springer Berlin Heidelberg. Topics in Cryptology – CT-RSA 2006. Lecture Notes in Computer Science (em inglês): 1–20. ISBN 978-3-540-32648-9. doi:10.1007/11605805_1. Consultado em 4 de janeiro de 2020 
  29. Saha, Dhiman; Mukhopadhyay, Debdeep; Chowdhury, Dipanwita Roy (2009). «A Diagonal Fault Attack on the Advanced Encryption Standard». IACR Cryptology ePrint Archive (em inglês). 2009. Consultado em 4 de janeiro de 2020 
  30. Bangerter, Endre; Gullasch, David; Krenn, Stephan (2011). Cache games– Bringing access-based cache attacks on AES to practice,” Workshop COSADE (em inglês). [S.l.: s.n.] Consultado em 4 de janeiro de 2020 
  31. «Breaking AES-128 in realtime, no ciphertext required | Hacker News». news.ycombinator.com. Consultado em 4 de janeiro de 2020 
  32. Ashokkumar, C.; Giri, R. P.; Menezes, B. (2016). «Highly Efficient Algorithms for AES Key Retrieval in Cache Access Attacks». 2016 IEEE European Symposium on Security and Privacy (EuroS P) (em inglês): 261–275. doi:10.1109/EuroSP.2016.29. Consultado em 4 de janeiro de 2020 
  33. «Are AES x86 Cache Timing Attacks Still Feasible?» (PDF). cseweb.ucsd.edu 
  34. «Archived copy» (PDF)  Securing the Enterprise with Intel AES-NI
  35. a b «Archived copy» (PDF) 
  36. «NIST.gov – Computer Security Division – Computer Security Resource Center» 
  37. «Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules» 
  38. a b «OpenSSL's Notes about FIPS certification» [ligação inativa] 
  39. «Performance Comparisons of the AES submissions» (PDF) 
  40. «AMD Ryzen 7 1700X Review» 


Erro de citação: Existem etiquetas <ref> para um grupo chamado "note", mas não foi encontrada nenhuma etiqueta <references group="note"/> correspondente