Padrão de criptografia avançada

AjustarCompartirImprimirCitar
Padrão para a criptografia de dados eletrônicos

O Padrão Avançado de Criptografia (AES), também conhecido por seu nome original Rijndael (pronúncia holandesa: [ˈrɛindaːl]), é uma especificação para a criptografia de dados eletrônicos estabelecida pela Instituto Nacional de Padrões e Tecnologia dos Estados Unidos (NIST) em 2001.

O AES é uma variante da cifra de bloco Rijndael desenvolvida por dois criptógrafos belgas, Joan Daemen e Vincent Rijmen, que apresentaram uma proposta ao NIST durante o processo de seleção do AES. Rijndael é uma família de cifras com diferentes tamanhos de chave e bloco. 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. Ele substitui o Data Encryption Standard (DES), que foi 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 U.S. FIPS PUB 197 (FIPS 197) em 26 de novembro de 2001. Este anúncio seguiu um processo de padronização de cinco anos no qual quinze projetos concorrentes foram apresentados e avaliados, antes do A cifra de Rijndael foi selecionada como a mais adequada.

O AES está incluído no padrão ISO/IEC 18033-3. AES entrou em vigor como um padrão do governo federal dos EUA em 26 de maio de 2002, após a aprovação do Secretário de Comércio dos EUA. O AES está disponível em muitos pacotes de criptografia diferentes e é a primeira (e única) cifra publicamente acessível aprovada pela Agência de Segurança Nacional dos EUA (NSA) para informações ultrassecretas quando usado em um módulo criptográfico aprovado pela NSA.

Padrões definitivos

O Padrão Avançado de Criptografia (AES) é definido em cada um dos seguintes:

  • FIPS PUB 197: Padrão de Criptografia Avançada (AES)
  • ISO/IEC 18033-3: Cifras de bloco

Descrição das cifras

O AES é baseado em um princípio de design conhecido como rede de substituição-permutação e é eficiente tanto em software quanto em hardware. Ao contrário de seu predecessor DES, o AES não usa uma rede Feistel. AES é uma variante do Rijndael, com um tamanho de bloco fixo de 128 bits e um tamanho de chave de 128, 192 ou 256 bits. Em contraste, Rijndael per se é especificado com tamanhos de bloco e chave que podem ser múltiplos de 32 bits, com um mínimo de 128 e um máximo de 256 bits. A maioria dos cálculos AES é feita em um campo finito específico.

O AES opera em uma matriz de ordem principal de coluna de 4 × 4 de 16 bytes b0,b1,...,b15 denominado estado:

Não.b)0b)4b)8b)12b)1b)5b)9b)13b)2b)6b)10.b)14b)3b)7b)11b)15]{displaystyle {begin{bmatrix}b_{0}&b_{4}&b_{8}&b_{12}\b_{1}b_{5}&b_{9}&b_{13}\b_{2}&b_{6}&b_{10}&b_{14}\b_{3}&b_{7}&b_{11&b_{15}end{bmatrix}}}

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 192-bit chaves.
  • 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 simples original usando a mesma chave de criptografia.

Descrição de alto nível do algoritmo

  1. Expansão de chaves– as chaves redondas são derivadas da chave da cifra usando o calendário chave AES. AES requer um bloco de chave redonda de 128 bits separado para cada rodada mais um mais.
  2. Adição inicial da chave redonda:
    1. Adicionar ao cesto Chaveiro– cada byte do estado é combinado com um byte da chave redonda usando xor bitwise.
  3. 9, 11 ou 13 rodadas:
    1. Subtítulo– uma etapa de substituição não linear onde cada byte é substituído por outro de acordo com uma mesa de pesquisa.
    2. ShiftRows– um passo de transposição onde as três últimas linhas do estado são deslocadas ciclicamente um certo número de passos.
    3. Misturar cores– uma operação de mistura linear que opera nas colunas do estado, combinando os quatro bytes em cada coluna.
    4. Adicionar ao cesto Chaveiro
  4. Rodada final (fazendo 10, 12 ou 14 rodadas no total):
    1. Subtítulo
    2. ShiftRows
    3. Adicionar ao cesto Chaveiro

A etapa SubBytes

No Subtítulo passo, cada byte no estado é substituído por sua entrada em uma mesa de pesquisa fixa de 8 bits, S; b)ij = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = S(a)ij).

No Subtítulo passo, cada byte umEu...,JJ{displaystyle a_{i,j}} no Estado array é substituído por um Subtítulo S(umEu...,JJ){displaystyle S(a_{i,j})} usando uma caixa de substituição de 8 bits. Note que antes da rodada 0, o Estado array é simplesmente o texto/input. 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 não lineares. Para evitar ataques baseados em propriedades algébricas simples, a caixa S é construída combinando a função inversa com uma transformação invertível do affine. A caixa S também é escolhida para evitar quaisquer pontos fixos (e assim é um descomprometimento), ou seja, S(umEu...,JJ)≠ ≠ umEu...,JJ{displaystyle S(a_{i,j})neq a_{i,j}}, e também quaisquer pontos fixos opostos, i.e., S(umEu...,JJ)⊕ ⊕ umEu...,JJ≠ ≠ FF16.{displaystyle S(a_{i,j})oplus a_{i,j}neq {text{FF}}_{16}}. Ao executar a descriptografia, o InvSubBytes passo (o inverso de Subtítulo) é usado, o que requer primeiro tomar o inverso da transformação affine e depois encontrar o inverso multiplicativo.

A etapa ShiftRows

No ShiftRows passo, bytes em cada linha do estado são deslocados cíclicamente para a esquerda. O número de lugares que cada byte é deslocado difere incrementalmente para cada linha.

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

O passo MixColumns

No Misturar cores passo, cada coluna do estado é multiplicada com um polinomial fixo c(x)(x)}.

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

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

Não.b)0,JJb)1,JJb)2,JJb)3,JJ]= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =Não.2311123111233112]Não.um0,JJum1,JJum2,JJum3,JJ]0≤ ≤ JJ≤ ≤ 3{displaystyle {begin{bmatrix}b_{0,j}\b_{1,j}\b_{2,j}\b_{3,j}end{bmatrix}}={begin{bmatrix}2&3&1&111&2&33&1&1&1&2bmatrix}}{begin{ma 0leq jleq 3

A multiplicação da matriz é composta de multiplicação e adição das entradas. As entradas são bytes tratados como coeficientes de polinomial de ordem x7{displaystyle x^{7}}. A adição é simplesmente XOR. Multiplicação é modulo irredutível polinomial x8+x4+x3+x+1Não. x^{8}+x^{4}+x^{3}+x+1}. Se processado bit a bit, então, após a mudança, um XOR condicional com 1B16. deve ser realizada se o valor deslocado é maior do que FF16. (o excesso deve ser corrigido pela subtração da geração de polinomial). Estes são casos especiais da multiplicação habitual em GF⁡ ⁡ (28){displaystyle operatorname {GF} (2^{8})}.

Em sentido mais geral, cada coluna é tratada como um polinômio sobre GF⁡ ⁡ (28){displaystyle operatorname {GF} (2^{8})} e é então modulo multiplicado 01:0116.)) zangão.4+01:0116.{displaystyle {01}_{16}cdot z^{4}+{01}_{16}} com um polinomial fixo c(zangão.)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =03:0316.)) zangão.3+01:0116.)) zangão.2+01:0116.)) zangão.+0216.{displaystyle c(z)={03}_{16}cdot z^{3}+{01}_{16}cdot z^{2}+{01}_{16}cdot z+{02}_{16}}. Os coeficientes são exibidos em seu equivalente hexadecimal da representação binária de polinômios bits de GF⁡ ⁡ (2)Não.x]{displaystyle operatorname {GF} (2)[x]}. O Misturar cores passo também pode ser visto como uma multiplicação pela matriz particular MDS mostrada no campo finito GF⁡ ⁡ (28){displaystyle operatorname {GF} (2^{8})}. Este processo é descrito mais adiante no artigo Rijndael MixColumns.

