You are on page 1of 6

2 Fundamentos de la Criptologa

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

Figura 3: Esquema genrico de un criptosistema.


Surge as la nocin de criptosistema, cuyo esquema bsico se representa en la Figura 3, y que
consta de cinco elementos distintos:

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 criptogramas C representa el conjunto de todos los posibles mensajes cifrados.


Normalmente, el alfabeto empleado para representar los criptogramas es el mismo que el
utilizado para los mensajes en claro, por lo que la dimensin del espacio de criptogramas es
el mismo que el espacio de mensajes M (si se consideran todos los mensajes de texto en
claro, con o sin sentido).

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

Curso Avances en Seguridad


general, esta transformacin viene dada por un algoritmo o procedimiento y debe asumirse
que dicho algoritmo es siempre de dominio pblico, por lo que habitualmente su cdigo fuente
estar disponible.

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:

El algoritmo de cifrado/descifrado debe ser rpido y fiable.


No debe existir un retardo significativo debido al proceso de cifrado o descifrado.
La seguridad del sistema deber residir slo en el secreto de una clave y no de las funciones
de transformacin.
La fortaleza del sistema se entender como el coste computacional asociado al proceso de
romper la cifra o encontrar la clave secreta.

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 bloque. En estos sistemas, el mensaje original se trocea en bloques


del mismo tamao sobre los que se aplica el mismo algoritmo de cifrado, sucesivas veces, y
empleando la misma clave. El cifrado en bloque presenta ventajas como la alta difusin de los
elementos en el criptograma o que es fcilmente detectable la insercin de bloques falsos.
Como principales desventajas destacan, la baja velocidad de cifrado (con respecto a los
mtodos de cifrado en flujo) al tener que leer el bloque y que un error en el cifrado de un
elemento de informacin se propagar a todo el bloque. Algoritmos de esta clase son, por
ejemplo, DES, IDEA, RSA.

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

Figura 4: Esquema general de un algoritmo de cifrado de clave secreta.


En segundo lugar, y de acuerdo con el uso de las claves que utilizan los algoritmos, se habla de:

Curso Avances en Seguridad

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

Figura 5: Esquema general de un algoritmo de cifrado de clave secreta.


Por ltimo, y para finalizar este apartado, conviene introducir la nocin de criptoanlisis que consiste,
bsicamente, en el conjunto de tcnicas y procedimientos encaminados a comprometer la seguridad
de un criptosistema. Esto se puede hacer descifrando un mensaje sin conocer la clave, o bien
obteniendo a partir de uno o mas criptogramas la clave que ha sido empleada en el proceso de
cifrado. No se considera criptoanlisis el descubrimiento de un algoritmo secreto de cifrado. De
hecho, ste es un principio estable de la criptografa (principio de Kerckhoffs, 1883): La seguridad de
un criptosistema no debe depender de mantener secreto el algoritmo. La seguridad depende slo de
mantener secreta la clave.
En general el criptoanlisis se suele llevar a cabo estudiando grandes cantidades de pares mensajecriptograma generados con la misma clave. Por ejemplo, un tipo de anlisis es el de texto en claro
escogido (choosen plain text), parte de que conocemos una serie de pares de textos en claro y sus
criptogramas correspondientes. Esta situacin se suele dar cuando se tiene acceso al dispositivo de
cifrado y ste permite efectuar operaciones, si bien no permite leer su clave (como es el caso de la
telefona mvil).
Tambin se puede examinar exhaustivamente todo el espacio de claves K (ataques por fuerza bruta),
para lo cual se aplica cada clave a un mensaje cifrado y se observan las salidas que tienen sentido
como texto en claro.
Un par de mtodos de criptoanlisis que han dado interesantes resultados son el anlisis diferencial
(Biham y Shamir, 1991a, 1993) y el anlisis lineal (Matsui, 1993). El primero de ellos, partiendo de
3

Curso Avances en Seguridad


pares de mensajes con diferencias mnimas, estudia las variaciones que existen entre los mensajes
cifrados correspondientes, tratando de identificar patrones comunes. El segundo emplea operaciones
XOR entre algunos bits del texto en claro y algunos bits del texto cifrado, obteniendo finalmente un
nico bit. Si se realiza esta operacin con muchos pares de texto en claro-texto cifrado, se puede
obtener una probabilidad p para el bit calculado. Si la probabilidad p est suficientemente sesgada
(no se aproxima a 1/2 ), se tendr la posibilidad de recuperar la clave.
Otro tipo de anlisis, esta vez para los algoritmos asimtricos, consiste en tratar de deducir la llave
privada a partir de la pblica. Suelen ser tcnicas analticas que, bsicamente, intentan resolver los
problemas de elevado coste computacional en los que se apoyan estos criptosistemas: factorizacin,
logaritmos discretos, etc.
Existen sistemas idealmente seguros, capaces de resistir cualquier ataque, pero en la prctica
carecen de inters (ya que implican que la clave sea aleatoria y de longitud infinita, lo cual plantea
problemas de almacenamiento y distribucin). As pues, es necesario adoptar una solucin de
compromiso que conjugue el coste del sistema (computacional, espacial y econmicamente) y su
resistencia a diferentes ataques criptogrficos.

2.2 Criptografa moderna


La criptografa clsica abarca desde tiempos inmemoriales hasta la mitad del siglo XX. El punto de
inflexin que marca la transicin de la criptografa clsica a la moderna viene marcado por tres
hechos relevantes:

En el ao 1949 se publica del estudio de Claude Shannon sobre la Teora de la Informacin.


En 1974 aparece el estndar de cifra DES.
Por ltimo, en el ao 1976 se publica un estudio realizado por W. Diffie y M. Hellman sobre la
aplicacin de funciones matemticas de un solo sentido a un modelo de cifra, denominado
cifrado con clave pblica.

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

Curso Avances en Seguridad

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:

Desinformacin. Se define por desinformacin de un sistema criptogrfico como la entropa


condicionada del conjunto M de posibles mensajes sobre el conjunto C de posibles
criptogramas, es decir, a H(M | C). Esta expresin permite evaluar la incertidumbre que se
tiene sobre cual ha sido mensaje enviado m si se conoce su criptograma asociado c. Si esta
incertidumbre fuera la misma que desconociendo c (en cuyo caso se cumplira que H(M) =
H(M | C)) se tratara que un criptosistema seguro de Shannon. Por desgracia, lo habitual es
que exista relacin estadstica entre C y M (a travs del espacio de claves K), por lo que H(M
| C) < H(M).

Distancia de unicidad. La distancia de unicidad de un criptosistema trata de evaluar el tamao


mnimo de criptograma (de texto cifrado) necesario para que se puede intentar, con ciertas
expectativas de xito, un ataque para buscar la clave usada para cifrar el mensaje. La
distancia de unicidad se obtiene cuando la equivocacin de clave, es decir, cuando la
entropa H(K |C), tiende a cero.

Redundancia. Por lo general, cualquier conjunto de mensajes M es redundante (por ejemplo,


el lenguaje natural). Partiendo del concepto de entropa puede medirse el exceso de
informacin (redundancia) de un lenguaje. Para determinar la redundancia de un lenguaje se
define lo que se conoce como ratio del lenguaje r, que representa el nmero de bits de
informacin en cada carcter para mensajes con una longitud igual a N caracteres. As pues,
segn la definicin de entropa, se tiene que r = H(X) / N y se mide en bits/letra. Por otro lado,
si se codificase un mensaje letra a letra, suponiendo adems que la aparicin de stas son
equiprobables, se obtiene lo que se denomina el ratio absoluto del lenguaje R que es igual a
H(X). Para el castellano, que emplea un alfabeto de 27 letras, se tiene que R es igual a 4,75
bits/letra. Como las letras que aparecen en un texto no tienen igual probabilidad de
ocurrencia, su frecuencia de aparicin es distinta. Esto es debido a que los lenguajes estn
muy estructurados y hay conjuntos de letras caractersticos (diagramas, trigramas, y en
general poligramas), por lo que el ratio baja mucho. En concreto, para la lengua castellana, se
estima que el ratio real del lenguaje est comprendido entre 1,2 < r < 1,5. Considerando que
la redundancia de un lenguaje D es la diferencia entre el ratio absoluto y el ratio real (es decir,
D = R r), se tiene que para la lengua castellana la redundancia oscila entre 3,25 < D < 3,55.
En trminos relativos, es decir, considerando el cociente D/R, puede concluirse que la
informacin redundante contenida en un mensaje de la lengua castellana oscila entre un
68,48% y un 74,73%.

Por ltimo, mencionar que Shannon propuso dos tcnicas bsicas para lograr un mayor secreto en
las operaciones de cifra:

Curso Avances en Seguridad

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.

You might also like