Baixe o app para aproveitar ainda mais
Prévia do material em texto
O algoritmo AES foi criado numa proposta de substituir o DES, o NIST (National Institute of Standards and Technology dos E. U.) Foi Promovido uma competição que atendesse as seguintes especificações: · Algoritmo publicamente definido · Ser uma cifra simétrica de bloco · Projetado para que o tamanho da chave possa aumentar · Implementável tanto em hardware quanto em software · Disponibilizado livremente ou em acordo com termos ANSI onde foi julgado: · Segurança (esforço requerido para criptoanálise) · Eficiência computacional · Requisitos de memória · Adequação a hardware e software · Simplicidade O processo seletivo teve inicio em 1997 e terminou em 2000 com a vitória do algoritmo Rijndael escrito por Vincent Rijmen e Joan Daemen. Este algoritmo Criptografa e Descriptografa usando uma chave criptografada e blocos, ambos de tamanhos de 128, 192 ou 256 bits, lembrando que ele não foi considerado o mais seguro, e sim o mais eficiente. O objetivo de uma cifra bem sucedida é que seja impraticável se descobrir a mensagem original caso somente se possua a mensagem cifrada, mas não a chave de criptografia. Para isso, busca-se minimizar qualquer correlação visível entre a entrada e a saída, de modo que a mesma (e/ou a chave) possa ser deduzida simplesmente observando-se um número muito grande de cifras (ou de pares mensagem/cifra). Para isso, usa-se uma série de "rodadas" (ou rounds) em que os bytes sofrem transformações não lineares, porém reversíveis (i.e. para decifrar, simplesmente se executa o inverso das mesmas operações, em ordem inversa). Esse algoritmo ele tem algumas peculiaridades bem interessantes. Primeiro porque ele é o novo padrão de cifra de bloco do NIST, isso porque foi vencedor de um concurso promovido como dito a cima, por esse próprio órgão para substituição do DES. Além disso, temos algumas outras características dele em relação a chaves e tamanhos de bloco: · Originalmente operava com blocos de 128, 160, 192, 224 ou 256, mas foi determinado pelo governo que o algoritmo iria operar apenas em 128. · A chave também poderia ser de 128, 160, 192, 224 ou 256, mas foi estabelecido que a chave poderia ter como valores: 128, 192 e 256. Depois desse breve histórico, vejamos como ele opera: Principio de funcionamento AES: · Existe uma matriz com os bits de entrada. · Faz-se substituição por S-box. (Confusão) · ShiftRows: Gera-se deslocamento nas linhas da matriz. Permutação · MixColumns: Combinação das colunas. Permutação · AddRoundKey: Função XOR. Função A cada quantidade de passos é usado e contabilizado uma quantidade de cave de bits tais como: · 10 passos Chave128 bits. · 12 passos Chave192 bits. · 14 passos Chave 256 bits Como funciona o AES? O AES é um algoritmo que trabalha byte a byte, porém é considerada uma cifra de bloco preferencialmente. Vejamos como ele opera: Conversão dos dados em uma matriz. Pois bem, para começar o AES recebe os dados da de algum algoritmo de cifração e então os organiza em uma matriz de 4x4, de forma que serão acondicionados 16 bytes dentro dessa matriz. Não havendo quantidade suficiente, haverá o padding (termo utilizado quando precisamos completar o bloco, por exemplo se não tivermos 16 Bytes, mas sim 12 teremos de completar com Zeros até chegarmos em 16 Bytes.). Primeira rodada Feita a conversão dos dados na matriz de operação (confusão), então AES irá realizar a primeira rodada de cifração. Uma simples operação XOR com a Chave da primeira rodada. A Expansão. De acordo com o tamanho da chave, lembrem-se o AES deriva-se do RINJDAEL, que possui chaves de 128, 160, 192, 224 e 256 bits, que por padrão do Governo americano será de 128, 192 e 256 bits, temos a quantidades de rodadas de cifração. Dessa forma, 128 bits nos trarão 9 rodadas. Para isso precisamos expandir a chave inicial. Sendo assim vejamos: 1ª fase – Colunas · Para a expansão, então, iremos utilizar a última coluna da última chave utilizada. Por exemplo: se fizermos a segunda chave utilizaremos a última coluna da primeira chave. · Iremos trazer o último byte dessa coluna para a primeira posição. · Feita essa troca, iremos inserir essa coluna em um s-box. Teremos nossa primeira substituição. 2ª fase – XOR · Feita a s-box, temos agora que realizar uma XOR com uma constante. · Agora de posse dessa nova coluna, temos que realizar mais um XOR agora com a primeira coluna da chave anterior. No nosso exemplo, a primeira coluna. · Temos pronta a primeira coluna da próxima chave. 3ª fase – Outras colunas · De posse da primeira coluna da próxima chave, agora temos de descobrir as outras colunas. · Faremos da seguinte forma: coluna anterior XOR coluna correspondente na chave anterior. Por exemplo: para definirmos a 3ª coluna, ela será a 2ª coluna XOR 3ª coluna da chave anterior. Rodadas · Após definirmos as chaves, iremos a seguir realizar as rodadas necessárias para o tamanho da chave. Confusão e difusão. · Após as rodadas iremos agora, de posse do novo texto quase cifrado, aplicar mais uma vez a s-box. Essa ação é necessária para aplicarmos a confusão na nossa cifração. · Feitas as s-box, iremos agora movimentar nossa linhas para aplicar a difusão. Faremos assim, a primeira linha desloca-se um byte para a esquerda e o que sobrar irá par ao final da linha. A segunda irá deslocar-se 2 posições a esquerda e os dois que sobrarem para o final da linha. Faremos assim até a quarta linha, sempre aumentando o numero de bytes que voltam para o final da linha. · Para terminar nossa difusão, iremos misturar as colunas. Mais uma chave · Ao final de cada rodada, iremos aplicar a chave da próxima rodada no nosso texto atual. Só pra terminar · Terminando Iremos misturar as colunas mais uma vez para aumentar a segurança. Lembrando que isso não será feito na ultima rodada. Comparação entre AES e outros algoritmos já conhecidos Algoritmo Tamanho da Chave No de Rodadas Operações Matemáticas AES 128, 192 ou 256 bits 10, 12, 14 XOR, S-Boxes fixas DES 56 bits 16 XOR, S-Boxes fixas 3DES 112 ou 168 bits 48 XOR, S-Boxes fixas IDEA 128 bits 8 XOR, adição, multiplicação Blowfish Variável ate 448 bits 16 XOR, S-Boxes variáveis, adição RC5 Variável ate 2048 bits Variável ate 255 Adição, Subtração, XOR, rotação CAST-128 40 ate 128 bits 16 Adição, subtração, XOR, rotação, S-Boxes fixas Vantagens As vantagens serão apresentadas relativas à: Implementação · Pode rodar bem rapidamente em relação a outros algoritmos. · Pode ser implementado em um SmartCard usando pouco código e memória. · Algumas funções podem ser feitas em paralelo, assim tornando o processo mais rápido. Isto é, pode se fazer a substituição dos bytes usando a S-box, vários de uma vez, e não seqüencialmente, e ainda, a expansão da chave pode ser feita enquanto se executa as funções que não dependem dela como a ByteSub() ou ShiftRow(). · Como a encriptação não emprega operações aritméticas, não exige muito poder de processamento. Simplicidade do projeto · Não usa elementos já previamente processados, por ex. a 9a rodada não necessita de nenhum elemento das rodadas anteriores a não ser única e exclusivamente do State da 8a . · O algoritmo não baseia sua segurança ou parte dela em interações obscuras e não bem compreendidas entre operações aritméticas, não permitindo assim, espaço para esconder um trap-door Possíveis modificações: · O projeto permite a especificação de variantes com o comprimento do bloco e da chave, ambos variando de 32 em 32 bits no intervalo de 128 até 256 bits. · Embora o número das rodadas de seja fixo na especificação, pode ser modificado como um parâmetro caso haja problemas de segurança. Desvantagens As limitações ficam por conta da inversa · A inversa é menos recomendável de ser implementada num SmartCard, pois precisa de mais código e mais processamento. Mesmo assim, se comparado, a outros algoritmos ela bem rápida. · Em software, a encriptação e sua inversa empregam códigos diferentes e/ou tabelas.· Em hardware a inversa pode usar apenas uma parte do circuito usado no processo de encriptação. Bibliografia https://www.passeidireto.com/ https://www.google.com.br/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=Criptografia+aes+explicativo+ppt http://pt.stackoverflow.com/questions/43492/como-funciona-o-algoritmo-de-criptografia-aes
Compartilhar