Revista Cultura y Ocio

Criptografia - La Escritura Oculta

Publicado el 16 mayo 2012 por Alfonso Ruiz Nuñez
Criptografía (del griego κρύπτω krypto, «oculto», y γράφως graphos, «escribir», literalmente «escritura oculta») tradicionalmente se ha definido como la parte de la criptología que se ocupa de las técnicas, bien sea aplicadas al arte o la ciencia, que alteran las representaciones lingüísticas de mensajes, mediante técnicas de cifrado y/o codificado, para hacerlos ininteligibles a intrusos (lectores no autorizados) que intercepten esos mensajes. Por tanto el único objetivo de la criptografía era conseguir la confidencialidad de los mensajes. Para ello se diseñaban sistemas de cifrado y códigos. En esos tiempos la única criptografía que había era la llamada criptografía clásica.
La aparición de las Tecnologías de la Información y la Comunicación y el uso masivo de las comunicaciones digitales han producido un número creciente de problemas de seguridad. Las transacciones que se realizan a través de la red pueden ser interceptadas. La seguridad de esta información debe garantizarse. Este desafío ha generalizado los objetivos de la criptografía para ser la parte de la criptología que se encarga del estudio de los algoritmos, protocolos (se les llama protocolos criptográficos) y sistemas que se utilizan para proteger la información y dotar de seguridad a las comunicaciones y a las entidades que se comunican. Para ello los criptógrafos investigan, desarrollan y aprovechan técnicas matemáticas que les sirven como herramientas para conseguir sus objetivos.
Los grandes avances que se han producido en el mundo de la criptografía han sido posibles gracias a los grandes avances que se ha producido en el campo de las matemáticas y las ciencias de la computación.
Criptografia - La Escritura Oculta

Objetivos de la criptografia

La criptografía actualmente se encarga del estudio de los algoritmos, protocolos y sistemas que se utilizan para dotar de seguridad a las comunicaciones, a la información y a las entidades que se comunican. 1 . El objetivo de la criptografía es diseñar, implementar, implantar, y hacer uso de sistemas criptográficos para dotar de alguna forma de seguridad. Por tanto se ocupa de proporcionar:
  • Confidencialidad. Es decir garantiza que la información está accesible únicamente a personal autorizado. Para conseguirlo utiliza códigos y técnicas de cifrado.
  • Integridad. Es decir garantiza la corrección y completitud de la información. Para conseguirlo puede usar por ejemplo funciones hash criptográficas MDC, protocolos de compromiso de bit, o protocolos de notarización electrónica.
  • No repudio. Es decir proporciona protección frente a que alguna de las entidades implicadas en la comunicación, pueda negar haber participado en toda o parte de la comunicación. Para conseguirlo puede usar por ejemplo firma digital.
  • Autenticación. Es decir proporciona mecanismos que permiten verificar la identidad del comunicante. Para conseguirlo puede usar por ejemplo función hash criptográfica MAC o protocolo de conocimiento cero.
  • Soluciones a problemas de la falta de simultaneidad en la telefirma digital de contratos. Para conseguirlo puede usar por ejemplo protocolos de transferencia inconsciente.
Un sistema criptográfico es seguro respecto a una tareas si un adversario con capacidades especiales no puede romper esa seguridad, es decir, el atacante no puede realizar esa tarea específica.

Evaluación de la seguridad

El objetivo de un sistema criptográfico es dotar de seguridad. Por tanto para calibrar la calidad de un sistema criptográfico es necesario evaluar la seguridad que aporta dicho sistema.

Hacer público o no

Al evaluar la seguridad un sistema criptográfico se puede poner de manifiesto sus debilidades. Si estas debilidades se hacen públicas entonces se dispara el riesgo a que esas debilidades sean aprovechadas por un atacante. Por eso hay mucha polémica en relación a hacer públicos o no los entresijos de los sistemas criptográficos. Si se hace público el funcionamiento del sistema cualquier persona puede evaluar la seguridad (con lo que mejora la evaluación de la seguridad) lo que provoca una mayor exposición a ataques. Si no se publica el funcionamiento del sistema entonces se restringen las personas que pueden evaluar el sistema (los resultados pueden no haber detectado ciertas debilidades) pero como contraprestación se tiene de que los posibles atacantes no tienen disponibles toda la información disponible para utilizarla en un ataque.
Se considera que la seguridad de un sistema criptográfico debe descansar sobre el secreto de la claves utilizadas y no sobre el secreto del algoritmo. Esta consideración se formaliza en el llamado principio de Kerckhoffs. Esto no quiere decir que cuando usemos criptografía tengamos que revelar los algoritmos, lo que quiere decir es que el algoritmo tiene que ser seguro aunque éste sea difundido.
La difusión del algoritmo permite que la comunidad criptográfica evalúe la seguridad de dicho algoritmo y por tanto verifique si el algoritmo en sí es seguro. Evidentemente si un sistema criptográfico es seguro aún revelando su algoritmo, entonces será aún más seguro si no lo revelamos. Sin embargo si un sistema tiene una debilidad latente, si no se hace público el funcionamiento interno, se dificulta al atacante el descubrimiento de dicha debilidad. Es decir, se consigue la seguridad por oscuridad, no por el sistema en sí. Por esta razón algunas organizaciones (Ej. NSA o MI6) disponen de algoritmos criptográficos no revelados (que pueden aprovechar algunos conocimientos de otros algoritmos públicos) que sólo han sido sujetos sólo a una verificación interna. Los consideran seguros y no quieren revelarlos para que no puedan ser estudiados por criptoanalistas y de esa forma no sean hechas públicas sus posibles debilidades.

Grado de seguridad

Cuando se evalúa la seguridad de un sistema criptográfico se puede calibrar la seguridad que aporta en función de si éste es seguro de forma incondicional o si es seguro sólo si se cumplen ciertas condiciones.

Seguridad incondicional

2 Se dice que un sistema criptográfico tiene una seguridad incondicional (en inglés unconditional security) sobre cierta tarea si un atacante no puede resolver la tarea aunque tenga infinito poder computacional.
3 4 5 En función de la tarea sobre la que se dice que el sistema criptográfico es incondicionalmente seguro, podemos hablar por ejemplo de:
  • Criptosistemas incondicionalmente seguros (cifrado).
  • Autenticación incondicionalmente segura (autenticación).
  • Distribución de claves incondicionalmente segura.
  • Firma digital incondicionalmente segura (firma digital).
Es habitual que los sistemas incondicionalmente seguros tengan incovenientes importantes como por ejemplo en la longitud de las claves (libreta de un solo uso).
Para certificar una seguridad incondicional los criptólogos se suelen basar en la teoría de la información y, por tanto, en la teoría de la probabilidad.
Limitaciones
El que un sistema tenga seguridad incondicional no quiere decir que su seguridad sea inviolable. Veamos dos consideraciones
  • 6 Los sistemas son incondicionalmente seguros desde un punto de vista probabilístico: El oponente siempre tiene una probabilidad mayor que cero de romper la seguridad. Sin embargo, esta probabilidad puede ser muy muy pequeña. Esto es lo que sucede con los sistemas incondicionalmente seguros.
7 En la mayoría de los estudios sobre la seguridad de un sistema se hace la suposición de que los atacantes tienen sólo un intento para atacar la seguridad del sistema. El éxito o el fracaso están determinados por el éxito o fracaso de ese intento. Esta suposición es válida, por ejemplo, en ciertos problemas de comunicación segura donde el enemigo no tiene oportunidad de verificar si el mensaje estimado es correcto o no. Sin embargo hay otros tipos de problemas donde esta suposición no tiene sentido. Por ejemplo, en un sistema de autenticación con usuario y contraseña para entrar en una cuenta restringida, el atacante puede realizar varios intentos. Además, en algunos casos, los intentos fallidos anteriores dan información para hacer una estimación mejor para los intentos siguientes.
  • 8 Cuando decimos que un sistema criptográfico es incondicionalmente seguro, nos estamos refiriendo a nivel teórico. Sin embargo cuando es implementado en la práctica puede no mantenerse esa seguridad. Hay muchos tipos de ataques que sólo se aplican cuando los sistemas están implementados en un sistema concreto. Ejemplos:
    • Explotación de canales ocultos. Los canales ocultos son canales de comunicación no intencionados y de difícil detección, que permiten la transferencia de información de forma que viola la política de seguridad del sistema. En un computador real los procesos al ejecutarse producen una serie de efectos y fenómenos que pueden ser medidos y explotados para revelar información relevante que puede ser utilizada para romper el sistema (Ej. pistas sobre la clave). Este problema es inherente y no puede ser evitado mediante técnicas criptográficas. Son ejemplos típicos de este tipo de canales los canales ocultos generados por análisis de temporizaciones, por análisis de consumos de energía o por análisis de consumos de radiaciones electromagnéticas o por análisis de consumo de espacio de almacenamiento.
    • Malos diseños o implementaciones del software o el hardware pueden hacer que la solución práctica sea insegura. Ejemplos de ataques que se aprovechan de debilidades producidas por un mal diseño o implementación: desbordamiento de buffer, Inyección SQL, Cross Site Scripting, ataques basados en deficiencias del hardware.

Seguridad condicional

9 Se dice que un sistema criptográfico tiene una seguridad condicional (en inglés conditional security) sobre cierta tarea si un atacante puede teóricamente resolver la tarea, pero no es computacionalmente factible para él (debido a sus recursos, capacidades y acceso a información). Hay un tipo especial de seguridad condicional llamada seguridad demostrable (en inglés provable security). La idea es mostrar que romper un sistema criptográfico es computacionalmente equivalente a resolver un problema matemático considerado como difícil. Esto es, que se cumplen las dos siguientes sentencias:
  • Si el problema difícil puede ser resuelto, entonces el sistema criptográfico puede ser roto
  • Si el sistema criptográfico puede ser roto, entonces el problema difícil puede ser resuelto.
10 La seguridad demostrable es difícil de lograr para sistemas criptográficos complejos. Se ha desarrollado una metodología (modelo de oráculo aleatorio) para diseñar sistemas que no tienen realmente una seguridad demostrable, pero que dan unas buenas sensaciones respecto a su seguridad. La idea básica es diseñar un sistema ideal que usa una o varias funciones aleatorias -también conocidas como oráculos aleatorios- y probar la seguridad de este sistema sistema matemático. A continuación el sistema ideal es implementado en un sistema real reemplazando cada oráculo aleatorio con una buena y adecuada función pseudoaleatoria conocida -típicamente un código de detección de manipulaciones como SHA-1 o MD5-. Si las funciones pseudoaleatorias utilizadas tiene buenas propiedades, entonces uno puede esperar que la seguridad probada del sistema ideal sea heredada por el sistema real. Observar que esto ya no es una prueba, sino una evidencia sobre la seguridad del sistema real. Se ha demostrado que esta evidencia no siempre es cierta y que es posible romper sistemas criptográficos cuya seguridad se apoya en el modelo de oráculo aleatorio.

Puntos de vista desde los que evaluar la seguridad

Para evaluar la seguridad de un esquema criptográfico se suelen usar tres enfoques principales11 . Cada enfoque difiere de las suposiciones acerca de las capacidades de los oponentes criptoanalistas. El primer método está basado en la teoría de la información, y ofrece una seguridad incondicional y por tanto una seguridad independiente del poder de computación de los adversarios. El enfoque basado en la teoría de la complejidad comienza a partir de un modelo abstracto para la computación, y asume que el oponente tienen un poder limitado de computación. El tercer enfoque intenta producir soluciones prácticas. Para ello estima la seguridad basándose en el mejor algoritmo conocido para romper el sistema y estima de forma realista el poder necesario de computación o de hardware para romper el algoritmo. A este enfoque se le suele llamar enfoque basado en la práctica

Enfoque basado en la teoría de la información

En este enfoque se evalúa la seguridad del sistema utilizando las herramientas que proporciona la teoría de la información. Permite declarar sistemas incondicionalmente seguros, es decir, sistemas seguros independientemente del poder de computación del atacante.
La teoría de la información proporciona valiosas herramientas para analizar la seguridad de los sistemas criptográficos. Por ejemplo está la entropía, distancia de unicidad, el concepto de secreto perfecto etc.

Enfoque basado en la teoría de la complejidad

12 En este enfoque se evalúa la seguridad de los sistemas criptográficos en función de la cantidad de trabajo computacional requerido para romperlo. Para estimar esa cantidad de trabajo se estudia la complejidad computacional de los mejores métodos conocidos hasta ahora para realizar esa tarea. En función de los resultados de este estudio y del poder computacional límite estimado para el atacante, se decide si esa cantidad de trabajo es realizable por un atacante. Si ese trabajo no es realizable se dice que el sistema es seguro desde un punto de vista computacional (seguridad computacional, en inglés computationally security).
Este tipo de enfoque para evaluar la seguridad es muy usado en la criptografía asimétrica. En concreto, la seguridad de muchos de los algoritmos de la criptografía asimétrica están basados en el análisis de complejidad de los métodos conocidos para el cálculo de factorización de enteros y del logaritmo discreto.
Por definición el tipo de seguridad que aporta este tipo de enfoque es una seguridad condicional basada en los métodos de resolución de problemas evaluados. En este punto hay que tener en cuenta dos consideraciones13 :
  • Actualmente no se puede considerar que como buenos los algoritmos que se usan para estimar la complejidad de la resolución de los problemas. Se considera que hay algoritmos mucho mejores. Especialmente en el campo de la criptografía. Por tanto las estimaciones sobre el poder de computación necesario para romper el sistema no se consideran fiables.
  • Se ha demostrado que algunos de los problemas (Ej. factorización de enteros y el logaritmo discreto) en los que se sustenta la seguridad (computacional) de muchos algoritmos, pueden resolverse con algoritmos con una complejidad computacional de peor calidad usando computadores cuánticos. Si alguien pudiera disponer de un computador cuántico muchos de los sistemas criptográficos que se consideran seguros (con seguridad condicional) habría que catalogarlos como inseguros.

Enfoque basado en la práctica

14 El objetivo de este enfoque es producir soluciones prácticas a partir del estudio de sistemas concretos y de la experiencia acumulada. Es un enfoque de prueba-error donde se proponen soluciones basándose en la experiencia y luego se somete esa solución a un proceso intensivo en el que se intenta romper su seguridad. A partir de este enfoque se han hecho importantes avances en conseguir sistemas robustos ya que los criptógrafos diseñan ataques y posteriormente adaptan los sistemas para anular dichos ataques. Por ejemplo, de esta forma se han conseguido importantes avances en la seguridad frente a ataques basados en estudios estadísticos y ataques meet in the middle.
Es típico en este tipo de enfoque diseñar bloques con ciertas propiedades demostradas estableciendo una biblioteca de bloques disponibles. Ejemplos de propiedades buenas para este tipo de bloques pueden ser: buenas propiedades estadísticas, buenas propiedades para la confusión y difusión, o de no linealidad. Posteriormente estos bloques se ensamblan para la construcción de sistemas criptográficos que aprovechan sus propiedades para dotar de mayor seguridad.
Este enfoque permite llegar a establecer sistemas que tienen seguridad condicional. Este tipo de sistemas tienen una seguridad computacional

Historia de la criptografía

Artículo principal: Historia de la criptografía.La historia de la criptografía es larga y abunda en anécdotas. Ya las primeras civilizaciones desarrollaron técnicas para enviar mensajes durante las campañas militares, de forma que si el mensajero era interceptado la información que portaba no corriera el peligro de caer en manos del enemigo.El primer método de criptografía fue en el siglo V a.C, era conocido como "Escítala". El segundo criptosistema que se conoce fue documentado por el historiador griego Polibio: un sistema de sustitución basado en la posición de las letras en una tabla. También los romanos utilizaron sistemas de sustitución, siendo el método actualmente conocido como César, porque supuestamente Julio César lo empleó en sus campañas, uno de los más conocidos en la literatura (según algunos autores, en realidad Julio César no usaba este sistema de sustitución, pero la atribución tiene tanto arraigo que el nombre de este método de sustitución ha quedado para los anales de la historia). Otro de los métodos criptográficos utilizados por los griegos fue la escítala espartana, un método de trasposición basado en un cilindro que servía como clave en el que se enrollaba el mensaje para poder cifrar y descifrar.
En 1465 el italiano Leon Battista Alberti inventó un nuevo sistema de sustitución polialfabética que supuso un gran avance de la época. Otro de los criptógrafos más importantes del siglo XVI fue el francés Blaise de Vigenère que escribió un importante tratado sobre "la escritura secreta" y que diseñó una cifra que ha llegado a nuestros días asociada a su nombre. A Selenus se le debe la obra criptográfica "Cryptomenytices et Cryptographiae" (Luneburgo, 1624). En el siglo XVI María Estuardo, reina de Escocia, fue ejecutada por su prima Isabel I, reina de Inglaterra, al descubrirse un complot de aquella tras un criptoanálisis exitoso por parte de los matemáticos de Isabel. Durante los siglos XVII, XVIII y XIX, el interés de los monarcas por la criptografía fue notable. Las tropas de Felipe II emplearon durante mucho tiempo una cifra con un alfabeto de más de 500 símbolos que los matemáticos del rey consideraban inexpugnable. Cuando el matemático francés François Viète consiguió criptoanalizar aquel sistema para el rey de Francia, a la sazón Enrique IV, el conocimiento mostrado por el rey francés impulsó una queja de la corte española ante del papa Pío V acusando a Enrique IV de utilizar magia negra para vencer a sus ejércitos.
Durante la Primera Guerra Mundial, los Alemanes usaron el cifrado ADFGVX. Este método de cifrado es similar a la del tablero de ajedrez Polibio. Consistía en una matriz de 6 x 6 utilizado para sustituir cualquier letra del alfabeto y los números 0 a 9 con un par de letras que consiste de A, D, F, G, V, o X.
Criptografia - La Escritura Oculta
Criptografia - La Escritura OcultaLa máquina Enigma utilizada por los alemanes durante la II Guerra Mundial.Desde el siglo XIX y hasta la Segunda Guerra Mundial, las figuras más importantes fueron la del holandés Auguste Kerckhoffs y la del prusiano Friedrich Kasiski. Pero es en el siglo XX cuando la historia de la criptografía vuelve a experimentar importantes avances. En especial durante las dos contiendas bélicas que marcaron al siglo: la Gran Guerra y la Segunda Guerra Mundial. A partir del siglo XX, la criptografía usa una nueva herramienta que permitirá conseguir mejores y más seguras cifras: las máquinas de cálculo. La más conocida de las máquinas de cifrado posiblemente sea la máquina alemana Enigma: una máquina de rotores que automatizaba considerablemente los cálculos que era necesario realizar para las operaciones de cifrado y descifrado de mensajes. Para vencer al ingenio alemán, fue necesario el concurso de los mejores matemáticos de la época y un gran esfuerzo computacional. No en vano, los mayores avances tanto en el campo de la criptografía como en el del criptoanálisis no empezaron hasta entonces.
Tras la conclusión de la Segunda Guerra Mundial, la criptografía tiene un desarrollo teórico importante, siendo Claude Shannon y sus investigaciones sobre teoría de la información esenciales hitos en dicho desarrollo. Además, los avances en computación automática suponen tanto una amenaza para los sistemas existentes como una oportunidad para el desarrollo de nuevos sistemas. A mediados de los años 70, el Departamento de Normas y Estándares norteamericano publica el primer diseño lógico de un cifrador que estaría llamado a ser el principal sistema criptográfico de finales de siglo: el Estándar de Cifrado de Datos o DES. En esas mismas fechas ya se empezaba a gestar lo que sería la, hasta ahora, última revolución de la criptografía teórica y práctica: los sistemas asimétricos. Estos sistemas supusieron un salto cualitativo importante, ya que permitieron introducir la criptografía en otros campos que hoy día son esenciales, como el de la firma digital.

Referencias

  1. José Pastor Franco, Miguel Ángel Sarasa López, José Luis Salazar Riaño,"Criptografía digital: fundamentos y aplicaciones",Ed. Prensas Universitarias de Zaragoza, 1998
  2. Rolf Oppliger,"Ssl and Tls: Theory and Practice". Artech House 2009
  3. Junju Shikata, "Unconditional security"
  4. Bart Preenel,"Cryptographic Primitives for Information Authentication - State of the Art". Katholieke Universiteit Leuven
  5. G. Hanaoka et all,"Unconditionally Secure Anonymous Encryption and Group Authentication"
  6. Bart Preenel,"Cryptographic Primitives for Information Authentication - State of the Art". Katholieke Universiteit Leuven
  7. Neri Merhav, "The Shannon Cipher System with a Guessing Wiretapper". IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 45, NO. 6, SEPTEMBER 1999
  8. Rolf Oppliger,"Ssl and Tls: Theory and Practice". Artech House 2009
  9. Rolf Oppliger,"Ssl and Tls: Theory and Practice". Artech House 2009
  10. Rolf Oppliger,"Ssl and Tls: Theory and Practice". Artech House 2009
  11. Bart Preneel, "Cryptographic Primitives for Information Authentication -State of the Art", Katholieke Universiteit Leuven
  12. Bart Preenel,"Cryptographic Primitives for Information Authentication - State of the Art". Katholieke Universiteit Leuven
  13. Stefan Wolf,"Unconditional Security in Cryptography", Swiss Federal Institute of Technology.Zürich
  14. Bart Preenel,"Cryptographic Primitives for Information Authentication - State of the Art". Katholieke Universiteit Leuven

Volver a la Portada de Logo Paperblog