Escolar Documentos
Profissional Documentos
Cultura Documentos
i=1
1/N
2
= 1/N
Cada idioma tiene un IC caracterstico, aunque dependiente de la naturaleza del texto
(cientco, literario, etc.)
Indice de coincidencia de dos textos: Probabilidad de que al elegir al azar un caracter en cada
texto, ambos sean iguales.
IC(T
1
, T
2
) =
x
p(x, T
1
) p(x, T
2
)
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 T
1
= baca, entonces
1
(T
1
) = cdbd.
La propiedad fundamental dice que
p(a, baca) = p(b, cdbd) =
2
4
En general, si X es un alfabeto, T
1
, T
2
son textos y
1
es una permutacion,
IC(
1
(T
1
),
1
(T
2
)) =
xX
p(x,
1
(T
1
)) p(x,
1
(T
2
)) =
=
1(x)1(X)
p(
1
(x),
1
(T
1
)) p(
1
(x),
1
(T
2
)) =
xX
p(x, T
1
) p(x, T
2
) = IC(T
1
, T
2
).
En nuestro ejemplo, si T
1
= baca y T
2
= adcc, tenemos que
1
(T
1
) = cdbd y
1
(T
2
) =
badd, con lo que
IC(T
1
, T
2
) =
2
4
1
4
+
1
4
0
4
+
1
4
2
4
+
0
4
1
4
= 0, 25
IC(
1
(T
1
),
1
(T
2
)) =
0
4
1
4
+
2
4
1
4
+
1
4
0
4
+
1
4
2
4
= 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 denimos
2
= x + 2 mod 4, tenemos
1
(T
1
) = cdbd y
1
(T
2
) = cbaa, con lo que
IC(T
1
, T
2
) =
2
4
1
4
+
1
4
0
4
+
1
4
2
4
+
0
4
1
4
= 0, 25 (como antes)
IC(
1
(T
1
),
2
(T
2
)) =
0
4
2
4
+
2
4
1
4
+
1
4
1
4
+
1
4
0
4
= 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.
IC(T) =
x
p(x, T)
2
El IC de un texto aleatorio en un alfabeto de N caracteres es
11
IC(T) =
x
p(x, T)
2
= N (
1
N
)
2
=
1
N
Si N = 27, este valor es 0,037.
El IC de un texto nada aleatorio, como T = (x
0
, x
0
, . . . , x
0
) es
IC(T) = p(x
0
, T)
2
+
N1
i=1
p(x
i
, T)
2
= 1
2
+ (N 1) 0
2
= 1
Espa nol 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 criptoanalisis: determinacion de la longitud de la clave.
Mediante el test de Kasiski buscamos un valor probable para m, la longitud de la clave.
Estimamos el IC del texto en claro, calculandolo sobre un texto que suponemos similar.
Dividimos el texto cifrado en m columnas F
1
, . . . , F
m
y si la longitud de la clave es m
y nuestra estimacion del IC es buena, el IC de cada la F
i
debe ser aproximadamente
igual al estimado.
Si todo va bien sabemos ahora que el texto se ha cifrado con una clave desconocida
k
1
, . . . , k
m
.
2. Etapa 2 del criptoanalisis: desplazamientos entre los caracteres de la clave.
Para cada columna C
i
:
F
i
esta cifrada con el valor k
i mod m
Denimos unos desplazamientos (que no conocemos)
i
= k
1
k
i mod m
Podramos desplazar todas las las para obtener F
1
, F
2
, . . . , F
m
, todas cifradas con k
1
:
F
1
esta cifrado con k
1
.
Para i > 1, F
i
esta cifrado con k
i
(desconocido). F
i
k
i
sera el texto en claro (si
conocieramos k
i
). F
i
= F
i
+
i
= F
i
k
i
+ k
1
estara cifrado con k
1
(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 m1 desplazamientos con 0
i
< N N (m1) 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(F
i
) IC(F
1
)
12
3. Etapa 3 del criptoanalisis: reduccion a un cifrado por desplazamiento
Sustituimos las las F
i
por las correspondientes F
i
, volvemos a fusionar las las en un solo
texto y . . .
ya tenemos todo el texto cifrado por un desplazamiento de k
1
.
4. Fin del criptoanalisis
Y ahora, fuerza bruta para buscar k
1
.
Encontrado k
1
ya tenemos el texto en claro y, conocidos los desplazamientos, podemos cal-
cular la clave completa:
k
1
, k
2
= k
1
1
, . . . , k
m
= k
1
m
2.6 Cifrado XOR
Reinventado constantemente por los acionados, 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.
Criptoanalisis:
Igual que en Vigenere, el test de Kasiski puede encontrar la longitud probable de la clave.
Aplicar XOR con el mismo caracter a todo un texto es en realidad aplicarle una permutacion
del alfabeto, por lo que el ndice de coincidencia puede ser utilizado para el criptoanalisis.
El proceso es entonces igual que el de Vigenere.
Es probable que la razon entre la longitud del texto cifrado y la longitud de la clave 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 (2, 13, 21)
_
_
2 3 4
5 5 6
7 8 9
_
_
_
_
2
13
21
_
_
=
_
_
23
22
24
_
_
_
_
w
v
x
_
_
Para el descifrado
13
_
_
2 3 4
5 5 6
7 8 9
_
_
1
_
_
23
22
24
_
_
=
_
_
2
13
21
_
_
_
_
e
n
u
_
_
Muy debil ante ataques de texto en claro conocido
Ataque mediante Gauss-Jordan
(Texto claro texto cifrado )
diagonalizacion
(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
+Como podemos demostrarlo?
3.1 Teora de la informaci on
Introducida por Claude Shannon a nales de los a nos cuarenta, permite efectuar un estudio
formal de la seguridad de los algoritmos criptogracos.
Cuantica conceptos como cantidad de informacion, entropa o secreto.
Introduce la nocion de secreto perfecto.
Cantidad de informacion de un mensaje:
Ante varios mensajes, el que tenga una menor probabilidad sera el que contenga una mayor
cantidad de informaci on.
Si la probabilidad de un mensaje m es p(m), entonces la cantidad de informacion de m se
dene como
I(m) = log
2
(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 simplicamos 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 sera maxima.
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 = m
1
, . . . m
n
se dene como la suma ponderada de las canti-
dades de informacion de sus posibles estados:
H(M) =
n
i=1
p(m
i
) log
2
(p(m
i
))
Tiene las siguientes propiedades:
1. 0 H(M) log
2
(n) (valor que se da para n caracteres equiprobables).
2. H(M) = 0 existe un j con p(m
j
) = 1 y el resto con probabilidad 0.
Ejemplo: M puede tomar tres estados: m
1
, m
2
, m
3
con probabilidades respectivas
p(m
1
) = 50% p(m
2
) = 25% p(m
3
) = 25%
E(M) =
1
2
log
2
1
2
1
4
log
2
1
4
1
4
log
2
1
4
=
1
2
1 +
1
4
2 +
1
4
2 = 1, 5
Entropa y codicacion
M = mensaje de longitud n.
L = lmite maximo de compresion para M eligiendo un codicador smbolo a smbolo, de forma
optima.
L = n H(M)
Entropa condicional
M = mensaje que puede tomar los valores m
1
, . . . , m
n
.
Si conocemos un valor m
k
:
H(M[m
k
) =
n
j=1
p(M = m
j
[m
k
) log
2
p(M = m
j
[m
k
)
Incertidumbre
Y = mensaje que puede tomar los valores y
1
, . . . , y
m
.
La incertidumbre de un mensaje X conocido un valor de Y es:
H(X[Y ) =
m
j=1
H(X[Y = y
j
) p(Y = y
j
)
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).
Entropa maxima mayor incertidumbre en el mensaje. Se da cuando todos sus n estados
tienen la misma probabilidad.
H(M)
max
= log
2
(n)
Ratio absoluta de un lenguaje:
Es la entropa del lenguaje suponiendo los N caracteres igualmente probables:
R = H(X) =
x
p(x) log
2
(x) = sum
x
1
N
log
2
1
N
= N
1
N
log
2
N = log
2
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 = R r
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) = log
2
26 4, 70, luego H(K)/D 1, 38
Ejemplo (sustitucion):
Con un alfabeto de 27 caracteres, H(K) = log
2
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
= log
2
n
d
=
d
D
log
2
n
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.
a1ofkgdygf nuv 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 innita.
Por que no usar siempre OTP?
Problemas:
Generacion de claves verdaderamente aleatorias.
Distribucion de claves.
18
Chapter 4
N umeros seudoaleatorios
Problema de la generacion de claves grandes sucientemente aleatorias (por ejemplo para el cifrado
de Vernam)
Secuencias criptogracamente 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 especcos.
Fuentes no validas:
Bits de un CD o DVD.
Otras fuentes p ublicas de informacion.
Soluciones mas 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:
Generacion de claves y contrase nas.
Claves para criptosistemas en ujo
Vectores de inicializacion
Proteccion de contrase nas (salt).
Desafos en pruebas de conocimiento cero.
Valores aleatorios en rmas 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 mas 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 criptogracamente segura son
1. Periodo sucientemente grande.
2. Distribucion uniforme: los unos y ceros en cualquier muestra deben distribuirse aproximada-
mente al 50% .
3. Imprevisible: con una muestra de la secuencia debe ser imposible poder predecir el bit
siguiente.
4. Facil, rapido y barato: eciencia, 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 ujo.
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 ultima, desplazando a las anteriores
Dependiendo de la funcion utilizada se dividen en
NLFSR (Non-Lineal Feedback Shift Register), que usan una funcion no lineal.
LFSR (Lineal Feedback Shift Register), que usan una funcion lineal. Son sencillos y rapidos
y proporcionan un buen grado de aleatoriedad, por lo que son muy utilizados.
En un LFSR la funcion es del tipo
f(b
n
, . . . , b
1
) =
n
j=1
a
j
b
j
20
Pero como las operaciones de bits son en Z
2
, cada a
i
= 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 b
0
= 1010, la sucesion de bloques obtenidos es b
1
= 0101,
b
2
= 1011, b
3
= 0111, b
4
= 1110, b
5
= 1100, b
6
= 1001, b
7
= 0010, b
8
= 0101, b
9
= 1011, como
b
2
= b
9
el periodo de esta sucesion es 7.
4.2 Generadores de congruencias lineales (LCG)
x
i+1
= (a x
i
+b) mod m
Es frecuente elegir m de la forma 2
k
, as la operacion modulo consiste en poner los k bits mas
signicativos a 0, y no requiere divisiones (equivale a hacer desplazamientos)
x =
0
i=n1
b
i
2
i
=
k
i=n1
b
i
2
i
+
0
i=k1
b
i
2
i
=
0
i=k1
b
i
2
i
mod 2
k
El periodo de esta sucesion es m (maximo) si yo solo si se verican
1
1. b es primo con m.
2. Si p es primo y divide a m, p divide a a 1.
3. Si m es m ultiplo de 4, a 1 es m ultiplo de 4.
LCG y LFSR son los m as usados:
Biblioteca estandar 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)
x
0
impar.
x
i+1
= (2
16
+ 3) x
i
mod 2
31
(se normalizan en [0,1] dividiendo por 2
31
).
Alcanza RANDU el perodo maximo?
x
i+1
= (65539 x
i
+ 0) mod 2
31
1
Knuth, 1969
21
1. No. 0 no es primo con 2
31
.
2. Si. 2 es el unico primo que divide a 2
31
, y tambien divide a 65539 1.
3. No. 2
31
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):
L
s
=
x
n
= (x
n
, . . . , x
n+s1
) : n 0
y buscamos hiperplanos paralelos que contengan los vectores de L
s
. Si se encuentran es que
hay correlaciones.
Parece que todo esta bien, pero si giramos la representacion tridimensional ....
Figure 4.1: Todos los puntos en el mismo hiperplano.
Por que?
x
n+2
= (2
16
+ 3) x
n+1
= (2
16
+ 3)
2
x
n
= (2
32
+ 6 2
16
+ 9) x
n
= (6 2
16
+ 18 9) x
n
=
= (6 (2
16
+ 3) 9) x
n
= 6 (2
16
+ 3) x
n
9 x
n
= 6 x
n+1
9 x
n
Cada terna de valores (x
n
, x
n+1
, x
n+2
) esta en un plano, el z = 6y 9x (con mas precision, en
15 trozos de un plano, por trabajar en Z
2
31
Como 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 sucientemente 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 criptograco 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
sesion usadas para cifrar informacion . . .
4.3.3 Debian. 2008
Un error debido mas 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 repercusion y numerosos efectos colaterales en otros paquetes y distribu-
ciones . . .
4.4 Generadores tipo Fibonacci
x
n
= (x
nr
x
ns
) mod m
Estos generadores presentan varios inconvenientes
La formula generadora correlaciona x
n
, x
nr
y x
ns
, luego no son independientes!
No son criptogracamente seguros.
Uno de los mas famosos de este tipo es el generador sustractivo de Knuth:
1. Se inicializa m = 10
9
, s
1
= 1, s
0
(semilla) con 0 s
0
< m
2. s
2
, . . . , s
54
calculados como s
i+1
= s
i
s
i1
mod m.
3. Reordenamos: para k = 0, . . . , 54
x
k
= s
(34(k+1) mod 55)
Y ahora empezamos a generar n umeros, para k 55,
x
k
= x
k55
x
k24
mod m
El generador sustractivo de Knuth genera uniformemente valores entre 0 y m1 y es facil de
calcular: nunca se multiplica ni se divide, ni siquiera para hallar el valor modulo m; sin embargo,
la formula generadora correlaciona las terminos x
k
, x
k55
, x
k24
, 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 factorizacion)
1. Se eligen dos primos grandes p, q ambos congruentes con 3 modulo 4, con mcd((p1), (q
1)) peque no (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:
x
0
= s
2
mod n; x
i+1
= x
2
i
mod n i 0
En la practica se toman los bits menos signicativos de cada x
n
Se puede calcular directamente cualquier valor mediante
x
i
= x
2
i
mod (p1)(q1)
0
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 (criptogracamente 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:
s
1
= 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.
x
i
= E(k, E(k, D) s
i
)
s
i+1
= E(k, x
i
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 ujo
El objetivo consiste en, usando un buen generador seudoaleatorio, obtener una clave de periodo
sucientemente largo para aproximarnos a la seguridad de OTP.
Para ello podemos actuar de dos modos:
5.1 Modo sncrono.
La secuencia seudoaleatoria (ujo) se calcula independientemente del texto en claro y del texto
cifrado; solo depende de la clave.
Figure 5.1: Modo sncrono.
Aqu
F() es la funcion generadora de estado
s
i
es el estado en el paso i , s
0
es el estado inicial (que en muchos casos es la clave k).
G() es la funcion generadora de la sucesion aleatoria, que depende del estado s
i
.
25
m
i
y c
i
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 vera
modicado 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 ja de los bits anteriores del cifrado.
Donde k es la clave, m
i
y c
i
son la i-esima porcion del texto claro y cifrado respectivamente y w
es una funci
_
_
_
_
_
_
_
_
_
_
_
_
x
0
x
1
x
2
x
3
x
4
x
5
x
6
x
7
_
_
_
_
_
_
_
_
_
_
_
_
+
_
_
_
_
_
_
_
_
_
_
_
_
1
1
0
0
0
1
1
0
_
_
_
_
_
_
_
_
_
_
_
_
La funcion inversa sera la aplicacion de la inversa de la S-caja correspondiente a cada byte
de la matriz de estado.
2. ShiftRows Desplazamiento de las: Los bytes de cada la del estado se rotan de manera
cclica hacia la izquierda un n umero de lugares diferente para cada la.
La funcion inversa sera, obviamente, un desplazamiento de las las 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 - Calculo 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
com un, 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 solucion:
Die 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
solo 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 Z
p
.
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 articialmente peque no:
1. A y B eligen y publican un primo adecuado p = 71 y un generador g = 21 del grupo
multiplicativo deZ
71
.
2. A elige un secreto x = 46 y enva a B el mensaje g
x
mod p = 21
46
mod 71 = 9.
36
3. B elige un secreto y = 57 y enva a A el mensaje g
y
mod p = 21
57
mod 71 = 61.
4. B recibe g
x
= 9 y calcula la clave compartida como
K = (g
x
)
y
mod p = 9
57
mod 71 = 16.
5. A recibe g
y
y calcula la clave compartida como
K = (g
y
)
x
mod p = 61
46
mod 71 = 16.
Seguridad:
Si un atacante interceptara toda la comunicacion, llegara a conocer los valores de p, g, g
x
y
g
y
.
Para encontrar K necesita conocer uno de los valores x, y. Su dicultad es que para hallar
x tiene que calcular el logaritmo discreto en Z
p
de g
x
de base g, y este es un problema
intratable (analogamente para y).
Se podra aumentar la seguridad mediante el uso de un grupo sobre el que el PLD fuese
mas duro: por ejemplo, el grupo multiplicativo de un cuerpo nito o el grupo de una curva
elptica.
Es seguro ante ataques pasivos, pero se necesitaran mejoras para protegerse de ataques
activos:
Ataque de intercepcion 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 comunicacion es in-
terceptada por un tercero, este se puede hacer pasar por el emisor cara al destinatario y viceversa,
ya que no se dispone de ning un mecanismo para validar la identidad de los participantes en la
comunicacion. 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 modicando
el traco 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.
Autenticacion previa de las partes.
Autenticacion del contenido.
7.2 Autenticaci on e integridad
Necesidad de autenticacion:
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 dicultad de autenticacion y de integridad, en varios sentidos:
Autenticacion de la identidad del emisor del mensaje.
Autenticacion de la identidad del que recibe el mensaje.
Vericacion de la integridad del mensaje, etc.
Las soluciones vendran de una combinacion de las tecnicas estudiadas.
Este estudio nos llevara a los conceptos de funciones resumen, certicados, rma, 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 p ublica que cifra y otra privada que descifra.
Dos ejemplos:
1. El cartero el:
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, K
p
y K
P
, denominadas
clave privada y clave p ublica. Una de ellas se emplea para codicar, mientras que la otra se usa
39
para decodicar. Dependiendo de la aplicacion que le demos al algoritmo, la clave p ublica sera 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 nal de los a+?os 60 (7 a nos antes que DH).
Cliord 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 Die y Hellman).
Los servicios secretos no supieron valorar estos descubrimientos, pero los mantuvieron en secreto
y el merito fue para otros.
Whiteld Die y Martin Hellman publicaron el artculo New Directions in Cryptography en
1976.
Los autores arman que sera posible implementar criptosistemas de clave p ublica usando
esotericas funciones relacionadas con difciles problemas matematicos.
No hacen propuestas concretas.
Cuales son esas magicas funciones matematicas?
Funciones de un solo sentido:
En realidad son funciones biyectivas . . . de otra forma no se podra descifrar!
Lo importante es que para ser capaz de invertirlas hay que conocer cierta informacion: la
clave privada!.
Si no se conoce la clave privada es computacionalmente imposible invertir la funcion.
Quien conoce una funcion as?
Esta pregunta queda en pie tras el artculo de Die 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 p ublica.
Basado en el problema subset-sum:
Dada una lista de enteros positivos (a
1
, a
2
, . . . , a
n
) y un entero positivo s, encontrar, si existe,
una lista de enteros (x
1
, x
2
, . . . , x
n
) con x
i
0, 1, 1 i n tales que
n
i=1
x
i
a
i
= s
El problema es NP-completo y es llamado a menudo el problema de la mochila.
El caso de la mochila supercreciente:
Una mochila (b
1
, b
2
, . . . , b
n
) se dice que es supercreciente si b
i
i1
j=1
b
j
, 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
x
i
= 0
Si s b
i
entonces x
i
= 1, s = s b
i
9.1 MH: generacion 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
facil, la cual se puede solucionar en tiempo polinomial.
Cada usuario crea su clave p ublica y la correspondiente clave privada:
Crea una mochila supercreciente (b
1
, b
2
, . . . , b
n
)
Elige un modulo M con M > b
1
+b
2
+. . . +b
n
Elige un entero W, 1 W M 1 con mcd(W, M) = 1
Elige una permutacion de (1, 2, . . . , n)
Calcula a
i
= W b
(i)
mod M, para i = 1, . . . , n
41
La clave p ublica es (a
1
, a
2
, . . . , a
n
)
La clave privada es (, M, W, (b
1
, b
2
, . . . , b
n
)).
9.2 Cifrado y descifrado
B cifra un mensaje para A
1. Obtiene la clave p ublica de A: (a
1
, a
2
, . . . , a
n
)
2. Representa el mensaje m como una cadena binaria m
1
m
2
. . . m
n
.
3. Calcula el entero c = m
1
a
1
+m
2
a
2
+. . . +m
n
a
n
.
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 r
1
, r
2
, . . . , r
n
0, 1
tales que d = r
1
b
1
+r
2
b
2
+. . . r
n
b
n
.
3. Los bits del mensaje son m
i
= r
(i)
, i = 1, 2, . . . , n.
POR QU
E FUNCIONA EL DESCIFRADO?
La operacion que se realiza en el descifrado es:
d = W
1
c = W
1
n
i=1
m
i
a
i
=
n
i=1
m
i
b
(i)
(mod M)
Como
0 d < M, d =
n
i=1
m
i
b
(i)
mod M
La solucion del problema con la mochila supercreciente dara los bits del mensaje (tras la
aplicacion 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 unico sistema criptograco 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 paso a llamarse el problema RSA, basado en la factorizacion de enteros.
RSA se basa en la dicultad para factorizar grandes n umeros. Las claves p ublica y privada se
calculan a partir de un n umero que se obtiene como producto de dos primos grandes. El atacante
se enfrentara, si quiere recuperar un texto claro a partir del criptograma y la clave p ublica, a un
problema de factorizacion o tendra que resolver un logaritmo discreto
10.1 RSA: herramientas matematicas
Antes de seguir con el criptosistema RSA, necesitaremos unas herramientas matematicas
10.1.1 Inversos m odulo n
Cuando trabajamos modulo 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 Z
n
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 calculo de dicho inverso (en caso de que exista) se utiliza el algoritmo extendido de
Euclides.
Calculemos manualmente 17
1
mod 65:
(1) 65 = 3 17 + 14
(2) 17 = 1 14 + 3
(3) 14 = 4 3 + 2
(4) 3= 1 2 + 1
1= 3 - 1 2 =
= 3 - 1 (14 - 4 3) = - 14 + 5 3 =
=-14 + 5 (17 - 1 14) = 5 17 - 6 14 =
= 5 17 - 6 (65 - 3 17) = 23 17 - 6 65
As, la identidad de Bezout 1 = 23 17+(6) 65 leida modulo 65 nos da que 1 = 23 17 mod 65
10.1.2 Teorema de Euler
Un resultado basico para que funcione el descifrado es el llamado Teorema de Euler que fue primer-
amente enunciado y demostrado por Fermat para el caso particular en el que el modulo es primo
43
Peque no Teorema de Fermat: si p primo y x no nulo y menor que p, se verica
x
p1
= 1 mod p
El teorema de Euler generaliza el peque no teorema de Fermat para cualquier valor del modulo,
aunque siempre manteniendo la condicion de coprimalidad de x y p
Teorema de Euler: si x y p coprimos, se verica
x
(p)
= 1 mod p
Donde es la funcion de Euler, que mide el n umero de unidades de Z
n
, y cuya es
formula es
(n) = n (1
1
p
1
) (1
1
p
r
)
donde los p
i
son los factores primos de n, es decir n = p
a1
1
p
ar
r
.
10.1.3 Teorema Chino del Resto (TCR)
Este teorema nos determina la existencia de soluciones de un sistema de congruencias.
Si n
1
, . . . , n
k
son enteros primos entre s dos a dos, n = n
1
n
k
y a
1
, . . . , a
k
Z, se trata de
resolver el siguiente sistema de ecuaciones:
_
_
x = a
1
mod n
1
.
.
.
x = a
k
mod n
k
En tal caso el sistema tiene solucion unica mod n, y dicha solucion se halla de la siguiente
manera, en primer lugar se calculan c
i
=
n
ni
y d
i
= c
1
i
mod n
i
, i = 1, . . . , k; ahora las soluciones
son:
x = a
1
c
1
d
1
+. . . a
k
d
k
c
k
+ n, Z
10.1.4 Calculo de potencias enteras
Otra herramienta basica para el funcionamiento de RSA es la exponenciacion modular repetida de
n umeros (eventualmente grandes), as que es interesante disponer de un metodo que nos permita
calcular el valor de m
e
modn con un mnimo n umero de operaciones
La idea consiste en llegar al valor de m
e
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
=
_
_
_
m e = 1
(m
e
2
)
2
epar
m m
e1
eimpar
El seudocodigo 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; // division entera(desplazamiento)
44
t = t * t;
retorna s;
Este algoritmo se ejecuta en tiempo logartmico en funcion del valor del exponente e.
El calculo sin ordenador es un poco diferente. Ejemplo de calculo de 2
100
:
100 = 1100100
2
1C1C0C0C1C0C0 MCMC0C0CMC0C0 MCMCCCMCC
1
M
2
C
4
M
8
C
64
C
4096
C
16777216
M
33554432
C
. . .
. . .
C
1125899906842624
C
1267650600228229401496703205376
No son 100 multiplicaciones, sino solo 9 (el n umnero de operaciones a realizar esta acotado por
el doble del n umero de bits del exponente 1.
10.1.5 Construccion de primos grandes
Tambien sera 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 tama no deseado):
1 * * . . . * * 1
El primero y el ultimo bit se ponen a 1 y los bits intermedios se eligen al azar. La probabilidad
de que el n umero as construido sea primo es de 2/(k ln2)
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 = 2
s
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 = a
r
mod n
Si y = 1 mod n, retorna "probable primo"
j=1
Mientras j s 1, y y ,= 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/2
2k
, lo que lo hace muy able.
Para hacernos una idea de la abilidad, valga este cuadro:
Concepto Probabilidad
El gordo de Navidad 2
17
Un meteorito y un asteroide el mismo da 2
27
Te toca la primitiva y te mata un rayo el mismo da 2
56
Error en MR(n, 50) 2
100
45
Adicionalmente, es interesante que los primos utilizados sean fuertes, se dice que un primo p es
fuerte si verica:
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 p
0
= (s
t1
t
s1
) mod (s t)
Calcula p como el menor primo de la forma p = p
0
+a t s con a Z.
10.2 RSA: el problema
El problema matematico 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 modulo
n.
Hay que encontrar un entero m tal que m
e
= c (mod n), es decir, descifrar el mensaje cifrado
c, que corresponde al texto en claro m.
La factorizacion de enteros resuelve el problema RSA, puesto que si sabemos factorizar n = pq,
Calculamos = (p 1)(q 1)
Hallamos d = e
1
en Z
La solucion es m = c
d
mod n.
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
p
2
+ ((n) n 1) p +n = 0
No esta 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 factorizacion
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.
4. Calcula el unico entero d, 1 < d < tal que e d = 1 mod.
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 = m
e
mod n.
(d) Enva el texto cifrado c a A.
Descifrado A descifra el mensaje de B
Usa su clave privada para recuperar m = c
d
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, m
p1
= 1 (mod p). Elevando ambos
miembros a k(q 1) y multiplicando por m queda
m
ed
= m
1+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 verica
Por un argumento similar m
ed
= m (mod q) y como p y q son primos, de aqu se sigue que
m
ed
= m (mod n)
Para simplicar el descifrado, podemos utilizar el Teorema Chino del Resto; la idea consiste en
trasladar las operaciones de Z
n
a Z
p
Z
q
, y resolver el sistema
_
x = c
d
mod p
x = c
d
mod q
que tiene solucion unica modulo n, as:
47
1. a
p
= q
p1
mod n, a
q
= p
q1
mod n
2. d
p
= d mod (p 1), d
q
= d mod (q 1)
3. c
p
= c mod p, c
q
= c mod q
4. m = a
p
(c
dp
p
mod p) +a
q
(c
dq
q
mod q) mod n
Se hacen mas 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 estimo en 1977 que factorizar un n umero 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 factorizacion (propuesto por los inventores de RSA en 1977) aparecio en la columna
de Martin Gardner Mathematical Games de la revista Scientic American. Fue resuelto en 1994
por un gran proyecto computacional conjunto coordinado por Derek Atkins, Michael Gra, Ar-
jen Lenstra y Paul Leyland. Mas de 600 voluntarios aportaron tiempo de calculo de unas 1600
maquinas (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 mips
1
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 Matematicas
avanzan cada a no, los tama nos recomendados de claves:
A no 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.
Proteccion: combinar RSA con alg un esquema de relleno (como por ejemplo estandares como
PKCS).
10.6.2 Ataque de primos cercanos
Fuerza bruta
Si p y q son primos cercanos, p esta cerca de
_
(n); as sera viable un ataque de fuerza bruta
dividiendo n entre impares menores que
_
(n).
Factorizacion de Fermat
Si llamamos x =
p+q
2
, y =
pq
2
, entonces x
2
n = y
2
. Como x
2
> n, la idea es probar todos
los x >
_
(n) hasta dar con uno que x
2
n sea cuadrado perfecto. Cuanto mas cercanos
sean p y q, mas peque no 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 contesto rapidamente:
2027651281 = 44021 46061
El metodo:
n = 45029, 45 . . .
x
x
2
n 2027651281 =
45030 222, 75 . . . 45041
2
1020
2
=
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 = e
1
mod n:
Llamando
= mcm(p 1, q 1)
d
= e
1
mod
=
n d
|
Habra claves d
k
que descifran (ademas de d):
d
k
= d
+k , k = 0, 1, . . . ,
Ejemplo:
Clave p ublica (n, e) = (3053 = 71
43, 157).
Clave privada d = 157
1
mod (70 42) = 1573.
= mcm(70, 42) = 210.
d
= 157
1
mod 210 = 103.
Claves que descifran:
103 +k 210, k = 0, . . .
3053 103
210
= 14
Esto es: 103, 313, 523, 733, 943, 1153, 1363, 1573, 1783, 1993, 2203, 2413, 2623, 2833, 3042.
10.7 Sobre la eleccion de claves
Algunos criterios para una buena clave:
p y q deben ser sucientemente 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-
zacion.
Por lo delicado de la buena eleccion del modulo, es un error bastante frecuente.
El problema es que el conocimiento de un simple par (e, d) puede revelar la factorizacion 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 condencialidad 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.
Autenticacion del emisor y/o del receptor
No suplantacion.
No repudio.
Para implementar mecanismos que permitan estos servicios empezaremos por una herramienta
fundamental: la rma digital.
Firmar un documento consiste en a nadirle cierta informacion que valide su autora. No debe
confundirse la rma electronica con la rma digital; la rma electronica es un concepto jurdico,
equivalente electronico al de la rma manuscrita, donde una persona acepta el contenido de un
mensaje electronico a traves de cualquier medio electronico valido. Ejemplos de rma electronica
son
rmar con un lapiz electronico al usar una tarjeta de credito o debito en una tienda.
marcar una casilla en una computadora, a maquina o aplicada con el raton o con el dedo en
una pantalla tactil.
usar una rma digital.
usuario y contrase na.
usar una tarjeta de coordenadas.
Una rma electronica crea un historial de auditora que incluye la vericacion de quien enva
el documento rmado y un sello con la fecha y hora.
Seg un la Ley 59/2003, de rma electronica, en Espa na, la rma electronica es el conjunto
de datos en forma electronica, consignados junto a otros o asociados con ellos, que pueden ser
utilizados como medio de identicacion del rmante.
No vamos a estudiar la rma electronica, sino la rma digital, que es un mecanismo criptograco
que, dado un mensaje (cifrado o no), permite (al menos):
Determinar la entidad originadora del mensaje (autenticacion de origen y no repudio).
51
Conrmar que el mensaje no ha sido alterado desde que fue rmado (integridad).
Para que esto se pueda llevar a cabo necesitamos que la rma digital cumpla una serie de
requisitos:
1.
Unica: solo puede ser generada por el rmante.
2. No falsicable: para falsicarla hay que resolver problemas computacionalmente intratables.
3. Dependiente del documento.
4. Vericable por terceros.
5. Innegable: el rmante no debe poder negar su rma.
6. Viable: deben existir algoritmos ecientes de generacion y vericacion.
Con un buen criptosistema de clave p ublica podemos dise nar de forma sencilla mecanismos de
rma digital.
11.1 Firma RSA
Holmes tiene (n, e, d) como clave RSA (siendo d secreto) y rma un documento D de la siguiente
forma, calcula f = RSA(n, d, D) y publica D y f:
Watson accede al documento rmado (D, f) y lo comprueba calculando RSA(n, e, f) y com-
parandolo con D, si el resultado es igual, la rma es correcta y en caso contrario es falsa.
La comprobacion de la rma 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 basica: el resumen de un documento D debe servir como una representacion compacta de D
y debe poder usarse como si el documento estuviera identicado de forma unica por su resumen.
Esto se traduce en varias condiciones basicas que debe cumplir una funcion resumen:
1) Facilidad y velocidad de calculo. h(D), el resumen de D, debe ser muy facil y rapido de
calcular.
2) Resumen de longitud ja. El tama no del resumen h(D) debe ser jo (denido por la funcion),
sin depender del tama no de D.
3) Difusion. 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, D
). Distinguiremos entre
resistencia debil y fuerte a las colisiones.
52
5a) Resistencia debil. Conocido D, debe ser computacionalmente imposible encontrar D
).
5b) Resistencia fuerte. Debe ser computacionalmente imposible encontrar D y D
tales que
h(D) = h(D
).
Cuantos intentos son necesarios para encontrar una colision del segundo tipo? Menos de los
que uno esperara, debido a la llamada paradoja del cumplea nos:
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
365
364
365
363
365
365 n + 1
365
Teniendo esto en cuenta, si n es el tama no del resumen y evaluamos la funcion h sobre 2
n/2
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 criptogracos. http://www.crc-online.com.ar/
MD5 (R. Rivest, 1992) Sucesora de MD4, con resumen de 128 bits. Su seguridad esta 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), adicion
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
criptogracas 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:
Generacion de claves para criptosistemas simetricos.
Checksum y vericaciones de integridad (sin adversarios).
Generadores seudoaleatorios.
53
Tablas hash de b usqueda (colecciones, bases de datos, etc.)
Validacion y almacenamiento de contrase nas.
Firma electronica.
11.3 Firma eciente usando res umenes
Holmes tiene (n, e, d) como clave RSA y quiere rmar un documento m (cifrado o no), para ello
1. Elige una funcion resumen h y calcula el resumen r = h(m).
2. Calcula y publica cifrado del resumen con la clave privada:
f = RSA
(n,d)
(r) = r
d
mod n
3. Se adjunta la rma al documento.
4. Solo puede rmar el propietario de la clave privada.
Watson verica de la rma:
1. Se calcula el resumen r = h(m).
2. La rma es valida si
RSA
(n,e)
(f) = f
e
mod n = r
3. Si los resultados no coinciden: el documento ha sido alterado o el rmante no es el legal.
4. Cualquiera puede vericar la rma ya que para ello se usa la clave p ublica.
Veamos un ejemplo articialmente peque no:
Firmamos el mensaje m = esto es muy importante
Como funcion resumen usamos h = CRC32:
h(m) = F0EBDC78 = 4041989240
Parametros RSA:
(n = 10009202107, e = 123456789)
d = 4295292925
Firma:
4041989240
4295292925
mod 10009202107 = 14275210
Vericacion de la rma:
14275210
123456789
mod 10009202107 = 4041989240 = h(m)
54
11.4 Un ataque a la rma 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 rme un contrato fraudulento, y para ello:
1. Prepara un contrato bueno C y otro malo C
.
2. Modica C y C
).
3. Enva C a Watson para que lo rme. Watson esta de acuerdo con C, lo rma (usando h) y
devuelve (C, f
W
(C)).
4. Moriarty sustituye (C, f
W
(C)) por (C
, f
W
(C)).
La proteccion 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
) es muy peque na si
la funcion resumen h genera res umenes sucientemente grandes.
55
Chapter 12
ElGamal
El procedimiento de cifrado/descifrado ElGamal se reere a un esquema de cifrado basado en
problemas matematicos de logaritmos discretos. Es un algoritmo de criptografa asimetrica basado
en la idea de Die-Hellman. El algoritmo de ElGamal puede ser utilizado tanto para generar
rmas 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 criptogracos. 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 dicultad de calcular loga-
ritmos discretos en un grupo cclico. El criptosistema de Elgamal ha demostrado ser muy exible
y algunos de los sistemas mas modernos se inspiran en el.
12.1 El problema del logaritmo discreto
Consiste en lo siguiente: un grupo (G, ) de n elementos es 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
nitos grandes (como por ejemplo en el grupo multiplicativo de Z
p
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 = p
e1
1
p
e2
2
p
e
k
k
.
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 Z
p
.
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 m
1
m
2
en el intervalo [0, p 1].
3. Para cada m
i
elige al azar un entero k
i
, 1 < k
i
p 2.
4. Calcula
i
= g
ki
mod p y
i
= m
i
ki
mod p.
5. Enva el texto cifrado c
i
= (
i
,
i
) a A.
Este proceso de descifrado nos devuelve el mensaje original, puesto que, por el Teorema de
Fermat, se tiene que en Z
p
,
p1
= 1
Con lo que
p1a
=
p1
a
= g
ak
.
Y por tanto:
a
= g
ak
m g
ak
= m
12.4 Eciencia 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 dara
resultados diferentes, aunque esto es transparente para el descifrado.
Es muy exible y puede adaptarse al uso de otro grupo diferente de Z
p
.
La seguridad de ElGamal se basa en la dicultad 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 m
1
y m
2
, dando lugar a los cifrados (
1
,
1
) y (
2
,
2
), entonces
1
/
2
= m
1
/m
2
y el conocimiento de uno de los mensajes revelara el otro.
57
12.5 Firma digital ElGamal
El esquema de rma ElGamal permite que un vericador pueda conrmar la autenticidad de un
mensaje m enviado por un emisor sobre un canal de comunicacion inseguro.
Los parametros utilizados por el esquema ElGamal son na funcion de resumen h resistente 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 Z
p
.
A rma 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 rma del mensaje m es el par (r, s).
B verica la rma:
Calcula
1
=
r
r
s
mod p.
Calcula
2
= g
h(m)
mod p.
La rma es valida si
1
=
2
.
Por que funciona la rma:
Si la rma (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
= r
s
(g
a
)
r
= r
s
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 rma un
mensaje m de resumen h(m) = 1463.
A selecciona k = 1529 y calcula
r = 21529 mod 2357 = 1490
s = 1529
1
(1463 1751 1490) mod 2356 = 1777.
La rma es (1490, 1777).
Vericacion:
B verica la rma calculando
1
= 1185
1490
1490
1777
mod 2357 = 1072
2
= 2
1463
mod 2347 = 1072.
58
Chapter 13
Criptografa de curvas elpticas
Con un grupo cclico adecuado los calculos son mas ecientes y las claves mas peque nas, mientras
que el calculo del logaritmo discreto sigue siendo computacionalmente intratable.
No se trata de un nuevo criptosistema, sino de un nuevo enfoque.
Se trata de usar funciones de un solo sentido en un contexto nuevo, usando una aritmetica que
hace los problemas mas 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
ademas 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
= x
3
+ax +b con a, b n umeros reales cumpliendo 4a
3
+ 27b
2
,= 0.
Figure 13.1: Curva elptica.
59
13.2 El grupo
Una curva elptica sobre un cuerpo nito esta formada por un conjunto nito de puntos.
La curva es
E
a,b
= (x, y) R
2
/ y
2
= x
3
+ax +b
El grupo es G = G
a,b
= E
a,b
, donde es el llamado punto del innito y es el elemento
neutro del grupo: para todo punto P G
P += P
La operacion del grupo (dos reglas basicas)
B1 Todas las rectas verticales pasan por el punto del innito .
B2 Si P, Q, R G estan alineados, entonces P +Q+R = .
Figure 13.2: Curva elptica.
Aritmetica geometrica:
El opuesto (negativo) de un punto P = (x, y) es su simetrico respecto al eje x : P = (x, y).
Para sumar dos puntos P, Q (con P ,= 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 = .
Aritmetica algebraica:
1.- Suma de puntos distintos y no opuestos. Si P = (x
p
, y
p
) y Q = (x
q
, y
q
) e y
p
,= y
q
,
calculamos = (y
q
y
p
)/(x
q
x
p
) y entonces P +Q = R = (x
r
, y
r
) con
x
r
=
2
x
p
x
q
, y
r
= (x
p
x
r
) y
p
60
2.- Duplicacion de un punto distinto del (x, 0). Si y
p
,= 0, entonces calculamos s = (3x
2
p
+a)/2y
p
y entonces 2P = R = (x
r
, y
r
) siendo
x
r
= s
2
2x
p
, y
r
= y
p
+s(x
p
x
r
)
Mutiplicacion rapida de puntos
Se puede realizar la multiplicacion rapida de puntos haciendo sumas y doblados de puntos con
un n umero 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 teoricos 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 n
1
, n
2
con n
2
[n
1
y n
2
[p 1 tales que G Z
n1
Z
n2
(si n
1
= 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
k P =
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 denida sobre F
23
por la ecuacion y
2
= x
3
+ 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 Z
p
, y
2
= x
3
+ax+b con 4a
3
+27b
2
,= 0 (mod p).
2. Elige un punto P
g
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 = dP
g
.
4. La clave p ublica es (p, a, b, P
g
, n, B).
61
5. La clave privada es d.
Cifrado
B cifra un mensaje para A. Representa el mensaje como un conjunto de enteros m
1
, m
2
, . . .
cada uno en el intervalo [0, n 1] y cifra cada m = m
i
.
1. Elige al azar un entero k, 1 k n 2.
2. Calcula M = k P
g
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 P
g
= k B = (
1
,
2
).
2. Obtiene el mensaje en claro
m =
1
1
en Z
p
13.4 Algunos estandares
El Gamal elptico no es un estandar, aunque hay intentos, como:
Estandar P1363 de la IEEE de criptografa de clave p ublica: Standard Specications For
Public-Key Cryptography. http : //grouper.ieee.org/groups/1363/
14.2 - Grupo de evaluacion criptograca Europeo NESSIE: New European Schemes for Sig-
nature, Integrity and Encryption. http : //www.cryptonessie.org/
14.3 - Grupo de evaluacion criptograca Japones CRYPTREC: Cryptography Research and
Evaluation Committee http : //www.ipa.go.jp/security/enc/CRY PTREC/index e.html
14.4 - Estandar SECG: The Standards for Ecient Cryptography Group (SECG) http :
//www.secg.org/
14.5 - Estandar NIST: The NIST Computer Security Division http : //csrc.nist.gov/
El criptosistema basado en curvas 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 me nor tama no 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.
Mas rapidos que los anteriores.
Menores requerimientos de memoria que los anteriores.
Ideales para dispositivos portatiles como PDAs, smartcards, moviles, etc.
Algunos ejemplos de protocolos que usan CCE son EC Digital Signature Algorithm (ECDSA),
o el intercambio de llaves EC Die-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. Condencialidad
Criptografa simetrica
Criptografa de clave p ublica
2. Autenticacion
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.
Muy segura.
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.
Autenticacion 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. Certicados digitales
Un certicado digital es un documento que vincula claves y otros datos con un usuario y conrma
su identidad mediante la rma digital de una entidad de conanza.
Los certicados 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 estandar para certicados digitales es el X.509, que responde a la siguiente estructura:
1. Certicado
1.1 Datos de generacion.
1.1.1. Version.
1.1.2. N umero 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 p ublica.
1.3 Datos opcionales.
1.3.1. Id. unico del emisor.
1.3.2. Id. unico del sujeto.
1.3.3. Extensiones (proposito, etc.)
2. Algoritmo usado para rmar el certicado
3. Firma digital del certicado.
Una forma de poder conar en el certicado digital de un interlocutor al que no conocemos
es que el certicado este avalado por una tercera parte en la que s conamos (autoridad de
certicacion).
Esa tercera parte (TTP, Trusted Third Party) avalara con su rma digital que el certicado es
de ar.
Cualquiera puede emitir un certicado: existen utilidades como makecert.exe que los generan.
Pero un certicado sirve para poco si no lo avala una entidad de conanza: la autoridad de
certicacion (AC).
Entre las AC internacionales podemos citar: VeriSign, Thawte, y entre las espa nolas, el Minis-
terio del Interior y la Fabrica Nacional de Moneda y Timbre.
Las AC se organizan en jerarquas o en anillos de conanza.
La gestion de las claves de los certicados 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 certicado y la AC la almacena.
La clave privada se almacena localmente y nunca se transmite a la AC.
La integridad del certicado depende de que la clave privada sea gestionada de forma adecuada
por el usuario.
Cuando se genera (o se instala un certicado 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 certicado 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: codicado en CER (a veces varios).
.DER: codicado en DER.
.PEM: codicado en Base64
.P7B/P7C: PKCS 7.
.PFX/P12: PKCS 12, puede contener certicados p ublicos y claves privadas (protegidas con
contrase na).
En algunos sistemas se usan varios certicados. Por ejemplo, en el DNI electronico hay dos:
uno para cifrar y otro para la rma. El objetivo es disminuir el riesgo de ciertos ataques.
14.3 C. Autenticaci on
La autenticacion puede llevarse a cabo mediante certicados 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 (C
H
, f
H
(k)) compuesto por su certicado y la rma de la clave k. Seguida-
mente el servidor valida el certicado C
H
con la autoridad certicadora AC y verica la rma
f
H
(k) con el certicado C
H
.
2. Autenticacion del servidor. El usuario proporciona una clave k aleatoria al servidor S, quien
le devuelve un par (C
S
, f
S
(k)) compuesto por su certicado y la rma de la clave k. Seguida-
mente el usuario valida el certicado C
S
con la autoridad certicadora AC y verica la rma
f
S
(k) con el certicado C
S
.
En ning un momento se transmiten las claves privadas, solo documentos rmados 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 conanza basado en Terceras Partes de Conanza (TTP) .
Las PKI estan compuestas por terceras partes en los que todos los usuarios de la infraestructura
confan:
67
Autoridad de Certicacion
Autoridad de Registro
Autoridades de Fechado Digital, etc.
Hemos llegado muy lejos, a un faltan mecanismos de seguridad, como
Deteccion de intrusos
Comparticion de secretos
Pruebas de conocimiento cero
. . .
68