lunes, 22 de junio de 2015

Fase 1 - Planteamiento del tema

Introducción

Dada mi situación como estudiante de licenciatura en su último año de estudios, me encuentro con la encrucijada sobre cómo es qué debo abordar mi último semestre de clases, en la cuál el estudiante debe elegir uno o varios módulos [1] para acreditar este último semestre.

Tomando en cuenta mis intereses personales y mis expectativas académicas, decidí elegir el módulo de "estancia de investigación semestral", que consiste en realizar un proyecto de investigación científico y realizar el reporte de dicho proyecto, como por ejemplo, en una tesis.

El trabajo de investigación será supervisado por la doctora Elisa Schaeffer.

Tema de tesis

Decidí escoger como tema de tesis la esteganografía, que es un tema relacionado a la seguridad informática y que, a pesar de es relativamente desconocido, me ha llamado muchísimo la atención desde que me enteré de este tema.

La esteganografía es [2] el arte de ocultar mensajes ocultos sin qué se sepa la existencia de dicho mensaje. Es decir, su propósito es que se pueda ocultar mensajes en un medio (por ejemplo, archivos digitales) y qué dicho medio no sufra suficientes cambios como para qué pueda ser detectado por un  humano.

Evidentemente, la tesis es el principal entregable de este proyecto, no obstante, para su desarrollo también será necesario contar con (al menos) una aplicación que permita realizar estenografía.

La doctora Elisa sugirió una aplicación en un dispositivo móvil, lo cual encuentro muy conveniente porque la estenografía es un proceso que puede tener mayor reconocimiento si se realiza en un medio popular y de uso inmediato, y no como una aplicación de escritorio.

No obstante, dada las cualidades que requiere la estenografía, creo que será conveniente escribir una aplicación en algún lenguaje de alto nivel para utilizarlo como "juguete de pruebas", pues la estenografía cambia mucho de acuerdo al tipo de medio utilizado  y también de su formato, lo que implica investigar sobre estos formatos y experimentar con ellos.

Por ejemplo, si comparamos archivos de audio [3], un archivo de audio en formato MP3 es muy distinto a un archivo WAV, pues el primero es comprimido, mientras que el segundo no, así que es más "fácil" acceder a los datos de audio en un archivo WAV dada esta cualidad

Aun así, como se planea realizar una aplicación móvil, esta aplicación deberá tener soporte para los tipos de archivo más populares que utiliza un usuario típico, lo cual dada a mi experiencia son archivos de audio MP3 y archivos de imágenes JPEG y PNG.

No es una prioridad tener en cuenta más tipos de archivo , pero si el tiempo lo permite se podría agregar más archivos.

Trabajo a realizar

En resumen, los principales entregables de este proyecto son:
  • Una aplicación móvil (Android) que realice esteganografía, es decir, que pueda ocultar y recuperar mensajes.
  • Escribir una tesis con los resultados de este proyecto
Ya que la esteganografía es una actividad que consume recursos computacionales, como memoria o procesamiento, y dichos recursos influyen en su tiempo de ejecución [4], se planea escribir dos aplicaciones de escritorio para comparar su rendimiento con la aplicación móvil:
  • Una aplicación en Python.
  • Una aplicación en C++.
Dado a que C++ se ha vuelto muy parecido a Python (off-topic: da mucho que hablar sobre la influencia de C++ en Python... y cómo es qué Python ha influido en el C++ "moderno"), el desarrollo de ambas aplicaciones no debe ser un problema, en especial si se diseña correctamente el flujo del control de las funciones.

Personalmente, pronostico qué la aplicación en Python se escribirá más rápido y qué a partir de dicho código se implemente la aplicación en  C++.

Otras consideraciones

Por un momento había olvidado algo muy importante en la definición de una tesis: su título.

El título tentativo de la tesis es:

"Una aplicación móvil para resguardar información sensible"

Como requisitos para trabajar con la doctora Elisa, se pidió tener en cuenta tres aspectos:

  • Tener un blog donde se documente el desarrollo del proyecto. 
  • Tener un repositorio (como Github) para llevar un control de los avances del proyecto, ya sea código o de la tesis:
  • Tener una carpeta compartida en Dropbox para subir todo aquello que pueda ser relevante para la tesis. Se hace especial énfasis en subir a esta carpeta los artículos o páginas web (convertidas en PDF) qué se piensa tomar como referencias para la tesis.

Referencias

[1]  "Libre Elección". Retrieved June 19, 2015, from http://www.fime.uanl.mx/libre_eleccion.html

[2] S.S. Dyvya, M. Ram Mohan Reddy (2012), "Hiding text in audio using multiple lsb steganography and provide security using cryptography"

[3] "Audio file format", Retrieved June 22, 2015 from https://en.wikipedia.org/wiki/Audio_file_format

[4] "El arte de la esteganografía".  Retrieved June 22, 2015 from http://kevinmichellegonzalez.blogspot.mx/2014/11/el-arte-de-la-esteganografia.html

[5] "C++ Has Become More Pythonic". Retrieved June 22, 2015 from http://preshing.com/20141202/cpp-has-become-more-pythonic/

No hay comentarios:

Publicar un comentario