Sie sind auf Seite 1von 68

Criptografa

Grado en Ingeniera Informatica


Departamento Matematica Aplicada I.

Estas notas corresponden a la transcripcion de las transparencias utilizadas


durante las clases de Criptografa, y contienen todos los datos relevantes de las
mismas. Su uso esta permitido, unicamente, en las pruebas correspondientes a la
evaluacion alternativa.

1
Chapter 1

Introducci
on

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

Ataques pasivos
Ataques activos

Objetivos de la seguridad

Privacidad
Integridad
Disponiblidad
Autenticaci
on de usuario
No repudio
Firma

Como conseguir los objetivos? Mecanismos de seguridad. Criptografa: Conjunto de tecnicas


matematicas que permiten proteger la informacion en presencia de adversarios

1.1 Conceptos b
asicos
Primer objetivo: privacidad
Distintos 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 capacidad
Seguridad computacional: Coste > beneficio. Tiempo excesivo.

2
Chapter 2

Fundamentos

2.1 Un paseo por la antig


uedad
Ocultacion de la informaci
on. Herodoto informa del uso de la esteganografa en informes de Grecia
a Persia (tatuajes en cabezas rapadas, tablillas de cera, etc.) . Gente sin prisa.
No es criptografa

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 Esctala:


Usada en la guerra entre Atenas y Esparta. El cifrado se basaba en la alteracion del mensaje
original mediante la inclusion de smbolos innecesarios que desaparecan al enrollar el mensaje
en un rodillo de longitud y grosor. A un sabiendo la tecnica utilizada, si no se tenan las
dimensiones exactas, un interceptor tena difcil su criptoanalisis

Figure 2.1: La esctala 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
2.2.1 Cifrado por desplazamiento
Es generalizaci
on de la clave de Cesar. Se establece una correspondencia entre letras y n
umeros:
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 27
La clave es un n
umero 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:
+3
AT AQU E AL AM AN ECER dwdtxhcd
ncdodphf hu
Un ataque de fuerza bruta:

Clave Resultado
1 dwdtxhcd
ncdodphf hu cvcswgbcnbc
ncogegt
2 dwdtxhcd
ncdodphf hu bubrvf abmabnb
nf df s
3 dwdtxhcd
ncdodphf hu ataquealamanecer
Se podra automatizar el ataque de fuerza bruta, o es indispensable la intervenci
on de un
agente 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 transforma
en 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 se
conservan en el texto cifrado.

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

4
2.2.2 Cifrado afn
Es una generalizaci
on del cifrado por desplazamiento en el que la transformacion de cifrado es una
aplicaci
on afn

x y = a x + b
donde a es primo con n (el tama no del alfabeto).
El descifrado se hace con la funcion inversa

y x = a1 (y b)

Si usamos un alfabeto de 64 caracteres:


o
abcdefghijklmn c0123456789@(){ } <>=+-*/ % &
nopqrstuvwxyz +,;.:+?!
Con clave 15, 3 ciframos:

AT AQU E AL AM AN ECER q!qpmncq, cqf qtn n3

Para un ataque de fuerza bruta necesitamos solo 2048 intentos, y en uno de ellos est
a la
soluci
on!
Con dos caracteres y sus transformados es probable que obtengamos la clave.

2.2.3 Cifrado por sustituci


on
Lo m
as avanzado hasta el siglo XI.
La revoluci
on en el tama
no del espacio de claves! Con un alfabeto de 64 caracteres el n
umero
de claves posibles es

126886932185884164103433389335161480802865516
174545192198801894375214704230400000000000000

Y si examin
aramos 1000 claves por segundo necesitaramos

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
Adem
as
Aunque hasta el siglo XV en Europa se tena por totalmente seguro!
Primer criptoan
alisis descubierto por el gran matematico Al-Kindi.
Desconocido en occidente durante siglos!

2.2.4 M
etodo del an
alisis de frecuencias.
Una manera de resolver un mensaje cifrado, si sabemos en que lengua esta escrito, es encontrar un
texto llano diferente escrito en la misma lengua y que sea lo suficientemente largo para llenar una
hoja, y luego contar cuantas veces aparece cada letra. A la letra que aparece con mas frecuencia la
llamamos 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 la
muestra de texto llano.
Luego observamos el texto cifrado que queremos resolver y clasificamos sus smbolos de la
misma manera. Encontramos el smbolo que aparece con mas frecuencia y lo sustituimos con la
forma de la letra primera de la muestra de texto llano, el siguiente smbolo mas corriente lo
sustituimos por la forma de la letra segunda, y el siguiente en frecuencia lo cambiamos por la
forma de la letra tercera, y as sucesivamente, hasta que hayamos cubierto todos los smbolos
del criptograma que queremos resolver.
Ideas b
asicas 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, la
lista de n
umeros ser
a 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 caractersticos, letras repetidas, etc.
Encontrando algunas correspondencias (vocales, letras mas frecuentes, etc.) se puede encon-
trar r
apidamente el texto en claro.

Figure 2.3: Frecuencias de las letras en un texto tpico en espa


nol e ingles.

Fragmento de un mensaje bailado


A B C D E F D E
G H I C J K L M
G H I C F K B I
N K
N C O K B K
P A Q E A C N K

6
Figure 2.4: Arthur Conan Doyle.

Asignamos arbitrariamente letras a los smbolos del mensaje completo


El mensaje cifrado con sustitucion:
ABCDEFDEFEDKCNAJ.....
Otro ejemplo,
Sobre el tesoro del capit
an 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 transposici


on
En los cifrados por transposicion se reordena el texto en claro (notese que en las sustituciones
se 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:
uunnn
unsss
nmcap
uncifrado
iunin
usandotra
omeaf
nsposicio
queda dspvs
nsimpleco
roile
nnuevecol
xatce
umnasxxxx
cxdri
coxoa
oolx

7
NTESA
USOIN
NCEIC
LCALA
LAOSNAOVDRCNN
OSNAO
AVNTUMCEOLOIT
2. Ejemplo 2. Camino: queda VDRCN
CESENIONPOMCE
ICMOP
LCIECNNIOSUAS
NOINE
SEVNT
UMCEO
LO
(Cuatro carriles y camino espiral en sentido de las agujas del reloj, empezando por la
esquina superior derecha)
3. Ejemplo 3. Transposicion de columnas: Igual que el primero, pero el orden de las letras
de una palabra clave determina el orden de las columnas.

Criptoan
alisis se basa en :

Detecci
on de anagramas.
An
alisis de frecuencias.

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

La sustituci
on rompe los anagramas.
La transposici
on rompe la aparicion de palabras reconocibles del texto en claro.

Transposici
on + sustitucion fueron fundamentales en las maquinas de rotor de los a
nos veinte.
Sistemas polialfabeticos, se utilizan distintas sustituciones dependiendo de la posicion del
car
acter

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 opin o que era
irrompible.
Criptoan
alisis publicado en 1854 (Babbage).
En 1863 se utiliz
o como sistema de cifrado en la guerra civil americana.
En un ejemplar del Scientific American de 1917 aparecio un artculo asegurando que era invio-
lable.

Dos versiones, la repetitiva y la que usaba un sistema llamado autoclave. Estudiaremos antes
la 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 u


ltimo
que puede ser menor).

8
Cada bloque se cifra aplicando a cada caracter un desplazamiento de valor el correspondiente
car
acter de la clave.

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

