68
Criptograf´ ıa Grado en Ingenier´ ıa Inform´ atica Departamento Matem´ atica Aplicada I. Estas notas corresponden a la transcripci´ on de las transparencias utilizadas durante las clases de Criptograf´ ıa, y contienen todos los datos relevantes de las mismas. Su uso est´ a permitido, ´ unicamente, en las pruebas correspondientes a la evaluaci´onalternativa. 1

Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Criptografıa

Grado en Ingenierıa InformaticaDepartamento Matematica Aplicada I.

Estas notas corresponden a la transcripcion de las transparencias utilizadasdurante las clases de Criptografıa, y contienen todos los datos relevantes de las

mismas. Su uso esta permitido, unicamente, en las pruebas correspondientes a laevaluacion alternativa.

1

Page 2: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 1

Introduccion

¿Por que es importante la seguridad? Siempre hay adversarios. Siempre hay ataques

• Ataques pasivos

• Ataques activos

Objetivos de la seguridad

• Privacidad

• Integridad

• Disponiblidad

• Autenticacion de usuario

• No repudio

• Firma

¿Como conseguir los objetivos? Mecanismos de seguridad. Criptografıa: Conjunto de tecnicasmatematicas que permiten proteger la informacion en presencia de adversarios

1.1 Conceptos basicos

Primer objetivo: privacidadDistintos ataques

• Ataque de solo texto cifrado. Objetivo: texto en claro y clave

• Ataque de texto claro conocido. Objetivo: la clave

• Ataque de texto claro elegido. Objetivo: la clave

• Ataque de texto cifrado elegido. Objetivo: la clave

• Ataque de texto elegido. Objetivo: la clave. Buscamos sistemas resistentes a este nivel.

El atacante. Conocimiento, recursos y capacidadSeguridad computacional: Coste > beneficio. Tiempo excesivo.

2

Page 3: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 2

Fundamentos

2.1 Un paseo por la antiguedad

Ocultacion de la informacion. Herodoto informa del uso de la esteganografıa en informes de Greciaa Persia (tatuajes en cabezas rapadas, tablillas de cera, etc.) . Gente sin prisa.

No es criptografıa

2.2 Los primeros sistemas

• 600-500 AC: Los hebreos usan simples criptosistemas de sustitucion.

El sistema Atbash: cada letra se sustituye por su simetrica en el alfabeto:

A 7→ Z,B 7→ Y . . . Y 7→ B,Z 7→ A

• 400 AC: La Escıtala:

Usada en la guerra entre Atenas y Esparta. El cifrado se basaba en la alteracion del mensajeoriginal mediante la inclusion de sımbolos innecesarios que desaparecıan al enrollar el mensajeen un rodillo de longitud y grosor. Aun sabiendo la tecnica utilizada, si no se tenıan lasdimensiones exactas, un interceptor tenıa difıcil su criptoanalisis

Figure 2.1: La escıtala espartana.

• 100-1 AC: Los romanos desarrollan nuevos sistemas de cifrado, como el llamado de Cesar.

Uno de los sistemas de Cesar era desplazar cada caracter del alfabeto 3 posiciones:

A 7→ D,B 7→ E,C 7→ F . . .

3

Page 4: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

2.2.1 Cifrado por desplazamiento

Es generalizacion de la clave de Cesar. Se establece una correspondencia entre letras y numeros:A B C D E F G H I J K L M

00 01 02 03 04 05 06 07 08 09 10 11 12 13

N N O P Q R S T U V W X Y Z

14 15 16 17 18 19 20 21 22 23 24 25 26 27La clave es un numero entero. Se cifra sumando a cada letra del texto en claro el valor de la

clave: G + V = B 07 + 23 = 02

Figure 2.2: Disco de cifras

Ejemplo de cifrado:

ATAQUE AL AMANECER+3−→ dwdtxhcdncdodphfhu

Un ataque de fuerza bruta:

Clave Resultado1 dwdtxhcdncdodphfhu −→ cvcswgbcnbcncogegt2 dwdtxhcdncdodphfhu −→ bubrvfabmabnbnfdfs3 dwdtxhcdncdodphfhu −→ ataquealamanecer

¿Se podrıa automatizar el ataque de fuerza bruta, o es indispensable la intervencion de unagente inteligente que reconozca que ya se ha descifrado el mensaje?

Mas debilidades:

• Basta conocer un caracter y su cifrado para obtener la clave, si sabemos que A se transformaen D, entonces la clave es D - A, es decir 4 -1 = 3.

• La longitud del texto, la frecuencia de los caracteres y sus repeticiones en el texto claro seconservan en el texto cifrado.

• Se pueden ahorrar muchas de las pruebas del ataque de fuerza bruta si hacemos una tablacon los caracteres mas frecuentes de un texto en claro similar al esperado y los comparamoscon los mas frecuentes en el texto cifrado.

4

Page 5: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

2.2.2 Cifrado afın

Es una generalizacion del cifrado por desplazamiento en el que la transformacion de cifrado es unaaplicacion afın

x −→ y = a · x+ b

donde a es primo con n (el tamano del alfabeto).El descifrado se hace con la funcion inversa

y −→ x = a−1 · (y − b)

• Si usamos un alfabeto de 64 caracteres:

abcdefghijklmnnopqrstuvwxyzc0123456789@(){ } <>=+-*/ % & o +,;.:+?¡!’

• Con clave 15, 3 ciframos:

ATAQUE AL AMANECER −→ q!qpmncq, cqfqtn− n3

• Para un ataque de fuerza bruta necesitamos solo 2048 intentos, y en uno de ellos esta lasolucion!

• Con dos caracteres y sus transformados es probable que obtengamos la clave.

2.2.3 Cifrado por sustitucion

• Lo mas avanzado hasta el siglo XI.

• La revolucion en el tamano del espacio de claves! Con un alfabeto de 64 caracteres el numerode claves posibles es

126886932185884164103433389335161480802865516

174545192198801894375214704230400000000000000

• Y si examinaramos 1000 claves por segundo necesitarıamos

402355822507243036857665491296174152723

44468599234269469432361230090913315068

siglos!

• Cada clave es una permutacion del alfabeto.

• Si el alfabeto es de n caracteres hay n! claves. Demasiadas!

• Es imposible un ataque de fuerza bruta.

• Aparentemente inviolable.

• Durante siglos se utilizo confiando en su seguridad.

• Como la clave es grande se suele recurrir a facilitarla, lo que debilita el sistema

5

Page 6: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Ademas

• Aunque hasta el siglo XV en Europa se tenıa por totalmente seguro!

• Primer criptoanalisis descubierto por el gran matematico Al-Kindi.

• Desconocido en occidente durante siglos!

2.2.4 Metodo del analisis de frecuencias.

Una manera de resolver un mensaje cifrado, si sabemos en que lengua esta escrito, es encontrar untexto llano diferente escrito en la misma lengua y que sea lo suficientemente largo para llenar unahoja, y luego contar cuantas veces aparece cada letra. A la letra que aparece con mas frecuencia lallamamos ”primera”, a la siguiente en frecuencia la llamamos ”segunda”, a la siguiente la llamamos”tercera”, y ası sucesivamente, hasta que hayamos cubierto todas las letras que aparecen en lamuestra de texto llano.

Luego observamos el texto cifrado que queremos resolver y clasificamos sus sımbolos de lamisma manera. Encontramos el sımbolo que aparece con mas frecuencia y lo sustituimos con laforma de la letra ”primera” de la muestra de texto llano, el siguiente sımbolo mas corriente losustituimos por la forma de la letra ”segunda”, y el siguiente en frecuencia lo cambiamos por laforma de la letra ”tercera”, y ası sucesivamente, hasta que hayamos cubierto todos los sımbolosdel criptograma que queremos resolver.

Ideas basicas del analisis de frecuencias:

• La longitud del mensaje es la misma.

• Si hacemos una lista contando cuantas veces aparece cada caracter en el texto cifrado, lalista de numeros sera la misma que en el texto en claro, aunque en otro orden.

• Igual que antes se puede hacer para grupos de caracteres.

• Pueden identificarse grupos caracterısticos, letras repetidas, etc.

• Encontrando algunas correspondencias (vocales, letras mas frecuentes, etc.) se puede encon-trar rapidamente el texto en claro.

Figure 2.3: Frecuencias de las letras en un texto tıpico en espanol e ingles.

Fragmento de un mensaje bailado

A B C D E F D EG H I C J K L MG H I C F K B I

N K N C O K B KP A Q E A C N K

6

Page 7: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Figure 2.4: Arthur Conan Doyle.

Asignamos arbitrariamente letras a los sımbolos del mensaje completoEl mensaje cifrado con sustitucion:ABCDEFDEFEDKCNAJ.....Otro ejemplo,Sobre el tesoro del capitan Kidd (Edgar Allan Poe “El escarabajo de oro”)

53-+-++305))6*;4826)4-+.)4-+);8o 6*;48+8++6o))85;1-+(;:-+*8+83(8 8)5*+;46(;88*96*?

;8)*-+(;485) ;5*+2:*-+(;4956*2(5*– 4)8++8*;4069285);)6+8)4-+-+;1(-+ 9;48081;8

:8-+1;48+85;4)485+52 8806*81(-+9;48;(88;4(-+?34;48) 4-+161;:188;-+?;

2.3 Cifrados por transposicion

• En los cifrados por transposicion se reordena el texto en claro (notese que en las sustitucionesse reordena el alfabeto).

• Los caracteres del texto cifrado son los mismos que en el texto en claro.

1. Ejemplo 1. Se escribe en filas y se lee por columnas:

uncifrado

usandotra

nsposicio

nsimpleco

nnuevecol

umnasxxxx

queda

uunnn

unsss

nmcap

iunin

omeaf

dspvs

roile

xatce

cxdri

coxoa

oolx

7

Page 8: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

2. Ejemplo 2. Camino:

LAOSNAOVDRCNN

AVNTUMCEOLOIT

CESENIONPOMCE

LCIECNNIOSUAS

queda

NTESA

USOIN

NCEIC

LCALA

OSNAO

VDRCN

ICMOP

NOINE

SEVNT

UMCEO

LO

(Cuatro carriles y camino espiral en sentido de las agujas del reloj, empezando por laesquina superior derecha)

3. Ejemplo 3. Transposicion de columnas: Igual que el primero, pero el orden de las letrasde una palabra clave determina el orden de las columnas.

Criptoanalisis se basa en :

• Deteccion de anagramas.

• Analisis de frecuencias.

Combinado con sustitucion se crean criptosistemas mucho mas fuertes puesto que:

• La sustitucion rompe los anagramas.

• La transposicion rompe la aparicion de palabras reconocibles del texto en claro.

Transposicion + sustitucion fueron fundamentales en las maquinas de rotor de los anos veinte.Sistemas polialfabeticos, se utilizan distintas sustituciones dependiendo de la posicion del

caracter

2.4 Cifrado de Vigenere

Publicado por Blaise de Vigenere en su libro ”Traicte des Chiffres” de 1585.Notable ejemplo efectivo de un sistema polialfabetico.Llamado le chiffre indechiffrable. Aproximadamente en 1850, Lewis Carroll opino que era

irrompible.Criptoanalisis publicado en 1854 (Babbage).En 1863 se utilizo como sistema de cifrado en la guerra civil americana.En un ejemplar del Scientific American de 1917 aparecio un artıculo asegurando que era invio-

lable.

• Dos versiones, la repetitiva y la que usaba un sistema llamado autoclave. Estudiaremos antesla primera.

• La clave es una palabra o una frase.

• Se divide el texto en claro en bloques de la misma longitud que la clave (excepto el ultimoque puede ser menor).

8

Page 9: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Cada bloque se cifra aplicando a cada caracter un desplazamiento de valor el correspondientecaracter de la clave.

Supongamos que con el alfabeto de 64 caracteres de antes y usando como clave la palabraCLAVE, queremos cifrar el texto

ATAQUEALAMANECER

Separamos el texto en bloques de 5 caracteres y aplicamos la clave:A T A Q U E A L A M A N E C E RC L A V E C L A V E C L A V E CD 4 B ) Z H M M W Q D Y F Y J U

Es claro que para descifrar basta invertir la operacion: D - C = A, 4 - L = T, etc.Para facilitar el cifrado y descifrado se usaba la llamada tabla de Vigenere.

Figure 2.5: Tabla de Vigenere.

El metodo de autoclave fue un autentico precursor de algunos sistemas actuales:

• Para cifrar el primer bloque se usa la clave.

• Para cada bloque siguiente se usa el resultado de cifrar el bloque anterior:

A T A Q U E A L A M A N E C E RC L A V E D 4 B ) Z I 5 N { ( JD 4 B ) Z I 5 N { ( J - R ¿ ¿ U

9

Page 10: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Introduce mas complejidad, pero se rompe de forma similar al repetitivo, aunque la idea esgenial!

Seguridad:

• Espacio de claves muy grande. No es viable un ataque de fuerza bruta.

• Resistente al analisis de frecuencias.

• Muy debil ante un ataque de texto cifrado conocido. Basta conocer un fragmento del textoclaro correspondiente:

Si sabemos que el texto en claro contiene la palabra ATAQUE y con cada bloque de 6 carac-teres del texto cifrado hacemos la diferencia encontraremos en alguno de ellos un fragmentode la clave (que podemos probar en el resto del mensaje)

D 4 B ) Z H- A T A Q U E

C L A V E C

2.5 Criptoanalisis

1. Determinacion de la longitud de la clave.

2. Reduccion a un cifrado por desplazamiento.

3. Determinacion de la clave.

4. Obtencion del texto en claro.

Herramientas

• Test de Kasiski.

• ındice de coincidencia.

• ındice de coincidencia de dos textos.

Requisitos. Es necesario que la razon entre la longitud del texto cifrado y la longitud de laclave sea suficientemente grande.

Test de Kasiski: la incidencia de las coincidencias

• Segmentos repetidos de texto claro cifrados con la misma parte de la clave dan lugar asegmentos iguales de texto cifrado.

• Gran numero de estas coincidencias ocurriran entre segmentos iguales separados una distanciamultiplo de la longitud de la clave.

• Kasiski propone buscar coincidencias de grupos de 3 o 4 caracteres para minimizar las coli-siones debidas al azar.

Procedimiento para el test de Kasiski:

• Obtenemos la lista de las distancias entre bloques coincidentes.

• La mayorıa de esos numeros son multiplos de cierto numero n.

10

Page 11: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Si el texto es suficientemente largo debe haber pocas distancias no multiplos de n: las descar-tamos, atribuyendolas al azar.

• El maximo comun divisor de los numeros resultantes es probablemente la longitud de la clave.

El ındice de coincidencia:

• Invariante por sustitucion (y en particular por desplazamiento)

• Si el texto es aleatorio y suficientemente grande:

pi ≈ 1/N ⇒ IC ≈N∑i=1

1/N2 = 1/N

• Cada idioma tiene un IC caracterıstico, aunque dependiente de la naturaleza del texto(cientıfico, literario, etc.)

Indice de coincidencia de dos textos: Probabilidad de que al elegir al azar un caracter en cadatexto, ambos sean iguales.

IC(T1, T2) =∑x

p(x, T1) · p(x, T2)

Si a dos textos se les aplica la misma sustitucion, el IC no varıa

p(x, T ) = p(σ(x), σ(T ))

Ejemplo:X = (a, b, c, d), σ1(x) = x+ 1 mod 4, si T1 = ”baca”, entonces σ1(T1) = ”cdbd”.La propiedad fundamental dice que

p(a, ”baca”) = p(b, ”cdbd”) =2

4

En general, si X es un alfabeto, T1, T2 son textos y σ1 es una permutacion,IC(σ1(T1), σ1(T2)) =

∑x∈X p(x, σ1(T1)) · p(x, σ1(T2)) =

=∑σ1(x)∈σ1(X) p(σ1(x), σ1(T1)) · p(σ1(x), σ1(T2)) =

∑x∈X p(x, T1) · p(x, T2) = IC(T1, T2).

En nuestro ejemplo, si T1 = ”baca” y T2 = ”adcc”, tenemos que σ1(T1) = ”cdbd” y σ1(T2) =”badd”, con lo que

IC(T1, T2) = 24 ·

14 + 1

4 ·04 + 1

4 ·24 + 0

4 ·14 = 0, 25

IC(σ1(T1), σ1(T2)) = 04 ·

14 + 2

4 ·14 + 1

4 ·04 + 1

4 ·24 = 0, 25

Sin embargo, el IC es muy sensible a sustituciones distintas, si a dos textos se les aplicandistintas sustituciones, el IC varıa mucho.

En nuestro ejemplo anterior, si definimos σ2 = x + 2 mod 4, tenemos σ1(T1) = ”cdbd” yσ1(T2) = ”cbaa”, con lo que

IC(T1, T2) = 24 ·

14 + 1

4 ·04 + 1

4 ·24 + 0

4 ·14 = 0, 25 (como antes)

IC(σ1(T1), σ2(T2)) = 04 ·

24 + 2

4 ·14 + 1

4 ·14 + 1

4 ·04 = 0, 1875

Indice de coincidencia de un (unico) texto, es la probabilidad de que al tomar al azar doscaracteres en el texto, resulten iguales.

IC(T ) =∑x

p(x, T )2

El IC de un texto aleatorio en un alfabeto de N caracteres es

11

Page 12: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

IC(T ) =∑x

p(x, T )2 = N · ( 1

N)2 =

1

N

Si N = 27, este valor es 0,037.El IC de un texto nada aleatorio, como T = (x0, x0, . . . , x0) es

IC(T ) = p(x0, T )2 +

N−1∑i=1

p(xi, T )2 = 12 + (N − 1) · 02 = 1

Espanol Ingles Frances Italiano Aleman Ruso0,0775 0,0667 0,0778 0,0738 0,0762 0,0529

Uso del IC en el criptoanalisis del criptosistema de Vigenere:

1. Etapa 1 del criptoanalisis: determinacion de la longitud de la clave.

• Mediante el test de Kasiski buscamos un valor probable para m, la longitud de la clave.

• Estimamos el IC del texto en claro, calculandolo sobre un texto que suponemos similar.

• Dividimos el texto cifrado en m columnas F1, . . . , Fm y si la longitud de la clave es my nuestra estimacion del IC es buena, el IC de cada fila Fi debe ser aproximadamenteigual al estimado.

• Si todo va bien sabemos ahora que el texto se ha cifrado con una clave desconocidak1, . . . , km.

2. Etapa 2 del criptoanalisis: desplazamientos entre los caracteres de la clave.

Para cada columna Ci:

• Fi esta cifrada con el valor ki mod m

• Definimos unos desplazamientos (que no conocemos)

∆i = k1 − ki mod m

• Podrıamos desplazar todas las filas para obtener F1, F′2, . . . , F

′m, todas cifradas con k1:

F1 esta cifrado con k1.

Para i > 1, Fi esta cifrado con ki(desconocido). Fi − ki serıa el texto en claro (siconocieramos ki). F

′i = Fi + ∆i = Fi − ki + k1 estarıa cifrado con k1 (si conocieramos

el valor de ∆i

• Y ahora . . . ataque de fuerza bruta sobre los ∆i.

Cuantos ∆i hay que probar? Si el alfabeto es de N caracteres y la clave es de longitudm, hay que probar m− 1 desplazamientos con 0 ≤ ∆i < N ⇒ N · (m− 1) pruebas.

Si N = 27 y m = 16 son solo 405 pruebas.

Como sabemos que hemos encontrado ∆i? Probamos todos los valores posibles hastaencontrar el que haga que

IC(F ′i ) ' IC(F1)

12

Page 13: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

3. Etapa 3 del criptoanalisis: reduccion a un cifrado por desplazamiento

Sustituimos las filas Fi por las correspondientes F ′i , volvemos a fusionar las filas en un solotexto y . . .

ya tenemos todo el texto cifrado por un desplazamiento de k1.

4. Fin del criptoanalisis

Y ahora, fuerza bruta para buscar k1.

Encontrado k1 ya tenemos el texto en claro y, conocidos los desplazamientos, podemos cal-cular la clave completa:

k1, k2 = k1 −∆1, . . . , km = k1 −∆m

2.6 Cifrado XOR

• Reinventado constantemente por los aficionados, atraıdos por su sencillez.

• Como Vigenere, pero cambiando las sumas y restas por la operacion logica ”o exclusivo”(XOR) de bits.

• Supongamos que como antes, queremos cifrar el texto ATAQUEALAMANECER usandocomo clave la palabra CLAVE .

Separamos el texto en bloques de 5 caracteres y aplicamos la clave:

A T A Q U E A L A M A N E C E R⊕ C L A V E C L A V E C L A V E C

B X E R F M M U H B B D S O

• Como XOR es involutiva, el descifrado es igual que el cifrado.

Criptoanalisis:

• Igual que en Vigenere, el test de Kasiski puede encontrar la longitud probable de la clave.

• Aplicar XOR con el mismo caracter a todo un texto es en realidad aplicarle una permutaciondel alfabeto, por lo que el ındice de coincidencia puede ser utilizado para el criptoanalisis.

• El proceso es entonces igual que el de Vigenere.

• Es probable que la razon entre la longitud del texto cifrado y la longitud de la clave tengaque ser algo mayor en XOR.

2.7 Criptosistema de Hill. 1929

y = M · x

Por ejemplo cifrando con una matriz 3× 3Texto en claro: e, n, u 7→ (2, 13, 21) 2 3 4

5 5 67 8 9

· 2

1321

=

232224

7→ w

vx

Para el descifrado

13

Page 14: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

2 3 45 5 67 8 9

−1 · 23

2224

=

21321

7→ e

nu

Muy debil ante ataques de texto en claro conocidoAtaque mediante Gauss-Jordan

(Texto claro — texto cifrado )diagonalizacion−→ (Matriz unidad — Clave)

e n u w v xn l u i d qg a r d d od e l i t qa m a j g on c h g j ia d e y m gc u y f v co n o u n tm b r r l l

4 13 21 23 22 2413 11 21 8 3 176 0 18 3 3 153 4 11 8 20 170 12 0 9 6 1513 2 7 6 9 80 3 4 25 12 62 21 25 5 22 215 13 15 21 14 2012 1 18 18 11 11

Tras diagonalizar:

1 0 0 2 5 70 1 0 3 5 80 0 1 4 6 90 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

La clave es la traspuesta de la matriz de la esquina superior.Es muy probable que conozcamos algo de texto en claro y su cifrado.Otros ataques al criptosistema de Hill no requieren conocer un texto en claro.Y ahora, una duda:¿Es que todos los criptosistemas son vulnerables?

14

Page 15: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 3

La busqueda de la perfeccion

Existen sistemas irrompibles+Como podemos demostrarlo?

3.1 Teorıa de la informacion

• Introducida por Claude Shannon a finales de los anos cuarenta, permite efectuar un estudioformal de la seguridad de los algoritmos criptograficos.

• Cuantifica conceptos como cantidad de informacion, entropıa o secreto.

• Introduce la nocion de secreto perfecto.

Cantidad de informacion de un mensaje:

• Ante varios mensajes, el que tenga una menor probabilidad sera el que contenga una mayorcantidad de informacion.

• Si la probabilidad de un mensaje m es p(m), entonces la cantidad de informacion de m sedefine como

I(m) = −log2(p(m))

• Si la probabilidad de un mensaje es 1, entonces la cantidad de informacion de ese mensajees 0.

• Si la probabilidad de un mensaje se acerca a 0, entonces la cantidad de informacion se acercaa ∞.

Entropıa:

• Mide la cantidad de informacion que lleva una senal. Si simplificamos suponiendo que lasenal es una cadena de caracteres en espanol, la entropıa mide la aleatoriedad de la cadena.

• Depende de la distribucion de probabilidad de los caracteres e indica lo plana que es: planaequivale a alta entropıa y ocurre cuando todos los valores tienen probabilidades similares,mientras que es poco plana cuando algunos valores son mucho mas probables que otros.

15

Page 16: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Con alta entropıa es difıcil poder predecir cual es el proximo valor que va a presentarse, yaque todos los valores son igualmente probables.

• La medida de informacion debe ser proporcional (continua). Es decir, un cambio pequenoen una de las probabilidades de aparicion de uno de los elementos de la senal debe cambiarpoco la entropıa.

• Si todos los elementos de la senal son igualmente probables, entonces la entropıa sera maxima.

• La entropıa tambien esta relacionada con el lımite teorico para la compresion de datos.

• Una buena contrasena debe tener entropıa alta.

• La entropıa de un mensaje M = m1, . . .mn se define como la suma ponderada de las canti-dades de informacion de sus posibles estados:

H(M) = −n∑i=1

p(mi) · log2(p(mi))

• Tiene las siguientes propiedades:

1. 0 ≤ H(M) ≤ log2(n) (valor que se da para n caracteres equiprobables).

2. H(M) = 0⇔ existe un j con p(mj) = 1 y el resto con probabilidad 0.

Ejemplo: M puede tomar tres estados: m1,m2,m3 con probabilidades respectivas

p(m1) = 50% p(m2) = 25% p(m3) = 25%

E(M) = − 12 · log2

12 −

14 · log2

14 −

14 · log2

14 = 1

2 · 1 + 14 · 2 + 1

4 · 2 = 1, 5Entropıa y codificacionM = mensaje de longitud n.L = lımite maximo de compresion para M eligiendo un codificador sımbolo a sımbolo, de forma

optima.

L = n ·H(M)

Entropıa condicionalM = mensaje que puede tomar los valores m1, . . . ,mn.Si conocemos un valor mk:

H(M |mk) =

n∑j=1

p(M = mj |mk) · log2 p(M = mj |mk)

IncertidumbreY = mensaje que puede tomar los valores y1, . . . , ym.La incertidumbre de un mensaje X conocido un valor de Y es:

H(X|Y ) =

m∑j=1

H(X|Y = yj) · p(Y = yj)

La incertidumbre satisface las siguientes propiedades:

• H(X|X) = 0.

16

Page 17: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Si X e Y son independientes, H(X|Y ) = H(X).

• H(X|Y ) ≤ H(X).

Entropıa maxima ⇒ mayor incertidumbre en el mensaje. Se da cuando todos sus n estadostienen la misma probabilidad.

H(M)max = log2(n)

Ratio absoluta de un lenguaje:Es la entropıa del lenguaje suponiendo los N caracteres igualmente probables:R = H(X) = −

∑x p(x) · log2(x) = −sumx

1N · log2

1N = N · 1

N · log2N = log2N

N = 27 =⇒ R = 4, 75

Ratio verdaderaComo las letras no tienen igual probabilidad, la ratio verdadera baja mucho. Pruebas empıricas

dan para el espanol:

1, 2 ≤ r ≤ 1, 5

Redundancia:La redundancia de un lenguaje es la diferencia entre su ratio absoluta y su ratio verdadera:

D = R− r

En espanol se estima que 3, 25 ≤ D ≤ 3, 55.Empıricamente se halla que en un lenguaje con redundancia 3,2 bastarıa con un texto cifrado

de 25 caracteres para romper un cifrado por sustitucion.Distancia de unicidadMınima cantidad de texto cifrado para que un atacante con capacidad ilimitada pueda encontrar

la clave.Si la clave K es aleatoria la distancia de unicidad viene dada por la formula

H(K)/D

Ejemplo (desplazamiento):Con 26 claves, H(K) = log2 26 ' 4, 70, luego H(K)/D ' 1, 38Ejemplo (sustitucion):Con un alfabeto de 27 caracteres, H(K) = log2 27! ' 93, 13, luego H(K)/D ' 27, 39.Ejemplo (Vigenere o XOR):Clave de longitud d y alfabeto de n caracteres:

H(K)

D= log2 n

d =d

D· log2 n

Con n = 27 y d = 10, H(K)/D ' 14.SecretoEs la incertidumbre del mensaje en claro conocido el mensaje cifrado.Secreto perfecto: Un criptosistema tiene secreto perfecto si el conocimiento del texto cifrado

no proporciona ninguna informacion sobre el texto en claro.Secreto perfecto es mucho mas que computacionalmente seguro

17

Page 18: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

3.2 Cifrado de Vernam

Existe algun cifrado con secreto perfecto?Vernam propuso uno consistente en XOR simple (o Vigenere) en el que la clave:

1. Se genera aleatoriamente.

2. Es tan larga como el texto en claro.

3. Se usa una sola vez (para cada texto en claro se genera una clave nueva).

Las tres condiciones son completamente necesarias.Tiene secreto perfecto.a1ofkgdygfnuvnjox1p88+Y3o1qnykp-ı7qmn(ihqncon dos claves diferentes puede corresponderse con:

• LANZAMIENTO DE MISILES A LAS 16:00 HORAS

• NO REGAR LAS PLANTAS MIENTRAS SEA DE DIA

Hay claves para descifrar en cualquier texto claro:C texto cifrado, T texto en claro. Si k = C ⊕ T entonces C ⊕ k = C ⊕ C ⊕ T = T .En OTP no hay cota para la entropıa de la clave por lo que su distancia de unicidad es infinita.¿Por que no usar siempre OTP?Problemas:

• Generacion de claves verdaderamente aleatorias.

• Distribucion de claves.

18

Page 19: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 4

Numeros seudoaleatorios

Problema de la generacion de claves grandes suficientemente aleatorias (por ejemplo para el cifradode Vernam)

Secuencias criptograficamente validas: Impredecibles e irreproducibles.Uso de fuentes hardware:

• Reloj del sistema.

• Fluctuaciones en el giro de un disco duro.

• Fuentes defectuosas que emiten ruido.

• Dispositivos especıficos.

Fuentes no validas:

• Bits de un CD o DVD.

• Otras fuentes publicas de informacion.

Soluciones mas seguras: mezcla de metodos hardware y software.Se puede usar algun sistema de cifrado simetrico:

• El Generador X9.17 usa DES.

• Uso de otros cifrados simetricos.

Los generadores seudoaleatorios parten de una pequena cantidad de informacion: semilla, clave,. . . de tal modo que el conocimiento de esa informacion permite generar la secuencia completa.

Algunos usos en Criptografıa de estas secuencias seudoaleatorias son:

• Generacion de claves y contrasenas.

• Claves para criptosistemas en flujo

• Vectores de inicializacion

• Proteccion de contrasenas (salt).

• Desafıos en pruebas de conocimiento cero.

• Valores aleatorios en firmas digitales

19

Page 20: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Relleno de paquetes

Los generadores seudoaleatorios se pueden dividir en tres clases: buenos, malos, y muy malos(y usuarios muy descuidados) La generacion de numeros aleatorios es demasiado importante comopara ser dejada al azar.

Descuido en la lınea de comandos

echo off

for /l % a in (1 1 100)

do(echo % random %)

Con mas cuidado

@echo off & setLocal

EnableDelayedExpansion

for /L % %a in (1 1 100) do

(echo !random!)

SQLLas condiciones para que una secuencia binaria se considere criptograficamente segura son

1. Periodo suficientemente grande.

2. Distribucion uniforme: los unos y ceros en cualquier muestra deben distribuirse aproximada-mente al 50% .

3. Imprevisible: con una muestra de la secuencia debe ser imposible poder predecir el bitsiguiente.

4. Facil, rapido y barato: eficiencia, coste computacional, consumo de recursos, apto parahardware, etc.

4.1 Generadores por desplazamiento de registros retroali-mentados (FSR)

Los registros de desplazamiento retroalimentados (feedback shift registers, o FSR en ingles) son labase de muchos generadores de secuencia para cifrados de flujo.

Se utilizan n celdas. En cada iteracion se calcula una funcion f sobre el contenido de las nceldas y el resultado se asigna a la ultima, desplazando a las anteriores

Dependiendo de la funcion utilizada se dividen en

• NLFSR (Non-Lineal Feedback Shift Register), que usan una funcion no lineal.

• LFSR (Lineal Feedback Shift Register), que usan una funcion lineal. Son sencillos y rapidosy proporcionan un buen grado de aleatoriedad, por lo que son muy utilizados.

En un LFSR la funcion es del tipo

f(bn, . . . , b1) =

n∑j=1

aj · bj

20

Page 21: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Pero como las operaciones de bits son en Z2, cada ai = 0, 1 y f consiste en hacer ⊕ con algunode los bits (no hay multiplicaciones).

Un ejemplo de LFSR paso a paso: f(x, y, z, t) = 0 · x + 1 · y + 1 · z + 0 · t mod 2 (⊕ con losbits centrales), si el bloque inicial es b0 = 1010, la sucesion de bloques obtenidos es b1 = 0101,b2 = 1011, b3 = 0111, b4 = 1110, b5 = 1100, b6 = 1001, b7 = 0010, b8 = 0101, b9 = 1011, comob2 = b9 el periodo de esta sucesion es 7.

4.2 Generadores de congruencias lineales (LCG)

xi+1 = (a · xi + b) mod m

Es frecuente elegir m de la forma 2k, ası la operacion modulo consiste en poner los k bits massignificativos a 0, y no requiere divisiones (equivale a hacer desplazamientos)

x =

0∑i=n−1

bi · 2i =

k∑i=n−1

bi · 2i +

0∑i=k−1

bi · 2i =

0∑i=k−1

bi · 2i mod 2k

El periodo de esta sucesion es m (maximo) si yo solo si se verifican1

1. b es primo con m.

2. Si p es primo y divide a m, p divide a a− 1.

3. Si m es multiplo de 4, a− 1 es multiplo de 4.

LCG y LFSR son los mas usados:

• Biblioteca estandar de C y C++.

• Lınea de comandos (Microsoft)

• Unix

Unas observaciones:Las funciones random se inicializan a veces con valores tomados del reloj, raton, pulsaciones,

etc. Pueden resultar elecciones muy malas: la generacion de numeros aleatorios es demasiadoimportante como para ser dejada al azar.

Existen implementaciones mas seguras

4.3 Algunos errores famosos

4.3.1 RANDU. IBM (1960)

x0 impar.

xi+1 = (216 + 3) · xi mod 231

(se normalizan en [0,1] dividiendo por 231).¿Alcanza RANDU el perıodo maximo?

xi+1 = (65539 · xi + 0) mod 231

1Knuth, 1969

21

Page 22: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

1. No. 0 no es primo con 231.

2. Si. 2 es el unico primo que divide a 231, y tambien divide a 65539− 1.

3. No. 231 es multiplo de 4, pero 65539− 1 no lo es.

Test espectral: Se buscan correlaciones interpretando cada s valores consecutivos como vectoresen un espacio de dimension s, intentando encontrar estructuras geometricas.

Tomamos el conjunto de vectores (que se solapan):

Ls = {−→x n = (xn, . . . , xn+s−1) : n ≥ 0}

y buscamos hiperplanos paralelos que contengan los vectores de Ls. Si se encuentran es quehay correlaciones.

Parece que todo esta bien, pero si giramos la representacion tridimensional ....

Figure 4.1: Todos los puntos en el mismo hiperplano.

Por que?xn+2 = (216 + 3) · xn+1 = (216 + 3)2 · xn = (232 + 6 · 216 + 9) · xn = (6 · 216 + 18− 9) · xn == (6 · (216 + 3)− 9) · xn = 6 · (216 + 3) · xn − 9 · xn = 6 · xn+1 − 9 · xnCada terna de valores (xn, xn+1, xn+2) esta en un plano, el z = 6y − 9x (con mas precision, en

15 trozos de un plano, por trabajar en Z231

¿Como de importante es esto? Experimentos que se disenen usando muestras aleatorias con unmal generador,aconcluiran que hay correlacionaentre las variables, pero no es que realmente exista,sino porque los numeros de entrada no son suficientemente aleatorios.

¿Y en la Criptografıa? La falsa seguridad es peor que el conocimiento de que no hay seguridad.

4.3.2 Windows 2000 y XP. 2007

“. . . investigadores israelıes publicaron un analisis criptografico sobre el algoritmo us-ado por Microsoft para generar numeros aleatorios y descubrieron que contenıa seriosproblemas en su implementacion.

22

Page 23: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

El estudio revelaba (entre otros fallos) que es relativamente sencillo predecir los resul-tados del generador conociendo uno de sus estados internos y ası como las claves desesion usadas para cifrar informacion . . . ”

4.3.3 Debian. 2008

Un error debido mas bien al descuido que a un mal diseno.14 de mayo de 2008:

“Debian ha sufrido un grave reves [. . . ] su generador de numeros aleatorios es predeci-ble. Las claves generadas ya no son seguras [. . . ] esto tendra por muchos anos unaimportante repercusion y numerosos efectos colaterales en otros paquetes y distribu-ciones . . . ”

4.4 Generadores tipo Fibonacci

xn = (xn−r � xn−s) mod m

Estos generadores presentan varios inconvenientes

• La formula generadora correlaciona xn, xn−r y xn−s, luego ¡no son independientes!

• No son criptograficamente seguros.

Uno de los mas famosos de este tipo es el generador sustractivo de Knuth:

1. Se inicializa m = 109, s1 = 1, s0 (semilla) con 0 ≤ s0 < m

2. s2, . . . , s54 calculados como si+1 = si − si−1 mod m.

3. Reordenamos: para k = 0, . . . , 54

xk = s(34(k+1) mod 55)

Y ahora empezamos a generar numeros, para k ≥ 55,

xk = xk−55 − xk−24 mod m

El generador sustractivo de Knuth genera uniformemente valores entre 0 y m− 1 y es facil decalcular: nunca se multiplica ni se divide, ni siquiera para hallar el valor modulo m; sin embargo,la formula generadora correlaciona las terminos xk, xk−55, xk−24, que no son independientes.

Dos usos notables del generador sustractivo de Knuth son la clase Random en .net y la claseRandom en Java.

4.5 El generador Blum Blum Shub

Lenore Blum, Manuel Blum y Michael Shub 1986. Un generador sencillo y de gran seguridad(basada en factorizacion)

1. Se eligen dos primos grandes p, q ambos congruentes con 3 modulo 4, con mcd(φ(p−1), φ(q−1)) pequeno (para que el periodo sea largo) y hacemos m = p · q

23

Page 24: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

2. Se toma como semilla un entero grande s primo con m y se calcula una sucesion:

x0 = s2 mod n; xi+1 = x2i mod n ∀i ≥ 0

En la practica se toman los bits menos significativos de cada xn

Se puede calcular directamente cualquier valor mediante

xi = x2i mod (p−1)(q−1)0 mod m.

Si se eligen pocos bits de cada termino de la sucesion, entonces predecir el valor de un terminoes tan difıcil como factorizar n.

Este generador

• Es bueno (criptograficamente seguro),

• es bonito y sencillo, pero . . . sufre dos inconvenientes:

• es caro y lento! (requiere aritmetica de enteros grandes).

4.6 Generador X9.17

Semilla y claves:

• s1 = semilla.

• k = clave.

• D = 64 bits elegidos del reloj del sistema.

E(k,X) = cifrado de X con la clave k mediante el criptosistema E.

xi = E(k,E(k,D)⊕ si)

si+1 = E(k, xi ⊕ E(k,D))

Mas sobre generadores seudoaleatorios puede encontrarse en The art of Computer Programmingde Donald Knuth, o Handbook of Applied Cryptography de Menezes, van Oorschot y Vanstone.

Y para terminar, una idea: ¿Podrıamos usar un buen generador seudoaleatorio para acercarnosa OTP?

24

Page 25: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 5

Cifrado en flujo

El objetivo consiste en, usando un buen generador seudoaleatorio, obtener una clave de periodosuficientemente largo para aproximarnos a la seguridad de OTP.

Para ello podemos actuar de dos modos:

5.1 Modo sıncrono.

La secuencia seudoaleatoria (flujo) se calcula independientemente del texto en claro y del textocifrado; solo depende de la clave.

Figure 5.1: Modo sıncrono.

Aquı

• F () es la funcion generadora de estado

• si es el estado en el paso i , s0 es el estado inicial (que en muchos casos es la clave k).

• G() es la funcion generadora de la sucesion aleatoria, que depende del estado si.

25

Page 26: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• mi y ci son la i-esima porcion del texto claro y cifrado respectivamente, por medio de orexclusivo.

En este modo

1. El emisor y el receptor deben estar sincronizados para que el texto pueda descifrarse.

Si durante la transmision se pierde o inserta algun bit, el receptor ya no estara aplicando xorcon la misma secuencia, por lo que el resto del mensaje no se descifrara.

2. Si se altera un bit del criptograma, la sincronizacion no se pierde, pero el texto claro se veramodificado en la misma posicion. Esta caracterıstica podrıa permitir a un atacante cambiarel mensaje, si conoce que bits debe alterar.

3. Si un atacante conociese parte del texto claro, podrıa sustituirlo por otro sin que lo advirtieseel destinatario.

5.2 Modo asıncrono

Asıncrono (auto-sincronizado): la secuencia seudoaleatoria generada es funcion de la semilla y deuna cantidad fija de los bits anteriores del cifrado.

Donde k es la clave, mi y ci son la i-esima porcion del texto claro y cifrado respectivamente y wes una funciYon reversible. Los valores ct, ct+1, . . . , c1 constituyen el estado inicial del generador.

Figure 5.2: Modo asıncrono.

Este modo:

1. Es resistente a la perdida o insercion de informacion, ya que se sincroniza automaticamente,cuando llegan t bloques correctos de forma consecutiva.

2. Dispersa las propiedades estadısticas del texto claro a lo largo de todo el mensaje cifrado:cada elemento del mensaje influye en todo el cifrado.

3. En general son mas resistentes frente a ataques basados en la redundancia del texto en claro.

26

Page 27: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

5.3 Seguridad

Las debilidades esenciales de estos generadores son

⊗ Uso repetido de la misma inicializacion

⊗ Repeticion de la misma secuencia cifrante.

aunque existen otros ataques mas avanzados, como

• Ataques de correlacion

• Ataques algebraicos

• Criptoanalisis diferencial

Algunos usos actuales de criptosistema de flujo

• RC4 (Ronald Code 4) Ronald Rivest - 1987. Secreto

Roto en 2001 ( S. Fluhrer, I. Mantin y A. Shamir). Se puede encontrar la clave si la ini-cializacion cumple unas condiciones muy comunes y se interceptan el suficiente numero demensajes. Esto incluye a la mayorıa de los productos que lo usan.

La version no oficial de RC4 es legal, pero no puede ser utilizada con el nombre de RC4(ARCFOUR, ARC4, Alleged-RC4). RSA Security nunca ha liberado el algoritmo de RC4.RC4 es parte de los protocolos de cifrado mas comunes como WEP, WPA para tarjetas wire-less y TLS. Increıble velocidad y simplicidad. Necesita pocos recursos. La implementacionsoftware y hardware es muy sencilla.

• GSM.

A5/1 es usado en Europa y los Estados Unidos; un algoritmo de cifrado mas debil, A5/2 esusado en paıses que no son considerados de confianza para tener un cifrado fuerte. A5/1 fuedesarrollado en 1987, cuando GSM no era considerado aun para su uso en Europa, por suparte A5/2 fue desarrollado en 1989. Intentos de mantenerlo en secreto. Roto rapidamente.Algoritmos que lo rompen en tiempo real en 2006 (Eli Biham y Nathan Keller).

• CSS. Content Scrambling System - 1996

1. Seguridad por oscuridad. Algoritmo propietario.

2. Roto en 1999 por un equipo noruego (MoRE: Masters of Reverse Engineering). Pro-grama DeCSS, que se salta la proteccion CSS.

3. Cada disco DVD esta cifrado mediante una clave unica de solo 40 bits: la fuerza brutaes factible.

4. Cada DVD se cifra con una clave de 40 bits que se oculta cifrandola con una clave propiade cada fabricante autorizado (de equipo o programa reproductor).

Consecuencia: la clave del disco esta grabada en el DVD unas 400 veces, una vez porcada fabricante autorizado: con poco esfuerzo los autores de DeCSS encontraron unas170 claves en pocas horas.

Y ahora, de nuevo la duda: +Es que todos los criptosistemas son vulnerables?

27

Page 28: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 6

Criptografıa simetrica moderna

Criptosistemas simetrıcos

Figure 6.1: Criptosistema simetrico.

Simetrico ⇔ clave secreta compartida.El emisor y el receptor deben conocer la claveTodos los sistemas clasicos de cifrado son simetricos.Una pregunta para responder mas adelante: +puede ser de otra manera?Ventajas

• La seguridad depende solo del secreto de la clave.

• Son muy rapidos.

• Los sistemas con un gran espacio de claves son muy seguros.

Inconvenientes

• Es complicado establecer un sistema de distribucion y gestion de claves eficiente entre emisory receptor.

• Carecen de firma digital y de otros servicios.

28

Page 29: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

6.1 Cifrado por bloques

Una gran parte de los algoritmos de cifrado simetrico operan dividiendo el mensaje que se pretendecodificar en bloques de tamano fijo, y aplican sobre cada uno de ellos una combinacion de opera-ciones de confusion (sustituciones) y de difusion (transposiciones). Estos algoritmos se denominan,en general, cifrados por bloques.

Recordemos que la confusion consiste en tratar de ocultar la relacion que existe entre el textoclaro, el texto cifrado y la clave. Un buen mecanismo de confusion harıa demasiado complicadoextraer relaciones entre las tres cosas. Por su parte la difusion trata de repartir la influencia decada bit del mensaje original lo mas posible entre el mensaje cifrado.

6.1.1 Modos de operacion

En primer lugar, independientemente del metodo empleado para codificar, hemos de tener encuenta lo que ocurre cuando la longitud de la cadena que queremos cifrar no es un multiplo exactodel tamano de bloque. Entonces tenemos que anadir informacion al final para que lo sea. Elmecanismo mas sencillo consiste en rellenar con ceros el ultimo bloque que se codifica.

Una vez hecho esto, existen dos modos principales de operacion para algoritmos de cifrado porbloques

• Modo ECB (Electronic Codebook)

es el metodo mas sencillo y obvio de aplicar un algoritmo de cifrado por bloques. Simplementese subdivide la cadena que se quiere codificar en bloques del tamano adecuado y se cifrantodos ellos empleando la misma clave.

A favor de este metodo podemos decir que permite codificar los bloques independientementede su orden, lo cual es adecuado para codificar bases de datos o ficheros en los que se requieraun acceso aleatorio. Tambien es resistente a errores, pues si uno de los bloques sufriera unaalteracion, el resto quedarıa intacto. Ademas, el cifrado es facilmente paralelizable.

• Modo CBC (Cipher Book Chaining Mode)

que incorpora un mecanismo de retroalimentacion en el cifrado por bloques. Esto significaque la codificacion de bloques anteriores condiciona la codificacion del actual, por lo quesera imposible sustituir un bloque individual en el mensaje cifrado. Esto se consigue efec-tuando una operacion XOR entre el bloque del mensaje que queremos codificar y el ultimocriptograma obtenido. Para cifrar el primer bloque, se emplea el denominado vector deinicializacion (V.I.), conocido por ambos interlocutores.

6.1.2 Redes de Feistel

En criptografıa, el Cifrado de Feistel es un metodo de cifrado en bloque con una estructura par-ticular. Debe su nombre al criptografo de IBM Horst Feistel. Tambien es conocida comunmentecomo Red de Feistel. Un gran numero de algoritmos de cifrado por bloques lo utilizan, siendo elmas conocido el algoritmo Data Encryption Standard (DES). Las redes de Feistel presentan la ven-taja de ser reversibles por lo que las operaciones de cifrado y descifrado son identicas, requiriendounicamente invertir el orden de las subclaves utilizadas.

El primer algoritmo basado en las redes de Feistel fue el algoritmo Lucifer, disenado al amparode IBM por Horst Feistel y Don Coppersmith a principios de la decada del 1970, aunque lapopularidad para este esquema llego cuando el Gobierno Federal de los Estados Unidos adoptoel algoritmo DES como estandar para el cifrado de las comunicaciones gubernamentales. Estealgoritmo derivaba del algoritmo Lucifer y tambien esta constituido por una red de Feistel. La

29

Page 30: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

naturaleza iterativa de estas redes hacıa que la implementacion del algoritmo en hardware fuerasencillo.

Se divide el mensaje en bloques de tamano N , notados A|B y se procesa cada bloque en nrondas usando:

• Una clave K que se divide en n subclaves: k1, . . . , kn.

• Una funcion f (no necesariamente invertible) que en la ronda i toma la subclave ki y N/2bits y retorna N/2 bits.

siguiendo el siguiente esquema:

Figure 6.2: Ronda i de un cifrado de Feistel

Ai+1 = Bi ⊕ f(Ai, ki)Bi+1 = Ai

El descifrado funciona de manera analoga, a partir de Ai+1|Bi+1 podemos recuperar Ai|Bi siconocemos la clave ki, sin mas que hacer

Bi = Ai+1

Bi+1 = Ai

6.2 DES

Historia:

• 1973: En EEUU la NBS (National Bureaux of Standards) convoco un concurso publico parabuscar un algoritmo criptografico estandar.

• 1974: La NSA (National Security Agency) declaro desierto el primer concurso y refinando lasespecificaciones eligio una variante de Lucifer que llamo DES (Data Encryption Standard).

• 1976: DES se adopto como estandar y se autorizo su uso en las comunicaciones no clasificadasdel gobierno.

• Durante mas de 25 anos DES ha sido el estandar para bancos y comercio electronico.

30

Page 31: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Especificaciones del concurso DES:

• El nivel de seguridad computacional debe ser alto.

• El algoritmo debe ser facil de entender y debera estar especificado en todos sus detalles.

• La seguridad del sistema no debe verse afectada por la publicacion y divulgacion del algo-ritmo.

• Debe estar disponible para cualquier usuario.

• Debera poder usarse en diferentes aplicaciones.

• Facil implementacion en hardware.

• Debe incorporar capacidades de validacion.

• Debe ser exportable.

Pero . . .Secreto:En realidad la NSA querıa que los detalles fuesen secretos.Limitaciones legales:

• La NSA impuso una limitacion en la longitud de la clave: los 128 bits de Lucifer se quedaronen 64 (que son 56 efectivos ya que al ser datos de 8 bits, se conoce el bit de paridad).

• Ası el espacio de claves es pequeno: 256 ≈ 7, 2 · 1016.

Claves debiles:Existen familias de claves llamadas debiles y semidebiles que deben ser evitadas.DES no es un grupo.Triple DES se beneficia de ello: Se usan 2 claves DES: k1 y k2 y se hace un producto de tres

Bastante seguro por el tamano efectivo de su clave: 112 bits.Sigue siendo valido actualmente.Es el propuesto en SET y se encuentra como una opcion en PGP.La historia de DES como estandar:

• Se adopto como estandar en 1976.

• El NIST lo certifico en 1987 y 1993. En esos anos se estandarizo como algoritmo de cifrado.

• Usado sobre todo en el cifrado de la informacion de transacciones entre un cajero y el banco.

• En 1997 NIST no certifico DES y convoco un concurso internacional para buscar un nuevoestandar mundial denominado AES (Advanced Encryption Standard).

• Entre 1997 y 1999 DES se enfrento a tres desafıos conocidos como DES Challenge impulsadospor la companıa RSA.

31

Page 32: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

A mediados de julio de 1998, una empresa sin animo de lucro, llamada EFF (Electronic FrontierFoundation), logro fabricar una maquina capaz de descifrar un mensaje DES en menos de tres dıas.Curiosamente, pocas semanas antes, un alto cargo de la NSA habıa declarado que dicho algoritmoseguıa siendo seguro, y que descifrar un mensaje resultaba aun excesivamente costoso, incluso paraorganizaciones gubernamentales. DES-Cracker costo menos de 250.000 euros.

DES Challenge I (29 de enero de 1997):Se rompe en 96 dıas con 80.000 de ordenadores en Internet que evaluan 7.000 millones de clave

por segundo. Hubo que recorrer el 25% del espacio de claves.DES Challenge II-1 (13 de enero de 1998):Se rompe en 39 dıas con un ataque distribuido (distributed.net) que llega a evaluar 34.000

millones de claves por segundo y recorre el 88% del espacio de claves.DES Challenge II-2 (13 de julio de 1998):Electronic Frontier Foundation (EFF) crea el DES Cracker con una inversion de 200.000 dolares

y en 56 horas rompio la clave evaluando 90.000 millones de claves por segundo.DES Challenge III:El ultimo desafıo propuesto por RSA mostro la capacidad de un ataque distribuido: usando los

tiempos muertos de procesador de maquinas conectadas a Internet que con un programa clientetrabajaban en una parte del espacio de claves.

18 de enero de 1999: union de la maquina DESCracker y distributed.net con 100.000 orde-nadores conectados en Internet y rompen la clave en 22 horas, evaluando 245.000 millones declaves por segundo tras recorrer el 22% del espacio de claves.

Pero . . .DES, actualmente:

• En 1998 la NSA seguıa declarando que DES era seguro, que romperlo era demasiado costosoincluso para grandes organizaciones.

• En realidad el problema de DES no es de diseno, sino que su clave se hizo muy corta.

• DES sigue siendo hoy dıa muy utilizado en aplicaciones (por ejemplo cajeros automaticos).

• Hay mucha resistencia a abandonarlo porque ha sobrevivido mucho tiempo. Se prefieren vari-antes antes que confiar en algoritmos nuevos y para permitir aprovechar las implementacionespor hardware existentes de DES.

6.3 AES

Historia:

• En 1997 el NIST (National Institute of Standards and Technology, antes NBS) no certificoDES y convoco un concurso publico para un nuevo estandar: AES (Advanced EncryptionStandard).

• Gano el algoritmo RIJNDAEL (Vincent Rijmen y Joan Daemen, Belgica) que desde el ano2000 es el nuevo estandar de cifrado del siglo XXI. Es de libre distribucion, disponible desdefinales del ano 2001.

• El proceso completo de seleccion, revision y estudio de todos los candidatos del concurso fuepublico y abierto. Practicamente por primera vez, participo toda la comunidad criptograficamundial. Esto hace que Rijndael sea muy digno de confianza.

32

Page 33: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

En octubre de 2000 el NIST (National Institute for Standards and Technology) anunciabaoficialmente la adopcion del algoritmo Rijndael (pronunciado mas o menos como reindal) comonuevo Estandar Avanzado de Cifrado (AES) para su empleo en aplicaciones criptograficas no mil-itares, culminando ası un proceso de mas de tres anos, encaminado a proporcionar a la comunidadinternacional un nuevo algoritmo de cifrado potente, eficiente, y facil de implementar.

AES es un sistema de cifrado por bloques, disenado para manejar longitudes de clave y debloque variables, ambas comprendidas entre los 128 y los 256 bits. Realiza varias de sus operacionesinternas a nivel de byte, interpretando estos como elementos de un cuerpo de Galois GF (28). Elresto de operaciones se efectuan en terminos de registros de 32 bits. Sin embargo, en algunos casos,una secuencia de 32 bits se toma como un polinomio de grado inferior a 4, cuyos coeficientes sona su vez polinomios en GF (28).

AES, a diferencia de algoritmos como DES, no posee estructura de red de Feistel. En su lugar seha definido cada ronda como una composicion de cuatro funciones invertibles diferentes, formandotres capas, disenadas para proporcionar resistencia frente a criptoanalisis lineal y diferencial. Cadauna de las funciones tiene un proposito preciso:

• La capa de mezcla lineal (funciones DesplazarFila y MezclarColumnas) permite obtener unalto nivel de difusion a lo largo de varias rondas.

• La capa no lineal (funcion ByteSub) consiste en la aplicacion paralela de S-cajas con propiedadesoptimas de no linealidad.

• La capa de adicion de clave es un simple or-exclusivo entre el estado intermedio y la subclavecorrespondiente a cada ronda.

Caracterısticas:

• No es de tipo Feistel.

• Muy adaptado para los procesadores de 8 bits usados en tarjetas inteligentes y arquitecturasde 32 bits.

• Tamano de clave y de bloque variables: 128, 192 y 256 bits (independientemente).

• Usa aritmetica de polinomios sobre cuerpos de Galois, que se traducen en operaciones mod-ulares a nivel de byte y de palabras de 4 bytes.

• Numero de etapas flexible segun necesidades.

• Utiliza un conjunto de S-Boxes con valores precalculados para facilitar los calculos ar-itmeticos.

• Rijndael es mas versatil que la version estandarizada.

AES opera modificando bloques de 128 bits representados en una matriz de 4 × 4 bytes, quellama estado. Cada ronda (excepto la ultima) consiste en cuatro pasos:

La ronda final reemplaza la fase MixColumns por otra instancia de AddRoundKey.1. SubBytes - Sustitucion de bits: Sustitucion no lineal donde cada byte del estado es reem-

plazado con otro segun una tabla:Esta transformacion es una sustitucion no lineal que se aplica a cada byte de la matriz de

estado, mediante una S-caja 8 ∗ 8 invertible, que se obtiene componiendo dos transformaciones:

1. Cada byte es considerado como un elemento del GF (28) que genera el polinomio irreduciblem(x) = x8 + x4 + x3 + x+ 1, y sustituido por su inversa multiplicativa. El valor cero quedainalterado.

33

Page 34: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Figure 6.3: Subbytes.

2. El siguiente paso consiste en aplicar la siguiente transformacion afın enGF (2), si x0, x1, . . . , x7los bits del byte correspondiente, su imagen sera y0, y1, . . . , y7

y0y1y2y3y4y5y6y7

==

1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1

·

x0x1x2x3x4x5x6x7

+

11000110

La funcion inversa serıa la aplicacion de la inversa de la S-caja correspondiente a cada bytede la matriz de estado.

2. ShiftRows Desplazamiento de filas: Los bytes de cada fila del estado se rotan de maneracıclica hacia la izquierda un numero de lugares diferente para cada fila.

La funcion inversa sera, obviamente, un desplazamiento de las filas de la matriz de estado elmismo numero de posiciones, pero a la derecha.

3. MixColumns - Mezcla de columnas: Cada columna del estado se multiplica por un polinomioconstante c(x). Ası se mezclan los 4 bytes de la columna con una transformacion lineal.

4. AddRoundKey - Calculo de las subclaves: Cada byte del estado se combina mediante XORcon una subclave. Las subclaves se derivan de la clave de cifrado usando un proceso iterativo.

34

Page 35: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Figure 6.4: ShiftRows.

Figure 6.5: MixColumns.

Figure 6.6: AddRoundKey.

35

Page 36: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 7

Intercambio de claves

Intercambio de claves

• A traves de un canal abierto, dos interlocutores que no poseen ningun conocimiento secretocomun, necesitan compartir una clave secreta.

• Las mismas ideas que dieron origen a la Criptografıa de clave publica aportaron soluciones aeste antiguo problema.

• Primera solucion:

Diffie y Hellman propusieron en 1976 un metodo que basa su seguridad en el problema dellogaritmo discreto.

• Hay actualmente muchos otros protocolos de intercambio de claves, algunos perfeccionandoel de D-H y otros basados en nuevas ideas.

A y B se envıan mensajes usando un canal abierto y consiguen compartir un secreto K quesolo es conocido por ellos:

1. Eligen y publican un primo adecuado p y un generador g, 2 ≤ g ≤ p − 2 del grupo multi-plicativo de Zp.

2. A elige un secreto x, 1 ≤ x ≤ p− 2 y envıa a B el mensaje gx mod p.

3. . B elige un secreto y, 1 ≤ y ≤ p− 2 y envıa a A el mensaje gy mod p.

4. B recibe gx y calcula la clave compartida como

K = (gx)y mod p

5. A recibe gy y calcula la clave compartida como

K = (gy)x mod p

Un ejemplo artificialmente pequeno:

1. A y B eligen y publican un primo adecuado p = 71 y un generador g = 21 del grupomultiplicativo deZ71.

2. A elige un secreto x = 46 y envıa a B el mensaje gx mod p = 2146 mod 71 = 9.

36

Page 37: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

3. B elige un secreto y = 57 y envıa a A el mensaje gymod p = 2157 mod 71 = 61.

4. B recibe gx = 9 y calcula la clave compartida como

K = (gx)y mod p = 957 mod 71 = 16.

5. A recibe gy y calcula la clave compartida como

K = (gy)x mod p = 6146 mod 71 = 16.

Seguridad:

• Si un atacante interceptara toda la comunicacion, llegarıa a conocer los valores de p, g, gx ygy.

• Para encontrar K necesita conocer uno de los valores x, y. Su dificultad es que para hallarx tiene que calcular el logaritmo discreto en Zp de gx de base g, y este es un problemaintratable (analogamente para y).

• Se podrıa aumentar la seguridad mediante el uso de un grupo sobre el que el PLD fuesemas duro: por ejemplo, el grupo multiplicativo de un cuerpo finito o el grupo de una curvaelıptica.

• Es seguro ante ataques pasivos, pero se necesitaran mejoras para protegerse de ataquesactivos:

Ataque de intercepcion y suplantacion:

• A elige un secreto x, 1 ≤ x ≤ p− 2 y envıa a B el mensaje gx mod p.

C intercepta gx mod p, elige un z con 1 ≤ z ≤ p− 2 y envıa a B el valor gz mod p.

• B elige un secreto y, 1 ≤ y ≤ p− 2 y envıa a A el mensaje gy mod p.

C intercepta gy mod p, y envıa a B el valor gz mod p.

• B recibe gz y calcula la clave compartida como

K = (gz)y mod p

• A recibe gz y calcula la clave compartida como

K = (gz)x mod p

C calcula tambien la clave compartida haciendo

K = (gx)z mod p

7.1 Ataques

El protocolo es sensible a ataques activos del tipo Meet-in-the-middle. Si la comunicacion es in-terceptada por un tercero, este se puede hacer pasar por el emisor cara al destinatario y viceversa,ya que no se dispone de ningun mecanismo para validar la identidad de los participantes en lacomunicacion. Ası, el ”hombre en el medio” podrıa acordar una clave con cada participante yretransmitir los datos entre ellos, escuchando la conversacion en ambos sentidos. Una vez estable-cida la comunicacion simetrica el atacante tiene que seguir en medio interceptado y modificandoel trafico para que no se den cuenta.

Para evitar este tipo de ataque se suele usar una o mas de las siguientes tecnicas:

37

Page 38: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Control de tiempos.

• Autenticacion previa de las partes.

• Autenticacion del contenido.

7.2 Autenticacion e integridad

Necesidad de autenticacion:

• Al ataque anterior (y a otros) son susceptibles tambien todos los todos los criptosistemas declave publica que hemos visto.

• La debilidad clave es la dificultad de autenticacion y de integridad, en varios sentidos:

– Autenticacion de la identidad del emisor del mensaje.

– Autenticacion de la identidad del que recibe el mensaje.

– Verificacion de la integridad del mensaje, etc.

• Las soluciones vendran de una combinacion de las tecnicas estudiadas.

Este estudio nos llevara a los conceptos de funciones resumen, certificados, firma, etc.

38

Page 39: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 8

Clave publica

Si la clave es publica cualquiera puede descifrar, . . . o no?Idea fundamental:Asimetrıa ⇔ separacion de claves: una publica que cifra y otra privada que descifra.Dos ejemplos:1. El cartero fiel:

• Clave publica: mi direccion.

• Clave privada: la llave de mi buzon.

2. El fabricante de cajas de seguridad:

• Clave publica: una caja abierta, que se bloquea al cerrarla.

• Clave privada: mi llave de la caja.

Cifrado y descifrado asimetrico: la clave publica la tienen todos, la clave privada solo la tieneel destinatario:

Figure 8.1: Clave publica.

Ni el mismo emisor puede descifrar!Los algoritmos asimetricos poseen dos claves diferentes en lugar de una, Kp y KP , denominadas

clave privada y clave publica. Una de ellas se emplea para codificar, mientras que la otra se usa

39

Page 40: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

para decodificar. Dependiendo de la aplicacion que le demos al algoritmo, la clave publica sera lade cifrado o viceversa. Para que estos criptosistemas sean seguros tambien ha de cumplirse que apartir de una de las claves resulte extremadamente difıcil calcular la otra. Se basan en general enplantear al atacante problemas matematicos difıciles de resolver

Un poco de (pre)historia:

• El concepto de criptosistema de clave publica fue descubierto por James Ellis (GovernmentCommunications Headquarters) al final de los a+?os 60 (7 anos antes que DH).

• Clifford Cocks desarrollo esas ideas y descubrio un criptosistema equivalente a RSA en 1973(3-4 a+?os antes que Rivest, Shamir y Adleman).

• Malcolm Williamson, buscando fallos en el trabajo de Cocks, descubre el Intercambio declaves DH en 1975 (un ano antes que Diffie y Hellman).

Los servicios secretos no supieron valorar estos descubrimientos, pero los mantuvieron en secretoy el merito fue para otros.

Whitfield Diffie y Martin Hellman publicaron el artıculo ”New Directions in Cryptography” en1976.

Los autores afirman que serıa posible implementar criptosistemas de clave publica usandoesotericas funciones relacionadas con difıciles problemas matematicos.

No hacen propuestas concretas.Cuales son esas magicas funciones matematicas?Funciones de un solo sentido:

• En realidad son funciones biyectivas . . . de otra forma no se podrıa descifrar!

• Lo importante es que para ser capaz de invertirlas hay que conocer cierta informacion: laclave privada!.

• Si no se conoce la clave privada es computacionalmente imposible invertir la funcion.

Quien conoce una funcion ası?Esta pregunta queda en pie tras el artıculo de Diffie y Hellman.

40

Page 41: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 9

Mochila de Merkle-Hellman

Merkle y Hellman propusieron en 1977 el que fue (probablemente) el primer sistema de cifrado declave publica.

Basado en el problema subset-sum:Dada una lista de enteros positivos (a1, a2, . . . , an) y un entero positivo s, encontrar, si existe,

una lista de enteros (x1, x2, . . . , xn) con xi ∈ {0, 1}, 1 ≤ i ≤ n tales que∑ni=1 xi · ai = s

El problema es NP-completo y es llamado a menudo el problema de la mochila.El caso de la mochila supercreciente:

• Una mochila (b1, b2, . . . , bn) se dice que es supercreciente si bi ≥∑i−1j=1 bj , ∀i = 2, . . . , n

• Si la mochila es supercreciente es facil decidir si el problema tiene solucion y, en su caso,hallarla

Para i = n hasta 1

xi = 0

Si s ≥ bi entonces xi = 1, s = s− bi

9.1 MH: generacion de claves

En Merkle-Hellman, las claves estan compuestas por secuencias. La clave publica es una secuencia”difıcil”, y la clave privada es una ”facil”, o secuencia de valores supercrecientes, junto con dosnumeros adicionales, un multiplicador y un modulo, los cuales son usados para convertir la secuen-cia supercreciente en una secuencia difıcil. Estos mismos numeros son usados para transformar lasuma de la subsecuencia de la secuencia ”difıcil” en la suma de la subsecuencia de la secuencia”facil”, la cual se puede solucionar en tiempo polinomial.

Cada usuario crea su clave publica y la correspondiente clave privada:

• Crea una mochila supercreciente (b1, b2, . . . , bn)

• Elige un modulo M con M > b1 + b2 + . . .+ bn

• Elige un entero W , 1 ≤W ≤M − 1 con mcd(W,M) = 1

• Elige una permutacion π de (1, 2, . . . , n)

• Calcula ai = W · bπ(i) mod M , para i = 1, . . . , n

41

Page 42: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• La clave publica es (a1, a2, . . . , an)

• La clave privada es (π,M,W, (b1, b2, . . . , bn)).

9.2 Cifrado y descifrado

B cifra un mensaje para A

1. Obtiene la clave publica de A: (a1, a2, . . . , an)

2. Representa el mensaje m como una cadena binaria m1m2 . . .mn.

3. Calcula el entero c = m1a1 +m2a2 + . . .+mnan.

4. Envıa el mensaje cifrado c a A.

A descifra el mensaje de B

1. Calcula d = W−1 · c mod M .

2. Resuelve el problema de la mochila supercreciente y encuentra enteros r1, r2, . . . , rn ∈ {0, 1}tales que d = r1b1 + r2b2 + . . . rnbn.

3. Los bits del mensaje son mi = rπ(i), i = 1, 2, . . . , n.

POR QUE FUNCIONA EL DESCIFRADO?La operacion que se realiza en el descifrado es:d = W−1c = W−1

∑ni=1miai =

∑ni=1mibπ(i) (mod M)

Como0 ≤ d < M, d =

∑ni=1mibπ(i) mod M

La solucion del problema con la mochila supercreciente dara los bits del mensaje (tras laaplicacion de la permutacion).

9.3 Seguridad

• El problema general subset-sum es NP-completo, pero el particular de la mochila derivadade una supercreciente no lo es.

• Se conoce un ataque capaz de romper el criptosistema en tiempo polinomial.

• El unico sistema criptografico basado en el problema de la mochila para el que aun no seconoce un ataque con exito es el de Chor-Rivest.

42

Page 43: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 10

RSA

En 1977 Ron Rivest, Adi Shamir y Len Adleman propusieron un criptosistema de clave publicasustentado en el que paso a llamarse el problema RSA, basado en la factorizacion de enteros.

RSA se basa en la dificultad para factorizar grandes numeros. Las claves publica y privada secalculan a partir de un numero que se obtiene como producto de dos primos grandes. El atacantese enfrentara, si quiere recuperar un texto claro a partir del criptograma y la clave publica, a unproblema de factorizacion o tendra que resolver un logaritmo discreto

10.1 RSA: herramientas matematicas

Antes de seguir con el criptosistema RSA, necesitaremos unas herramientas matematicas

10.1.1 Inversos modulo n

Cuando trabajamos modulo un entero, en numerosas ocasiones necesitaremos calcular el inversode algun elemento, y la existencia de dicho inverso esta determinada por el siguiente criterio

Dado x ∈ Zn el inverso de x modulo n existe si y solo si el maximo comun divisor dex y n es 1 (o dicho de otra forma, si los numeros en cuestion son coprimos).

Para el calculo de dicho inverso (en caso de que exista) se utiliza el algoritmo extendido deEuclides.

Calculemos manualmente 17−1 mod 65:

(1) 65 = 3 · 17 + 14(2) 17 = 1 · 14 + 3(3) 14 = 4 · 3 + 2(4) 3= 1 · 2 + 1

1= 3 - 1 · 2 == 3 - 1 · (14 - 4 · 3) = - 14 + 5 · 3 ==-14 + 5 · (17 - 1 · 14) = 5 · 17 - 6 · 14 == 5 · 17 - 6 (65 - 3 · 17) = 23 · 17 - 6 · 65

Ası, la identidad de Bezout 1 = 23 ·17+(−6) ·65 leida modulo 65 nos da que 1 = 23 ·17 mod 65

10.1.2 Teorema de Euler

Un resultado basico para que funcione el descifrado es el llamado Teorema de Euler que fue primer-amente enunciado y demostrado por Fermat para el caso particular en el que el modulo es primo

43

Page 44: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Pequeno Teorema de Fermat: si p primo y x no nulo y menor que p, se verifica

xp−1 = 1 mod p

El teorema de Euler generaliza el pequeno teorema de Fermat para cualquier valor del modulo,aunque siempre manteniendo la condicion de coprimalidad de x y p

Teorema de Euler: si x y p coprimos, se verifica

xφ(p) = 1 mod p

Donde φ es la funcion de Euler, que mide el numero de unidades de Zn, y cuya esformula es

φ(n) = n · (1− 1

p1) · · · (1− 1

pr)

donde los pi son los factores primos de n, es decir n = pa11 · · · parr .

10.1.3 Teorema Chino del Resto (TCR)

Este teorema nos determina la existencia de soluciones de un sistema de congruencias.Si n1, . . . , nk son enteros primos entre sı dos a dos, n = n1 · · ·nk y a1, . . . , ak ∈ Z, se trata de

resolver el siguiente sistema de ecuaciones:x = a1 mod n1

...x = ak mod nk

En tal caso el sistema tiene solucion unica mod n, y dicha solucion se halla de la siguientemanera, en primer lugar se calculan ci = n

niy di = c−1i mod ni, ∀i = 1, . . . , k; ahora las soluciones

son:x = a1c1d1 + . . . akdkck + λ · n, ∀λ ∈ Z

10.1.4 Calculo de potencias enteras

Otra herramienta basica para el funcionamiento de RSA es la exponenciacion modular repetida denumeros (eventualmente grandes), ası que es interesante disponer de un metodo que nos permitacalcular el valor de me modn con un mınimo numero de operaciones

La idea consiste en llegar al valor de me por medio de cuadrados y multiplicaciones por m,siguiendo la hoja de ruta marcada por la expresion binaria del exponente e (reduciendo cadaresultado intermedio cuando se sobrepase el modulo n.

me =

m e = 1(mb

e2 c)2 epar

m ·me−1 eimpar

El seudocodigo de una version no recursiva serıa ası:s = 1, t = m, q = e;

mientras (q > 0)

si (q & 1) // si q es impar

s = s * t;

q = q / 2; // division entera(desplazamiento)

44

Page 45: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

t = t * t;

retorna s;

Este algoritmo se ejecuta en tiempo logarıtmico en funcion del valor del exponente e.El calculo sin ordenador es un poco diferente. Ejemplo de calculo de 2100:

100 = 11001002 → 1C1C0C0C1C0C0→MCMC0C0CMC0C0→MCMCCCMCC

1M−→ 2

C−→ 4M−→ 8

C−→ 64C−→ 4096

C−→ 16777216M−→ 33554432

C−→ . . .

. . .C−→ 1125899906842624

C−→ 1267650600228229401496703205376

No son 100 multiplicaciones, sino solo 9 (el numnero de operaciones a realizar esta acotado porel doble del numero de bits del exponente −1.

10.1.5 Construccion de primos grandes

Tambien sera necesario un procedimiento para generar primos grandes con facilidad. Para generarun primo, se construye un entero impar de k bits (donde k marca el tamano deseado):

1 * * . . . * * 1

El primero y el ultimo bit se ponen a 1 y los bits intermedios se eligen al azar. La probabilidadde que el numero ası construido sea primo es de 2/(k · ln2)

Si el numero obtenido no es primo volvemos a sortear los bits intermedios y repetimos hastaobtener un primo.

Ahora necesitamos determinar si hemos encontrado un primo, y para ello podemos aplicar eltest de primalidad de Miller-Rabin

Entrada: n impar, con n = 2s · r + 1 con r impar.Salida: ”compuesto” si el numero no es primo; ”probable primo” si el numero es probablemente

primo, con probabilidad de error de 1/4

El funcionamiento de dicho test es el siguienteSe elige al azar un entero a con 1 < a < n.y = ar mod nSi y = 1 mod n, retorna "probable primo"

j=1

Mientras j ≤ s− 1, y y 6= −1{y = y2 mod nSi y = n− 1 retorna "probable primo"

j = j + 1 }Retorna "compuesto"

Si se obtiene k veces la respuesta ”probable primo”, entonces la probabilidad de error es inferiora 1/22k, lo que lo hace muy fiable.

Para hacernos una idea de la fiabilidad, valga este cuadro:

Concepto ProbabilidadEl gordo de Navidad 2−17

Un meteorito y un asteroide el mismo dıa 2−27

Te toca la primitiva y te mata un rayo el mismo dıa 2−56

Error en MR(n, 50) 2−100

45

Page 46: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Adicionalmente, es interesante que los primos utilizados sean fuertes, se dice que un primo p esfuerte si verifica:

• p+ 1 tiene un factor primo grande.

• p− 1 tiene un factor primo r grande.

• r − 1 tiene un factor primo grande.

Para la busqueda de primos fuertes podemos utilizar el llamado test de Gordon

• Elige dos primos r, s de tama+?o adecuado

• Calcula t como el menor primo de la forma a · r + 1 con a ∈ Z.

• Calcula p0 = (st−1 − ts−1) mod (s · t)

• Calcula p como el menor primo de la forma p = p0 + a · t · s con a ∈ Z.

10.2 RSA: el problema

El problema matematico de difıcil resolucion en que radica la fortaleza del criptosistema RSA esel siguiente, dados:

• Un entero n, que se sabe que es producto de dos primos p y q (desconocidos)

• Un entero e, que sabemos que es primo con p− 1 y con q − 1.

• Un entero c, que sabemos que es el resultado de elevar un numero desconocido m a e modulon.

Hay que encontrar un entero m tal que me = c (mod n), es decir, descifrar el mensaje cifradoc, que corresponde al texto en claro m.

La factorizacion de enteros resuelve el problema RSA, puesto que si sabemos factorizar n = p·q,

• Calculamos φ = (p− 1)(q − 1)

• Hallamos d = e−1 en Zφ

• La solucion es m = cd mod n.

De hecho conociendo φ serıa facil encontrar p y q con solo resolver una ecuacion de segundogrado, ya que φ(n) = (p − 1) · (q − 1) y, por ejemplo q = n/p, con lo que quedarıa φ(n) =(p− 1)(n/p− 1), y resolverıamos la ecuacion

p2 + (φ(n)− n− 1) · p+ n = 0

No esta demostrado que el problema RSA sea equivalente al de la factorizacion, pero el problemade determinar d sı lo es, ya que conocido este existe un sencillo ataque que nos darıa la factorizacionde n.

46

Page 47: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

10.3 Generacion de claves

Cada usuario cera una clave publica y la correspondiente clave privada:

1. Genera dos primos grandes p y q, de tamano similar.

2. Calcula n = p · q y φ = (p− 1)(q − 1).

3. Elige un entero e, 1 < e < φ con mcd(e, φ) = 1.

4. Calcula el unico entero d, 1 < d < φ tal que e · d = 1 modφ.

5. La clave publica es (n, e), la privada es d.

El entero e se llama el exponente de cifrado, d el exponente de descifrado y n el modulo.

10.4 Cifrado y descifrado

El modo de empleo del protocolo es el siguiente:

Cifrado B cifra un mensaje para A

(a) Obtiene la clave publica de A (n, e)

(b) Representa el mensaje como un entero m en el intervalo [0, n− 1]

(c) Calcula c = me mod n.

(d) Envıa el texto cifrado c a A.

Descifrado A descifra el mensaje de B

Usa su clave privada para recuperar m = cd mod n.

Este procedimiento nos permite cifrar y descifrar, puesto que

• Como ed = 1 (mod φ(n)), existe un entero k con ed = 1 + kφ(n)

• Si mcd(m, p) = 1, entonces, por el Teorema de Euler, mp−1 = 1 (mod p). Elevando ambosmiembros a k(q − 1) y multiplicando por m queda

med = m1+k(p−1)(q−1) = m (mod p).

• Si mcd(m, p) = p entonces ambos miembros son 0 modulo p, con lo que la congruenciaanterior tambien se verifica

• Por un argumento similar med = m (mod q) y como p y q son primos, de aquı se sigue que

med = m (mod n)

Para simplificar el descifrado, podemos utilizar el Teorema Chino del Resto; la idea consiste entrasladar las operaciones de Zn a Zp × Zq, y resolver el sistema{

x = cd mod px = cd mod q

que tiene solucion unica modulo n, ası:

47

Page 48: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

1. ap = qp−1 mod n, aq = pq−1 mod n

2. dp = d mod (p− 1), dq = d mod (q − 1)

3. cp = c mod p, cq = c mod q

4. m = ap(cdpp mod p) + aq(c

dqq mod q) mod n

Se hacen mas operaciones pero mas rapidas; ademas los valores de los dos primeros pasospueden estar precalculados, ya que no dependen del mensaje recibido.

10.5 RSA: seguridad

Ron Rivest estimo en 1977 que factorizar un numero de 125 dıgitos requerirıa 40.000 billones deanos, esto le llevo a pensar que RSA-129 no podrıa ser roto jamas en la practica.

Un reto de factorizacion (propuesto por los inventores de RSA en 1977) aparecio en la columnade Martin Gardner Mathematical Games de la revista Scientific American. Fue resuelto en 1994por un gran proyecto computacional conjunto coordinado por Derek Atkins, Michael Graff, Ar-jen Lenstra y Paul Leyland. Mas de 600 voluntarios aportaron tiempo de calculo de unas 1600maquinas (dos de ellas de fax) durante mas de seis meses. La coordinacion se realizo a traves deInternet y supuso uno de las primeros proyectos de estas caracterısticas.

Para superar el desafıo RSA-129 habıa que factorizar un mensaje cifrado con una clave 129dıgitos, 425 bits, concretamente el numero:

11438162575788886766923577997614661201021829672124236256256184293 . . .

. . . 5706935245733897830597123563958705058989075147599290026879543541

que se factoriza como

3490529510847650949147849619903898133417764638493387843990820577∗

∗32769132993266709549961988190834461413177642967992942539798288533

La solucion era el texto The Magic Words are Squeamish Ossifrage (del ingles ”Las PalabrasMagicas son Quebrantahuesos Aprensivo”) y el hito de 1994 inauguro la tradicion de usar laspalabras squeamish ossifrage en los retos criptoanalıticos.

El premio ofrecido por el reto era de 100 $, que los ganadores donaron a la Free SoftwareFoundation.

Con la siguiente estimacion de capacidad de calculo (en mips1 por ano):Particular (P) Gran empresa (E) Gobierno (G)

10.000 10.000.000 1.000.000.000Teniendo en cuenta que la potencia de calculo se multiplica por 10 cada 5 anos y las Matematicas

avanzan cada ano, los tamanos recomendados de claves:Ano Contra P Contra E Contra G1995 768 1280 15362000 1024 1280 15362005 1280 1536 20482010 1280 1536 20482015 1536 2048 40962045 8192 16384 32768

1”M”illones de ”I”nstrucciones ”P”or ”S”egundo”. Es una forma de medir la potencia de los procesadores

48

Page 49: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

10.6 Debilidades

10.6.1 Necesidad de relleno

1. Algunos valores del mensaje pueden dar cifrados inseguros:

• Los valores m=0 y m=1 siempre se cifran en sı mismos.

• Con exponentes pequenos y valores pequenos de m, el cifrado podrıa ser estrictamentemenor que el modulo y el texto en claro podrıa obtenerse haciendo la raız e-esima, sintener en cuenta el modulo.

2. Siempre hay mensajes que se cifran en sı mismos (al menos 9). De hecho su numero exactoes :

(1 +mcd(e− 1, p− 1)) · (1 +mcd(e− 1, q − 1))

3. RSA es determinista, por lo que es viable un ataque de texto elegido: el atacante construyeun diccionario de textos probables y sus cifrados. Interceptando un texto cifrado, el atacantepuede usar este diccionario para descifrar el mensaje.

Proteccion: combinar RSA con algun esquema de relleno (como por ejemplo estandares comoPKCS).

10.6.2 Ataque de primos cercanos

• Fuerza bruta

Si p y q son primos cercanos, p esta cerca de√

(n); ası serıa viable un ataque de fuerza bruta

dividiendo n entre impares menores que√

(n).

• Factorizacion de Fermat

Si llamamos x = p+q2 , y = p−q

2 , entonces x2 − n = y2. Como x2 > n, la idea es probar todos

los x >√

(n) hasta dar con uno que x2 − n sea cuadrado perfecto. Cuanto mas cercanossean p y q, mas pequeno sera y, y haran falta menos iteraciones.

Con x e y, calculamos p = x+ y, q = x− y.

Mersenne propuso a Fermat el problema de decidir si era primo el numero 2027651281Fermat contesto rapidamente:

2027651281 = 44021 · 46061

El metodo: √n = 45029, 45 . . .

x√x2 − n 2027651281 =

45030 222, 75 . . . 450412 − 10202 =45031 373, 74 . . . (45041 + 1020)·45032 479, 32 . . . (45041− 1020) =. . . . . . 46061 · 44021

45041 1020, 00

49

Page 50: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

10.6.3 Multiples claves que descifran

Ademas de la clave privada d pueden encontrarse otras claves que tambien sirvan para descifrar,aunque no sean d = e−1 mod n:

Llamandoγ = mcm(p− 1, q − 1)

dγ = e−1 mod γ

λ = bn− dγγc

Habra λ claves dk que descifran (ademas de d):

dk = dγ + k · γ, k = 0, 1, . . . , λ

Ejemplo:Clave publica (n, e) = (3053 = 7143, 157).Clave privada d = 157−1 mod (70 · 42) = 1573.

γ = mcm(70, 42) = 210.

dγ = 157−1 mod 210 = 103.

Claves que descifran:

103 + k · 210, k = 0, . . .3053− 103

210= 14

Esto es: 103, 313, 523, 733, 943, 1153, 1363,1573, 1783, 1993, 2203, 2413, 2623, 2833, 3042.

10.7 Sobre la eleccion de claves

Algunos criterios para una buena clave:

• p y q deben ser suficientemente grandes, del mismo tamano, pero no muy cercanos.

• Debe maximizarse mcm(p− 1, q − 1)

• Deben minimizarse mcd(e− 1, p− 1) y mcd(e− 1, q − 1).

• p y q deben ser primos fuertes.

Existen algoritmos para generar buenas claves y pruebas para validar su calidad.Error: elegir un mismo modulo n y distribuir distintos pares (e, d) a los usuarios de la organi-

zacion.

• Por lo delicado de la buena eleccion del modulo, es un error bastante frecuente.

• El problema es que el conocimiento de un simple par (e, d) puede revelar la factorizacion den y romper todo el sistema.

Debe evitarse el uso repetido de un pequeno exponente de cifrado.Por ejemplo, un mensaje enviado a 3 destinatarios que han elegido e = 3, es muy probable que

pueda ser descifrado usando el TCR.

50

Page 51: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 11

Firma y resumen digital

Aparte de la confidencialidad durante la transmision de informacion, tenemos una serie de objetivosque conseguir por medio del uso de la Criptografıa, como por ejemplo:

• Integridad del mensaje.

• Autenticacion del emisor y/o del receptor

• No suplantacion.

• No repudio.

Para implementar mecanismos que permitan estos servicios empezaremos por una herramientafundamental: la firma digital.

Firmar un documento consiste en anadirle cierta informacion que valide su autorıa. No debeconfundirse la firma electronica con la firma digital; la firma electronica es un concepto jurıdico,equivalente electronico al de la firma manuscrita, donde una persona acepta el contenido de unmensaje electronico a traves de cualquier medio electronico valido. Ejemplos de firma electronicason

• firmar con un lapiz electronico al usar una tarjeta de credito o debito en una tienda.

• marcar una casilla en una computadora, a maquina o aplicada con el raton o con el dedo enuna pantalla tactil.

• usar una firma digital.

• usuario y contrasena.

• usar una tarjeta de coordenadas.

Una firma electronica crea un historial de auditorıa que incluye la verificacion de quien envıael documento firmado y un sello con la fecha y hora.

Segun la Ley 59/2003, de firma electronica, en Espana, la firma electronica es el conjuntode datos en forma electronica, consignados junto a otros o asociados con ellos, que pueden serutilizados como medio de identificacion del firmante.

No vamos a estudiar la firma electronica, sino la firma digital, que es un mecanismo criptograficoque, dado un mensaje (cifrado o no), permite (al menos):

• Determinar la entidad originadora del mensaje (autenticacion de origen y no repudio).

51

Page 52: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Confirmar que el mensaje no ha sido alterado desde que fue firmado (integridad).

Para que esto se pueda llevar a cabo necesitamos que la firma digital cumpla una serie derequisitos:

1. Unica: solo puede ser generada por el firmante.

2. No falsificable: para falsificarla hay que resolver problemas computacionalmente intratables.

3. Dependiente del documento.

4. Verificable por terceros.

5. Innegable: el firmante no debe poder negar su firma.

6. Viable: deben existir algoritmos eficientes de generacion y verificacion.

Con un buen criptosistema de clave publica podemos disenar de forma sencilla mecanismos defirma digital.

11.1 Firma RSA

Holmes tiene (n, e, d) como clave RSA (siendo d secreto) y firma un documento D de la siguienteforma, calcula f = RSA(n, d,D) y publica D y f :

Watson accede al documento firmado (D, f) y lo comprueba calculando RSA(n, e, f) y com-parandolo con D, si el resultado es igual, la firma es correcta y en caso contrario es falsa.

La comprobacion de la firma puede hacerla todo el mundo ya que solo se necesita la clavepublica de Holmes.

Este metodo cumple los 5 primeros requisitos exigidos, pero no el sexto, si el mensaje D es muygrande, f puede ser tambien enorme y los calculos muy lentos.

Tendrıamos resuelto el problema si supieramos asociar a un documento una pequena cantidadde informacion (un resumen), de forma inequıvoca .

11.2 Funciones resumen

Idea basica: el resumen de un documento D debe servir como una representacion compacta de Dy debe poder usarse como si el documento estuviera identificado de forma unica por su resumen.

Esto se traduce en varias condiciones basicas que debe cumplir una funcion resumen:

1) Facilidad y velocidad de calculo. h(D), el resumen de D, debe ser muy facil y rapido decalcular.

2) Resumen de longitud fija. El tamano del resumen h(D) debe ser fijo (definido por la funcion),sin depender del tamano de D.

3) Difusion. h(D) debe ser una funcion en la que intervengan todos los bits de D. Si en Dcambiase un bit, en h(D) deberıan cambiar aproximadamente la mitad de los bits.

4) Unidireccionalidad. Conocido un resumen h(D), debe ser computacionalmente imposibleencontrar D.

5) Resistencia a colisiones. Es evidente que h nunca puede ser una funcion inyectiva, con loque siempre existen colisiones: pares (D,D′) tales que h(D) = h(D′). Distinguiremos entreresistencia debil y fuerte a las colisiones.

52

Page 53: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

5a) Resistencia debil. Conocido D, debe ser computacionalmente imposible encontrar D′

tal que h(D) = h(D′).

5b) Resistencia fuerte. Debe ser computacionalmente imposible encontrar D y D′ tales queh(D) = h(D′).

¿Cuantos intentos son necesarios para encontrar una colision del segundo tipo? Menos de losque uno esperarıa, debido a la llamada paradoja del cumpleanos:

Sea p(n) probabilidad de que en un grupo de n personas elegidas al azar haya al menos dos conel mismo cumpleanos.

¿Cuanto debe valer n para que p(n) > 0, 5 (es decir, para que la probabilidad de coincidenciasea mayor del 50% ? La (sorprendente) respuesta es n = 23.

La probabilidad de que todos los cumpleanos sean diferentes en un grupo de n personas(suponiendo que no hay ninguna que haya nacido el 29 de febrero) es

365

365· 364

365· 363

365· · · 365− n+ 1

365

Teniendo esto en cuenta, si n es el tamano del resumen y evaluamos la funcion h sobre 2n/2

documentos, la probabilidad de encontrar dos de ellos con igual resumen es superior al 50%, conlo que el mınimo tamano del resumen sera de 160 bits y el tamano recomendado irıa por encimade 256 bits.

11.2.1 Algunas funciones resumen

Como ejemplos de funciones resumen podemos citar las siguientes:

• CRC32 (W. W. Peterson, 1961) Disenada para deteccion de errores, con resumen de 32 bits.No adecuada para usos criptograficos. http://www.crc-online.com.ar/

• MD5 (R. Rivest, 1992) Sucesora de MD4, con resumen de 128 bits. Su seguridad esta enduda y se desaconseja su uso. http://www.sha1-online.com/

El proceso sobre cada bloque consiste en cuatro rondas, compuestas cada una de 16 opera-ciones similares, basadas en una funcion no lineal F (diferente para cada ronda), adicionmodular y rotacion a la izquierda.

• SHA-1 (NSA, 1994) Basada en MD5, con resumen de 160 bits, mas segura. La familiaSHA (Secure Hash Algorithm, Algoritmo de Hash Seguro) es un sistema de funciones hashcriptograficas relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos ypublicadas por el National Institute of Standards and Technology (NIST).

El proceso sobre cada bloque consiste en cuatro rondas, compuestas cada una de 20 opera-ciones similares, basadas en una funcion no lineal F (diferente para cada ronda)

• SHA-2 (NSA, 2001) Sucesora de SHA-1, con resumenes de 224,256,384 o 512 bits. Conmuchos cambios sobre su predecesora. Recomendada actualmente.

Algunos usos de las funciones resumen son:

• Generacion de claves para criptosistemas simetricos.

• Checksum y verificaciones de integridad (sin adversarios).

• Generadores seudoaleatorios.

53

Page 54: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Tablas hash de busqueda (colecciones, bases de datos, etc.)

• Validacion y almacenamiento de contrasenas.

• Firma electronica.

11.3 Firma eficiente usando resumenes

Holmes tiene (n, e, d) como clave RSA y quiere firmar un documento m (cifrado o no), para ello

1. Elige una funcion resumen h y calcula el resumen r = h(m).

2. Calcula y publica cifrado del resumen con la clave privada:

f = RSA(n,d)(r) = rd mod n

3. Se adjunta la firma al documento.

4. Solo puede firmar el propietario de la clave privada.

Watson verifica de la firma:

1. Se calcula el resumen r = h(m).

2. La firma es valida siRSA(n,e)(f) = fe mod n = r

3. Si los resultados no coinciden: el documento ha sido alterado o el firmante no es el legal.

4. Cualquiera puede verificar la firma ya que para ello se usa la clave publica.

Veamos un ejemplo artificialmente pequeno:Firmamos el mensaje m = ”esto es muy importante”

• Como funcion resumen usamos h = CRC32:

h(m) = F0EBDC78 = 4041989240

• Parametros RSA:(n = 10009202107, e = 123456789)

d = 4295292925

• Firma:40419892404295292925 mod 10009202107 = 14275210

• Verificacion de la firma:

14275210123456789 mod 10009202107 = 4041989240 = h(m)

54

Page 55: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

11.4 Un ataque a la firma digital

Un ataque factible cuando la funcion resumen no es muy robusta es el llamado “ataque decumpleanos”:

Moriarty quiere enganar a Watson para que firme un contrato fraudulento, y para ello:

1. Prepara un contrato bueno C y otro malo C ′.

2. Modifica C y C ′ sin cambiar los significados (usando sinonimos, comas, espacios, lıneas enblanco, etc.) hasta que encuentra una pareja (C,C ′) con h(C) = h(C ′).

3. Envıa C a Watson para que lo firme. Watson esta de acuerdo con C, lo firma (usando h) ydevuelve (C, fW (C)).

4. Moriarty sustituye (C, fW (C)) por (C ′, fW (C)).

La proteccion contra este tipo de ataques proviene de una buena eleccion de h. La probabilidadde que en el paso Moriarty encuentre una tal pareja (C,C ′) con h(C) = h(C ′) es muy pequena sila funcion resumen h genera resumenes suficientemente grandes.

55

Page 56: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 12

ElGamal

El procedimiento de cifrado/descifrado ElGamal se refiere a un esquema de cifrado basado enproblemas matematicos de logaritmos discretos. Es un algoritmo de criptografıa asimetrica basadoen la idea de Diffie-Hellman. El algoritmo de ElGamal puede ser utilizado tanto para generarfirmas digitales como para cifrar o descifrar.

Fue descrito por Taher ElGamal en 1984 en un artıculo titulado ”A Public key Cryptosystemand A Signature Scheme based on discrete Logarithms” y se usa en software GNU Privacy Guard,versiones recientes de PGP, y otros sistemas criptograficos. Este algoritmo no esta bajo ningunapatente lo que lo hace de uso libre.

El procedimiento de cifrado (y descifrado) esta basado en calculos sobre un grupo cıclicocualquiera lo que lleva a que la seguridad del mismo dependa de la dificultad de calcular loga-ritmos discretos en un grupo cıclico. El criptosistema de Elgamal ha demostrado ser muy flexibley algunos de los sistemas mas modernos se inspiran en el.

12.1 El problema del logaritmo discreto

Consiste en lo siguiente: un grupo (G, ·) de n elementos es cıclico si existe un g ∈ G (llamadogenerador del grupo) tal que G = {1, g, g2, . . . , gn−1}. Entonces para todo a ∈ G existe un enterok con 0 ≤ k ≤ n− 1 tal que gk = a. Se dice que k es el logaritmo discreto de a de base g.

El problema del logaritmo discreto consiste en hallar el valor de k conocidos G, g y a. En gruposfinitos grandes (como por ejemplo en el grupo multiplicativo de Zp con p un primo fuerte), esteproblema es computacionalmente intratable.

Una vez elegido el grupo con el que vamos a trabajar, necesitaremos encontrar un generadorde dicho grupo, y esto lo podemos llevar a cabo por medio del siguiente algoritmo:

Entrada: G cıclico, con |G| = n = pe11 · pe22 · · · p

ekk .

Salida: un generador g de G.

1. Elige al azar g ∈ G

2. Para i = 1 hasta k, si gn/pi = 1 vuelve al paso 1.

3. Retorna g.

La probabilidad de que g sea generador es φ(n)/n, y un valor del numero estimado de intentosnecesarios para encontrarlo es 6 · ln(ln(n))).

56

Page 57: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

12.2 Generacion de claves

Cada usuario crea su clave publica y la correspondiente clave privada:

1. Construye un primo grande p y un generador del grupo multiplicativo de Zp.

2. Elige aleatoriamente un entero a, 1 < a ≤ p− 2 y calcula β = ga mod p.

3. La clave publica es (p, g, β). La clave privada es a.

12.3 Cifrado y descifrado

B cifra un mensaje para A

1. Obtiene la clave publica de A (p, g, β).

2. Representa el mensaje como un conjunto de enteros m1m2 · · · en el intervalo [0, p− 1].

3. Para cada mi elige al azar un entero ki, 1 < ki ≤ p− 2.

4. Calcula γi = gki mod p y δi = mi · βki mod p.

5. Envıa el texto cifrado ci = (γi, δi) a A.

Este proceso de descifrado nos devuelve el mensaje original, puesto que, por el Teorema deFermat, se tiene que en Zp,

γp−1 = 1

Con lo que γp−1−a = γp−1 · γ−a = g−ak.Y por tanto:

γ−a · δ = g−ak ·m · gak = m

12.4 Eficiencia y seguridad

Entre las desventajas podemos citar

• El proceso de descifrado hace solo una potencia, pero el de cifrado requiere dos, de exponentek, que pueden hacerse mas rapidas eligiendo adecuadamente el exponente.

• Una desventaja es que el mensaje cifrado es el doble de largo que el original.

Por otra parte, habrıa que destacar como ventajas

• Una gran ventaja es que al elegirse k de forma aleatoria, el cifrado de un mismo texto dararesultados diferentes, aunque esto es transparente para el descifrado.

• Es muy flexible y puede adaptarse al uso de otro grupo diferente de Z∗p.

• La seguridad de ElGamal se basa en la dificultad de resolver un problema de logaritmodiscreto.

• Resulta crıtico que se usen diferentes enteros aleatorios k para cada mensaje. Si se usara elmismo k para m1 y m2, dando lugar a los cifrados (γ1, δ1) y (γ2, δ2), entonces δ1/δ2 = m1/m2

y el conocimiento de uno de los mensajes revelarıa el otro.

57

Page 58: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

12.5 Firma digital ElGamal

El esquema de firma ElGamal permite que un verificador pueda confirmar la autenticidad de unmensaje m enviado por un emisor sobre un canal de comunicacion inseguro.

Los parametros utilizados por el esquema ElGamal son na funcion de resumen h resistente acolisiones, un numero primo p muy grande tal que el computo de logaritmos discretos modulo psea difıcil y un generador pseudoaleatorio g para el grupo multiplicativo Z∗p.

A firma un mensaje m:

• Sus claves Elgamal son: publica = (p, g, β),privada = a.

• Elige un entero secreto k, 1 < k ≤ p− 2, primo con p− 1.

• Calcula r = gk mod p.

• Calcula s = k−1(h(m)− ar) mod (p− 1).

• La firma del mensaje m es el par (r, s).

B verifica la firma:

• Calcula ν1 = βrrs mod p.

• Calcula ν2 = gh(m) mod p.

• La firma es valida si ν1 = ν2.

Por que funciona la firma:Si la firma (r, s) que B recibe es valida, entoncess = k−1(h(m)− ar) mod (p− 1)⇒ ks = h(m)− ar mod (p− 1)⇒h(m) = ks+ ar mod (p− 1)⇒ h(m) = ks+ ar + λ(p− 1)de aquı

gh(m)gks+ar+λ(p−1)

y por el teorema de Fermatgh(m)gks+ar = rs(ga)r = rsβr

Ası ν1 debe ser igual a ν2Un ejemplo pequeno:Firma:

• A tiene como clave publica (p = 2357, g = 2, β = 1185), clave privada a = 1751 y firma unmensaje m de resumen h(m) = 1463.

• A selecciona k = 1529 y calcula

r = 21529 mod 2357 = 1490

s = 1529−1(1463− 1751 · 1490) mod 2356 = 1777.

• La firma es (1490, 1777).

Verificacion:B verifica la firma calculandoν1 = 11851490 · 14901777 mod 2357 = 1072ν2 = 21463 mod 2347 = 1072.

58

Page 59: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 13

Criptografıa de curvas elıpticas

Con un grupo cıclico adecuado los calculos son mas eficientes y las claves mas pequenas, mientrasque el calculo del logaritmo discreto sigue siendo computacionalmente intratable.

No se trata de un nuevo criptosistema, sino de un nuevo enfoque.Se trata de usar funciones de un solo sentido en un contexto nuevo, usando una aritmetica que

hace los problemas mas difıciles.

13.1 Curvas elıpticas

Las curvas elıpticas han sido muy estudiadas desde hace mas de 150 anos. Su uso en Criptografıafue propuesto en 1985 independientemente por Neal Koblitz (Univ. de Washington) y Victor Miller(IBM, Yorktown Heights).

Una curva elıptica es una curva en el plano tal que cada lınea que la corta en 2 puntos, la cortaademas exactamente en un tercer punto.

Una curva elıptica sobre R esta formada por el conjunto de los puntos (x, y) tales que satisfacenuna ecuacion de la forma y2 = x3 + ax+ b con a, b numeros reales cumpliendo 4a3 + 27b2 6= 0.

Figure 13.1: Curva elıptica.

59

Page 60: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

13.2 El grupo

Una curva elıptica sobre un cuerpo finito esta formada por un conjunto finito de puntos.La curva es

Ea,b = {(x, y) ∈ R2 / y2 = x3 + ax+ b}El grupo es G = Ga,b = Ea,b ∪ {∞}, donde ∞ es el llamado punto del infinito y es el elemento

neutro del grupo: para todo punto P ∈ G

P +∞ = P

La operacion del grupo (dos reglas basicas)

B1 Todas las rectas verticales pasan por el punto del infinito ∞.

B2 Si P,Q,R ∈ G estan alineados, entonces P +Q+R =∞.

Figure 13.2: Curva elıptica.

Aritmetica geometrica:

• El opuesto (negativo) de un punto P = (x, y) es su simetrico respecto al eje x : −P = (x,−y).

• Para sumar dos puntos P,Q (con P 6= −Q) se traza una lınea que los une, que corta a lacurva en otro punto R; entonces P +Q = −R.

• Para sumar P consigo mismo se traza la tangente en P , que corta a la curva en otro punto−R; entonces 2P = P + P = R

• Caso especial: Si P = (x, 0) entonces la tangente es vertical y no corta de nuevo a la curva.Entonces se establece que 2P =∞.

Aritmetica algebraica:

1.- Suma de puntos distintos y no opuestos. Si P = (xp, yp) y Q = (xq, yq) e yp 6= −yq,calculamos λ = (yq − yp)/(xq − xp) y entonces P +Q = R = (xr, yr) con

xr = λ2 − xp − xq , yr = (xp − xr)λ− yp

60

Page 61: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

2.- Duplicacion de un punto distinto del (x, 0). Si yp 6= 0, entonces calculamos s = (3x2p+a)/2ypy entonces 2P = R = (xr, yr) siendo

xr = s2 − 2xp , yr = −yp + s(xp − x−r)

Mutiplicacion rapida de puntosSe puede realizar la multiplicacion rapida de puntos haciendo sumas y doblados de puntos con

un numero mınimo de operaciones, de la misma forma que se hacıan las potencias rapidas, dondelas operaciones son S (suma de puntos) y D (doblado de puntos) en lugar de M y C.

Ası para calcular 23 · P , escribimos (23)2 = 10111, que se traduce en 1D0D1D1D1 y luego enSDDSDSDS, lo que nos llevarıa a

∞→ P → 2P → 4P → 5P → 10P → 11P → 22P → 23P

Resultados teoricos que aseguran la existencia de curvas elıpticas adecuadas son:

• Teorema de Hasse |G| ∈ [p+ 1− 2√p, p+ 1 + 2

√p]

• Teorema de Waterhouse: si n esta en el intervalo de Hasse, existen curvas elıpticas con|G| = n.

• Existen enteros n1, n2 con n2|n1 y n2|p − 1 tales que G ' Zn1× Zn2

(si n1 = 1 =⇒ G escıclico).

Orden de un puntoSi P es un elemento de un grupo (G,+) entonces el orden de P es el primer entero k tal que

k · P =∞Si k = |G|, entonces G es cıclico y P es un generador.El problema del logaritmo discreto (aditivo) en curvas elıpticas consiste en:Dados dos puntos P y Q en el grupo (aditivo) de la curva, encontrar un entero k tal que kP = QEjemplo: en la curva elıptica definida sobre F23 por la ecuacion y2 = x3 + 9x + 17, hallar el

logaritmo discreto k de Q = (4, 5) de base P = (16, 5)Mediante fuerza bruta:

P = (16, 5) 2P = (20, 20) 3P = (14, 14) 4P = (19, 20) 5P = (13, 10)6P = (7, 3) 7P = (8, 7) 8P = (12, 17) 9P = (4, 5) = Q ⇒ k = 9

Ası el logaritmo discreto de Q en base P es k = 9.En un caso real, k sera muy grande y este ataque sera computacionalmente imposible.

13.3 Elgamal elıptico

Utilizando un subgrupo cıclico del grupo de una curva elıptica se puede implementar un criptosis-tema similar al de Elgamal.

Cada usuario construye su clave publica y la correspondiente privada:

1. Elige un primo p y una curva elıptica sobre Zp, y2 = x3 +ax+ b con 4a3 + 27b2 6= 0 (mod p).

2. Elige un punto Pg de la curva que sea de orden primo n y de tamano similar a p.

3. Se elige un entero d ∈ [1, n− 1] y se hace B = dPg.

4. La clave publica es (p, a, b, Pg, n,B).

61

Page 62: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

5. La clave privada es d.

CifradoB cifra un mensaje para A. Representa el mensaje como un conjunto de enteros m1,m2, . . .

cada uno en el intervalo [0, n− 1] y cifra cada m = mi.

1. Elige al azar un entero k, 1 ≤ k ≤ n− 2.

2. Calcula M = k · Pg y k ·B = (β1, β2).

3. Calcula γ = m · β1.

4. Envıa a A el texto cifrado (M,γ).

DescifradoB descifra el mensaje de A

1. Calcula d ·M = d · k · Pg = k ·B = (β1, β2).

2. Obtiene el mensaje en clarom = γ · β−11 en Zp

13.4 Algunos estandares

El Gamal elıptico no es un estandar, aunque hay intentos, como:

• Estandar P1363 de la IEEE de criptografıa de clave publica: Standard Specifications ForPublic-Key Cryptography. http : //grouper.ieee.org/groups/1363/

• 14.2 - Grupo de evaluacion criptografica Europeo NESSIE: New European Schemes for Sig-nature, Integrity and Encryption. http : //www.cryptonessie.org/

• 14.3 - Grupo de evaluacion criptografica Japones CRYPTREC: Cryptography Research andEvaluation Committee http : //www.ipa.go.jp/security/enc/CRY PTREC/index− e.html

• 14.4 - Estandar SECG: The Standards for Efficient Cryptography Group (SECG) http ://www.secg.org/

• 14.5 - Estandar NIST: The NIST Computer Security Division http : //csrc.nist.gov/

El criptosistema basado en curvas elıpticas mas ampliamente respaldado es el llamado Inte-grated Encryption Scheme (IES), que ha sido aprobado como estandar por distintas entidades:ANS X9F1, CRYPTREC, IEEE P1363, NESSIE, NSA Suite B. Puede verse con mas detalle en

http : //en.wikipedia.org/wiki/Integrated Encryption Scheme

62

Page 63: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

13.5 Seguridad

Certicom es la principal empresa comercial de CCE, esta organizacion posee 130 patentes, y havendido licencias a NSA por 25 millones de dolares.

Tambien ha patrocinado varios desafıos a algoritmos CCE. El mas complejo resuelto hastaahora, con clave de 109 bits, fue roto por un equipo de investigadores a principios de 2003. usandoun ataque masivo en paralelo basado en el ataque de cumpleanos, con mas de 10.000 PC’s de tipoPentium funcionando continuamente durante 540 dıas.

Se estima que la longitud de clave mınima recomendada para CCE (163 bits) requerirıa 108veces los recursos utilizados para resolver el problema con 109 bits.

Tamanos estimados de claves en los distintos problemas estudiados para obtener una seguridadequivalente:

PLD (bits) RSA (bits) PLDE (bits) Ratio1024 1024 163 1:63072 3072 256 1:127680 7680 384 1:2015360 15360 512 1:30

Un menor tamano implica una mejor gestion de las claves, mas velocidad, menor tamano delcifrado y menos necesidad de memoria.

13.6 Conclusiones

• Las buenas implementaciones de CCE son muy seguras: no se les conoce ningun ataquesubexponencial que haya tenido exito.

• Mas atractivos que los anteriores porque requieren claves mucho mas cortas para el mismonivel de seguridad.

• Mas rapidos que los anteriores.

• Menores requerimientos de memoria que los anteriores.

• Ideales para dispositivos portatiles como PDAs, smartcards, moviles, etc.

Algunos ejemplos de protocolos que usan CCE son EC Digital Signature Algorithm (ECDSA),o el intercambio de llaves EC Diffie-Hellman (ECDH).

Solo un problema: es aun nuevo!

63

Page 64: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

Chapter 14

Servicios de seguridad

Al empezar tenıamos varios objetivos. Luego hemos visto muchas herramientas...

1. Confidencialidad

• Criptografıa simetrica

• Criptografıa de clave publica

2. Autenticacion

• Funciones resumen

• Criptografıa de clave publica

3. Integridad

• Firma

4. No repudio

• Firma

Ahora vamos a poner orden para tener servicios de seguridad, para ello disponemos de dosparadigmas, criptografıa de clave publica y criptografıa simetrica:

A.- Criptografıa de clave publica

√Muy segura.

√Versatil: ofrece servicios imposibles con solo criptografıa simetrica.

⊗ Lenta y pesada.

⊗ Poco apta para hardware.

⊗ Ineficiente para grandes volumenes de informacion.

B.- Criptografıa simetrica

√Muy segura.

√Muy rapida y ligera.

√Apta para hardware.

64

Page 65: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

√Adecuada para grandes volumenes de informacion.

⊗ Ofrece fundamentalmente servicios de confidencialidad.

Ahora vamos a ponerlas a trabajar juntos, tenemos un criptosistema simetrico, en el que no-taremos

SE(k,M) = cifrado de M con la clave kSD(k,C) = descifrado de C con la clave k

y un criptosistema de clave publica donde

PE(p,M) = cifrado de M con la clave pPD(v, C) = descifrado de C con la clave v

Y nuestro escenario: dos interlocutores, Holmes y Watson, siendo (p, v) las claves publica yprivada PKC de Watson.

14.1 A. Claves de sesion

Holmes envıa un mensaje M a Watson

Figure 14.1: Clave de sesion.

k es la llamada clave de sesion.Los beneficios obtenidos con este esquema son:√

Confidencialidad: solo podra leer el mensaje el destinatario del mismo.√

Integridad: el mensaje no podra ser modificado.√

Seguridad: aunque un adversario obtenga la clave de sesion solo puede obtener el correspon-diente mensaje.

Sin embargo, Watson puede ser un servidor, el dialogo anterior podrıa tener lugar entre elusuario Holmes y un servidor, un sitio de Internet, . . . y esto es un problema: asimetrıa de laseguridad en la clave de sesion. Se necesita autenticacion de los dos interlocutores.

Hay una serie de objetivos que no han sido alcanzados:

⊗ Autenticacion del usuario: Watson no esta seguro de la clave publica de Holmes realmentees la suya y que no lo estan suplantando.

⊗ Autenticacion del servidor: Holmes no esta seguro de que no estan suplantando al servidor.

⊗ No repudio: los emisores de los mensajes podrıan negar ser los autores.

65

Page 66: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

14.2 B. Certificados digitales

Un certificado digital es un documento que vincula claves y otros datos con un usuario y confirmasu identidad mediante la firma digital de una entidad de confianza.

Los certificados digitales sirven para:

• Autenticar la identidad del propietario ante terceros.

• Firmar digitalmente de forma que se garantice la integridad de los datos trasmitidos y suprocedencia.

• Cifrar datos para que solo el destinatario de la informacion pueda acceder a ella.

El estandar para certificados digitales es el X.509, que responde a la siguiente estructura:

1. Certificado

1.1 Datos de generacion.

1.1.1. Version.

1.1.2. Numero de serie.

1.1.3. Id. del algoritmo.

1.1.4. Emisor.

1.1.5. Validez.

1.2 Datos del sujeto.

1.2.1. Sujeto.

1.2.2. Algoritmo de clave publica.

1.2.3. Clave publica.

1.3 Datos opcionales.

1.3.1. Id. unico del emisor.

1.3.2. Id. unico del sujeto.

1.3.3. Extensiones (proposito, etc.)

2. Algoritmo usado para firmar el certificado

3. Firma digital del certificado.

Una forma de poder confiar en el certificado digital de un interlocutor al que no conocemoses que el certificado este avalado por una tercera parte en la que sı confiamos (autoridad decertificacion).

Esa tercera parte (TTP, Trusted Third Party) avalara con su firma digital que el certificado esde fiar.

Cualquiera puede emitir un certificado: existen utilidades como makecert.exe que los generan.Pero un certificado sirve para poco si no lo avala una entidad de confianza: la autoridad decertificacion (AC).

Entre las AC internacionales podemos citar: VeriSign, Thawte, y entre las espanolas, el Minis-terio del Interior y la Fabrica Nacional de Moneda y Timbre.

Las AC se organizan en jerarquıas o en anillos de confianza.La gestion de las claves de los certificados es como sigue:

• En el proceso de solicitud se generan localmente las claves, publica y privada.

66

Page 67: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• La clave publica se envıa en el certificado y la AC la almacena.

• La clave privada se almacena localmente y nunca se transmite a la AC.

• La integridad del certificado depende de que la clave privada sea gestionada de forma adecuadapor el usuario.

Cuando se genera (o se instala un certificado a partir de un archivo que contenga la claveprivada), la clave privada se guarda localmente en un almacen protegido.

En Windows, en C:/ Users%username%/AppData/Roaming/Microsoft/Crypto/RSAEl certificado y opcionalmente la clave privada se pueden exportar, por ejemplo, para trasladar-

los a otro sistema, mediante archivos especiales. Estos archivos pueden ser de varios tipos

• .CER: codificado en CER (a veces varios).

• .DER: codificado en DER.

• .PEM: codificado en Base64

• .P7B/P7C: PKCS] 7.

