















































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Neste documento, discutimos aspectos básicos do gerenciamento de chaves e estudamos com detalhes os principais protocolos criptográficos para autenticação e estabelecimento de chaves criptográficas entre duas ou mais entidades. Esses protocolos formam a base para a maioria dos sistemas de segurança. O objetivo da inclusão da chave k no processo é dar o poder de transformar m em c apenas a quem conhece k, sendo este objetivo prover sigilo na transmissão de m. O documento aborda os sistemas simétricos e assimétricos, grupos matemáticos e algoritmos de encriptação em fluxo.
O que você vai aprender
Tipologia: Notas de aula
Compartilhado em 07/11/2022
4.6
(158)172 documentos
1 / 55
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Abstract
This text gives an overview of some of the most important cryptographic techniques in use today, which are extensively used in applications having central security requirements such as secrecy and authentication. We begin by motivating the study of Cryptography and then describe the prevailing secret- and public-key algorithms for encryption and digital signatures, as well as recent proposals for cryptographic hash functions. Next, we discuss aspects of key management and study several protocols for entity authentication and key establishment, starting points for most applications. We conclude with a brief discussion of two topics which have spurred a lot of research: one, Quantum Cryptography, is a new paradigm for key establishment which uses Quantum Physics laws; the other, Bilinear Pairings, is a technique that has been used to simplify and sometimes reinvent known areas such as Identity-based Cryptography.
Resumo
Este texto faz um apanhado de algumas das técnicas criptográficas modernas mais importantes, que são empregadas em aplicações com requisitos fundamentais de segurança, tais como sigilo e au- tenticação. Iniciamos motivando o estudo da Criptografia e, a seguir, apresentamos os principais algoritmos criptográficos para encriptação e assinaturas digitais, assim como propostas recentes de métodos para resumos criptográficos. A seguir discutimos aspectos do gerenciamento de chaves e estudamos, com algum detalhe, os principais protocolos criptográficos para autenticação e estabeleci- mento de chaves criptográficas entre duas ou mais entidades, que formam a base para a maioria dos protocolos de segurança. Finalizamos com uma breve discussão de dois tópicos que têm suscitado muito interesse: um, a Criptografia Quântica, um novo paradigma para estabelecimento de chaves que usa as leis da Física Quântica; o outro, Emparelhamentos Bilineares, uma técnica que tem sido usada para simplificar e até mesmo reinventar áreas conhecidas, como a Criptografia Baseada em Identidades.
A Criptografia moderna se ocupa muito menos de sigilo do que há me- ros trinta anos atrás, quando justificava plenamente a etimologia da palavra criptografia, cuja origem grega significa escrita oculta. Hoje, técnicas criptográ- ficas são maciçamente empregadas na prevenção de incidentes de segurança.
R. Dahab e J. López
Aplicações e sistemas que tenham requisitos como sigilo, autenticação, inte- gridade, não-repúdio e anonimato empregam técnicas criptográficas em algum nível de sua arquitetura. O objetivo deste texto é dar uma visão panorâmica das técnicas criptográfi- cas atuais mais importantes para a consecução de requisitos fundamentais da segurança da informação, como sigilo , autenticação e integridade , dos quais dependem, direta ou indiretamente, outros requisitos de segurança. Por exem- plo, um requisito muito em voga é a disponibilidade de sistemas servidores, al- vos constantes de ataques de negação de serviço: embora os métodos usuais para tratamento e recuperação de incidentes de segurança não usem técnicas criptográficas, protocolos de autenticação podem prevenir danos pelo abuso do sistema por usuários mal-intencionados. O sigilo de mensagens, ou de identidades, pode ser necessário a uma aplicação (e.g. correio eletrônico, telefonia, mensageria em geral, compras com moeda eletrônica em que anonimato é desejável), ou auxiliar a consecução de outro requisito, como a autenticação. Por exemplo, quando um usuário faz um login , sua senha deve ser transmitida em sigilo, sob pena de sua captura e uso por um usuário não autorizado. Da mesma forma, a autenticação de certas propriedades de mensagens (e.g. sua integridade e origem) e de entidades (e.g. sua identidade) pode ser um fim em si — como na verificação de existência de virus em um programa ou no login de um usuário — ou pode ancorar a obtenção de outros fins como o estabelecimento de uma chave criptográfica de forma confiável entre duas entidades.
O nosso modelo básico de comunicação supõe duas entidades, Alice e Beto, trocando mensagens transmitidas num canal inseguro ; isto é, um canal passível de leitura e escrita por um intruso, Ivo. Os métodos de Ivo podem ser a simples escuta, um “grampo”, que chamamos de ataque passivo , ou até a modificação, repetição e injeção de mensagens com objetivos variados como, por exemplo, passar-se por Alice ou Beto para obter acesso a serviços não autorizados; esses são os chamados ataques ativos. Passivos ou ativos, es- ses ataques representam ameaça aos requisitos de segurança que discutimos acima. As técnicas criptográficas para prevenir tais ataques vêm de duas verten- tes, a simétrica e a assimétrica , usadas isoladamente ou em conjunto. Discuti- mos essas duas vertentes a seguir.
Sistemas criptográficos simétricos , ou criptossistemas simétricos , ou sim- plesmente sistemas simétricos , são baseados no modelo da Figura 3.1: Alice e Beto desejam trocar mensagens em sigilo; para isso, antes de transmitir uma mensagem m (o texto claro ) para Beto, Alice aplica uma função (ou algoritmo) de encriptação ENC k ( m ), que transforma m numa mensagem encriptada ou
R. Dahab e J. López
Como Ivo conhece a mensagem m ′^ na busca exaustiva, o ataque ao mo- delo é chamado de ataque do texto claro conhecido. Se somente c fosse co- nhecido, o ataque seria de texto encriptado somente. Se Ivo tiver acesso à função ENC k (.), por exemplo embutida em algum dispositivo, e puder produzir pares ( m ′, c ′) à sua escolha, o ataque é de texto claro escolhido. Finalmente, se Ivo tiver acesso à função DEC k (.) e puder produzir pares ( m ′, c ′) à sua escolha, o ataque é de texto encriptado escolhido. Claro que um sistema resistente a ataques de texto claro escolhido é mais forte que um sistema que resista ape- nas a ataques de texto claro conhecido, que, por sua vez, é mais forte que os que resistem apenas a ataques de texto encriptado somente. A ciência que se dedica a analisar algoritmos criptográficos em busca de falhas, ou de ”quebrar” tais algoritmos, é a Criptoanálise. O adjetivo simétrico, usado para qualificar o modelo da Figura 3.1, é bas- tante adequado. Tanto Alice quanto Beto são indistinguíveis no seu poder sobre a chave k : tudo que um puder encriptar ou decriptar o outro também pode. Um benefício dessa simetria é a confiança que Alice e Beto têm de que estão tro- cando mensagens sigilosas um com o outro, e não com Ivo; a isso chamamos de autenticação da origem das mensagens. De fato, Alice e Beto podem usar encriptação primordialmente com esse objetivo, como veremos na Seção 3.2. Por outro lado, não é possível atribuir a um ou a outro a autoria de uma men- sagem sem a ajuda de uma terceira parte confiável. Essa propriedade, da irretratabilidade , é exclusiva dos sistemas assimétricos. Outras denominações dos sistemas simétricos são sistemas de chaves se- cretas e sistemas de chaves simétricas. Daqui em diante usamos esses nomes indistintamente, favorecendo o que melhor se adequar ao contexto. Acrescen- tamos também os índices AB à chave k , para designar a chave kAB comparti- lhada de Alice e Beto.
Sistemas assimétricos usam o modelo da Figura 3.2, onde é evidente o fato de que as chaves de encriptação e decriptação são diferentes. Neste modelo, Alice aplica uma função de encriptação ENC eB ( m ), que transforma m numa mensagem encriptada c , sob a ação da chave eB. Ao receber c , Beto aplica a função de decriptação DEC dB ( c ), recuperando m. No caso de mensagens de Beto para Alice, as chaves usadas são: eA para encriptação e dA para decrip- tação. O leitor atento já deve ter inferido que a mudança do modelo vai além da notação. As chaves eB , dB são ambas de Beto. A primeira, eB , é a chave pública de Beto, distribuída e utilizada livremente. A segunda, dB , é de conhe- cimento exclusivo de Beto, sua chave privada. eB é utilizada para encriptação de mensagens para Beto e dB para decriptação dessas mensagens. O mesmo se aplica para Alice em relação a eA e dA. Conseqüências importantes nessas mudanças são:
Técnicas criptográficas modernas
Alice
Beto
deve necessariamente gerar o seu próprio par de chaves.
Técnicas criptográficas modernas
Definição 2 Um número inteiro p ≥ 2 é primo se é divisível somente por 1 e por ele mesmo.
Todos sabemos os primeiros números primos: 2 , 3 , 5 , 7 , 11 ,.... É um resultado bem conhecido da Teoria dos Números que existem infinitos números primos. Outro resultado diz que todo número inteiro n ≥ 2 pode ser escrito como um produto de potências de números primos; esse produto é a fatoração de n.
Definição 3 Sejam a , b dois números inteiros, não ambos nulos. O máximo divisor comum de a e b, denotado mdc( a , b ) , é o maior inteiro d que divide ambos a e b. Quando mdc( a , b ) = 1 , dizemos que a e b são primos entre si ou coprimos_._
Assim, mdc( 3 , 0 ) = 3 e mdc( 21 , 5 ) = 1. O Algoritmo 1, de Euclides, é o método mais popular para o cálculo do mdc.
Algoritmo 1 Cálculo do máximo divisor comum (Euclides)
ENTRADA: inteiros a , b , com a > 0 , b ≥ 0. SAÍDA: inteiro d , onde d = mdc( a , b ).
Aritmética modular
Neste texto fazemos uso intenso da aritmética modular, isto é, a aritmética usual de números inteiros, mas com resultados reduzidos módulo um número inteiro. Vamos ao que isso significa.
Definição 4 Sejam a , n números inteiros com n > 0_. O_ resto ou resíduo da divisão de a por n é o único inteiro r, com 0 ≤ r ≤ n − 1 , tal que a = qn + r para algum inteiro q, o quociente da divisão.
Por essa definição o resto da divisão de 7 por 3 é 1 (com quociente 2 ), e o resto da divisão de − 7 por 3 é 2 (com quociente − 3 ).
Definição 5 Para a , n números inteiros com n > 0 , a expressão a mod n é a redução de a módulo n, definida como o resto da divisão de a por n.
Portanto, 0 mod 5 = 0 e ( 3 − 8 ) mod 4 = −1 mod 4 = 3.
R. Dahab e J. López
Definição 6 Dado um inteiro n ≥ 1 , denotamos por Z n ao conjunto { 0 , 1 ,... , n − 1 } de resíduos módulo n, isto é dos restos possíveis de divisões de números inteiros por n.
Como todo número inteiro produz um resto ao ser dividido por n , Z n tem em si um representante para cada número inteiro. A próxima definição captura essa idéia.
Definição 7 Para a , b , n números inteiros com n > 0 , escrevemos a ≡ b (mod n ) , quando a mod n = b mod n. Dizemos que a e b são congruentes módulo n.
Assim, 0 ≡ 3 (mod 3) e 43 ≡ 1 (mod 2).
Definição 8 Para a , n números inteiros com n > 0 , o inverso aditivo de a módulo n é o inteiro b = − a mod n.; ou seja a + b ≡ 0 (mod n ). O inverso multiplicativo de a módulo n, se existir, é o único inteiro b, 1 ≤ b ≤ n − 1 , tal que ab ≡ 1 (mod n ). Denotamos o inverso multiplicativo de a módulo n por a −^1 mod n.
Portanto, o inverso aditivo de 4 módulo 7 é 3 e o inverso aditivo de 10 módulo 7 é 4. O inverso multiplicativo de 2 módulo 5 é 3 , o inverso multiplicativo de 4 módulo 5 é 4 e o inverso multiplicativo de 2 módulo 6 não existe. O Teorema a seguir especifica as condições para a existência de inversos multiplicativos.
Teorema 1 Para a , n números inteiros com n > 0 , o inverso multiplicativo de a módulo n existe se e somente se mdc( a , n ) = 1_._
Dados a , n , a extensão do Algoritmo de Euclides, exibida no Algoritmo 2, retorna a tripla de inteiros ( d , s , t ) onde d = mdc( a , n ) e d = sa + tn. Isto é sa = tn − d ou sa ≡ d (mod n ). Assim, quando mdc( a , n ) = 1 , o inteiro s será exatamente a −^1 mod n.
Algoritmo 2 Extensão do Algoritmo de Euclides
ENTRADA: inteiros a , b. SAÍDA: inteiros d , s , t , onde d = mdc( a , b ) = sa + tb.
R. Dahab e J. López
Corpos finitos
Definição 12 Um corpo é formado por um conjunto F e duas operações, ‘ + ’ e ‘. ’, satisfazendo as seguintes propriedades: (i) (F, +) é um grupo abeliano com identidade 0; (ii) (F \ { 0 }, .) é um grupo abeliano com identidade 1; e (iii) a operação. é distributiva sobre a operação + , isto é, a .( b + c ) = a. b + a. c, para todos a , b , c ∈ F_._
Números racionais, reais e complexos são exemplos de corpos infinitos. A ordem de um corpo finito é o número de elementos em F. Quando a ordem é finita dizemos que o corpo é finito. Sejam a , b dois elementos de um corpo, finito ou não. Então
F q ∗ = { α i^ : 0 ≤ i ≤ q − 2 }.
Os métodos conhecidos para o cálculo do logaritmo discreto em F q ∗ são todos muito ineficientes quando q é muito grande, da ordem de centenas de dígitos. Para outros grupos o cálculo é muito fácil, por exemplo, em ( Zn , +).
Técnicas criptográficas modernas
Ao selecionar os tópicos para este texto, alguns algoritmos e protocolos foram escolhidos pela sua importância histórica; outros porque exemplificam técnicas e conceitos de forma clara e simples. Os comentários sobre a se- gurança de protocolos são breves e nada formais. A análise de protocolos criptográficos é um tema rico e multifacetado e exigiria muito mais espaço para ser coberto com rigor. Uma ausência sentida é a dos métodos para geração de seqüências aleatórias de bits. Tais métodos são vitais para a geração de chaves criptográficas e para produzir eventos imprevisíveis na execução de protocolos criptográficos, bloqueando ataques de repetição de mensagens. No capítulo 5 de [Menezes et al. 1997], o leitor interessado encontrará uma boa referência inicial para esse tema. Procuramos também incluir alguns tópicos recentes que têm despertado grande interesse na academia e na indústria. Escolhemos os termos encriptação e decriptação em vez de outros base- ados no radical ”cifr”, como (de)cifração, (de)cifragem ou (de)ciframento. Cre- mos que encriptar está mais próximo do sentido real de ”ocultar o texto claro” do que cifrar, que tem uma conotação mais próxima de ”escrever de forma enigmática”. Também, abusamos do termo ”unidirecional” para designar uma função f fácil de calcular mas difícil de inverter. Outras traduções têm sido bem recebidas: ”resumo” para o imbatível ”hash”, e ”emparelhamentos bilineares” para ”bilinear pairings”.
Organização do texto
Na Seção 3.2 fazemos um apanhado das principais técnicas criptográficas modernas, incluindo a base matemática mínima para seu entendimento. Nossa exposição é direta, sem demonstrações ou justificativas exceto pelas mais sim- ples. A Seção 3.3 cobre os principais protocolos para autenticação e estabe- lecimento de chaves criptográficas entre duas ou mais entidades. A Seção 3. discute brevemente a Criptografia Quântica e Emparelhamentos Bilineares.
Agradecimentos
Queremos agradecer ao revisor deste texto pela cuidadosa leitura e vali- osas sugestões. Os erros e omissões restantes são, claro, de nossa respon- sabilidade. Queremos agradecer também aos coordenadores do Comitê de Programa das JAI 2007 pelo convite para escrevermos o texto.
Uma excelente referência atual em Criptografia, cobrindo tópicos de nível básico e intermediários de forma didática, é a terceira edição do livro Crypto- graphy: theory and practice de Douglas R. Stinson [Stinson 2006]. O Hand- book of Applied Cryptography , de Alfred Menezes, Paul van Oorschot e Scott
Técnicas criptográficas modernas
a mesma seqüência de bits. O chamado one-time pad é um método para en- criptação em fluxo, onde o i -ésimo bit do texto encriptado é o ou-exclusivo do i -ésimo bit da mensagem com o i -ésimo bit da chave. Se os bits da chave forem gerados de forma verdadeiramente aleatória a cada nova mensagem, então o resultado é um algoritmo perfeito, matematicamente impossível de ser que- brado. O problema, claro, é como produzir a mesma seqüência na decriptação sem ter que transmitir a chave.
3.2.1.2. O DES - Data Encryption Standard
O DES foi o primeiro método de encriptação em blocos adotado como pa- drão FIPS ( Federal Processing Standards Publication ) 46 [FIPS ], datado de março de 1975. O método foi desenvolvido na IBM, no período de 1973-1974, baseado num algoritmo mais antigo conhecido como Lucifer, de Horst Feistel. O DES usa chaves de 56 bits e blocos de texto claro de 64 bits. Com o poder computacional atual, o DES não é mais considerado seguro, pois é vulnerável a ataques de busca exaustiva da chave. A partir de 19 de maio de 2005, o DES não consta mais dos padrões FIPS. Descrição do DES: A descrição completa do DES aparece na publicação FIPS 46. É um representante das chamadas cifras de Feistel , que se baseiam em uma seqüência de operações de permutação e substituição. O DES pro- cessa blocos de texto claro de 64 bits, e produz blocos encriptados de 64 bits. O comprimento efetivo da chave é de 56 bits, embora a chave seja especificada tendo 64 bits; oito desses bits (os bits 8 , 16 ,... , 64 ) são bits de paridade. O processo de encriptação no DES é realizado em 16 iterações ou rodadas. Da chave secreta k são derivadas 16 subchaves ki de 48 bits, uma para cada rodada. Em cada rodada são utilizadas 8 funções fixas de substituição (caixas- S), de 6 para 4 bits, denotadas por S i , i = 1 , 2 ,... , 8. Uma permutação fixa, IP, é aplicada ao bloco de texto claro de 64 bits antes da primeira rodada. O bloco permutado é dividido em dois sub-blocos L 0 e R 0 de 32 bits e, em seguida, é aplicada uma função de mistura, g, que produz os sub-blocos L 1 e R 1 de 32 bits. Esse processo é repetido por 16 rodadas. A função de mistura g : { 0 , 1 }^32 × { 0 , 1 }^32 × { 0 , 1 }^48 → { 0 , 1 }^32 × { 0 , 1 }^32 , é a seguinte:
g( Li − 1 , Ri − 1 , ki ) = ( Li , Ri )
onde, Li = Ri − 1 e Ri = f( Ri − 1 , ki ) e a função f : { 0 , 1 }^32 × { 0 , 1 }^48 → { 0 , 1 }^32 é definida como: f( R , k ) = P(S(E( R ) ⊕ k ))
onde E é um mapeamento fixo de { 1 , 2 ,... , 32 } em { 1 , 2 ,... , 48 }, e P é outra permutação fixa de { 1 , 2 ,... , 32 } em { 1 , 2 ,... , 32 }. As funções de substituição S i são representadas como matrizes 4 × 16 e operam da seguinte forma: seja B = ( b 5 b 4 · · · b 0 ) uma entrada de 6 bits e sejam l e c os números inteiros l = 2 b 5 + b 0 ∈ { 0 , 3 } e c = 8 b 4 + 4 b 3 + 2 b 2 + b 1 ∈ { 0 , 15 }. Então, o valor de S i ( B ) encontra-se na linha l e coluna c da permutação Si.
R. Dahab e J. López
A encriptação com o DES é apresentada no Algoritmo 3. Observe que, a permutação inversa IP−^1 , é utilizada na última rodada para obter o bloco encriptado.
Algoritmo 3 DES Encriptação ENTRADA: um texto claro m de 64 bits, uma chave k de 64 bits (com 8 bits de paridade). SAÍDA: um texto encriptado de 64 bits.
O Algoritmo 4 descreve como calcular as subchaves ki utilizadas em cada rodada do DES. Cada subchave é formada por 48 bits da chave secreta k. Esse algoritmo utiliza duas permutações PC1 e PC2, mostradas na Tabela 3.3. O algoritmo faz o seguinte: primeiro, a permutação PC1 é aplicada ao bloco de 64 bits da chave k para eliminar os oito bits ( k 8 , k 16 ,... , k 64 ) de k , e os restantes 56 bits são permutados e atribuídos a duas variáveis C e D ; então, em cada uma das 16 rodadas, ambas C e D sofrem uma rotação à esquerda de 1 ou 2 bits, e uma subchave de 48 bits ki é calculada como PC2( C , D ). ROTL v ( C ) denota uma rotação (deslocamento circular) de v bits para esquerda do bloco C.
Algoritmo 4 DES Subchaves ENTRADA: uma chave k de 64 bits (com 8 bits de paridade). SAÍDA: as subchaves ki , i = 1 , 2 ,... , 16.
R. Dahab e J. López
2001 que gradualmente tem se convertido no método mais utilizado no mundo. Foi desenvolvido pelos criptógrafos belgas Joan Daemen e Vicent Rijmen com o nome de Rijndael, e selecionado como o algoritmo vencedor de um con- curso internacional, promovido pelo Instituto Americano de Padrões e Tecno- logia (NIST), para selecionar um sucessor para o algoritmo DES. O algoritmo AES foi selecionado principalmente porque sua combinação de segurança, de- sempenho hardware/software e facilidade de implementação foram considera- dos superiores aos outros quatro algoritmos finalistas: Mars, RC6, Serpent e Twofish. O padrão AES foi projetado para aceitar chaves com comprimento de 128, 192 ou 256 bits, e blocos de 128 bits. O AES utiliza uma estrutura iterada, na qual, para cada rodada, uma função de mistura transforma um bloco de 128 bits em outro bloco de 128 bits com a ajuda de uma subchave derivada da chave original. O número de rodadas, que denotaremos por Nr , depende do comprimento da chave. Os valores de Nr são respectivamente 10, 12 e 14 para chaves de comprimento 128, 192 e 256 bits.
Descrição do AES: No padrão AES, os blocos de 128 bits são tratados como matrizes 4 × 4 de bytes. Adicionalmente, cada byte da matriz pode ser inter- pretado como um elemento finito do corpo binário F 28. Assim, as operações de soma e produto de bytes são definidas no corpo finito F 28. As seguintes variáveis e operações são utilizadas na descrição do algoritmo AES:
Estado =
x 0 x 4 x 8 x 12 x 1 x 5 x 9 x 13 x 2 x 6 x 10 x 14 x 3 x 7 x 11 x 15
ChaveNaRodada =
k 0 k 4 k 8 k 12 k 1 k 5 k 9 k 13 k 2 k 6 k 10 k 14 k 3 k 7 k 11 k 15
Técnicas criptográficas modernas
A seguir apresentaremos uma descrição de alto nível do AES para encriptar um bloco de 128 bits.
Algoritmo 5 AES Encriptação
ENTRADA: um texto claro m de 128 bits, uma chave k de 128, 192 ou 256 bits. SAÍDA: um texto encriptado de 128 bits.
Para descrever exatamente as operações utilizadas no AES necessitamos manipular bytes. Um byte pode ser representado ou como uma cadeia de 8 bits, ou como um polinômio no corpo binário F 28 , ou como um par de dígitos hexadecimais. Por exemplo, o byte 10101001 representa o hexadecimal 0xa e o elemento x^7 + x^5 + x^3 + 1 no corpo binário F 28 com polinômio irredutível f ( x ) = x^8 + x^4 + x^3 + x^2 + 1. A operação SubstitueBytes substitue cada byte de Estado de forma indepen- dente, usando uma caixa de substituição πS, chamada caixa-S, que é uma per- mutação no conjunto { 0 , 1 }^8. A caixa-S pode ser representada por uma tabela de 256 bytes. Em comparação com o algoritmo DES, onde as caixas de subs- tituição são aparentemente “aleatórias”, a caixa-S do AES pode ser definida algebricamente como:
Técnicas criptográficas modernas
onde B ′ i = SubstitueByte( Bi ), i = 0 , 1 , 2 , 3.
Algoritmo 6 AES Expansão de Chave
ENTRADA: uma chave k de 128 bits. SAÍDA: um vetor de 44 palavras w [ i ], i = 0 ,... , 43.
O algoritmo AES pode ser implementado em ordem inversa para produ- zir, de forma simples, um algoritmo de decriptação. Isto é, as operações SubstitueBytes, DeslocaLinhas, MisturaColunas devem ser substituídas por suas operações inversas; note que a operação SomaChave é sua própria inversa. As subchaves para decriptação são as mesmas para encriptação mas utilizadas na ordem inversa. Assim, em princípio, são necessárias duas implementações para encriptação e decriptação. Entretanto, utilizando algumas das proprie- dades do AES, é possível fazer a decriptação utilizando uma seqüência de operações na mesma ordem da encriptação do AES. O Algoritmo 7 apresenta a decriptação de uma mensagem com o AES.
Segurança do AES
O Algoritmo AES foi projetado para ser imune aos ataques conhecidos. Portanto, o escrutínio público continua a ser a melhor forma de avaliar sua se- gurança. Por exemplo, o relatório AES Security Report , da ECRYPT–European Network of Excellence in Cryptology [ECRYPT 2006], apresenta uma análise das principais classes de ataques conhecidos para encriptadores de blocos. Para cada classe de ataque são apresentados avanços recentes na análise da segurança do AES. A conclusão final é que, após cinco anos da publicação do AES como padrão FIPS, não há uma só fraqueza criptográfica identificada.
R. Dahab e J. López
Algoritmo 7 AES Decriptação
ENTRADA: um texto encriptado m de 128 bits, uma chave k de 128, 192 ou 256 bits. SAÍDA: um texto claro de 128 bits.
3.2.1.4. Modos de operação para encriptação em blocos
Há vários modos de operação para encriptadores em blocos. Esses algo- ritmos podem encriptar blocos de maneira estanque (um a um com a mesma chave) ou encadeados de diferentes maneiras. Para o DES, quatro modos de operação para encriptação foram desenvolvidos e padronizados em FIPS 81, de dezembro de 1980. Mais recentemente, na publicação Special Publica- tion SP 800-38A de dezembro 2001 [NIST ], o NIST recomendou os seguintes cinco modos de operação para sigilo com o AES (os primeiros quatro modos de operação são os mesmos que foram originalmente adotados para o algoritmo DES). Veremos todos menos o OFB.
Modo ECB: No modo de encriptação ECB, cada bloco de texto claro é encrip- tado com a mesma chave k. Dadas as seqüências de blocos de texto claro P 1 , P 2 ,... , Pn , e blocos encrip- tados C 1 , C 2 ,... , Cn , o modo ECB é definido como segue: Encriptação ECB: Cj ← ENC k ( Pj ), j = 1 ,... , n ;
Decriptação ECB: Pj ← DEC k ( Cj ), j = 1 ,... , n.