Tomás
Bradanovic |
Algo Sobre Criptografía
- La criptografía se ocupa del problema de enviar información confidencial a través de un medio inseguro. Para asegurar la confidencialidad se podría asegurarse el medio de transmisión o bien la información misma, la criptografía usa este último enfoque encriptando la información de manera que, aunque se encuentre disponible para cualquiera, no pueda ser utilizada a menos que alguien autorizado la descifre.
En un modelo criptografico típico tenemos dos puntos a y b que se consideran fiables y se transmite información entre ellos a través de un canal no fiable. La criptografía se preocupa de los problemas de transmisión confidencial y segura por el medio no fiable, en tanto la seguridad informática se ocupa de asegurar la fiabilidad de los nodos a y b
- Los problemas que ocupan a la criptografía son asegurar la privacidad o confidencialidad, la autenticación y la integridad de los datos transmitidos, tal como se describieron en el capítulo de "Conceptos Básicos de Seguridad Informática"
- Criptoanálisis
Este es el proceso para la obtención (furtiva) de claves en sistemas criptográficos. El problema del criptoanálisis es descifrar un mensaje encriptado sin disponer de las herramientas que autorizan a ello (claves).
Existen diversas técnicas de criptoanálisis como la de buscar la clave a partír del texto cifrado (por ejemplo sabiendo que el mensaje contiene ciertas palabras, identificarlas y luego revertir el proceso de cifrado). Otra técnica es conocer al menos un par de textos cifrado y sin cifrar y a pñartir de el encontrar el algoritmo o la clave de cifrado y, los mas usuales, los "ataques por fuerza bruta" que consiste en probar todas las claves posibles usando poderosos computadores.
- En general existen cuatro estrategias posibles de ataque: la interrupción, la interceptación, la modificación y la generación..
- Criptosistemas
Un criptosistema es un sistema que permite cifrar y descifrar la información y consta de 5 elementos: un espacio de mensajes M, un espacio de textos cifrados C, un espacio de claves K, un conjunto de familias de transformaciones de cifrado Ek, y de descifrado Dk. La fortaleza de un criptosistema se basará an mantener en secreto las claves no los algoritmos.
- Encriptaciones Sencillas de Criptografía Clásica
Existen métodos sencillos de encriptación que nos permiten tener una idea del principio en que se basan aquellos más complejos de la criptografía clásica, por ejemplo muchos cuando niños usamos la "clave murcielago" para escribir mensajes secretos, donde a las letras de la palabra "murcielago" se les asignaban los números 0,1,2,3,4,5,6,7,8 y 9 respectivamente. Así la palabra "hola" se transforma en "h967" etc.
Otro método básico consiste en dezplazar las letras en "n" lugares, por ejemplo con un desplazamiento de 1 la palabra "hola" se convierte en "ipmb" (cada letra se desplaza un lugar hacia la siguiente)
Estos ejemplos básicos son muy fáciles de descifrar pero muestran los métodos usados en la criptografía clásica: La sustitución y la transpocisión.
- Sistemas de Clave Secreta y de Clave Pública
Para la asignación de claves existen dos métodos fundamentales: los simétricos (o de clave secreta) y los asimetricos (o de clave pública). en los sistemas de clave secreta la clave es conocida solo por quienes estan autorizados a enviar y recibir el mensaje, estas claves deben ser entonces enviadas de algún modo dentro o fuera del mensaje. En el ejemplo de la "clave murcielago" tanto el que envía como el que recibe deben conocer la clave, igual en el desplazamiento de texto, ambos deben saber en cuantos lugares se desplazará el texto. Estos son por lo tanto sistemas de clave secreta.
- En los sistemas de clave pública cada usuario tiene dos claves: una secreta conocida solo por el y una pública conocida por todos. Este sistema es el que se usa actualmente por sus ventajas de proveer "firma digital" y ser más seguro el proceso de intercambiar claves.
- Seguridad incondicional y seguridad computacional
La seguridad incondicional se produce cuando se conoce un mensaje cifrado c y no es posible por ningún medio conocer el mensaje original m a partir de este.
La seguridad computacional significa que, aunque es teoricamente posible deducir m a partir de c, la capacidad en tiempo, proceso y recursos económicos para obtener este resultado es, en la práctica, inalcanzable.
La seguridad incondicional es un concepto matemático y por lo tanto absoluto, la seguridad computacional es muy relativa ya que depende de la tecnología del momento, de los avances del criptoanálisis, etc.
Los sistemas de encriptación usados en la práctica ofrecen solo seguridad computacional
- Los algoritmos deben ser sencillos y conocidos por todos
En los sistemas abiertos (Internet por ejemplo) los algoritmos no deben ser secretos, así la seguridad del criptograma depende fundamentalmente de las claves empleadas. La fortaleza de los sistemas de clave secreta es que resulta imposible calcular la clave k a partir del mensaje cifrado c. En los sistemas de clave pública su fortaleza descansa en la imposibilidad computacional de obtener la clave privada a partir de la clave pública.
- El fundamento matemático de los criptosistemas se basa en la teoría de la información (C. Shannon), la teoría de los números y la teoría de la complejidad de los algoritmos.
La teoría de la información se ocupa de la entropía de los mensajes (el porcentaje de información y redundancia que contienen). La teoría de los números trata sobre la aritmética modular para crear algoritmos de cifra y descifrado. La teoría de la complejidad de los algoritmos estudia los problemas y los clasifica según sean tratables o intratables y se ocupa de la calidad de los algoritmos criptográficos.
- El conjunto de enteros mod p con p un número primo y sus operaciones aritméticas forman lo que se conoce como Campo de Galois y son de particular interés porque permiten la creación de algoritmos de cifrado y descifrado sencillos y eficientes.
- La Criptografía Moderna
En criptografía moderna (desarrollada principalmente con apoyo de computadores) se usan los sistemas de clave pública así como los de clave privada, siendo los primeros los más usados en la actualidad.
Los criptosistemas de clave pública RSA y El Gamal usan para cifrar operaciones la exponenciación de bloques del mensaje a un número que hace las veces de clave. Las ventajas de los sistema de clave pública son que se generan menos claves en el sistema (un usuario=una clave pública), la seguridad ya no solo se basa en la longitud de la clave y permite autenticar al usuario mediante la firma digital
- Cifradores de Flujo y de Bloque
En los cifradores de flujo se cifra el mensaje caracter a caracter, en los cifradores de bloque se aplica el algoritmo de cifra a bloques de texto clarode un tamaño fijo y predeterminado. Algunos algoritmos cifradores de bloque son el DES (Data Encripotio Standard) y el IDEA (International Data Encription Algorithm) este último forma parte del software de encriptación para correo seguro PGP (Pretty Good Privacy)
El algoritmo RSA (Rivest, Shamir y Adleman), usado por el software PGP basa su seguridad en la dificultad del criptoanalista de factorizar un número, el módulo, que ha sido obtenido mediante el producto de dos números primos muy grandes. Se trata de un algoritmo muy seguro. No se conoce que hayan sido rotos, por lo menos con algoritmos de criptoanálisis eficientes de bajo costo. Los algoritmos RSA y El Gamal han sido adoptados como estándares de seguridad por organismos internacionales y son de gran difusión.
- PGP
Pretty Good Privacy es, junto con PEM, uno de los software de correo seguro más conocidos, su distribución es gratuita (freeware) y existe en dos versiones: una para uso dentro de USA y otra internacional, la primera está restringida en su seguridad para cumplir con las leyes de USA, la segunda no tiene restricciones y es muy segura y eficiente, hay versiones para prácticamente todos los sistemas operativos en uso.
PGP usa los siguientes algoritmos en sus funciones de cifra, gestión de claves y firmas digitales: IDEA, RSA, ZIP, MD5 y conversión base-64
- Limitaciones de la Criptografía
Los algoritmos criptográficos tienden a degradarse en el tiempo. A medida que pasa el tiempo los algoritmos de encripción se van haciendo más fáciles de quebrar debido al avance en la velocidad y potencia de los equipos de computación. Todos los algoritmos criptograficos son vulnerables a los ataques de fuerza bruta -tratar sistemáticamente con cada posible clave de encripción, buscando colisiones para funciones hash, factorizando grandes numeros, etc.- la fuerza bruta se hace más facil a medida que pasa el tiempo. En 1977 Martin Gardner escribió que los números de 129 digitos nunca serían factorizados, en 1994 se factorizó uno de esos números. Además de la fuerza bruta están los avances en las matemáticas fundamentales que permiten nuevois métodos y técnicas de criptoanálisis.
Muchas partes de este texto han sido extraidas del libro "Aplicaciones Criptográficas" del Doctor Jorge Ramió Aguirre (ariqueño, ejemmm), Director del Departamento de Lenguajes, Proyectos y Sistemas Informáticos de la Universidad Politécnica de Madrid, España