You are on page 1of 15

REDES DE TELECOMUNICACIONES

Ataques pasivos: En un ataque pasivo, el autor supervisa simplemente el trfico de la red para intentar conocer algunos secretos. Estos ataques se pueden basar en la red (rastreo los enlaces de comunicaciones) o en el sistema (sustitucin de un componente del sistema con un programa Caballo de Troya que captura datos subrepticiamente). Los ataques pasivos son los ms difciles de detectar. Siempre debe presuponer que alguien puede estar escuchando todo lo que enve por Internet. Ataques activos: En un ataque activo, el autor intenta abrirse paso a travs de sus defensas para entrar en los sistemas de la red. Hay varios tipos de ataques activos: o En los intentos de acceso al sistema, el atacante intenta explotar los agujeros de seguridad para acceder a un cliente o sistema y controlarlo. o En los ataques de usurpacin , el atacante intenta abrirse paso a travs de sus defensas hacindose pasar por un sistema de confianza, o un usuario le persuade para que le enve informacin secreta. o En los ataques de negativa de servicio, el atacante intenta interferir en las operaciones, o detenerlas, redireccionando el trfico o bombardeando el sistema con basura. o En los ataques criptogrficos, el atacante intentar adivinar o robar las contraseas, o utilizar herramientas especializadas para intentar descifrar los datos cifrados.

Criptografa

Desde que el hombre ha necesitado comunicarse con los dems ha tenido la necesidad de que algunos de sus mensajes solo fueran conocidos por las personas a quien estaban destinados. La necesidad de poder enviar mensajes de forma que solo fueran entendidos por los destinatarios hizo que se crearan sistemas de cifrado, de forma que un mensaje despus de un proceso de transformacin, lo que llamamos cifrado, solo pudiera ser ledo siguiendo un proceso de descifrado. Las civilizaciones mas antiguas (egipcia, mesopotmica, china..) ya usaban esos mtodos.Uno de los primeros mtodos de encriptado que est documentado es atribuido a Julio Cesar, que se basaba en la sustitucin de las letras de un documento por la tercera letra que le correspondiese en el alfabeto. As la A se converta en una D, la B en E ... Con el tiempo y debido principalmente a su uso militar, los sistemas criptogrfcos fueron avanzando en complejidad, hasta llegar a nuestros das donde la informtica ha entrado en nuestras vidas y la necesidad de seguridad al realizar nuestras operaciones aumenta. En la actualidad, en la vida real, estamos acostumbrados a enviar o recibir cartas postales que vienen encerradas en un sobre para que su lectura est reservada solo a nosotros o a su destinatario. En el mundo virtual, en el caso del e-mail esto no es as, ya que lo que enviamos es la carta sin el "sobre" que lo contenga, es decir, sin

nada que impida su lectura por parte de cualquiera que pudiera interceptarla. Queremos que nuestras confidencias, nuestros nmeros de tarjeta de crdito, nuestros saldos en bancos, etc .. sean vistos por cualquiera? Como funciona La palabra criptologa proviene de las palabras griegas Kryto y logos y siginifica estudio de lo oculto. Una rama de la criptologa es la criptografa, que se ocupa del cifrado de mensajes. Esta se basa en que el emisor emite un mensaje en claro, que es tratado mediante un cifrador con la ayuda de una clave, para crear un texto cifrado. Este texto cifrado, por medio del canal de comunicacin establecido, llega al descifrador que convierte el texto cifrado, apoyandose en otra clave, para obtener el texto en claro original. Las dos claves implicadas en el proceso de cifrado/descifrado pueden ser o no iguales dependiendo del sistema de cifrado utilizado. Sistemas de cifrado Sistemas de cifrado simtrico. Los sistemas de cifrado simtrico son aquellos que utilizan la misma clave para cifrar y descrifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave. Por lo tanto se tiene que buscar tambin un canal de comunicacin que sea seguro para el intercambio de la clave.Es importante que dicha clave sea muy difcil de adivinar ya que hoy en da los ordenadores pueden adivinar claves muy rpidamente. Por ejemplo el algoritmo de cifrado DES usa una clave de 56 bits, lo que significa que hay 72 mil billones de claves posibles. Actualmente ya existen ordenadores especializados que son capaces de probar todas ellas en cuestin de horas.Hoy por hoy se estn utilizando ya claves de 128 bits que aumentan el "espectro" de claves posibles (2 elevado a 128) de forma que aunque se uniesen todos los ordenadores existentes en estos momentos no lo conseguiran en miles de millones de aos. Sistemas de cifrado asimtrico. Tambin son llamados sistemas de cifrado de clave pblica. Este sistema de cifrado usa dos claves diferentes. Una es la clave pblica y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella.Para enviar un mensaje, el remitente usa la clave pblica del destinatario para cifrar el mensaje. Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo.Por ello, se puede dar a conocer perfectamente la clave pblica para que todo aquel que se quiera comunicar con el destinatario lo pueda hacer. Un sistema de cifrado de clave publica basado en la factorizacin de nmeros primos se basa en que la clave pblica contiene un nmero compuesto de dos

nmeros primos muy grandes. Para cifrar un mensaje, el algoritmo de cifrado usa ese compuesto para cifrar el mensaje.Para descifrar el mensaje, el algoritmo de descifrado requiere conocer los factores primos, y la clave privada tiene uno de esos factores, con lo que puede fcilmente descifrar el mensaje. Es fcil, con los ordenadores de hoy en da, multiplicar dos nmeros grandes para conseguir un nmero compuesto, pero es muy difcil la operacin inversa, Dado ese numero compuesto, factorizarlo para conocer cada uno de los dos nmeros.Mientras que 128 bits se considera suficiente en las claves de cifrado simtrico, y dado que la tecnologa de hoy en da se encuentra muy avanzada, se recomienda en este caso que la clave pblica tenga un mnimo de 1024 bits. Para un ataque de fuerza bruta, por ejemplo, sobre una clave publica de 512 bits, se debe factorizar un numero compuesto de hasta 155 cifras decimales. Sistemas de cifrado hbridos. Es el sistema de cifrado que usa tanto los sistemas de clave simtrica como el de clave asimtrica. Funciona mediante el cifrado de clave pblica para compartir una clave para el cifrado simetrico. En cada mensaje, la clave simtrica utilizada es diferente por lo que si un atacante pudiera descubrir la clave simtrica, solo le valdra para ese mensaje y no para los restantes.Tanto PGP como GnuPG usan sistemas de cifrado hbridos. La clave simtrica es cifrada con la clave pblica, y el mensaje saliente es cifrado con la clave simtrica, todo combinado automticamente en un slo paquete. El destinatario usa su clave privada para descifrar la clave simtrica y acto seguido usa la clave simtrica para descifrar el mensaje.

Introduccin
Comenzaremos el estudio de la criptologa dando algunas definiciones bsicas, a continuacin describiremos los sistemas criptogrficos mencionando sus caractersticas ms importantes, luego describiremos los distintos tipos de algoritmos criptogrficos y terminaremos mencionando algunas de las aplicaciones de la criptografa.

Definiciones
Criptologa

Es el estudio de la criptografa y el criptoanlisis.


Criptografa

Vista en trminos sociales, es la ciencia de hacer que el coste de adquirir o alterar informacin de modo impropio sea mayor que el posible valor obtenido al hacerlo. Vista en trminos ms formales, es la prctica y el estudio de tcnicas de cifrado y descifrado de informacin, es decir, de tcnicas para codificar un mensaje

hacindolo ininteligible (cifrado) y recuperar el mensaje original a partir de esa versin ininteligible (descifrado).
Algoritmo criptogrfico

Es un mtodo matemtico que se emplea para cifrar y descifrar un mensaje. Generalmente funciona empleando una o ms claves (nmeros o cadenas de caracteres) como parmetros del algoritmo, de modo que sean necesarias para recuperar el mensaje a partir de la versin cifrada. El mensaje antes de cifrar se denomina texto en claro y una vez cifrado se denomina texto cifrado.
Sistema criptogrfico

Es un sistema para cifrar y descifrar informacin compuesto por un conjunto de algoritmos criptogrficos, claves y, posiblemente, varios textos en claro con sus correspondientes versiones en texto cifrado. Los sistemas criptogrficos actuales se basan en tres tipos de algoritmos criptogrficos: de clave secreta o simtricos, de clave pblica o asimtricos y de resumen de mensajes (funciones de dispersin).
Algoritmos de resumen de mensajes

Transforman mensajes de tamao variable a textos cifrados de tamao fijo sin emplear claves. Se emplean para convertir mensajes grandes en representaciones ms manejables.
Algoritmos de clave secreta o simtricos

Convierten un mensaje en un texto cifrado del mismo tamao que el original. Emplean una sola clave para cifrar y descifrar. Son los algoritmos empleados para transferir grandes cantidades de informacin de modo seguro.
Algoritmos de clave pblica o asimtricos

Encriptan un mensaje generando un texto cifrado del mismo tamao que el original. Usan una clave para cifrar el mensaje (clave privada) y otra para descifrar (clave pblica). Tienen un coste computacional alto y se suelen emplear para distribuir las claves de los algoritmos simtricos.
Criptoanlisis

Es el conjunto de procedimientos, procesos y mtodos empleados para romper un algoritmo criptogrfico, descifrar un texto cifrado o descubrir las claves empleadas para generarlo.

Algoritmos de cifrado simtrico


Dentro de estos algoritmos distinguimos dos tipos de algoritmos en funcin de la cantidad de datos de entrada que manejan a la vez: algoritmos de cifrado por bloques y algoritmos de cifrado de flujo.
Cifrado por bloques

Los algoritmos de cifrado por bloques toman bloques de tamao fijo del texto en claro y producen un bloque de tamao fijo de texto cifrado, generalmente del mismo tamao que la entrada. El tamao del bloque debe ser lo suficientemente grande como para evitar ataques de texto cifrado. La asignacin de bloques de entrada a bloques de salida debe ser uno a uno para hacer el proceso reversible y parecer aleatoria. Para la asignacin de bloques los algoritmos de cifrado simtrico realizan sustituciones y permutaciones en el texto en claro hasta obtener el texto cifrado. La sustitucin es el reemplazo de un valor de entrada por otro de los posibles valores de salida, en general, si usamos un tamao de bloque k, el bloque de entrada puede ser sustituido por cualquiera de los 2k bloques posibles. La permutacin es un tipo especial de sustitucin en el que los bits de un bloque de entrada son reordenados para producir el bloque cifrado, de este modo se preservan las estadsticas del bloque de entrada (el nmero de unos y ceros). Los algoritmos de cifrado por bloques iterativos funcionan aplicando en sucesivas rotaciones una transformacin (funcin de rotacin) a un bloque de texto en claro. La misma funcin es aplicada a los datos usando una subclave obtenida de la clave secreta proporcionada por el usuario. El nmero de rotaciones en un algoritmo de cifrado por bloques iterativo depende del nivel de seguridad deseado. Un tipo especial de algoritmos de cifrado por bloques iterativos son los denominados algoritmos de cifrado de Feistel. En estos algoritmos el texto cifrado se obtiene del texto en claro aplicando repetidamente la misma transformacin o funcin de rotacin. El funcionamiento es como sigue: el texto a cifrar se divide en dos mitades, la funcin de rotacin se aplica a una mitad usando una subclave y la salida de la funcin se emplea para hacer una o-exclusiva con la otra mitad, entonces se intercambian las mitades y se repite la misma operacin hasta la ltima rotacin, en la que no hay intercambio. Una caracterstica interesante de estos algoritmos es que la cifrado y descifrado son idnticas estructuralmente, aunque las subclaves empleadas en la cifrado se toman en orden inverso en la descifrado.

Para aplicar un algoritmo por bloques es necesario descomponer el texto de entrada en bloques de tamao fijo. Esto se puede hacer de varias maneras: 1. ECB (Electronic Code Book). Se parte el mensaje en bloques de k bits, rellenando el ultimo si es necesario y se encripta cada bloque. para descifrar se trocea el texto cifrado en bloques de k bits y se desencripta cada bloque. Este sistema es vulnerable a ataques ya que dos bloques idnticos de la entrada generan el mismo bloque de salida. En la prctica no se utiliza. 2. CBC (Cipher Block Chaining). Este mtodo soluciona el problema del ECB haciendo una o-exclusiva de cada bloque de texto en claro con el bloque anterior cifrado antes de cifrar. para el primer bloque se usa un vector de inicializacin. Este es uno de los esquemas ms empleados en la prctica. 3. OFB (Output Feedback Mode). Este sistema emplea la clave de la sesin para crear un bloque pseudoaleatorio grande (pad) que se aplica en o-exclusiva al texto en claro para generar el texto cifrado. Este mtodo tiene la ventaja de que el pad puede ser generado independientemente del texto en claro, lo que incrementa la velocidad de cifrado y descifrado. 4. CFB (Cipher Feedback Mode). Variante del mtodo anterior para mensajes muy largos.
Cifrado de flujo de datos

