Os dados não seriam perdidos ao mapear valores de 6 bits para valores de 4 bits nas S-Boxes do DES? Se sim, como podemos revertê-lo para que a saída correta apareça?
Os dados não seriam perdidos ao mapear valores de 6 bits para valores de 4 bits nas S-Boxes do DES? Se sim, como podemos revertê-lo para que a saída correta apareça?
Respostas:
DES é uma cifra baseada em Feistel . Em tais cifras, a função não precisa ser invertível. Aqui está o motivo:
Em cada rodada, a seguinte operação é aplicada:
Para
A descriptografia é realizada da seguinte maneira:
Como você pode ver, a descriptografia não precisa que seja invertível. (Como a descriptografia não precisa calcular F - 1 .)
Sem entrar em todo o mumbo-jumbo matemático sobre Feistel (que ainda não entendo 100%), se você olhar esta imagem da Wikipedia:
Você pode ver que, embora as 8 s-boxes estejam realmente comprimindo 48 bits para 32, apenas 32 bits de entropia são provenientes do texto simples ; portanto, você pode obter os outros 16 bits da chave ao descriptografar, que é a mágica executada por funções Feistel mencionadas anteriormente.