AT AQU EALAM AN ECER


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
D 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 R
C L A V E D 4 B ) Z I 5 N { ( J
D 4 B ) Z I 5 N { ( J - R U

9
Introduce m
as complejidad, pero se rompe de forma similar al repetitivo, aunque la idea es
genial!
Seguridad:
Espacio de claves muy grande. No es viable un ataque de fuerza bruta.

Resistente al an
alisis de frecuencias.
Muy debil ante un ataque de texto cifrado conocido. Basta conocer un fragmento del texto
claro 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 fragmento
de 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 Criptoan
alisis
1. Determinaci
on de la longitud de la clave.
2. Reducci
on a un cifrado por desplazamiento.

3. Determinaci
on de la clave.
4. Obtenci
on 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 la
clave 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 a
segmentos iguales de texto cifrado.
Gran n
umero de estas coincidencias ocurriran entre segmentos iguales separados una distancia
m
ultiplo 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 mayora de esos n
umeros son m
ultiplos de cierto n
umero n.

10
Si el texto es suficientemente largo debe haber pocas distancias no m
ultiplos de n: las descar-
tamos, atribuyendolas al azar.
El m
aximo com
un divisor de los n
umeros 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:

N
X
pi 1/N IC 1/N 2 = 1/N
i=1

Cada idioma tiene un IC caracterstico, aunque dependiente de la naturaleza del texto


(cientfico, literario, etc.)

Indice de coincidencia de dos textos: Probabilidad de que al elegir al azar un caracter en cada
texto, ambos sean iguales.
X
IC(T1 , T2 ) = p(x, T1 ) p(x, T2 )
x

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

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
2
p(a, baca) = p(b, cdbd) =
4
En general, si X es unPalfabeto, T1 , T2 son textos y 1 es una permutacion,
P 1 (T1 ), 1 (T2 )) = xX p(x, 1 (T1 )) p(x, 1 (T2 ))
IC( P=
= 1 (x)1 (X) p(1 (x), 1 (T1 )) p(1 (x), 1 (T2 )) = xX 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 ) = 42 14 + 14 04 + 41 24 + 40 14 = 0, 25
IC(1 (T1 ), 1 (T2 )) = 04 14 + 24 41 + 14 40 + 14 24 = 0, 25
Sin embargo, el IC es muy sensible a sustituciones distintas, si a dos textos se les aplican
distintas sustituciones, el IC vara 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 ) = 42 14 + 14 04 + 41 24 + 40 14 = 0, 25 (como antes)
IC(1 (T1 ), 2 (T2 )) = 04 24 + 24 41 + 14 41 + 14 04 = 0, 1875
Indice de coincidencia de un ( unico) texto, es la probabilidad de que al tomar al azar dos
caracteres en el texto, resulten iguales.
X
IC(T ) = p(x, T )2
x

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

11
X 1 2 1
IC(T ) = p(x, T )2 = N ( ) =
x
N N
Si N = 27, este valor es 0,037.
El IC de un texto nada aleatorio, como T = (x0 , x0 , . . . , x0 ) es
N
X 1
IC(T ) = p(x0 , T )2 + p(xi , T )2 = 12 + (N 1) 02 = 1
i=1

Espanol Ingles Frances Italiano Aleman Ruso


0,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 criptoan


alisis: 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 m
y nuestra estimacion del IC es buena, el IC de cada fila Fi debe ser aproximadamente
igual al estimado.
Si todo va bien sabemos ahora que el texto se ha cifrado con una clave desconocida
k1 , . . . , km .

2. Etapa 2 del criptoan


alisis: desplazamientos entre los caracteres de la clave.
Para cada columna Ci :
Fi est
a cifrada con el valor ki mod m

Definimos unos desplazamientos (que no conocemos)

i = k1 ki mod m

Podramos desplazar todas las filas para obtener F1 , F20 , . . . , Fm


0
, todas cifradas con k1 :
F1 esta cifrado con k1 .
Para i > 1, Fi esta cifrado con ki (desconocido). Fi ki sera el texto en claro (si
conocieramos ki ). Fi0 = Fi + i = Fi ki + k1 estara 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 longitud
m, 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 hasta
encontrar el que haga que

IC(Fi0 ) ' IC(F1 )

12
3. Etapa 3 del criptoan
alisis: reduccion a un cifrado por desplazamiento
Sustituimos las filas Fi por las correspondientes Fi0 , volvemos a fusionar las filas en un solo
texto y . . .
ya tenemos todo el texto cifrado por un desplazamiento de k1 .
4. Fin del criptoan
alisis
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, atrados 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 usando
como 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.

Criptoan
alisis:

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 permutaci on
del alfabeto, por lo que el ndice de coincidencia puede ser utilizado para el criptoan
alisis.
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 tenga
que ser algo mayor en XOR.

2.7 Criptosistema de Hill. 1929


y =M x
Por ejemplo cifrando con una matriz 3 3
Texto en claro: e, n, u 7 (2, 13, 21)

2 3 4 2 23 w
5 5 6 13 = 22 7 v
7 8 9 21 24 x
Para el descifrado

13
1
2 3 4 23 2 e
5 5 6 22 = 13 7 n
7 8 9 24 21 u
Muy debil ante ataques de texto en claro conocido
Ataque mediante Gauss-Jordan
diagonalizacion
(Texto claro texto cifrado ) (Matriz unidad Clave)

e n u w v x
n l u i d q

g a r d d o

d e l i t q

a m a j g o

n c h g j i

a d e y m g

c u y f v c

o n o u n t
m b r r l l

4 13 21 23 22 24
13 11 21 8 3 17

6 0 18 3 3 15

3 4 11 8 20 17

0 12 0 9 6 15

13 2 7 6 9 8

0 3 4 25 12 6

2 21 25 5 22 2

15 13 15 21 14 20
12 1 18 18 11 11
Tras diagonalizar:

1 0 0 2 5 7

0 1 0 3 5 8


0 0 1 4 6 9


0 0 0 0 0 0


0 0 0 0 0 0


0 0 0 0 0 0


0 0 0 0 0 0


0 0 0 0 0 0

0 0 0 0 0 0
0 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
Chapter 3

La b
usqueda de la perfecci
on

Existen sistemas irrompibles


+C omo podemos demostrarlo?

3.1 Teora de la informaci


on
Introducida por Claude Shannon a finales de los a nos cuarenta, permite efectuar un estudio
formal de la seguridad de los algoritmos criptograficos.

Cuantifica conceptos como cantidad de informacion, entropa o secreto.


Introduce la noci
on de secreto perfecto.

Cantidad de informaci
on de un mensaje:

Ante varios mensajes, el que tenga una menor probabilidad sera el que contenga una mayor
cantidad de informaci
on.
Si la probabilidad de un mensaje m es p(m), entonces la cantidad de informacion de m se
define como

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

Si la probabilidad de un mensaje es 1, entonces la cantidad de informacion de ese mensaje


es 0.
Si la probabilidad de un mensaje se acerca a 0, entonces la cantidad de informacion se acerca
a .

Entropa:

Mide la cantidad de informacion que lleva una se nal. Si simplificamos suponiendo que la
se
nal es una cadena de caracteres en espa
nol, la entropa mide la aleatoriedad de la cadena.
Depende de la distribucion de probabilidad de los caracteres e indica lo plana que es: plana
equivale a alta entropa y ocurre cuando todos los valores tienen probabilidades similares,
mientras que es poco plana cuando algunos valores son mucho mas probables que otros.

15
Con alta entropa es difcil poder predecir cual es el proximo valor que va a presentarse, ya
que todos los valores son igualmente probables.

La medida de informacion debe ser proporcional (continua). Es decir, un cambio peque no


en una de las probabilidades de aparicion de uno de los elementos de la se
nal debe cambiar
poco la entropa.
Si todos los elementos de la se
nal son igualmente probables, entonces la entropa ser
a m
axima.
La entropa tambien esta relacionada con el lmite teorico para la compresion de datos.
Una buena contrase
na debe tener entropa alta.

La entropa de un mensaje M = m1 , . . . mn se define como la suma ponderada de las canti-


dades de informacion de sus posibles estados:

n
X
H(M ) = p(mi ) log2 (p(mi ))
i=1

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 ) = 21 log2 12 14 log2 14 14 log2 14 = 12 1 + 41 2 + 14 2 = 1, 5
Entropa y codificacion
M = mensaje de longitud n.
L = lmite m
aximo de compresion para M eligiendo un codificador smbolo a smbolo, de forma
optima.

L = n H(M )
Entropa condicional
M = mensaje que puede tomar los valores m1 , . . . , mn .
Si conocemos un valor mk :
n
X
H(M |mk ) = p(M = mj |mk ) log2 p(M = mj |mk )
j=1

Incertidumbre
Y = mensaje que puede tomar los valores y1 , . . . , ym .
La incertidumbre de un mensaje X conocido un valor de Y es:
m
X
H(X|Y ) = H(X|Y = yj ) p(Y = yj )
j=1

La incertidumbre satisface las siguientes propiedades:


H(X|X) = 0.

16
Si X e Y son independientes, H(X|Y ) = H(X).
H(X|Y ) H(X).
axima mayor incertidumbre en el mensaje. Se da cuando todos sus n estados
Entropa m
tienen la misma probabilidad.

H(M )max = log2 (n)


Ratio absoluta de un lenguaje:
Es la entropa del
Plenguaje suponiendo los N caracteres igualmente probables:
R = H(X) = x p(x) log2 (x) = sumx N1 log2 N1 = N N1 log2 N = log2 N

N = 27 = R = 4, 75
Ratio verdadera
Como las letras no tienen igual probabilidad, la ratio verdadera baja mucho. Pruebas empricas
dan para el espa
nol:

1, 2 r 1, 5
Redundancia:
La redundancia de un lenguaje es la diferencia entre su ratio absoluta y su ratio verdadera:

D =Rr
En espa nol se estima que 3, 25 D 3, 55.
Empricamente se halla que en un lenguaje con redundancia 3,2 bastara con un texto cifrado
de 25 caracteres para romper un cifrado por sustitucion.
Distancia de unicidad
Mnima 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, 38
Ejemplo (sustituci
on):
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 nd = log2 n
D D
Con n = 27 y d = 10, H(K)/D ' 14.
Secreto
Es 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
3.2 Cifrado de Vernam
Existe alg
un 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.
a1ofkgdygfnuv
njox1p88+Y3o1qnykp- 7qmn(ihqn
con 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 entropa de la clave por lo que su distancia de unicidad es infinita.
Por que no usar siempre OTP?
Problemas:

Generaci
on de claves verdaderamente aleatorias.
Distribuci
on de claves.

18
Chapter 4

N
umeros seudoaleatorios

Problema de la generaci
on de claves grandes suficientemente aleatorias (por ejemplo para el cifrado
de Vernam)
Secuencias criptogr
aficamente 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 especficos.
Fuentes no v
alidas:
Bits de un CD o DVD.
Otras fuentes p
ublicas de informacion.
Soluciones m
as seguras: mezcla de metodos hardware y software.
Se puede usar alg
un sistema de cifrado simetrico:
El Generador X9.17 usa DES.
Uso de otros cifrados simetricos.
Los generadores seudoaleatorios parten de una peque na cantidad de informacion: semilla, clave,
. . . de tal modo que el conocimiento de esa informacion permite generar la secuencia completa.
Algunos usos en Criptografa de estas secuencias seudoaleatorias son:

Generaci
on de claves y contrase
nas.
Claves para criptosistemas en flujo
Vectores de inicializacion
Protecci
on de contrase
nas (salt).
Desafos en pruebas de conocimiento cero.
Valores aleatorios en firmas digitales

19
Relleno de paquetes

Los generadores seudoaleatorios se pueden dividir en tres clases: buenos, malos, y muy malos
(y usuarios muy descuidados) La generacion de n
umeros aleatorios es demasiado importante como
para ser dejada al azar.
Descuido en la lnea de comandos

echo off
for /l % a in (1 1 100)
do(echo % random %)

Con m
as cuidado

@echo off & setLocal


EnableDelayedExpansion
for /L % %a in (1 1 100) do
(echo !random!)

SQL
Las condiciones para que una secuencia binaria se considere criptograficamente segura son

1. Periodo suficientemente grande.


2. Distribuci
on 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 bit
siguiente.
4. F
acil, r
apido y barato: eficiencia, coste computacional, consumo de recursos, apto para
hardware, etc.

4.1 Generadores por desplazamiento de registros retroali-


mentados (FSR)
Los registros de desplazamiento retroalimentados (feedback shift registers, o FSR en ingles) son la
base 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 n
celdas y el resultado se asigna a la u
ltima, desplazando a las anteriores
Dependiendo de la funci on 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 r
apidos
y proporcionan un buen grado de aleatoriedad, por lo que son muy utilizados.

En un LFSR la funci
on es del tipo
n
X
f (bn , . . . , b1 ) = aj bj
j=1

20
Pero como las operaciones de bits son en Z2 , cada ai = 0, 1 y f consiste en hacer con alguno
de 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 los
bits 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, como
b2 = 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 m
as
significativos a 0, y no requiere divisiones (equivale a hacer desplazamientos)
0
X k
X 0
X 0
X
x= bi 2i = bi 2i + bi 2i = bi 2i mod 2k
i=n1 i=n1 i=k1 i=k1

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.
ultiplo de 4, a 1 es m
3. Si m es m ultiplo de 4.

LCG y LFSR son los m


as usados:
Biblioteca est
andar de C y C++.
Lnea 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 n umeros aleatorios es demasiado
importante 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 perodo maximo?

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


1 Knuth, 1969

21
1. No. 0 no es primo con 231 .
nico primo que divide a 231 , y tambien divide a 65539 1.
2. Si. 2 es el u
3. No. 231 es m
ultiplo de 4, pero 65539 1 no lo es.

Test espectral: Se buscan correlaciones interpretando cada s valores consecutivos como vectores
en un espacio de dimension s, intentando encontrar estructuras geometricas.
Tomamos el conjunto de vectores (que se solapan):

Ls = {

x n = (xn , . . . , xn+s1 ) : n 0}
y buscamos hiperplanos paralelos que contengan los vectores de Ls . Si se encuentran es que
hay correlaciones.
Parece que todo est
a 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 xn
Cada terna de valores (xn , xn+1 , xn+2 ) esta en un plano, el z = 6y 9x (con mas precisi
on, en
15 trozos de un plano, por trabajar en Z231
C
omo de importante es esto? Experimentos que se dise nen usando muestras aleatorias con un
mal generador, aconcluiran que hay correlacionaentre las variables, pero no es que realmente exista,
sino porque los n umeros de entrada no son suficientemente aleatorios.
Y en la Criptografa? La falsa seguridad es peor que el conocimiento de que no hay seguridad.

4.3.2 Windows 2000 y XP. 2007


. . . investigadores israeles publicaron un analisis criptografico sobre el algoritmo us-
ado por Microsoft para generar n umeros aleatorios y descubrieron que contena serios
problemas en su implementacion.

22
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 de
sesi
on usadas para cifrar informacion . . .

4.3.3 Debian. 2008


Un error debido m
as bien al descuido que a un mal dise
no.
14 de mayo de 2008:

Debian ha sufrido un grave reves [. . . ] su generador de n


umeros aleatorios es predeci-
ble. Las claves generadas ya no son seguras [. . . ] esto tendra por muchos a nos una
importante repercusi
on y numerosos efectos colaterales en otros paquetes y distribu-
ciones . . .

4.4 Generadores tipo Fibonacci


xn = (xnr xns ) mod m
Estos generadores presentan varios inconvenientes

La f
ormula generadora correlaciona xn , xnr y xns , luego no son independientes!
No son criptogr
aficamente seguros.

Uno de los m
as 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 si1 mod m.

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

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

umeros, para k 55,


Y ahora empezamos a generar n

xk = xk55 xk24 mod m


El generador sustractivo de Knuth genera uniformemente valores entre 0 y m 1 y es f acil de
calcular: nunca se multiplica ni se divide, ni siquiera para hallar el valor modulo m; sin embargo,
la f
ormula generadora correlaciona las terminos xk , xk55 , xk24 , que no son independientes.
Dos usos notables del generador sustractivo de Knuth son la clase Random en .net y la clase
Random 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 factorizaci
on)

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
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 pr
actica se toman los bits menos significativos de cada xn

Se puede calcular directamente cualquier valor mediante


2i mod (p1)(q1)
xi = x0 mod m.
Si se eligen pocos bits de cada termino de la sucesion, entonces predecir el valor de un termino
es tan difcil como factorizar n.
Este generador
Es bueno (criptogr
aficamente 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 Programming
de Donald Knuth, o Handbook of Applied Cryptography de Menezes, van Oorschot y Vanstone.
Y para terminar, una idea: Podramos usar un buen generador seudoaleatorio para acercarnos
a OTP?

24
Chapter 5

Cifrado en flujo

El objetivo consiste en, usando un buen generador seudoaleatorio, obtener una clave de periodo
suficientemente largo para aproximarnos a la seguridad de OTP.
Para ello podemos actuar de dos modos:

5.1 Modo sncrono.


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

Figure 5.1: Modo sncrono.

Aqu

F () es la funci
on 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 funci
on generadora de la sucesion aleatoria, que depende del estado si .

25
mi y ci son la i-esima porcion del texto claro y cifrado respectivamente, por medio de or
exclusivo.
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 alg
un bit, el receptor ya no estara aplicando xor
con 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 ver
a
modificado en la misma posicion. Esta caracterstica podra permitir a un atacante cambiar
el mensaje, si conoce que bits debe alterar.
3. Si un atacante conociese parte del texto claro, podra sustituirlo por otro sin que lo advirtiese
el destinatario.

5.2 Modo asncrono


Asncrono (auto-sincronizado): la secuencia seudoaleatoria generada es funcion de la semilla y de
una 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 w

es una funciYon reversible. Los valores ct , ct+1 , . . . , c1 constituyen el estado inicial del generador.

Figure 5.2: Modo asncrono.

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 estadsticas del texto claro a lo largo de todo el mensaje cifrado:
cada elemento del mensaje influye en todo el cifrado.

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

26
5.3 Seguridad
Las debilidades esenciales de estos generadores son

Uso repetido de la misma inicializacion

Repetici
on de la misma secuencia cifrante.

aunque existen otros ataques mas avanzados, como

Ataques de correlaci
on

Ataques algebraicos
Criptoan
alisis 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-
cializaci
on cumple unas condiciones muy comunes y se interceptan el suficiente n
umero de
mensajes. Esto incluye a la mayora de los productos que lo usan.
La versi
on 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. Increble velocidad y simplicidad. Necesita pocos recursos. La implementaci
on
software y hardware es muy sencilla.
GSM.
A5/1 es usado en Europa y los Estados Unidos; un algoritmo de cifrado mas debil, A5/2 es
usado en pases que no son considerados de confianza para tener un cifrado fuerte. A5/1 fue
desarrollado en 1987, cuando GSM no era considerado a un para su uso en Europa, por su
parte 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 u
nica de solo 40 bits: la fuerza bruta
es factible.
4. Cada DVD se cifra con una clave de 40 bits que se oculta cifrandola con una clave propia
de cada fabricante autorizado (de equipo o programa reproductor).
Consecuencia: la clave del disco esta grabada en el DVD unas 400 veces, una vez por
cada fabricante autorizado: con poco esfuerzo los autores de DeCSS encontraron unas
170 claves en pocas horas.

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

27
Chapter 6

Criptografa sim
etrica moderna

Criptosistemas simetrcos

Figure 6.1: Criptosistema simetrico.

Simetrico clave secreta compartida.


El emisor y el receptor deben conocer la clave
Todos los sistemas cl
asicos 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 r
apidos.
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 emisor
y receptor.
Carecen de firma digital y de otros servicios.

28
6.1 Cifrado por bloques
Una gran parte de los algoritmos de cifrado simetrico operan dividiendo el mensaje que se pretende
codificar en bloques de tama no 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 texto
claro, el texto cifrado y la clave. Un buen mecanismo de confusion hara demasiado complicado
extraer relaciones entre las tres cosas. Por su parte la difusion trata de repartir la influencia de
cada bit del mensaje original lo mas posible entre el mensaje cifrado.

6.1.1 Modos de operaci


on
En primer lugar, independientemente del metodo empleado para codificar, hemos de tener en
cuenta lo que ocurre cuando la longitud de la cadena que queremos cifrar no es un m ultiplo exacto
del tamano de bloque. Entonces tenemos que a nadir informacion al final para que lo sea. El
mecanismo m as sencillo consiste en rellenar con ceros el u
ltimo bloque que se codifica.
Una vez hecho esto, existen dos modos principales de operacion para algoritmos de cifrado por
bloques

Modo ECB (Electronic Codebook)


es el metodo m
as sencillo y obvio de aplicar un algoritmo de cifrado por bloques. Simplemente
se subdivide la cadena que se quiere codificar en bloques del tama no adecuado y se cifran
todos ellos empleando la misma clave.
A favor de este metodo podemos decir que permite codificar los bloques independientemente
de su orden, lo cual es adecuado para codificar bases de datos o ficheros en los que se requiera
un acceso aleatorio. Tambien es resistente a errores, pues si uno de los bloques sufriera una
alteraci
on, el resto quedara 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 significa
que la codificaci
on de bloques anteriores condiciona la codificacion del actual, por lo que
ser
a imposible sustituir un bloque individual en el mensaje cifrado. Esto se consigue efec-
tuando una operaci on XOR entre el bloque del mensaje que queremos codificar y el ultimo
criptograma obtenido. Para cifrar el primer bloque, se emplea el denominado vector de
inicializaci
on (V.I.), conocido por ambos interlocutores.

6.1.2 Redes de Feistel


En criptografa, 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 com unmente
como Red de Feistel. Un gran n umero de algoritmos de cifrado por bloques lo utilizan, siendo el
mas 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, requiriendo
u
nicamente invertir el orden de las subclaves utilizadas.
El primer algoritmo basado en las redes de Feistel fue el algoritmo Lucifer, disenado al amparo
de IBM por Horst Feistel y Don Coppersmith a principios de la decada del 1970, aunque la
popularidad para este esquema llego cuando el Gobierno Federal de los Estados Unidos adopt o
el algoritmo DES como est andar para el cifrado de las comunicaciones gubernamentales. Este
algoritmo derivaba del algoritmo Lucifer y tambien esta constituido por una red de Feistel. La

29
naturaleza iterativa de estas redes haca que la implementacion del algoritmo en hardware fuera
sencillo.
Se divide el mensaje en bloques de tama no N , notados A|B y se procesa cada bloque en n
rondas usando:
Una clave K que se divide en n subclaves: k1 , . . . , kn .

Una funci on f (no necesariamente invertible) que en la ronda i toma la subclave ki y N/2
bits 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 si
conocemos 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 p
ublico para
buscar un algoritmo criptografico estandar.

1974: La NSA (National Security Agency) declaro desierto el primer concurso y refinando las
especificaciones eligi
o una variante de Lucifer que llamo DES (Data Encryption Standard).
1976: DES se adopt
o como estandar y se autorizo su uso en las comunicaciones no clasificadas
del gobierno.

Durante m
as de 25 a
nos DES ha sido el estandar para bancos y comercio electronico.

30
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.
Deber
a poder usarse en diferentes aplicaciones.

F
acil implementaci
on en hardware.
Debe incorporar capacidades de validacion.
Debe ser exportable.
Pero . . .
Secreto:
En realidad la NSA quera que los detalles fuesen secretos.
Limitaciones legales:
La NSA impuso una limitacion en la longitud de la clave: los 128 bits de Lucifer se quedaron
en 64 (que son 56 efectivos ya que al ser datos de 8 bits, se conoce el bit de paridad).

no: 256 7, 2 1016 .


As el espacio de claves es peque
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 adopt
o como est
andar en 1976.
El NIST lo certific
o en 1987 y 1993. En esos a
nos 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 nuevo
est
andar mundial denominado AES (Advanced Encryption Standard).
Entre 1997 y 1999 DES se enfrento a tres desafos conocidos como DES Challenge impulsados
por la compana RSA.

31
A mediados de julio de 1998, una empresa sin animo de lucro, llamada EFF (Electronic Frontier
Foundation), logro fabricar una maquina capaz de descifrar un mensaje DES en menos de tres das.
Curiosamente, pocas semanas antes, un alto cargo de la NSA haba declarado que dicho algoritmo
segua siendo seguro, y que descifrar un mensaje resultaba a
un excesivamente costoso, incluso para
organizaciones gubernamentales. DES-Cracker costo menos de 250.000 euros.
DES Challenge I (29 de enero de 1997):
Se rompe en 96 das con 80.000 de ordenadores en Internet que eval uan 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 das 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 d olares
y en 56 horas rompi o la clave evaluando 90.000 millones de claves por segundo.
DES Challenge III:
El u
ltimo desafo 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 cliente
trabajaban 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 de
claves por segundo tras recorrer el 22% del espacio de claves.
Pero . . .
DES, actualmente:

En 1998 la NSA segua declarando que DES era seguro, que romperlo era demasiado costoso
incluso para grandes organizaciones.
En realidad el problema de DES no es de dise
no, sino que su clave se hizo muy corta.
DES sigue siendo hoy da muy utilizado en aplicaciones (por ejemplo cajeros autom
aticos).

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 implementaciones
por hardware existentes de DES.

6.3 AES
Historia:
En 1997 el NIST (National Institute of Standards and Technology, antes NBS) no certific
o
DES y convoco un concurso p
ublico para un nuevo estandar: AES (Advanced Encryption
Standard).
Gan o el algoritmo RIJNDAEL (Vincent Rijmen y Joan Daemen, Belgica) que desde el a no
2000 es el nuevo est
andar de cifrado del siglo XXI. Es de libre distribucion, disponible desde
finales del a
no 2001.
El proceso completo de seleccion, revision y estudio de todos los candidatos del concurso fue
p
ublico y abierto. Pr
acticamente por primera vez, participo toda la comunidad criptogr afica
mundial. Esto hace que Rijndael sea muy digno de confianza.

32
En octubre de 2000 el NIST (National Institute for Standards and Technology) anunciaba
oficialmente la adopci on del algoritmo Rijndael (pronunciado mas o menos como reindal) como
nuevo Est andar Avanzado de Cifrado (AES) para su empleo en aplicaciones criptograficas no mil-
itares, culminando as un proceso de mas de tres a
nos, encaminado a proporcionar a la comunidad
internacional un nuevo algoritmo de cifrado potente, eficiente, y facil de implementar.
AES es un sistema de cifrado por bloques, dise nado para manejar longitudes de clave y de
bloque variables, ambas comprendidas entre los 128 y los 256 bits. Realiza varias de sus operaciones
internas a nivel de byte, interpretando estos como elementos de un cuerpo de Galois GF (28 ). El
resto de operaciones se efect
uan 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 son
a su vez polinomios en GF (28 ).
AES, a diferencia de algoritmos como DES, no posee estructura de red de Feistel. En su lugar se
ha definido cada ronda como una composicion de cuatro funciones invertibles diferentes, formando
tres capas, dise
nadas para proporcionar resistencia frente a criptoanalisis lineal y diferencial. Cada
una de las funciones tiene un proposito preciso:
La capa de mezcla lineal (funciones DesplazarFila y MezclarColumnas) permite obtener un
alto nivel de difusi
on a lo largo de varias rondas.
La capa no lineal (funcion ByteSub) consiste en la aplicacion paralela de S-cajas con propiedades
optimas de no linealidad.

La capa de adici
on de clave es un simple or-exclusivo entre el estado intermedio y la subclave
correspondiente a cada ronda.
Caractersticas:

No es de tipo Feistel.
Muy adaptado para los procesadores de 8 bits usados en tarjetas inteligentes y arquitecturas
de 32 bits.
Tama
no 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.
N
umero de etapas flexible seg
un necesidades.
Utiliza un conjunto de S-Boxes con valores precalculados para facilitar los calculos ar-
itmeticos.
Rijndael es m
as vers
atil que la version estandarizada.

AES opera modificando bloques de 128 bits representados en una matriz de 4 4 bytes, que
llama estado. Cada ronda (excepto la ultima) consiste en cuatro pasos:
La ronda final reemplaza la fase MixColumns por otra instancia de AddRoundKey.
1. SubBytes - Sustituci
on 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 irreducible
m(x) = x8 + x4 + x3 + x + 1, y sustituido por su inversa multiplicativa. El valor cero queda
inalterado.

33
Figure 6.3: Subbytes.

2. El siguiente paso consiste en aplicar la siguiente transformacion afn en GF (2), si x0 , x1 , . . . , x7


los bits del byte correspondiente, su imagen sera y0 , y1 , . . . , y7

y0 1 0 0 0 1 1 1 1 x0 1

y1


1 1 0 0 0 1 1 1
x1
1


y2


1 1 1 0 0 0 1 1
x2
0


y3
== 1 1 1 1 0 0 0 1
x3
+ 0


y4


1 1 1 1 1 0 0 0
x4
0


y5


0 1 1 1 1 1 0 0
x5
1

y6 0 0 1 1 1 1 1 0 x6 1
y7 0 0 0 1 1 1 1 1 x7 0

La funci
on inversa sera la aplicacion de la inversa de la S-caja correspondiente a cada byte
de la matriz de estado.

2. ShiftRows Desplazamiento de filas: Los bytes de cada fila del estado se rotan de manera
cclica 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 el
mismo n umero de posiciones, pero a la derecha.
3. MixColumns - Mezcla de columnas: Cada columna del estado se multiplica por un polinomio
constante c(x). As se mezclan los 4 bytes de la columna con una transformacion lineal.
4. AddRoundKey - C alculo de las subclaves: Cada byte del estado se combina mediante XOR
con una subclave. Las subclaves se derivan de la clave de cifrado usando un proceso iterativo.

34
Figure 6.4: ShiftRows.

Figure 6.5: MixColumns.

Figure 6.6: AddRoundKey.

35
Chapter 7

Intercambio de claves

Intercambio de claves
A traves de un canal abierto, dos interlocutores que no poseen ning
un conocimiento secreto
comun, necesitan compartir una clave secreta.
Las mismas ideas que dieron origen a la Criptografa de clave p
ublica aportaron soluciones a
este antiguo problema.
Primera soluci
on:
Diffie y Hellman propusieron en 1976 un metodo que basa su seguridad en el problema del
logaritmo discreto.
Hay actualmente muchos otros protocolos de intercambio de claves, algunos perfeccionando
el de D-H y otros basados en nuevas ideas.
A y B se envan mensajes usando un canal abierto y consiguen compartir un secreto K que
s
olo 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 enva a B el mensaje g x mod p.
3. . B elige un secreto y, 1 y p 2 y enva a A el mensaje g y mod p.
4. B recibe g x y calcula la clave compartida como

K = (g x )y mod p

5. A recibe g y y calcula la clave compartida como

K = (g y )x mod p

Un ejemplo artificialmente peque


no:

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


multiplicativo deZ71 .
2. A elige un secreto x = 46 y enva a B el mensaje g x mod p = 2146 mod 71 = 9.

36
3. B elige un secreto y = 57 y enva a A el mensaje g y mod p = 2157 mod 71 = 61.
4. B recibe g x = 9 y calcula la clave compartida como
K = (g x )y mod p = 957 mod 71 = 16.

5. A recibe g y y calcula la clave compartida como


K = (g y )x mod p = 6146 mod 71 = 16.

Seguridad:
Si un atacante interceptara toda la comunicacion, llegara a conocer los valores de p, g, g x y
gy .
Para encontrar K necesita conocer uno de los valores x, y. Su dificultad es que para hallar
x tiene que calcular el logaritmo discreto en Zp de g x de base g, y este es un problema
intratable (an
alogamente para y).
Se podra aumentar la seguridad mediante el uso de un grupo sobre el que el PLD fuese
m as duro: por ejemplo, el grupo multiplicativo de un cuerpo finito o el grupo de una curva
elptica.
Es seguro ante ataques pasivos, pero se necesitaran mejoras para protegerse de ataques
activos:
Ataque de intercepci
on y suplantacion:
A elige un secreto x, 1 x p 2 y enva a B el mensaje g x mod p.
C intercepta g x mod p, elige un z con 1 z p 2 y enva a B el valor g z mod p.
B elige un secreto y, 1 y p 2 y enva a A el mensaje g y mod p.
C intercepta g y mod p, y enva a B el valor g z mod p.
B recibe g z y calcula la clave compartida como
K = (g z )y mod p

A recibe g z y calcula la clave compartida como


K = (g z )x mod p
C calcula tambien la clave compartida haciendo
K = (g x )z mod p

7.1 Ataques
El protocolo es sensible a ataques activos del tipo Meet-in-the-middle. Si la comunicaci on 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 ning un mecanismo para validar la identidad de los participantes en la
comunicaci on. As, el hombre en el medio podra acordar una clave con cada participante y
retransmitir 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 modificando
el tr
afico para que no se den cuenta.
Para evitar este tipo de ataque se suele usar una o mas de las siguientes tecnicas:

37
Control de tiempos.
Autenticaci
on previa de las partes.
Autenticaci
on del contenido.

7.2 Autenticaci
on e integridad
Necesidad de autenticaci
on:
Al ataque anterior (y a otros) son susceptibles tambien todos los todos los criptosistemas de
clave p
ublica que hemos visto.

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


Autenticaci
on de la identidad del emisor del mensaje.
Autenticaci
on de la identidad del que recibe el mensaje.
Verificaci
on de la integridad del mensaje, etc.

Las soluciones vendr


an de una combinacion de las tecnicas estudiadas.
Este estudio nos llevar
a a los conceptos de funciones resumen, certificados, firma, etc.

38
Chapter 8

Clave p
ublica

Si la clave es p
ublica cualquiera puede descifrar, . . . o no?
Idea fundamental:
Asimetra separacion de claves: una publica que cifra y otra privada que descifra.
Dos ejemplos:
1. El cartero fiel:
Clave p
ublica: mi direccion.
Clave privada: la llave de mi buzon.
2. El fabricante de cajas de seguridad:
Clave p
ublica: una caja abierta, que se bloquea al cerrarla.
Clave privada: mi llave de la caja.
Cifrado y descifrado asimetrico: la clave p
ublica la tienen todos, la clave privada solo la tiene
el destinatario:

Figure 8.1: Clave p


ublica.

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
para decodificar. Dependiendo de la aplicacion que le demos al algoritmo, la clave p ublica ser
a la
de cifrado o viceversa. Para que estos criptosistemas sean seguros tambien ha de cumplirse que a
partir de una de las claves resulte extremadamente difcil calcular la otra. Se basan en general en
plantear al atacante problemas matematicos difciles de resolver
Un poco de (pre)historia:

El concepto de criptosistema de clave p


ublica fue descubierto por James Ellis (Government
Communications Headquarters) al final de los a+?os 60 (7 a nos 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 de


claves DH en 1975 (un a
no antes que Diffie y Hellman).
Los servicios secretos no supieron valorar estos descubrimientos, pero los mantuvieron en secreto
y el merito fue para otros.
Whitfield Diffie y Martin Hellman publicaron el artculo New Directions in Cryptography en
1976.
Los autores afirman que sera posible implementar criptosistemas de clave p ublica usando
esotericas funciones relacionadas con difciles problemas matematicos.
No hacen propuestas concretas.
Cu ales son esas m
agicas funciones matematicas?
Funciones de un solo sentido:

En realidad son funciones biyectivas . . . de otra forma no se podra descifrar!


Lo importante es que para ser capaz de invertirlas hay que conocer cierta informaci
on: la
clave privada!.
Si no se conoce la clave privada es computacionalmente imposible invertir la funci
on.

Quien conoce una funci


on as?
Esta pregunta queda en pie tras el artculo de Diffie y Hellman.

40
Chapter 9

Mochila de Merkle-Hellman

Merkle y Hellman propusieron en 1977 el que fue (probablemente) el primer sistema de cifrado de
clave publica.
Basado en el problema subset-sum:
Dada una lista de enteros positivos (a1 , a2 , . . . , an ) y un entero positivo
Pn s, encontrar, si existe,
una lista de enteros (x1 , x2 , . . . , xn ) con xi {0, 1}, 1 i n tales que i=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:
Pi1
Una mochila (b1 , b2 , . . . , bn ) se dice que es supercreciente si bi j=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: generaci


on de claves
En Merkle-Hellman, las claves estan compuestas por secuencias. La clave p ublica es una secuencia
difcil, y la clave privada es una facil, o secuencia de valores supercrecientes, junto con dos
n
umeros adicionales, un multiplicador y un modulo, los cuales son usados para convertir la secuen-
cia supercreciente en una secuencia difcil. Estos mismos n umeros son usados para transformar la
suma de la subsecuencia de la secuencia difcil en la suma de la subsecuencia de la secuencia
f
acil, la cual se puede solucionar en tiempo polinomial.
Cada usuario crea su clave p ublica y la correspondiente clave privada:

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


Elige un m
odulo M con M > b1 + b2 + . . . + bn
Elige un entero W , 1 W M 1 con mcd(W, M ) = 1

Elige una permutaci


on de (1, 2, . . . , n)
Calcula ai = W b(i) mod M , para i = 1, . . . , n

41
La clave p
ublica 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 p
ublica de A: (a1 , a2 , . . . , an )
2. Representa el mensaje m como una cadena binaria m1 m2 . . . mn .

3. Calcula el entero c = m1 a1 + m2 a2 + . . . + mn an .
4. Enva 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 = r1 b1 + r2 b2 + . . . rn bn .
3. Los bits del mensaje son mi = r(i) , i = 1, 2, . . . , n.

POR QUE FUNCIONA EL DESCIFRADO?


La operacion que se
Prealiza en elP
descifrado es:
n n
d = W 1 c = W 1 i=1 mi ai = i=1 mi b(i) (mod M )
Como Pn
0 d < M, d = i=1 mi b(i) mod M
La soluci
on del problema con la mochila supercreciente dara los bits del mensaje (tras la
aplicaci
on de la permutacion).

9.3 Seguridad
El problema general subset-sum es NP-completo, pero el particular de la mochila derivada
de una supercreciente no lo es.
Se conoce un ataque capaz de romper el criptosistema en tiempo polinomial.
El u
nico sistema criptografico basado en el problema de la mochila para el que a
un no se
conoce un ataque con exito es el de Chor-Rivest.

42
Chapter 10

RSA

En 1977 Ron Rivest, Adi Shamir y Len Adleman propusieron un criptosistema de clave p ublica
sustentado en el que pas o a llamarse el problema RSA, basado en la factorizacion de enteros.
RSA se basa en la dificultad para factorizar grandes n umeros. Las claves p
ublica y privada se
calculan a partir de un numero que se obtiene como producto de dos primos grandes. El atacante
se enfrentar
a, si quiere recuperar un texto claro a partir del criptograma y la clave publica, a un
problema de factorizaci on o tendra que resolver un logaritmo discreto

10.1 RSA: herramientas matem


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

10.1.1 Inversos m
odulo n
Cuando trabajamos m odulo un entero, en numerosas ocasiones necesitaremos calcular el inverso
de alg
un 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 com


un divisor de
x y n es 1 (o dicho de otra forma, si los n
umeros en cuestion son coprimos).

Para el c
alculo de dicho inverso (en caso de que exista) se utiliza el algoritmo extendido de
Euclides.
Calculemos manualmente 171 mod 65:
(1) 65 = 3 17 + 14 1= 3 - 1 2 =
(2) 17 = 1 14 + 3 = 3 - 1 (14 - 4 3) = - 14 + 5 3 =
(3) 14 = 4 3+2 =-14 + 5 (17 - 1 14) = 5 17 - 6 14 =
(4) 3= 1 2 +1 = 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 b
asico 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
Peque
no Teorema de Fermat: si p primo y x no nulo y menor que p, se verifica

xp1 = 1 mod p

El teorema de Euler generaliza el peque


no teorema de Fermat para cualquier valor del m
odulo,
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 funci
on de Euler, que mide el n
umero de unidades de Zn , y cuya es
f
ormula es
1 1
(n) = n (1 ) (1 )
p1 pr
donde los pi son los factores primos de n, es decir n = pa1 1 par r .

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 u nica mod n, y dicha solucion se halla de la siguiente
manera, en primer lugar se calculan ci = nni y di = c1 i mod ni , i = 1, . . . , k; ahora las soluciones
son:
x = a1 c1 d1 + . . . ak dk ck + n, Z

10.1.4 C
alculo de potencias enteras
Otra herramienta b asica para el funcionamiento de RSA es la exponenciacion modular repetida de
numeros (eventualmente grandes), as que es interesante disponer de un metodo que nos permita
calcular el valor de me modn con un mnimo n umero 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 cada
resultado intermedio cuando se sobrepase el modulo n.

m e=1
e
me = (mb 2 c )2 epar
m me1 eimpar

El seudoc
odigo de una version no recursiva sera as:
s = 1, t = m, q = e;
mientras (q > 0)
si (q & 1) // si q es impar
s = s * t;
q = q / 2; // divisi on entera(desplazamiento)

44
t = t * t;
retorna s;
Este algoritmo se ejecuta en tiempo logartmico en funcion del valor del exponente e.
alculo sin ordenador es un poco diferente. Ejemplo de calculo de 2100 :
El c

100 = 11001002 1C1C0C0C1C0C0 M CM C0C0CM C0C0 M CM CCCM CC

M C M C C C M C
1 2 4 8 64 4096 16777216 33554432 . . .
C C
. . . 1125899906842624 1267650600228229401496703205376
No son 100 multiplicaciones, sino solo 9 (el n
umnero de operaciones a realizar esta acotado por
umero de bits del exponente 1.
el doble del n

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

1 * * ... * * 1

El primero y el u
ltimo bit se ponen a 1 y los bits intermedios se eligen al azar. La probabilidad
umero as construido sea primo es de 2/(k ln2)
de que el n
Si el n
umero obtenido no es primo volvemos a sortear los bits intermedios y repetimos hasta
obtener un primo.
Ahora necesitamos determinar si hemos encontrado un primo, y para ello podemos aplicar el
test de primalidad de Miller-Rabin
Entrada: n impar, con n = 2s r + 1 con r impar.
Salida: compuesto si el n
umero no es primo; probable primo si el n
umero es probablemente
primo, con probabilidad de error de 1/4
El funcionamiento de dicho test es el siguiente
Se elige al azar un entero a con 1 < a < n.
y = ar mod n
Si y = 1 mod n, retorna "probable primo"
j=1
Mientras j s 1, y y 6= 1{
y = y 2 mod n
Si 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 inferior
a 1/22k , lo que lo hace muy fiable.
Para hacernos una idea de la fiabilidad, valga este cuadro:
Concepto Probabilidad
El gordo de Navidad 217
Un meteorito y un asteroide el mismo da 227
Te toca la primitiva y te mata un rayo el mismo da 256
Error en M R(n, 50) 2100

45
Adicionalmente, es interesante que los primos utilizados sean fuertes, se dice que un primo p es
fuerte 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 b
usqueda 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 = (st1 ts1 ) 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 matem atico de difcil resolucion en que radica la fortaleza del criptosistema RSA es
el 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 n
umero desconocido m a e m
odulo
n.
Hay que encontrar un entero m tal que me = c (mod n), es decir, descifrar el mensaje cifrado
c, que corresponde al texto en claro m.
La factorizaci
on de enteros resuelve el problema RSA, puesto que si sabemos factorizar n = pq,
Calculamos = (p 1)(q 1)
Hallamos d = e1 en Z

on es m = cd mod n.
La soluci
De hecho conociendo sera facil encontrar p y q con solo resolver una ecuacion de segundo
grado, ya que (n) = (p 1) (q 1) y, por ejemplo q = n/p, con lo que quedara (n) =
(p 1)(n/p 1), y resolveramos la ecuacion

p2 + ((n) n 1) p + n = 0

No est
a demostrado que el problema RSA sea equivalente al de la factorizacion, pero el problema
de determinar d s lo es, ya que conocido este existe un sencillo ataque que nos dara la factorizaci
on
de n.

46
10.3 Generaci
on de claves
Cada usuario cera una clave p
ublica y la correspondiente clave privada:

1. Genera dos primos grandes p y q, de tama


no similar.
2. Calcula n = p q y = (p 1)(q 1).
3. Elige un entero e, 1 < e < con mcd(e, ) = 1.
nico entero d, 1 < d < tal que e d = 1 mod.
4. Calcula el u
5. La clave p
ublica 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 p


ublica 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) Enva 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, mp1 = 1 (mod p). Elevando ambos
miembros a k(q 1) y multiplicando por m queda

med = m1+k(p1)(q1) = m (mod p).

Si mcd(m, p) = p entonces ambos miembros son 0 modulo p, con lo que la congruencia


anterior 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 en
trasladar las operaciones de Zn a Zp Zq , y resolver el sistema

x = cd mod p


x = cd mod q
que tiene soluci
on u
nica m
odulo n, as:

47
1. ap = q p1 mod n, aq = pq1 mod n
2. dp = d mod (p 1), dq = d mod (q 1)
3. cp = c mod p, cq = c mod q
d d
4. m = ap (cpp mod p) + aq (cq q mod q) mod n

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

10.5 RSA: seguridad


Ron Rivest estim o en 1977 que factorizar un numero de 125 dgitos requerira 40.000 billones de
a
nos, esto le llevo a pensar que RSA-129 no podra ser roto jamas en la practica.
Un reto de factorizaci
on (propuesto por los inventores de RSA en 1977) aparecio en la columna
de Martin Gardner Mathematical Games de la revista Scientific American. Fue resuelto en 1994
por 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 1600
m aquinas (dos de ellas de fax) durante mas de seis meses. La coordinacion se realizo a traves de
Internet y supuso uno de las primeros proyectos de estas caractersticas.
Para superar el desafo RSA-129 haba que factorizar un mensaje cifrado con una clave 129
dgitos, 425 bits, concretamente el n
umero:

11438162575788886766923577997614661201021829672124236256256184293 . . .
. . . 5706935245733897830597123563958705058989075147599290026879543541
que se factoriza como

3490529510847650949147849619903898133417764638493387843990820577
32769132993266709549961988190834461413177642967992942539798288533
La solucion era el texto The Magic Words are Squeamish Ossifrage (del ingles Las Palabras
Magicas son Quebrantahuesos Aprensivo) y el hito de 1994 inauguro la tradicion de usar las
palabras squeamish ossifrage en los retos criptoanalticos.
El premio ofrecido por el reto era de 100 $, que los ganadores donaron a la Free Software
Foundation.
Con la siguiente estimacion de capacidad de calculo (en mips1 por a no):
Particular (P) Gran empresa (E) Gobierno (G)
10.000 10.000.000 1.000.000.000
Teniendo en cuenta que la potencia de calculo se multiplica por 10 cada 5 a
nos y las Matem
aticas
avanzan cada a no, los tamanos recomendados de claves:
Ano Contra P Contra E Contra G
1995 768 1280 1536
2000 1024 1280 1536
2005 1280 1536 2048
2010 1280 1536 2048
2015 1536 2048 4096
2045 8192 16384 32768
1 Millones de Instrucciones Por Segundo. Es una forma de medir la potencia de los procesadores

48
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 peque nos y valores peque
nos de m, el cifrado podra ser estrictamente
menor que el modulo y el texto en claro podra obtenerse haciendo la raz e-esima, sin
tener en cuenta el modulo.

2. Siempre hay mensajes que se cifran en s mismos (al menos 9). De hecho su n
umero exacto
es :

(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 construye
un diccionario de textos probables y sus cifrados. Interceptando un texto cifrado, el atacante
puede usar este diccionario para descifrar el mensaje.

Protecci
on: combinar RSA con alg
un esquema de relleno (como por ejemplo estandares como
PKCS).

10.6.2 Ataque de primos cercanos


Fuerza bruta
p
de (n); as sera viable un ataque de fuerza bruta
Si p y q son primos cercanos, p esta cerca p
dividiendo n entre impares menores que (n).

Factorizaci
on de Fermat
Si llamamos x = p+q pq 2 2 2
2 , y = 2 , entonces x n = y . Como x > n, la idea es probar todos
p 2
los x > (n) hasta dar con uno que x n sea cuadrado perfecto. Cuanto mas cercanos
sean p y q, m
as 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 n


umero 2027651281
Fermat contest
o r
apidamente:

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
10.6.3 M
ultiples claves que descifran
Ademas de la clave privada d pueden encontrarse otras claves que tambien sirvan para descifrar,
aunque no sean d = e1 mod n:
Llamando
= mcm(p 1, q 1)
d = e1 mod
n d
=b c

Habr
a claves dk que descifran (ademas de d):

dk = d + k , k = 0, 1, . . . ,
Ejemplo:
Clave p 157).
ublica (n, e) = (3053 = 7143,
Clave privada d = 1571 mod (70 42) = 1573.

= mcm(70, 42) = 210.

d = 1571 mod 210 = 103.


Claves que descifran:
3053 103
103 + k 210, k = 0, . . . = 14
210
Esto es: 103, 313, 523, 733, 943, 1153, 1363, 1573, 1783, 1993, 2203, 2413, 2623, 2833, 3042.

10.7 Sobre la elecci


on de claves
Algunos criterios para una buena clave:

p y q deben ser suficientemente grandes, del mismo tama


no, 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-
zaci
on.
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 factorizaci


on de
n y romper todo el sistema.
Debe evitarse el uso repetido de un peque
no 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
Chapter 11

Firma y resumen digital

Aparte de la confidencialidad durante la transmision de informacion, tenemos una serie de objetivos


que conseguir por medio del uso de la Criptografa, como por ejemplo:

Integridad del mensaje.


Autenticaci
on del emisor y/o del receptor
No suplantaci
on.
No repudio.

Para implementar mecanismos que permitan estos servicios empezaremos por una herramienta
fundamental: la firma digital.
Firmar un documento consiste en a nadirle cierta informacion que valide su autora. No debe
confundirse la firma electronica con la firma digital; la firma electronica es un concepto jurdico,
equivalente electr
onico al de la firma manuscrita, donde una persona acepta el contenido de un
mensaje electronico a traves de cualquier medio electronico valido. Ejemplos de firma electronica
son
firmar con un l
apiz 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 en
una pantalla t
actil.
usar una firma digital.
usuario y contrase
na.
usar una tarjeta de coordenadas.
Una firma electr
onica crea un historial de auditora que incluye la verificacion de quien enva
el documento firmado y un sello con la fecha y hora.
Seg
un la Ley 59/2003, de firma electronica, en Espa na, la firma electronica es el conjunto
de datos en forma electr onica, consignados junto a otros o asociados con ellos, que pueden ser
utilizados como medio de identificacion del firmante.
No vamos a estudiar la firma electronica, sino la firma digital, que es un mecanismo criptografico
que, dado un mensaje (cifrado o no), permite (al menos):
Determinar la entidad originadora del mensaje (autenticacion de origen y no repudio).

51
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 de
requisitos:

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 p
ublica podemos dise
nar de forma sencilla mecanismos de
firma digital.

11.1 Firma RSA


Holmes tiene (n, e, d) como clave RSA (siendo d secreto) y firma un documento D de la siguiente
forma, 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-
par
andolo con D, si el resultado es igual, la firma es correcta y en caso contrario es falsa.
La comprobaci on de la firma puede hacerla todo el mundo ya que solo se necesita la clave
p
ublica de Holmes.
Este metodo cumple los 5 primeros requisitos exigidos, pero no el sexto, si el mensaje D es muy
grande, f puede ser tambien enorme y los calculos muy lentos.
Tendramos resuelto el problema si supieramos asociar a un documento una peque na cantidad
de informacion (un resumen), de forma inequvoca .

11.2 Funciones resumen


Idea b
asica: el resumen de un documento D debe servir como una representacion compacta de D
y 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 r


apido de
calcular.
2) Resumen de longitud fija. El tama
no del resumen h(D) debe ser fijo (definido por la funci
on),
sin depender del tama
no de D.
3) Difusi
on. h(D) debe ser una funcion en la que intervengan todos los bits de D. Si en D
cambiase un bit, en h(D) deberan cambiar aproximadamente la mitad de los bits.
4) Unidireccionalidad. Conocido un resumen h(D), debe ser computacionalmente imposible
encontrar D.
5) Resistencia a colisiones. Es evidente que h nunca puede ser una funcion inyectiva, con lo
que siempre existen colisiones: pares (D, D0 ) tales que h(D) = h(D0 ). Distinguiremos entre
resistencia debil y fuerte a las colisiones.

52
5a) Resistencia debil. Conocido D, debe ser computacionalmente imposible encontrar D0
tal que h(D) = h(D0 ).
5b) Resistencia fuerte. Debe ser computacionalmente imposible encontrar D y D0 tales que
h(D) = h(D0 ).

Cuantos intentos son necesarios para encontrar una colision del segundo tipo? Menos de los
que uno esperara, 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 con
el mismo cumplea nos.
Cuanto debe valer n para que p(n) > 0, 5 (es decir, para que la probabilidad de coincidencia
sea mayor del 50% ? La (sorprendente) respuesta es n = 23.
La probabilidad de que todos los cumplea nos sean diferentes en un grupo de n personas
(suponiendo que no hay ninguna que haya nacido el 29 de febrero) es
365 364 363 365 n + 1

365 365 365 365
no del resumen y evaluamos la funcion h sobre 2n/2
Teniendo esto en cuenta, si n es el tama
documentos, la probabilidad de encontrar dos de ellos con igual resumen es superior al 50%, con
lo que el mnimo tama
no del resumen sera de 160 bits y el tama
no recomendado ira por encima
de 256 bits.

11.2.1 Algunas funciones resumen


Como ejemplos de funciones resumen podemos citar las siguientes:
CRC32 (W. W. Peterson, 1961) Dise nada 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 est
a en
duda 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), adici
on
modular y rotacion a la izquierda.
SHA-1 (NSA, 1994) Basada en MD5, con resumen de 160 bits, mas segura. La familia
SHA (Secure Hash Algorithm, Algoritmo de Hash Seguro) es un sistema de funciones hash
criptogr
aficas relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos y
publicadas 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 res umenes de 224,256,384 o 512 bits. Con
muchos cambios sobre su predecesora. Recomendada actualmente.
Algunos usos de las funciones resumen son:
Generaci
on de claves para criptosistemas simetricos.

