Está en la página 1de 5

1 de 5

Advanced Encryption Standard


Origem: Wikipdia, a enciclopdia livre.

Em Criptografia, o Advanced Encryption Standard


(AES, ou Padro de Criptografia Avanada, em
portugus), tambm conhecido por Rijndael, uma cifra
de bloco adotada como padro de criptografia pelo
governo dos Estados Unidos. Espera-se que seja
utilizado em todo o mundo e analisada extensivamente,
assim como foi seu predecessor, o Data Encryption
Standard (DES). O AES foi anunciado pelo NIST
(Instituto Nacional de Padres e Tecnologia dos EUA)
Advanced Encryption Standard - AES
como U.S. FIPS PUB (FIPS 197) em 26 de Novembro de
2001, depois de 5 anos de um processo de padronizao.
Tornou-se um padro efetivo em 26 de Maio de 2002. Em 2006, o AES j um dos algoritmos mais
populares usados para criptografia de chave simtrica.

ndice
1 O Concurso AES
2 Desenvolvimento
3 Descrio de Cifra
3.1 Etapa AddRoundKey
3.2 Etapa de SubBytes
3.3 Etapa de ShiftRows
3.4 Etapa de MixColumns
4 Notas e referncias
5 Ligaes externas
5.1 Em ingls
5.2 Em portugus
5.3 Implementaes

O Concurso AES
Em 1997 o governo americano, atravs do NIST (National Institute of Standards and Technology), lanou
um processo de seleo que definiria um novo algoritmo de chave simtrica para proteger informaes do
governo federal. Este novo algoritmo criptogrfico substituiu o DES (Data Encryption Standard), que havia
sido quebrado pela mquina DES Cracker, construda pela ONG Electronic Frontier Foundation com apenas
250 mil dlares.
Em setembro de 1997 o NIST indicou as condies necessrias para a candidatura de algoritmos para
substituir o DES: divulgao pblica, direitos autorais livres, e os algoritmos deveriam ser de chave privada
(simtricos) e suportar blocos de 128 bits e chaves de 128, 192 e 256 bits. Em agosto de 1998, na Primeira
Conferncia dos Candidatos ao AES, apresentaram-se 15 candidatos: Cast-256, Crypton, Deal, DFC, E2,
Frog, HPC, LOKI97, Magenta, MARS, RC6, Rijndael, Safer+, Serpent e Twofish. O NIST solicitou aos
membros da comunidade criptogrfica mundial uma anlise dos algoritmos candidatos. Em 1999, na Segunda
Conferncia dos Candidatos AES, atravs da anlise obtida foram selecionados 5 finalistas: MARS, RC6,

10/10/2010 9:21 AM

2 de 5

Rijndael, Serpent e Twofish. Posteriormente esses 5 algoritmos sofreram novas anlises e seus criadores
participaram de debates, fruns, etc.
Trs anos e meio aps o incio do concurso, o NIST chega escolha do vencedor: Rijndael. O nome uma
fuso de Vincent Rijmen e Joan Daemen, os dois belgas criadores do algoritmo. Segundo o NIST, ele
combina as caractersticas de segurana, desempenho, facilidade de implementao e flexibilidade. O
Rijndael apresenta alta resistncia a ataques como "power attack" e "timing attack" e exige pouca memria,
o que o torna adequado para operar em ambientes restritos como "smart cards", PDAs e telefones celulares.

Desenvolvimento
O Rijndael era um refinamento do Square, um projeto anterior de Daemen e Rijmen. O Square, por sua vez,
evoluiu do Shark. Ao contrrio do seu predecessor DES, o Rijndael uma rede de permutao-substituio,
no uma rede de Feistel. O AES rpido tanto em software quanto em hardware, relativamente fcil de
executar e requer pouca memria. Apesar de ser um padro novo de criptografia, est sendo atualmente
implantado em grande escala.

Descrio de Cifra
Estritamente falando, o AES no exatamente o Rijndael (embora na prtica possam ser permutados) j que
o Rijndael suporta uma maior gama de tamanhos do bloco e da chave. O AES tem um tamanho de bloco fixo
em 128 bits e uma chave com tamanho de 128, 192 ou 256 bits, enquanto o Rijndael pode ser especificado
com chaves e tamanhos de bloco de qualquer mltiplo de 32 bits, com um mnimo de 128 bits e um mximo
de 256 bits.
A chave expandida usando-se o agendamento de chaves do Rijndael. A maioria dos clculos do AES
feita em um campo finito prprio.
O AES opera sobre um arranjo bidimensional de bytes com 4x4 posies, denominado de estado (as verses
do Rijndael com um tamanho de bloco maior tm colunas adicionais no estado). Para criptografar, cada
turno do AES (exceto o ltimo) consiste em quatro estgios:
1. AddRoundKey- cada byte do estado combinado com a subchave prpria do turno (RoundKey); cada
subchave derivada da chave principal usando o algoritmo de agendamento de chaves.
2. SubBytes- uma etapa de substituio no linear onde cada byte substitudo por outro de acordo com
uma tabela de referncia.
3. ShiftRows- uma etapa de transposio onde cada fileira do estado deslocada de um determinado
nmero de posies.
4. MixColumns- uma operao de mescla que opera nas colunas do estado e combina os quatro bytes de
cada coluna usando uma transformao linear.
O turno final substitui o estgio de MixColumns por um novo estgio de AddRoundKey.

Etapa AddRoundKey

10/10/2010 9:21 AM

3 de 5

Na etapa de AddRoundKey, a sub-chave


combinada com o estado. Para cada turno, uma
sub-chave derivada da chave principal usando o
agendamento de chaves do Rijndael; cada sub-chave
do mesmo tamanho que o estado. A sub-chave
somada combinando cada byte do estado com o byte
correspondente do sub-chave, utilizando a operao
XOR bit a bit.

Etapa de SubBytes
Na etapa de SubBytes, cada byte no arranjo
atualizado usando uma S-box de 8 bits. Para evitar os
ataques baseados em propriedades algbricas simples,
a S-box construda combinando-se uma funo
inversora com uma transformao afim invertvel. A
S-box escolhida tambm de forma a evitar qualquer
ponto fixo.

Na etapa de AddRoundKey, a sub-chave


combinada com o estado.

Etapa de ShiftRows
A etapa de ShiftRows opera sobre as linhas do estado,
deslocando os bytes em cada linha de um
determinado nmero de posies. No AES, a primeira
linha fica inalterada. Cada byte da segunda linha
deslocado esquerda de uma posio. Similarmente,
a terceira e quarta fileiras so deslocadas de duas e de
trs posies respectivamente. Para o bloco de bits de
tamanho 128 e 192 bits, o padro de deslocamento
mesmo. Desta forma, cada coluna do estado ao fim
da etapa de ShiftRows fica composta por bytes de
todas as coluna do estado da entrada.
No caso de blocos de 256 bits, a primeira fileira fica
inalterada, deslocando-se a segunda, terceira e quarta
fileiras. O deslocamento de 1 , 2 e 4 bytes
respectivamente - embora esta mudana se aplique
somente ao Rijndael quando usado com um bloco de
256 bits, o que no ocorre no AES.

Na etapa de SubBytes, cada byte no arranjo


atualizado usando uma S-box de 8 bits.

A etapa de ShiftRows opera sobre as linhas do


estado; deslocando ciclicamente os bytes em cada
linha de um determinado nmero de posies.

Etapa de MixColumns

10/10/2010 9:21 AM

4 de 5

Na etapa de MixColumns, os quatro bytes de cada


coluna do estado so combinados usando uma
transformao linear invertvel. Junto com o
ShiftRows, o MixColumns fornece difuso cifra.
Cada coluna tratada como um polinmio em
GF(28) e ento multiplicado em mdulo x4 + 1
pelo polinmio fixo c(x) = 3x3 + x2 + x + 2. A
etapa de MixColumns pode tambm ser vista como
uma multiplicao matricial no campo finito de
Rijndael.

Na etapa de MixColumns, os quatro bytes de cada


coluna do estado so combinados usando uma
transformao linear invertvel.

Notas e referncias
Joan Daemen, Steve Borg e Vincent Rijmen, "The Design of Rijndael: AES - The Advanced
Encryption Standard." Springer-Verlag, 2002. ISBN 3-540-42580-2.

Ligaes externas
Em ingls
FIPS PUB 197: padro oficial da AES (http://www.csrc.nist.gov/publications/fips/fips197/fips197.pdf) (em ingls) (arquivo PDF)
Animao em Flash do processo de criptografia em 128-bits da AES (http://www.cs.bc.edu/~straubin
/cs381-05/blockciphers/rijndael_ingles2004.swf) (em ingls)
Animao em Flash do processo de criptografia em 128-bits da AES por Enrique Zabala para a
Conxx.net (http://www.conxx.net/rijndael_anim_conxx.html) (em ingls)

Em portugus
Animao Funcional(expanso de chave/cifrao) em Flash do Algoritmo de Criptografia AES
(http://blog.ultrassecreto.com/?p=1)
Algoritmo de Criptografia AES (http://www.gta.ufrj.br/grad/05_2/aes/)
ANLISE DO ALGORITMO VENCEDOR DO AES: O RIJNDAEL (http://www.bibl.ita.br/ixencita
/artigos/FundRafaelAntonio1.pdf) (arquivo PDF)
Introduo Criptografia (http://www.slackwarezine.com.br/download/evento/cripto.pdf) (arquivo
PDF)

Implementaes
Uma calculadora AES (http://prates.fortunecity.com/) (em portugus)
Uma calculadora AES em Javascript que exibe os valores intermedirios (http://www.cs.eku.edu
/faculty/styer/460/Encrypt/JS-AES.html) (em ingls)
Implementaes licenciadas do AES para BSD por Brian Gladman (http://fp.gladman.plus.com
/cryptography_technology/rijndael/) (em ingls)
Implementao em C de Paulo Barreto para o AES (http://www.esat.kuleuven.ac.be/~rijmen/rijndael
/rijndael-fst-3.0.zip) (em ingls)
Implementao do AES em domnio pblico por D.J. Bernstein (http://cr.yp.to/mac.html) (em ingls)
Biblioteca Nettle licenciada sob GPL tambm inclui uma implementao AES
(http://www.lysator.liu.se/~nisse/nettle/) (em ingls)
Implementao de criptografia AES open-source para Windows e Linux (http://www.aescrypt.com/)
(em ingls)

10/10/2010 9:21 AM

5 de 5

Cdigo-fonte AES escrito em C sob licena LGPL (http://xyssl.org/code/source/aes/) (em ingls)


Implementao de AES escrita em C e em domnio pblico (http://geocities.com/malbrain
/aestable_c.html) (em ingls)
[[OpenSSL ] (em ingls)] inclui suporte criptografia AES a partir da verso 0.9.7 e duplamente
licenciada sob os termos da Licena OpenSSL e da licena original SSLeay
Obtida de "http://pt.wikipedia.org/wiki/Advanced_Encryption_Standard"
Categoria: Criptografia
Esta pgina foi modificada pela ltima vez s 18h25min de 20 de setembro de 2010.
Este texto disponibilizado nos termos da licena Atribuio-Compartilhamento pela mesma Licena
3.0 Unported (CC-BY-SA); pode estar sujeito a condies adicionais. Consulte as Condies de Uso
para mais detalhes.
Poltica de privacidade
Sobre a Wikipdia
Avisos gerais

10/10/2010 9:21 AM