Esteganografía Digital (Parte 2) Córdoba, febrero 2009 Ángela Rojas Matas.
-
Upload
renata-serna -
Category
Documents
-
view
18 -
download
4
Transcript of 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
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
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
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
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.
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
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
Métodos basados en la paleta: EZStego
Imagen original Estego-imagen
Ejemplo: imagen gif de tamaño 256x256 con una paleta de 256 colores
Métodos basados en la paleta: EZStego
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?
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:
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?.
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
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.
Métodos basados en la paleta: Fridrich
Imagen original Estego-imagen
Métodos basados en la paleta: Fridrich
EZ-Stego Fridrich
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.
Asignación óptima de paridad
Imagen resultado
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?.
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.
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
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
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
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)
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.
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!!
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.
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.