Criptografia Numaboa
O algoritmo DES ilustrado II
Seg 29 Ago 2005 01:53 |
- Detalhes
- Categoria: Cifras de bloco
- Atualização: Segunda, 20 Abril 2009 13:37
- Autor: vovó Vicki
- Acessos: 37586
O DES em detalhes
Se você tem algum conhecimento da criptografia clássica, não vai ser difícil perceber que o DES utiliza somente cifras tradicionais como a substituição e a transposição. A diferença é que, com a ajuda do computador, não se trabalha mais com letras e sim com bits. Os princípios, porém, são os mesmos.
O DES é uma cifra de bloco, o que significa que atua sobre blocos de texto claro de determinado tamanho (64 bits) e retorna blocos de texto cifrado do mesmo tamanho. Portanto, o DES resulta numa permutação entre os 264 (leia como "2 elevado a 64") arranjos possíveis de 64 bits, cada um deles podendo ser 0 ou 1. Cada bloco de 64 bits é dividido em dois blocos de 32 bits, um sub-bloco esquerdo L e um sub-bloco direito R (esta divisão é usada apenas em certas operações).
Exemplo: Seja M o texto claro da mensagem M = 0123456789ABCDEF, onde M está no formato hexadecimal (base 16). Reescrevendo M em formato binário obtemos o bloco de texto de 64 bits:
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 L = 0000 0001 0010 0011 0100 0101 0110 0111 R = 1000 1001 1010 1011 1100 1101 1110 1111
O primeiro bit de M é "0" e o último bit é "1". Lemos da esquerda para a direita.
O DES atua sobre blocos de 64 bits usando tamanhos de chave de 56 bits. Na realidade, as chaves são armazenadas com 64 bits mas, passando por um processo que "retira" 8 bits, são reduzidas para 56 bits. Estes 8 bits estão presentes nas chaves para garantir a integridade das mesmas, ou seja, o último bit de cada um dos 8 bytes da chave é um bit verificador, chamado de bit de paridade. Bits de paridade indicam quantos bits estão setados (têm valor 1) nos sete primeiros bits do byte. Quando este número for par (daí paridade), o último bit recebe o valor 1, caso contrário, recebe o valor 0. Por exemplo, o byte 00010011 possui 2 bits setados nos primeiros sete bits, por isso o byte é completado com 1; o byte 00110100 possui três bits setados nos primeiros sete bits, por isso o byte é completado com 0. Apesar dos bits de paridade serem retirados, nos cálculos a seguir vamos sempre numerar os bits de 1 a 64, indo da esquerda para a direita.
Exemplo: seja K a chave hexadecimal K = 133457799BBCDFF1. Isto nos dá a chave binária (substituindo 1 = 0001, 3 = 0011, etc agrupados em oito bits):
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
O algoritmo DES usa vários passos até obter o resultado final. Leia a seguir.