water marking

15
Proyecto 2 Comunicación encubierta de audio 1 Proyecto Nº 2 Watermarking: Ocultamiento de una marca de agua en una señal de audio Gómez Galeano, Pablo. Universidad Militar Nueva Granada, Bogotá, Colombia.

Upload: pablo-germanotta

Post on 30-Sep-2015

21 views

Category:

Documents


0 download

DESCRIPTION

Watermarking using matlab.

TRANSCRIPT

  • Proyecto 2 Comunicacin encubierta de audio 1

    Proyecto N 2

    Watermarking: Ocultamiento de una marca de agua en una seal de audio

    Gmez Galeano, Pablo.

    Universidad Militar Nueva Granada, Bogot, Colombia.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 2

    Introduccin

    Existen diversas tcnicas estenogrficas que nos permiten ocultar y manipular informacin para

    que no pueda ser percibida por terceros. En este caso, en el siguiente informe se realiza un

    estudio del proceso de Watermarking o Marca de Agua, con el fin de entender esta tcnica y

    comprender sus caractersticas. Para este estudio se realiza la implementacin de un programa en

    Matlab que permite ocultar una marca de agua binaria, dentro de una seal de audio. Al final del

    estudio se analizan los resultados, y se comparan los valores obtenidos.

    Objetivo

    Realizar un programa en Matlab que permita implementar un mtodo para Watermarking.

    En este caso el programa debe permitir ocultar y recuperar una marca de agua la cual es

    una imagen binaria, en un archivo de audio. Al final el programa debe recuperar la marca

    de agua, y compararla con la original para comprender de mejor manera el proceso de

    watermarking.

    Comprender y entender el proceso de Watermarking teniendo en cuenta el mtodo QIM

    para ocultamiento y recuperacin de la marca de agua.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 3

    Procedimiento

    Para comenzar con el desarrollo del programa se deben tener en cuenta algunos conceptos

    importantes:

    - Watermarking: Es una tcnica esteganogrfica de ocultacin de informacin. Esta tiene como

    objetivo proteger datos con derechos de autor, y otra informacin de terceros. Consiste en

    insertar un mensaje oculto en el interior de una seal u objeto digital de tal manera que sea

    imperceptible.

    El programa que se disea al implementar el proceso de Watermarking, debe cumplir con las

    siguientes condiciones:

    Robustez: Esta es una de las caractersticas ms importantes en Watermarking. Se refiere

    a la habilidad de la marca de agua para permanecer en el archivo de audio sin importar

    que la calidad de la marca haya sido degradada, o que se haya aadido ruido u otro tipo

    de ataque a la marca de agua.

    Imperceptibilidad: Se refiere a que la marca de agua no debe ser percibida cuando este

    agregada en la seal. En este caso la marca de agua se inserta en el archivo de audio,

    entonces la imperceptibilidad garantiza que el archivo de audio marcado debe parecer

    exactamente igual para el odo humano al ser escuchado que el archivo original.

    Seguridad: En Watermarking la marca de agua debe ser personal y nicamente aadida

    por el usuario propietario de los derechos. En este caso, se debe garantizar que la marca

    de agua pueda ser modificable por terceros.

    Recuperabilidad: Esta caracterstica permite que la marca de agua pueda ser recuperada,

    y extrada del archivo de audio, sin que se hayan alterado sus valores o su composicin.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 4

    Despus de tener claro los conceptos que se deben presentar en la marca de agua, se puede

    comenzar con el desarrollo de la prctica. Sin embargo tambin hay que tener en cuenta la

    tcnica de ocultamiento utilizada en el proceso de Watermarking. En este caso se utiliz la

    tcnica QIM (Quantization Index Modulation) que se explicar a continuacin:

    - QIM (Quantization Index Modulation): Es un mtodo que permite el ocultamiento de la

    informacin binaria. Este mtodo utiliza una regla de cuantizacin cuyo objetivo es modificar

    valores en la seal husped haciendo que su valor sea un mltiplo entero del paso de

    cuantizacin utilizado.

    Luego de conocer el mtodo de ocultamiento QIM, se procede con el desarrollo del programa. A

    continuacin se enumerarn las variables utilizadas dentro del programa con su correspondiente

    funcin:

    Y Variable donde las muestras del archivo de audio original.

    FS Frecuencia de muestreo del archivo de audio.

    NBITS Nmero de bits del archivo de audio.

    Imagen Matriz donde se almacena la imagen binaria, que luego se utiliz como marca.

    Marcadeagua Variable donde se organizan los datos de la marca binaria para facilitar su

    manipulacin.

    s Variable donde se almacenan las muestras del archivo de audio multiplicadas por un factor

    de 10^4.

    m Variable que almacena la longitud de la variable s.

    n Variable que almacena la longitud de la variable Marcadeagua.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 5

    p Variable que define la distancia para incrustar cada uno de los bits de la marca en el archivo

    de audio.

    Delta Variable donde se define el paso de cuantizacin utilizado para el mtodo QIM.

    s1 Variable donde se almacenan los datos de la seal de audio con la marca de agua

    incrustada.

    s2 Variable donde se almacena el resultado obtenido mediante el mtodo QIM para recuperar

    la marca de agua incrustada.

    w Vector donde se almacenan los unos y ceros que se obtienen del proceso de recuperacin de

    la marca.

    recuperacin Matriz que contiene la imagen recuperada del archivo de audio marcado.

    C Matriz que almacena los coeficientes de correlacin entre el archivo de audio original y el

    archivo de audio marcado.

    spcc Variable que almacena el valor del coeficiente de correlacin de pearson al cuadrado.

    ruido Vector donde se almacenan los coeficientes de ruido.

    senalruido Vector que contiene los coeficientes de la seal de audio marcada incluyendo la

    adicin de ruido.

    h Vector utilizado para almacenar los unos y ceros que se obtienen del proceso de

    recuperacin de la marca cuando se realizan las pruebas con ruido auditivo.

    recuperuido Matriz que contiene la imagen recuperada del archivo de audio marcado despus

    de hacer las pruebas con ruido auditivo.

    Luego de tener claro cada una de las variables utilizadas se procede a hacer una pequea

    explicacin del cdigo utilizado:

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 6

    1. En primer lugar se toma un archivo de audio cualquiera, en este caso, se utiliz el mismo

    audio trabajado en clase. Se toma este archivo, y posteriormente tambin debe elegirse

    una marca de agua que debe ser una imagen binaria, es decir, cuyo formato sea blanco y

    negro en la cual su informacin contenga solo unos y ceros. Tambin cuyo tamao no sea

    muy grande para facilitar su incrustacin en la seal de audio. Se utilizaron dos diferentes

    marcas de agua para comparar mejor los resultados, en la figura 1 se observan las marcas

    de agua utilizadas.

    Fig 1. Imgenes binarias de las marcas de agua utilizadas.

    2. Luego de tener las imgenes, el programa almacena el archivo de audio original en la

    variable Y con una frecuencia de muestreo de 16000 y 16 bits. Adems de esto, los datos

    de la imagen binaria que se va a utilizar como marca se guardan en la matriz imagen.

    Posteriormente estos valores se almacenan en el vector marcadeagua para facilitar su

    posterior manipulacin utilizando el comando reshape que se encarga de colocar todos

    los valores de la imagen binaria en una sola columna.

    3. Despus de esto en el vector s se almacenan los coeficientes del archivo de audio que

    son multiplicados por un factor de 10^4. Esto con el fin de que sea posible aplicar el

    procedimiento de incrustacin de bits que se utiliza en el mtodo de QIM. Se determina

    la distancia mxima entre las muestras que se van a modificar para incrustar los bits de la

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 7

    marca, dividiendo el nmero total de muestras del archivo de audio original entre el total

    de datos de la marca, esto se almacena en la variable p. Por ltimo se establece el valor

    del paso de cuantizacin, o delta, que en este caso se tom como 400, aunque es un valor

    aleatorio que puede ser cualquiera. En la figura 2 se puede apreciar el esquema que

    muestra la asignacin correspondiente utilizada en el mtodo QIM teniendo en cuenta el

    paso de cuantizacin elegido.

    Fig 2. Esquema del proceso QIM para un paso de cuantizacin utilizado de 400.

    4. Se utiliza un ciclo for que recorre el vector marcadeagua de donde se extraen los

    valores binarios que se incrustan en el audio y por medio del condicional if se modifican

    los valores de los datos husped aplicando las formulas establecidas en el mtodo de

    cuantizacin QIM cuando se incrusta un 1 o un 0. Los coeficientes resultantes se

    almacenan en el vector s1 el cual almacenar el archivo de audio marcado. Como los

    coeficientes del audio se aumentaron en el proceso anterior en un factor de 10^4, es

    necesario realizar el proceso inverso para no alterar la seal resultante utilizando el factor

    10^-4.

    5. El mtodo de QIM establece una condicin para la extraccin de los datos binarios

    incrustados en el audio. Es decir que para cumplir con este requerimiento se utiliz

    nuevamente un ciclo for, esta vez con el fin de recorrer las muestras del vector que

    contiene el audio marcado, es decir el vector s1 y un condicional if para extraer segn

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 8

    las ecuaciones predeterminadas los unos y ceros de los datos de la marca. Los datos

    recuperados se almacenan en el vector w y posteriormente se organizan en la matriz

    recuperacion para que tomen la dimensin de la imagen original.

    6. Al final tambin se realiza una prueba adicional de ataque para determinar la robustez de

    la marca de agua. En este caso lo que se hace es adicionar ruido en la seal del audio con

    la marca de agua. Para esto se utiliza el comando randn adicionando esta seal de ruido

    en el audio marcado, y posteriormente se utiliza un ciclo for igual que el anterior con el

    fin de extraer la marca de agua y verificar si pudo resistir el ataque. Al final estos datos se

    almacenan en la variable recuperuido y se utiliza el comando imwrite para almacenar

    los datos de la recuperados en una imagen binaria, y al final poder comparar las marcas

    de agua originales con las marcas de agua recuperadas.

    El cdigo obtenido en Matlab es el siguiente:

    [Y,FS,NBITS]=wavread(message.wav');

    imagen=imread('img.bmp');

    marcadeagua=reshape(imagen,[],1);

    s=(Y*(10^4));

    m=length(s);

    n=length(marcadeagua);

    p=floor(m/n);

    delta=200;

    cont=1;

    for j=1:n;

    if marcadeagua(j)==0;

    s(cont,1)=delta*floor(s(cont)/delta);

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 9

    else

    s(cont,1)=(delta*floor(s(cont)/delta))+(delta/2);

    end

    cont=cont+p;

    end

    s1=s*(10^-4);

    wavwrite(s1,FS,'watermarked');

    cont=1;

    for j=1:n;

    s2=abs(s(cont))-(delta*floor(s(cont)/delta));

    if s2>(delta/4) && s2(delta/4) && s2

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 10

    else

    h(j,1)=0;

    end

    cont=cont+p;

    end

    recuperuido=reshape(h,73,85);

    imwrite(recuperuido,'final.bmp');

    Anlisis de resultados

    Al analizar los resultados obtenidos se pudo verificar que la marca de agua logr resistir al

    ataque de adicin de ruido y tambin se pudo extraer satisfactoriamente del archivo de audio.

    Al comparar la seal de audio original, con la seal de audio marcada se pudo verificar la

    imperceptibilidad de la marca de agua ya que no se logra percibir que este dentro del audio.

    0 0.5 1 1.5 2 2.5 3 3.5

    x 104

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0 0.5 1 1.5 2 2.5 3 3.5

    x 104

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    Fig 3. Comparacin del audio original (Izquierda) con el audio marcado (Derecha).

    Entonces se puede afirmar mediante la figura 3 que la marca de agua lograr ser imperceptible.

    Incluso al reproducir el audio marcado se verific que no se puede distinguir ningn tipo de

    diferencia al escuchar cualquiera de los dos audios.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 11

    Adems se hicieron ms pruebas, se observ que el coeficiente de correlacin de Pearson al

    cuadrado tuvo un valor muy cercano a 1.

    Este valor muy cercano a 1 indica que la seal marcada guarda mucha relacin con la seal de

    audio original. Es decir son similares en un 99%, lo cual hace que la imperceptibilidad de la

    marca de agua sea an mayor. Sin embargo, se pudo identificar que al aumentar el valor del paso

    de cuantizacin, el coeficiente de Pearson se hace ms pequeo, y en este caso por esa razn se

    trabaj con un paso con un valor de 400 que no afect la calidad de la seal.

    Posteriormente se hicieron las pruebas con las dos marcas de agua utilizadas, y sus

    correspondientes resultados fueron los siguientes:

    Fig 4. Comparacin entre las marcas de agua originales y recuperadas.

    Al observar los resultados obtenidos con las marcas de agua se puede afirmar que han podido ser

    recuperadas satisfactoriamente, garantizando la alta robustez debido a que se puede observar que

    fueron obtenidas del archivo de audio casi sin alteraciones. Solamente se presentan en las

    imgenes algunas alteraciones producto del ruido introducido en la seal de audio, pero como se

    ve, las marcas de agua recuperadas fueron obtenidas sin inconvenientes.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 12

    Finalmente se puede decir que el desarrollo del proyecto ha sido exitoso ya que los resultados

    fueron satisfactorios y se logr recuperar la marca de agua, an en condiciones de ataques

    realizados como ruido inducido, se pudo corroborar la alta robustez de la marca de agua y su

    imperceptibilidad dentro del archivo de audio.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 13

    Conclusiones

    - Se logr comprender y entender todo el proceso de Watermarking al incrustar una marca

    de agua en un archivo de audio y poder recuperarla de manera satisfactoria.

    - Se pudieron verificar todas las caractersticas del mtodo de ocultamiento QIM

    (Quantization Index Modulation) y se logr aplicar esta tcnica en el proceso de

    Watermarking para as obtener mejores resultados en el ocultamiento y la recuperacin

    de la marca de agua.

    - Se pudo comprobar que la robustez es una de las caractersticas ms importantes en el

    Watermarking, y se logr aplicarla exitosamente ya que la marca de agua incrustada pudo

    resistir ataques de ruido inducido, y tambin logr ser extrada del archivo de audio

    satisfactoriamente.

    - La seal de audio original y la seal de audio marcada tienen un coeficiente de

    correlacin de Pearson al cuadrado muy cercano a 1. Esto quiere decir que las dos seales

    son muy similares. Lo cual aumenta la imperceptibilidad de la marca de agua en la seal

    de audio ya que al escuchar las dos seales, la marca de agua era imperceptible para el

    odo humano.

    - Se pudo identificar que al aumentar el valor del paso de cuantizacin, el coeficiente de

    Pearson se hace ms pequeo, por lo tanto la imperceptibilidad es menor. En este caso,

    por esa razn se trabaj con un paso de cuantizacin no tan alto con un valor de 400 que

    no afect la calidad de la seal.

    - Se entendi que matlab ofrece diferentes herramientas de trabajo, siendo posible realizar

    el proceso de Watermarking ocultando la marca de agua y recuperndola sin dificultades.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 14

    References

    Ballesteros, Dora Maria. QIM (Quantization QIM (Quantization Index Modulation Index

    Modulation). Comunicacin encubierta de audio e imgenes. 2015. Aula virtual UMNG.

    Katzenbeisser, S., & Petitcolas, F. (2000). Information hiding techniques for steganography and

    digital watermarking. Artech house.

    Cox, I. J., Miller, M. L., Bloom, J. A., & Honsinger, C. (2002). Digital watermarking (Vol. 53).

    San Francisco: Morgan Kaufmann.

  • Watermarking: Ocultamiento de una marca de agua en una seal de audio. 15

    ANEXOS. Diagrama de bloques del Proyecto

    INICIO

    Seal de audio Y Marca de agua M

    QIM (Quantization Indez Modulation)

    DELTA 400

    Seal de audio Marcada S1

    Extraccin de la marca S2 SPCC 1

    Adicin seal ruido

    S1 + Ruido

    Extraccin de la marca

    Marca de agua recuperada M

    QIM (Quantization Indez Modulation)

    FIN