Quando se trata de segurança cibernética, o AES é uma daquelas siglas que você vê surgindo em todos os lugares. Isso se tornou o padrão global de criptografia e é usado para manter uma quantidade significativa de nossas comunicações seguras.
O padrão avançado de criptografia (AES) é uma forma rápida e segura de criptografia que mantém os olhos curiosos longe de nossos dados. Vemos isso em aplicativos de mensagens como Whatsapp e Sinal, programas como VeraCrypt e WinZip, em uma variedade de hardware e uma variedade de outras tecnologias que usamos o tempo todo.
Por que a AES foi desenvolvida?
Os primeiros tipos de criptografia eram simples, usando técnicas como mudar cada letra de uma frase para aquela que vem depois no alfabeto. Sob esse tipo de código, a frase anterior se torna:
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 espalhados na página, não seria difícil descobrir um pouco.
Como as pessoas ficaram melhores em decifrar códigos, a criptografia teve que se tornar mais sofisticada para que o mensagens podem ser mantido em segredo. Essa corrida armamentista, com métodos cada vez mais sofisticados, enquanto outros se empenhavam em quebrá-los, levou a técnicas cada vez mais complicadas., como a máquina Enigma inventada pelos alemães na Primeira Guerra Mundial.
O aumento da comunicação eletrônica também tem sido um benefício para a criptografia. Na década de 1970, o 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 confidenciais do governo. O resultado de sua pesquisa foi adotar um algoritmo de chave simétrica desenvolvido na IBM, que agora é chamado de Padrão de Criptografia de Dados (DES). O DES serviu a seu propósito relativamente bem nas próximas décadas, mas nos anos noventa, algumas preocupações de segurança começaram a surgir.
O DES possui apenas um Chave de 56 bits (comparado ao máximo de 256 bits no AES, mas abordaremos isso mais tarde). Para melhorar a tecnologia e os métodos de cracking, os ataques contra ele começaram a se tornar mais práticos. A primeira mensagem criptografada do DES a ser aberta foi em 1997, pelo Projeto DESCHALL em um Competição patrocinada pela RSA Security.
No ano seguinte, a Electronic Frontier Foundation (EFF) construiu um cracker DES que poderia forçar uma chave bruta em pouco mais de dois dias. Em 1999, o FEP e o primeiro coletivo de computação da internet, distribut.net, colaborou para reduzir esse tempo para menos de 24 horas.
Embora esses ataques fossem caros e pouco práticos de montar, eles começaram a mostrar que o reinado do DES como o padrão inicial de criptografia estava chegando ao fim. Com poder computacional aumentando exponencialmente de acordo com Lei de Moore, era apenas uma questão de tempo até que o DES não pudesse mais ser invocado.
O governo dos EUA partiu em uma missão de cinco anos para avaliar uma variedade de métodos diferentes de criptografia, a fim de encontrar um novo padrão que seria seguro. o Instituto Nacional de Padrões e Tecnologia (NIST) anunciou que finalmente fez sua seleção no final de 2001.
Sua escolha foi um subconjunto específico da cifra de bloco de Rijndael, com um tamanho fixo de bloco 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 o Padrão federal dos EUA e rapidamente se tornou o algoritmo de criptografia padrão também para o resto do mundo.
Palavras-chave: Um guia para iniciantes sobre criptografia
Por que essa cifra foi escolhida para a AES?
Com qualquer tipo de criptografia, sempre existem compensações. Você poderia facilmente ter um padrão exponencialmente mais seguro que o AES, mas levaria muito tempo para criptografar e descriptografar para ter qualquer uso prático. No final, o A cifra de bloco de Rijndael foi escolhida pelo NIST para suas habilidades gerais, incluindo desempenho em hardware e software, facilidade de implementação e nível de segurança.
Como o AES funciona?
Esteja ciente de que o exemplo a seguir é uma simplificação, mas fornece uma idéia geral de como o AES funciona. Infelizmente, não há café suficiente no mundo para fazer com que a maioria das pessoas queira passar pelos aspectos mais complicados da AES. Normalmente, o processo é realizado em binário e há muito mais matemática.
Primeiro, os dados são divididos em blocos.
Sob esse método de criptografia, a primeira coisa que acontece é que seu texto sem formatação (que é a informação que você deseja criptografar) é separado em blocos. O tamanho do bloco do AES é de 128 bits, portanto separa os dados em uma coluna de quatro por quatro de dezesseis bytes (há oito bits em um byte e 16 x 8 = 128).
Se sua mensagem foi “compre algumas batatas fritas, por favor”, o primeiro bloco será assim:
b | m | o | p |
você | e | m | o |
y | e | t | |
s | uma |
Ignoraremos o restante da mensagem deste exemplo e apenas focaremos no que acontece com o primeiro bloco à medida que ele é criptografado. O “… para fichas, por favor” normalmente seria apenas adicionado ao próximo bloco.
Expansão chave
A expansão de chave envolve pegar a chave inicial e usá-la para criar uma série de outras chaves para cada rodada do processo de criptografia. Essas novas chaves redondas de 128 bits são derivadas da programação de chaves de Rijndael, que é essencialmente uma maneira simples e rápida de produzir novas cifras de chave. Se a chave inicial era “chaves são chatas1”:
k | Eu | ||
e | uma | b | n |
y | r | o | g |
s | e | r | 1 |
Cada uma das novas chaves poderá se parecer com isso assim que a agenda de chaves de Rijndael for usada:
14 | 29 | 1h | s5 |
h9 | 9f | st | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Embora pareçam caracteres aleatórios (e o exemplo acima seja apenas composto), 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 de nossa mensagem:
b | m | o | p |
você | e | m | o |
y | e | t | |
s | uma |
+
k | Eu | ||
e | uma | b | n |
y | r | o | g |
s | e | r | 1 |
Isso é feito com uma cifra XOR, que é um algoritmo de criptografia aditiva. Embora pareça que você não pode realmente adicionar essas coisas, lembre-se de que isso é realmente feito em binário. Os personagens são apenas um substituto para tentar tornar as coisas mais fáceis de entender. Digamos que esta operação matemática nos dê um resultado de:
h3 | jd | zu | 7s |
s8 | 7d | 26 | 2n |
dj | 4b | 9d | 9c |
74 | el | 2h | hg |
Bytes substitutos
Nesta etapa, cada byte é substituído de acordo com uma tabela predeterminada. É como o exemplo do início do artigo, em que a frase foi codificada alterando cada letra para a que vem depois no alfabeto (Olá torna-se ifmmp).
Este sistema é um pouco mais complicado e não tem necessariamente nenhuma lógica. Em vez disso, existe uma tabela estabelecida que pode ser pesquisada pelo algoritmo, que diz, por exemplo, que h3 torna-se jb, s8 torna-se 9f, dj torna-se 62 e assim por diante. Após esta etapa, digamos que a tabela predeterminada nos dê:
jb | n3 | kf | n2 |
9f | jj | 1h | js |
74 | wh | 0d | 18 |
hs | 17 | d6 | px |
Deslocar linhas
Shift lines é um nome simples, 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 | wh |
px | hs | 17 | d6 |
Misturar colunas
Este passo é um pouco complicado de explicar. Para cortar a maioria das matemáticas e simplificar as coisas, digamos que cada coluna tem uma equação matemática aplicada a ela para difundir ainda mais. Digamos que a operação nos dê este resultado:
ls | j4 | 2n | ma |
83 | 28. | ke | 9f |
9w | xm | 3l | m4 |
5b | a9 | cj | ps |
Adicionar chave redonda (novamente)
Lembra das chaves redondas que criamos 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:
ls | j4 | 2n | ma |
83 | 28. | ke | 9f |
9w | xm | 3l | m4 |
5b | a9 | cj | ps |
+
14 | 29 | 1h | s5 |
h9 | 9f | st | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Digamos que esta operação nos dê o seguinte resultado:
9d | 5b | 28. | sf |
ls | df | hf | 3b |
9t | 28. | hp | 8f |
62 | 7d | 15 | ah |
Muito mais rodadas…
Se você pensou que era isso, nem chegamos perto. Depois que a última tecla redonda foi adicionada, ela volta ao estágio de substituição de bytes, onde cada valor é alterado de acordo com uma tabela predeterminada. Feito isso, volta a mudar de linha e movendo cada linha para a esquerda por um, dois ou três espaços. Em seguida, ele passa pela equação das colunas de mixagem novamente. Depois disso, outra chave redonda é adicionada.
Também não para por aí. No início, foi mencionado que O AES possui 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. Portanto, os dados passam pela substituição de bytes, deslocam linhas, misturam colunas e redefinem etapas de treze vezes cada uma, sendo alterado em todas as fases.
Após essas nove, 11 ou 13 rodadas, há uma rodada adicional na qual os dados são processados apenas pela substituição de bytes, deslocam as linhas e adicionam etapas-chave redondas, mas não as colunas de mixagem. A etapa das colunas de mixagem é eliminada porque, nesse estágio, ela consumiria apenas o poder de processamento sem alterar os dados, o que tornaria o método de criptografia menos eficiente.
Para tornar as coisas mais claras, todo o processo de criptografia AES é:
Expansão chave
Adicionar chave redonda
Substituição de bytes
Deslocar 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
Deslocar linhas
Adicionar chave redonda
Depois que os dados passam por esse processo complexo, o seu original “Me compre 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 sendo aplicadas a ela repetidamente.
Qual é o objetivo de cada uma dessas etapas?
Muitas coisas acontecem quando nossos dados são criptografados e é importante entender o porquê. Chave expansão é uma crítica passo, porque nos dá nossas 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 sem formatação.
o etapa 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 maneira não linear, para confundir as informações. Confusão é um processo que ajuda a ocultar o relacionamento 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 mudar as linhas, os dados são movidos de sua posição original, ajudando a obscurecê-los. Misturar colunas age de maneira semelhante, alterando os dados verticalmente, e não 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 existem tantas rodadas?
Os processos de adicionando chaves redondas, substituição de bytes, linhas de deslocamento e colunas de mistura altera os dados, mas ainda podem ser decifrados por análise criptográfica, que é uma maneira de estudar o algoritmo criptográfico para quebrá-lo.
Ataques de atalho são um dos principais 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 por até seis rodadas de processo. Por esse motivo, quatro rodadas extras foram adicionadas pelo mínimo de AES de 128 bits como uma margem de segurança. As 10 rodadas resultantes fornecem ao método de criptografia espaço suficiente para as pernas para evitar ataques de atalho nas 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, é preciso haver um compromisso entre força defensiva pura, usabilidade e desempenho. Se você colocar dez portas de aço com travas em cada um dos pontos de entrada da sua casa, isso certamente a tornará mais segura. Também levaria uma quantidade razoável de tempo para entrar e sair, e é por isso que nunca vemos ninguém fazer isso.
É o mesmo 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 rodadas 10, 12 e 14 da AES foram resolvidas porque proporcionam um bom compromisso entre 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 para o texto simples da mensagem original, tudo é feito ao contrário.
Se começarmos com nosso resultado criptografado de “Ok23b8a0i3j 293uivnfqf98vs87a” e aplicar o inverso de cada etapa de criptografia, começa com a tecla redonda inversa, depois as linhas de deslocamento inverso e a substituição inversa de bytes, antes de avançar para o inverso das rodadas 9, 11 ou 13. Se parece com isso:
“Ok23b8a0i3j 293uivnfqf98vs87a”
Chave inversa de adição redonda
Linhas de turno inverso
Substituição inversa de bytes
Chave inversa de adição redonda
Colunas de mistura inversa
Linhas de turno inverso
Substituição inversa de bytes
x 9, 11 ou 13 vezes, dependendo se a chave é 128.192 ou 256 bits
Chave inversa de adição redonda
Após esse processo de descriptografia, terminamos com nossa mensagem original novamente: “Me compre batatas fritas por favor”
128 vs 192 vs AES de 256 bits
O AES possui três comprimentos de chave diferentes. A principal diferença é o número de rodadas que os dados passam no processo de criptografia, 10, 12 e 14, respectivamente. Em essência, 192 bits e 256 bits providencie um maior margem de segurança do que 128 bits.
No atual cenário tecnológico, AES de 128 bits é suficiente para fins mais práticos. Dados altamente sensíveis manipulados por pessoas com um nível extremo de ameaça, como Documentos MUITO SECRETOS controlado pelos militares, provavelmente deve ser processado com 192 ou AES de 256 bits.
Se você é paranóico, pode preferir usar 192 ou 256 bits criptografia sempre que possível. Isso é bom se facilitar o sono noturno, mas na verdade não é necessário na maioria das situações. Também não é sem seus custos, com as quatro rodadas extras de Criptografia de 256 bits tornando-o cerca de 40% menos eficiente.
Problemas de segurança AES
Os criptografadores estão constantemente pesquisando pontos fracos no AES, tentando criar novas técnicas e aproveitando a tecnologia que aparece no caminho. Isso é essencial, porque, se não estivesse sendo exaustivamente testado por acadêmicos, então criminosos ou estados-nações poderiam encontrar uma maneira de resolver isso sem que o resto do mundo soubesse. Até agora, os pesquisadores apenas descobriram quebras teóricas e ataques de canal lateral.
Ataque de chave relacionada
Em 2009, uma série de ataques relacionados a chaves foi descoberta. Esse é um tipo de análise criptográfica que envolve a observação de como uma cifra opera sob chaves diferentes. Os ataques com chaves relacionadas que os pesquisadores descobriram não são de grande preocupação; eles só são possíveis contra protocolos que não foram implementados corretamente.
Ataque distintivo de chave conhecida
Novamente em 2009, houve um ataque distinto de chave conhecida contra uma versão de oito rodadas do AES-128. Esses ataques usam uma chave que já é conhecida para descobrir a estrutura inerente da cifra. Como esse ataque foi apenas contra uma versão de oito rodadas, não é muito preocupante 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 quebrar. Isso significa que AES em si é essencialmente inquebrável no momento. Apesar disso, o AES ainda pode ser vulnerável se não tiver sido implementado adequadamente, no que é conhecido como ataque de canal lateral.
Ataques de canal lateral ocorre quando um sistema está vazando informações. O atacante ouve 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 ser usadas para quebrá-lo..
Se o AES for implementado com cuidado, esses ataques poderão ser evitados removendo a fonte do vazamento de dados ou garantindo que não haja relação aparente entre os dados vazados e os processos algorítmicos.
O último ponto fraco é mais geral do que o específico da AES, mas os usuários precisam estar cientes de que a AES não torna automaticamente seus dados seguros. Até o AES-256 fica vulnerável se um invasor puder acessar a chave de um usuário. É por isso que o AES é apenas um aspecto de manter os dados seguros. Gerenciamento eficaz de senhas, firewalls, detecção de vírus e educação contra ataques de engenharia social são igualmente críticos em suas próprias maneiras.
AES é suficiente?
Na era atual, todos transmitimos muitos de nossos dados sensíveis on-line, A AES se tornou uma parte essencial de nossa segurança. Embora exista desde 2001, seu processo repetitivo de adicionar chaves, substituição de bytes, alterar linhas e misturar colunas provou resistir ao teste do tempo.
Apesar dos ataques teóricos atuais e de possíveis ataques de canal lateral, AES em si permanece segura. É um excelente padrão para proteger nossa comunicação eletrônica e pode ser aplicado em muitas situações em que informações confidenciais precisam ser protegidas. A julgar pelo nível atual de tecnologia e técnicas de ataque, você deve se sentir confiante em usá-lo bem no futuro próximo.
Por que precisamos de criptografia?
Agora que examinamos os detalhes técnicos do AES, é importante discutir por que a criptografia é importante. No 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 bobagem. Com a tecla, a mistura de caracteres aparentemente aleatórios se transforma em sua mensagem original.
A criptografia tem sido usada por governos e militares por milênios para impedir que informações confidenciais caiam nas mãos erradas. Ao longo dos anos, ele se insinuou cada vez mais na vida cotidiana, especialmente porque uma parcela tão grande de nossas relações pessoais, sociais e de trabalho agora migrou para o mundo online.
Basta pensar em todos os dados inseridos em seus dispositivos: senhas, dados bancários, seu Mensagens privadas e muito mais. Sem nenhum tipo de criptografia, essas informações seriam muito mais fáceis para qualquer pessoa interceptar, sejam criminosos, perseguidores malucos ou o governo.
Muito do nossa informação é valiosa ou sensível, então fica claro que ele precisa ser protegido de forma que somente nós mesmos e aqueles que autorizamos possamos acessá-lo. É por isso que precisamos de criptografia. Sem ele, o mundo online simplesmente não funcionaria. Seríamos despojados de qualquer privacidade e segurança, enviando nossas vidas on-line ao caos absoluto.
Veja também:
Ferramenta geradora de senha
Recursos de criptografia: uma grande lista de ferramentas e guias
Códigos e cifras famosos através da história
Estatísticas de segurança cibernética & fatos
“Hacking, cibercrime” por jaydeep_ licenciado sob CC0
ção em 2001, escolhendo o AES como o novo padrão de criptografia. Desde então, o AES se tornou amplamente utilizado em todo o mundo, protegendo nossas comunicações e dados pessoais de olhos curiosos e hackers mal-intencionados. É importante lembrar que, embora o AES seja uma forma eficaz de criptografia, nenhum sistema é 100% seguro e sempre devemos estar vigilantes em relação à nossa segurança cibernética.