jueves, 3 de mayo de 2012

Criptografía.


¿Para que sirve la criptografía?

Los seres humanos siempre han sentido la necesidad de ocultar información, mucho antes de que existieran los primeros equipos informáticos y calculadoras.



Desde su creación, Internet ha evolucionado hasta convertirse en una herramienta esencial de la comunicación. Sin embargo, esta comunicación implica un número creciente de problemas estratégicos relacionados con las actividades de las empresas en la Web. Las transacciones que se realizan a través de la red pueden ser interceptadas y, sobretodo, porque actualmente resulta difícil establecer una legislación sobre Internet. La seguridad de esta información debe garantizarse: éste es el papel de la criptografía.



¿Qué es la criptografía?

La palabra criptografía es un término genérico que describe todas las técnicas que permiten cifrar mensajes o hacerlos ininteligibles sin recurrir a una acción específica. El verbo asociado es cifrar.



La criptografía se basa en la aritmética: En el caso de un texto, consiste en transformar las letras que conforman el mensaje en una serie de números (en forma de bits ya que los equipos informáticos usan el sistema binario) y luego realizar cálculos con estos números para:



• modificarlos y hacerlos incomprensibles. El resultado de esta modificación (el mensaje cifrado) se llama texto cifrado, en contraste con el mensaje inicial, llamado texto simple.

• asegurarse de que el receptor pueda descifrarlos.



El hecho de codificar un mensaje para que sea secreto se llama cifrado. El método inverso, que consiste en recuperar el mensaje original, se llama descifrado.





El cifrado normalmente se realiza mediante una clave de cifrado y el descifrado requiere una clave de descifrado. Las claves generalmente se dividen en dos tipos:



• Las claves simétricas: son las claves que se usan tanto para el cifrado como para el descifrado. En este caso hablamos de cifrado simétrico o cifrado con clave secreta.

• Las claves asimétricas: son las claves que se usan en el caso del cifrado asimétrico (también llamadocifrado con clave pública). En este caso, se usa una clave para el cifrado y otra para el descifrado.



En inglés, el término decryption (descifrado) también se refiere al acto de intentar descifrar en forma ilegítima el mensaje (ya conozca o no el atacante la clave de descifrado).



Cuando el atacante no conoce la clave de descifrado, hablamos de criptanálisis o criptoanálisis(también se usa el término decodificación).



La criptología es la ciencia que estudia los aspectos científicos de estas técnicas, es decir, combina la criptografía y el criptoanálisis.



Las funciones de la criptografía

La criptografía se usa tradicionalmente para ocultar mensajes de ciertos usuarios. En la actualidad, esta función es incluso más útil ya que las comunicaciones de Internet circulan por infraestructuras cuya fiabilidad y confidencialidad no pueden garantizarse. La criptografía se usa no sólo para proteger la confidencialidad de los datos, sino también para garantizar su integridad y autenticidad.

Criptoanálisis

El criptoanálisis consiste en la reconstrucción de un mensaje cifrado en texto simple utilizando métodos matemáticos. Por lo tanto, todos los criptosistemas deben ser resistentes a los métodos de criptoanálisis. Cuando un método de criptoanálisis permite descifrar un mensaje cifrado mediante el uso de un criptosistema, decimos que el algoritmo de cifrado ha sido decodificado.



Generalmente, se distinguen cuatro métodos de criptoanálisis:

• Un ataque de sólo texto cifrado consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados;

• Un ataque de texto simple conocido consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados conociendo el texto correspondiente;

• Un ataque de texto simple elegido consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados. El atacante tiene la opción de generarlos a partir de textos simples;

• Un ataque de texto cifrado elegido consiste en encontrar la clave de descifrado utilizando uno o más textos cifrados. El atacante tiene la opción de generarlos a partir de los textos simples.



Cifrado de sustitución

El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un mensaje por una o más entidades diferentes.

Existen varios tipos de criptosistemas de sustitución:

• La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra letra del alfabeto.

• La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son re-utilizados periódicamente.

• La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se corresponda con un posible grupo de caracteres distintos.

• La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro grupo de caracteres.



Cifrado César

Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César. El principio de cifrado se basa en la adición de un valor constante a todos los caracteres de un mensaje o, más precisamente, a su código ASCII (American National Standard Code for Information Interchange).