A AddRoundKey

No Adicionar ao cesto Chaveiro passo, cada byte do estado é combinado com um byte do subkey redondo 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

Em sistemas com palavras de 32 bits ou maiores, é possível acelerar a execução dessa cifra combinando SubBytes e ShiftRows com a etapa MixColumns transformando-os em uma sequência de pesquisas de tabela. Isso requer quatro tabelas de 32 bits com 256 entradas (juntas ocupando 4.096 bytes). Uma rodada pode então ser realizada com 16 operações de pesquisa de tabela e 12 operações de ou exclusivo de 32 bits, seguidas por quatro operações de ou exclusivo de 32 bits na etapa AddRoundKey. 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 bytes, é possível combinar SubBytes, ShiftRows e MixColumns entra em uma única operação de rodada.

Segurança

A Agência de Segurança Nacional (NSA) revisou todos os finalistas do AES, incluindo Rijndael, e afirmou 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 força de todos os comprimentos-chave do algoritmo AES (isto é, 128, 192 e 256) são suficientes para proteger informações confidenciais até o nível SECRET. As informações SECRET TOP exigirão o uso dos comprimentos de chave 192 ou 256. A implementação da AES em produtos destinados a proteger sistemas de segurança nacionais 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 eram em 7 rodadas para chaves de 128 bits, 8 rodadas para chaves de 192 bits e 9 rodadas para chaves de 256 bits.

Ataques conhecidos

Para criptógrafos, uma "quebra" é algo mais rápido do que um ataque de força bruta - ou seja, executar uma descriptografia de teste para cada chave possível em sequência. Uma ruptura pode, portanto, incluir resultados que são inviáveis com a tecnologia atual. Apesar de impraticáveis, as quebras teóricas às vezes podem fornecer informações sobre os padrões de vulnerabilidade. O maior ataque de força bruta conhecido publicamente contra um algoritmo de criptografia de cifra de bloco amplamente implementado foi contra uma chave RC5 de 64 bits por distribuído.net em 2006.

O espaço da chave aumenta em um fator de 2 para cada bit adicional de comprimento da chave e, se todos os valores possíveis da chave forem equiprováveis, 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 comprimento da chave em si não implica segurança contra ataques, pois existem cifras com chaves muito longas que se mostraram vulneráveis.

O AES tem uma estrutura algébrica bastante simples. 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, em parte devido à baixa complexidade de seus componentes não lineares. Desde então, outros trabalhos mostraram que o ataque, conforme apresentado originalmente, é impraticável; consulte ataque XSL em cifras de bloco.

Durante o processo de seleção do AES, os desenvolvedores de algoritmos concorrentes escreveram sobre o algoritmo de Rijndael "estamos preocupados com [seu] uso... em aplicativos de segurança crítica." Em outubro de 2000, no entanto, no final do processo de seleção do AES, Bruce Schneier, um desenvolvedor do algoritmo concorrente Twofish, escreveu que, embora pensasse que ataques acadêmicos bem-sucedidos a Rijndael seriam desenvolvidos algum dia, ele "não acreditava que ninguém jamais descobrirá um ataque que permitirá a alguém ler o tráfego de Rijndael."

Até maio de 2009, os únicos ataques bem-sucedidos publicados contra o AES completo eram ataques de canal lateral em algumas implementações específicas. Em 2009, foi descoberto um novo ataque de chave relacionada que explora a simplicidade do agendamento de chave do AES e tem uma complexidade de 2119. Em dezembro de 2009, foi melhorado para 299,5. Esta é uma continuação de um ataque descoberto no início de 2009 por Alex Biryukov, Dmitry Khovratovich e Ivica Nikolić, com uma complexidade de 296 para um em cada 235 teclas. No entanto, ataques de chave relacionada não são motivo de preocupação em nenhum protocolo criptográfico projetado adequadamente, pois um protocolo projetado adequadamente (ou seja, software de implementação) tomará cuidado para não permitir chaves relacionadas, essencialmente restringindo os meios de um invasor selecionar chaves para parentesco.

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

A praticidade desses ataques com chaves relacionadas mais fortes foi criticada, por exemplo, pelo artigo sobre ataques de relações de chave escolhida no meio do AES-128, de autoria de Vincent Rijmen em 2010.

Em novembro de 2009, o primeiro ataque de distinção de chave conhecida contra uma versão reduzida de 8 rodadas do AES-128 foi lançado como uma pré-impressão. Este ataque de distinção de chave conhecida é uma melhoria do rebote, ou o ataque de início do meio, contra permutações do tipo AES, que visualizam duas rodadas consecutivas de permutação como a aplicação do chamado Super-S-box. Ele funciona na versão de 8 rodadas 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, portanto, esse ataque não é eficaz contra o AES-128 completo.

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

Este é um ganho muito pequeno, já que uma chave de 126 bits (em vez de 128 bits) ainda levaria bilhões de anos para força bruta no hardware atual e previsível. Além disso, os autores calculam o melhor ataque usando sua técnica no AES com uma chave de 128 bits requer armazenamento de 288 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, não há implicações práticas na segurança do AES. A complexidade do espaço foi melhorada posteriormente para 256 bits, que é 9007 terabytes (mantendo uma complexidade de tempo de 2126,2).

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.

Atualmente, não há nenhum ataque prático conhecido que permita que alguém sem conhecimento da chave leia dados criptografados pelo AES quando implementado corretamente.

Ataques de canal lateral

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 cifra em sistemas de hardware ou software que vazam dados inadvertidamente. Existem vários desses ataques conhecidos em várias implementações do AES.

Em abril de 2005, D. J. Bernstein anunciou um ataque de sincronização de cache que ele usou para quebrar um servidor personalizado que usava a criptografia AES do OpenSSL. O ataque exigiu mais de 200 milhões de textos simples escolhidos. O servidor personalizado foi projetado para fornecer o máximo possível de informações de tempo (o servidor relata o número de ciclos da máquina realizados pela operação de criptografia). No entanto, como Bernstein apontou, "reduzir a precisão dos carimbos de data/hora do servidor ou eliminá-los das respostas do servidor não interrompe o ataque: o cliente simplesmente usa tempos de ida e volta com base em seu relógio local e compensa o aumento do ruído calculando a média de um número maior de amostras".

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

Em dezembro de 2009 foi publicado um ataque a algumas implementações de hardware que utilizava análise diferencial de falhas e permitia a recuperação de uma chave com complexidade de 232.

Em novembro de 2010, Endre Bangerter, David Gullasch e Stephan Krenn publicaram um artigo que descrevia uma abordagem prática para um "quase tempo real" recuperação de chaves secretas de 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 OpenSSL. Como alguns ataques anteriores, este requer a capacidade de executar código não privilegiado no sistema que executa a criptografia AES, o que pode ser alcançado por infecção por malware com muito mais facilidade do que o comando da conta root.

Em março de 2016, Ashokkumar C., Ravi Prakash Giri e Bernard Menezes apresentaram um ataque de canal lateral em implementações AES que podem recuperar a chave AES completa de 128 bits em apenas 6–7 blocos de texto simples/texto cifrado, que é uma melhoria substancial em relação aos trabalhos anteriores que exigem entre 100 e um milhão de criptografias. O ataque proposto requer privilégio de usuário padrão e algoritmos de recuperação de chave executados em um minuto.

Muitas CPUs modernas têm instruções de hardware integradas para AES, que protegem contra ataques de canal lateral relacionados ao tempo.

Validação NIST/CSEC

O Programa de Validação de Módulo Criptográfico (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 pelo Estabelecimento de Segurança de Comunicações (CSE) do Governo do Canadá. O uso de módulos criptográficos validados para NIST FIPS 140-2 é exigido pelo governo dos Estados Unidos para criptografia de todos os dados que tenham uma classificação de Sensitive but Unclassified (SBU) ou superior. Do NSTISSP nº 11, Política Nacional que rege a aquisição de garantia de informações: “Os produtos de criptografia para proteger informações classificadas serão certificados pela NSA, e os produtos de criptografia destinados a proteger informações confidenciais serão certificados de acordo com o NIST FIPS 140-2”.

O Governo do Canadá também recomenda o uso de módulos criptográficos validados pelo FIPS 140 em aplicativos não classificados de seus departamentos.

Embora a publicação NIST 197 ("FIPS 197") seja o único documento que cobre o algoritmo AES, os fornecedores normalmente abordam o CMVP sob o FIPS 140 e pedem a validação de vários algoritmos (como Triple DES ou SHA1) ao mesmo tempo. Portanto, é raro encontrar módulos criptográficos que sejam exclusivamente validados pelo FIPS 197 e o próprio NIST geralmente não leva tempo para listar os módulos validados pelo FIPS 197 separadamente em seu site público. Em vez disso, a validação FIPS 197 normalmente é listada apenas como um "FIPS aprovado: 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 Algoritmo Criptográfico (CAVP) permite a validação independente da implementação correta do algoritmo AES. A validação bem-sucedida resulta em lista na página de validações do NIST. Este teste é um pré-requisito para a validação do módulo FIPS 140-2. No entanto, a validação CAVP bem-sucedida não implica de forma alguma que o módulo criptográfico que implementa o algoritmo seja seguro. Um módulo criptográfico sem validação FIPS 140-2 ou aprovação específica pela NSA não é considerado seguro pelo governo dos EUA e não pode ser usado para proteger dados do governo.

A validação do FIPS 140-2 é desafiadora tanto técnica quanto fiscalmente. Há uma bateria padronizada de testes, bem como um elemento de revisão do código-fonte que deve ser aprovado em 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 mais de US$ 30.000) 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 caso sejam alterados de alguma forma. Isso pode variar de simples atualizações de papelada se a funcionalidade de segurança não foi alterada para um conjunto mais substancial de novos testes se a funcionalidade de segurança foi afetada pela alteração.

Vetores de teste

Vetores de teste são um conjunto de cifras conhecidas para uma determinada entrada e chave. O NIST distribui a referência de vetores de teste AES como vetores AES Known Answer Test (KAT).

Desempenho

Alta velocidade e baixa RAM foram alguns dos critérios do processo de seleção da AES. Como 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, equivalente a uma taxa de transferência de cerca de 11 MiB/s para um processador de 200 MHz.

Em CPUs Intel Core e AMD Ryzen com suporte para extensões de conjunto de instruções AES-NI, a taxa de transferência pode ser de vários GiB/s (mesmo acima de 15 GiB/s em um i7-12700k).

Implementações

Contenido relacionado

Apple Talk

AppleTalk é um conjunto proprietário descontinuado de protocolos de rede desenvolvidos pela Apple Computer para seus computadores Macintosh. O AppleTalk...

Laboratório de Propulsão a Jato

O Laboratório de Propulsão a Jato é um centro de pesquisa e desenvolvimento financiado pelo governo federal e um centro de campo da NASA na cidade de La...

Segurança do computador

Segurança do computador, cibersegurança ou segurança da tecnologia da informação é a proteção de sistemas e redes de computadores contra ataques de...
Más resultados...
Tamaño del texto: