La criptografía consiste en la modificación de un mensaje a una forma no comprensible directamente de forma tal que solo quienes establezcan una comunicación cifrada puedan tener acceso a los datos originales.
De esta forma, dos sistemas finales que establezcan una comunicación cifrada, transmitirán datos encriptados a través de la red pública reduciendo el riesgo de que la información que por ella viaja sea expuesta a terceros no deseables.
Un mecanismo de encriptación consiste de una operación o algoritmo de cifrado que utiliza una clave para transformar un mensaje de su formato original (interpretado como texto plano) a un nuevo mensaje encriptado (texto cifrado), es decir, éste último es una función de la clave y del mensaje original f(m,c) = x donde f es el algoritmo de cifrado, m el mensaje original, c la clave y x el mensaje encriptado. El receptor de un mensaje cifrado debe efectuar la función inversa para obtener el mensaje original, es decir debe calcular f -1(x,c) con lo que obtendrá m.
En todos los sistemas de cifrado actuales, el algoritmo es de público conocimiento y cada participante de una comunicación utiliza claves privadas acordadas entre ellos. De esta forma se asegura que el mensaje original no será conocido por algún tercero. Por lo tanto es deseable un esquema de obtención y administración de claves robusto, para que emisor y receptor puedan comunicarse de forma segura, y que impida que algún atacante obtenga la clave con la cual se encriptarán los mensajes. Por esto, la operación de cifrado debe ser lo suficientemente compleja para que sea prácticamente imposible recuperar la clave del mensaje cifrado mediante "fuerza bruta" (es decir, probando todos lo posibles valores).
Ya que se asume que un atacante tiene conocimiento de la función de encriptado, la seguridad de un sistema de cifrado está basada en el secreto de las claves, por lo tanto, protegerlas es de gran importancia. Para este propósito existen algunos mecanismos, entre los cuales tenemos claves de sesión, usadas para cada transmisión, éstas son distribuidas usando una clave maestra generalmente generadas por un Centro de Distribución de Claves.
Existen algunas consideraciones acerca de los sistemas de encriptado en cuanto al modo de operación y la clave utilizada.
Modos de operación
Existen dos tipos de sistemas de cifrado, teniendo en cuenta el modo de operación. Los sistemas de cifrado continuo operan con cadenas continuas de datos, típicamente bit u octetos. Es más usado en las comunicaciones de aplicaciones interactivas (telnet, rlogin). Y los sistemas de cifrado de bloques en cadena que operan sobre grupos o bloques de bits u octetos, generalmente de 64 bits u 8 octetos. Éste más usado en aplicaciones de transferencia masiva de datos.
Uso de Claves
Podemos dividir a los sistemas de cifrado en dos grupos según el número de claves utilizadas: criptografía simétrica y criptografía asimétrica.
Criptografía Simétrica
En la Criptografía Simétrica, también conocida como criptografía de clave privada, las dos partes implicadas en una comunicación acuerdan y comparten una clave secreta única. Los datos se encriptan y desencriptan utilizando la misma clave. Para garantizar la seguridad de los datos transmitidos, debe protegerse la clave y sólo debe ser conocida por aquellos que participan de la comunicación.
Este sistema de cifrado es rápido y eficaz, hablando en términos computacionales. Actualmente existen diversos algoritmos muy robustos y potentes para realizar este tipo de cifrado. Las claves utilizadas no son muy largas y el grado de protección de la información es directamente proporcional a la longitud de la clave secreta. Por esta razón, es recomendable cambiar la clave con frecuencia.
El mayor inconveniente de este sistema se presenta en la distribución de la clave entre las partes a comunicarse. La distribución de la clave debe ser por medios seguros ya que de otra forma podría ser interceptada y verse comprometida la privacidad de las transmisiones.
De todas formas, este sistema se utiliza muchísimo ya que los algoritmos disponibles son rápidos y robustos. De este inconveniente surge, entonces, la necesidad de utilizar un canal seguro para el intercambio o distribución de las claves. Esto puede ser resuelto utilizando un sistema de Criptografía Asimétrica.
Actualmente, los algoritmos de clave privada mas usados son DES, 3DES, IDEA, CAST, RC4, RC2.
Criptografía Asimétrica
La Criptografía asimétrica, también conocida como criptografía de clave pública, se caracteriza por usar un par de claves, llamadas clave pública y clave privada. El proceso de utilización de pares de claves se basa en la aplicación del concepto de función unidireccional con trampa, que solo permite realizar el descifrado al poseedor de la clave secreta (trampa), que de no conocerla, requiere solucionar un problema matemático de un elevado costo computacional.
En el proceso de comunicación, el receptor crea el par de claves, pública y privada, y distribuye la clave pública libremente a quien quiera enviarle información. La clave privada queda en posesión de quien la creó asegurando que nadie mas la conocerá. En este caso no es problema que un tercero “se haga” de la clave pública, pues la única forma de descifrar un mensaje encriptado con la misma solo puede ser descifrado con la clave privada que solo posee el receptor deseado del mensaje. La idea es que la clave privada sea usada solo para descifrar y la pública solo para cifrar mensajes (aunque es posible la operación inversa).
La principal ventaja del cifrado con clave pública es el incremento de seguridad que proporciona, pues la clave privada nunca es transmitida, ni es revelada a nadie.
La principal desventaja de usar claves públicas para encriptar es la velocidad del proceso. El sistema de clave privada es mucho más rápido que el de clave pública. El mejor sistema es un método combinado, donde la clave publica se utiliza para encriptar una clave secreta que se transmite al otro de una forma segura. Una vez que el otro recibe la calve secreta, todo el cifrado posterior, de la comunicación, se realiza por el sistema de clave privada.
Otro problema es que las claves son muy largas, comparadas con aquellas usadas en lo sistemas de encriptado convencional, lo que debe ser considerado al momento de elegir un sistema de distribución de claves.
Entre los algoritmos de clave pública mas importantes, tenemos RSA, PGP y Diffie-Hellman.