Comprendere i vari formati di compressione, crittografia e archiviazione

In termini informatici, un archivio è un singolo file che memorizza al suo interno diversi file e cartelle. Ci sono diversi formati di archivio disponibili e ognuno ha i propri pro e contro. Alcuni formati di archivio supportano la compressione (che riduce le dimensioni del file) mentre altri supportano la crittografia. Sì, e l’hai indovinato, alcuni formati di archivio supportano entrambi compressione e crittografia. Scopriamo di più sugli algoritmi di compressione e crittografia utilizzati e sui vari formati di archivio.

Algoritmo di compressione

L’algoritmo di compressione è il metodo utilizzato dall’archivio per comprimere i file e ridurre le dimensioni complessive del file.

formato e algoritmo di compressione

1. LZMA/LZMA2

L’algoritmo a catena Lempel-Ziv-Markov (LZMA) è un algoritmo di compressione dati senza perdita. LZMA utilizza un algoritmo di compressione a dizionario che sfrutta strutture dati complesse per codificare un bit alla volta.

LZMA2 è un contenitore che contiene sia i dati non compressi che quelli compressi con LZMA. Supporta la compressione e decompressione multithread dei dati. Può anche comprimere dati che non sono comprimibili con altri algoritmi di compressione.

2. Algoritmo di Trasformazione di Burrows-Wheeler (BWT)

BWT funziona permutando una stringa di testo in ordine e poi comprimendola sostituendo i caratteri ripetuti con simboli.

3. PPM

La previsione per corrispondenza parziale (PPM) è un metodo di compressione dati statistico che funziona utilizzando un insieme di simboli precedenti nel flusso di simboli non compressi per prevedere il simbolo successivo nel flusso.

4. Deflate

Deflate è un popolare algoritmo di compressione dati che utilizza una combinazione degli algoritmi di compressione LZ77 e codifica Huffman per comprimere i dati (combinando gli algoritmi LZMA e PPM per produrre una maggiore compressione). Poiché Deflate non contiene implementazioni soggette a brevetti, è diventato molto popolare ed è ampiamente utilizzato, specialmente in Linux.

Algoritmo di crittografia

Ora esaminiamo alcuni dei metodi di crittografia più popolari:

algoritmo-formato-di-crittografia

1. DES

Lo Standard di Crittografia dei Dati utilizza chiavi segrete private per crittografare e decrittografare i dati. La chiave segreta viene selezionata casualmente da uno spazio di indirizzi da 56 a 64 bit.

2. AES

Lo Standard di Crittografia Avanzata è un algoritmo di crittografia utilizzato dalle agenzie statunitensi per proteggere i dati sensibili. Puoi crittografare i dati utilizzando 128, 192 e 256 bit di crittografia. AES utilizza un algoritmo a chiave simmetrica, il che significa che viene utilizzata una chiave comune per crittografare e poi decrittografare i dati.

3. Blowfish

L’algoritmo di crittografia Blowfish crittografa gli archivi con una dimensione di blocco di 64 bit e una lunghezza di chiave variabile da 32 a 448 bit.

Nota: Ci sono diversi altri algoritmi di crittografia, ma i tre sopra menzionati sono i più utilizzati.

Formati di archivio

Ci sono vari formati di archivio disponibili. Di seguito, valuteremo ciascun formato di archivio utilizzando tre parametri: se supporta compressione e crittografia, quale sistema operativo e software è disponibile per il suo utilizzo.

1. Tar

Tape Archive (Tar) è uno dei formati di archivio più antichi. Inizialmente, veniva utilizzato per combinare e scrivere dati su unità a nastro sequenziali, ma in seguito è stato standardizzato come formato di compressione. Tar è utilizzato principalmente in Linux e non supporta compressione o crittografia. Puoi usarlo anche su Windows con l’installazione di software aggiuntivo. La maggior parte delle moderne utility di archiviazione supporta questo formato. Le eccezioni includono Disk Archiver e KGB Archiver.

2. GZ

GZ o GZip è uno dei formati di compressione più popolari utilizzati sia in Windows che in Linux. GZip utilizza l’algoritmo di compressione Deflate per comprimere i file archiviati. GZip supporta anche trasferimenti di file multiparte, il che significa che puoi creare parti più piccole di un grande file GZip per una condivisione e un trasferimento più facili. Poiché GZip è abbastanza popolare, la maggior parte delle moderne utility di archiviazione supporta la compressione e la decompressione dei file utilizzando il formato GZip, inclusi 7-Zip, BetterZip, PKZip, WinZip e WinRAR.

3. BZ/BZ2

BZ è molto simile a GZ ma utilizza l’algoritmo di Trasformazione di Burrows-Wheeler, che porta a una compressione leggermente maggiore e a dimensioni di file più piccole. Sebbene la compressione sia lenta, la decompressione è piuttosto veloce. La maggior parte dei software che supportano GZ supportano anche BZ.

4. Zip

compression_winzip

Zip è probabilmente il formato di archiviazione più conosciuto e utilizzato. Zip utilizza l’algoritmo Deflate e supporta la compressione senza perdita. Supporta anche la crittografia AES e DES. La maggior parte dei moderni sistemi operativi viene fornita con supporto integrato per il formato Zip, quindi non hai bisogno di un software separato per archiviare e dearchiviare file Zip.

5. 7Z

compression_7zip

Il formato di archiviazione 7Z è stato introdotto con un’utilità gratuita e open source chiamata 7-Zip. È il formato di compressione e archiviazione generale più avanzato che supporta la maggior parte degli algoritmi di compressione e crittografia, inclusi quelli di cui abbiamo discusso sopra. Il formato 7Z comprime i file più di qualsiasi altro formato, ma è relativamente più lento nel processamento. Un’altra limitazione è che il software 7-Zip è disponibile solo per Windows. Non c’è supporto visivo per Mac o Linux. 7Z supporta anche l’archiviazione multiparte.

6. RAR

compression_winrar

RAR è un formato di archiviazione proprietario. Sebbene possa essere letto ed estratto da altre utility come 7-Zip e WinZip, può essere creato solo utilizzando l’utilità WinRAR. RAR era il formato più popolare per l’archiviazione multiparte prima che venisse rilasciato 7Z. Ora 7Z può svolgere lo stesso compito gratuitamente, mentre RAR fa pagare i suoi utenti per il software WinRAR. RAR supporta la crittografia AES.

Altri formati di compressione e archiviazione

Ecco alcuni dei formati relativamente meno conosciuti:

XZ è un formato di compressione dati senza perdita che utilizza l’algoritmo di compressione LZMA2. Può essere considerato una versione semplificata di 7Z.

LHA, precedentemente noto come LHarc, è utilizzato principalmente per comprimere file di installazione e giochi (principalmente utilizzato in Giappone). Curiosamente, la versione giapponese di Windows 7 viene fornita con supporto integrato per gli archivi LHA.

ACE è un formato di file di archivio di compressione dati proprietario che era un concorrente del formato RAR nei primi anni 2000.

StuffIt è stato rilasciato principalmente per Mac, ma successivamente sono state rilasciate versioni per Windows, Linux e Solaris. Questo è un formato di compressione proprietario utilizzato dalle utility StuffIt.

Conclusione

In Linux, il formato più comunemente utilizzato è gz (o tar.gz), seguito da bz, mentre in Windows o Mac, il formato più comunemente utilizzato è Zip. Per la compatibilità tra piattaforme, il formato Zip è quello da scegliere. Se desideri funzionalità come sicurezza, alta compressione e archiviazione multiparte, scegli il formato 7Z. RAR è simile a 7Z, tranne per il fatto che ha un costo. Evitalo il più possibile.

Quale formato di file e utility utilizzi per la compressione?

Crediti immagine: Spring, replica del dispositivo cifrario M-94