Checksum y verificaciones de integridad (sin adversarios).


Generadores seudoaleatorios.

53
Tablas hash de b
usqueda (colecciones, bases de datos, etc.)
Validaci
on y almacenamiento de contrase
nas.
Firma electr
onica.

11.3 Firma eficiente usando res


umenes
Holmes tiene (n, e, d) como clave RSA y quiere firmar un documento m (cifrado o no), para ello
1. Elige una funci
on 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. S
olo 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 v
alida si
RSA(n,e) (f ) = f e 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 p


ublica.
Veamos un ejemplo artificialmente peque
no:
Firmamos el mensaje m = esto es muy importante

Como funci
on resumen usamos h = CRC32:

h(m) = F 0EBDC78 = 4041989240

Par
ametros RSA:
(n = 10009202107, e = 123456789)
d = 4295292925

Firma:
40419892404295292925 mod 10009202107 = 14275210

Verificaci
on de la firma:

14275210123456789 mod 10009202107 = 4041989240 = h(m)

54
11.4 Un ataque a la firma digital
Un ataque factible cuando la funcion resumen no es muy robusta es el llamado ataque de
cumplea
nos:
Moriarty quiere enga
nar a Watson para que firme un contrato fraudulento, y para ello:

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


2. Modifica C y C 0 sin cambiar los significados (usando sinonimos, comas, espacios, lneas en
blanco, etc.) hasta que encuentra una pareja (C, C 0 ) con h(C) = h(C 0 ).
3. Enva C a Watson para que lo firme. Watson esta de acuerdo con C, lo firma (usando h) y
devuelve (C, fW (C)).
4. Moriarty sustituye (C, fW (C)) por (C 0 , fW (C)).

La protecci
on contra este tipo de ataques proviene de una buena eleccion de h. La probabilidad
de que en el paso Moriarty encuentre una tal pareja (C, C 0 ) con h(C) = h(C 0 ) es muy pequena si
la funci
on resumen h genera res umenes suficientemente grandes.

55
Chapter 12

ElGamal

El procedimiento de cifrado/descifrado ElGamal se refiere a un esquema de cifrado basado en


problemas matem aticos de logaritmos discretos. Es un algoritmo de criptografa asimetrica basado
en la idea de Diffie-Hellman. El algoritmo de ElGamal puede ser utilizado tanto para generar
firmas digitales como para cifrar o descifrar.
Fue descrito por Taher ElGamal en 1984 en un artculo titulado A Public key Cryptosystem
and 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 ninguna
patente lo que lo hace de uso libre.
El procedimiento de cifrado (y descifrado) esta basado en calculos sobre un grupo cclico
cualquiera lo que lleva a que la seguridad del mismo dependa de la dificultad de calcular loga-
ritmos discretos en un grupo cclico. El criptosistema de Elgamal ha demostrado ser muy flexible
y algunos de los sistemas m as modernos se inspiran en el.

12.1 El problema del logaritmo discreto


Consiste en lo siguiente: un grupo (G, ) de n elementos es cclico si existe un g G (llamado
generador del grupo) tal que G = {1, g, g 2 , . . . , g n1 }. Entonces para todo a G existe un entero
k con 0 k n 1 tal que g k = 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 grupos
finitos grandes (como por ejemplo en el grupo multiplicativo de Zp con p un primo fuerte), este
problema es computacionalmente intratable.
Una vez elegido el grupo con el que vamos a trabajar, necesitaremos encontrar un generador
de dicho grupo, y esto lo podemos llevar a cabo por medio del siguiente algoritmo:
Entrada: G cclico, con |G| = n = pe11 pe22 pekk .
Salida: un generador g de G.
1. Elige al azar g G
2. Para i = 1 hasta k, si g n/pi = 1 vuelve al paso 1.
3. Retorna g.

La probabilidad de que g sea generador es (n)/n, y un valor del n


umero estimado de intentos
necesarios para encontrarlo es 6 ln(ln(n))).

56
12.2 Generaci
on de claves
Cada usuario crea su clave p
ublica 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 = g a mod p.
3. La clave p
ublica es (p, g, ). La clave privada es a.

12.3 Cifrado y descifrado


B cifra un mensaje para A

1. Obtiene la clave p
ublica de A (p, g, ).
2. Representa el mensaje como un conjunto de enteros m1 m2 en el intervalo [0, p 1].
3. Para cada mi elige al azar un entero ki , 1 < ki p 2.
4. Calcula i = g ki mod p y i = mi ki mod p.
5. Enva el texto cifrado ci = (i , i ) a A.

Este proceso de descifrado nos devuelve el mensaje original, puesto que, por el Teorema de
Fermat, se tiene que en Zp ,
p1 = 1
Con lo que p1a = p1 a = g ak .
Y por tanto:
a = g ak m g ak = 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 exponente
k, 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, habra que destacar como ventajas

Una gran ventaja es que al elegirse k de forma aleatoria, el cifrado de un mismo texto dar
a
resultados diferentes, aunque esto es transparente para el descifrado.
Es muy flexible y puede adaptarse al uso de otro grupo diferente de Zp .

La seguridad de ElGamal se basa en la dificultad de resolver un problema de logaritmo


discreto.
Resulta crtico que se usen diferentes enteros aleatorios k para cada mensaje. Si se usara el
mismo 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 revelara el otro.

57
12.5 Firma digital ElGamal
El esquema de firma ElGamal permite que un verificador pueda confirmar la autenticidad de un
mensaje m enviado por un emisor sobre un canal de comunicacion inseguro.
Los par ametros utilizados por el esquema ElGamal son na funcion de resumen h resistente a
colisiones, un n umero primo p muy grande tal que el computo de logaritmos discretos modulo p
sea difcil y un generador pseudoaleatorio g para el grupo multiplicativo Zp .
A firma un mensaje m:

Sus claves Elgamal son: p


ublica = (p, g, ),privada = a.

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


Calcula r = g k 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 = r rs mod p.

Calcula 2 = g h(m) mod p.


