Está en la página 1de 33

TEMA 3

Cifrado de la Informacin.
a Criptologa (del griego kryptos = oculto y logos = ciencia) es el nombre genrico con el que se denominan dos disciplinas opuestas y a la vez complementarias: Criptografa y Criptoanlisis. La Criptografa es la ciencia y el arte que disea procedimientos para mantener secreta la informacin: se trata de aplicar mecanismos que transformen los mensajes (cifrado) de manera que no puedan ser entendidos excepto por aquellas y aquellos que conozcan los mecanismos para volverlos a su forma original (descifrado), y as evitar que otras personas puedan conocer su contenido. El Criptoanlisis, por su parte, se ocupa de romper los procedimientos de cifrado para obtener la informacin original oculta en un mensaje cifrado. Ambas disciplinas se han desarrollado en paralelo a lo largo de la historia. La Criptografa se suma al variado nmero de mecanismos de seguridad que existen para salvaguardar la informacin de las amenazas que recibe mientras se encuentra almacenada o en transmisin entre los ordenadores. El cifrado de informacin proporciona seguridad a los sistemas informticos mediante los siguientes servicios: Confidencialidad: Cifrar hace posible mantener secreta la informacin, incluso cuando alguien pueda sustraer ficheros que posean esa informacin cifrada. Integridad: Adems de mantener secreta la informacin muchos algoritmos de cifrado permiten comprobar que los datos siguen ntegros y que no han sido atacados por virus, ruidos en una comunicacin u otras causas. Autenticacin: As mismo, es un buen mecanismo para asegurar que la informacin procede de su autntica fuente. Ciertos mecanismos de los sistemas de cifrado permiten confirmar con absoluta certeza quin ha sido el emisor de un mensaje recibido. Desde muy antiguo, desde civilizaciones como la egipcia, la Criptografa ha sido una ciencia asociada con la proteccin de informacin de carcter militar o poltico. La historia de la Criptografa se divide en tres periodos. Hasta finales de los cuarenta era ms un arte que una ciencia: aunque algunos de los algoritmos de cifrado ya posean una consistente formulacin algebraica, carecan globalmente de una slida base matemtica. Esta se conoce como la poca de la Criptografa precientfica. Es a partir de 1948, con el surgimiento de la Teora de la Comunicacin de Shannon cuando comienza el periodo de la Criptografa cientfica, ms elaborada y con una amplia base matemtica. Finalmente, ser en el ao 1976
1

APUNTES DE SEGURIDAD

cuando se inaugure su poca actual con la aparicin de la Criptografa de clave pblica en una publicacin de Diffie y Hellman. Actualmente, la importancia de las telecomunicaciones en el mundo de la informtica ha convertido a la criptografa en una necesidad, y hoy en da es muy elevado el numero de investigadoras que se dedican a desarrollar algoritmos y protocolos de cifrado de la informacin. Su uso es generalizado en todos aquellos campos de la vida moderna en los que se necesita mantener la informacin en secreto o en los que se vela por la integridad de la misma evitando posible ataques para destruirla o manipularla. La criptografa es, de hecho, la nica herramienta fiable que asegura la posibilidad de transacciones electrnicas de informacin. Slo gracias a ella es posible realizar a distancia y de forma segura procesos tales como compras, firma de contratos o elecciones.

1. Qu es cifrar?
Es el proceso por el cual un mensaje (texto en claro) es transformado en otro ininteligible (criptograma) usando una funcin matemtica y una clave de cifrado. Por descifrar se conoce al proceso inverso, es decir, transformar el criptograma en el mensaje original (texto en claro) usando una funcin matemtica y una clave de descifrado. Un sistema de cifrado o criptosistema (figura 2.1) est constituido por un emisor que genera el mensaje original, un dispositivo cifrador que transforma el texto en claro en texto cifrado o criptograma , un canal de almacenamiento o transmisin, un dispositivo descifrador que recupera el mensaje original, y una receptora del mensaje. Obviamente, el elemento fundamental en el sistema de cifrado es el cifrador. Un cifrador est compuesto por un algoritmo de cifrado, generalmente una funcin matemtica, y una clave de cifrado que es usada como parmetro por dicho algoritmo. El mismo esquema se reproduce para el descifrador, con un algoritmo y una clave de descifrado. Ambos algoritmos y claves pueden coincidir pero no tienen por qu: todo depender del tipo de criptosistema que se este utilizando.

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

mensaje mensaje mensaje mensaje mensaje mensaje mensaje

clave algoritmo dispositivo cifrador

A A A A A A A

I= I= I= I= I= I= I=

A A A A A A A

mensaje mensaje mensaje mensaje mensaje mensaje mensaje

clave algoritmo dispositivo descifrador mensaje en claro

emisor

mensaje en claro

criptograma

receptor

Fig. 2.1: Estructura de un criptosistema.

Por otro lado, y tal y como se ha referenciado antes, existe el proceso de tratar de descifrar la informacin oculta sin el uso de la clave. A este proceso se le conoce como criptoanlisis, y a las personas que los llevan a cabo como criptoanalistas. Un buen sistema criptogrfico ser aquel que ofrezca un descifrado sencillo pero que su ruptura, su criptoanlisis, sea muy difcil o imposible.

2. Tcnicas bsicas utilizadas en Criptografa


Existen una serie de tcnicas bsicas, conocidas desde antiguo, que son la base del proceso de cifrado. Su objetivo es hacer ininteligible el mensaje, por lo que deben producir profundas transformaciones en su aspecto. Al mismo tiempo, deben garantizar la recuperabilidad de la informacin cifrada, por lo que deben ser inversibles.

2.1 Sustitucin.
En el texto en claro se cambian los bits, caracteres o bloques de caracteres, por otros, siguiendo una o varias reglas de sustitucin. Cuando estas reglas no varan a lo largo del mensaje (es decir, cuando el mismo bit, carcter o bloque se cifra de la misma manera independientemente de donde est situado), decimos que se trata de un mtodo de sustitucin monoalfabeto. El caso ms sencillo y conocido de estas tcnicas es el denominado mtodo de sustitucin monoalfabetico simple, que consiste en cambiar cada carcter por aquel situado p posiciones por delante en dicho alfabeto. La clave de cifrado resulta ser el nmero p. En el caso en que p=3 (figura 2.2) se le denomina mtodo CESAR, ya que era utilizado por Julio Csar para cifrar sus mensajes militares y polticos. Un mtodo ms general de sustitucin monoalfabeto puede establecerse ordenando aleatoriamente la secuencia de los smbolos del alfabeto, y usando este orden como un diccionario para guiar la transformacin.

Captulo 3: Cifrado de la Informacin

APUNTES DE SEGURIDAD

mensaje

mensaje

CIFRADO

CIFRADO

ohpvdmh Sustitucin simple Clave: 3 (Mtodo CESAR)

hbjezdb Sustitucin por diccionario Clave: zxcvbnmasdfghjklqwertyuiop

Fig. 2.2: Cifrado mediante sustitucin monoalfabtica.

Por ejemplo, si escogemos el orden aleatorio: zxcvbnmasdfghjklqwertyuiop se puede cifrar un mensaje emparejando la secuencia alfabtica con la obtenida, y haciendo la sustitucin correspondiente: abcdefghijklmnopqrstuvwxyz zxcvbnmasdfghjklqwertyuiop como se ilustra en la figura 2.2. En este caso la clave de cifrado es el diccionario concreto que se ha usado. Para evitar dar pistas a los posibles criptoanalistas sobre la longitud de las palabras implicadas en el mensaje, los espacios pueden tratarse como un carcter ms del alfabeto (con lo que tambin quedarn cifrados), o pueden eliminarse del criptograma resultante, confiando en que no dificulte la comprensin por parte del receptor. Este tipo de sustitucin no es un mecanismo muy resistente al criptoanlisis, debido a que en todos los lenguajes (tanto naturales como artificiales) algunas letras son ms frecuentes que otras. Esto permite a un criptoanalista determinar las sustituciones que se han practicado simplemente contando las apariciones de los distintos caracteres en el texto cifrado y tratando de emparejar cada carcter del criptograma con otro de frecuencia terica similar. En la misma lnea, otra pista que suelen usar los criptoanalistas para romper mensajes cifrados con tcnicas de sustitucin es considerar la frecuencia de aparicin de pares de
4 Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

caracteres (digramas), tros (trigramas), etc. Por ejemplo en castellano es frecuente encontrar los digramas de, la, ll, lo, le, pr o br, pero es imposible (o muy improbable) encontrar qy, gj o zr. Utilizando la Teora de la Informacin de Shannon es posible medir los distintos grados de redundancia (entropa) del criptograma, lo cul puede servir incluso para adivinar el idioma del mensaje original, y finalmente descifrarlo. Para tratar de enmascarar la frecuencia de ocurrencia natural de los caracteres se utilizan mtodos de sustitucin polialfabeto, en los que la forma de codificar una unidad de informacin cambia segn su posicin en el mensaje. Entre ellos podemos citar el mtodo Vigenre, que consiste en utilizar una serie de n claves de cifrado por desplazamiento en lugar de una sola, de forma que puedan usarse de forma consecutiva y cclica durante el cifrado del mensaje. Por ejemplo, si elegimos la clave numrica 5 3 4 6 8 9 de longitud 6, lo que se har es sustituir los caracteres situados en las posiciones 1, 7, 13, 19, etc del mensaje por aqullos que estn situados 5 lugares ms adelante en el alfabeto, los de las posiciones 2, 8, 14, 20, etc por los correspondientes situados 3 lugares ms adelante, etc. As el texto no te esperaba hasta la maana se cifrara como sigue: 534689534689534689534689534689 ++++++++++++++++++++++++++++++ no te esperaba hasta la maana rrdzmijvtkzjgddniaxddqiiqdrguj Si un criptoanalista posee la longitud n de la clave, su problema se reducir a resolver n criptogramas producidos por sustitucin simple. Adems existen tcnicas sencillas que pueden ser muy eficaces para determinar dicho perodo cuando el criptograma es lo suficientemente largo.

2.2 Transposicin
Tambin llamada permutacin, consiste en barajar o reordenar los bits, caracteres, o bloques que componen el mensaje en claro para que queden situados en posiciones distintas de las que tenan en un principio (figura 2.3). En este caso la clave es la permutacin aplicada para cifrar.

Captulo 3: Cifrado de la Informacin

APUNTES DE SEGURIDAD

mensaje

CIFRADO

ejesmna Transposicin Clave: 5364721


Figura 2.3. Cifrado mediante permutacin.

Un mtodo simple para hacer transposicin consiste en ordenar el texto de entrada en columnas de forma que queden n filas: 1 2 3 4 5 n rh a oeaal sbsaa tpat n ee ama

y obtener el criptograma leyendo por filas en un orden predeterminado, que resulta ser en este caso la clave. Por ejemplo, si tomamos 43152: tpat n sbsaan rh aee amaoeaal Otros mtodos de transposicin utilizan patrones geomtricos para transcribir el mensaje. Si dividimos el de antes en trozos de texto de tamao tal que al colocar unos sobre otros se produzca un cuadrado, obtendremos lo siguiente (en este caso se han suprimido los espacios): n s b t a o p a a t e h l a e r a a n e a s m a

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

Ahora se puede obtener el mensaje cifrado tomando los caracteres en espiral, desde el extremo superior izquierdo y siguiendo el sentido contrario a las agujas del reloj, con lo que obtenemos: nsbtaanamsaeetopaalaareh o bien leyndolo por diagonales, por ejemplo desde el extremo superior derecho: eeatrsoeamnphaasalnbaata Los mtodos de transposicin tambin son susceptibles de sufrir ataques criptoanalticos basados en las probabilidades de aparicin de los distintos caracteres.

2.3 Cifrado producto


En todo caso, las tcnicas de sustitucin y trasposicin no suelen utilizarse por separado, sino conjuntamente. El cifrado producto consiste precisamente en aplicar cifrados sucesivos combinando varias tcnicas. Se cifrar el texto en claro y el criptograma resultante ser de nuevo cifrado, y as tantas veces como se determine. Los los algoritmos de criptografa modernos suelen basarse en la aplicacin de varias iteraciones de cifrado al mensaje, estando presentes en cada una de ellas procedimientos basados en la sustitucin y en la transposicin. Esta tcnica eleva notablemente la seguridad de cada uno de los sistemas de cifrado que lo componen. Adems es corriente la utilizacin de otras operaciones, como pueden ser las de tipo lgico, que actan bit a bit sobre el mensaje y la clave. Un ejemplo muy tpico es la funcin XOR, que cumple la condicin de reversibilidad necesaria para asegurar la existencia de descifrado, y tambin son corrientes algunas operaciones aritmticas modulares.

3. Estrategias bsicas de cifrado


La tcnica o tcnicas concretas de cifrado que vayamos a utilizar estn a su vez condicionadas por la estrategia de cifrado. Bsicamente hay que decidir sobre qu unidad de informacin actuar el algoritmo, y en este sentido se plantean dos posibilidades.

3.1 Cifrado en flujo


En el cifrado en flujo el algoritmo va cifrando el mensaje a medida que avanza. Idealmente cada bit de informacin es codificado sin esperar al siguiente, y adems la forma de cifrar va cambiando de manera dinmica. Ese cambio no debe obedecer a un esquema cclico (como en el mtodo de Vigenre), pues entonces el criptograma podra dividirse en unidades funcionales menores para su anlisis. La forma ms segura de conseguir esto es disponiendo de una clave arbitrariamente larga (idealmente infinita), que consiga que dos partes diferentes del mensaje se codifiquen de forma distinta e independiente, en funcin de la porcin de clave utilizada.

Captulo 3: Cifrado de la Informacin

APUNTES DE SEGURIDAD

Si se sigue este mtodo al pi de la letra tenemos el mtodo de Vernam, en el que cada carcter o bit del mensaje en claro se combina con un carcter o bit de la clave (que, no lo olvidemos, debe ser tan larga como el propio mensaje). El primero del texto en claro se codifica con el primero de la clave y as sucesivamente hasta terminar el mensaje. Podemos pensar en el mtodo de Vernam como un caso lmite del de Vigenre, con ciclo de la clave infinita. Si queremos cifrar el mensaje de siempre y, por ejemplo, obtenemos la clave del texto de El Quijote, tendremos: en un lugar de la mancha de cu ++++++++++++++++++++++++++++++ no te esperaba hasta la maana rb r pnwfjaff sbsobniamesapv donde, por ejemplo, la n inicial del mensaje (14 carcter) se codifica mediante la e inicial de la clave (5 carcter) produciendo una r en el criptograma (14+5=19 carcter). El mtodo de Vernam puede ser extraordinariamente seguro si se cumplen dos condiciones: La clave debe ser de un solo uso. Los bits de la clave deben ser perfectamente aleatorios. De hecho, si se cumplen estas dos condiciones el mtodo de Vernam se convierte en el nico algoritmo criptogrfico incondicionalmente seguro: es absolutamente imposible recuperar el mensaje sin conocer la clave. Pero no son fciles de cumplir. La primera condicin nos exige que la clave sea tan larga como la secuencia de todos los mensajes que hemos de enviar por ese canal en toda su historia. Y, naturalmente, esa clave debe ser compartida por emisor y receptor. Pero la segunda condicin nos impide utilizar trucos como el de El Quijote (usar una obra larga ya escrita, fcilmente compartible, como clave). De hecho nos impide usar casi cualquier cosa (una secuencia de temperaturas tomadas en la estacin de Igeldo, o los resultados de la tercera divisin de la liga polaca de ftbol en los ltimos setenta aos, no seran en ningn caso secuencias aleatorias). La mayor parte de los algoritmos de generacin de nmeros seudoaleatorios son inservibles para la criptografa, ya que contienen regularidades explotables para el criptoanlisis. Existen, sin embargo, algoritmos ms complejos denominados Generadores de Secuencias Cifrantes que, a partir de una clave razonablemente corta (digamos 128/256 bits) producen una secuencia de bits criptogrficamente segura.

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

3.2 Cifrado por bloques


El sistema de cifrado en flujo resulta excesivamente complicado para la mayor parte de las aplicaciones prcticas de la criptografa, y suele reservarse para casos en los que el volmen de la informacin transmitida es bajo, pero cuya confidencialidad es cuestin de vital importancia. Alternativamente, la mayor parte de los algoritmos en uso utilizan el cifrado por bloques, mucho ms econmico y sencillo de gestionar. no te esperaba hasta la maana
(mensaje en claro)

no te /espera/ba has/ta la /maana

(mensaje en bloques)

CIFRADO

694837

Clav

adxsgh/mtakhu/odjhzd/sdjzgd/irjrhp

adxsghmtakhuodjhzdsdjzgdirjrhp
Fig. 2.4: Cifrado por bloques.

Esta estrategia consiste en descomponer el mensaje en claro en bloques de caracteres (o de bits) de la misma longitud, cifrando cada uno de ellos mediante el mismo algoritmo de cifrado y la misma clave. Lo que se obtiene es una sucesin de criptogramas independientes del tamao de un bloque. La figura 2.4 muestra un ejemplo de cifrado por bloques donde el texto en claro se divide en bloques de 6 caracteres, y el cifrador utiliza una sustitucin polialfabtica con la clave indicada seguida de una doble trasposicin (inversin y doble desplazamiento a la derecha). En la figura se observa cmo son procesados los bloques del texto en claro. Por ejemplo, el segundo bloque sufre la aplicacin de la clave produciendo k a t m u h , y entonces se aplica la trasposicin indicada (inversin y desplazamiento) lo que nos produce primero h u m t a k y por fin m t a k h u . Los algoritmos de cifrado en bloque son bastante seguros, aunque no tanto como los de flujo. Los bloques se suelen tomar de 64/128 bits, lo cual es razonable para la mayor parte de textos, pero resulta muy inapropiado para documentos con un alto grado de formateo o con una estructura muy regular (como pueden ser los grficos). En este ltimo caso corremos el riesgo de que se repita el mismo bloque en varios lugares, lo que puede proporcionar una ayuda inestimable al criptoanalista. Para prever estos problemas los algoritmos de cifrado en

Captulo 3: Cifrado de la Informacin

APUNTES DE SEGURIDAD

bloque suelen admitir distintos modos de cifrado, permitiendo por ejemplo que el cifrado de un bloque condicione el del siguiente (modo encadenado).

3.3 Confusin y difusin


Cualquier estrategia de cifrado debe tener en cuenta dos aspectos: la confusin y la difusin. Por confusin se entiende que la frecuencia de aparicin de los smbolos cifrados no revele ninguna informacin sobre los smbolos en claro de los que proceden. Es decir, que propiedades estadsticas de los smbolos de un lenguaje (por ejemplo, en el castellano la u despus de la q aparece siempre) no revelan ninguna informacin a la criptoanalista. Las sustituciones y las operaciones lgicas y aritmticas tienen como objetivo aumentar la confusin en el criptograma. Por otro lado, se consigue mayor difusin cuanto ms se disperse un smbolo en claro sobre los smbolos de cifrado. De esta manera, las propiedades estadsticas de las palabras del mensaje se diseminan por todo el criptograma. La forma ms usual de aumentar la difusin es mediante transposiciones. Por ejemplo, un cifrado de flujo posee una gran confusin dado que un mismo carcter del mensaje de entrada puede ser cifrado en muy distintos caracteres, mientras que su difusin es pequea ya que cada carcter en claro da lugar a un carcter en cifrado. Sin embargo, los algoritmos de cifrado por bloques estn obligados a incluir un alto nivel de difusin, ya que las pequeas unidades de informacin que manejan hacen que la confusin no sea por s misma un mecanismo suficientemente seguro. Por ello se implementan de forma que el simple cambio de un bit en la entrada produzca grandes cambios en la secuencia de salida (dentro del mismo bloque, claro est).

4. Tipos de algoritmos criptogrficos.


An combinando los elementos de los apartados anteriores, las distintas aplicaciones de la Criptografa y los avances que en su seno se han producido han determinado la existencia de tres grandes grupos de criptosistemas: de clave secreta, de clave pblica e irreversibles. Aparte de ellos existen otros algoritmos relacionados con la criptografa pero cuya misin no es cifrar, sino obtener otro tipo de componentes necesarios para el desarrollo de un protocolo criptogrfico.

4.1 Criptosistemas de clave secreta


Tambin llamados criptosistemas de clave privada, de clave nica, simtricos o convencionales. Son los herederos de la criptografa clsica, y utilizan un esquema de cifrado con una nica clave, que debe ser usada y compartida en secreto por emisor y receptora

10

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

(figura 2.5). La principal ventaja que presentan es su simetra. Los papeles del emisor y la receptora son intercambiables dado que ambos emplean la misma clave. Por otro lado son los criptosistemas ms estudiados, y por tanto los ms seguros. Adems suelen estar implementados por algoritmos muy eficientes, a menudo directamente sobre hardware. No tienen alternativa cuando se trata de utilizar la criptografa para proteger informacin que no interviene en protocolos de comunicacin (por ejemplo, cifrado de material reservado en discos duros, o de copias de seguridad para evitar su utilizacin indebida). Estos sistemas, adems de asegurar la confidencialidad de la informacin, permiten autenticacin de la emisora: siempre que la clave permanezca en secreto, el receptor tiene la seguridad de que la emisora es quien dice ser y no un suplantador, dado que hipotticamente son ellos dos los nicos que conocen la clave. Sin embargo esta autenticacin no tiene valor fuera de los agentes de la comunicacin, dado que se basa en la confianza mutua, y no puede ser utilizada ante terceros para evitar la repudiacin de un mensaje por parte de quien lo ha escrito. Siempre se puede alegar que ha sido la otra parte quien lo ha escrito y cifrado, o si no, que ha sido otra persona a quien la otra parte ha suministrado indebidamente la clave.

Este es el mensaje

CIFRADO

694 837 Clave secreta

18492432346736342983745

DESCIFRADO

694 837 Clave secreta

Este es el mensaje
Fig. 2.5: Criptosistema de clave secreta.

Por otro lado, estos sistemas tienen un punto dbil: la necesidad de compartir la clave secreta entre emisor y receptora. Se supone que estos no consideran seguro su canal de comunicacin normal (en otro caso, para qu rayos querran usar la criptografa?), as que es preciso utilizar otro canal para compartir la clave: contacto personal, llamada telefnica, correo certificado, etc. Esto es un problema severo en el mundo actual, en el que es necesario

Captulo 3: Cifrado de la Informacin

11

APUNTES DE SEGURIDAD

comunicarse a distancia con un gran nmero de personas u organizaciones con las que no se ha tenido jams contacto previo. Adems estos criptosistemas presentan graves problemas de gestin de claves, debido a que el nmero de claves secretas requeridas crece mucho con el de personas implicadas. Por cada dos interlocutoras se necesita una clave, por lo que para n interlocutoras el nmero de claves necesarias sera n(n-1)/2. Para una red de comunicaciones con 25 personas esto supone la necesidad de gestionar el secreto de 300 claves. Adems, cada persona debe recordar 24 claves, una por cada posible interlocutora, y ello utilizando mtodos que no comprometan su confidencialidad. Imagnese el caso de una empresa de venta a distancia, cuyas necesidades de confidencialidad en las transacciones con sus clientes son obvias. La empresa debe ponerse de acuerdo con un enorme nmero de clientes para acordar claves de cifrado y asegurar la comunicacin (y en este caso el telfono no es un medio seguro), y luego debe gestionar el secreto de dichas claves. Si una sola de ellas es revelada y ello llega al dominio publico, la credibilidad de la empresa, que es su activo ms importante en este tipo de negocios, quedara comprometida, y con ella su supervivencia. Adems existe un problema adicional: la responsabilidad compartida en la gestin del secreto de la clave. La empresa no tiene posibilidad de controlar el grado de fiabilidad de sus clientes, que podran revelar su clave (involuntaria o intencionadamente) y luego acusar a la empresa de infidelidad en su custodia (para no responsabilizarse de su error o para hundirla, por ejemplo, por encargo de la competencia). Este es slo un pequeo ejemplo de los problemas asociados a los criptosistemas clsicos, pero que nos permite imaginar por qu se han hecho tan populares en tan poco tiempo los basados en la llamada criptografa de clave pblica. Existe una variante muy conocida de los criptosistemas de clave secreta que se denominan de clave de un slo uso (one-time pads). En estos tanto el emisor como el receptor poseen un libro de claves, de forma que cuando se manda un primer mensaje se cifra con la primera clave. Esa clave se desecha y el siguiente mensaje que se enva se hace con la segunda clave y as sucesivamente. Este mtodo es muy apropiado si el volumen de informacin implicada es bajo y sus exigencias de confidencialidad son extremas. Variantes del mismo han sido muy utilizadas por los espas en la poca de la guerra fra.

4.2 Criptosistemas de clave pblica.


Tambin llamados de doble clave o asimtricos, estn basados en la existencia de dos claves distintas: una para cifrar y la otra para descifrar (figura 2.6). A pesar de la estrecha relacin entre ambas claves, disponer de una de ellas no permite recuperar la otra. Esto conlleva que la clave de cifrado pueda hacerse pblica sin peligro de que nadie averige la de descifrado, cuyo secreto puede ser mantenido.

12

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

Este es el mensaje

CIFRADO

3743427 Clave pblica

18492432346736342983745

DESCIFRADO

8352102 Clave privada

Este es el mensaje
Fig. 2.6: Criptosistema de clave pblica.

El sistema se pone en marcha mediante la generacin y distribucin de las claves: 1. Cada usuaria que desee utilizar criptografa de clave pblica en sus comunicaciones genera un par de claves: una para el cifrado y la otra para el descifrado. 2. Entonces da a conocer a todo el mundo su clave de cifrado, que se convierte en su clave pblica. Por otro lado mantiene secreta su clave de descifrado, que se convierte en su clave privada. A partir de este momento puede recibir mensajes confidenciales. criptogrfico asociado es el siguiente: El protocolo

1. Si Alicia desea enviar un mensaje confidencial a Bernardo, debe disponer de la clave pblica de este ltimo (esta clave es asequible para todo el mundo) 2. Alicia cifra el mensaje utilizando la clave pblica de Bernardo. 3. Alicia enva el mensaje cifrado a Bernardo. 4. Bernardo recibe el mensaje y lo descifra usando su propia clave privada (nicamente conocida por l). Si el mensaje es interceptado por alguien ms no podr ser descifrado (ni siquiera por la propia Alicia, que es quien lo ha escrito y cifrado). Este tipo de criptosistemas supera dos de los problemas inherentes a los de clave secreta, ambos relacionados con la gestin de claves. Primero, no se necesita un canal seguro para enviar una clave, ya que esta es pblica y podr ser utilizada por todos aquellos que

Captulo 3: Cifrado de la Informacin

13

APUNTES DE SEGURIDAD

deseen remitir informacin a la poseedora de la clave privada. Segundo, si pensamos en una comunidad de n interlocutores, el nmero mximo de claves que se necesita es de 2n frente a las n(n-1)/2 que se necesitaban en los criptosistemas simtricos. Adems cada usuario slo debe recordar y proteger una sola clave. Sin embargo, se presenta un problema que no tenan los sistemas simtricos: no permiten la identificacin de la emisora. Al ser la clave pblica no sabemos si el mensaje es de quien dice ser o de alguien que la est suplantando. Este problema se resuelve en la prctica gracias a una caracterstica que tienen muchos criptosistemas de clave pblica: es posible intercambiar el papel de las claves. En ese caso tenemos que la clave privada puede usarse para cifrar, sabiendo que el criptograma correspondiente es descifrable mediante la clave pblica. El protocolo criptogrfico asociado a la autenticacin del remitente sera el siguiente: 1. Dado que Alicia desea enviar un mensaje a Bernardo de forma que este pueda estar seguro de quin procede, usar su propia clave privada (que slo es conocida por ella) para cifrar el mensaje. 2. Alicia enva el mensaje cifrado a Bernardo. 3. Bernardo recibe el mensaje y lo descifra usando la clave pblica de Alicia (asequible para todo el mundo). La autenticacin as conseguida tiene una dimensin pblica, dado que cada usuaria es la nica responsable del secreto de su clave privada. Por eso mismo es posible utilizar este mecanismo para evitar la repudiacin de mensajes, lo que en el futuro podr tener consecuencias legales. El problema es que si un mensaje construido segn el protocolo anterior es interceptado por alguien ms, podr ser fcilmente descifrado con la clave pblica del emisor. Afortunadamente existen numerosas formas de utilizar la criptografa de clave pblica para asegurar al mismo tiempo los servicios de confidencialidad y autenticacin, que estudiaremos ms adelante cuando nos ocupemos de los mecanismos de firma digital.

4.3 Sistemas Hbridos


Con todo, los algoritmos que implementan la criptografa de clave pblica son, en general, mucho menos eficientes que los de clave secreta (que pueden ser entre 100 y1000 veces ms rpidos). Ello ha llevado al diseo de sistemas y protocolos que utilizan ambos tipos de criptografa, para intentar que los algoritmos de clave pblica no tengan que ser usados para grandes conjuntos de datos. Un ejemplo tpico es el establecimiento de claves de sesin, que es muy utilizado por sistemas de tipo hbrido: 1. Si Alicia desea establecer una comunicacin confidencial con Bernardo, generar una clave de sesin aleatoria para codificar convencionalmente dicha comunicacin (esta clave, de momento, slo es conocida por Alicia). 2. Alicia cifra la clave de sesin utilizando la clave pblica de Bernardo.
14 Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

