O que é criptografia AES e como funciona?
Quando se trata de segurança cibernética, AES é uma daquelas siglas que você vê surgindo em todos os lugares. Isso porque se tornou o padrão global de criptografia e é usado para manter segura uma quantidade significativa de nossas comunicações.
O padrão de criptografia avançado(AES)é uma forma rápida e segura de criptografia que mantém olhares indiscretos longe de nossos dados. Vemos isso em aplicativos de mensagens comoWhatsappeSinal, programas comoVeraCrypteWinZip, em uma variedade de hardware e em uma variedade de outras tecnologias que usamos o tempo todo.
Por que o AES foi desenvolvido?
Os primeiros tipos de criptografia eram simples, usando técnicas como mudar cada letra de uma frase para aquela que vem depois dela no alfabeto. Sob este tipo de código, a frase anterior torna-se:
Como você pode ver, esse código simples o torna completamente ilegível. Apesar da ilegibilidade inicial, se você tivesse tempo e soubesse que era um código e não apenas um monte de caracteres vomitados na página, não seria muito difícil descobrir.
À medida que as pessoas melhoraram em decifrar códigos, a criptografia teve que se tornar mais sofisticadapara que omensagens poderiam ser mantido em segredo. Esta corrida armamentista para criar métodos mais sofisticados enquanto outros dedicavam seus esforços para quebrá-los levou a técnicas cada vez mais complicadas,tais como o Máquina enigma . Seus primeiros designs remontam a um patente do inventor alemão Arthur Scherbius em 1918.
A ascensão da comunicação eletrônica também foi uma bênção para a criptografia. Na década de 1970,Escritório Nacional de Padrões dos EUA (NBS)começou a procurar um meio padrão que pudesse ser usado para criptografar informações governamentais confidenciais. O resultado de sua busca foi adotar um algoritmo de chave simétrica desenvolvido na IBM, que hoje é chamado de Padrão de criptografia de dados (DES) . O DES serviu relativamente bem o seu propósito durante as duas décadas seguintes, mas na década de noventa começaram a surgir algumas preocupações de segurança.
O DES só tem umChave de 56 bits(em comparação com omáximo de 256 bits em AES, mas falaremos disso mais tarde), então, à medida que a tecnologia e os métodos de cracking melhoraram, os ataques contra ela começaram a se tornar mais práticos. A primeira mensagem criptografada DES a ser aberta foi em 1997, pelo Projeto DESCHALL em umCompetição patrocinada pela RSA Security.
No ano seguinte, o Fundação Fronteira Eletrônica (EFF) construiu um cracker DES que poderia forçar uma chave com força bruta em pouco mais de dois dias. Em 1999, oEFEe o primeiro coletivo de computação da Internet,distribuído.net, colaborou para reduzir esse tempo para menos de 24 horas.
Embora estes ataques fossem dispendiosos e impraticáveis de montar, começaram a mostrar que o reinado do DES como padrão de encriptação de referência estava a chegar ao fim. Com poder de computaçãoaumentando exponencialmentede acordo comLei de Moore, era apenas uma questão de tempo até que o DES não pudesse mais ser confiável.
O governo dos EUA iniciou uma missão de cinco anos para avaliar uma variedade de diferentes métodos de criptografia, a fim de encontrar um novo padrão que fosse seguro. OInstituto Nacional de Padrões e Tecnologia (NIST)anunciou que finalmente fez sua seleção no final de 2001.
A escolha deles foi um subconjunto específico do Cifra de bloco Rijndael , com tamanho de bloco fixo de 128 bits e tamanhos de chave de 128, 192 e 256 bits. Foi desenvolvido por Joan Daemen e Vincent Rijmen, dois criptógrafos da Bélgica. Em maio de 2002, a AES foi aprovada para se tornar a Padrão federal dos EUA e rapidamente se tornou o algoritmo de criptografia padrão para o resto do mundo também.
Relacionado: Um guia para iniciantes em criptografia
Por que essa cifra foi escolhida para AES?
Com qualquer tipo de criptografia, sempre há compensações. Você poderia facilmente ter um padrão exponencialmente mais seguro que o AES, mas demoraria muito para criptografar e descriptografar para ter qualquer utilidade prática. No final, oA cifra de bloco Rijndael foi escolhida pelo NISTparasuas habilidades versáteis, incluindo seu desempenho em hardware e software, facilidade de implementação e nível de segurança.
Como funciona o AES?
Esteja ciente de que o exemplo a seguir é uma simplificação, mas dá uma ideia geral de como funciona o AES. Infelizmente, não há café suficiente no mundo para fazer a maioria das pessoas querer passar pelos aspectos mais complicados do AES. Normalmente, o processo é realizado em binário e há muito mais matemática.
Primeiro, os dados são divididos em blocos.
Neste método de criptografia, a primeira coisa que acontece é que o seu texto simples (que é a informação que você deseja criptografar) é separado em blocos. O tamanho do bloco do AES é de 128 bits, portanto ele separa os dados em uma coluna quatro por quatro de dezesseis bytes (há oito bits em um byte e 16 x 8 = 128).
Se a sua mensagem foi “compre-me algumas batatas fritas, por favor”, o primeiro bloco será assim:
b | eu | O | p |
em | e | eu | O |
E | e | t | |
é | a |
Iremos pular o resto da mensagem neste exemplo e nos concentrar apenas no que acontece com o primeiro bloco à medida que ele é criptografado. O “…to chips, por favor” normalmente seria adicionado ao próximo bloco.
Expansão de chave
A expansão da chave envolve pegar a chave inicial e usá-la para criar uma série de outras chaves para cada rodada do processo de criptografia. Estas novas chaves redondas de 128 bits são derivadas com Cronograma principal de Rijndael , que é essencialmente uma maneira simples e rápida de produzir novas cifras de chave. Se a chave inicial fosse “as teclas são chatas1”:
k | eu | ||
e | a | b | n |
E | R | O | g |
é | e | R | 1 |
Então, cada uma das novas chaves pode ser parecida com isto, uma vez que a programação de chaves de Rijndael tenha sido usada:
14 | 29 | 1h | s5 |
h9 | 9f | st | 9f |
gt | 2h | sede | 73 |
ks | DJ | df | hb |
Embora pareçam caracteres aleatórios (e o exemplo acima seja apenas inventado), cada uma dessas chaves é derivada de um processo estruturado quando a criptografia AES é realmente aplicada. Voltaremos ao uso dessas teclas redondas mais tarde.
Adicionar chave redonda
Nesta etapa, por ser a primeira rodada, nossa chave inicial é adicionada ao bloco da nossa mensagem:
b | eu | O | p |
em | e | eu | O |
E | e | t | |
é | a |
+
k | eu | ||
e | a | b | n |
E | R | O | g |
é | e | R | 1 |
Isto é feito com um Cifra XOR , que é um algoritmo de criptografia aditivo. Embora pareça que você não pode realmente somar essas coisas, esteja ciente de que isso é feito em binário. Os personagens são apenas substitutos para tentar tornar as coisas mais fáceis de entender. Digamos que esta operação matemática nos dê o resultado de:
h3 | jd | para | 7s |
s8 | 7d | 26 | 2n |
DJ | 4b | 9d | 9c |
74 | o | 2h | hg |
Substituir bytes
Nesta etapa, cada byte é substituído de acordo com uma tabela pré-determinada. É mais ou menos como o exemplo do início do artigo, onde a frase foi codificada alterando cada letra para a que vem depois dela no alfabeto (olátorna-seifmmp).
Este sistema é um pouco mais complicado e não tem necessariamente nenhuma lógica. Em vez disso, existe uma tabela estabelecida que pode ser consultada pelo algoritmo, que diz, por exemplo, queh3torna-sejb,s8torna-se9f,DJtorna-se62e assim por diante. Após esta etapa, digamos que a tabela pré-determinada nos dê:
jb | n3 | kf | n2 |
9f | jj | 1h | js |
74 | o que | 0d | 18 |
hs | 17 | d6 | pixels |
Mudar linhas
Shift rows é um nome direto e esta etapa é essencialmente o que você esperaria. A segunda linha é movida um espaço para a esquerda, a terceira linha é movida dois espaços para a esquerda e a quarta linha é movida três espaços para a esquerda. Isso nos dá:
jb | n3 | kf | n2 |
jj | 1h | js | 9f |
0d | 18 | 74 | o que |
pixels | hs | 17 | d6 |
Misturar colunas
Esta etapa é um pouco complicada de explicar. Para eliminar a maior parte da matemática e simplificar as coisas, digamos apenas que cada coluna tem uma equação matemática aplicada a ela para difundi-la ainda mais. Digamos que a operação nos dê este resultado:
eu | j4 | 2n | e |
83 | 28 | o | 9f |
9w | xm | 3 litros | m4 |
5b | a9 | cj | obs: |
Adicionar chave redonda (novamente)
Lembra daquelas chaves redondas que fizemos no início, usando nossa chave inicial e a programação de chaves de Rijndael? Bem, é aqui que começamos a usá-los. Pegamos o resultado de nossas colunas mistas e adicionamos a chave da primeira rodada que derivamos:
eu | j4 | 2n | e |
83 | 28 | o | 9f |
9w | xm | 3 litros | m4 |
5b | a9 | cj | obs: |
+
14 | 29 | 1h | s5 |
h9 | 9f | st | 9f |
gt | 2h | sede | 73 |
ks | DJ | df | hb |
Digamos que esta operação nos dê o seguinte resultado:
9d | 5b | 28 | SF |
eu | df | alta frequência | 3b |
9t | 28 | HP | 8f |
62 | 7d | quinze | ah |
Muitas mais rodadas…
Se você pensou que era isso, não estamos nem perto. Após a adição da última chave de rodada, ela volta para a etapa de substituição de bytes, onde cada valor é alterado de acordo com uma tabela pré-determinada. Feito isso, volte a mudar as linhas e mover cada linha para a esquerda em um, dois ou três espaços. Em seguida, ele passa pela equação de colunas mistas novamente. Depois disso, outra chave redonda é adicionada.
Também não para por aí. No início foi mencionado queAES tem tamanhos de chave de 128, 192 ou 256 bits.Quando uma chave de 128 bits é usada, há nove dessas rodadas. Quando uma chave de 192 bits é usada, há 11. Quando uma chave de 256 bits é usada, há 13. Assim, os dados passam pela substituição de bytes, deslocam linhas, misturam colunas e arredondam etapas de chave até treze vezes cada, sendo alterado em todas as fases.
Após essas nove, 11 ou 13 rodadas, há uma rodada adicional em que os dados são processados apenas pela substituição de bytes, deslocamento de linhas e adição de etapas de chave de rodada, masnãoa etapa de misturar colunas. A etapa de mixar colunas é eliminada porque, neste estágio, estaria apenas consumindo poder de processamento sem alterar os dados, o que tornaria o método de criptografia menos eficiente.
Para deixar as coisas mais claras, todo o processo de criptografia AES é:
Expansão de chave
Adicionar chave redonda
Substituição de bytes
Mudar linhas
Misturar colunas
Adicionar chave redonda
x 9, 11 ou 13 vezes, dependendo se a chave é de 128, 192 ou 256 bits
Substituição de bytes
Mudar linhas
Adicionar chave redonda
Depois que os dados passarem por esse processo complexo, seu original“me compre algumas batatas fritas, por favor”sai parecendo algo como“ok23b8a0i3j 293uivnfqf98vs87a”. Parece uma sequência de caracteres completamente aleatória, mas como você pode ver nesses exemplos, na verdade é o resultado de muitas operações matemáticas diferentes aplicadas a ela repetidas vezes.
Qual é o objetivo de cada uma dessas etapas?
Muitas coisas acontecem quando nossos dados são criptografados e é importante entender o porquê. Chaveexpansão é um ponto críticopasso, porque nos dá as chaves para as rodadas posteriores. Caso contrário, a mesma chave seria adicionada em cada rodada, o que tornaria o AES mais fácil de quebrar. Na primeira rodada, a chave inicial é adicionada para iniciar a alteração do texto simples.
Oetapa de substituição de bytes, onde cada um dos pontos de dados é alterado de acordo com uma tabela predeterminada,também desempenha um papel essencial. Altera os dados de forma não linear, de forma a confundir as informações. A confusão é um processo que ajuda a ocultar a relação entre os dados criptografados e a mensagem original.
Mudar linhas também é crítico, realizando o que é conhecido como difusão. Na criptografia, difusão significa essencialmente transpor os dados para adicionar complicações. Ao deslocar as linhas, os dados são movidos de sua posição original, ajudando ainda mais a obscurecê-los.Misturar colunasatua de maneira semelhante, alterando os dados verticalmente em vez de horizontalmente.
No final de uma rodada, uma nova chave de rodada derivada da chave inicial é adicionada. Isso adiciona maior confusão aos dados.
Por que há tantas rodadas?
Os processos deadicionando chaves redondas,substituição de bytes,mudando de linhaecolunas de misturaaltera os dados, mas ainda pode ser quebrado pela criptoanálise, que é uma forma de estudar o algoritmo criptográfico para quebrá-lo.
Ataques de atalhosão um dosprincipais ameaças. Esses são ataques que podem quebrar a criptografia com menos esforço do que a força bruta. Quando o AES estava sendo projetado, foram encontrados ataques de atalho em até seis rodadas de seu processo. Por causa disso, quatro rodadas extras foram adicionadas para o mínimo deAES de 128 bits como margem de segurança. As 10 rodadas resultantes dão ao método de criptografia espaço suficiente para evitar ataques de atalho sob as técnicas e tecnologias atuais.
Por que não adicionamos mais rodadas para reforçar a segurança?
Com a maioria das coisas em segurança, é necessário que haja umcompromisso entre pura força defensiva, usabilidade e desempenho. Se você colocar dez portas de aço com fechaduras em cada uma das entradas de sua casa, certamente a tornará mais segura. Também levaria um tempo excessivo para entrar e sair, e é por isso que nunca vemos ninguém fazendo isso.
É a mesma coisa quando se trata de criptografia. Poderíamos torná-lo mais seguro adicionando mais rodadas, mas também seria mais lento e muito menos eficiente.As 10ª, 12ª e 14ª rodadas do AES foram definidas porque proporcionam um bom compromissoentre esses aspectos concorrentes, pelo menos no cenário tecnológico atual.
Descriptografando AES
Se você conseguiu entender o processo de criptografia explicado acima, a descriptografia é relativamente simples. Para voltar do texto cifrado ao texto simples da mensagem original, tudo é feito ao contrário.
Se começarmos com nosso resultado criptografado de“ok23b8a0i3j 293uivnfqf98vs87a”eaplique o inverso de cada etapa de criptografia, ele começa com a chave de rodada inversa, depois as linhas de deslocamento inverso e a substituição inversa de bytes, antes de passar para o inverso das 9, 11 ou 13 rodadas.Se parece com isso:
“ok23b8a0i3j 293uivnfqf98vs87a”
Chave redonda de adição inversa
Linhas de deslocamento inverso
Substituição inversa de bytes
Chave redonda de adição inversa
Colunas de mixagem inversa
Linhas de deslocamento inverso
Substituição inversa de bytes
x 9, 11 ou 13 vezes, dependendo se a chave é 128.192 ou 256 bits
Chave redonda de adição inversa
Após este processo de descriptografia, voltamos a ter nossa mensagem original:“me compre algumas batatas fritas, por favor”
AES de 128 x 192 x 256 bits
AES tem três comprimentos de chave diferentes. A principal diferença é o número de rodadas pelas quais os dados passam no processo de criptografia, 10, 12 e 14 respectivamente. Em essência,192 bitse256 bitsprovidencie ummaior margem de segurançaque128 bits.
No cenário tecnológico atual,AES de 128 bitsé suficiente para a maioria dos propósitos práticos. Dados altamente confidenciais manipulados por pessoas com nível de ameaça extremo, comoDocumentos MUITO SECRETOScontrolado pelos militares, provavelmente deveria ser processado com qualquer192ouAES de 256 bits.
Se você é paranóico, talvez prefira usar192ou256 bitscriptografia sempre que possível. Isso é bom se facilitar o sono à noite, mas na verdade não é necessário na maioria das situações. Também tem seus custos, com as quatro rodadas extras deCriptografia de 256 bitstornando-o cerca de 40% menos eficiente.
Problemas de segurança AES
Os criptógrafos estão constantemente investigando os pontos fracos do AES, tentando criar novas técnicas e aproveitando a tecnologia que surge em seu caminho. Isto é essencial, porque se não fosse exaustivamente testado por académicos, então os criminosos ou os Estados-nação poderiam eventualmente encontrar uma forma de quebrá-lo sem que o resto do mundo soubesse. Até agora, os pesquisadores descobriram apenas rupturas teóricas e ataques de canal lateral.
Ataque de chave relacionada
Em 2009, uma série de ataques de chaves relacionadas foram descobertos. Trata-se de um tipo de criptoanálise que envolve a observação de como uma cifra opera sob diferentes chaves. Os ataques de chaves relacionadas que os pesquisadores descobriram não são uma grande preocupação; eles só são possíveis contra protocolos que não são implementados corretamente.
Ataque diferenciador de chave conhecida
Novamente em 2009, houve um ataque diferenciador de chave conhecida contra uma versão de oito rodadas do AES-128. Esses ataques utilizam uma chave já conhecida para descobrir a estrutura inerente da cifra. Como este ataque foi apenas contra uma versão de oito tiros, não há muito com que se preocupar para os usuários comuns do AES-128.
Ataque de canal lateral
Houve vários outros ataques teóricos, mas com a tecnologia atual eles ainda levariam bilhões de anos para serem quebrados. Isso significa queO próprio AES é essencialmente inquebrável no momento. Apesar disso, o AES ainda pode ser vulnerável se não for implementado adequadamente, no que é conhecido como ataque de canal lateral .
Ataques de canal lateralocorrem quando um sistema está vazando informações. O invasor escuta o som, as informações de tempo, as informações eletromagnéticas ou o consumo de energia para coletar inferências do algoritmo que podem então ser usadas para quebrá-lo.
Se o AES for implementado com cuidado, esses ataques podem ser evitados removendo a fonte do vazamento de dados ou garantindo que não haja nenhuma relação aparente entre os dados vazados e os processos algorítmicos.
A última fraqueza é mais geral do que específica do AES, mas os usuários precisam estar cientes de que o AES não torna seus dados seguros automaticamente.Até mesmo o AES-256 fica vulnerável se um invasor conseguir acessar a chave de um usuário. É por isso que o AES é apenas um aspecto da manutenção da segurança dos dados. O gerenciamento eficaz de senhas, firewalls, detecção de vírus e educação contra ataques de engenharia social são igualmente críticos em seus próprios aspectos.
AES é suficiente?
Na era atual, todos nós transmitimos muitos dos nossos dados confidenciais on-line,AES se tornou uma parte essencial da nossa segurança. Embora exista desde 2001, seu processo repetitivo de adição de chaves, substituição de bytes, deslocamento de linhas e mistura de colunas provou resistir ao teste do tempo.
Apesar dos atuais ataques teóricos e de quaisquer potenciais ataques de canal lateral,O próprio AES permanece seguro. É um excelente padrão para proteger a nossa comunicação eletrónica e pode ser aplicado em muitas situações onde informações sensíveis precisam de ser protegidas. A julgar pelo nível atual de tecnologia e técnicas de ataque,você deve se sentir confiante ao usá-lobem no futuro previsível.
Por que precisamos de criptografia?
Agora que analisamos os detalhes técnicos do AES, é importante discutir por que a criptografia é importante. No seu nível mais básico, a criptografia nos permite codificar informações para que somente aqueles que têm acesso à chave possam descriptografar os dados. Sem a chave, parece algo sem sentido. Com a chave, a confusão de caracteres aparentemente aleatórios volta à sua mensagem original.
A criptografia tem sido usada por governos e militares há milêniospara evitar que informações confidenciais caiam em mãos erradas. Ao longo dos anos, tem-se infiltrado cada vez mais na vida quotidiana, especialmente porque uma grande parte das nossas relações pessoais, sociais e profissionais migrou agora para o mundo online.
Basta pensar em todos osdados que você insere em seus dispositivos:senhas, dados bancários, seuMensagens privadase muito mais. Sem qualquer tipo de criptografia, essas informações seriam muito mais fáceis de serem interceptadas por qualquer pessoa, sejam eles criminosos, perseguidores malucos ou o governo.
Tanto denossas informações são valiosas ou confidenciais, então está claro que ele precisa ser protegido de forma que somente nós e aqueles que autorizamos possam acessá-lo.É por isso que precisamos de criptografia. Sem ele, o mundo online simplesmente não funcionaria. Seríamos completamente privados de qualquer privacidade e segurança, enviando as nossas vidas online para um caos absoluto.
Veja também:
Ferramenta geradora de senha
Recursos de criptografia: uma grande lista de ferramentas e guias
Códigos e cifras famosos ao longo da história
Estatísticas e fatos sobre segurança cibernética
“Hacking, cibercrime” por jaydeep_ licenciado sob CC0