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...

Laboratórios

Astaroth

Seg

14

Mar

2005


04:23

(2 votos, média 4.50 de 5) 


2.3 - A cifragem

A cifragem é um processo bem simples, se comparada aos outros processos do criptosistema, consiste de uma rede feistel, utilização da função F e uma permutação de bits baseada na Tabela P. A seguir será apresentado um diagrama mostrando a cifragem em suas etapas.

X1 = X1 ^ f(P(X2))

X = X ^ K1
X = X ^ K2
X = X ^ K3
.
.
.
X = X ^ K16

UPD(K)

* Onde X é bloco de 64-bits que deverá ser criptografado; X1 e X2 a divisão de X em dois valores de 32-bits; Kn um par de sub-chaves n; P uma permutação de bits usando a tabela P; UPD(K) chamada do algoritmo de atualização das sub-chaves.

2.3.1 – Atualização das sub-chaves

A atualização das sub-chaves é um recurso que decidi implantar com intuito de dificultar a identificação das sub-chaves usadas, porém este tem o efeito colateral de causar uma concordância entre os blocos que estão sendo criptografados. Tal atualização deve ser feita ao final da criptografia de cada bloco para ser usada (as sub-chaves atualizadas) no bloco seguinte. A atualização das sub-chaves acontece uma a uma, com as 32 sub-chaves, e pode ser representado pela fórmula a seguir:

Kx = Kx ^ -P(Kx)

* Onde Kx repesenta uma sub-chave x, P(Kx) a permutação bit a bit da chave Kx utilizando a tabela P.

Sendo que a permutação (P) funciona exatamente como as permutações de bit do sistema DES, porém utilizando-se uma tabela P, explicada anteriormente, ao invés de uma tabela de permutação fixa.

2.4 – Decifragem

O processo de decifragem ocorre de forma semelhante ao de cifragem, porém em ordem inversa, vindo primeiro a utilização da rede feistel (iniciando do par de sub-chave 16 em direção ao 1) e em seguida a permutação e utilização da função. Terminando também com a atualização das sub-chaves para serem utilizadas no bloco seguinte.

Informações adicionais