3. Alicia enva la clave de sesin cifrada a Bernardo. 4. Bernardo recibe la clave de sesin cifrada y la descifra usando su propia clave privada. 5. A partir de este momento Alicia y Bernardo comparten secretamente la clave de sesin, y se podrn comunicar utilizando un algoritmo simtrico (ms eficiente) y dicha clave. 6. Al final de la comunicacin, la clave es desechada Este protocolo puede complicarse a voluntad para adaptarse a diferentes especificaciones de seguridad, o para proporcionar adicionalmente servicio de autenticacin.

4.4 Sistema de cifrado irreversible


Estos criptosistemas estn construidos a partir de algoritmos irreversibles, es decir para los que no existe un algoritmo descifrador. Lgicamente se utilizan slamente cuando no es necesario recuperar el mensaje en claro. Un ejemplo tpico se produce cuando el mensaje en claro es un trozo de informacin que slo es conocido por una persona (o por un sistema). Entonces dicha informacin puede ser utilizada para autenticar a su poseedor, y se llama contrasea o clave de autenticacin. El poseedor de la contrasea la exhibe en el momento de autenticarse, y el sistema autenticador comprueba que es quin dice ser, y no una suplantadora, comparndola con la que tiene almacenada. Ahora bien, esa necesidad de almacenamiento de la contrasea para cotejarla cada vez que el poseedor de la misma necesite autenticarse plantea numerosos problemas de seguridad, pues debe ser protegida frente a las sustracciones. La forma de resolverlo es almacenar la contrasea cifrada por un mecanismo irreversible. Cuando llegue el momento de proceder a la autenticacin bastar con cifrar la contrasea suministrada por su poseedor para autenticarse y comparar el criptograma obtenido con el almacenado. La aplicacin ms conocida de este tipo de sistemas es la gestin de claves de acceso a un ordenador multiusuario. El sistema suele almacenar en formato cifrado las contraseas de todas las usuarias. As, cuando una usuaria accede al sistema, su identidad quedar probada si, al serle requerida la contrasea, proporciona una cuyo cdigo cifrado coincide con el almacenado. Desde luego el almacenar las contraseas cifradas provee al sistema una gran seguridad, ya que a partir de ellas no se pueden obtener las contraseas originales al tratarse de criptografa irreversible. La seguridad de este sistema estriba en el uso que hace de funciones matemticas computacionalmente no invertibles, es decir, aquellas cuya inversa es imposible de computar en un tiempo razonable, al menos con la potencia de calculo que proveen las mquinas actuales.

Captulo 3: Cifrado de la Informacin

15

APUNTES DE SEGURIDAD

El sistema Unix usa como algoritmo la funcin de biblioteca crypt. Este utiliza la contrasea del usuario como clave del algoritmo DES (vase la siguiente seccin) para cifrar un texto en claro de 64 bits (generalmente todo ceros). El resultado es un texto cifrado de 64 bits. Este proceso se repite con el texto cifrado hasta 25 veces. El resultado final, un texto cifrado de 64 bits, se concatena con dos bits cero, con lo que se obtienen 66 bits, que se transforman en 11 caracteres imprimibles, y que se almacenan en el fichero de contraseas /etc/passwd.

4.5 Funciones de dispersin (one-way hash)


En la misma lnea que el apartado anterior, algunas aplicaciones de la Criptografa requieren cifrar mensajes que luego no es necesario recuperar, porque el criptograma se utilizar slo a efectos de comprobacin. Ejemplo de ello son los comprobadores de integridad de documentos, que se usan nicamente para verificar que no se ha sufrido ninguna alteracin. La complejidad de algunos algoritmos criptogrficos (sobre todo los de clave pblica) hace que este tipo de necesidades se cubra con las llamadas funciones de dispersin o de comprobacin aleatoria. Una funcin de dispersin acta sobre un documento de tamao variable y lo reduce a un resmen criptogrfico (message digest) de tamao fijo (por ejemplo 128 bits). Aunque en el proceso se pierde la informacin original y en teora es posible construir otros mensajes diferentes que produzcan el mismo resmen, las propiedades de dispersin del algoritmo hacen impracticable la construccin de ni tan siquiera otro mensaje que comparta dicho resmen. Por tanto, se puede estar seguro de que el mensaje original y su resmen (que en ocasiones se denomina huella dactilar) se corresponden entre s. Las funciones de comprobacin aleatoria se utilizan en multitud de protocolos criptogrficos, siendo un ejemplo muy notable de los cuales el representado por la firma digital. Se pretende buscar un sistema que permita autenticar al remitente hasta el punto de que no pueda repudiar el mensaje enviado. Esto exige que el sistema de firma digital sea infalsificable, pero adems debe imposibilitar la alteracin del documento y la reusabilidad de la firma para otros propsitos. Aunque es posible definir protocolos que resuelven el problema mediante criptografa convencional, los problemas de gestin de claves han determinado su implementacion preferente mediante la criptografa de clave pblica. Una primera aproximacin sera mejorar el protocolo del apartado 4.2 para asegurar la confidencialidad al tiempo que la autenticacin de la remitente. Ello puede conseguirse si ciframos el mensaje una vez realizada la firma. El protocolo sera: 1. Alicia primeramente firma el mensaje M: para ello lo cifra utilizando su propia clave privada, obteniendo el criptograma firmado F. 2. Seguidamente Alicia vuelve a cifrar F utilizando la clave pblica de Bernardo. As obtiene otro criptograma K. 3. Alicia enva K a Bernardo.

16

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

4. Bernardo recibe el mensaje dos veces cifrado K, y lo descifra primeramente mediante su propia clave privada. De esta forma recupera F. 5. Por ltimo Bernardo recupera M a partir de F descifrndolo con la clave pblica de Alicia. En este momento comprueba que el mensaje no ha sido alterado y que ha sido enviado efectivamente por Alicia. Pero en la prctica las cosas cambian, y debido al consumo de recursos que supone cifrar con un algoritmo asimtrico todo el mensaje (y adems dos veces), se aconseja el uso de otro procedimiento de firma digital, igualmente fiable pero mucho ms eficiente. En l vemos cmo se combinan las distintas tcnicas y conceptos que se han citado hasta ahora: 1. Alicia aplica una funcin de comprobacin aleatoria (funcin hash) al mensaje original M, obteniendo una versin reducida m. 2. Alicia firma el resmen m usando su clave privada, y obteniendo la firma f. 3. Alicia genera una clave de sesin aleatoria s (de momento, slo ella la conoce). 4. Despus Alicia concatena el mensaje original M con firma f y cifra convencionalmente el resultado con la clave de sesin s. Obtiene entonces un criptograma K. 5. Para poder enviar la clave de sesin de forma segura, Alicia cifra s utilizando la clave pblica de Bernardo y obtiene con ello el criptograma c. 6. Finalmente, Alicia concatena K y c y enva el resultado a Bernardo. 7. Bernardo descifra c con su clave privada, con lo que recupera la clave de sesin s. 8. Utilizando s ahora Bernardo puede descifrar K, con lo que obtendr el mensaje M original y su firma f. As comprueba que no ha sufrido alteraciones. 9. Utilizando la clave pblica de Alicia, Bernardo descifra f y recupera el resmen m del mensaje 10. Por ltimo Bernardo aplica a M la misma funcin de dispersin que utiliz Alicia, y compara el resultado con m. Si son exactamente iguales, comprueba que el documento ha sido efectivamente firmado por Alicia. Obsrvese que, tal como se indic, la firma f slo tiene validez para el mensaje M, no pudiendo ser reutilizada por Bernardo ni por terceras personas. La seguridad que provee un sistema de firma digital sobre la autenticidad del emisor ha hecho que en pases como EE.UU. pueda utilizarse incluso como firma legal.

4.6 Generadores de nmeros aleatorios


Existen muchas ocasiones en las que un protocolo criptogrfico exige la generacin de nmeros aleatorios. Ejemplo de ello son las claves de sesin (vanse las secciones 4.3 y 4.5). Adems los pares clave pblica/clave privada necesarios para implementar la criptografa

Captulo 3: Cifrado de la Informacin

17

APUNTES DE SEGURIDAD

asimtrica se generan en un proceso relativamente complejo que tambin requiere la produccin de nmeros aleatorios. Del mismo modo que se indic en la seccin 3.1 en torno al cifrado de Vernam, la generacin de estos nmeros no debe estar sujeta a ningn tipo de regularidades que puedan llevar a reconstruir los procesos de generacin de claves, y en este sentido los generadores de nmeros seudoaleatorios que se utilizan normalmente son terriblemente inapropiados. Es por ello que dentro de la propia Criptografa se ha desarrollado una importante rama que se dedica a disear algoritmos criptogrficamente seguros para la produccin de nmeros aleatorios.

5. Ejemplos de algoritmos criptogrficos


Nos limitaremos a citar ejemplos representativos que sustentan las principales clases de criptosistemas de entre las citadas en la seccin anterior, procurando que el examen de cada algoritmo aporte luz a la comprensin de los principales problemas que surgen en su clase.

5.1 DES (Data Encryption Standard)


DES es uno de los algoritmos de cifrado que histricamente ha obtenido mayor expansin, incluso en el mundo de la empresa privada. El hecho de que en 1997 se hiciera pblico el resultado de un ataque exitoso, por fuerza bruta, pero con un coste razonable, seguramente supondr su progresiva desaparicin a corto plazo, pero an constituye una referencia importante en el mundo de la criptografa comercial. DES fue desarrollado en los aos setenta y patentado por investigadores de IBM. En 1977 IBM hizo pblico este algoritmo, y el National Bureau of Standard de EEUU (NIST) lo anunci como un nuevo algoritmo estndar para su utilizacin en el cifrado de informaciones gubernamentales no clasificadas. Desde esa fecha ha sufrido distintas revisiones y actualizaciones, la ltima de ellas en 1993. Con este algoritmo se construyen sistemas simtricos utilizando una clave nica para el emisor y receptor de 64 bits (8 octetos) de los cuales slo 56 son significativos (el ltimo octeto es de paridad). El texto en claro o mensaje a cifrar se descompone en bloques de 64 bits que se van cifrando uno por uno con la clave. Se utiliza el mismo algoritmo para cifrar y descifrar, aunque la clave no se utiliza de la misma manera en ambos casos. El cifrado de cada bloque con este algoritmo pasa por tres fases. Primeramente los 64 bits del bloque atraviesan una etapa de transposicin conocida y siempre fija, y como ltima fase se realiza justamente la transposicin inversa a la inicial. Entre medias se sita el cuerpo fundamental de DES formado por 16 iteraciones, en cada una de las cuales se realizan las mismas operaciones de sustitucin y transposicin. En la iteracin i-sima es seleccionada una combinacin particular de bits de la clave, denominada subclave i-sima. Por su parte, los 64 bits resultantes de la iteracin anterior se dividen en dos mitades de 32 bits que se