La firma es v
alida si 1 = 2 .
Por que funciona la firma:
Si la firma (r, s) que B recibe es valida, entonces
s = 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
g h(m) g ks+ar+(p1)
y por el teorema de Fermat
g h(m) g ks+ar = rs (g a )r = rs r
As 1 debe ser igual a 2
Un ejemplo peque no:
Firma:
A tiene como clave p
ublica (p = 2357, g = 2, = 1185), clave privada a = 1751 y firma un
mensaje m de resumen h(m) = 1463.
A selecciona k = 1529 y calcula
r = 21529 mod 2357 = 1490
s = 15291 (1463 1751 1490) mod 2356 = 1777.

La firma es (1490, 1777).


Verificaci
on:
B verifica la firma calculando
1 = 11851490 14901777 mod 2357 = 1072
2 = 21463 mod 2347 = 1072.

58
Chapter 13

Criptografa de curvas elpticas

Con un grupo cclico adecuado los calculos son mas eficientes y las claves mas peque
nas, mientras
que el c
alculo 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 m as difciles.

13.1 Curvas elpticas


Las curvas elpticas han sido muy estudiadas desde hace mas de 150 a nos. Su uso en Criptografa
fue propuesto en 1985 independientemente por Neal Koblitz (Univ. de Washington) y Victor Miller
(IBM, Yorktown Heights).
Una curva elptica es una curva en el plano tal que cada lnea que la corta en 2 puntos, la corta
adem as exactamente en un tercer punto.
Una curva elptica sobre R esta formada por el conjunto de los puntos (x, y) tales que satisfacen
una ecuacion de la forma y 2 = x3 + ax + b con a, b numeros reales cumpliendo 4a3 + 27b2 6= 0.

Figure 13.1: Curva elptica.

59
13.2 El grupo
Una curva elptica sobre un cuerpo finito esta formada por un conjunto finito de puntos.
La curva es

Ea,b = {(x, y) R2 / y 2 = 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 operaci
on del grupo (dos reglas basicas)
B1 Todas las rectas verticales pasan por el punto del infinito .
B2 Si P, Q, R G est
an alineados, entonces P + Q + R = .

Figure 13.2: Curva elptica.

Aritm
etica geom
etrica:
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 lnea que los une, que corta a la
curva 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 = .
Aritm
etica 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
on de un punto distinto del (x, 0). Si yp 6= 0, entonces calculamos s = (3x2p + a)/2yp
2.- Duplicaci
y entonces 2P = R = (xr , yr ) siendo

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

Mutiplicaci on rapida de puntos


Se puede realizar la multiplicacion rapida de puntos haciendo sumas y doblados de puntos con
un numero mnimo de operaciones, de la misma forma que se hacan las potencias rapidas, donde
las 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 en
SDDSDSDS, lo que nos llevara a

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


Resultados te
oricos que aseguran la existencia de curvas elpticas 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 elpticas con
|G| = n.
Existen enteros n1 , n2 con n2 |n1 y n2 |p 1 tales que G ' Zn1 Zn2 (si n1 = 1 = G es
cclico).
Orden de un punto
Si P es un elemento de un grupo (G, +) entonces el orden de P es el primer entero k tal que
kP =
Si k = |G|, entonces G es cclico y P es un generador.
El problema del logaritmo discreto (aditivo) en curvas elpticas consiste en:
Dados dos puntos P y Q en el grupo (aditivo) de la curva, encontrar un entero k tal que kP = Q
Ejemplo: en la curva elptica definida sobre F23 por la ecuacion y 2 = 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 elptico


Utilizando un subgrupo cclico del grupo de una curva elptica se puede implementar un criptosis-
tema similar al de Elgamal.
Cada usuario construye su clave p ublica y la correspondiente privada:

1. Elige un primo p y una curva elptica sobre Zp , y 2 = 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 tama
no similar a p.
3. Se elige un entero d [1, n 1] y se hace B = dPg .
4. La clave p
ublica es (p, a, b, Pg , n, B).

61
5. La clave privada es d.
Cifrado
B 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. Enva a A el texto cifrado (M, ).

Descifrado
B descifra el mensaje de A

1. Calcula d M = d k Pg = k B = (1 , 2 ).
2. Obtiene el mensaje en claro
m = 11 en Zp

13.4 Algunos est


andares
El Gamal elptico no es un estandar, aunque hay intentos, como:

Est
andar P1363 de la IEEE de criptografa de clave p
ublica: Standard Specifications For
Public-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 and


Evaluation Committee http : //www.ipa.go.jp/security/enc/CRY P T REC/index e.html
14.4 - Est
andar SECG: The Standards for Efficient Cryptography Group (SECG) http :
//www.secg.org/

14.5 - Est
andar NIST: The NIST Computer Security Division http : //csrc.nist.gov/

El criptosistema basado en curvas elpticas 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
13.5 Seguridad
Certicom es la principal empresa comercial de CCE, esta organizacion posee 130 patentes, y ha
vendido licencias a NSA por 25 millones de dolares.
Tambien ha patrocinado varios desafos a algoritmos CCE. El mas complejo resuelto hasta
ahora, con clave de 109 bits, fue roto por un equipo de investigadores a principios de 2003. usando
un ataque masivo en paralelo basado en el ataque de cumplea nos, con mas de 10.000 PCs de tipo
Pentium funcionando continuamente durante 540 das.
Se estima que la longitud de clave mnima recomendada para CCE (163 bits) requerira 108
veces los recursos utilizados para resolver el problema con 109 bits.
Tama nos estimados de claves en los distintos problemas estudiados para obtener una seguridad
equivalente:

PLD (bits) RSA (bits) PLDE (bits) Ratio


1024 1024 163 1:6
3072 3072 256 1:12
7680 7680 384 1:20
15360 15360 512 1:30

Un menor tamano implica una mejor gestion de las claves, mas velocidad, menor tama
no del
cifrado y menos necesidad de memoria.

13.6 Conclusiones
Las buenas implementaciones de CCE son muy seguras: no se les conoce ning
un ataque
subexponencial que haya tenido exito.
Mas atractivos que los anteriores porque requieren claves mucho mas cortas para el mismo
nivel de seguridad.
M
as r
apidos 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 a
un nuevo!

63
Chapter 14

Servicios de seguridad

Al empezar tenamos varios objetivos. Luego hemos visto muchas herramientas...

1. Confidencialidad
Criptografa simetrica
Criptografa de clave p
ublica
2. Autenticaci
on
Funciones resumen
Criptografa de clave p
ublica
3. Integridad
Firma
4. No repudio
Firma

Ahora vamos a poner orden para tener servicios de seguridad, para ello disponemos de dos
paradigmas, criptografa de clave p
ublica y criptografa simetrica:

A.- Criptografa de clave p


ublica

Muy segura.

Vers
atil: ofrece servicios imposibles con solo criptografa simetrica.
Lenta y pesada.
Poco apta para hardware.
Ineficiente para grandes vol
umenes de informacion.

B.- Criptografa simetrica



Muy segura.

Muy r apida y ligera.

Apta para hardware.

64

Adecuada para grandes vol
umenes 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 k
SD(k, C) = descifrado de C con la clave k
y un criptosistema de clave p
ublica donde
P E(p, M ) = cifrado de M con la clave p
P D(v, C) = descifrado de C con la clave v
Y nuestro escenario: dos interlocutores, Holmes y Watson, siendo (p, v) las claves p
ublica y
privada PKC de Watson.

14.1 A. Claves de sesi


on
Holmes enva 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 podra tener lugar entre el
usuario Holmes y un servidor, un sitio de Internet, . . . y esto es un problema: asimetra de la
seguridad 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 p
ublica de Holmes realmente
es la suya y que no lo estan suplantando.
Autenticaci
on del servidor: Holmes no esta seguro de que no estan suplantando al servidor.
No repudio: los emisores de los mensajes podran negar ser los autores.

65
14.2 B. Certificados digitales
Un certificado digital es un documento que vincula claves y otros datos con un usuario y confirma
su 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 su
procedencia.
Cifrar datos para que solo el destinatario de la informacion pueda acceder a ella.

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

1. Certificado
1.1 Datos de generacion.
1.1.1. Versi
on.
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 p
ublica.
1.2.3. Clave publica.
1.3 Datos opcionales.
1.3.1. Id. u
nico del emisor.
1.3.2. Id. u
nico 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 conocemos


es que el certificado este avalado por una tercera parte en la que s confiamos (autoridad de
certificaci
on).
Esa tercera parte (TTP, Trusted Third Party) avalara con su firma digital que el certificado es
de 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 de
certificaci
on (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 jerarquas 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, p


ublica y privada.

66
La clave p
ublica se enva 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 adecuada
por el usuario.

Cuando se genera (o se instala un certificado a partir de un archivo que contenga la clave


privada), la clave privada se guarda localmente en un almacen protegido.
En Windows, en C:/ Users%username%/AppData/Roaming/Microsoft/Crypto/RSA
El 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 p
ublicos y claves privadas (protegidas con
contrase
na).

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. Autenticaci
on
La autenticaci
on puede llevarse a cabo mediante certificados digitales, o sin necesidad de ellos en
dos pasos,
1. Autenticacion del usuario. El servidor proporciona una clave k aleatoria al usuario H, quien
le 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 firma
fH (k) con el certificado CH .
2. Autenticacion del servidor. El usuario proporciona una clave k aleatoria al servidor S, quien
le 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 firma
fS (k) con el certificado CS .
En ning un momento se transmiten las claves privadas, solo documentos firmados y las dos
autenticaciones 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 basadas
en criptografa de clave p
ublica.
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 infraestructura
confan:

67
Autoridad de Certificacion
Autoridad de Registro
Autoridades de Fechado Digital, etc.
Hemos llegado muy lejos, a
un faltan mecanismos de seguridad, como

Detecci
on de intrusos

Compartici
on de secretos
Pruebas de conocimiento cero
...

68

Das könnte Ihnen auch gefallen