La criptografía es el arte de crear criptogramas, es decir, se codifican los mensajes de forma que sólo el emisor y el receptor puedan entenderlos.
Vamos a explicar de forma general, cuatro algoritmos de la criptografía (DES, IDEA, RSA y MD5.) son secuencias parcialmente complejas de operaciones que sirven para codificar y decodificar un texto o una cadena binaria.
Dichos algoritmos de entrada reciben una clave que representa el secreto en sí e influye en el cálculo de los datos codificados. Para poder descodificar dichos mensajes necesitamos la clave utilizada anteriormente.
Los algoritmos de codificación como el DES (Data Encryption Standars) con 56 bits el espacio para claves es de (7 *1016) , en IDEA (International Data Encryption Algorithmus) con 128 bits es de (3,4 * 1038).
Los algoritmos (DES e IDEA) son simétricos, eso significa que tanto el codificador y el decodificador utilizan la misma clave. Dicha técnica no es aconsejable para el mundo de internet.
Si codificamos un texto en un ordenador con dichos algoritmos y lo enviamos por internet a otro ordenador, para que lo pueda descodificar, también tenemos que enviar la clave por la red y eso no es nada aconsejable. Para poder descodificar dichos mensajes el envío de la clave tiene que ser por medios tradicionales, por ejemplo correo ordinario o mensajero.
Para el mundo de internet existen los algoritmos asimétricos. En ellos se utiliza para codificar una clave distinta a la que se utiliza para decodificar y aquí ha logrado gran difusión el algoritmo RSA y MD5 es Open Source y deseñado por Ron Rivest uno de los ingenieros de la compañia RSA.
Por lo tanto, Internet es el terreno ideal para los algoritmos de codificación asimétricos (RSA y MD5), que permiten la codificación y la decodificación con dos claves distintas. En el marco de los sistemas «Public Key» se dan dos claves a cada participante: una pública y una privada. La clave pública puede y debe transmitirse hacia el exterior, puesto que se trata de la clave con la que un remitente ha codificado una carta para el destinatario en cuestión: con su clave pública. El destinatario puede obtener esta clave por correo electrónico, por correo normal o por teléfono, o bien, en una base de datos de Internet, en la que se pueden depositar claves públicas libremente.
Sin embargo, la clave pública no vale para decodificar el mensaje. Esto sólo puede hacerse con la clave privada del destinatario en cuestión, por lo que éste debe guardarla como una pequeña reliquia. La gran ventaja de este método de hecho es que uno sólo tiene que generar algunas claves privadas y públicas para poder recibir correo codificado de cualquier persona en la red, al cual sólo podrá acceder a través de su clave privada.
Existe el algoritmo Hash del modelo MD5 o firma digital. La firma digital es poder acreditar la integridad y la autenticidad de un documento, así como la autoría del remitente. La firma debe ser tan unívoca que no pueda volver a utilizarse para otro documento. Así pues, debe derivarse de alguna manera del documento en sí y de su contenido.
Las más adecuadas para ello son las funciones «One-Way Hash»: que condensan una información en una dirección, pero en otra dirección no permiten deducir la información original.
El MD5 genera, a partir de un texto de cualquier longitud, una clave de 128 bits que es única para ese texto. Con sólo cambiar un carácter, se obtiene un valor muy distinto en el cálculo del MD5.
Los pasos a seguir en un mensaje con firma digital son:
- El remitente calcula el valor Hash de su mensaje, lo codifica con su clave privada y lo agrega al mensaje.
- A continuación, codifica el mensaje completo con la clave pública del destinatario.
- El mensaje viaja a través de Internet.
- Llegado al destinatario, éste decodifica el documento con su clave privada.
- Decodifica la firma agregada con el valor Hash a través de la clave pública del remitente.
- El destinatario calcula el valor Hash del mensaje y lo compara con el valor Hash de la firma decodificada del remitente. Sólo si ambos son idénticos, el mensaje será auténtico y no modificado.
En proximas entradas explicaremos cada uno de los algoritmos en profundidad.