sábado, 31 de enero de 2009

Esteganografía vs. Criptografía


La esteganografía y criptografía provienen de vocablos griegos similares, las dos buscan ocultar un mensaje importante de un posible atacador (alguien que desee conocer la información original sin permiso) pero llevan a cabo dicho ocultamiento de forma muy diferente.

La manera más fácil de entender la diferencia de la criptografía y la esteganografía es entendiendo el problema del prisionero (Gustavus J. Simmons, 1983), el cual es:

¿Cómo pueden comunicarse dos prisioneros (e. g. para acordar un plan de fuga) si están en celdas separadas y todos los mensajes que intercambian pasan a través de un guardián?

Primero, la abreviatura e. g. proviene del latín exempli gratia que significa "a modo de ejemplo" o simplemente "por ejemplo". Aclarado lo anterior, la situación es que dos prisioneros se quieren escapar pero el guardián lee todos los mensajes que se manden, así que deben arreglárselas para llevar a cabo el escape. Para hacerlo más interesante a los prisioneros les llamaremos Michael y Linc, mientras que el guardián se llamará Bellick (cualquier parecido con la serie prison break es mera coincidencia). Un diagrama de esta situación se muestra e la siguiente figura


De esta forma, si Michael le manda a Linc el mensaje: "El escape es el sábado tengo todo arreglado...", Bellick descubrirá su plan de escape, lo cual provocaría la destrucción del mensaje y una tremenda putiza , para que se les quiten esas ideas locas de la cabeza.


Pero como todos sabemos que Michael es un erudito y conoce de la criptografía entonces lo que hace es cifrar el mensaje que le envía a Linc (claro esta!, Linc conoce como descifrar el mensaje) para que Bellic no lo entienda. Pero Bellick al ver el mensaje cifrado, sospecha y lo destruye, evitando nuevamente su escape . Y como se imaginarán, Bellick les dará una putiza para saber que se andan tramando.



Ojo!...encriptar y desencriptar no es lo mismo que cifrar y descifrar, esas dos primeras palabras tienen que ver con criptas.



Otra alternativa que puede tomar Michael es utilizar la esteganografía para esconder el mensaje, pero ahora lo haría de una manera tal que dicho mensaje se escondería dentro de otro mensaje menos importante, es decir un medio portador inocuo. Así, Michael le manda a Linc el siguiente mensaje:

Bellick al leer el mensaje piensa que no hay nada extraño y lo deja pasar a Linc. Sin embargo, esta nota tiene un mensaje oculto el cual se puede observar en la siguiente imagen

Con esto, Michael y Linc planean el escape de la prisión sin levantar sospecha alguna. Ahora imaginemos un escenario pero ahora en nuestros días. Bellick es un Hacker famoso y está analizando todos los mensajes que envían Michael y Linc. Si se utiliza la criptografía Bellick trataría de romper dicha codificación para obtener la información oculta, en cambio si se utiliza la esteganografía Bellick no sabría que existen mensajes encubiertos en dicha comunicación, manteniendo el secreto a salvo. Es importante mencionar que un sistema estaganográfico o de marcas de agua utiliza la criptografía (cifrando el mensaje que se oculta) para obtener una mayor seguridad, por si logran romper el esquema de marcas de agua.


Con este ejemplo se puede notar la diferencia sutil de como ocultan la información estás dos disciplinas. Podemos concluir que el objetivo de la esteganografía es pasar desapercibida y el de la criptografía es evitar ser decodificada (o descifrada).

Antes de terminar, existe un tipo de esteganografía que soporta distorsiones en el medio marcado, a ésta se le conoce como esteganografía robusta. Por ejemplo, imaginemos que el cabrón de Bellick se le ocurre cambiar unas palabras del mensaje marcado (el que tiene información oculta). Si utilizáramos el método anterior nuestro mensaje oculto se perdería, mientras que si utilizáramos un método robusto, nuestro mensaje puede resistir este ataque de modificación.

Muchos autores llaman a la esteganografía robusta como marcas de agua. Hay que notar algo muy importante, tanto la esteganografía y las marcas de agua son métodos que ocultan información dentro de un medio... en principio son iguales, de hecho nosotros las tratamos como semejantes, pero muchos autores las toman como diferentes por la capacidad de resistencia ante ataques.

En la siguiente entrada hablaremos de una pequeña clasificación de la esteganografía.

viernes, 30 de enero de 2009

Watermarkero, ¿qué diablos es eso?

Un watermarkero es una persona que ha hecho algoritmos de watermarkingWatermarking es el nombre de técnicas que ocultan mensajes dentro medios. En español, esas técnicas son conocidas como marcas de agua. Así, cuando nos encontremos con términos como "método de marcas de agua", "esquema de marcas de agua", "algoritmo de marcas de agua", "sistema de marcas de agua" o simplemente "marcas de agua" sabremos que se refieren a métodos que ocultan información en un medio.

El término watermarkero no existe en nuestro español, pero al ver que no hay uno que designe a dichas personas me he tomado el atrevimiento de crearlo. Antes de continuar, mi nombre es Pedro Aarón Hernandez Ávalos y soy un watermarkero desde hace unos años (desde 2007).


Las marcas de agua describen técnicas para esconder un mensaje dentro de un medio. El mensaje puede ser variado: número de serie, texto, imagen, bits, etc. Cualquier medio puede ser un mensaje, les adelanto que normalmente se ocultan bits de datos, nosotros le daremos el sentido de información a esos datos. De igual manera, el medio portador (en donde se ocultará el mensaje) puede ser una imagen, un video, un clip de audio, texto, etc. Así, podemos concluir que podemos esconder un medio dentro de otro medio.


Otros nombres de las técnicas de marcas de agua son: técnicas esteganográficas, técnicas de ocultamiento de información (information hiding) o técnicas de incrustamiento de datos (data embedding).


Antes de continuar, tengo que aclarar que la forma antigua (y actual, pero menos utilizada) de llamar a las marcas de agua es esteganografía. Esta palabra tiene las raíces griegas:
steganos = esconder, encubrir
graphos = escribir

Lo cual forma el significado de "escritura encubierta o escondida". Esta palabra antigua tiene casi el mismo significado de otra palabra muy conocida: criptografía. La cual proviene de los vocablos griegos:
Kryptos = ocultar
graphos = escribir

esto junto significa "escritura oculta". Pero no hay que confundirlas, porque cada una de estas disciplinas tiene formas de ocultar la información muy específicas. Por ejemplo, la criptografía oculta información al distorsionar un mensaje, lo deja ilegible. De esta forma se evita que un atacante pueda conocer la información original. 

La esteganografía y la criptografía son técnicas diferentes que comparten el significado sus nombres.

En la siguiente entrada del blog les mencionaré, con un ejemplo muy intuitivo, la diferencia entre la esteganografía y la criptografía. 

Estamos en contacto.
P.