Tema 2
Tema 2
Tema 2
2.1 Introduccin
Segn el diccionario de la R. A. E., la palabra criptografa se define como el Arte de escribir
mensajes con una clave secreta o de modo enigmtico". Esta definicin es un poco desafortunada
para definir lo que hoy en da se entiende por criptografa. En primer lugar, no se trata de un arte sino
de una ciencia, los sistemas actuales usan ms de una clave, no todos los sistemas utilizan claves
secretas (los sistemas de clave pblica utilizan dos: una privada o secreta y otra pblica), y por ltimo
la representacin final de los mensajes cifrados es binaria que aunque se trata de una representacin
enigmtica para los seres humanos, no lo es para los computadores (pues es su lenguaje natural).
As pues, es necesario dar una definicin ms adecuada del concepto de criptografa (Lucena, 2002;
Schneier, 1996). Una posible definicin es la siguiente:
Rama de las Matemticas, y en la actualidad de la Informtica y la Telemtica, que hace
uso de mtodos y tcnicas matemticas con el objetivo principal de cifrar un mensaje o
archivo por medio de un algoritmo, usando una o ms claves Esto da lugar a los
criptosistemas que permiten asegurar cuatro aspectos fundamentales de la seguridad
informtica: la confidencialidad, integridad, disponibilidad y no repudio de emisor y
receptor.
Clave
M
Texto
en claro
Cifrado
Ek
Clave
Medio de
Transmisin
Mensaje cifrado
Descifrado
Dk
M
Texto
en claro
El espacio de mensajes M representa el conjunto de todos los posibles mensajes sin cifrar (lo
que se denomina texto en claro, plaintext) que se pueden transmitir, es decir, M = {m1, m2, ...,
m|M|}. En s mismo, cualquier mensaje est construido en base a una coleccin fija de
smbolos o alfabeto (que depende de la representacin utilizada, por ejemplo, ceros y unos
en el caso de archivos binarios, cdigos ASCII para un archivo de texto, etc.). Slo sern
vlidos algunos de los mensajes del conjunto M, aquellos que tengan sentido de acuerdo con
las reglas de interpretacin de la aplicacin especfica considerada.
El espacio de claves K contiene todas las posibles claves que pueden utilizarse en el
criptosistema, es decir, K = {k1, k2, ..., k|K|}. Si el espacio de claves K fuera tan grande como el
espacio de mensajes M, es decir, si |M| |K|, se podra obtener un criptosistema perfecto. En
la prctica, es imposible mantener un espacio de claves tan grande como el espacio de
mensajes, por lo que puede considerarse que |M| >> |K|.
Una vez elegida una clave k del espacio de claves K, cualquier funcin que, basndose en
dicha clave, permiten transformar un elemento de M (un mensaje de texto en claro) en un
elemento de C (un mensaje cifrado) se denomina transformacin de cifrado, Ek. Por lo
1
Las transformaciones inversas, es decir, cualquier aplicacin que para una clave k K, sobre
un elemento de C (un mensaje cifrado) devuelve un elemento de M (un mensaje en texto
claro), se denominan transformaciones de descifrado, Dk. Por lo general, la transformacin Dk
es la operacin inversa de Ek, aunque tambin es posible que ambas transformaciones
coincidan, pero se aplique la transformacin de descifrado empleando una clave k, que sea
la inversa (bajo determinadas condiciones) de la clave k utilizada en el proceso de cifrado.
Dado que en la mayora de criptosistemas, los espacios de mensajes y de criptogramas son
de igual magnitud, es posible que existan claves para las cuales la transformacin de cifrado
sobre un mensaje genere el mismo mensaje (es decir, que Ek(m) = m) o que con el cifrado de
un mensaje ya cifrado se obtenga el mensaje original (es decir, Ek (Ek (m)) = m). A estas
claves se las denomina claves dbiles (weak keys).
Es aconsejable que los criptosistemas cumplan adems una serie de caractersticas adicionales:
Existen dos criterios principales a la hora de clasificar los sistemas de cifrado. Por un lado, y segn el
tratamiento que de los mensajes a cifrar hacen los algoritmos se habla de:
Mtodos de cifrado en flujo. Estos mtodos se caracterizan por aplicar el algoritmo de cifrado
a un elemento de informacin (carcter, bit) mediante un flujo de clave siendo sta (en teora)
aleatoria y mayor que el mensaje. Las ventajas de este tipo de mtodos son: la alta velocidad
de cifra y que es resistente a los errores (ya que cada elemento se cifra independientemente
del resto). Por el contrario, presenta como deficiencias, la baja difusin de los elementos en el
criptograma y que es vulnerable a la modificacin de elementos por separado. Entre los
algoritmos de esta categora destaca el algoritmo A5 empleado en telefona mvil.
Clave
Texto en
claro
Algoritmo
de cifrado
Texto
cifrado
Algoritmo de
descifrado
Texto en
claro
Criptosistemas simtricos o de clave secreta (vase Figura 4). Son aquellos que emplean la
misma clave k tanto para cifrar como para descifrar. Presentan el inconveniente de que para
ser empleados, el emisor y el receptor deben de conocer la clave k, lo cual plantea el
problema de cmo transmitir tal clave sin comprometerla (es decir, cmo se distribuyen las
claves). Por el contrario, son mucho ms rpidos que los de clave pblica (introducidos a
continuacin) y resultan apropiados para el cifrado de grandes volmenes de datos.
Algoritmos de cifrado simtricos son DES, IDEA, 3DES, AES.
Criptosistemas asimtricos o de clave pblica (vase Figura 5). Este tipo de criptosistemas
emplean un par de claves kP, kS. La clave kS se conoce como clave privada y la clave kP
como clave pblica. Una de ellas sirve para la transformacin de cifrado E y la otra para la
transformacin D de descifrado, que en este tipo de algoritmos coinciden. En muchos casos
son intercambiables, esto es, si se utiliza una para cifrar la otra sirve para descifrar y
viceversa. Estos criptosistemas deben cumplir adems, que el conocimiento de la clave
pblica kP no permite calcular la clave privada kS. Ofrecen un abanico superior de
posibilidades, pudiendo emplearse para establecer comunicaciones seguras por canales
inseguros (puesto que nicamente viaja por el canal la clave pblica, que slo sirve para
cifrar), o para llevar a cabo autenticaciones. Los algoritmos RSA, Diffie-Hellman pertenecen a
esta clase de algoritmos. En la prctica, se emplea una combinacin de estos dos tipos de
criptosistemas, de forma que los mensajes se cifran mediante un algoritmo de clave secreta
(del tipo 3DES o IDEA, que son ms rpidos que los algoritmos asimtricos) y la clave
empleada por estos se transmite mediante criptografa asimtrica.
Clave
pblica
de B
Clave
privada
de B
Texto
en claro
Usuario A
Algoritmo
de cifrado
Texto
cifrado
Algoritmo de
descifrado
Texto
en claro
Usuario B
La teora de la informacin, introducida por Shannon (1949) trata de medir la cantidad de informacin
que contiene un mensaje a travs del nmero medio de bits necesario para codificar todos los
posibles mensajes con un codificador ptimo. La cantidad de informacin que nos aporta de un
suceso est relacionada con la probabilidad de ocurrencia del mismo, de forma que se considera que
un suceso aporta ms informacin (o reduce ms nuestra incertidumbre) cuanto ms improbable sea
la ocurrencia del mismo. Shannon, model la cantidad de informacin que aporta un suceso con una
probabilidad de ocurrencia pi mediante la expresin log2 pi, y defini que la unidad de informacin
fuera el bit.
A partir del concepto de cantidad de informacin de un suceso, se define la entropa (o incertidumbre)
asociada a una variable aleatoria X (o fenmeno que puede uno de entre varios estados o sucesos
posibles), denotada por H(X), como la cantidad de informacin que aporta cada suceso ponderada
por la probabilidad de ocurrencia del mismo. Matemticamente:
H(X ) =
p( xi ) log 2 p( xi )
i =1
La entropa se caracteriza por ser siempre no negativa y slo se anula, si y slo si, un estado de la
variable tiene probabilidad 1 y el resto 0. Adems, la entropa es mxima, mayor incertidumbre del
mensaje, cuando todos los valores posibles de la variable X son equiprobables.
Cuando se conoce una segunda variable Y que influye sobre X, es posible que Y nos aporte
informacin adicional sobre la variable inters. En este caso es interesante conocer la entropa de la
variable X suponiendo que conocemos una informacin Y. A esta cantidad se la conoce como
entropa condicionada H(X | Y) y se define como:
n
H ( X | Y ) = P ( x i ) H ( x i | y j ) = P ( x i , y j ) = log 2 ( P ( x i | y j )
i =1
i =1 j =1
Una propiedad interesante de la entropa condicionada establece que conocer algo sobre la variable
Y puede ayudar a saber ms sobre la variable X, pero en ningn caso har aumentar la
incertidumbre. A partir de la nociones de entropa y entropa condicional se define la cantidad de
informacin que Y aporta sobre X, que se denota como I(Y, X), a la diferencia de entropas, es decir,
I(Y, X) = H(X) H(X | Y). Es decir, Shannon estableci que la cantidad de informacin que aporta el
hecho de conocer Y al medir la incertidumbre sobre Y es igual a la disminucin de la entropa que
este conocimiento conlleva.
Si se considera la nocin de entropa para evaluar la fortaleza de los criptosistemas se tienen los
siguientes resultados. En primer lugar, se demuestra tericamente cuando un criptosistema es
totalmente seguro. Desde un punto de vista terico, un criptosistema es seguro si la cantidad de
informacin que aporta el hecho de conocer el mensaje cifrado c sobre la entropa del texto en claro
m vale cero, es decir, si I(C, M) = 0, o lo que es lo mismo, si H(M) = H(M | C). Esta relacin establece
que el conocimiento de un criptograma no aporta ninguna informacin sobre el mensaje en texto claro
que representa. Se puede demostrar que, para que un sistema sea seguro segn el criterio de
Shannon, la cardinalidad del espacio de claves ha de ser, al menos, igual que la del espacio de
mensajes, lo cual hace inviable disponer de criptosistemas totalmente seguros en la prctica.
Tambin la nocin de entropa sirve para definir otros conceptos tiles desde el punto de vista de los
criptosistemas:
Por ltimo, mencionar que Shannon propuso dos tcnicas bsicas para lograr un mayor secreto en
las operaciones de cifra:
Confusin. Trata de ocultar la relacin entre el texto en claro y el texto cifrado. Se debe
considerar que esta relacin existe y se da a partir de la clave k empleada (si no existiese
dicha relacin, jams se podran descifrar los mensajes). El mecanismo ms simple de
confusin es la sustitucin.
Difusin. Diluye la redundancia del texto en claro repartindola a lo largo de todo el texto
cifrado. El mecanismo ms elemental para llevar a cabo una difusin es la transposicin, que
consiste en cambiar de sitio elementos individuales del texto en claro.