Documente Academic
Documente Profesional
Documente Cultură
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.
A A A A A A A
I= I= I= I= I= I= I=
A A A A A A A
emisor
mensaje en claro
criptograma
receptor
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.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.
APUNTES DE SEGURIDAD
mensaje
mensaje
CIFRADO
CIFRADO
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
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.
APUNTES DE SEGURIDAD
mensaje
CIFRADO
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
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.
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.
(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
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).
10
(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
18492432346736342983745
DESCIFRADO
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
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.
12
Este es el mensaje
CIFRADO
18492432346736342983745
DESCIFRADO
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
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.
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.
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.
16
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.
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.
18
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.
19
APUNTES DE SEGURIDAD
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
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.
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
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.
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
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.
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.
26
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
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
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.
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.
30
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
[Sta]
[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]
33