Resumen: a través de una historieta introducimos el uso de la criptografía visual y los esquemas umbrales.
Lugar: sede de la ACMS (Agencia Castellana de Máxima Seguridad). Despacho del Gran Jefe. Alguien llama a la puerta y pasa.
- Bienvenido X28, tengo aquí los detalles de su nueva misión. En primer lugar, usted y el agente Y6 tienen que reunirse con su contacto en Quintanamartingalindez que les dará más instrucciones.
- Me temo que no sé dónde queda Quintanamartingalindez, jefe.
- No me haga perder el tiempo X28, mírelo en el mapa. Aquí tiene la imagen que le permitirá identificar a la persona que buscan...
- Je, je, me parece que esta foto no ha salido demasiado bien, va a tener que repetirla si quiere que lo reconozca.
- Déjeme acabar de hablar. Esta es sólo una sombra de la fotografía original, su compañero Y6 tiene la otra, Cuando se reúnan unirán sus fotos obteniendo una copia casi exacta de la original aunque menos contrastada.
- Con el debido respeto jefe, esto es sólo un fondo gris plano, si lo uno con otro igual no obtendré más que gris.
- Sólo aparentemente X28, el ojo humano no es suficiente para distinguir matices de gris tan similares. Fíjese en un volcado hexadecimal de los primeros bytes de su imagen:
00000000 50 36 0a 32 30 30 20 32 32 31 0a 32 35 35 0a 80 |P6.200 221.255..|
00000010 80 80 80 80 80 7f 7f 7f 80 80 80 7f 7f 7f 7f 7f |................|
00000020 7f 7f 7f 7f 80 80 80 7f 7f 7f 7f 7f 7f 7f 7f 7f |................|
00000030 7f 7f 7f 80 80 80 80 80 80 80 80 80 80 80 80 80 |................|
00000040 80 80 80 80 80 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f |................|
... |
- Vea, después de la cabecera siguen una serie de grupos de bytes (píxeles) que son o bien (80, 80, 80) o bien (7f, 7f, 7f) y ya que 80h=128 y 7Fh=127 tenemos dos grises muy similares. Además observe que en binario 80h=10000000b y 7Fh=01111111b luego los bits que están a cero en uno, en el otro están a uno y viceversa.
- Sigo sin entender...
- Bueno. La imagen original estaba formada sólo por píxeles blancos (FF,FF,FF) o negros (00,00,00). Lo que nuestro laboratorio supersecreto hizo fue arrojar una moneda por cada uno de los píxeles (tienen mucha paciencia estos chicos) y decidir de acuerdo con la siguiente tabla.
Píxel |
Resultado |
Sombra 1 |
Sombra 2 |
Blanco |
Cara |
80h=1000 0000 |
7Fh=0111 1111 |
|
Cruz |
7fh=0111 1111 |
80h=1000 0000 |
Negro |
Cara |
80h=1000 0000 |
80h=1000 0000 |
|
Cruz |
7fh=0111 1111 |
7fh=0111 1111 |
- De esta manera si la imagen original era un pixel blanco su sombra podría tener por ejemplo un valor 80h que unido (operación lógica OR) con el 7Fh de su compañero daría lugar a FFh=1111 1111 es decir el blanco original.
- Hum. Pero jefe, cuando mi sombra tenga un valor 80h y la de mi compañero también, la unión será de nuevo 80h y no 00h que era el negro original.
- Veo que presta atención X28, tanto en este caso como en el otro (7Fh con 7Fh) se obtiene un gris oscuro en lugar del negro original, por eso dije que la imagen saldría menos contrastada. Aun así es perfectamente reconocible.
- Pero si una agencia rival obtiene mi imagen o la de mi compañero, ¿no serán capaces de ver la original?
- No, fíjese que por depender los resultados del azar, un byte 80h puede con igual probabilidad provenir de un byte negro como de uno blanco, todos los bitmaps en blanco y negro son igualmente posibles y su imagen podría ser perfectamente una foto del acueducto de Segovia.
- Bueno jefe, ahora estoy más tranquilo, voy a buscar un mapa y salgo inmediatamente.
- Buen viaje X28.
El jefe se reclina en su sillón pensativo. Luego levanta la pantalla de su portátil y mira satisfecho
- Los chicos del laboratorio han hecho un buen trabajo. Hice bien en regalarles el libro 'Técnicas Criptográficas de protección de datos (Amparo
Fuster, Dolores de la Guía y otros. Editorial Ra-Ma)'. Espero que todo vaya bien por Quintanamartingalindez, Wellman no es una mujer fácil de tratar.
Las imágenes que figuran en el artículo son GIF para que puedas verlas fácilmente en tu navegador. Las originales eran PPM (un formato muy simple para bitmaps), aquí están por si quieres hacer tus propias pruebas, las puedes ver con (casi) cualquier programa de gráficos.
sombra número 1
sombra número 2
imagen original
unión de las sombras