13.04.2013 Views

Capítulos 5,6 - Departamento de Ciência da Computação

Capítulos 5,6 - Departamento de Ciência da Computação

Capítulos 5,6 - Departamento de Ciência da Computação

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Cifras Enca<strong>de</strong>a<strong>da</strong>s<br />

• RC4 (RSA Data Security, 1987) -<br />

Algoritmo restrito até 1994, quando teve sua especificação publica<strong>da</strong><br />

anonimamente na lista <strong>de</strong> mensagens Cypherpunk. Para cifras enca<strong>de</strong>a<strong>da</strong>s <strong>de</strong><br />

bytes em modo OFB, usa uma S-box 8x8 S contendo permutação S0...S255<br />

dos valores hexa 00,..,FF, e dois contadores <strong>de</strong> bytes m, n.<br />

Geração <strong>da</strong> seqüência <strong>de</strong> pad: k<br />

repeat<br />

n = (n+1) mod 256<br />

m = (m+ S ) mod 256<br />

n<br />

Troca (S ,S )<br />

m n<br />

t = (S +S ) mod 256<br />

m n<br />

k= S<br />

t<br />

• Análise do RC4 -<br />

1. A cifra enca<strong>de</strong>a<strong>da</strong> em modo OFB encripta ou <strong>de</strong>cripta executando o XOR<br />

<strong>de</strong> ca<strong>da</strong> byte k gerado pelo algoritmo, com ca<strong>da</strong> byte <strong>da</strong> mensagem<br />

ou do criptograma. A chave semente po<strong>de</strong> ter até 1024 bits<br />

2. Há 256!*256 2 ≈ 2 1700 estados possíveis para o gerador <strong>de</strong> chaves <strong>de</strong><br />

padding <strong>de</strong>ste algoritmo. RSA afirma parecer não haver sementes<br />

k1...k255 que gerem ciclos pequenos, e ser o algoritmo imune às<br />

análises diferencial e linear. Licenciado para exportação com H = 40.<br />

3. Usado em <strong>de</strong>zenas <strong>de</strong> produtos (Lotus Notes, Apple AOCE, Oracle<br />

Secure SQL, CDPD, etc.) Em princípio po<strong>de</strong> ser a<strong>da</strong>ptado <strong>de</strong> 8 para 16<br />

bits, tornando-o mais rápido, mas com 2 16 iterações <strong>de</strong> inicialização e<br />

~100K <strong>de</strong> RAM ocupados pela S-box 16x16.<br />

Inicialização <strong>de</strong> S com a chave<br />

semente concatena<strong>da</strong> = k 1 ...k 255 :<br />

for n=0 to 255 do S n = n<br />

m=0<br />

for n=0 to 255 do<br />

m = (m+S n +k n ) mod 256<br />

Troca (S m ,S n )<br />

20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!