El viérnes tuve la suerte por segunda vez, de poder dictar, en nombre de Openware, un módulo de la especialización en Seguridad Informática que se dicta aquí en Rosario en la Fundación Libertad. En este caso, el módulo se titulaba «Seguridad Avanzada«. Entre los temas que me tocó dar, el más interesante y que nos llevó toda la mañana (la mitad de la jornada) es criptografía.
El tema de la criptografía es muy interesante, y no hace falta ser un matemático avanzado para entender los conceptos principales del tema. Es una realidad, que es un área dedicada exclusivamente a personas apasionadas o con vocación matemática, pero a ellos vamos a dejarles el estudio de la ciencia y el desarrollo de algoritmos de encripción potentes. Nosotros, intentemos entender los principales conceptos y las ideas más importantes.
Para empezar: ¿Qué es criptografía? Podría dar definiciones más extensas pero acorde a lo prometido recientemente, la definiré como la técnica que se utiliza para convertir un mensaje legíble, en uno que no lo es. Es decir, si yo quiero decir «HOLA», podría trasformar cada letra en la que sigue en el abecedario y decir «IPMB». Quién no sepa cómo codifiqué mi mensaje, no podrá volver atrás ese mensaje ilegíble.
Entonces pensemos ahora por qué encriptamos la información. Para empezar, vale la pena clarificar que la criptografía no es una ciencia moderna, de hecho, antes de que existiera la informática, se consideraba a la criptografía no solo como una técnica, sino como un arte. El «arte de ocultar la información». La usaron los griegos, la usaron los romanos, la usaron nuestros antepasados. Sin un ordenador que procese un algoritmo, históricamente era más complejo pensar formas de ocultar la información de forma tal que solo la entienda quién nosotros querramos que lo haga. De una u otra forma, el fundamento principal, como arrancaba el parrafo, para encriptar un texto es evitar que este sea entendido al transportarlo (o alojarlo) por un medio inseguro. En el pasado, era enviar una carta que podía ser interceptada. ¿Cuál es el medio inseguro de hoy? Sí amigos, es Internet. La red de redes fue desarrollada con un objetivo primario que nada tenía que ver con la seguridad de la información: comunicar. En su momento, fue una red utilizada solo por el departamento de defensa del Tío Sam, y su objetivo primario era comunicar eficientemente. Más tarde Internet se expandió, y de golpe nos dimos cuenta que era un medio inseguro, era un medio donde nuestra información podía ser fácilmente interceptada y, por ende, leída. También sabemos que la información que transmitimos por la web es cada vez más sensible por lo que la necesidad de que nuestros datos viajen encriptados, es cada vez más importante.
Es por ello, que se comenzó a utilizar un esquema muy simple:
- Al transmitir información sensible por la web, los datos antes de enviarse son procesados por un algoritmo que cifra la información.
- La información viaja encriptada por la web.
- Al llegar al otro extremos, la información es descifrada y se obtienen los datos legibles nuevamente.
Además, muchos habrán escuchado hablar de que para la criptografía, se utilizan claves. ¿Qué claves? Bien, básicamente (muuy básicamente 😉 ), el objetivo de utilizar claves para encriptar la información es el de omitir la necesidad de crear nuevos algoritmos constantemente. Se desarrollaron algoritmos que dependen de las claves y, de esta forma, mucha gente puede utilizar el mismo algoritmo, y el cifrado dependerá de la clave que se use para cifrar la información. Volviendo al ejemplo anterior y más simple; yo podría transmitir «Hola», utilizando el siguiente algoritmo: «Modificar cada caracter por los siguientes n caracteres en el abecedario». De esta forma, tendríamos:
- Si n=1, estamos en el caso del principio y la palabra cifrada es: IPMB
- Si n=2, la palabra cifrada es: JQNC.
Es decir, depende de la clave la salida del texto cifrado y, entonces, no dependemos del algoritmo sino de la clave para encriptar la información.
En resúmen, este es el uso que le damos hoy en día y las ideas principales de criptografía y voy a detenerme hoy Sábado aquí para no extenderme.
Para un próximo post, vamos a ver si es posible desencriptar un mensaje sin conocer la clave (vayan pensando en los ejemplos que aquí dejé) y conocer que existen dos tipos de algoritmos que se utilizan hoy en día: simétricos y asimétricos. También intentaré explicar las ventajas de cada uno y en qué se utilizan cada uno de ellos.
Para cerrar, les dejo un desafío: ¿a ver quién comenta qué dice la frase de acá abajo?
FRDSGOP NOMSTOP
Les voy a dar una pista: de una u otra forma, existe una relación en la encripción que se utilizó y la temática del blog y los temas que se tratan en todos los post.
Actualización 22:00hs: Teniendo en cuenta las primeras opiniones de mi pareja (principal crítica del blog) voy a hacer algunas aclaraciones:
- El «algoritmo» de transformación que use para armar las palabras del desafío no utiliza clave, es un simple algoritmo en donde a cada letra de estas dos palabras le asigné otra letra, utilizando una lógica fija.
- Si nadie lo saca, en la semana pondré el desafío en el cuadro «Novedades» del home e iré poniendo pistas, pero los invito a pensarlo, no es tan difícil (aunque tampoco tan fácil como el ejemplo que puse en el post).