You are on page 1of 1

Esquema de compresión para transmisión

segura de datos
Teoría de la información y métodos de codificación
M.C Said Zamora
Participantes:
Constantino Mora Martínez
Víctor Emanuel Ríos Martínez
Daniel Alejandro Domínguez
Meza

INTROD
UCCIÓN

La compresión de datos es el proceso mediante en el cual la información es codificada usando menos cantidad de bits que la representación original sin codificar. El componente unido a este proceso es
el algoritmo decodificador que reconstruye el mensaje original o una aproximación a partir de la versión ya comprimida.
La encriptación es el proceso mediante el cual se codifican los mensajes para hacerlos no- legibles por un intruso web. Por lo tanto, en la mayoría de los casos, se utiliza encriptación después de la
compresión.
Antes de aplicar algún tipo de algoritmo de compresión se realiza un preprocesamiento en el archivo fuente. La transformación está diseñada para hacer más fácil la compresión. Generalmente se utiliza
codificación basada en diccionario para este tipo de transformación de procesamiento del texto fuente. El diccionario se crea a partir de las palabras más comunes en el texto. El diccionario debe ser
preparado con anticipación y debe ser conocido por la fuente y el destinatario. Cada palabra en el diccionario tiene que ser reemplazada por un carácter ASCII. El multidiccionario incrementa la velocidad
de codificación y decodificación, porque el acceso a las palabras es muy fácil y rápido. Por otra parte, la codificación basada en diccionario es débil y vulnerable a ataques, pero la encriptación basada en
diccionario proporciona la seguridad requerida.

METODOLOGÍA

Los cuatro pasos principales de esta técnica son compresión basada en multi--diccionario,
compresión basada en BWT con RLE, algoritmo de encriptación basado en arreglo reducido y
compresión basada en proceso de codificación Huffman. Las palabras son extraídas de los
archivos de entrada y formadas como entradas de diccionario.

Multi-diccionario
Las palabras son extraídas de los archivos de entrada y ordenadas como entradas de
diccionario basado en el código ASCII. Este método multidiccionario incrementa la velocidad de
codificación y decodificación.Los códigos más cortos son asignados a las palabras más
frecuentemente usadas. Los códigos más largos son asignados a las palabras menos usadas.

Algoritmo de codificación
Transformada de Burrows-Wheeler y Run-Length Encoding
Los archivos de entrada son codificados (en caracteres ASCII) usando la compresión basada en
multi-diccionarios. Este código es la entrada al BWT. La salida de BWT es proporcionada como
entrada al RLE. RLE es un algoritmo de compresión simple en el cual secuencias de caracteres
con el mismo valor consecutivo son guardados como un solo valor con su respectivo número de
repeticiones antecediendo al carácter.

RESULTADOS

En el estado actual del proyecto hemos obtenido un buen radio de compresión, el tamaño de un
mensaje se puede reducir más de tres veces, dependiendo del mensaje, del número de palabras
Seen
tiene
objetivo que el juego sea lo mejor posible dejando atrás los detalles que
repetidas
todocomo
el texto.
causan una mala imagen.
Esperamos que aún con el texto cifrado el tamaño del mensaje no incremente y que, por el
Uno
de los detalles
principales
es el problema que cuando un jugador es atacado puede
contrario,
el tamaño
sea reducido
aún más.
volver a colocar una nueva coordenada en el lugar ya atacado, esto se puede arreglar
bloqueando
la matrizgrandes
de posición
una
vez posicionadas
las de
piezas
correspondientes
Con textos
suficientemente
hemos
comprobado
la eficacia
utilizar
en conjunto los para
cada
nivel.
métodos BWT y RLE después del diccionario.
Otro detalle en el que se tiene que trabajar es que al momento de atacar un nivel y este se
Implementación

encuentra vacío pero debajo de este (misma posición distinto nivel) se encuentra algún
otra pieza esta debe de ser afectada por el ataque ya que se supone que el ataque va de
Texto original:
una manera
vertical cayendo
hasta tocar
algún
blanco.
Sistema
de Transmisión
de compresión
segura
depunto
datos:
En este proyecto se implementa un
algoritmo de compresión con encriptación y compresión (CEC). Este algoritmo inicialmente
También
tiene para
que checar
la posición
las piezas
donde los barcos
y aviones y
comprime
lossedatos
reducir losudelongitud.
Losdedatos
ya comprimidos
son encriptados
pueden
estar
vertical
o
horizontalmente,
los
submarinos
pueden
colocarse
de tres
después nuevamente comprimidos usando un nuevo algoritmo de compresión sin comprometer
maneras
posibles
(vertical
,horizontal
y
de
una
forma
inclinada).
la eficiencia de compresión y la seguridad de la información.
Se estima que el proyecto pueda estar terminado superando estos detalles.

Algoritmo de encriptación y compresión de Begum-Venkataramani
La salida de la codificación run-length es dada como entrada al algoritmo de encriptación con
compresión. En los algoritmos de encriptación generales, el texto plano es convertido en texto
cifrado con el mismo tamaño o más grande. Este algoritmo no sólo ha hecho la encriptación,
también ha reducido el tamaño del arreglo de entrada por 3 veces.
Codificación de Huffman
La salida cifrada del algoritmo anterior es pasada al codificador de Huffman para compresión
adicional. El código de Huffman es generado usando un árbol binario.
El código de Huffman está basado en dos observaciones primordiales:
1) Los símbolos que ocurren con más frecuencia tendrán códigos más cortos que los símbolos
que ocurren menos frecuentemente.
2) Los dos símbolos que ocurren menos frecuentemente tendrán la misma longitud.

Algoritmo de decodificación
Los datos desencriptados son proporcionados al decodificador de RLE y posteriormente al
procedimiento inverso de BWT. De esta forma, el string vuelve al estado original antes de aplicar
RLE y el BWT puede devolver el valor después de haber aplicado el diccionario para
codificación la primera vez. El diccionario es obtenido desde el mensaje y se utiliza para
regresar el resto del mensaje a su estado original.

Figura 3. Salida de la ejecución del programa CEC.
Texto codificado:
6 ! > ! " C ! 2 B ) G H F ' $ ! " I * % " 8A$ + @ 4 ( : D E 1 - ( < & , . % ? 7 & / ' = $ ! " 9 3 # 5 ! " % # ;
!#0
BWT:
05$>$;C6!%!!!!3%='A*".<7F/4-BI$&1,&#E!9@#?""(#('!%+82":DH)G"
RLE:
110151$1>1$1;1C161!1%4!131%1=1'1A1*1"1.1<171F1/141-1B1I1$1&111,1&1#1E1!191@1#1?2"1
(1#1(1'1!1%1+18121"1:1D1H1)1G1"40 1
Tamaño del texto original: 423 Bytes
Tamaño del texto comprimido: 119 Bytes
Radio de compresión: 3.5546
Tiempo de ejecución: 0.00287103652954
segundos

El texto original recuperado:
Sistema de Transmisión de compresión segura de datos: En este proyecto se implementa un
algoritmo de compresión con encriptación y compresión (CEC). Este algoritmo inicialmente
comprime los datos para reducir su longitud. Los datos ya comprimidos son encriptados y
después nuevamente comprimidos usando un nuevo algoritmo de compresión sin comprometer
la eficiencia de compresión y la seguridad de la información.
Figura 1. Diagrama de bloques del algoritmo CEC.

DISCUSIÓN

CONCLUSIONES

El proyecto aún se encuentra en desarrollo, sobre todo en las secciones de cifrado con el nuevo
algoritmo y en la creación de sus claves para la encriptación.

La compresión es parte de nuestra vida cotidiana, es muy útil al transmitir datos ya que es
importante hacerlo de la forma más rápida posible y entre más pequeña sea la longitud de los
datos, más rápida es la transmisión total, pero es de suma importancia hacerlo sin dejar a un lado
la seguridad.

Uno de los puntos clave de la implementación de los algoritmos de compresión y cifrado
utilizados, es el tiempo que toma el cifrado con compresión, y posteriormente, la descompresión
y descifrado. Por ahora, el tiempo se ha mantenido bajo, sin embargo, esperamos que después
de la implementación de los algoritmos restantes el tiempo se incremente considerablemente.
Un escrito de 423 bytes con radio de compresión poco mayor a 3.55 logra un tiempo
aproximado de 0.002871 segundos desde la codificación por diccionario hasta su decodificación
al texto original (sin contar el tiempo requerido para su transmisión).

El algoritmo CEC provee mejores resultados que otros algoritmos debido a que tiene un
rendimiento muy viable y porque alcanza un radio de compresión muy alto tras codificar y
comprimir al mismo tiempo. Sin embargo, el radio de compresión depende del número de palabras
en el archivo, tamaño del archivo, y las frecuencias y distribución de las palabras dentro del
archivo.
En este proyecto hemos implementado hasta el momento la compresión y descompresión por
multi-diccionario, seguido por BWT y RLE. El enfoque de este proyecto es asegurar el mensaje
usando la técnica CEC, pero contemplamos para trabajo futuro, encriptar usando el nuevo
algoritmo de encriptación Begum--Venkataramani basado en arreglo reducido, seguido por
codificación Huffman. Además, como segunda fase del proyecto, trabajar con el rendimiento en
archivos multimedia para mejor diversidad en su implementación.

BIBLIOGRAFÍA
[1] Begum, M., & Venkataramani, Y. (n.d.). A New Compression Scheme for Secure Transmission. International Journal of Automation and Computing Int. J. Autom. Comput., 578-586 [2]
Hankerson, D., Harris, G., & Johnson, P. (2003). Introduction to Information Theory and Data Compression, Second Edition (Second Edition ed., p. 384). Chapman and Hall/CRC. [3] K.
Sayood. Introduction to Data Compression, 2nd ed., San Francisco: Morgan Kaufmann Publishers, pp. 39–61, 149-154, 2000