La criptografía visual es una técnica criptográfica que permite cifrar información visual (imágenes, texto, etc.) de tal forma que la información descifrada aparezca como una imagen visual.
Una de las técnicas más conocidas se le atribuye a Moni Naor y Adi Shamir , quienes la desarrollaron en 1994. [1] Demostraron un esquema de compartición de secretos visuales, donde una imagen binaria se dividió en n partes de modo que solo alguien con todas las n partes pudiera descifrar la imagen, mientras que n − 1 partes no revelaban información sobre la imagen original. Cada parte se imprimía en una transparencia separada y el descifrado se realizaba superponiendo las partes. Cuando se superponían las n partes, aparecía la imagen original. Hay varias generalizaciones del esquema básico, incluida la criptografía visual k de n , [2] [3] y el uso de láminas opacas pero iluminándolas con múltiples conjuntos de patrones de iluminación idénticos bajo la grabación de un solo detector de un solo píxel. [4]
Utilizando una idea similar, las transparencias se pueden utilizar para implementar un cifrado de un solo uso , donde una transparencia es un bloque aleatorio compartido y la otra transparencia actúa como texto cifrado. Normalmente, existe una expansión del requisito de espacio en la criptografía visual. Pero si una de las dos partes se estructura de forma recursiva, la eficiencia de la criptografía visual se puede aumentar al 100%. [5]
Algunos antecedentes de la criptografía visual se encuentran en patentes de la década de 1960. [6] [7] Otros antecedentes se encuentran en el trabajo sobre percepción y comunicación segura. [8] [9]
La criptografía visual se puede utilizar para proteger plantillas biométricas en las que el descifrado no requiere cálculos complejos. [10]
En este ejemplo, la imagen binaria se ha dividido en dos imágenes componentes. Cada imagen componente tiene un par de píxeles por cada píxel de la imagen original. Estos pares de píxeles se sombrean en negro o blanco según la siguiente regla: si el píxel de la imagen original era negro, los pares de píxeles de las imágenes componentes deben ser complementarios; sombree aleatoriamente uno ■□ y el otro □■. Cuando estos pares complementarios se superponen, aparecerán en gris oscuro. Por otro lado, si el píxel de la imagen original era blanco, los pares de píxeles de las imágenes componentes deben coincidir: ambos ■□ o ambos □■. Cuando estos pares coincidentes se superponen, aparecerán en gris claro.
Por lo tanto, cuando se superponen las dos imágenes componentes, aparece la imagen original. Sin embargo, sin el otro componente, una imagen componente no revela información sobre la imagen original; es indistinguible de un patrón aleatorio de pares ■□ / □■. Además, si tiene una imagen componente, puede usar las reglas de sombreado anteriores para producir una imagen componente falsa que se combine con ella para producir cualquier imagen.
Compartir un secreto con un número arbitrario de personas, n , de modo que al menos 2 de ellas sean necesarias para decodificarlo es una forma del esquema de intercambio de secretos visuales presentado por Moni Naor y Adi Shamir en 1994. En este esquema tenemos una imagen secreta que está codificada en n partes impresas en transparencias. Las partes parecen aleatorias y no contienen información descifrable sobre la imagen secreta subyacente; sin embargo, si 2 de las partes se apilan una sobre otra, la imagen secreta se vuelve descifrable para el ojo humano.
Cada píxel de la imagen secreta se codifica en múltiples subpíxeles en cada imagen compartida mediante una matriz para determinar el color de los píxeles. En el caso (2, n ), un píxel blanco en la imagen secreta se codifica mediante una matriz del siguiente conjunto, donde cada fila proporciona el patrón de subpíxeles para uno de los componentes:
{todas las permutaciones de las columnas de} :
Mientras que un píxel negro en la imagen secreta está codificado utilizando una matriz del siguiente conjunto:
{todas las permutaciones de las columnas de} :
Por ejemplo, en el caso de compartir (2,2) (el secreto se divide en dos partes y ambas son necesarias para decodificar el secreto), utilizamos matrices complementarias para compartir un píxel negro y matrices idénticas para compartir un píxel blanco. Al apilar las partes, todos los subpíxeles asociados con el píxel negro ahora son negros, mientras que el 50 % de los subpíxeles asociados con el píxel blanco permanecen blancos.
Horng et al. propusieron un método que permite que n − 1 partes en connivencia engañen a una parte honesta en criptografía visual. Aprovechan el conocimiento de la distribución subyacente de los píxeles en las acciones para crear nuevas acciones que se combinan con las acciones existentes para formar un nuevo mensaje secreto elegido por los tramposos. [11]
Sabemos que dos acciones son suficientes para decodificar la imagen secreta utilizando el sistema visual humano. Pero examinar dos acciones también proporciona información sobre la tercera acción. Por ejemplo, los participantes que participan en la conspiración pueden examinar sus acciones para determinar cuándo ambas tienen píxeles negros y utilizar esa información para determinar que otro participante también tendrá un píxel negro en esa ubicación. Saber dónde existen píxeles negros en la acción de otra parte le permite crear una nueva acción que se combinará con la acción prevista para formar un nuevo mensaje secreto. De esta manera, un conjunto de partes que participan en la conspiración y que tienen suficientes acciones para acceder al código secreto pueden engañar a otras partes honestas.
Los subpíxeles 2×2 también pueden codificar una imagen binaria en cada imagen componente, como en el esquema de la derecha. Cada píxel blanco de cada imagen componente está representado por dos subpíxeles negros, mientras que cada píxel negro está representado por tres subpíxeles negros.
Cuando se superponen, cada píxel blanco de la imagen secreta está representado por tres subpíxeles negros, mientras que cada píxel negro está representado por los cuatro subpíxeles negros. Cada píxel correspondiente en las imágenes componentes se rota aleatoriamente para evitar que la orientación filtre información sobre la imagen secreta. [12]