Documentos de Académico
Documentos de Profesional
Documentos de Cultura
122 Cifra Simetrica
122 Cifra Simetrica
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 2
N/2
A Xi
BLOQUE B
Xi
A Xi
ki
FUNCIN f
ki
FUNCIN f
Xi
N/2
B Xi
B Xi
Madrid (Espaa) 2006
Puesto que Y Xi Xi = Y
Pgina 3
Pgina 4
Pgina 5
==
==
==
MM ==
STAR
STAR
TUBS
TUBS
BUST
BUST
STAR WARS,
WARS, LA
LA MISIN
MISIN CONTINA
CONTINA
STAR
WARS LAMI
LAMI SION
SION CONT
CONT INUA
INUA
WARS
WARS MBNJ
MBNJ SION
SION DPU
DPU INUA
INUA
WARS
WARS NBJM
NBJM SION
SION PUD
PUD INUA
INUA
WARS
MM22
SS22
PP22
==
==
==
WARS BUST
BUST SION
SION NBJM
NBJM INUA
INUA PUD
PUD
WARS
XBST BUST
BUST TJP
TJP NBJM
NBJM JVB
JVB PUD
PUD
XBST
SBTX BUST
BUST PJT
PJT NBJM
NBJM VBJ
VBJ PUD
PUD
SBTX
Si: +1 mod 27
Pi: 3241
Primera
vuelta
Segunda
vuelta
Pgina 6
Bloque (bits)
Clave (bits)
Vueltas
Lucifer
DES
Loki
RC2
CAST
Blowfish
IDEA
128
64
64
64
64
64
64
128
56
64
variable
64
variable
128
16
16
16
-8
16
8
Skipjack
Rijndael
64
128
80
128 o ms
32
flexible
Pgina 7
Pgina 8
Pgina 9
Bloque (bits)
128
Khufu
Khafre
Gost
RC5
SAFER 64
Akelarre
FEAL
Clave (bits)
variable
Vueltas
variable
64
64
64
512
128
256
16, 24, 32
ms vueltas
32
variable
variable
variable
64
64
variable
variable
variable
64
64
32
Pgina 10
Pgina 11
Kbytes/seg
Algoritmo
Kbytes/seg
DES
35
Triple DES
12
IDEA
53
FEAL (32 v)
91
Khufu (16 v)
221
Khufu (32 v)
115
RC5 (8 v)
127
RC5 (16 v)
65
81
SAFER (12 v)
41
182
Blowfish (20 v)
SAFER (6 v)
Blowfish (12 v)
110
Pgina 12
Pgina 13
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 14
Standards llama a
Pgina 15
Pgina 16
K = 72.057.594.037.927.936
Pgina 17
Pgina 18
Cifrador de bloque
Tipo Feistel
Longitud de clave de 56 bits
Realiza 16 vueltas.
La cifra del bloque
central usa
b
tcnicas de sustituciones y
permutaciones.
Para poder realizar las sumas or
exclusivo, usar permutaciones
con expansin y compresin para
igualar el nmero de bits.
En el descifrado se aplican claves y
desplazamientos en sentido inverso
Jorge Rami Aguirre
Pgina 19
Pgina 20
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
Elbit
bit11se
selleva
llevaaalalaposicin
posicin40
40
El
Pgina 21
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 22
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
Elbit
bit40
40vuelve
vuelveaalalaposicin
posicin11
El
todoslos
losdems
demsbits
bitsaasu
su
yytodos
posicininicial
inicialantes
antesde
deIP.
IP.
posicin
Jorge Rami Aguirre
Pgina 23
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 24
Esquema de la
funcin de cifra
f en cada ciclo
Enlas
lascajas
cajasSS
En
seconsigue
consiguelala
se
fortalezadel
del
fortaleza
algoritmo.Es
Es
algoritmo.
unafuncin
funcin
una
unidireccional
unidireccional
nolineal.
lineal.
yyno
Jorge Rami Aguirre
Columnas 1 y
2 repetidas
Pgina 25
S1
S2
12
13
18
S3
19
12 13
24
S4
25
16 17
30
S5
31
20 21
36
S6
37
24 25
42 43
S7
28 29
48
S8
32
Pgina 26
0
1
2
3
14
7
0
8
4
13
15
11
10
14
2 13
10
14
13
11
15
13
15
1
12
10 11 12 13
15 12
5
11
14
15
12
12 11
10
14
10
C O LU M N AS
S2
F
I
L
A
S
15
14
11
13
15
14
11 10
13
10
15
10
11 12
13 14 1 5
13
12
5 10
14 12
10
11
13
12
15
11
12
5 14
Pgina 27
0
1
2
3
10
13
1
13
7
1
10 11 12 13 14 1 5
9 14
15
10
14
12
15
11
12
10 14
10 13
15 14
11
13 12
7 11
11 15
12
C O LU M N AS
S4
F
I
L
A
S
0
0
1
2
3
7
15
13
9
10
13 14
10
11
15
12
10 14
12 11
13 15
14
3
14
15
10
13
11
12
10
11 12
11
13 14 1 5
12
Pgina 28
12
10
11
11
12
14
6
4
11
11
12
10 11 12 13
15
13
14
13
0 15
10
10 13
15
9 12
14
14
13
10
6 15
14
15
9
C O LU M N AS
S6
F
I
L
A
S
12
10 15
13
10
15
12
14 15
12
12
15
10
10 11 12 13 14 1 5
3
14
11
13 14
11
10
13
11
11 14
13
Pgina 29
11
14
15
13
12
10
1
13
11
10 14
12
15
11 13
12
14 10 15
11 13
10
15 14
12
10
11 12
10 11 12 13
14
15
C O LU M N AS
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
1
7
13 15 12
13 14 1 5
Pgina 30
explicacin
Pgina 31
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 32
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 33
28 bits
Vuelta i
10
11
12
13
14
15
16
Pgina 34
Pgina 35
FEFEFEFEFEFEFEFE
1F1F1F1F0E0E0E0E
Los bloques C y D de la
clave son todos 0s 1s.
FE01FE01FE01FE01)
E01FE01FF10EF10E)
E001E001F101F101)
FE1FFE1FFE0EFE0E)
1F011F010E010E01)
FEE0FEE0FEF1FEF1)
Pgina 36
Pgina 37
Pgina 38
Vector IV = I0
Pgina 39
Pgina 40
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 41
Se pueden cifrar
unidades de datos ms
pequeas que bloques,
por lo general un byte.
Se usa un registro de
desplazamiento RD de
64 bits como vector
inicial IV.
Jorge Rami Aguirre
CIFRAR
Pgina 42
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 43
K
Bits menos
significativos
Byte
Mensaje
Bi
DES
Ci-1
Ci
Pgina 44
Pgina 45
Pgina 46
El DES no es un grupo
M1 = ESTO ESUN GRUP O
Pgina 47
DES
k2
C
DES
k1 y k2 son
claves n bits
Pgina 48
DES
k1 y k2 son
claves n bits
k2
Y
DES
Pgina 49
E (DES)
k2
D (DES)
k1
E (DES)
k1 y k2 son
claves n bits
Pgina 50
E (DES)
k2
D (DES)
k1 y k2
claves de
64 bits
k1
E (DES)
Pgina 51
Pgina 52
Pgina 53
Es primo y se
asegura el inverso
multiplicativo
Pgina 54
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
XY
1
01
0
00
3
11
2
10
0
00
1
01
2
10
3
11
3
11
2
10
0
00
1
01
2
10
3
11
1
01
0
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 55
X+Y
X Y
0
00
1
01
1
01
0
00
2
10
3
11
3
11
2
10
1
01
0
00
2
10
1
01
3
11
2
10
0
00
3
11
2
10
3
11
3
11
2
10
0
00
0
00
2
=
2
102
01
2x 12 = 8 01
0211= 2 x2 2 = 810
3
=00=88mod
55 11
mod
0
3
1
01
=01=33 1
2
10
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
Recuerdeque
que00
Recuerde
igualaa22n n==44
esesigual
porloloque:
que:
por
00==222 2xx222 2
00
16mod
mod 55
==16
==11
03==222 2xx33==12
12
03
12mod
mod 55
==12
==22
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 56
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 57
Pgina 58
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 59
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 60
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 61
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 62
Pgina 63
Pgina 64
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
Inversos del producto
Jorge Rami Aguirre
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 65
Pgina 66
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 67
Pgina 68
Pgina 69
Pgina 70
Pgina 71
Pgina 72
Pgina 73
Pgina 74
Pgina 75
DES Challenge I y II
Pgina 76
Pgina 77
40 bits
2 segundos
48 bits
9 minutos
56 bits
40 horas
64 bits
14 meses
72 bits
305 aos
80 bits
96 bits
112 bits
128 bits
Edad universo
11
37
Pgina 78
http://www.iaik.tu-graz.ac.at/research/krypto/AES/
Pgina 79
Pgina 80
Pgina 81
Pgina 82
Pgina 83
Pgina 84
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 85
Pgina 86
http://www.criptored.upm.es/guiateoria/gt_m117i.htm
Pgina 87
a4
a8
a12
k0
k4
k8
k12
a1
a5
a9
a13
k1
k5
k9
k13
a2
a6
a10
a14
k2
k6
k10
k14
a3
a7
a11
a15
k3
k7
k11
k15
Estados
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 88
Combinaciones de estados
Combinaciones
posibles de
estados en AES
Longitud del
bloque
(Nb palabras)
Longitud de la
clave
(Nk palabras)
Nmero de
Rondas
(Nr)
AES 128
AES 192
AES 256
4
4
4
4
6
8
10
12
14
Pgina 89
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 90
Pgina 91
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 92
Pgina 93
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
Al mismo
valor se llega
si en la tabla
buscamos la
interseccin
entre la fila 5 y
la columna a:
el resultado es
el valor be.
Pgina 94
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 95
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 96
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 97
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 98
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
Entrada
ByteSub
ShifRows
MixColums
32 88 31 e0
2b 28 ab 09
43 5a 31 37
7e ae f7 cf
f6 30 98 07
a8 8d a2 34
19 a0 9a e9
AddRoundKey
3d f4 c6 f8
e3 e2 8d 48
be 2b 2a 08
16 a6 88 3c
15 d2 15 4f
0001 1001 = 19
La vuelta 10 y el
criptograma final se
muestran en la
prxima diapositiva
Pgina 99
AddRoundKey en la vuelta 10
Ronda Estado Inicio
9
10
ShifRows
MixColums
AddRoundKey
...
eb 59 8b 1b
e9 cb 3d af
e9 cb 3d af
d0 c9 e1 b6
40 2e a1 c3
09 31 32 2e
31 32 2e 09
14 ee 3f 63
f2 38 13 42
89 07 7d 2c
7d 2c 89 07
1e 84 e7 d2
72 5f 94 b5
b5 72 5f 94
39 02 dc 19
Salida
ByteSub
25 dc 11 6a
84 09 85 0b
1d fb 97 32
f9 25 0c 0c
a8 89 c8 a6
Pgina 100
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
W1
W2
W3
W4
W5
W6
W6
W7
W8
...
Pgina 101
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 102
K =
2b 28 ab 09
7e ae f7 cf
15 d2 15 4f
16 a6 88 3c
7e ae f7 cf
RotWord
15 d2 15 4f
16 a6 88 3c
2b 28 ab 09
Pgina 103
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 104
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 105
Pgina 106
Vuelta Final
InvAddRoundKey
InvShiftRow
InvByteSub
Vuelta estndar
InvAddRoundKey
InvMixColumn
InvShiftRow
InvByteSub
Salida
InvAddRoundKey
Pgina 107
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 108
Pgina 109
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 110
... pero
Pgina 111
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 112
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?
Jorge Rami Aguirre
Pgina 113
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 114
2.
3.
4.
5.
http://www.criptored.upm.es/software/sw_m001j.htm
Pgina 115
Pgina 116
Pgina 117
Pgina 118
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 Z 1 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 Z 1 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 119
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.