18

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

intercambian entre si, esto es, la mitad de la derecha pasa a ocupar la parte izquierda y viceversa. Una de las mitades no sufre transformacin alguna, pero la otra es manipulada mediante sucesivas sustituciones, tranposiciones y operaciones lgicas simples (XOR) con la correspondiente subclave y con la mitad contraria antes de terminar la iteracin. Toda esta sucesin de operaciones tiene la propiedad de poder invertirse con exactamente el mismo algoritmo, pero usando las subclaves en orden inverso. Tambin se ha tenido en cuenta en su diseo que la forma de sus operaciones (lgica y aritmtica de 64 bits) y su combinacin repetitiva permita su implementacin sencilla en hardware (usando tecnologa de los aos 70). Las versiones modernas en hardware del algoritmo han llegado a velocidades de cifrado 1 Gb/s, en contraste con los 10M/s que se consiguen como tope en las mejores versiones software para equipos convencionales. Las implementaciones hardware se utilizan sobre todo como modems de cifrado e interfaces de redes. Finalmente, la estructura de este algoritmo hace que se cumplan las propiedades que se enumeran a continuacin y que hacen difcil su criptoanlisis: Dependencia entre smbolos: Cada bit del texto cifrado es una funcin compleja de todos los bits de la clave y de todos los bits del texto original (por bloques). Perturbaciones en la entrada: Un cambio en un bit del mensaje original produce el cambio de aproximadamente el 50% de los bits del bloque cifrado. Perturbaciones en la clave: Un cambio en un bit de la clave produce el cambio de aproximadamente la mitad de los bits del bloque cifrado. Existen cuatro modos de funcionamiento de este algoritmo, dos de las cuales adems de cifrar comprueban que el mensaje recibido concuerda con el enviado, verificando la precisin de la transmisin y detectando posibles ruidos o problemas en la comunicacin. Aunque ha sido ampliamente usado, estimndose en varios cientos de miles los dispositivos fsicos que lo implementan vendidos en el mundo, siempre existieron dudas acerca de su seguridad, fundamentalmente por el tamao excesivamente reducido de su clave. Se escribieron artculos detallando cmo se podran construir dispositivos de propsito especfico capaces de romper el cdigo en pocos das. Tambin se han hicieron pruebas que, mediante la divisin y el reparto de su espacio de claves entre miles de ordenadores personales de usuarios de Internet, consiguieron romperlo en semanas. Finalmente se construy una mquina de propsito especfico capaz de reventar mensajes cifrados en DES en una media de 35 horas, con un coste de unos 40 millones de pesetas. Dado que la mquina descubre la clave de cifrado por bsqueda exhaustiva, es de prever que DES deje de utilizarse en un lapso de tiempo relativamente corto. Se puede decir que DES ha sido vctima de su propia eficiencia, ya que las enormes velocidades de cifrado y descifrado conseguidas han sido las que a la postre han posibilitado certificar su defuncin.

Captulo 3: Cifrado de la Informacin

19

APUNTES DE SEGURIDAD

5.2 Otros algoritmos de clave secreta


De todos modos, mucho antes de que se comprobara su debilidad, las sospechas sobre los problemas de resistencia de DES han orientado el trabajo de muchas investigadoras hacia el diseo de otros algoritmos para mejorarlo o sustituirlo. Las condiciones bsicas que se han perseguido son aumentar el nmero de bits de la clave y eliminar algunos elementos oscuros del diseo de sus iteraciones que siempre provocaron suspicacias acerca de la existencia de puertas traseras intencionadas. As algunos investigadores directamente sugieren aplicar el algoritmo repetidas veces (dos, tres, ..., n veces) con una clave n veces ms larga que se divide en n trozos, para poder usar una clave diferente en cada iteracin. De esta forma se consiguen aumentar los 16 ciclos de aplicacin del algoritmo original, y ampliar con ello su resistencia. Sin embargo se ha comprobado que el segundo cifrado apenas aumenta la seguridad del algoritmo, por lo que se ha creado el algoritmo conocido como triple DES, que utiliza dos claves (K1 y K2) de 56 bits y que consigue el mismo efecto que si se utilizase una clave de 112 bits. Bsicamente el algoritmo hace tres llamadas al algoritmo DES convencional: primero cifra el texto normal con la clave K1, descifra el resultado con la clave K2 y finalmente vuelve a cifrar con la clave K1. Otra propuesta ha sido la del algoritmo IDEA (International Data Encryption Algorithm) desarrollado por expertas suizas. Este no est basado en DES, pero tambin trabaja sobre bloques de texto en claro de 64 bits. Realiza 8 iteraciones sobre la entrada, y en cada una de ellas utiliza seis subclaves de 16 bits obtenidas a partir de la clave original (que es de 128 bits). Las operaciones utilizadas en cada iteracin son sorprendentemente simples y eficientes: disyuncin exclusiva (XOR), suma mdulo 216 y producto mdulo 216+1, no existiendo ni sustituciones ni permutaciones explcitas. Este algoritmo resulta muchsimo ms seguro y por tanto ms atractivo que el algoritmo DES. El ataque por fuerza bruta resulta impracticable, ya que sera necesario probar 2128 3,41038 claves, cantidad imposible de manejar con ningn medio informtico, ni actual ni futuro. Aunque en EEUU existe el proyecto de sustituirlo por un algoritmo propio, durante mucho tiempo ha sido considerado como el algoritmo simtrico ms seguro de cuantos han alcanzado difusin pblica (no olvidemos que la criptografa militar o la empleada por servicios de inteligencia probablemente esconda criptosistemas mucho ms avanzados y complejos que los conocidos). Por esta razn, este algoritmo est consiguiendo un alto grado de penetracin en el mercado, y se utiliza en numerosos paquetes de seguridad que se venden para ordenadores personales y redes.

5.3 RSA
El algoritmo RSA (iniciales de sus creadores Rivest, Shamir y Adleman) lleg a considerarse casi como un estndar en criptografa de clave pblica. Pero lo ms importante para nuestros propsitos es que ilustra muy bien cuales son los principios de construccin de estos criptosistemas, y es por ello que vamos a describirlo con cierto detalle.

20

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

5.3.1 Fundamentos del algoritmo


La especificacin del problema es la siguiente: se busca un par de algoritmos de cifrado (Z) y descifrado (D) que operen con el sistema de clave pblica/clave privada: debe ser posible encontrar un par de claves gu y gr que satisfagan que, para cualquier mensaje M, lo cifrado con una clave pueda ser descifrado con la otra y viceversa, es decir: D(Z(M, gu), gr) = M D(Z(M, gr), gu) = M La idea de RSA estriba en: Considerar cada mensaje M como un nmero, y definir las operaciones de cifrado y descifrado como aritmticas. Conseguir que los algoritmos Z de cifrado y D de descifrado sean el mismo. Concebir la operacin de cifrado como una exponenciacin en aritmtica modular. Es decir, que el criptograma K (un nmero) se obtiene a partir del mensaje M (otro nmero) de la forma: K = Mc mod n Dado que queremos que el descifrado se realice de igual manera, pero con una clave diferente, la recuperacin del mensaje original ser de la forma: M = Ks mod n La idea es que c sea un exponente conocido asociado a la clave pblica, mientras que s sera un exponente secreto, asociado a la clave privada. Para que esto funcione necesitamos elegir n, c y s de forma que: Ks mod n = (Mc mod n)s mod n = Mcs mod n = M Si conseguimos esto, la condicin de poder intercambiar las claves de cifrado y descifrado vendr por aadidura, ya que dar lo mismo elevar primero a un exponente y luego al otro o viceversa. Veamos como se consigue en RSA la eleccin de valores adecuados para que todo cuadre. Cuando un usuario quiere empezar a utilizar el algoritmo el sistema escoger al azar dos nmeros primos muy grandes p y q (con cientos de dgitos). A continuacin se computa su producto n, que ser el valor utilizado para calcular los mdulos. La teora de nmeros (ms concretamente, el teorema de Euler) asegura que, en estas condiciones, cualquier exponente e que sea primo relativo a (p-1)(q-1) cumple: Me mod n = M
Captulo 3: Cifrado de la Informacin 21

APUNTES DE SEGURIDAD

para cualquier M menor que el valor n (esto se debe a que (p-1)(q-1) es exactamente el nmero de valores menores que n que son primos entre s con n = pq). La restriccin en el tamao del mensaje M no es un problema, si consideramos un algoritmo de cifrado por bloques. Como no estamos buscando un solo exponente, sino dos, para obtener la ansiada propiedad: Mcs mod n = M necesitaremos dos nmeros s y c que sean inversos multiplicativos mdulo (p-1)(q-1) (consiguiendo as que su producto sea primo relativo con este ltimo nmero). Por tanto, el sistema determina un nmero s de forma que (p-1)(q-1) y s sean primos entre s, y finalmente calcula su inverso multiplicativo c mdulo (p-1)(q-1). La clave pblica estar compuesta por la informacin necesaria para cifrar un mensaje, es decir por el par gu = <c,n>, y la clave privada ser gr = <s,n>, pues es cuanto se necesita para descifrarlo. Una vez generadas las claves los valores p y q son destruidos. Si no se hiciera as, cualquiera podra repetir los pasos para obtener s a partir de c, con lo que la clave no sera privada.

5.3.2 Generacin de claves, cifrado y descifrado