Generalmente operan sobre 1 bit (o sobre bytes o palabras de 16 32 bits) de los datos de entrada cada vez. El algoritmo genera una secuencia (secuencia cifrante o keystream en ingls) de bits que se emplea como clave. La cifrado se realiza combinando la secuencia cifrante con el texto en claro. El paradigma de este tipo de algoritmos es el One Time Pad, que funciona aplicando una XOR (o-exclusiva) a cada bit de la entrada junto con otro generado aleatoriamente para obtener cada bit de la salida. La secuencia de bits aleatorios es la clave de la sesin, secuencia de cifrado o el pad, que es del mismo tamao que la entrada y la salida. para recuperar el texto original el texto cifrado debe pasar por el mismo proceso empleado para cifrar usando el mismo pad. Este algoritmo es conocido por ser el nico incondicionalmente seguro, aunque, como las claves son del mismo tamao que la entrada, es de poca utilidad prctica. Los algoritmos de este tipo son intentos de conseguir algoritmos prcticos que se aproximen al funcionamiento del one time pad.

Algoritmos de clave pblica o asimtricos


La criptografa de clave pblica fue inventada en 1975 por Whitfield Diffie y Matin Hellman. Se basa en emplear un par de claves distintas, una pblica y otra privada. La idea fundamental es que las claves estn ligadas matemticamente pero es computacionalmente imposible obtener una a partir de la otra.

Fundamentos matemticos

Las funciones de una sola direccin son aquellas en las que obtener el resultado en una direccin es fcil, pero en la otra es casi imposible. Los algoritmos criptogrficos de clave pblica se basan en funciones de una sola direccin con puerta trasera, que son aquellos en los que el problema es resoluble en la direccin opuesta (la que antes era muy difcil) empleando una ayuda (la puerta trasera). Los siguientes problemas matemticos son considerados como funciones de una sola direccin con puerta trasera y son la base de la mayora de algoritmos de clave pblica actuales:

Factorizacin de enteros. Un nmero entero siempre se puede representar como un producto de nmeros primos denominados factores primos. La factorizacin de enteros consiste en encontrar los factores primos de un nmero. Los algoritmos criptogrficos basados en este problema aprovechan el hecho de que la multiplicacin de nmeros primos grandes es computacionalmente sencilla pero la factorizacin un nmero grande en sus factores primos es muy cara computacionalmente. Logaritmos discretos. En aritmtica mdulo n dos enteros son equivalentes si tienen el mismo resto cuando son divididos por n. El resto de la divisin m/n es el menor entero no negativo que difiere de m por un mltiplo de n. La exponenciacin discreta (ax mod n) es la exponenciacin en aritmtica mdulo n. Por ejemplo, 34 mod 10 es 81 mod 10, que es equivalente a 1 mod 10. El logaritmo discreto es la operacin inversa a la exponenciacin discreta, el problema es encontrar la x tal que ax = b mod n. Por ejemplo, si 11x = 1 mod 10, entonces x = 2. Los algoritmos que emplean este tipo de problema se basan en que la exponenciacin mdulo n es un problema fcil y hallar el logaritmo discreto es un problema difcil. Logaritmos discretos de curva elptica. Es una variacin del problema anterior ms cara computacionalmente, lo que permite usar claves ms pequeas que mejoran las prestaciones de los algoritmos y reducen el tamao de los textos cifrados.

Tipos de algoritmo

En funcin de su relacin matemtica distinguimos varios tipos de algoritmo:

Reversible. Es aquel en el que un mensaje cifrado con la clave privada puede ser descifrado usando la clave pblica y viceversa (uno cifrado usando la clave pblica puede ser descifrado usando la privada). Irreversible. Es aquel en el que un mensaje cifrado usando la clave privada puede ser descifrado con la clave pblica pero la clave privada no desencripta los mensajes cifrados usando la clave pblica. De intercambio de claves. Slo permiten negociar de forma segura una clave secreta entre dos partes. Hay que indicar que los algoritmos reversibles tambin se pueden emplear para esta funcin, pero los irreversibles no.

Aplicaciones

Este tipo de algoritmos tienen dos aplicaciones fundamentales: 1. cifrado. Si un usuario A quiere mandar un mensaje a otro usuario B, lo encripta usando la clave pblica de B. Cuando B lo recibe lo desencripta usando su clave privada. Si alguien intercepta el mensaje no puede descifrarlo, ya que no conoce la clave privada de B (de hecho, ni tan siquiera A es capaz de descifrar el mensaje). 2. Firmas digitales. Si B encripta un mensaje usando su clave privada cualquiera que tenga su clave pblica podr obtener el texto en claro correspondiente; si alguien quiere hacerse pasar por B tendr que cifrar el mensaje usando la misma clave privada o no se descifrar correctamente con la clave pblica de B. Lo que B ha hecho es firmar digitalmente el mensaje. El proceso de descifrar con una clave pblica un mensaje firmado se denomina verificacin de firma. Estos algoritmos son mucho ms caros que los de clave secreta, por lo que no se usan para cifrar mucha informacin. Su principal aplicacin est en la fase inicial de una comunicacin, ya que permiten que los dos extremos se autentifiquen e intercambien claves secretas para cifrar con un algoritmo simtrico. El problema fundamental de este tipo de algoritmos es la distribucin de las claves; aunque la clave pblica se puede distribuir libremente (A la puede enviar por correo o decrsela a B por telfono), nos queda el problema de la suplantacin (C le puede dar su clave pblica a B hacindose pasar por A). para solventar estos problemas se emplean autoridades certificadoras y certificados digitales, que discutiremos ms adelante.

Algoritmos de resumen de mensajes


Un algoritmo de resumen de mensajes o funcin de dispersin criptogrfica es aquel que toma como entrada un mensaje de longitud variable y produce un resumen de longitud fija. En ingls el resumen se llama message digest, digest o hash y el algoritmo message digest algorithm o one way hash algorithm. Estos algoritmos deben tener tres propiedades para ser criptogrficamente seguros: 1. No debe ser posible averiguar el mensaje de entrada basndose slo en su resumen, es decir, el algoritmo es una funcin irreversible de una sola direccin. 2. Dado un resumen debe ser imposible encontrar un mensaje que lo genere. 3. Debe ser computacionalmente imposible encontrar dos mensajes que generen el mismo resumen. Los algoritmos de este tipo se emplean en la generacin de cdigos de autentificacin de mensajes y en las firmas digitales.

Cdigos de autentificacin de mensajes y firmas digitales


Un cdigo de autentificacin de mensaje (message authentication code o MAC) es un bloque de datos de tamao fijo que se enva con un mensaje para averiguar su origen e integridad. Son muy tiles para proporcionar autentificacin e integridad sin confidencialidad. para generar MACs se pueden usar algoritmos de clave secreta, de clave pblica y algoritmos de resumen de mensajes. Un tipo de MAC muy empleado en la actualidad es el cdigo de autentificacin de mensaje resumido (hashed message authentication code o HMAC). Lo que hacemos es generar el MAC aplicando una funcin de dispersin criptogrfica a un conjunto formado por un mensaje y un cdigo secreto. As, el que recibe el mensaje puede calcular su propio MAC con el mensaje y el cdigo secreto (que comparte con el que ha generado el MAC). Si no coinciden sabemos que el mensaje ha sido manipulado. Este tipo de tcnicas se emplean para proteger comunicaciones a nivel de la capa de red. La firma digital es un item que responde del origen e integridad de un mensaje. El que escribe un mensaje lo firma usando una clave de firmado y manda el mensaje y la firma digital. El destinatario usa una clave de verificacin para comprobar el origen del mensaje y que no ha sido modificado durante el trnsito. Para firmar los mensajes se emplean algoritmos de clave pblica y funciones de dispersin. El proceso es como sigue: 1. El emisor genera un resumen del mensaje, lo encripta con su clave privada (clave de firmado) y enva el mensaje y el texto cifrado que corresponde al resumen del mensaje. 2. El destinatario genera un resumen del mensaje que recibe y desencripta el resumen cifrado que lo acompaaba usando la clave pblica del emisor (clave de verificacin).>Si al comparar los resmenes ambos son iguales el mensaje es vlido y ha sido firmado por el emisor real, ya que de otro modo no se hubiera podido descifrar correctamente con su clave pblica. Hay que indicar que los MAC y las firmas digitales se diferencian en un punto importante: aunque los MAC se pueden usar para verificar la autenticidad de los mensajes, no se pueden usar para firmar los mensajes, ya que slo se usa una clave secreta que comparten el emisor y el receptor, lo que hace que ambos puedan generar la misma firma.

Seguridad de los sistemas criptogrficos


La seguridad de un sistema criptogrfico depende generalmente de que al menos una de las claves empleadas sea secreta, ms que de que el algoritmo de cifrado sea secreto. El publicar los algoritmos empleados por un sistema criptogrfico para que sean revisados pblicamente es una buena prctica que permite que se mejoren algoritmos no totalmente seguros o se considere que un algoritmo no tiene debilidades.

Los algoritmos criptogrficos tienen distintos grados de seguridad: 1. Seguro computacionalmente. Con suficiente poder de clculo y almacenamiento el sistema puede ser roto, pero a un coste tan elevado que no es prctico. De cualquier modo, el coste computacional para considerar que un algoritmo es seguro ha ido cambiando con el paso del tiempo; algoritmos antes considerados seguros, como el DES, han sido rotos en meses con sistemas distribuidos y en das con sistemas diseados especficamente para la tarea, como se describe en http://www.eff.org/descracker/. 2. Seguro incondicionalmente. Son aquellos en los que aun disponiendo de recursos y gran cantidad de texto cifrado no es posible romper el algoritmo. Los nicos sistemas incondicionalmente seguros son los One Time Pads. Un sistema criptogrfico puede ser roto en varios niveles: 1. Deduccin de informacin. Se obtiene parte de informacin de la clave o del texto en claro. 2. Deduccin de una instancia. Se obtiene el texto en claro a partir de un texto cifrado. 3. Deduccin global. A partir de la deduccin de una instancia se obtiene un algoritmo que obtiene los mismos resultados que el algoritmo original. 4. Rotura total. Se recupera la clave y se puede descifrar cualquier mensaje cifrado con la misma clave. Para romper un algoritmo se pueden emplear distintos tipos de ataque criptoanaltico: 1. Ataque de slo texto cifrado. El analista dispone de un texto cifrado y quiere obtener el texto en claro o la clave. Se pueden usar mtodos de fuerza bruta (probando todas las claves posibles hasta que obtenemos un mensaje con sentido) o basados en diccionario (probando nicamente con un subconjunto de las claves posibles, por ejemplo si las claves son palabras). Es importante disponer de suficiente texto en clave para que sea fcil identificar cual es el texto en claro correcto. 2. Ataque de texto en claro conocido. El analista dispone de un texto en claro y su correspondiente texto cifrado, lo que permite reducir el espacio de bsqueda de claves u obtener estadsticas que pueden usarse para hacer deducciones en otros textos cifrados. 3. Ataque de texto en claro conocido adaptativo. Es igual que el anterior pero el analista puede elegir nuevos textos dinmicamente y alterar sus elecciones en funcin de los resultados que va obteniendo. 4. Ataque de texto en claro elegido. El analista puede elegir el texto en claro y obtener el texto cifrado correspondiente. Este tipo de ataque puede evitar duplicados y centrarse ms en las debilidades del algoritmo. 5. Ataque de texto en claro elegido adaptativo. Es la versin adaptativa del ataque anterior. Para que un sistema criptogrfico sea considerado como fuerte debe tener las siguientes caractersticas:

Debe disponer de un nmero muy elevado de claves posibles, de modo que sea poco razonable intentar descifrar un mensaje por el mtodo de la fuerza bruta (probando todas las claves). Debe producir texto cifrado que parezca aleatorio a un test estadstico estndar. Debe resistir todos los mtodos conocidos de romper los cdigos, es decir, debe ser resistente al criptoanlisis.

Ataques ms importantes sobre algoritmos criptogrficos


En este apartado mencionaremos los ataques ms importantes contra los algoritmos criptogrficos clasificados por tipo de algoritmo.
Algoritmos de cifrado simtrico por bloques

Criptoanlisis diferencial. Se realizan sobre algoritmos de cifrado por bloques iterativos. Es un ataque de texto claro elegido que se basa en el anlisis de la evolucin de las diferencias de dos textos en claro relacionados cuando son cifrados con la misma clave. Mediante el anlisis de los datos disponibles se pueden asignar probabilidades a cada una de las claves posibles . Eventualmente, la clave ms probable puede ser identificada como la correcta. Criptoanlisis lineal. Este es un ataque de texto en claro conocido que usa una aproximacin lineal para describir el funcionamiento del algoritmo. Dados suficientes pares de texto en claro y cifrado se pueden obtener datos sobre la clave. Explotacin de claves dbiles. Hay algoritmos para los que se pueden encontrar claves que se comportan de modo especial, por ejemplo dando origen a ciertas regularidades en el cifrado o un bajo nivel de cifrado. Si el nmero de claves dbiles es pequeo no tiene importancia, pero si el algoritmo tiene muchas de estas claves es fcil que se vea comprometido. Ataques algebraicos. Son una clase de tcnicas que basan su xito en que los algoritmos criptogrficos muestren un alto grado de estructura matemtica. Por ejemplo, si un algoritmo tiene estructura de grupo, al cifrar con una clave, y luego volver a cifrar con otra obtenemos un texto cifrado que podra haber sido generado con el mismo algoritmo y una sola clave, lo que hace al algoritmo bastante dbil.
Algoritmos de cifrado simtrico de flujo de datos

Los principales ataques a este tipo de algoritmos buscan debilidades en la estructura del mismo que le permitan descubrir partes de la secuencia de cifrado. Una de las caractersticas fundamentales es el periodo de la clave de cifrado, ya que si es muy corto y se descubre una parte de la clave se puede emplear en sucesivos periodos del algoritmo. Complejidad lineal. Una tcnica empleada para atacar estos algoritmos es el uso de un registro de desplazamiento lineal con realimentacin (linear feedback shift register) para

replicar parte de una secuencia. A partir de esta tcnica aparece la complejidad lineal de una secuencia, que ser el tamao del registro que necesitemos para replicarla. Ataques de correlacin. Otros ataques intentan recuperar parte de una secuencia de cifrado ya empleada. Dentro de estos ataques hay una clase que podemos denominar divide y vencers que consiste en encontrar algn fragmento caracterstico de la secuencia de cifrado y atacarla con un mtodo de fuerza bruta y comparar las secuencias generadas con la secuencia de cifrado real. Este mtodo lleva a lo que se denomina ataques de correlacin y ataques de correlacin rpidos.
Algoritmos de resumen de mensajes

Las funciones de dispersin deben tener dos propiedades para ser tiles en criptografa: deben ser funciones de una sola direccin y no tener colisiones. El ataque por fuerza bruta consiste en seleccionar entradas del algoritmo aleatoriamente y buscar una que nos de el valor que buscamos (la funcin no es de una sola direccin) o un par de entradas que generen la misma salida (la funcin tiene colisiones). Ataque del cumpleaos. Se trata de una clase de ataques por fuerza bruta. El nombre viene de la paradoja del cumpleaos: la probabilidad de que dos o ms personas en un grupo de 23 personas cumplan aos el mismo da es superior a 1/2. Si una funcin retorna uno de k valores equiprobables cuando se le proporciona una entrada aleatoria, cuando le proporcionamos repetidamente valores de entrada distintos, obtendremos dos salidas iguales despus de 1.2k1/2 ejecuciones. Si buscamos una colisin en una funcin de dispersin, por la paradoja del cumpleaos sabemos que despus de probar 1.2*2pi/2 entradas tendremos alguna. Pseudo-colisiones. Otro problema de estos algoritmos son las pseudo-colisiones, que son las colisiones producidas en la funcin de compresin empleada en el proceso iterativo de una funcin de dispersin. En principio que haya pseudo-colisiones no implica que el algoritmo no se seguro.

Aplicaciones de la criptografa
La criptografa es una disciplina con multitud de aplicaciones, muchas de las cuales estn en uso hoy en da. Entre las ms importantes destacamos las siguientes:

Seguridad de las comunicaciones. Es la principal aplicacin de la criptografa a las redes de computadores, ya que permiten establecer canales seguros sobre redes que no lo son. Adems, con la potencia de clculo actual y empleando algoritmos de cifrado simtrico (que se intercambian usando algoritmos de clave pblica) se consigue la privacidad sin perder velocidad en la transferencia. Identificacin y autentificacin. Gracias al uso de firmas digitales y otras tcnicas criptogrficas es posible identificar a un individuo o validar el acceso a un recurso

en un entorno de red con ms garantas que con los sistemas de usuario y clave tradicionales. Certificacin. La certificacin es un esquema mediante el cual agentes fiables (como una entidad certificadora) validan la identidad de agentes desconocidos (como usuarios reales). El sistema de certificacin es la extensin lgica del uso de la criptografa para identificar y autentificar cuando se emplea a gran escala. Comercio electrnico. Gracias al empleo de canales seguros y a los mecanismos de identificacin se posibilita el comercio electrnico, ya que tanto las empresas como los usuarios tienen garantas de que las operaciones no pueden ser espiadas, reducindose el riesgo de fraudes y robos.

Cdigos de autentificacin de mensajes y firmas digitales


Un cdigo de autentificacin de mensaje (message authentication code o MAC) es un bloque de datos de tamao fijo que se enva con un mensaje para averiguar su origen e integridad. Son muy tiles para proporcionar autentificacin e integridad sin confidencialidad. Para generar MACs se pueden usar algoritmos de clave secreta, de clave pblica y algoritmos de resumen de mensajes. Un tipo de MAC muy empleado en la actualidad es el cdigo de autentificacin de mensaje resumido (hashed message authentication code o HMAC). Lo que hacemos es generar el MAC aplicando una funcin de dispersin criptogrfica a un conjunto formado por un mensaje y un cdigo secreto. As, el que recibe el mensaje puede calcular su propio MAC con el mensaje y el cdigo secreto (que comparte con el que ha generado el MAC). Si no coinciden sabemos que el mensaje ha sido manipulado. Este tipo de tcnicas se emplean para proteger comunicaciones a nivel de la capa de red. La firma digital es un item que responde del origen e integridad de un mensaje. El que escribe un mensaje lo firma usando una clave de firmado y manda el mensaje y la firma digital. El destinatario usa una clave de verificacin para comprobar el origen del mensaje y que no ha sido modificado durante el trnsito. Para firmar los mensajes se emplean algoritmos de clave pblica y funciones de dispersin. El proceso es como sigue:
1. El emisor genera un resumen del mensaje, lo encripta con su clave privada (clave de firmado) y enva el mensaje y el texto cifrado que corresponde al resumen del mensaje. 2. El destinatario genera un resumen del mensaje que recibe y desencripta el resumen cifrado que lo acompaaba usando la clave pblica del emisor (clave de verificacin).>Si al comparar los resmenes ambos son iguales el mensaje es vlido y ha sido firmado por el emisor real, ya que de otro modo no se hubiera podido desencriptar correctamente con su clave pblica.

Hay que indicar que los MAC y las firmas digitales se diferencian en un punto importante: aunque los MAC se pueden usar para verificar la autenticidad de los mensajes, no se pueden usar para firmar los mensajes, ya que slo se usa una clave secreta que comparten el emisor y el receptor, lo que hace que ambos puedan generar la misma firma.

Funciones de dispersin
SHA y SHA-1

El SHA (Secure Hash Algorithm) es un algoritmo de resumen seguro desarrollado por el NIST. El SHA-1 es una versin corregida del algoritmo publicada en 1994. El algoritmo es un estndar ANSI. El algoritmo toma un mensaje de menos de 264 bits y genera un resumen de 160 bits. Es ms lento que el MD5, pero la mayor longitud de clave lo hace ms resistente a ataques de colisin por fuerza bruta y de inversin.
MD2, MD4 y MD5

Los tres son algoritmos de resumen de mensajes (el MD viene de Message Digest) desarrollados por Rivest. Los tres toman un mensaje de longitud arbitraria y generan un resumen de 128 bits. El MD2 est optimizado para mquinas de 8 bits, mientras que el MD4 y MD5 son para arquitecturas de 32 bits. El cdigo para los tres algoritmos se puede encontrar en los RFCs 1319, 1320 y 1321. El MD2 funciona rellenando el mensaje para que tenga una longitud en bytes mltiplo de 16. Sobre ese mensaje se calcula un checksum de 16 bytes que se aade al mensaje y la funcin de dispersin se aplica al mensaje resultante. El nico problema que se le conoce es que si se omite el checksum se pueden obtener colisiones. El MD4 fue desarrollado en 1990 por Rivest. El mensaje se rellena para que su longitud en bits ms 448 sea divisible por 512. Una representacin de la longitud del mensaje de 64 bits se concatena entonces con el mensaje. El mensaje se procesa iterativamente en bloques de 512 bits y cada bloque es procesado en tres rotaciones distintas. El algoritmo ha sido criptoanalizado y se han encontrado debilidades, de hecho es posible encontrar colisiones en menos de un minuto en mquinas modernas, por lo que el algoritmo se considera a todos los efectos roto. El MD5 fue desarrollado en 1991 por Rivest. Es bsicamente el MD4 con mejoras en la seguridad, aunque es ms lento que este. El tamao del resumen y la necesidad del relleno son iguales que en el MD4. Consta de cuatro rotaciones que tienen un diseo ligeramente diferente a las del MD4. El algoritmo ha sido criptoanalizado con tcnicas similares a las del MD4 y se han encontrado pseudo-colisiones en la funcin de compresin, pero no en el

algoritmo completo. Adicionalmente, se ha estimado que es posible construir una mquina capaz de atacar el algoritmo por fuerza bruta y encontrar una colisin en 24 das, aunque el coste de la mquina era de 10 millones de dolares en 1994.