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
Função S5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | -------------------------------------------------------------- 0 | 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 1 | 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 2 | 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 3 | 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 Função S6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | -------------------------------------------------------------- 0 | 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 1 | 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 2 | 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 3 | 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 Função S7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | -------------------------------------------------------------- 0 | 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 1 | 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 2 | 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 3 | 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 Função S8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | -------------------------------------------------------------- 0 | 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 | 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 2 | 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 3 | 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
Exemplo: Para a primeira rodada, obtemos como saída das oito caixas S:
K1 + E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101 1001 0111
O estágio final do cálculo de f é fazer uma permutação P da saída da caixa S para obter o valor final de f:
f = P(S1(B1)S2(B2)...S8(B8))
A permutação P é definida pela tabela a seguir. P devolve uma saída de 32 bits a partir de uma entrada de 32 bits permutando os bits do bloco de entrada.
P ------------------ 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 ------------------
Exemplo: Da saída das oito caixas S
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101 1001 0111
obtemos
f = 0010 0011 0100 1010 1010 1001 1011 1011
Agora possuimos todos os elementos necessários para calcular R1, ou seja, R1 = L0 + f(R0 ,K1)
L0 = 1100 1100 0000 0000 1100 1100 1111 1111 f(R0, K1) + 0010 0011 0100 1010 1010 1001 1011 1011 R1 = 1110 1111 0100 1010 0110 0101 0100 0100