A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Criptografia Numaboa

O algoritmo DES ilustrado II

Seg

29

Ago

2005


01:53

(32 votos, média 4.81 de 5) 


No artigo "O algoritmo DES ilustrado" você encontra um pouco da história do DES. Neste artigo, vamos fazer uma radiografia deste algoritmo, bit a bit smile

Exemplos preliminares de DES

O DES trabalha com bits ou números binários - os 0s e 1s dos computadores digitais. Cada grupo de 4 bits corresponde a um valor hexadecimal, cuja base é 16. O binário "0001" corresponde ao número hexadecimal "1", o binário "1000" é igual ao número hexadecimal "8", "1001" é igual ao hexadecimal "9", "1010" é igual a o hexadecimal "A" e "1111" é igual ao hexadecimal "F".

O DES funciona encriptando grupos de 64 bits de mensagem, o que significa 16 números hexadecimais. Para realizar a encriptação, o DES utiliza "chaves" com comprimento aparente de 16 números hexadecimais, ou comprimento aparente de 64 bits. Entretanto, no algoritmo DES, cada oitavo bit da chave é ignorado, de modo que a chave acaba tendo o comprimento de 56 bits. Mas, para todos os efeitos, o DES é organizado baseando-se no número redondo de 64 bits (16 dígitos hexadecimais).

Por exemplo, se tomarmos a mensagem clara hexadecimal 8787878787878787 e a encriptarmos com a chave DES hexadecimal 0E329232EA6D0D73, obteremos o texto cifrado hexadecimal 0000000000000000. Se o criptograma for decifrado com a mesma chave secreta, o resultado será o texto claro original 8787878787878787 hexadecimal.

Este exemplo é limpo e metódico porque nosso texto claro tinha o comprimento de exatos 64 bits. O mesmo seria verdade caso nosso texto claro tivesse um comprimento múltiplo de 64 bits. Mas a maioria das mensagens não cairá nesta categoria. Não serão um múltiplo exato de 64 bits (isto é, um múltiplo exato de 16 números hexadecimais).

Por exemplo, considere a seguinte mensagem: "Criptologia sempre NumaBoa". Esta mensagem clara possui 28 bytes (56 dígitos hexadecimais) de comprimento. Neste caso, para encriptar a mensagem, seu comprimento precisa ser ajustado com a adição de alguns bytes extras no final. Depois de decifrar a mensagem, estes bytes extras são descartados. É lógico que existem vários esquemas diferentes para adicionar bytes. Aqui nós iremos adicionar apenas zeros no final, de modo que a mensagem total seja um múltiplo de 8 bytes (ou 16 dígitos hexadecimais, ou 64 bits).

O texto claro "Criptologia sempre NumaBoa" é, em hexadecimal,

     43 72 69 70 74 6F 6C 6F
     67 69 61 20 73 65 6D 70
     72 65 20 4E 75 6D 61 42
     6F 61 0D 0A

Note que os primeiros 54 dígitos hexadecimais representam a mensagem em Português, enquanto que "0D" é o hexadecimal para Retorno (Carriage Return) e "0A" é o hexadecimal para Quebra de Linha (Line Feed), indicando que o arquivo de mensagem chegou ao fim. Completamos então a mensagem com alguns zeros no final para obter um total de 64 dígitos hexadecimais:

     43 72 69 70 74 6F 6C 6F
     67 69 61 20 73 65 6D 70
     72 65 20 4E 75 6D 61 42
     6F 61 0D 0A 00 00 00 00

Se cifrarmos agora a mensagem clara em blocos de 64 bits (16 dígitos hexadecimais), usando a mesma chave DES "0E329232EA6D0D73", obtemos o seguinte texto cifrado:

     A1 BF 4C 8C 1F 44 6A 4C
     CA 4D E4 28 6E DE 99 50
     F5 59 66 2B B5 09 D9 3C
     4B A7 70 FA E2 4B B3 C2

Este é o código secreto que pode ser transmitido ou armazenado. Decifrando o texto encriptado restaura a mensagem original "Criptologia sempre NumaBoa".

Fluxograma simplificado

Fluxograma DES
Etapas do algoritmo DES

Informações adicionais