|
|
Por Luis Hernández Encinas Si en lugar de dividir secretamente un número, tal y como se lleva a cabo en la división de secretos, mediante los protocolos de los esquemas umbrales, lo que se desea es enmascarar una imagen, estamos ante la criptografía visual, que hace uso de los esquemas visuales umbrales. Estos esquemas siguen el mismo procedimiento que los esquemas umbrales m de n, pero con las siguientes características: 1. El secreto S es una imagen formada por pixeles blancos y negros. 2. Las n sombras en que se divide la imagen secreta son otras tantas transparencias, cada una con una imagen que tiene el mismo tamaño y el mismo número de pixeles que la imagen original. 3. La recuperación de la imagen secreta se lleva a cabo mediante la superposición de m transparencias cualesquiera, de modo que no es posible obtener la imagen original con sólo m-1, o menos, de ellas. Vamos a detallar cómo construir un esquema visual umbral 2 de 2, de modo que podamos enmascarar una imagen para luego recuperarla. Dado que el esquema es 2 de 2, la imagen se dividirá en 2 sombras o transparencias, una para cada uno de los participantes, de modo que ninguno de ellos pueda conocer ninguna información de dicha imagen original a partir de la imagen que recibe, y de tal manera que sólo se pueda recuperar la imagen original superponiendo las 2 transparencias en que se ha dividido la imagen. Para elaborar las sombras supondremos que la imagen a ocultar (el número Pi) está contenida en un rectángulo, dividido en pixeles, como se ve en la figura 1.
Conviene señalar que esta figura contiene muy pocos pixeles, por lo que el proceso será puramente ilustrativo, sin buscar una buena definición de la imagen resultante. El esquema visual 2 de 2 para dividir la imagen secreta consiste en enmascarar cada uno de los pixeles de la imagen original en dos pixeles, cada uno de los cuales ocupará el lugar del pixel original, pero en cada una de las sombras. Para llevar a cabo este enmascaramiento, cada uno de los pixeles de cada una de las sombras está dividido en dos semipixeles, la mitad blanco y la mitad negro. El algoritmo para enmascarar cada uno de los pixeles originales se ilustra en la figura 2 y es el siguiente:
Si el pixel original es blanco, el director lanza una moneda al aire, de modo que si el resultado es cara, elige como pixeles para cada una de las sombras los dos pixeles de la primera línea de la figura 2.a; si el resultado es cruz elige como pixeles para cada sombra los dos pixeles de la segunda línea. De forma análoga se procede para enmascarar un pixel negro, utilizando la figura 2.b. El algoritmo que se acaba de describir se ejecuta con cada uno de los pixeles de la imagen secreta. Las características del algoritmo anterior son las siguientes: (i) la obtención de un semipixel blanco-negro o negro-blanco tiene la misma probabilidad (p = 0'5), y no depende del color del pixel original (por tanto, los pixeles de las sombras no proporcionan ninguna información a los participantes, sobre el color del pixel original), (ii) el proceso de enmascaramiento de los pixeles es aleatorio (lanzar una moneda), y los resultados obtenidos en cada prueba son independientes (por tanto, no se obtiene información adicional si se observa un grupo de pixeles en cualquiera de las sombras). Cuando se superponen las dos sombras (ver las columnas s1+s2 de las figuras 2.a y 2.b) se obtiene, si el pixel original era blanco, un pixel negro-blanco o blanco-negro, y un pixel negro si el pixel original era negro. Por tanto, cuando se superponen los pixeles de las sombras de un pixel original negro, se obtiene un pixel negro en la imagen que se recupera. Mientras que los pixeles blancos pierden contraste por el hecho de que el pixel que se obtiene al superponer las sombras es negro-blanco o blanco-negro y no completamente blanco (esta pérdida de contraste recomienda utilizar imágenes claramente definidas). Si la sucesión de caras (c) y cruces (x) obtenida por el observador para enmascarar cada uno de los 64 pixeles fue: ccxxxcxc, xxccxxxx, ccxxccxc, ccxcxccx, xxccxcxc, xxccxcxc, cxxcxxxc, cccxxccx, las sombras obtenidas se muestran en las figuras 3 y 4:
Las dos sombras serán impresas o fotocopiadas por el director a dos transparencias y entregadas de forma secreta a cada uno de los dos participantes. Superponiendo las dos transparencias de las dos sombras anteriores, la imagen original recuperada es la que se muestra en la figura 5 (la figura se presenta con dos tonos para que se aprecie la imagen original y la pérdida de contraste).
El procedimiento anterior se puede extender a esquemas visuales más generales mediante algoritmos adecuados, que requieren el uso de matrices y permutaciones. A modo de ejemplo se presentan, en la figura 6, las sombras de otra imagen, así como la imagen recuperada.
Publicado en el Boletín del Criptonomicón #27. Luis Hernández Encinas es Doctor en Ciencias Matemáticas de la Universidad de Salamanca y co-autor del libro Técnicas Criptográficas de protección de datos, de la editorial Ra-Ma.
Puedes consultarlos por temas, o también por orden de aparición en el boletín.
Si consideras que este artículo puede interesarle a alguien que conozcas, puedes enviárselo por correo electrónico. No tienes más que indicar la dirección del destinatario, el asunto y tu nombre. Copyright © 1997-2000 Gonzalo Álvarez Marañón, CSIC. Todos los derechos reservados. Criptonomicón es un servicio ofrecido libremente desde el Instituto de Física Aplicada del CSIC. Para información sobre privacidad, por favor consulte la declaración de política sobre privacidad. Para sugerencias, comentarios o quejas, acuda al libro de visitas. Para contribuir al Criptonomicón, lea la página de contribuciones. |