Podemos resumir los pasos necesarios para la generacin del par de claves pblica/privada, acompaando la descripcin con un ejemplo ilustrativo. En cada paso se indica si el resultado buscado se obtiene automticamente (clculo) o implica una eleccin. Tambin se especifica si dicho resultado puede o no darse a conocer. 1. Eleccin secreta de los nmeros primos p y q. Tomemos, por ejemplo, 47 y 71. En la prctica se necesitan nmeros mucho ms grandes, por lo que son obtenidos generando al azar nmeros con cientos de cifras y aplicndoles tests de primalidad probabilsticos hasta obtener una pareja adecuada. 2. Clculo pblico del n = 4771 = 3337. producto n = pq. En nuestro caso tenemos que

3. Clculo secreto del producto (p-1)(q-1). En nuestro caso resulta 4670 = 3220. 4. Eleccin secreta del nmero s de forma que sea primo relativo a (p-1)(q-1). Para el ejemplo podemos tomar s = 1019, ya que mcd(1019, 3220) = 1. En la prctica se generan valores al azar y se les aplica el algoritmo de Euclides para calcular su mximo comn divisor con (p-1)(q-1) hasta encontrar un valor adecuado. 5. Clculo pblico de c = s-1 mod ((p-1)(q-1)). En el ejemplo c = 10191 mod 3220 = 79. En la prctica no es necesario hacer clculos adicionales, ya que en el paso anterior se aplica la versin extendida del algoritmo de Euclides, que por

22

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

el mismo precio devuelve el mximo comn divisor y el inverso multiplicativo (si existe). En el ejemplo las claves producidas seran gu = <79,3337> y gr = <1019,3337>. El algoritmo de cifrado o descifrado con cualquiera de las claves sera como se indic en el apartado anterior. Por ejemplo, para cifrar con la clave pblica y descifrar con la privada: Z(M, gu) = Z(M, <c,n>) = Mc mod n = K D(K, gr) = Z(K, gr) = Z(K, <s,n>) = Ks mod n = M Supongamos que, utilizando las claves del ejemplo, queremos cifrar el mensaje M = 6882326879666683. En primer lugar, es preciso dividir el mensaje en bloques menores que n = 3337 para que el algoritmo funcione. Por simplicidad, podemos usar bloques de tres dgitos, de la forma M = 688|232|687|966|668|3. A continuacin se aplica el algoritmo de cifrado a cada bloque. Por ejemplo, en el caso del primer bloque, obtenemos Z(688, <79,3337>) = 68879 mod 3337 = 1570. Operando del mismo modo bloque a bloque obtenemos el criptograma K = 1570|2756|2714|2276|2423|158. Para descifrar utilizaremos la clave complementaria, tambin bloque a bloque. Por ejemplo, en el caso del primero obtenemos D(1570, <1019,3337>) = Z(1570, <1019,3337>) = 15701019 mod 3337 = 688.

5.3.3 Factibilidad y seguridad de RSA


Para que RSA sea un algoritmo factible todas las operaciones necesarias para su manejo deben ser realizables en un tiempo razonable, Que ello sea as no es ni mucho menos trivial, dado que el algoritmo exige generar, comprobar y manipular nmeros muy grandes. Los pasos necesarios para generar el par de claves son todos factibles, aunque requieren cierta capacidad de clculo al operarse con nmeros de tales dimensiones: El nmero de candidatos aleatorios que hay que probar para obtener un primo p es del orden de |p| (longitud de p). El coste de la realizacin de los tests de primalidad para un nmero p tambin es lineal en |p|. Exixten algoritmos que calculan el producto de dos nmeros en un orden de ejecucin entre lineal cuadrtico en la longitud de dichos nmeros. Ello es aplicable a los clculos de pq y de(p-1)(q-1). Dado que la probabilidad de que dos nmeros cualesquiera sean primos entre s es de un 60%, no suele ser necesario buscar muchos candidatos distintos para c.

Captulo 3: Cifrado de la Informacin

23

APUNTES DE SEGURIDAD

La aplicacin del algoritmo de Euclides tambin es de complejidad lineal en la longitud de los nmeros involucrados. Tambin es claro que las potencias necesarias para el cifrado y el descifrado se pueden realizar en tiempo polinomial en la longitud de la base y el exponente. Por otro lado, aunque puedan parecer operaciones costosas en espacio por implicar el manejo de nmeros astronmicos (como el que origina una potencia con un exponente de 100 cifras), en la prctica la aritmtica modular permite reducir al mdulo tras cada operacin sin alterar el resultado final. Por ejemplo:

68879 mod 3337 = (((((6882)2)2688)2688)2688)2688 mod 3337 = (((((6882 mod 3337)2 mod 3337)2 mod 3337 688 mod 3337)2 mod 3337 688 mod 3337)2 mod 3337 688 mod 3337)2 mod 3337 688 mod 3337
con lo que nunca se manejan nmeros mayores que 6882. En definitiva, el coste asociado a las operaciones necesarias para la implementacin del algoritmo es proporcional al nmero de dgitos de los nmeros implicados. Ello nos asegura la factibilidad de aumentar arbitrariamente la seguridad del algoritmo incrementando dicho nmero de dgitos a nuestra conveniencia. Nos queda cuestionarnos dnde reside la fuerza de este algoritmo. Si fuera posible obtener el exponente s apartir de los datos pblicos c y n, la clave privada habra dejado de serlo, y RSA no tendra ningn valor. Dado que n es conocido (forma parte de la clave pblica), en teora es posible recuperar sus factores p y q, a partir de ellos (p-1)(q-1), y seguidamente s. Sin embargo, la factorizacin de nmeros como n parece ser una tarea extremadamente costosa. Los mejores algoritmos actuales tienen un coste exponencial en la raz cbica de la longitud de n, por lo que se considera que a partir de un cierto tamao de p y q (por ejemplo, 1024 bits) el algoritmo es seguro a todos los efectos. Esto, claro est, siempre que no se descubran nuevos algoritmos de factorizacin ms eficientes, lo cual ha generado numerosas discusiones sobre la seguridad real del algoritmo. Existen numerosas implementaciones de este algoritmo, tanto en hardware como en software, y suelen resultar entre 100 y 1000 veces ms lentas que las correspondientes a criptografa convencional. Esta es la razn de que muchos protocolos criptogrficos eviten el cifrado de grandes cantidades de informacin usando RSA o algoritmos similares. En su lugar se prefiere usar una clave simtrica de sesin y utilizar el algoritmo de clave pblica nicamente para posibilitar su intercambio, tal como se ha indicado en la seccin anterior.

5.4 MD5
Los algoritmos que implementan funciones de dispersin tienen una serie de caractersticas comunes que pueden ser ilustradas analizando el esquema general de MD5, uno de los ms populares.
24 Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

El proceso de MD5 es el siguiente: se define una funcin de dispersin F que acta sobre dos bloques, uno de 128 bits y otro de 512 bits produciendo un resultado de 128 bits. El algoritmo divide el mensaje en claro M en bloques de 512 bits y aplica la funcin iterativamente de la forma siguiente: R0 = Valor inicial determinado por el algoritmo Bi = i-simo bloque del mensaje M Ri = F(Ri-1, Bi) La salida del algoritmo ser el ltimo bloque producido Rm. Existe un problema con este esquema, dado que precisa que la longitud del mensaje sea mltiplo exacto de 512 bits. Como esto no es siempre as, se produce una operacin de rellenado, y para evitar que dos mensajes diferentes se igualen a causa del rellenado, se reservan 64 bits finales que codificarn la longitud original del mensaje. El bloque Ri de 128 bits que conecta cada aplicacin de F con la siguiente es mantenido en cuatro registros de 32 bits, cuyos valores se conocen como variables de encadenamiento. La funcin F opera en cuatro iteraciones. En cada una de ellas utiliza como entrada las variables de encadenamiento, el bloque Bi del mensaje y una constante de 16 bits. La constante se obtiene de una tabla T de 64 bits obtenida a partir de la funcin sen(x), y su misin es eliminar toda posible regularidad del bloque de entrada. Con estos datos realiza una serie de operaciones lgicas sencillas, pero no lineales y distintas para cada iteracin, y modifica las variables de encadenamiento. Todo se hace usando lgica de 32 bits. MD5 fue diseado en 1992 buscando su eficacia incluso en arquitecturas de usuario final modestas. De ah procede la simplicidad de su diseo. Tiene la propiedad de que cada bit de la entrada tiene influencia en cada bit del resultado. Sin embargo hay que destacar que MD5 no es sino una versin mejorada de otro algoritmo, MD4, que apenas algunos meses despus de ser producido mostr alguna de sus debilidades y el no cumplimiento de algunos aspectos menores de su especificacin.

6. Criptoanlisis y resistencia de los sistemas de cifrado


La fortaleza para proteger la informacin frente a un ataque es denominada resistencia de un criptosistema. Como es lgico, es un parmetro que vara enormemente de un criptosistema a otro, y que va incrementndose como consecuencia de la aplicacin de ms y mejores recursos tecnolgicos al servicio de la Criptografa. Esa es precisamente la razn de la evolucin esta ltima: a medida que se va descubriendo que los criptosistemas tienen debilidades explotables, se van diseando nuevos sistemas con mayor resistencia para sustituirlos.

Captulo 3: Cifrado de la Informacin

25

APUNTES DE SEGURIDAD

Como se ha mencionado anteriormente en este captulo, la ciencia que se ocupa del estudio sistemtico de los mtodos de descifrar informaciones criptografiadas se denomina Criptoanlisis, y criptoanalistas sus practicantes. Por tanto, se puede decir que es la ciencia opuesta y a la vez complementaria a la Criptografa. Cada avance en el Criptoanlisis supone una derrota parcial de la Criptografa, pero al mismo tiempo el acicate que le permitir alcanzar nuevas cotas en la tecnologa de la proteccin de la informacin. El hecho de que la mayor inversin en criptoanlisis sea realizada por las agencias de inteligencia de las grandes potencias mundiales ha convertido esta disciplina en algo oscuro y lleno de mitos de difcil confirmacin. Lgicamente los resultados que se obtienen en criptoanlisis en este terreno requieren del ms absoluto secreto: si la organizacin A consigue romper el sistema criptogrfico de la organizacin B, lo que a A menos le interesa es que B lo descubra, pues en ese caso dejara de utilizar el criptosistema, y el esfuerzo realizado por A habra sido baldo. De hecho son numerosas las ocasiones histricas en las que A ha ignorado informacin confidencial de la que haba dispuesto gracias al criptoanlisis para evitar que B sospechara. Es famoso el caso de Inglaterra ante el bombardeo de Coventry en la Segunda Guerra Mundial: a pesar de conocerlo con antelacin gracias al formidable equipo de criptoanalistas de Bletchley Park, no hizo el menor esfuerzo para evitarlo o paliar sus consecuencias. Como resultado de esta accin, Alemania sigui confiando ciegamente en sus mquinas Enigma, y en Coventry hubo 50.000 muertos civiles. No hay que irse a los anales blicos para encontrar historias que acrecientan la leyenda de que los gobiernos saben mucho ms de criptoanlisis de lo que estn dispuestos a reconocer. Por ejemplo, en los aos 90 se publicaron los primeros trabajos sobre una nueva tcnica llamada criptoanlisis diferencial. Esta resultaba sorprendentemente exitosa con algunos algoritmos modernos, entre ellos una versin inicial de IDEA llamada PES, que tuvo que ser modificada a toda prisa para hacerla resistente al ataque. Sin embargo, un algoritmo mucho ms antiguo y primitivo como DES resista muy bien al criptoanlisis diferencial. Cmo explicarlo? La idea ms extendida es que los ingenieros de IBM que intervinieron en el diseo de DES conocan ya en los aos 70 esta modalidad de criptoanlisis, y teniendo en cuenta que la NSA (National Security Agency) sugiri algunas modificaciones del algoritmo antes de su formalizacin como estndar, las especulaciones sobre el uso que en estos aos haya podido hacer el gobierno de los EEUU del criptoanlisis diferencial quedan servidas.

6.1 Ataques contra la integridad y autenticacin


El objetivo principal del criptoanlisis es anular los servicios de seguridad proporcionadas por la criptografa. Casi siempre se trata de violar la confidencialidad, pero no siempre es as. Por ejemplo, el propsito de una funcin de comprobacin aleatoria no es ocultar informacin, sino obtener un resmen criptogrfico de un documento de forma que dicho resmen pueda sustituir al documento original a efectos de autenticacin o comprobacin de integridad. El objetivo del criptoanlisis no es, pues, recuperar la informacin (cosa por otra parte imposible), sino falsear dicho servicio de autenticacin y/o integridad. Tpicamente se tratara de, dado un mensaje M al que se le ha aplicado una

26

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

funcin de dispersin h obteniendo su huella dactilar h(M), encontrar otro mensaje N que satisfaga h(M)=h(N). Por ejemplo, si M es un documento cuyo resumen criptogrfico h(M) ha sido firmado por Alicia y enviado a Carmelo , este podra verse tentado de construir otro documento N con la misma huella dactilar, pero ms favorable a sus intereses, para luego alegar que ese es el que Alicia ha firmado. El ataque por fuerza bruta sera de la siguiente manera. Supongamos que la funcin h devuelve un resmen de k bits: 1. Alicia enva el documento M junto con su huella dactilar h(M) firmada (cifrada con su clave privada) a Carmelo. 2. Carmelo recibe el documento y su firma. Recupera la huella h(M) (descifrndola con la clave pblica de Alicia) 3. Carmelo redacta el documento que atribuir a Alicia. 4. Carmelo imagina k-1 variaciones del documento falso que no varen su significado. Por ejemplo, aadir espacios al final de los prrafos o cambiar palabras por otras sinnimas. 5. Mediante las oportunas elecciones de cada una de las posibles k-1 variaciones del mensaje, Carmelo puede generar 2k-1 variantes distintas cuyo contenido es el del mensaje cuya firma le quiere endilgar a Alicia. Carmelo genera dichos mensajes y les aplica la funcin h hasta encontrar un N que satisfaga h(N)=h(M). La probabilidad de conseguirlo es aproximadamente un 50%, teniendo en cuenta que el nmero total de huellas dactilares posibles es 2k (aunque la justificacin de este resultado no es tan trivial como pueda parecer a simple vista) 6. Carmelo alega que Alicia es la autora de N, y presenta su firma digital como prueba. Para resistir este ataque se considera que 64 es un valor seguro para k, ya que es absolutamente imposible generar los 2639,11018 mensajes requeridos. De hecho, disponer de una probabilidad razonable de que el ataque funcione exige componer siempre del orden de 2k mensajes. Sin embargo, existe otro ataque ligeramente diferente que obliga a cambiar las previsiones de seguridad de los algoritmos criptogrficos de dispersin. Supongamos que tenemos j personas en una habitacin, y nos preguntamos si hay alguna que haya nacido el 28 de diciembre. Cul es el menor j que nos asegura una probabilidad del 50% de que s la haya?. La respuesta es j=183. Este es el mismo problema que se plantea en el ataque por fuerza bruta a una funcin hash, pero en ese caso, en lugar de buscar un valor concreto entre n=365 valores posibles, necesitamos encontrar uno entre n=2k. Cuando n es un valor muy grande el nmero de pruebas que nos asegura una probabilidad de xito del 50% es aproximadamente j=n/2. En nuestro caso, j=n/2=2k/2=2k-1, que es el nmero de falsos mensajes que genera Carmelo. Ahora supongamos que planteamos el problema de manera diferente. Seguimos teniendo j personas en una habitacin, pero en lugar de buscar una fecha de nacimiento que

Captulo 3: Cifrado de la Informacin

27

APUNTES DE SEGURIDAD

coincida con una dada, queremos encontrar dos personas cuya fecha de nacimiento coincida, sea esta cual sea. Cul es ahora el valor de j que nos asegura una probabilidad del 50% de que exista esta coincidencia?. A mucha gente le sorprende que la respuesta sea un valor tan bajo como j=23. La razn es que, aunque en ese grupo no hay objetivamente muchas personas, el nmero de parejas posibles que contiene s es muy alto (253, concretamente). Si, al igual que antes, trasladamos el problema de n=365 posibles valores a un n arbitrariamente grande, nos encontramos con que el nmero de pruebas que asegura una probabilidad del 50% de xito es j=1.2 n . Para el problema que nos ocupa, j=1.2 n =1.2 2 k =1.22k/2. Estos resultados posibilitan el llamado ataque del cumpleaos, que se formula de la siguiente manera. Imaginemos que Carmelo puede intervenir en la redaccin del mensaje M que Alicia ha de firmar. Puede tratarse de un contrato que Carmelo se encarga de redactar. El ataque del cumpleaos sera como sigue: 1. Carmelo prepara un contrato M, aceptable para Alicia, para someterlo a su firma. 2. Carmelo prepara otro contrato N, ventajoso para l, con la intencin de atribuir a Alicia su firma. 3. Con la tcnica indicada en el caso anterior, Carmelo prepara 2k/2 variantes de M y otras 2k/2 variantes de N, buscando dos contratos M y N, equivalentes en significado a M y N respectivamente, y cuya huella dactilar coincida (h(M)=h(N)). La probabilidad de conseguirlo es superior al 85% (para llegar al 50% bastara con preparar el 60% de los mensajes indicados). 4. Carmelo enva M a Alicia. 5. Alicia lee M y comprueba que est de acuerdo con su contenido. 6. Alicia enva a Carmelo el documento M junto con su huella dactilar h(M) firmada 7. Carmelo alega que Alicia ha firmado N, y presenta su firma digital como prueba. De acuerdo con esto, si nos mantuviramos en una funcin de 64 bits, Carmelo debera producir nicamente 1,22325,1109 mensajes para tener una probabilidad de xito de 1/2, que si bien no es una tarea trivial, dista mucho de ser ciencia-ficcin. En este caso, disponer de una probabilidad razonable de que el ataque funcione exige componer siempre del orden de 2k/2 mensajes. La factibilidad del ataque del cumpleaos es lo que ha motivado que se desechen las funciones de comprobacin aleatoria de menos de 128 bits. Hay otras ocasiones en las que se realizan ataques que tampoco pretenden violar la confidencialidad de una comunicacin: los ataques al protocolo. Como se ha visto, los algoritmos son luego utilizados en protocolos criptogrficos que permiten enfrentarse a problemas de seguridad concretos. Segn esos protocolos los agentes de la comunicacin se envan porciones de informacin cifrada que pueden ser interceptados por terceras personas, y

28

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

se puede dar el caso de que esa informacin pueda ser utilizada de forma ilegtima sin necesidad de descifrarla. Es el caso tpico de las operaciones econmicas a distancia, que deben regularse evitando los ataque por reutilizacin: si el protocolo no es seguro, alguien podra, por ejemplo, repetir una orden de pago, si consiguiera acceder al criptograma correspondiente y reutilizarlo en otra ocasin.

6.2 Ataques contra la confidencialidad


Sin embargo, el objetivo fundamental del Criptoanlisis es sin duda la recuperacin de la informacin cifrada. La resistencia de un criptosistema depende de muchos factores, y algunos de ellos son: El mantenimiento del secreto de la clave, evitando que pueda ser conocida por otras personas. Las dimensiones del espacio de claves. La posibilidad que tenga el usuario de elegir claves incorrectas (tal como sucede con las palabras de acceso). La dificultad intrnseca de invertir el algoritmo de cifrado sin conocer la clave de descifrado. El hecho de que el algoritmo de cifrado borre realmente todas las regularidades del mensaje en claro. La existencia de puertas traseras, o caminos adicionales por los que un fichero cifrado pueda ser descifrado fcilmente sin conocer la clave. Estas pueden incluso disearse intencionadamente con el algoritmo. La posibilidad de descifrar un mensaje completo si se conoce la forma de descifrar una parte de l Las propiedades de texto en claro y el conocimiento de esas propiedades por parte del atacante: lengua, formato, etc... En el resto de esta seccin veremos algunas de las formas que se utilizan en el criptoanlisis para romper la resistencia de los criptosistemas.

6.2.1 La fuerza bruta


En el estudio de los mtodos de defensa frente al criptoanlisis se supone que la criptoanalista tiene acceso a todo el criptograma. Tambin se suele admitir que el algoritmo de cifrado es conocido. Esto puede ser discutible en algunos entornos, como por ejemplo el militar, en el que prcticamente todo lo relacionado con la criptografa es material clasificado o secreto. Sin embargo, en criptografa comercial sucede todo lo contrario: los usuarios potenciales de los productos criptogrficos no pueden fiarse de algoritmos cuya seguridad no pueda ser comprobada por la comunidad cientfica. Adems suele admitirse la hiptesis de

Captulo 3: Cifrado de la Informacin

29

APUNTES DE SEGURIDAD

Kerckhoff, que establece que la seguridad del cifrado debe residir, exclusivamente, en el secreto de la clave, y no del mecanismo de cifrado. Si suponemos que el algoritmo de cifrado es conocido por el criptoanalista, existe siempre la posibilidad terica de realizar un ataque por fuerza bruta: recorrer todos los posibles valores de la clave de descifrado hasta dar con la autntica. La aplicabilidad prctica de este mecanismo depende del tamao del espacio de claves. Si bien este tipo de ataque ha servido en el pasado para descartar algunos criptosistemas (caso de DES), hoy en da no puede considerarse que un algoritmo criptogrfico es serio si admite la posibilidad de un ataque por fuerza bruta. El tamao de las claves se calcula de forma que el conjunto de valores posibles sea imposible de explorar exhaustivamente, ni con la tecnologa actual ni con la futura. Por ejemplo, pensando en el algoritmo IDEA, visto anteriormente en este captulo, con una clave de 128 bits es posible definir 21283,41038 claves distintas. Pensando en los ordenadores existentes, resulta bastante optimista, aunque no descabellado, que se puedan intentar mil millones de claves por segundo. Pues bien, aunque cada habitante de la Tierra tuviera una ordenador y lo pusiera a trabajar en el ataque, se necesitara un billn de aos para probar todas las posibles claves. Ningn avance tecnolgico previsible puede conseguir cambiar las cosas a este respecto, y por ello es imposible que IDEA deje de ser seguro con respecto a un ataque por fuerza bruta.

6.2.2 Tipos de ataques


Supuesto que se ha podido determinar el algoritmo de cifrado, son varias las situaciones en que se puede encontrar, o que puede buscar, un criptoanalista en su trabajo. El caso ms desfavorable para l, se presenta cuando slo tiene acceso al texto cifrado, en cuyo caso el ataque se denomina slo al criptograma. Aparte de la bsqueda exhaustiva, su nica posibilidad es intentar explotar deficiencias conocidas del algoritmo, si es que existen. Una segunda posibilidad, ms ventajosa para el atacante, se produce si ste conoce el criptograma y el correspondiente texto en claro. An conociendo el texto en claro puede resultar interesante obtener la clave para descifrar futuros mensajes, aparte de que tambin entra en este caso un conocimiento parcial del texto en claro. Partes del mismo son frecuentemente conocidas o pueden ser conjeturadas. Por ejemplo, los mensajes transmitidos mediante protocolos normalizados (EDI, X-400, ...) tienen los mismos smbolos en las mismas posiciones, as como ciertos campos (remitente y direccin de remisin, etc.) cuyo texto en claro es fcil de adivinar. Este tipo de criptoanlisis se denomina ataque mediante texto en claro conocido. Finalmente, la ltima y mejor posibilidad se le presenta si puede elegir un texto en claro de cualquier longitud y obligar a su cifrado. Este tipo de intrusin se denomina ataque mediante texto en claro escogido. Se presenta, por ejemplo, cuando una usuaria de un

30

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

ordenador tiene acceso a la tabla cifrada de contraseas. Introduciendo repetidamente distintas contraseas puede llegar a recopilar un gran nmero de pares: texto en claro/texto cifrado. Otro caso se da en los sistemas de comunicacin cifrada estndares (por ejemplo GSM). Podemos cifrar cuantos mensajes queramos y obtener los criptogramas correspondientes, y los pares obtenidos pueden ser muy tiles para romper el criptosistema. Una de las formas ms seguras de proporcionar pares de textos en claro y criptogramas a los criptoanalistas es la nefasta costumbre de cifrar cualquier cosa, y en particular la informacin que es de dominio pblico. Ello puede facilitar enormemente su trabajo mediante ataques de los dos ltimos tipos. Tampoco debemos olvidar que todos los sistemas de clave pblica, sin excepcin, son susceptibles a este tipo de ataques: dado que la criptoanalista siempre conoce la clave pblica, puede disponer de tantos pares mensaje/criptograma como desee, ya que los puede generar l mismo. Por ejemplo, si una criptoanalista intercepta un mensaje muy corto cifrado con una clave pblica (por ejemplo, una clave de sesin de 40 bits), quiz podra hacer una bsqueda exhaustiva, no sobre las posibles claves de descifrado, sino sobre los posibles mensajes. Generara los 2401012 mensajes de 40 bits posibles y los cifrara con la clave pblica hasta encontrar aqul que produce el criptograma deseado. Lo cierto es que es muy difcil desarrollar nuevos algoritmos criptogrficos, y sobre todo, que no se sabe mucho acerca del diseo de algoritmos resistentes. Son muchos los casos en los que se ha creado un algoritmo que se ha propuesto como muy resistente y despus de implementarlo y probarlo se han descubierto inmediatamente sus debilidades. De hecho, todos los criptosistemas conocidos (menos el de Vernam) han terminado siendo reventados cuando han estado funcionando el tiempo suficiente. Los expertos apuntan que el mejor camino para determinar si un algoritmo es fuerte (resistente) es publicarlo y esperar a que alguien descubra sus debilidades. La debilidad de un algoritmo criptogrfico rara vez conduce a una obtencin rpida de la clave. Normalmente se trata de una caracterstica especial que permite establecer tenues relaciones entre mensaje y criptograma, o detalles que reducen el espacio de claves. Pinsese en el caso de la mquina Enigma, usada por los alemanes en la Segunda Guerra Mundial, y que implementaba un complejo criptosistema basado nicamente en la sustitucin de caracteres. Enigma fue derrotado porque los criptoanalistas polacos que se enfrentaron a l aprovecharon una caracterstica muy especial del sistema: un carcter nunca poda ser sutituido por s mismo. A partir de este hecho se consigui reducir el tiempo necesario para analizar un criptograma de forma que la informacin que se obtena era til a efectos blicos.

7. Conclusiones
La Criptografa ha dejado de ser exclusivamente una ciencia oscura al servicio de los intereses poltico-militares de los estados para convertirse adems en una herramienta esencial para la seguridad de los sistemas informticos, y muy especialmente de sus comuncaciones.
Captulo 3: Cifrado de la Informacin 31

APUNTES DE SEGURIDAD

Muchos servicios que hoy en da disfrutamos (telfonos celulares, cajeros automticos, servicios de Internet, ...) seran inconcebibles sin ella, aunque la mayor parte de las veces su uso resulte transparente al usuario. Aunque los principios matemticos en los que se fundamenta no estn el alcance de cualquiera, su utilizacin no requiere mayores capacidades tcnicas y sus ventajas son fciles de comprender. En la mayor parte de las aplicaciones no tiene alternativa, es decir, no es posible conseguir sin la criptografa los servicios de seguridad que esta nos proporciona. Por otro lado, el surgimiento de la criptografa de clave pblica ha supuesto la posibilidad de que las ciudadanas o empresas particulares puedan acceder de forma personal a estos servicios de seguridad criptogrficos, lo cul est cambiando progresivamente nuestra cultura de intercomunicacin. La aparicin de paquetes como PGP, que resultando gratuitos para la usuaria normal, proporcionan el disfrute de algoritmos del ms alto nivel y una facilidad de uso realmente notable demuestra que la criptografa puede ser una herramienta popular para proteger la confidencialidad o, simplemente, la intimidad de las comunicaciones. Conscientes de ello muchos gobiernos (especialmente aquellos que tienen una amplia tradicin en su vocacin de control de sus propios ciudadanos) han puesto toda clase de trabas para evitar que su uso se extienda. Algunos, como el chino, simplemente prohibindola. Otros, como el norteamericano, poniendo obstculos a su uso y exportacin, o imponiendo estndares de juguete que no obstaculicen la accin de sus agencias de espionaje. De todo ello ha surgido una gran polmica, de cuyo resultado va a depender en buena medida el modelo de mundo al que tenderemos en los prximos aos.

Bibliografa
[Sc] Applied Cryptography. B. Schneier. John Wiley & Sons, 1994. Criptografa y seguridad en computadoras M.J. Lucena, A.M. Snchez y J.I. Pelez Coleccin de apuntes Universidad de Jan,1996

[LSP]

[FGH] Tcnicas criptogrficas de proteccin de datos. A. Fuster, D. de la Gua, L. Hernndez, F. Montoya y J. Muoz Editorial Ra-Ma, 1997. [Cab] Introduccin a la Criptografa. P. Caballero Editorial Ra-Ma, 1996.

32

Captulo 3: Cifrado de la Informacin

J. GUTIRREZ, J. IBEZ Y J.A. ELORRIAGA

[Sta]

Network and Internetwork Security. Captulos 2, 3, 4, 5, 7 y 9. W. Stallings IEEE Press, 1995.

[RCG] Seguridad en Unix. Sistemas abiertos e Internet. Captulo 3. A. Ribagorda, A. Calvo y M. A. Gallardo Editorial Paraninfo, 1996. [GS] Practical Unix & Internet security. Captulo 6. S. Garfinkel y G. Spafford. O'Reilly & Associates, 2 edicin,1996. PGP. Captulo 2. S. Garfinkel. O'Reilly & Associates, 1995. Computer Security Basics. Captulo 7. D. Russell y G.T. Gangemi. O'Reilly & Associates, 3 edicin, 1992.

[Gar]

[RG]

Captulo 3: Cifrado de la Informacin

33

También podría gustarte