Simplemente es cuestión de cambiar todos los valores de los caracteres de un mensaje en un determinado número de posiciones, es decir, sustituir cada letra por otra. Por ejemplo, si cambiamos 3 posiciones del mensaje "COMMENT CA MARCHE", obtenemos "FRPPHQW FD PDUFKH". Cuando el valor agregado da una letra posterior a la Z, podemos simplemente continuar empezando por la A. Esto quiere decir que aplicamos un módulo 26.



Como, por ejemplo, en la película 2001: Una Odisea al Espacio, el ordenador se llamó HAL. Este nombre es, en realidad, IBM desplazado una posición hacia abajo...



El carácter que corresponde al valor que se agregó al mensaje para el cifrado se llama clave. En este caso, la clave es C, ya que es la 3º letra del alfabeto.



Este sistema de cifrado es, en verdad, muy fácil de implementar, pero su desventaja es que es totalmente asimétrico, ya que se puede realizar una simple sustracción para averiguar el mensaje inicial. Un método básico consiste en una simple sustracción de los números 1 al 26 para ver si alguno de estos números nos da un mensaje inteligible.



Un método más avanzado consiste en calcular la frecuencia con que aparecen las letras en el mensaje codificado (esto se hace cada vez más fácil a medida que el mensaje es más largo). Según el idioma, algunas letras se usan con más frecuencia que otras (por ejemplo, en francés la letra E es la más usada). De esta forma, la letra que aparece con más frecuencia en el texto cifrado mediante el cifrado César será la que corresponda a la letra E y una simple sustracción nos da la clave de cifrado...



Cifrado ROT13

El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del alfabeto) se denomina ROT13 (se eligió el número 13, la mitad de 26, para que sea posible cifrar y descifrar fácilmente mensajes textuales).



Cifrado de transposición

El método de cifrado por transposición consiste en reordenar datos para cifrarlos a fin de hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos geométricamente para hacerlos visualmente inutilizables.

La técnica asiria

La técnica de cifrado asiria es, probablemente, la principal prueba de que los métodos de cifrado se utilizaron en Grecia ya en el año 600 AC para encubrir mensajes escritos en tiras de papiro.



La técnica consiste en:

• enrollar una tira de papiro alrededor de un cilindro llamado scytale,

• escribir el texto a lo largo en la tira enrollada (el mensaje del ejemplo mostrado arriba es "comment ça marche").



Cuando se desenrolla el mensaje, ya no tiene significado ("cecaeonar mt c m mh"). Para descifrar el mensaje, el destinatario simplemente necesita tener un cilindro del mismo diámetro. En realidad, un descifrador de códigos (¡había descifradores de códigos en esa época!) puede descifrar el mensaje probando cilindros con una serie de diámetros diferentes; esto significa que el método puede romperse estadísticamente (los caracteres sólo tienen que tomarse uno a uno, separados por una determinada distancia).



Criptografía de clave privada (o clave secreta)

El cifrado simétrico

El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.



El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la seguridad absoluta no existe).



Sin embargo, en la década de 1940, Claude Shannon demostró que, para tener una seguridad completa, los sistemas de clave privada debían usar claves que tengan, como mínimo, la misma longitud del mensaje cifrado. Además, el cifrado simétrico requiere que se utilice un canal seguro para intercambiar la clave y esto disminuye en gran medida la utilidad de este tipo de sistema de cifrado.



La mayor desventaja de un criptosistema de clave secreta está relacionada con el intercambio de las claves. El cifrado simétrico se basa en el intercambio de un secreto (las claves). Surge, entonces, el problema de la distribución de las claves:



Así, un usuario que desea comunicarse con varias personas y garantizar al mismo tiempo niveles separados de confidencialidad debe utilizar el mismo número de claves privadas que de personas. Para un grupo de una cantidad N de personas que utilizan un criptosistema de clave secreta, es necesario distribuir una cantidad de claves equivalente a N* (N-1) / 2.



En la década de 1920, Gilbert Vernam y Joseph Mauborgne desarrollaron el método One-Time Pad(también conocido como "One-Time Password", abreviado OTP), basado en una clave privada generada de forma aleatoria que se usa sólo una vez y después se destruye. En el mismo período, el Kremlin y la Casa Blanca se comunicaban a través del famoso teléfono rojo, un teléfono que cifraba las llamadas mediante una clave privada que utilizaba el método one-time pad. La clave privada se intercambiaba a través de valija diplomática (que cumplía el papel de canal seguro).

No hay comentarios: