Sei sulla pagina 1di 238

Teoría de Códigos y Criptografía

Pedro Valero Mejía

UAM - Curso 2015/2016 C1

11 de febrero de 2016 14:31

Apuntes UAM Doble Grado Mat.Inf.

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

Índice general

I Ideas generales

 

4

I.1

Modelo básico

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

I.1.1

Poca seguridad .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

I.1.2

Poca fiabilidad

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

I.1.3

Poca capacidad

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

II Criptosistemas clásicos

 

6

II.1

Esteganografía

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

II.2

Criptografía

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

II.2.1

El criptosistema de Cesar

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

II.2.2

Formalización

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

II.3

Criptosistema afín (sobre letras) .

II.3.1

. ¿Para qué valores de a,b es f a,b inyectiva?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

8

9

II.3.2

La función de Euler

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

II.4

Criptosistema de sustitución

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

II.5

Definción de Criptabeto

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

II.6

Lucha contra el análisis de frecuencias

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

II.6.1

II.6.2

Sustitución polialfabética

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

20

Criptosistema de Vigenère

.

.

.

.

.

.

.

.

.

.

.

.

23

III De la criptografía clásica a la de clave pública

 

25

III.1

Enigma

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

III.2

Criptosistemas de clave simétrica

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

III.3

III.4

. Usos criptográficos de las funciones de un sólo sentido

Estimaciones de tiempo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

29

31

III.4.1

Compartición de clave privada .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

31

III.4.2 Recibir mensajes cifrados sin necesidad de acordar claves a priori 32

III.4.3

Firmas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

32

III.4.4

Identificación

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

32

III.4.5

Challenge: Identificación a partir de otro

.

.

.

.

.

.

.

.

.

.

.

.

33

III.4.6

Tarjeta de crédito

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

33

III.4.7

El gran cambio de la tecnología moderna

34

III.5

Modos de ataque

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

IV El criptosistema RSA

 

36

IV.1

Generación de claves

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

36

IV.2 Manejo de las funciones

IV.3

. Tratamiento de los mensajes .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

37

38

0 Documento compilado el 11 de febrero de 2016 a las 14:31

1 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

IV.4

. IV.4.1 Ataque de texto en claro elegido

Ataques contra RSA

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

38

39

IV.5

. IV.7 Otros criptosistemas de clave pública

. IV.6 Elección de primos para RSA

Cifrado y firma con RSA .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

41

41

42

V Algoritmos de factorización y tests de primalidad

.

.

V.1

Test de primalidad

V.1.1

. Tests probabilísticos

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

43

44

45

V.1.2

. Números de Carmichael

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

47

V.2

V.1.3

Algoritmos de Factorización

V.2.1

Test de primalidad de Miller-Marsin (1974)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

50

52

Idea detrás de los métodos modernos de criba

.

.

.

.

.

.

.

.

.

55

VI Otros sistemas de clave pública y más aplicaciones

 

58

VI.1 Criptosistema de ElGamal

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

58

VIICódigos detectores y correctores de errores

59

VII.1 Motivación

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

59

VII.2 Distancia de Hamming .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

61

VII.3 Código de barras

. VII.3.1 Detección de errores

.

. VII.3.2 Corrección de errores .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

69

70

71

VII.4 International Standard Book Number

72

VII.4.1 Detección de errores

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

73

VII.4.2 Corrección de errores .

.

.

.

.

.

.

.

.

.

.

.

74

VII.5 Número de Identificación Fiscal

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

74

VII.5.1 Detección de errores

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

75

VII.5.2 Corrección de errores .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

75

VII.6 Probabilidades

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

76

VII.7 Cota de Hamming o del empaquetamiento de esferas

 

82

VII.7.1 Código de Hamming .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

84

VIIICódigos lineales

.

.

.

.

.

.

.

.

.

.

.

.

.

85

VIII.1¿Por qué códigos lineales?

.

.

.

.

.

.

.

.

.

.

.

85

. VIII.3Codificación con códigos lineales

VIII.2Definición

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

85

88

VIII.4Decodificación con códigos lineales

VIII.4.1Decodificación por síndrome para Ham(3,2)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

88

91

IX Códigos de Hamming

94

IX.1

Códigos de Hamming binarios

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

94

IX.2 Códigos BCH (Bose Ray-Chaudhury y Hocquenghem)

IX.3 Códigos binarios extendidos

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

98

102

. IX.4 Códigos binarios acortados (o reducidos)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

103

A Ejercicios

A.1

Hoja 1

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

105

105

A.2

. Control 1 (22-09-2014) Modelo A .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

114

2 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

A.3

A.4

A.5

. Control 2 (13-10-2014) Modelo A .

Hoja 2

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

116

135

Control 2 (13-10-2014) Modelo B .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

136

A.6

Hoja 3

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

138

A.7

Control 3 (6-11-2014) Modelo A

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

153

A.8

Hoja 4

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

156

A.9

Hoja 5

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

174

. A.11 Control 4 (1-12-2014) Modelo A

A.10 Hoja 6

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

185

197

A.12 Control 4 (1-12-2014) Modelo B

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

199

A.13 Hoja 7

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

200

A.14 Hoja 8

A.15 Control 5 (18-12-2014) Modelo A

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

214

232

A.16 Control 5 (18-12-2014) Modelo B

235

Índice alfabético

237

3 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

Capítulo I

Ideas generales

Matemáticas de la transmisión de información

I.1. Modelo básico

emisor –(info)-> receptor

la flecha es el canal. Ejemplos de canales son:

cablereceptor la flecha es el canal. Ejemplos de canales son: aire/espacio papel disco duro / USB

aire/espaciola flecha es el canal. Ejemplos de canales son: cable papel disco duro / USB /

papeles el canal. Ejemplos de canales son: cable aire/espacio disco duro / USB / CD El

disco duro / USB / CDel canal. Ejemplos de canales son: cable aire/espacio papel El canal con el que vamos a

El canal con el que vamos a trabajar tiene 3 defectos:

1. poco seguro

2. poco fiable

3. con poca capacidad

I.1.1. Poca seguridad

Existe un "malo", es decir, que no es el emisor o receptor y puede interferir con la información (leerla y alterarla).

Se soluciona con criptografía.

Emisor -> [cifrador]—canal—>[descifrador] -> Receptor

4 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

I.1.2. Poca fiabilidad

El mensaje puede sufrir alteraciones involuntarias, tales como erratas (papel), polvo o ralladuras (disco duro o CD), rayo cósmico, ruido, etc

Se soluciona con códigos detectores/correctores de errores.

Emisor -> [codificador]—canal—>[descodificador] -> Receptor

I.1.3. Poca capacidad

Puede faltar capacidad en varios sentidos. Puede faltar tiempo (como en una clase si el profesor repite mucho), capacidad (como en un disco duro) o energía (como cuando un satélite tiene una energía limitada para transferir información).

Se soluciona con algoritmos de compresión (no es parte del temario).

Emisor -> [compresor]—canal—>[descompresor] -> Receptor

Si queremos resolver los tres problemas a la vez es obvio que debemos combinarlos todos, pero en que orden?

Colocaremos en último lugar (cerca del canal) el proceso de codificación y desco- dificación, ya que depende mucho del canal y puede verse anulado con un posterior proceso de cifrado o compresión.

Respecto a los otros dos, podemos debatir sobre su orden. Pero hay que tener en cuenta, por lo menos en el caso de cadenas de texto, que conviene comprimir primero, ya que algunos ataques sobre el cifrado se pueden realizar si los mensajes cifrados se repiten y/o tienen patrones reconocibles. Estas posibilidades se reducen bastante al comprimir primero.

5 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

Capítulo II

Criptosistemas clásicos

La criptografía tiene como objetivo resolver el siguiente problema:

tiene como objetivo resolver el siguiente problema: Figura II.1: Cómo enviar un mensaje de manera segura

Figura II.1: Cómo enviar un mensaje de manera segura entre Bob y Alice por un canal al que Eve tiene acceso

El objetivo es garantizar tanto la confidencialidad del mensaje (Eve no es capaz de

saber qué se están diciendo) como de autentifiación (Alice está segura de que es Bob quien mandó el mensaje y viceversa)

A lo largo de este capítulo veremos los métodos que han sido empleados a lo largo

de la historia para lograr este objetivo.

II.1. Esteganografía

Intentar ocultar la existencia del mensaje. Es un método con origen muy antigüo ( 486-425 a.C)

II.2. Criptografía

Criptografía Definición II.1 Criptografía. Tradicionalmente se ha definido como el ámbito de la criptología el que se ocupa de las técnicas de cifrado o codificado destinadas a alterar las representaciones lingüísticas de ciertos mensajes con el fin de hacerlos ininteligibles a receptores no autorizados.

6 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

El primer método de criptografía data del siglo V antes de cristo

La mayoría de estos métodos se basaban en transposición.

Transposición Definición II.2 Transposición. Cambio en el orden de las letras de un mensaje

II.2.1. El criptosistema de Cesar

Se utiliza la sustitución como método de cifrado, normalmente cambiando cada letra por su correspondiente al desplazarse d espacios atrás en el abecedario. Por ejemplo:

sin cifrar

cifrado

A

D

B

E

C

F

II.2.2. Formalización

Vamos a ver cómo denominamos formalmente los elementos que intervienen en un proceso de cifrado:

Mensajeslos elementos que intervienen en un proceso de cifrado: Tenemos dos diferentes mensajes en todo proceso

Tenemos dos diferentes mensajes en todo proceso de cifrado

1. M = Mensajes en claro

2. C = Mensajes cifrados

Alfabeto Tendremos un alfabeto o dos, dependiendo de si los alfabetos de M y C son Tendremos un alfabeto o dos, dependiendo de si los alfabetos de M y C son el mismo o no.

Ejemplos de alfabetos serían:

A = {A, B

Z}

A = {0, 1}

A

=

{A, B

Z,

, ¿, ?, 1, 2, 3,

, 9, 0}

A = Código ASCII

Funciones para cifrar? , 1 , 2 , 3 , , 9 , 0 } • A =

Serán funciones de la forma f : M C donde f es inyectiva

Funciones para descifrarde la forma f : M → C donde f es inyectiva Serán funciones de la

Serán funciones de la forma f 1 : C M donde f es la misma función empleada para cifrar el mensaje.

7 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

Para que pueda llevarse a cabo la comunicación entre A y B, A debe conocer f y B debe conocer f 1 . A envía un mensaje m M a B usando f (m) = c y enviando c. B puede obtener el mensaje calculando f 1 (c) = m.

En este modelo, romper el sistema de cifrado equivale a que un tercero averigüe

f 1 .

¿Podemos usar más de una función para cifrar?

En el sistema de Cesar se puede cambiar, por ejemplo, la longitud desplazamiento por el abecedario al realizar el cifrado, aunque no hay muchas posibilidades.

Criptosistema

Definición II.3 Criptosistema. Colección de functiones para cifrar. Se trata de fun- ciones de la forma

f e : M e −→

C e

Ejemplo: Como romper la criptografía Cesar

Se puede romper "facilmente" la criptografía Cesar con análisis de frecuencias. Por ejemplo, en castellano la letra más frecuente es la E, con un 13,68 %, sabiendo la letra más frecuente de un mensaje cifrado se puede calcular la distancia entre esa y la E y muy probablemente hayamos hallado la clave de cifrado.

La fiabilidad de este método puede verse mermada por la genericidad del texto cifrado. Si es corto y si habla de un tema en particular es posible que las frecuencias varíen respecto a otros textos genéricos en Español.

De hecho, por ejemplo, en el manual de UNIX la frecuencia de la letra e baja al 9 % dejando a la letra relegada al cuarto puesto, por detrás de la t, la n y la i.

Veamos la frecuencia general de distintos grupos de letras en ingles.

grupos

frec

rango

e

12.7 %

12.7

taoiushr

56.9

6-9

cumwfgypb

19.9

1.5 - 3

vkjxqz

2.2

< 1

II.3. Criptosistema afín (sobre letras)

Cifrado Definición II.4 Cifrado afín. El cifrado afín también se le llama cifrado de transfor- afín mación afín o cifrado monoalfabético genérico. Es un tipo de cifrado por sustitución en el que cada símbolo del alfabeto en claro (el alfabeto del texto en claro) es sustituido por un símbolo del alfabeto cifrado (el alfabeto del texto cifrado) siendo el número de símbolos del alfabeto en claro igual que el número de símbolos del alfabeto cifrado. Para hallar el símbolo del alfabeto cifrado que sustituye a un determinado símbolo del alfabeto en claro, se usa una función matemática afín en aritmética modular. Para poder aplicar la función matemática lo primero que hay que hacer es asignar un orden que a cada símbolo de cada uno de los alfabeto le asocie un número de orden.

8 de 237

Teoría de Códigos y Criptografía - Curso 2015/2016 C1 - UAM

Pedro Valero Mejía

Si tenemos un alfabeto de N letras Z/N y denominamos a las claves: a, b Z/N , tenemos que el proceso de cifrado puede representarse mediante la siguiente fórmula matemática:

f a,b :Z/N Z/N x ax + b

II.3.1. ¿Para qué valores de a,b es f a,b inyectiva?

1

Para verlo calculamos f

a,b

Si a U (Z/N )

=

ax + b = y

ax = y b

x = a 1 (y b)

=

x = a 1 y a 1 b

1

f

a,b

= f a 1 ,a 1 b

Así hemos demostrado que:

1. a U (Z/N ) f a,b inyectiva

2. En ese caso si e = (a, b) es la clave para cifrar d = (a 1 , a 1 b) es la clave para descifrar.

El recíproco de 1 es cierto: Usando que f a,b es inyectiva y aplicando la definición de inyectiva:

α Z/N : = 1 + b = 1 + b

Proposición II.1.

f a,b inyectiva ⇐⇒ a U (Z/N )

Demostración.

Vamos a demostrar los dos sentidos de la implicación.

) Si la función es inyectiva, como nos estamos moviendo entre cuerpos finitos, la función ) Si la función es inyectiva, como nos estamos moviendo entre cuerpos finitos, la función será también sobreyectiva.

Por ser sobreyectiva sabemos que, en concreto:

α f a,b (α) = 1 + b

) )

=

+ b = 1 + b

=

= 1

=