Formato de compresión ZIP

En el mundo de la informática, nos podemos encontrar diferentes formatos de archivos que son conocidos por todo el mundo. Archivos PDF, DOC o JPG, son utilizados cada día por la mayoría de las personas. Dentro de este tipo de archivos, nos encontramos aquellos que utilizan compresión ZIP, y que nos ayuda a reducir el tamaño de imágenes, música, programas u otro tipo de documentos. Desde su aparición ha sido un sistema muy utilizado ya que en el proceso de reducción de peso, no se pierde información.

Para este tipo de archivos, se utiliza de forma general la extensión .ZIP. Para comprimir o descomprimir archivos de este tipo, podemos utilizar gran variedad de herramientas, tanto gratuitas como comerciales. Por ejemplo winzip o 7-zip, por nombrar algunos.

Un poco de historia del sistema de compresión ZIP

compresión zip
Fuente: romancortes

El formato de compresión ZIP fue creado originalmente por el creador de PKWARE, Phil Katz. En 1989 lanzó la primera versión de PKZIP, a la vez que liberaba para todo el público, la documentación técnica del formato de archivos ZIP.

Katz no optó por una idea original, sino que lo que hizo fue copiar las rutinas del sistema ARC de compresión que estaban en C, a un código optimizado en ensamblador. Esto cambio hacía que el proceso fuera mucho más rápido. SEA, que gestionaba ARC, intentó obtener una licencia por el compresor creado por Katz. Quería llamarlo PKARC pero Katz rechazó esa idea. SEA demandó a Katz por infringir el copyright y ganó.

Información técnica sobre la compresión ZIP

Como ya hemos comentado al principio de esta entrada, el sistema de compresión ZIP es uno de los más utilizados en la actualidad. Se trata de un formato de fichero bastante simple que comprime cada uno de los archivos de forma separada. Al funcionar de esta forma, es posible recuperar cada uno de los ficheros sin tener que leer el resto, lo que agiliza mucho el proceso, mejorando el rendimiento. El problema de todo esto, es que más complejo agrupar un número grande de pequeños archivos que agrupar todos los archivos y comprimirlos como si fuera una sólo. Este último comportamiento es el que utiliza el sistema de compresión RAR.

compresión zip de archivos
Fuente: techrds

La especificación de ZIP indica que cada archivo puede ser almacenado, o bien sin comprimir, o utilizando una amplia variedad de algoritmos de compresión. Sin embargo, en la práctica, ZIP se suele utilizar casi siempre con el algoritmo de Phil Katz.

El formato ZIP, soporta un sistema de cifrado simétrico basado en una clave única. El problema, es que se trata de un sistema de encriptación débil ante ataques como el ataque de texto plano, ataque del diccionario y el ataque de fuerza bruta. También hay que destacar, la posibilidad de hacer particiones del archivo comprimido y mover esas partes mediante el uso de varios dispositivos.

Con el paso del tiempo, se han ido añadiendo nuevas características como algunos nuevos métodos de encriptación. Sin embargo, estas nuevas características no están soportadas en la mayoría de las aplicaciones existentes.

Métodos de compresión ZIP

En el punto anterior, hemos comentado que nos podemos encontrar varios métodos de compresión ZIP. Veamos algunos de los más importantes.

Shrinking 

El método de contracción, es una variante de LZW pero con unos pequeños ajustes. Estaba afectada por la ya expirada patente del LZW. Nunca estuvo claro si dicha patente cubría el proceso de descompresión, pero por si acaso, algunos proyectos libres decidieron no incluirlo en sus productos.

Reducing

La Reducción implica una combinación de compresiones de secuencias de bytes y aplicación de una codificación estadística del resultado.

Imploding

En el método de implosión, se comprime secuencias de bytes repetidamente con una función de ventana deslizante. Posteriormente, se comprime el resultado utilizando múltiples árboles Shannon-Fano.

Tokenizing

Se trata de un método que está reservado. La especificación PKWARE no define un algoritmo para él.

Deflate y enhanced deflate

Estos métodos, utilizan el conocido algoritmo deflate. Permite ventanas de hasta 32 KB. Enhanced deflate permite ventanas de hasta 64 KB. La versión mejorada (enhanced) tiene un mejor comportamiento, pero no está tan extendido.

Biblioteca de compresión de datos PKWARE por Imploding

No podemos mostraros información sobre este método, ya que las especificaciones oficiales no dan mucha más información.

BZip2

Este otro método, utiliza el conocido algoritmo bzip2. Este algoritmo se comporta mejor que Deflate, pero no está ampliamente soportado por las herramientas, sobre todo las de Windows.

En la actualidad

programas compresión zip
Fuente: atcoitec

Hoy en día, los archivos ZIP emplean la extensión de fichero .zip, teniendo el tipo media MIME application/zip. Estos archivos son capaces de contener uno o más ficheros que están comprimidos o almacenados.

Entre las aplicaciones que nos podemos encontrar para trabajar con este tipo de extensiones podemos destacar WinZip, PicoZip, Info-ZIP, WinRAR y 7-Zip.

Además de esos archivos, los principales sistemas operativos del mercado, también ofrecen funciones nativas para trabajar con archivos .ZIP, por lo que en la mayoría de los casos, no sería necesario realizar la instalación de ningún software adicional. De todas formas, yo os recomiendo que os decantéis por algunas de las muchas opciones disponibles, para una mejor gestión.

La información utilizada en esta entrada, ha sido sacada de la Wikipedia.