Captulo 12
Cifrado Simtrico en Bloque
Seguridad Informtica y Criptografa
Ultima actualizacin del archivo: 01/03/06
Este archivo tiene: 119 diapositivas
v 4.1
Material Docente de
Libre Distribucin
Este archivo forma parte de un curso completo sobre Seguridad Informtica y Criptografa. Se autoriza el uso,
reproduccin en computador y su impresin en papel, slo con fines docentes y/o personales, respetando los
crditos del autor. Queda prohibida su comercializacin, excepto la edicin en venta en el Departamento de
Publicaciones de la Escuela Universitaria de Informtica de la Universidad Politcnica de Madrid, Espaa.
Curso de Seguridad Informtica y Criptografa JRA
Pgina 473
A Xi
B Xi
BLOQUE B
N/2
N/2
ki
FUNCIN f
ki
FUNCIN f
Xi
Xi
A Xi
B Xi
Puesto que Y Xi Xi = Y
Pgina 474
Pgina 475
Pgina 476
Si: +1 mod 27
Pi: 3241
M2 = WARS
S2 = XBST
P2 = SBTX
BUST
BUST
BUST
SION
TJP
PJT
NBJM
NBJM
NBJM
INUA
JVB
VBJ
Primera
vuelta
PUD
PUD
PUD
Segunda
vuelta
Pgina 477
Bloque (bits)
128
64
64
64
64
64
64
Clave (bits)
Vueltas
128
56
64
variable
64
variable
128
16
16
16
-8
16
8
Skipjack
64
80
32
Rijndael
128
128 o ms
flexible
Pgina 478
Pgina 479
Pgina 480
Bloque (bits)
128
64
64
64
Clave (bits)
variable
512
128
256
RC5
variable
variable
variable
SAFER 64
Akelarre
64
variable
64
variable
8
variable
64
64
32
FEAL
Vueltas
variable
16, 24, 32
ms vueltas
32
Pgina 481
Pgina 482
Algoritmo
Kbytes/seg
Triple DES
12
FEAL (32 v)
91
Khufu (32 v)
115
RC5 (16 v)
65
SAFER (12 v)
41
Blowfish (20 v)
110
Pgina 483
Pgina 484
Modos de cifra
Todos los algoritmos pueden usarse aplicando diversos
modos de cifra, entre ellos:
- ECB: Electronic CodeBook (libro electrnico de cdigos)
- CBC: Cipher Block Chaining (encadenamiento de bloques)
- CFB: Cipher FeedBack (realimentacin de bloques)
- OFB: Output FeedBack (realimentacin bloque de salida)
Analizaremos cada uno de ellos para el caso del DES,
aunque el estudio es extensible a todos los dems ya que en
estos modos el cifrador se considera una caja negra.
http://www.itl.nist.gov/fipspubs/fip81.htm
Jorge Rami Aguirre
Pgina 485
Standards llama a
Pgina 486
Pgina 487
K = 72.057.594.037.927.936
Pgina 488
Pgina 489
Pgina 490
Pgina 491
50
42
34
26
18
10
60
52
44
36
28
20
12
62
54
46
38
30
22
14
64
56
48
40
32
24
16
57
49
41
33
25
17
59
51
43
35
27
19
11
61
53
45
37
29
21
13
63
55
47
39
31
23
15
Pgina 492
50
42
34
26
18
10
60
52
44
36
28
20
12
62
54
46
38
30
22
14
64
56
48
40
32
24
16
57
49
41
33
25
17
59
51
43
35
27
19
11
61
53
45
37
29
21
13
63
55
47
39
31
23
15
L0 = 58 50 42 34 26 18 10 02 60 52 44 36
28 20 12 04 62 54 46 38 30 22 14 06
64 56 48 40 32 24 16 08
R0 = 57 49 41 33 25 17 09 01 59 51 43 35
27 19 11 03 61 53 45 37 29 21 13 05
63 55 47 39 31 23 15 07
Pgina 493
48
16
56
24
64
32
39
47
15
55
23
63
31
38
46
14
54
22
62
30
37
45
13
53
21
61
29
36
44
12
52
20
60
28
35
43
11
51
19
59
27
34
42
10
50
18
58
26
33
41
49
17
57
25
Pgina 494
En la prxima
vuelta, la mitad
derecha anterior
pasa ntegra como
mitad izquierda. La
mitad derecha de la
nueva vuelta ser el
ltimo resultado or
exclusivo del ciclo.
Pgina 495
Esquema de la
funcin de cifra
f en cada ciclo
Columnas 1 y
2 repetidas
En las cajas S
se consigue la
fortaleza del
algoritmo. Es
una funcin
unidireccional
y no lineal.
Jorge Rami Aguirre
Pgina 496
S1
1
12
13
S2
18
19
S3
24
25
30
S4
12 13
31
S5
16 17
36
37
S6
42 43
S7
20 21
24 25
48
S8
28 29
32
Pgina 497
10
11 12 13 14 1 5
14
13
15
11
8
3
10
12
15
14
2 13
10
12 11
14
13
11
10
15
12
14
10
13
15 12
5
11
COLUMNAS
S2
F
I
L
A
S
10 11 12 13 14 1 5
15
14
11
13
12
5 10
13
15
14 12
10
11
14
11 10
13
12
15
13
10
15
11
12
5 14
Pgina 498
F
I
L
A
S
10
9 14
15
13
10
13
15
10 13
10 11 12 13 14 1 5
13 12
7 11
14
11
15 14
12
11 15 1
12
10 14
11
12
COLUMNAS
S4
F
I
L
A
S
10 11 12 13 14 1 5
13 14
10
13
11
15
12
10 14
10
12 11
13 15
14
15
10
13
11
12
14
11
12
15
Pgina 499
10
11 12 13 14 1 5
12
10
11
15
13
14
14
11
12
13
0 15
10
11
10 13
15
9 12
14
11
12
13
10
14
6 15
10 11 12 13 14 1 5
COLUMNAS
S6
F
I
L
A
S
12
10 15
13
10
15
12
14 15
14
11
13 14
11
12
10
13
11
12
15
10
11 14
13
Pgina 500
10
F
I
L
A
S
11
14
15
13
12
10
13
11
10 14
12
15
11 13
12
14 10 15
11 13
10
15 14
12
10 11 12 13 14 1 5
11 12 13 14 1 5
COLUMNAS
S8
F
I
L
A
S
13
15 11
10
14
12
15 13
10
12
11
14
11
12 14
10 13
15
14
10
6 11
13 15 12
Pgina 501
explicacin
Pgina 502
28 bits
57
49
41
33
25
17
58
50
42
34
26
18
10
59
51
43
35
27
19
11
60
52
44
36
63
55
47
39
31
23
15
62
54
46
38
30
22
14
61
53
45
37
29
21
13
28
20
12
Pgina 503
28 bits
48 bits
48 bits
48 bits
17
11
24
28
15
21
10
23
19
12
26
16
27
20
13
41
52
31
37
47
55
30
40
51
45
33
48
44
49
39
56
34
53
46
42
50
36
29
32
Pgina 504
28 bits
Vuelta i
10
11
12
13
14
15
16
Pgina 505
Pgina 506
FEFEFEFEFEFEFEFE
1F1F1F1F0E0E0E0E
Los bloques C y D de la
clave son todos 0s 1s.
FE01FE01FE01FE01)
E01FE01FF10EF10E)
E001E001F101F101)
FE1FFE1FFE0EFE0E)
1F011F010E010E01)
FEE0FEE0FEF1FEF1)
Pgina 507
Pgina 508
Pgina 509
Pgina 510
Vector IV = I0
Se encadenan los
bloques de texto en
claro con el bloque del
criptograma anterior.
Usa un vector de
inicializacin IV de 64
bits que se guarda en
secreto.
Jorge Rami Aguirre
Pgina 511
Descifrado
Se descifra el primer bloque con
vector IV:
P1 = D(C1) I0
P1 = D[E(P1 I0)] I0
Se guarda el bloque Ci-1 en un
registro. Se descifra el bloque Ci
y luego XOR entre esos bloques:
Mi = D(Ci) Ci-1
CARACTERSTICAS:
Evita el ataque por repeticin de bloque. Enmascara el mensaje lo
mismo que la cifra en flujo. El espacio de claves es igual a 64 bits.
La propagacin de un error afecta a dos bloques contiguos.
Jorge Rami Aguirre
Pgina 512
Se pueden cifrar
unidades de datos ms
pequeas que bloques,
por lo general un byte.
CIFRAR
Se usa un registro de
desplazamiento RD de
64 bits como vector
inicial IV.
Jorge Rami Aguirre
Pgina 513
Descifrado
Se cifra el registro RD.
Se obtienen de esta forma
los elementos de Ci-d.
Se suma XOR los Ci-d con
los Ci del criptograma para
obtener Pi.
Se realimenta Ci al registro
RD y se repite el proceso.
CARACTERSTICAS:
Evita el ataque por repeticin de bloque; enmascara el mensaje como
en cifra en flujo, el espacio de claves es igual a 64 bits; la propagacin
de un error se limita a un bloque.
Jorge Rami Aguirre
Pgina 514
La realimentacin de la
seal se realiza antes
de la operacin XOR.
El DES, la clave y el
Registro RD actan
como un generador de
secuencia cifrante.
K
Bits menos
significativos
Byte
Mensaje
Bi
DES
Ci-1
Ci
Pgina 515
Pgina 516
Pgina 517
El DES no es un grupo
M1 = ESTO ESUN GRUP O
k1 = PACO PACO PACO P
C1 = TSVD TSWB VRWE E
Pgina 518
DES
k2
C
DES
k1 y k2 son
claves n bits
Pgina 519
DES
k1 y k2 son
claves n bits
k2
Y
DES
Pgina 520
k2
k1
E (DES)
D (DES)
E (DES)
k1 y k2 son
claves n bits
Pgina 521
k2
k1
E (DES)
D (DES)
E (DES)
k1 y k2
claves de
64 bits
Pgina 522
Pgina 523
Pgina 524
XOR
Suma mdulo 216 (mod 65.536)
Multiplicacin mdulo 216+1 (65.537)
Pgina 525
Y
00
00
00
00
01
01
01
01
10
10
10
10
11
11
11
11
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
X+Y
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
0
1
2
3
1
2
3
0
2
3
0
1
3
0
1
2
00
01
10
11
01
10
11
00
10
11
00
01
11
00
01
10
1
0
3
2
0
1
2
3
3
2
0
1
2
3
1
0
X Y
01
00
11
10
00
01
10
11
11
10
00
01
10
11
01
00
XY
0
00
1
01
2
10
3
11
1
01
0
00
3
11
2
10
2
10
3
11
0
00
1
01
3
11
2
10
1
01
0
00
n=2
dos bits
Veremos cmo
se opera con la
multiplicacin.
La suma y el or
exclusivo son
operaciones
similares.
Operaciones: + mod 2n (mod 4), mod 2n+1 (mod 5), XOR (mod 2)
Jorge Rami Aguirre
Pgina 526
0
0
0
0
1
1
1
1
2
2
2
2
3
3
3
3
Y
00
0
00
00
1
01
00
2
10
00
3
11
01
0
00
01
1
01
2
01
2
01 = 2 x 1 = 410
01
3
11
= 4 mod
5 00
10
0
10
01
= 4 =120
10
10
(por10definicin)
3
11
11
0
00
11
1
01
11
2
10
11
3
11
X+Y
0
1
2
3
1
2
3
0
2
3
0
1
3
0
1
2
00
01
10
11
01
10
11
00
10
11
00
0201
=
11
=
00
01
=
10
X Y
1
01
0
00
3
11
2
10
0
00
1
01
2
10
3
11
3
11
2
10
0
00
2
1
2 x2 2 = 801
10
8 mod
5 11
3
1
01
3 0
00
0
1
2
3
1
0
3
2
2
3
0
1
3
2
1
0
XY
00
01
10
11
01
00
11
10
10
11
00
01
11
10
01
00
Recuerde que 0
es igual a 2n = 4
por lo que:
00 = 22 x 22
= 16 mod 5
=1
03 = 22 x 3 = 12
= 12 mod 5
=2
Operaciones: + mod 2n (mod 4), mod 2n+1 (mod 5), XOR (mod 2)
Los dems clculos con los diferentes valores de X e Y son todos similares
Jorge Rami Aguirre
Pgina 527
MA
Operaciones inversas
al comienzo y al final
del algoritmo. Esto
permite usar el mismo
algoritmo para cifrar
que para descifrar.
Bloque principal
Jorge Rami Aguirre
Pgina 528
Pgina 529
Se produce un desplazamiento de 25
bits a la izquierda en cada una de las
7 fases de generacin de claves.
26
Con los
primeros
128 bits se
generan 8
subclaves
de 16 bits
cada una.
Los 64
ltimos
bits de
la fase 7
no se
usan.
23
86
Pgina 530
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016
026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041
051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066
076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
126 127 128 001 002 003 004 005 006 007 008 009 010 011 012 103
023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038
.
.
.
.
.
.
.
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025
035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050
060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075
085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022
Pgina 531
k1k2k3k4k5k6
k7k8k9k10k11k12
k13k14k15k16k17k18
k19k20k21k22k23k24
k25k26k27k28k29k30
k31k32k33k34k35k36
k37k38k39k40k41k42
k43k44k45k46k47k48
k49k50k51k52
B[196]
B[97128; 2689]
B[90128; 125; 5182]
B[83128; 150]
B[76128; 143]
B[4475; 101128; 136]
B[37100; 126128; 129]
B[30125]
B[2386]
Pgina 532
001
097
090
083
076
044
037
030
002
098
091
084
077
045
038
031
003
099
092
085
078
046
039
032
004
100
093
086
079
047
040
033
005
101
094
087
080
048
041
034
006
102
095
088
081
049
042
035
007
103
096
089
082
050
043
036
008
104
097
090
083
051
044
037
009
105
098
091
084
052
045
038
010
106
099
092
085
053
046
039
011
107
100
093
086
054
047
040
012
108
101
094
087
055
048
041
013
109
102
095
088
056
049
042
014
110
103
096
089
057
050
043
015
111
104
097
090
058
051
044
016
112
105
098
091
059
052
045
Pgina 533
Pgina 534
Pgina 535
d2 = -k50
d8 = -k45
d14 = -k39
d20 = -k33
d26 = -k27
d32 = -k21
d38 = -k15
d44 = -k9
d50 = -k2
d3 = -k51
d9 = -k44
d15 = -k38
d21 = -k32
d27 = -k26
d33 = -k20
d39 = -k14
d45 = -k8
d51 = -k3
Inversos de la suma
d4 = k52-1
d10 = k46-1
d16 = k40-1
d22 = k34-1
d28 = k28-1
d34 = k22-1
d40 = k16-1
d46 = k10-1
d52 = k4-1
d5 = k47
d11 = k41
d17 = k35
d23 = k29
d29 = k23
d35 = k17
d41 = k11
d47 = k5
d6 = k48
d12 = k42
d18 = k36
d24 = k30
d30 = k24
d36 = k18
d42 = k12
d48 = k6
Pgina 536
Pgina 537
d1 = k49-1
d7 = k43-1
d13 = k37-1
d19 = k31-1
d25 = k25-1
d31 = k19-1
d37 = k13-1
d43 = k7-1
d49 = k1-1
d2 = -k50
d8 = -k45
d14 = -k39
d20 = -k33
d26 = -k27
d32 = -k21
d38 = -k15
d44 = -k9
d50 = -k2
d3 = -k51
d9 = -k44
d15 = -k38
d21 = -k32
d27 = -k26
d33 = -k20
d39 = -k14
d45 = -k8
d51 = -k3
d4 = k52-1
d10 = k46-1
d16 = k40-1
d22 = k34-1
d28 = k28-1
d34 = k22-1
d40 = k16-1
d46 = k10-1
d52 = k4-1
d5 = k47
d11 = k41
d17 = k35
d23 = k29
d29 = k23
d35 = k17
d41 = k11
d47 = k5
d6 = k48
d12 = k42
d18 = k36
d24 = k30
d30 = k24
d36 = k18
d42 = k12
d48 = k6
Pgina 538
Pgina 539
Pgina 540
Pgina 541
Pgina 542
Pgina 543
Pgina 544
Pgina 545
Pgina 546
DES Challenge I y II
29 enero 1997: DES Challenge I. Se rompe la clave en 96
das con 80.000 de ordenadores en Internet que evalan
7.000 millones de clave por segundo. Para encontrar la
clave se debe recorrer el 25% del espacio de claves .
13 enero 1998: DES Challenge II-1. Se rompe la clave en
39 das con un ataque tipo distribuido por distributed.net
que llega a evaluar 34.000 millones de claves por segundo
y debe recorrer el 88% del espacio de claves .
13 julio de 1998: DES Challenge II-2. Electronic Frontier
Foundation EFF crea el DES Cracker con una inversin
de US $ 200.000 y en 56 horas (2 das) rompe la clave
evaluando 90.000 millones de claves por segundo.
Jorge Rami Aguirre
Pgina 547
Pgina 548
40 bits
2 segundos
Pgina 549
http://www.iaik.tu-graz.ac.at/research/krypto/AES/
Pgina 550
Pgina 551
Ejemplos
Pgina 552
Pgina 553
Pgina 554
Pgina 555
x8 = x4 + x3 + x + 1
AB = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1
x13 = x5x8 = x5(x4 + x3 + x + 1) = x9 + x8 + x6 + x5
x13 = x (x4 + x3 + x + 1) + (x4 + x3 + x + 1) + x6 + x5
x13 = (x5 + x4 + x2 + x) + (x4 + x3 + x + 1) + x6 + x5
x13 = x6 + x3 + x2 + 1
Es mucho ms complejo, pero repitiendo el mismo desarrollo
para x11, x9 y x8, reduciendo en cada caso mod 2, obtenemos:
AB = x7 + x6 + 1 = 1100 0001 = c116
Jorge Rami Aguirre
Pgina 556
Pgina 557
http://www.criptored.upm.es/guiateoria/gt_m117i.htm
Pgina 558
a4
a8
a12
k0
k4
k8
k12
a1
a5
a9
a13
k1
k5
k9
k13
a2
a6
a10
a14
k2
k6
k10
k14
k3
k7
k11
k15
a3
a7
a11
Estados
a15
k0
k4
k8
k12
k16
k20
k0
k4
k8
k12
k16
k20
k24
k28
k1
k5
k9
k13
k17
k21
k1
k5
k9
k13
k17
k21
k25
k29
k2
k6
k10
k14
k18
k22
k2
k6
k10
k14
k18
k22
k26
k30
k3
k7
k11
k15
k19
k23
k3
k7
k11
k15
k19
k23
k27
k31
Pgina 559
Combinaciones de estados
Combinaciones
posibles de
estados en AES
AES 128
AES 192
AES 256
Longitud del
bloque
(Nb palabras)
4
4
4
Longitud de la
clave
(Nk palabras)
4
6
8
Nmero de
Rondas
(Nr)
10
12
14
Pgina 560
Funcin ByteSub
S-Box
S0,0
S0,1
S0,2
S0,3
S0,0
S0,1
S0,2
S0,3
S1,0
S1,1
S1,2
S1,3
S1,0
S1,1
S1,2
S1,3
S2,0
S2,1
S2,2
S2,3
S2,0
S2,1
S2,2
S2,3
S3,0
S3,1
S3,2
S3,3
S3,0
S3,1
S3,2
S3,3
Pgina 561
Pgina 562
10001111
11000111
11100011
11110001
11111000
01111100
00111110
00011111
b4 = b4 b0 b1 b2 b3 c4
b5 = b1 b1 b2 b3 b4 c5
b6 = b6 b2 b3 b4 b5 c6
b7 = b7 b3 b4 b5 b6 c7
b0
b1
b2
b3
b4
b5
b6
b7
1
1
0
0
0
1
1
0
Representacin
matricial
Valor {63}16 o
{011000011}2
Es el inverso del
valor de entrada
Tabla ByteSub
Usando la siguiente
tabla, se llega a
igual resultado que
calculando el
inverso y luego
aplicando la
transformacin
matricial mostrada
en la diapositiva
anterior.
En la siguiente
diapositiva hay un
ejemplo para el
valor 5a mostrado.
Jorge Rami Aguirre
Pgina 563
Pgina 564
5a = 01011010 = x6 + x4 + x3 + x + 1
inv (5A) = 22 = 00100010 (segn la tabla dada)
10001111
11000111
11100011
11110001
11111000
01111100
00111110
00011111
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
Pgina 565
Funcin ShiftRow
La funcin consiste en desplazar bloques de un byte hacia la
izquierda mdulo columna (en este caso 4) dentro de una fila.
As la fila 0 no desplaza, la fila 1 desplaza un byte, la fila 2
desplaza dos bytes y la fila 3 desplaza tres bytes como se muestra.
S0,0
S0,1
S0,2
S0,3
S0,0
S0,1
S0,2
S0,3
S1,0
S1,1
S1,2
S1,3
S1,1
S1,2
S1,3
S1,0
S2,0
S2,1
S2,2
S2,3
S2,2
S2,3
S2,0
S2,1
S3,0
S3,1
S3,2
S3,3
S3,3
S3,0
S3,1
S3,2
Pgina 566
Funcin MixColumns
Opera sobre columnas que son consideradas como un polinomio
sobre GF(28) multiplicando las columnas mdulo x4 + 1 por este
polinomio fijo, en donde los valores {} estn en hexadecimal, que
es primo relativo con x4 + 1 y por tanto asegura el inverso.
a(x) = {03}x3 + {01}x2 + {01}x + {02}
Por tanto, recuerde que {03} = x + 1, {02} = x, {01} = 1.
Representacin
matricial de la
funcin
MixColumns
S0,C
S1,C
S2,C
S3,C
02
01
01
03
03
02
01
01
01
03
02
01
01
01
03
02
S0,C
S1,C
S2,C
S3,C
Para
0 C < Nb
Pgina 567
Si suponemos
que el estado
intermedio es
el indicado:
e1
a8
63
0d
fb
18
f4
c8
96
5b
73
11
7c
a0
e6
fd
S0,0 = d2 1d 96 7c
Luego: S0,0 = 25
Los bytes hasta S4,4 se
calculan de forma similar.
Pgina 568
Funcin AddRoundKey
Se sumarn sumarn or
exclusivo el estado
intermedio con la clave de
cada ronda.
En la ronda 0 ser el or
exclusivo entre el texto de
entrada y la clave inicial; en
las rondas siguientes (p.e. 1
a 9) ser el or exclusivo de
las subclave de cada ronda
con la salida de la funcin
MixColumns y en la ltima
ronda (10) el or exclusivo
de la subclave de estado 10
y la salida de ShiftRows.
Jorge Rami Aguirre
S0,0
S0,1
S0,2
S0,3
S1,0
S1,1
S1,2
S1,3
S2,0
S2,1
S2,2
S2,3
S3,0
S3,1
S3,2
S3,3
AddRoundKey
S0,0 K0
S0,1 K1
S0,2 K2
S0,3 K3
S1,0 K4
S1,1 K5
S1,2 K6
S1,3 K7
S2,0 K8
S2,1 K9
S2,2 K10
S2,3 K11
S3,0 K12
S3,1 K13
S3,2 K14
S3,3 K15
Pgina 569
AddRoundKey en la vuelta 0
Si el bloque de entrada y la clave son de 128 bits, (Nb=4 y Nk =4) con valores
Entrada: 32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34
Clave: 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c
entonces
Ronda Estado Inicio
ByteSub
ShifRows
MixColums
AddRoundKey
Entrada
32 88 31 e0
2b 28 ab 09
43 5a 31 37
f6 30 98 07
a8 8d a2 34
19 a0 9a e9
3d f4 c6 f8
e3 e2 8d 48
be 2b 2a 08
7e ae f7 cf
15 d2 15 4f
16 a6 88 3c
La vuelta 10 y el
criptograma final se
muestran en la
prxima diapositiva
Pgina 570
AddRoundKey en la vuelta 10
Ronda Estado Inicio
9
10
ByteSub
ShifRows
MixColums
AddRoundKey
...
eb 59 8b 1b
e9 cb 3d af
e9 cb 3d af
40 2e a1 c3
09 31 32 2e
31 32 2e 09
f2 38 13 42
89 07 7d 2c
7d 2c 89 07
1e 84 e7 d2
72 5f 94 b5
b5 72 5f 94
d0 c9 e1 b6
14 ee 3f 63
f9 25 0c 0c
a8 89 c8 a6
Salida
39 02 dc 19
25 dc 11 6a
84 09 85 0b
1d fb 97 32
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
Jorge Rami Aguirre
Pgina 571
Bloque / Clave
Nk = 4
(128 bits)
Nk = 6
(192 bits)
Nk = 8
(256 bits)
Nb = 4
128 bits
Nr = 10
1.408 bits
Nr = 12
1.664 bits
Nr = 14
1.920 bits
Nb = 6
192 bits
Nr = 12
2.304 bits
Nr = 12
2.496 bits
Nr = 14
2.880 bits
Nb = 8
256 bits
Nr = 14
3.840 bits
Nr = 14
3.328 bits
Nr = 14
3.840 bits
...
Pgina 572
Si Nk > 6
El valor de la variable i debe satisfacer la expresin i mod Nk = 4.
Las palabras de subclaves se calcularn:
W(i) = W(i - Nk) xor ByteSub [W(i - 1)]
Jorge Rami Aguirre
Pgina 573
K =
2b 28 ab 09
7e ae f7 cf
7e ae f7 cf
15 d2 15 4f
15 d2 15 4f
16 a6 88 3c
RotWord
16 a6 88 3c
2b 28 ab 09
Pgina 574
16 a6 88 3c
(Nk = 4)
W(0) = 2b 7e 15 16
W(1) = 28 ae d2 a6
W(2) = ab f7 15 88
W(3) = 09 cf 4f 3c
2b 7e 15 16
8b 84 eb 01
a0 fa fe 17
a0 88 23 2a
fa 54 a3 6c
fe 2c 39 76
17 b1 39 05
Pgina 575
16 a6 88 3c
W(0) = 2b 7e 15 16
W(1) = 28 ae d2 a6
W(2) = ab f7 15 88
W(3) = 09 cf 4f 3c
28 ae d2 a6
a0 fa fe 17
88 54 2c b1
a0 88 23 2a
fa 54 a3 6c
fe 2c 39 76
17 b1 39 05
(Nk = 4)
Pgina 576
Pgina 577
Vuelta Final
InvAddRoundKey
InvShiftRow
InvByteSub
Vuelta estndar
InvAddRoundKey
InvMixColumn
InvShiftRow
InvByteSub
Salida
InvAddRoundKey
Pgina 578
InvShiftRows
En este caso se desplazan bloques de un byte hacia la derecha
mdulo columna (en este caso 4) dentro de una fila.
As la fila 0 no desplaza, la fila 1 desplaza un byte, la fila 2
desplaza dos bytes y la fila 3 desplaza tres bytes como se muestra.
S0,0
S0,1
S0,2
S0,3
S0,0
S0,1
S0,2
S0,3
S1,0
S1,1
S1,2
S1,3
S1,3
S1,0
S1,1
S1,2
S2,0
S2,1
S2,2
S2,3
S2,2
S2,3
S2,0
S2,1
S3,0
S3,1
S3,2
S3,3
S3,1
S3,2
S3,3
S3,0
Tabla InvByteSub
El inverso
consistir en
devolver los
valores a su
posicin original
en la tabla
ByteSub.
Recordando el
valor mostrado en
la tabla ByteSub,
se muestra que el
InvByteSub de be
es igual a 5a.
Jorge Rami Aguirre
Pgina 579
Pgina 580
InvMixColumns
Como la transformacin MixColumns multiplicaba por un
polinomio fijo a(x) = {03}x3 + {01}x2 + {01}x + {02}, primo
relativo con x4 + 1, su inverso ser.
b(x) = {0B}x3 + {0D}x2 + {09}x + {0E}
Representacin
matricial de la
funcin
InvMixColumns
S0,C
S1,C
S2,C
S3,C
0e
09
0d
0b
0b
0e
09
0d
0d
0b
0e
09
09
0d
0b
0e
S0,C
S1,C
S2,C
S3,C
Para
0 C < Nb
Pgina 581
... pero
Pgina 582
Cuestiones y ejercicios (1 de 3)
1. Qu particularidad tiene el cifrado tipo Feistel?
2. Qu importante diferencia tiene el algoritmo Skipjack con respecto
a todos los dems? Razone si eso es bueno o malo en criptografa.
3. Cul es la razn principal de la debilidad del algoritmo DES?
4. Con cul de las dos versiones respecto a la reduccin de clave
aplicada al DES por la NSA se queda Ud.? Razone las dos
respuestas posibles.
5. Qu tamao de bloque de mensaje cifra el DES, con qu longitud
de clave y con cuntas vueltas?
6. Tiene algn inters criptogrfico la tabla de permutacin inicial IP
que se repite en sentido contrario al final en el DES? Por qu?
7. Qu distribucin especial observa en los dos bloques de texto a
cifrar L0 y R0 en DES? Qu separacin en bits hay entre ellos?
Jorge Rami Aguirre
Pgina 583
Cuestiones y ejercicios (2 de 3)
8. Cmo se las arregla DES para realizar operaciones suma mdulo
dos con sub-bloques de texto de 32 bits y sub-claves de 56 bits?
9. Qu dos importantes funciones cumplen las cajas S en el DES?
10. En la caja S3 del DES entra la secuencia de bits 101101, qu sale?
11. Si la clave DES en ASCII (no nmeros) es HOLAPACO, cules
sern la primera y segunda sub-claves de cifrado?
12. Por qu no debe usarse nunca el modo de cifra ECB?
13. Podemos usar el DES como un generador de secuencia cifrante?
14. Por qu decimos que el DES no es un grupo? Qu significa eso?
15. En qu consiste un ataque por encuentro a medio camino?
16. Por qu se usa en el triple DES un cifrado con slo dos claves tipo
EDE y no con tres como su nombre indica?
Pgina 584
Cuestiones y ejercicios (3 de 3)
17. Por qu en IDEA se usa una palabra de 16 bits y no de 32 bits? Se
podra usar una palabra de 8 bits 24 bits? Justifique su respuesta.
18. Encuentre los resultados de las tres operaciones bsicas para un
sistema simulado IDEA que trabaja con 4 bits.
19. Qu tamao de bloque cifra IDEA, con qu longitud de clave y con
cuntas vueltas?
20. Cmo se generan las sub-claves en IDEA?
21. Cules son las claves Z9 y Z10 en un sistema IDEA en el que la
clave maestra en ASCII es K = UnaClaveDePrueba.
22. Encuentre las claves de descifrado de las siguientes claves de cifra
en IDEA: k12 = 3.256; k13 = 34.517; k14 = 45.592.
23. Sume y multiplique 31 y 18 en GF(28) segn algoritmo Rijndael.
24. Invente Ud. mismo diversos ejercicios sobre el algoritmo AES.
Jorge Rami Aguirre
Pgina 585
2.
3.
4.
5.
http://www.criptored.upm.es/software/sw_m001j.htm
Pgina 586
Pgina 587
Pgina 588
Pgina 589
2.
3.
4.
5.
6.
http://www.criptored.upm.es/software/sw_m001f.htm
Cree un archivo txt con el siguiente texto Una clave con letras C Cree
una clave K = CCCCCCCCCCCCCCCC de nombre ClaveTodasC. Cifre
el archivo y haga un seguimiento de las subclaves de cifra generadas. Por
qu aparecen bloques de 8 subclaves con valores iguales y cuatro al final?
Compruebe con la calculadora de Windows las subclaves Z1 y Z9.
Cifre nuevamente ese archivo con una clave de nombre UnaClaveMejor y
valor K = EstaClaveEsBuena. Vuelva a hacer el seguimiento de subclaves,
observe lo que sucede y justifquelo.
Compruebe con la calculadora de Windows las subclaves Z1 y Z2
Con esta nueva clave cifre el archivo con texto De64bits y vea el archivo
cifrado con cuatro bloques de 16 bits. Cifre ahora el archivo con texto
mayor Ms de 64 bits y vuelva a ver la cifra. Saque conclusiones.
Descifre esta ltima cifra y observe las subclaves dc descifrado.
Pgina 590
Con las herramientas del programa compruebe que las claves de descifrado
son las inversas multiplicativas, aditivas o del or exclusivo en funcin de la
zona del algoritmo donde se han usado las claves de cifrado, por ejemplo:
d47 = k5
d48 = k6
d49 = inv (k1, 65537) multiplicativo
d50 = inv (k2, 65536) aditivo (el complemento a n)
d51 = inv (k3, 65536) aditivo (el complemento a n)
d52 = inv (k4, 65537) multiplicativo
8.
9.