Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

28
Esteganografía Digital Esteganografía Digital (Parte 2) (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas

Transcript of Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Page 1: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Esteganografía DigitalEsteganografía Digital(Parte 2)(Parte 2)

Esteganografía DigitalEsteganografía Digital(Parte 2)(Parte 2)

Córdoba, febrero 2009

Ángela Rojas Matas

Page 2: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Formatos de imágenes digitales

• Las imágenes bmp, jpg, tiff, …, con una profundidad de color de 24 bits por píxel (8 bits para rojo, 8 para verde, 8 para azul) tienen un total de:

¡¡Más de 16 millones de colores distintos!!

Color verdadero o True Color, “pesan” más.• Imágenes en formato gif, png, …”pesan” menos. Usan

como mucho 256 colores ( 8 bits por píxel). Son imágenes indexadas con su correspondiente paleta de color.

16777216256256256

Page 3: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Formatos de imágenes digitales

índice RGB color

1 0, 0, 0 Negro

2 255, 0, 0 Rojo

3 0, 255, 0 Verde

4 0, 0, 255 Azul

5 255, 255, 0 Amarillo

6 255, 0, 255 Rosa

7 0, 255, 255 Turquesa

8 255, 255, 255 Negro

57654

76816

32532

16716

32532

índices

Page 4: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Formatos de imágenes digitalesLos diseñadores de páginas web usan como mucha frecuencia en Internet imágenes gif con paletas de 216 colores llamadas Web- Safe 216 porque así las imágenes pesan menos y se ven mejor en todos los navegadores y sistemas operativos.

Consiste en dividir el rango de rojo en 5 partes iguales: 0, 0.2, 0.4, 0.6, 0.8, 1.

Es decir, sólo nos quedamos con 6 tonos de rojo.

Análogamente se hace con el verde y análogamente se hace con el azul.

La mezcla de los tres colores primarios: un tono de rojo, un tono de verde y un tono de azul, dará lugar a

216666

Page 5: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego

Existen muchos programas esteganográficos que usan imágenes indexadas con paleta de colores con fines esteganográficos.

Un ejemplo muy famoso es EZ-Stego de R. Machado (1996), pionero en el uso de un método esteganográfico basado en la paleta de colores.

Romana Machado, Sillicon Valley, CA.

La idea es sencilla: Vamos a cambiar ligeramente el color de un píxel por otro parecido de nuestra paleta de colores con objeto de ocultar bits.La estego-imagen tendrá exactamente la misma paleta de colores que la imagen original.

Page 6: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego

Colores ordenados por luminancia:luminancia=0.299*R+0.587*G+0.114*B;

57654

76816

32532

16716

32532

índices

índice RGB color

1 0, 0, 0 Negro

2 255, 0, 0 Rojo

3 0, 255, 0 Verde

4 0, 0, 255 Azul

5 255, 255, 0 Amarillo

6 255, 0, 255 Rosa

7 0, 255, 255 Turquesa

8 255, 255, 255 Blanco

 

Indice-ordenado Indice original1 12 43 24 65 36 77 58 8

Page 7: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego

57654

76816

32532

16716

32532

índices

índice RGB color

1 0, 0, 0 Negro

2 255, 0, 0 Rojo

3 0, 255, 0 Verde

4 0, 0, 255 Azul

5 255, 255, 0 Amarillo

6 255, 0, 255 Rosa

7 0, 255, 255 Turquesa

8 255, 255, 255 Blanco

 

Indice-ordenado Indice original1 12 43 24 65 36 77 58 8

Mensaje=101

• Primer píxel=Rojo=índice_orig=2, entonces índice_ord=3 y bit=1. No hacer nada: resu=2

•Segundo píxel=Verde=índice_orig=3,entonces índice_ord=5 y bit=0, entonces cambiar a índice_ord=4, que se corresponde con el original resu=6

•Tercer píxel=amarillo=índice_orig=5, entonces índice_ord=7 y bit=1, entonces no hacer nada: resu=5

Page 8: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego 

Imagen original Estego-imagen

Ejemplo: imagen gif de tamaño 256x256 con una paleta de 256 colores

Page 9: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego

Page 10: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego

Una ampliación de la estego-imagen nos permite ver cómo píxeles que eran verdes (correspondientes a la hoja de la rosa) son coloreados como rojos en la estego-imagen.

¿A qué se debe este cambio incorrecto de color?

Page 11: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego

• Una ampliación de la imagen nos permite ver que, por ejemplo, el píxel que ocupa la posición (75, 55), que en la imagen original tenía una tonalidad verde, tenía un índice original igual a 34 que se correspondía con el color original: 0.2588, 0.2902, 0.1608. que es un tono verde.

• Al ordenar por luminancia se convertía en el índice número 38. Había que guardar un bit igual a 1 y entonces se le asignó al píxel el siguiente índice de la paleta ordenada, es decir, el índice 39 que se corresponde con el índice original 64. El índice original 64 tiene un color igual a 0.5804, 0.1608, 0Que es un tono rojizo.

Ambos colores se representan a continuación:

Page 12: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: EZStego

EL mensaje está oculto en la paridad (o LSB) de los índices ordenados por luminancia

Para extraer el mensaje de la estego-imagen, bastará con coger los índices de la estego-imagen, ordenarlos por luminancia y quedarnos con la paridad de estos últimos índices.

El método se comporta bien en general, pero en algunas ocasiones, cambia de manera inadecuada algunas colores. Esto ocurre porque colores distintos pueden tener luminancia parecida, como le pasaba al tono de rojo y de verde que comentamos antes.

¿Se puede mejorar este método?.

Page 13: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: Fridrich (1999)Jessica Fridrich, Universidad de Binghamton, NY

Ella propone que, en lugar de ordenar los índices por luminancia, se ordenen los colores por sus distancias entre ellos.Si un color a y otro b tiene de componentes: a=(r1, g1, b1) b=(r2, g2, b2)

la distancia entre estos dos colores sería:

221

221

221 )()()(),( bbggrrba distancia

Page 14: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: Fridrich

Si el bit a ocultar es 0 y el índice del color en la imagen original es par, entonces no hacer nada.

Si el bit a ocultar es 1 y el índice del color en la imagen original es impar, entonces no hacer nada.

Si el bit a ocultar es 1 y el índice del color en la imagen original es par, buscar el color más próximo al original con distinta paridad. Asignar como color al píxel este último índice.

Si el bit a ocultar es 1 y el índice del color en la imagen original es par, buscar el color más próximo al original con distinta paridad. Asignar como color al píxel este último índice.

Page 15: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: Fridrich

Imagen original Estego-imagen

Page 16: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: Fridrich

EZ-Stego Fridrich

Page 17: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Asignación óptima de paridad

Hasta ahora hemos considerado un color par o impar de acuerdo a la paridad de su índice en la paleta.

Existen otras formas de hacerlo, por ejemplo: (R+G+B) (mod 2)

Otra forma más adecuada podría ser declarar un color par o impar según nos convenga. Por ejemplo:

Se calculan todas las distancias entre pares de colores de la paleta.

Si dij es la más pequeña, entonces el índice menor será declarado par y el índice mayor será declarado impar. Los colores i y j no se vuelven a coger.

Se elige la siguiente distancia más pequeña dkl y repetimos el proceso anterior hasta que no queden más colores que coger.

Page 18: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Asignación óptima de paridad

Imagen resultado

Page 19: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: S-Tools4

Desarrollado por Andy Brown en 1996.

Uno de los primeros programas gratuitos de esteganografia digital puestos a disposición de cualquier usuario sin conocimientos de informática.

Muy popular

Permite usar imágenes bmp y también imágenes gif.

Con las imágenes bmp, emplea el método LSB para ocultar información tal como fue descrito anteriormente.

Con las imágenes en formato gif lo que hace es reducir el número de colores de la imagen original. Si la imagen original tiene una paleta de 256 colores, lo que hace es cambiar esta imagen por otra imagen con sólo 32 colores. Después ocultará la información en esta segunda imagen.

¿Cómo se reducen el número de colores en nuestra paleta?.

Page 20: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Reducción del número de colores de una imagen digital

• Existen muchos algoritmos para la reducción del color.

• Una imagen en TrueColor o color verdadero (bmp, jpg, tiff) usa 8 bits para cada color (entre 0 y 255) lo que da lugar a un total de 256x256x256=16777216. Si se quiere salvar como gif o png nos veremos obligados a reducir el número de colores a 256, ya que se emplean sólo 8 bits para el color de un píxel.

• El primer algoritmo que se propuso fue el de “la popularidad”.

• John Bradley autor del popular programa XV de Unix (programa que permite trabajar con imágenes digitales) usa un algoritmo de reducción de colores que llamó “Diversity Algorithm”.

• Stools, GIMP, PhotoShop, Paint Shop Pro y muchos otros programas usan el algoritmo llamado Median-Cut.

Page 21: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Reducción del número de colores de una imagen digital: Algoritmo Median-Cut

Imagen original: 24 bits por píxel

1 bit por píxel

Paleta

53.9934 101.8813 134.4396 135.2193 172.6151 197.5012

Page 22: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Reducción del número de colores de una imagen digital: Algoritmo Median-Cut

2 bits por píxel: 4 colores

5 bits por píxel: 32 colores

Page 23: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Reducción del número de colores de una imagen digital: Algoritmo Median-Cut

Imagen original: 24 bits por píxel

8 bits por píxel: 256 colores

Page 24: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: S-Tools4

Si la imagen de entrada es una imagen gif con 256 colores lo que hace es reducir el número de colores a 32, usando el algoritmo median-cut.

Como resultado tendrá una paleta de 32 colores, por ejemplo:

A continuación oculta tres bits en el color de cada píxel de la siguiente forma:

Número de color

RGB

1 (255, 31, 225)

2 (128, 35, 221)

… …

32 (32, 126, 235)

Píxel = (128, 35, 221)

Bits = 1, 1, 0Píxel_Stego= (127, 35, 220)

Page 25: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: S-Tools4

Píxel = (128, 35, 221)

Bits = 1, 1, 0Píxel_Stego= (127, 35, 220)

• Puede ocurrir que el color (127, 35, 220) coincida con un color de los 32 que tiene la paleta, pues en ese caso, estupendo, seguimos con 32 colores.

• Si no es así, aumentamos la paleta con este nuevo color, con lo que nuestra paleta pasaría a tener 33 colores y al píxel de la estego-imagen le asociamos el índice 33.

Page 26: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: S-Tools4

Píxel = (128, 35, 221) Píxel_Stego

000 128, 35, 221

001 128, 34, 221

010 128, 35, 220

100 127, 34, 220

101 127, 34, 221

110

011

111

Este color de la paleta, como mucho se expandirá a 8 colores. Como hay 32 colores en la paleta, el número máximo de colores en la estego_imagen será: 32x8=256

¡¡Perfecto, una imagen gif o png debe tener como mucho 256 colores!!

Page 27: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta: S-Tools4

Imagen original (gif), 256 colores

Estego-imagen (gif), 256 colores. Se ha ocultado el primer capítulo del Quijote.

Page 28: Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.

Métodos basados en la paleta

Existen multitud de variaciones de las técnicas descritas anteriormente.

“ A method to improve the stego-image quality for palette-based image steganography”. Wu, Ho, Lee.

Lecture and Notes in Computer Science, 2004.

“A palette-based image steganographic method using colour quantisation”. Wang, Yao, Li.

IEEE, 2005.

“A new steganographic method for color and grayscale image hiding”, Yu, Chang, Lin.

Computer Vision and Image Understanding, 2007.

¡¡y muchos más!!. Todavía hay mucho que investigar sobre el tema.