• .PFX/P12: PKCS] 12, puede contener certificados publicos y claves privadas (protegidas concontrasena).

En algunos sistemas se usan varios certificados. Por ejemplo, en el DNI electronico hay dos:uno para cifrar y otro para la firma. El objetivo es disminuir el riesgo de ciertos ataques.

14.3 C. Autenticacion

La autenticacion puede llevarse a cabo mediante certificados digitales, o sin necesidad de ellos endos pasos,

1. Autenticacion del usuario. El servidor proporciona una clave k aleatoria al usuario H, quienle devuelve un par (CH , fH(k)) compuesto por su certificado y la firma de la clave k. Seguida-mente el servidor valida el certificado CH con la autoridad certificadora AC y verifica la firmafH(k) con el certificado CH .

2. Autenticacion del servidor. El usuario proporciona una clave k aleatoria al servidor S, quienle devuelve un par (CS , fS(k)) compuesto por su certificado y la firma de la clave k. Seguida-mente el usuario valida el certificado CS con la autoridad certificadora AC y verifica la firmafS(k) con el certificado CS .

En ningun momento se transmiten las claves privadas, solo documentos firmados y las dosautenticaciones permiten que cada interlocutor este seguro de la identidad del otro.

14.4 Public Key Infrastructures

Una PKI es un conjunto de protocolos, servicios y estandares que soportan aplicaciones basadasen criptografıa de clave publica.

La base de las PKI es el modelo de confianza basado en Terceras Partes de Confianza (TTP) .Las PKI estan compuestas por terceras partes en los que todos los usuarios de la infraestructuraconfıan:

67

Page 68: Criptograf a Grado en Ingenier a Inform atica - …ma1.eii.us.es/PaginasUsuarios/ETSII/geval/guion.pdflista de numeros ser a la misma que en el texto en claro, aunque en otro orden

• Autoridad de Certificacion

• Autoridad de Registro

• Autoridades de Fechado Digital, etc.

Hemos llegado muy lejos, aun faltan mecanismos de seguridad, como

• Deteccion de intrusos

• Comparticion de secretos

• Pruebas de conocimiento cero

• . . .

68