Post on 31-Dec-2014
Trabajo PrácticoOcultador de Textos
Cátedra: Ingeniero Saubidet
Grupo Número 5
Segundo Cuatrimestre del 2008
Integrantes :
Lucas Acosta (86939)Rodrigo Cortes (86493) Martin Medina (87293)Lucas Pandolfo (88581 )Hernán Rivero (88455)
Modularización de la solución:
Este es el módulo principal que llamará al resto de los módulos en secuencia, según sus respectivas interfaces. El módulo coordinador se encarga de efectuar las operaciones principales que debe poder resolver la aplicación. Además, se encarga de efectuar el manejo y la interacción con el filesystem.
Internamente, el modulo coordinador llama a los otros 3 módulos siguiendo la siguiente secuencia:
1. Modulo de Compresión
2. Módulo de Encriptación
3. Módulo de manejo de imágenes
Este módulo se encarga puramente de comprimir y descomprimir los archivos de texto destinados a ocultar.
Para realizar la compresión se ha elegido el algoritmo: LZ78
LZ78Se ha elegido este algoritmo pues no presenta grandes complejidades de implementación y además permite una compresión razonable usando contextos. Esto se debe tener en cuenta pues para los fines de la aplicación es esperable que los textos a ocultar sean mensajes con sentido y contexto, los cuales pueden ser aprovechados por este algoritmo.
Consideraciones con el LZ78: Se utiliza código de Eof para el fin de
archivo. Se utilizan como máximo 12 bits de
código. Se utiliza un árbol binario para los
términos. Soporta caracteres dobles.
Este módulo es el encargado de encriptar y desencriptar los datos (luego de ser comprimidos, por obvias razones).
El algoritmo elegido para realizar estas tareas de seguridad es llamado: Blowfish
BLOWFISHEste algoritmo fue elegido debido a su simplicidad y eficiencia. Es muy rápido, seguro y de simple implementación. El mismo, utiliza redes de Feistel para encriptar y desencriptar, dado que una red de Feistel es por definición, reversible. El blowfish soporta claves de hasta 448 bits y encripta de a bloques de 64 bits. Hasta la fecha no se conocen criptoanalisis satisfactorios contra el blowfish.
Consideraciones para el Blowfish
Implementación adaptada para aumentar la velocidad y la performance del algoritmo.
Las primitivas manejan independientemente archivos para encriptar y desencriptar.
El algoritmo implementa un sistema interno para completar el archivo encriptado a un múltiplo de 64 bits, y a su vez descartar los caracteres extra al desencriptar.
Este módulo abstrae las tareas de esteganografía sobre las imágenes. Se encarga proveer al módulo coordinador, todas las primitivas de manejo que permiten ingresar y obtener información en las imágenes contenidas en los directorios que puede utilizar la aplicación.