Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
49
58
2
11
55
62
6
13
41
50
59
3
47
54
61
5
33
42
51
60
39
46
53
28
25
34
43
52
31
38
45
20
17
26
35
44
23
30
37
12
9
18
27
36
15
22
29
4
Con C0 y D0 definidas, ahora creamos 16 bloques Ci y Di, 1<=n<=16. Cada par de bloques (Ci , Di) se
forma a partir del par (Ci -1, Di-1), usando para ello una tabla de rotaciones (circulares de dcha. a izda.)
prefijadas de la siguiente forma:
Iteracin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# desplazamientos
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
PC-2
14
3
23
16
41
30
44
46
17
28
19
7
52
40
49
42
11
15
12
27
31
51
39
50
24
6
4
20
37
45
56
36
1
21
26
13
47
33
34
29
5
10
8
2
55
48
53
32
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
2
4
6
8
1
3
5
7
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010
A continuacin, dividimos el bloque permutado IP en dos mitades: una parte izquierda L0 y una parte
derecha (ambas de 32 bits).
Ejemplo: a partir de IP, obtenemos
L0 = 1100 1100 0000 0000 1100 1100 1111 1111
R0 = 1111 0000 1010 1010 1111 0000 1010 1010
A partir de este momento, el algoritmo realiza 16 iteraciones, usando una funcin f que opera con dos
bloques: un bloque de datos de 32 bits y una clave de 48 bits, para producir un bloque de 32 bits. Se
define como sigue:
Li = Ri-1
Ri = Li-1 + f(Ri-1,Ki)
Este proceso finalizar con un bloque final con i = 16, de L16R16. Es decir, en cada iteracin, los 32 bits de
ms a la derecha se convierten en los 32 bits de ms a la izquierda de la siguiente iteracin. Sin embargo,
los 32 bits de ms a la izquierda de la iteracin actual, se suman usando la funcin XOR con los 32 bits
resultado de la funcin f.
Ejemplo: Para i = 1 obtenemos:
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010
R1 = L0 f(R0,K1)
Slo queda por explicar cmo funciona la funcin f. Para calcular f, debemos primero expandir cada
bloque Ri-1, de 32 bits a 48 bits (para poder operar con la clave). Esto se har usando la tabla E, que se
muestra a continuacin:
E
32
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
De esta forma, se obtiene una extensin de 48 bits. El resultado de la extensin definida por la tabla E se
suele escribir como 8 bloques de 6 bits.
Ejemplo: Si calculamos E(R0) obtendremos:
R0 = 1111 0000 1010 1010 1111 0000 1010 1010
E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101
Ahora, para el clculo de f se realiza una operacin de XOR entre E(Ri.-1) y Ki => (E(Ri.-1) Ki)
Ejemplo: para K1 , E(R0), obtendramos:
K1 =
000110 110000 001011 101111 111111 000111 000001 110010
E(R0) =
011110 100001 010101 010101 011110 100001 010101 010101
-------------------------------------------------------------------------------------------------------K1+E(R0) =
011000 010001 011110 111010 100001 100110 010100 100111
13
7
14
8
1
4
8
2
2 15
14 2
13 6
4 9
11 8
13 1
2 11
1 7
3 10
10 6
15 12
5 11
6
12
9
3
12
11
7
14
5
9
9
5
3 10
10 0
0
3
5
6
7
8
0
13
S2
15
3
0
13
1
13
14
8
8 14
4 7
7 11
10 1
6 11
15 2
10 4
3 15
3 4
8 14
13 1
4 2
9
12
5
11
7
0
8
6
2 13
1 10
12 6
7 12
12
6
9
0
0
9
3
5
5 10
11 5
2 15
14 9
S3
10
13
13
1
0
7
6
10
9 14
0 9
4 9
13 0
6 3
3 4
8 15
6 9
15 5
6 10
3 0
8 7
1 13
2 8
11 1
4 15
12 7
5 14
2 12
14 3
11 4
12 11
5 10
11 5
2 8
15 1
14 7
2 12
S4
7
13
10
3
13
8
6
15
14
11
9
0
0 6
6 15
12 11
10 1
9 10
0 3
7 13
13 8
1
4
15
9
8 5
2 12
3 14
5 11
11 12
1 10
5 2
12 7
4 15
14 9
8 4
2 14
3
5
0
6
2
7
1
4
S5
2 12
14 11
4 2
11 8
4 1
2 12
1 11
12 7
7 10
4 7
10 13
1 14
11 6
13 1
7 8
2 13
8 5
5 0
15 9
6 15
3 15
15 10
12 5
0 9
13
3
6
10
0
9
3
4
14 9
8 6
0 14
5 3
S6
12 1
10 15
9 14
4 3
10 15
4 2
15 5
2 12
9 2
7 12
2 8
9 5
6 8
9 5
12 3
15 10
0 13
6 1
7 0
11 14
3 4
13 14
4 10
1 7
14 7
0 11
1 13
6 0
5 11
3 8
11 6
8 13
S7
4 11
13 0
1 4
6 11
2 14
11 7
11 13
13 8
8 13
1 10
7 14
10 7
3 12
14 3
10 15
9 5
9 7
5 12
6 8
0 15
5 10
2 15
0 5
14 2
6 1
8 6
9 2
3 12
15
4
12
1
0
9
3
4
S8
13 2
1 15
7 11
2 1
8
13
4
14
4
8
1
7
6 15
10 3
9 12
4 10
11 1
7 4
14 2
8 13
10 9
12 5
0 6
15 12
3 14
6 11
10 13
9 0
5 0
0 14
15 3
3 5
12 7
9 2
5 8
6 11
7
12
15
18
8
27
13
11
20
28
23
31
24
3
30
4
21
17
26
10
14
9
6
25
8
7
6
5
48
47
46
45
16
15
14
13
56
55
54
53
24
23
22
21
64
63
62
61
32
31
30
29
4
3
2
1
44
43
42
41
12
11
10
9
52
51
50
49
20
19
18
17
60
59
58
57
28
27
26
25