7z - 7z

format de fichier 7z
7zip archive icon.svg
Extension de nom de fichier
.7z
Type de média Internet
application/x-7z-compressé
Identificateur de type uniforme (UTI) org.7-zip.7-zip-archive
nombre magique '7', 'z', 0xBC, 0xAF, 0x27, 0x1C
Développé par Igor Pavlov
Première version 1999 ; il y a 22 ans ( 1999 )
Type de format Compression de données
Format ouvert ? Oui : Licence publique générale limitée GNU / Domaine public
Site Internet 7-Zip .org

7z est un format de fichier d'archive compressé qui prend en charge plusieurs algorithmes de compression de données , de cryptage et de pré-traitement différents. Le format 7z est apparu initialement tel qu'implémenté par l' archiveur 7-Zip . Le programme 7-Zip est accessible au public sous les termes de la licence publique générale limitée GNU . Le LZMA SDK 4.62 a été placé dans le domaine public en décembre 2008. La dernière version stable de 7-Zip et LZMA SDK est la version 19.00.

La spécification du format de fichier 7z est distribuée avec le code source de 7-Zip. La spécification peut être trouvée au format texte brut dans le sous-répertoire 'doc' de la distribution du code source.

Fonctionnalités et améliorations

Le format 7z offre les principales caractéristiques suivantes :

  • Architecture ouverte et modulaire qui permet d'empiler n'importe quelle méthode de compression, de conversion ou de chiffrement.
  • Taux de compression élevés (selon la méthode de compression utilisée).
  • Cryptage AES- 256 .
  • Prise en charge des fichiers volumineux (jusqu'à environ 16 exbioctets ou 2 64 octets).
  • Noms de fichiers Unicode .
  • Prise en charge de la compression solide , où plusieurs fichiers de type similaire sont compressés dans un seul flux, afin d'exploiter la redondance combinée inhérente aux fichiers similaires.
  • Compression et chiffrement des en- têtes d' archives .
  • Prise en charge des archives en plusieurs parties : par exemple xxx.7z.001, xxx.7z.002, ... (voir les éléments du menu contextuel Split File... pour les créer et Combine Files... pour réassembler une archive à partir de un ensemble de fichiers de composants en plusieurs parties).
  • Prise en charge des DLL de plug-in de codec personnalisés.

L' architecture ouverte du format permet d'ajouter de futures méthodes de compression supplémentaires à la norme.

Méthodes de compression

Les méthodes de compression suivantes sont actuellement définies :

  • LZMA  - Une variante de l' algorithme LZ77 , utilisant un dictionnaire glissant jusqu'à 4 Go de longueur pour l'élimination des chaînes en double. L'étape LZ est suivie d' un codage entropique à l' aide d'un codeur de distance basé sur une chaîne de Markov et d'arbres binaires .
  • LZMA2  - version modifiée de LZMA offrant une meilleure prise en charge du multithreading et moins d'expansion des données incompressibles.
  • Bzip2  - L' algorithme de transformation Burrows-Wheeler standard. Bzip2 utilise deux transformations réversibles ; BWT, puis Déplacer vers l'avant avec le codage Huffman pour la réduction des symboles (l'élément de compression réel).
  • PPMd  – PPMdH 2002 de Dmitry Shkarin (PPMII/cPPMII) avec de petits changements : PPMII est une version améliorée de l' algorithme de compression PPM de 1984 (prédiction par correspondance partielle).
  • DEFLATE  – Algorithme standard basé sur 32 Ko LZ77 et le codage Huffman . Deflate est disponible dans plusieurs formats de fichiers, notamment ZIP , gzip , PNG et PDF . 7-Zip contient un encodeur DEFLATE à partir de zéro qui bat fréquemment la version zlib standard de facto en termes de taille de compression, mais au détriment de l'utilisation du processeur.

Une suite d'outils de recompression appelée AdvanceCOMP contient une copie de l'encodeur DEFLATE de l'implémentation 7-Zip ; ces utilitaires peuvent souvent être utilisés pour compresser davantage la taille des fichiers gzip , ZIP , PNG ou MNG existants.

Filtres de pré-traitement

Le SDK LZMA est livré avec les préprocesseurs BCJ et BCJ2 inclus, de sorte que les étapes ultérieures puissent obtenir une plus grande compression : pour les processeurs x86 , ARM , PowerPC (PPC), IA-64 Itanium et ARM Thumb , les cibles de saut sont « normalisées » avant compression en changeant la position relative en valeurs absolues. Pour x86, cela signifie que les sauts proches, les appels et les sauts conditionnels (mais pas les sauts courts et les sauts conditionnels) sont convertis de la notation de style "jump 1655 bytes back" en langage machine vers la notation de style "jump to address 5554" normalisée ; tous les sauts vers 5554, peut-être un sous-programme commun, sont ainsi codés à l'identique, ce qui les rend plus compressibles.

  • BCJ  – Convertisseur pour les exécutables x86 32 bits. Normalisez les adresses cibles des sauts proches et des appels des distances relatives aux destinations absolues.
  • BCJ2– Pré-processeur pour les exécutables x86 32 bits. BCJ2 est une amélioration par rapport à BCJ, ajoutant un traitement supplémentaire des instructions de saut/appel x86. Les cibles Near jump, Near Call, Conditional Near Jump sont séparées et compressées séparément dans un autre flux.
  • Encodage  delta – filtre delta, préprocesseur de base pour les données multimédia.

Une technologie de prétraitement exécutable similaire est incluse dans d'autres logiciels ; le compresseur RAR propose une compression de déplacement pour les exécutables x86 32 bits et les exécutables IA-64, et le compresseur de fichiers exécutables d'exécution UPX prend en charge le travail avec des valeurs 16 bits dans les fichiers binaires DOS .

Chiffrement

Le format 7z prend en charge le cryptage avec l' algorithme AES avec une clé de 256 bits. La clé est générée à partir d'une phrase secrète fournie par l' utilisateur à l'aide d'un algorithme basé sur la fonction de hachage SHA-256 . Le SHA-256 est exécuté 2 18 (262144) fois, ce qui provoque un délai important sur les PC lents avant le début de la compression ou de l'extraction. Cette technique est appelée étirement de clé et est utilisée pour rendre plus difficile la recherche par force brute de la phrase secrète. Les attaques matérielles personnalisées et basées sur le GPU actuelles limitent l'efficacité de cette méthode particulière d'étirement des clés, il est donc toujours important de choisir un mot de passe fort. Le format 7z offre la possibilité de crypter les noms de fichiers d'une archive 7z.

Limites

Le format 7z ne stocke pas les autorisations du système de fichiers (telles que les autorisations de propriétaire/groupe UNIX ou les ACL NTFS ), et peut donc être inapproprié à des fins de sauvegarde/archivage. Une solution de contournement sur les systèmes de type UNIX consiste à convertir les données en un flux binaire tar avant de les compresser avec 7z. Mais il convient de noter que GNU tar (commun dans de nombreux environnements UNIX) peut également compresser nativement avec l'algorithme LZMA, sans utiliser 7z, et que dans ce cas l'extension de fichier suggérée pour l'archive est ".tar.lzma" ( ou simplement ".tlz"), et non ".tar.7z". D'un autre côté, il est important de noter que tar n'enregistre pas l'encodage du système de fichiers, ce qui signifie que les noms de fichiers compressés tar peuvent devenir illisibles s'ils sont décompressés sur un autre ordinateur. Il est également possible d'utiliser LZMA2 en l'exécutant via l' outil xz . Les versions récentes de GNU tar prennent en charge le commutateur, qui exécute TAR via XZ. L'extension de fichier est ".tar.xz" ou ".txz". Cette méthode de compression a été adoptée avec de nombreuses distributions pour l'empaquetage, telles que Arch, Debian (deb), Fedora (rpm) et Slackware. -J

Le format 7z ne permet pas d'extraire certains "fichiers cassés" - c'est-à-dire (par exemple) si l'on a le premier segment d'une série de fichiers 7z, 7z ne peut pas donner le début des fichiers dans l'archive - il faut attendre que tous les segments sont téléchargés. Le format 7z manque également d'enregistrements de récupération, ce qui le rend vulnérable à la dégradation des données à moins d'être utilisé avec des solutions externes, telles que parchives , ou dans des systèmes de fichiers avec une correction d'erreur robuste . À titre de comparaison, les fichiers zip manquent également d'une fonction de récupération.

Voir également

Les références

Lectures complémentaires

  • Salomon, David (2007). Compression de données : la référence complète . Springer. p. 241. ISBN 978-1-84628-602-5.

Liens externes