DES (Data Encryption Standard)
O DES foi criado em 1977, sendo largamente usado desde então. Foi adotado
pelo National Bureau of Standards, atualmente conhecido como National Institute
of Standards and Technology. Seu funcionamento básico consiste na criptografia
de blocos de 64 bits de entrada com uma chave de 56 bits, gerando blocos de
64 bits como saída. Para obter o texto original novamente, reverte-se
o processo usando a mesma chave. Devido ao pequeno tamanho desta, esse algoritmo
já não é considerado seguro, pois ele poderia ser quebrado
com certa facilidade pela força bruta, ou seja, pelo teste de todas as
chaves existentes até que se ache aquela que foi usada para criptografar
o documento. Outro ponto que gera certa apreensão é o fato de
existirem blocos internos ao DES cujo critério de arquitetura não
foi explicitado, levando muitos a crer que existiriam falhas internas não
reveladas pelo autor.
A figura a seguir mostra um esquema genérico do funcionamento do DES.
O texto cifrado é gerado a partir de 16 interações entre
as permutações do texto inicial e da chave.

A permutação inicial mostrada na figura é feita de acordo com uma tabela que indica o novo posicionamento dos 64 bits após a permutação.
O diagrama de como são feitas as interações é mostrado
a seguir:

Olhando primeiramente para o lado esquerdo da figura, nota-se que o texto plano
foi dividido em dois blocos de 32 bits. O Bloco de 32 bits de saída da
esquerda será igual ao bloco de entrada da direita. Já o bloco
de saída da direita corresponderá a uma série de processos
utilizando os blocos da direita, os da esquerda e também a chave. Primeiramente,
é feita uma expansão e, em seguida, uma permutação
no bloco da direita, segundo uma tabela pré-determinada.
Após este passo, é feito um XOR entre um subproduto da chave,
e, em seguida, o resultado dessa operação é enviado para
as S-Boxes. Logo depois, é feita uma nova permutação, segundo
uma outra tabela, que juntamente com o bloco da direita entrará em um
novo XOR, resultando no bloco da direita final.
De forma mais genérica, essas operações podem ser descritas
como:
Li=Ri-1
Ri-1=Li-1 XOR f(Ri-1, Ki)
O funcionamento das S-boxes é explicado pelo esquema a seguir:

O primeiro e o último bits de entrada de cada caixa Si formam um número binário de dois bits, o qual seleciona uma linha particular da tabela das S-boxes, enquanto os 4 bits intermediários formam um número que irá selecionar alguma coluna. O número que estiver na célula que possui essas coordenadas será convertido para uma representação de 4 bits que será dada como saída.
Devido a sua estrutura, e também a permutação que existe
em seguida, qualquer pequena mudança na saída de uma das interações
geraria uma saída ao final do algoritmo muito modificada, pois um pequeno
erro seria multiplicado e propagado pelas 16 interações. Dessa
forma, o DES possui uma imensa capacidade de proteger a informação,
apesar de não se saber qual foi o critério de criação
das S-Boxes.
Tratamento da chave
Quanto a chave, primeiramente, ela é permutada segundo uma tabela. O
resultado dessa permutação passa a ser tratado então como
dois grupos de 28 bits, entitulados de Ci e Di. Em cada interação
é feita uma rotação dos bits, para a direita ou esquerda
segundo uma outra tabela, na qual o número de bits a serem rodados varia
de acordo com o número da interação.
Os valores obtidos servem tanto como a entrada correspondente a chave na próxima
interação quanto como entrada para um segundo processo, que fará
uma permutação aliada a uma contração que gerará
a subchave que entra no XOR.
Decifragem do DES
A decifragem consiste de um processo semelhante ao da cifragem. Para se obter
o dado decriptografado, basta que se façam as interações
utilizando as chaves com ordem invertida, ou seja, partindo da 16a chave na
primeira interação, e assim em diante, até chegar na décima
sexta interação com a 1a chave.