Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
elevado a 64") arranjos possíveis de 64 bits, cada um deles podendo ser 0 ou 1.<br />
Cada bloco de 64 bits é dividido em dois blocos de 32 bits, um sub-bloco<br />
esquerdo L e um sub-bloco direito R (esta divisão é usada apenas em certas<br />
operações).<br />
Exemplo: Seja M o texto claro da mensagem M = 0123456789ABCDEF, onde M<br />
está no formato hexadecimal (base 16). Reescrevendo M em formato binário<br />
obtemos o bloco de texto de 64 bits:<br />
1111<br />
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110<br />
L = 0000 0001 0010 0011 0100 0101 0110 0111<br />
R = 1000 1001 1010 1011 1100 1101 1110 1111<br />
O primeiro bit de M é "0" e o último bit é "1". Lemos da esquerda para a direita.<br />
O DES atua sobre blocos de 64 bits usando tamanhos de chave de 56 bits. Na<br />
realidade, as chaves são armazenadas com 64 bits mas, passando por um<br />
processo que "retira" 8 bits, são reduzidas para 56 bits. Estes 8 bits estão<br />
presentes nas chaves para garantir a integridade das mesmas, ou seja, o último<br />
bit de cada um dos 8 bytes da chave é um bit verificador, chamado de bit de<br />
paridade. Bits de paridade indicam quantos bits estão setados (têm valor 1) nos<br />
sete primeiros bits do byte. Quando este número for par (daí paridade), o último<br />
bit recebe o valor 1, caso contrário, recebe o valor 0. Por exemplo, o byte<br />
00010011 possui 2 bits setados nos primeiros sete bits, por isso o byte é<br />
completado com 1; o byte 00110100 possui três bits setados nos primeiros sete<br />
bits, por isso o byte é completado com 0. Apesar dos bits de paridade serem<br />
retirados, nos cálculos a seguir vamos sempre numerar os bits de 1 a 64, indo da<br />
esquerda para a direita.<br />
Exemplo: seja K a chave hexadecimal K = 133457799BBCDFF1. Isto nos dá a<br />
chave binária (substituindo 1 = 0001, 3 = 0011, etc agrupados em oito bits):<br />
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001<br />
Passo 1: A partir da chave de 56 bits, criar 16 subchaves de 48 bits<br />
A chave de 64 bits é permutada de acordo com a tabela a seguir, PC-1. Observe<br />
que nesta tabela os bits de paridade foram excluídos (os bits 8, 16, 24, 32, 40,<br />
48, 56 e 64 estão ausentes) portanto, esta operação só é efetuada depois da<br />
verificação de integridade da chave. Como a primeira entrada da tabela é "57",<br />
isto significa que o 57º bit da chave original K torna-se o primeiro bit da chave<br />
permutada K+. O 49º bit da chave original transforma-se no segundo bit da<br />
chave permutada. O 4º bit da chave original é o último bit da chave permutada.<br />
Observe que apenas 56 bits da chave original aparecem na chave permutada.<br />
PC-1<br />
---------------------------------------<br />
57 49 41 33 25 17 9<br />
1 58 50 42 34 26 18<br />
10 2 59 51 43 35 27<br />
19 11 3 60 52 44 36<br />
63 55 47 39 31 23 15