9 oct 2013

Criptografía: un viaje por la comprensión de la información

Personalmente la criptografía siempre me ha llamado la atención, y además he tenido el placer de conocer a personas reconocidas como Jorge Ramió y Alfonso Muñoz. Por eso desde aquí, quiero empezar una serie de artículos que poco a poco nos irán llevando por el mundo de la criptografía. Este tema no es mi fuerte ni mucho menos, pero escribiendo sobre ello me siento cómodo y me gusta investigar en ratos libres (que son pocos) sobre ello. También recomiendo a los interesados en la materia el libro de "Cifrado de las comunicaciones digitales de la cifra clásica al algoritmo RSA".

¿Qué es la criptografía? El cifrado es un proceso el cual utiliza un algoritmo, el cual llamaremos algoritmo de cifrado, con una clave el cual hace que el mensaje original no pueda ser interpretado de manera lógica por un receptor o un interceptor. En otras palabras, el mensaje original se vuelve incomprensible al ser humano. ¿Quién podrá ver y entender el contenido del mensaje? El que disponga de la clave de descifrado o clave secreta, la cual se deberá usar con el algoritmo de descifrado. Pero antes de seguir debemos entender que podemos hablar de criptografía simétrica o criptografía asimétrica. También es importante tener en la cabeza que el juego de caracteres que se usa en el mensaje sin cifrar puede no ser el mismo que en el mensaje cifrado, este hecho es algo bastante lógico.

Conceptos

Ahora vamos a ver algunos conceptos de términos utilizados en criptografía con los que será mucho más sencillo lo que nos cuentan en otros sitios, siempre que veamos esas palabras.

  • Plaintext o texto plano. Texto a cifrar, aunque en muchas ocasiones representa también parte binaria que se quiere cifrar (aunque no muy correctamente).
  • Cifrador. Este término representa al sistema el cual implementa el algoritmo de cifrado.
  • Cifrado. Procedimiento de pasar de texto plano a un mensaje cifrado.
  • Algoritmo de cifrado. El método que se utiliza para llevar a cabo el proceso de cifrado.
  • Clave de cifrado. Clave que se utiliza en el algoritmo para llevar a cabo el cifrado.
  • Descifrador. Sistema que implementa el algoritmo de descifrado.
  • Descifrado. Procedimiento en el cual se parte del texto cifrado y se obtiene el mensaje en claro, es decir en formato legible.
  • Algoritmo de descifrado. Método utilizado para descifrar.
  • Clave de descifrado. Clave utilizada en el algoritmo de descifrado.
  • Gestión. Procedimiento de gestión de claves, por ejemplo: generación, certificación, distribución y/o cancelación de claves necesarias para llevar a cabo el cifrado.
Criptografía simétrica vs asimétrica

La criptografía simétrica es cuando el usuario que quiere cifrar la información utiliza la misma clave de cifrado para realizar la operación como para el descifrado. Esto suele tener el problema de que si un usuario intercepta el intercambio de claves, éste podría visualizar la información. Como ventaja el proceso de cifrado suele ser más rápido y más sencillo conceptualmente para el ser humano, ya que se utiliza la misma clave para ambas operaciones, cifrado y descifrado. Los métodos más conocidos son DES, 3DES, AES, etc.

Por otro lado nos encontramos con la criptografía asimétrica, en la que un usuario utiliza una clave para llevar a cabo el cifrado del mensaje y otra clave para llevar a cabo el descifrado del mensaje. En otras palabras, clave de cifrado y clave de descifrado son distintas. La clave utilizada para el cifrado es denominada clave pública, mientras que la clave utilizada para el descifrado se denomina clave privada. El método más conocido y utilizado mundialmente es RSA. No es posible deducir la clave privada a partir de la clave pública, y además su generación es indivisible, es decir no podemos crear una clave pública de manera aislada o viceversa con la clave privada. En la generación de claves, se obtienen las dos.

Cifrado de flujo vs bloques

El cifrado en flujo es cuando el cifrado se realiza bit a bit. La clave de cifrado es obtenida mediante el uso de una clave predeterminada o es generada, en otros casos, por un generador de claves pseudoaleatorio (RKG, Random Key Generator), el cual genera la sentencia pseudoaleatorio, eso sí a partir de una clave de inicialización. Es lógico entender que en algunas ocasiones para generar la clave pseudoaleatoria se utiliza parte del mensaje que ya llevamos cifrado, de este modo se consigue una aleatoriedad relativa.

Por otro lado tenemos el cifrado por bloques, en el cual el cifrado es realizado bloque a bloque. Se debe obtener el mensaje a cifrar en bloques, de un tamaño determinado el cual proporcionará el algoritmo de cifrado. Cada bloque del mensaje se convertirá en un bloque cifrado. Un ejemplo interesante es AES.

Por último comentar que existen otras clasificaciones de cifrados, los cuales pueden ser interesantes estudiar en el futuro, a la vez que se comentan los algoritmos más utilizados y el funcionamiento de éstos.

  • Seguro hacia adelante.
  • Con umbral.
  • Basado en identidad.
  • Negable.
  • Con clave aislada.
  • Maleable.
 

1 comentario: