# PKZIP

PKZIP è un software di archiviazione file e compressione dei dati, scritto dallo scomparso Phil Katz, e commercializzato dalla sua azienda PKWARE, Inc. PKZIP sta per "Phil Katz's ZIP program".
La prima versione di PKZIP è apparsa nel 1989 come strumento ad esecuzione dalla riga di comando DOS, distribuito come shareware al costo di 25 dollari per la registrazione. PKZIP utilizza tre diversi algoritmi di compressione, noti rispettivamente con i coloriti termini inglesi di shrinking, reducing e imploding ("restringere", "ridurre" e "implodere"), selezionati in base alle caratteristiche dei file da comprimere. Sebbene all'epoca molto popolare il formato PKZIP 1 è attualmente molto raro, tanto che la maggior parte degli attuali strumenti di decompressione non sono in grado di effettuare le operazioni di shrinking e reducing, mentre quella di imploding è di solito supportata.
Nel 1993 la PKWARE lanciò la versione PKZIP 2, senza tutti i vari metodi di compressione di PKZIP 1, sostituiti da un unico metodo di compressione che Phil Katz definì deflating. Nonostante si tratti di un unico metodo in effetti può essere applicato con livelli di compressione diversi. Il formato di file risultante divenne da allora onnipresente nel mondo di Windows e di Internet. Quasi tutti i file con estensione .zip sono in formato PKZIP 2, e le utility per leggere e scrivere questi file sono generalmente fornite a corredo di tutte le piattaforme. Per assicurare l'interoperabilità del formato ZIP, Phil Katz ne ha reso pubblica la specifica tecnica, che viene tenuta periodicamente aggiornata e pubblicata.
Con l'introduzione di standard di crittografia proprietari, alcuni sviluppatori decisero di non implementare, da allora in poi, tutte le estensioni al linguaggio, creando, di fatto, una sorta di frattura nel formato.
Nel 2004 PKWARE introdusse SecureZIP, una tecnologia data dall'unione di PKZIP e della crittografia AES fino a 256 bit. SecureZIP consente l'utilizzo di password o di certificati X.509.

## Storia

Le routine di archiviazione dei file risalgono almeno agli anni settanta, quando venivano distribuite come utility di serie con i sistemi operativi. Tra di esse si annoverano le utility UNIX ar, shar e tar. Questi software erano stati concepiti per raccogliere un certo quantitativo di file separati in un singolo file di archivio, per facilitarne la copia e la distribuzione.
Durante gli anni ottanta, la System Enhancement Associates (SEA) sviluppò un'utility shareware denominata ARC, basata su programmi preesistenti, quali tar, che non si limitava a raccogliere i file in un unico archivio, ma li comprimeva per risparmiare spazio su disco: si trattava di una caratteristica di grandissima importanza sui primi personal computer, in cui lo spazio era molto limitato e le velocità di trasmissione via modem non erano elevate. I file di archivio prodotti da ARC avevano un'estensione .ARC, cosa da cui nasceva la denominazione "file arc".
In seguito, Phil Katz sviluppò le sue utilità shareware, PKARC e PKXARC, per creare archivi ed estrarne il contenuto. Esse utilizzavano il formato di archiviazione utilizzato da ARC, ma erano molto più veloci di quest'ultimo. A differenza della SEA, che aveva combinato le funzioni di creazione degli archivi e di estrazione dei file dagli archivi in un unico programma, Katz le divise in due utility separate, riducendo, in tal modo, la quantità di memoria necessaria ad eseguirle. Ciò permetteva all'utility di estrazione dei file di essere incorporata nell'archivio, così da creare archivi autoestraenti, così definiti perché potevano scompattarsi autonomamente, senza che fosse richiesto un ulteriore software.
La concorrenza di Katz non fu gradita dalla SEA, che lo citò in giudizio per violazione di marchio registrato e violazione di copyright, sostenendo che Katz aveva plagiato sezioni del loro codice sorgente. Katz perse la causa, e dovette pagare 62.500 dollari di spese legali.
Si scoprì, durante la fase istruttoria del processo, che Katz aveva utilizzato il codice sorgente di ARC per la maggior parte della propria applicazione, ed aveva solo fatto alcune ottimizzazioni al codice per incrementarne la velocità. In primis, egli portò la lunghezza di una parola utilizzata dall'algoritmo a 13 bit dai 12 originali, col risultato di ottenere una maggiore compressione per i file binari più comuni.
A seguito della causa, Katz cambiò il nome delle sue utility in PKPAK e PKUNPAK, e sviluppò PKZIP e PKUNZIP, che erano basati su nuove e differenti tecniche di compressione dei file. La causa della SEA infastidì molti utenti di software shareware, che ritenevano la SEA una 'grande azienda senza volto' e Katz 'un bravo ragazzo'. Per la verità, sia la SEA che la PKWARE erano piccole aziende all'epoca.
Tuttavia, la comunità degli utenti si schierò in gran parte a favore di Katz, e si persuase delle capacità di compressione migliori di PKZIP. ARC fu quasi del tutto abbandonato, mentre PKZIP e PKUNZIP divennero i software più usati per la compressione dei dati in MS-DOS.
Altre utility di archiviazione fecero la loro comparsa durante gli anni Ottanta: tra di esse si annoverano ZOO di Rahul Dhesi, DWC di Dean W. Cooper, e LHarc di Haruhiko Okomura ed Haruyasu Yoshizaki.