Compartiendo imágenes secretas usando codificación vectorial

Jorge Agudo Praena, José María Ávila Maireles, Jesús Muñoz Rodríguez

Documentación Presentación
Código Ejecutable

Resumen:

El trabajo que hemos desarrollado tiene como objetivo primordial, el conseguir codificar y decodificar de forma segura una imagen digital.
Nuestro trabajo implementa una determinada respuesta a la cuestión ¿cómo guardar “secretos” de forma segura? La resolución de dicha cuestión es sumamente importante si tenemos en cuenta la sociedad en la que vivimos actualmente, una sociedad donde la privacidad de la información es un asunto esencial.
Los autores de nuestro documento parten de la máxima de que un “secreto” va a estar mejor protegido si éste es guardado por más de una persona, que si es guardado por una única persona, y concretan las que van a ser las características fundamentales de su algoritmo:
a. El “secreto” se distribuirá entre “n” participantes.
b. Si colaboran “r” participantes entre sí, entonces el “secreto” se podrá reconstruir (el parámetro “r” estará comprendido en el rango [1, n]).
c. Pero si colaboran “r-1” participantes o menos, entonces no se asegura que el secreto pueda reconstruirse.
De esta manera, la probabilidad de que el secreto se pierda por una determinada causa es mucho menor, ya que para ello sería necesario que “n-r+1” participantes sufrieran una pérdida o destrucción de su parte del “secreto”.
Hay que tener en cuenta que nuestro problema está enfocado hacia las imágenes digitales, y que la representación de éstas requiere la utilización de un gran número de bits, así que el algoritmo objeto de nuestro trabajo necesita algún método específico que le permita reducir dicho número.
El método de compresión de imágenes empleado es el denominado “Vector Quantization” (VQ). Dicho método puede verse como un proceso de reconocimiento de patrones, donde un patrón de entrada es aproximado por alguno de los patrones estándar contenidos en una tabla predeterminada denominada “codebook” o “libro de códigos”.
La imagen digital será dividida en una serie de patrones de entrada, y cada uno de estos patrones se asociará con algún elemento del “codebook”. Tanto el proceso de codificación como el de decodificación usará los índices de los distintos elementos del “codebook” para codificar o decodificar una imagen.
Pero el objetivo fundamental del artículo no es el tema de la compresión de la imagen, sino el cómo a partir de un “codebook” original se van a generar “n” máscaras del mismo y se van a repartir entre “n” participantes, de manera, que para decodificar la imagen habría de reconstruir el “codebook”, y para ello deberían colaborar “r” o más participantes, cada uno de ellos aportando la máscara del “codebook” que posea.


Bibliografía: