Rechercher un outil
Transformée de Burrows-Wheeler

Outil appliquant l'algorithme de Burrows-Wheeler. La transformée de Burrows-Wheeler (BWT) est un algorithme qui maximise les répétitions de lettres dans un texte, ce qui est très utile en compression de données.

Résultats

Transformée de Burrows-Wheeler -

Catégorie(s) : Compression

Partager
Partager
dCode et plus

dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Ecrire à dCode !


Rendez-vous sur notre communauté Discord dCode pour participer au forum d'entraide !
PS : Pour les messages codés, testez notre détecteur de chiffrement !


Grâce à vos remarques, réponses et commentaires pertinents, dCode peut développer le meilleur outil 'Transformée de Burrows-Wheeler', alors écrivez-nous c'est gratuit ! Merci !

Transformée de Burrows-Wheeler

Décompression par BWT



Compression avec BWT


Réponses aux Questions (FAQ)

Qu'est ce que la Transformée de Burrows-Wheeler ? (Définition)

La transformée de Burrows-Wheeler (BWT) réorganise les caractères d'un message et y associe une clé. Il ne s'agit pas d'une compression, mais d'un prétraitement préalable à une compression. La transformée de BW a tendance à rapprocher les caractères identiques, cette proximité permet ensuite une compression accrue (par exemple par codage RLE).

Comment encoder avec BWT ? (Principe de chiffrement)

La première étape consiste à lister toutes les rotations du message (de la chaine de caractères).

Exemple :

DECODE
EDECOD
DEDECO
ODEDEC
CODEDE
ECODED

La seconde étape est de trier cette liste par ordre alphabétique.

Exemple :

1CODEDE
2DECODE
3DEDECO
4ECODED
5EDECOD
6ODEDEC

Le message chiffré est constitué des dernières lettres de chaque rotation. La clé associée est le rang trié du message original.

Exemple : Le message encodé est EEODDC. La clé est 2 (DECODE, le texte original, est sur la ligne 2 du tableau).

dCode n'accepte que les caractères ASCII (sans retour à la ligne)

Comment décoder par BWT ? (Principe de déchiffrement)

Le déchiffrement BWT nécessite de connaitre la clé et le message chiffré (et son nombre N de caractères).

Exemple : Soit le message EODC (4 caractères) et la clé 1

Etape A : initialiser un tableau vide avec N lignes et N colonnes.

Etape B : écrire le message chiffré dans la dernière colonne vide du tableau

Etape C : trier les lignes du tableau par ordre alphabétique

Répéter les étapes B et C autant de fois qu'il y a de lettres dans le message.

Exemple : Etat du tableau après chaque étape :

AB₁C₁B₂C₂B₃C₃B₄C₄
----
----
----
----
---E
---O
---D
---C
---C
---D
---E
---O
--EC
--OD
--DE
--CO
--CO
--DE
--EC
--OD
-ECO
-ODE
-DEC
-COD
-COD
-DEC
-ECO
-ODE
ECOD
ODEC
DECO
CODE
CODE
DECO
ECOD
ODEC

Une fois l'algorithme terminé, le message clair est situé à la ligne du tableau correspondant à la clé.

Exemple : A la ligne 1, après le dernier passage de l'algorithme, il y a le message clair CODE

Pourquoi BWT est utilisé en compression de données?

Le message codé a tendance a avoir des suites de lettres identiques qui sont répétées, ce qui facilite leur compression (via des algorithmes comme Run Length Encoding - RLE).

Comment reconnaitre le chiffre BWT ?

Le message a un nombre important de caractères répétés et un indice de coincidence normal.

Le message est parfois surcodé avec un codage de type RLE.

Comment déchiffrer BWT sans clé ?

La clé est en fait peu importante pour du texte intelligible car lors du déchiffrement toutes les lignes du tableau final sont en fait des rotations du texte original.

Quelles sont les variantes du chiffre BWT ?

BWT peut être utilisé sans clé, mais dans ce cas, la connaissance d'un caractère unique du texte original et sa position est nécessaire, par exemple en informatique le caractère EOF pour le dernier.

Quelle est la complexité de l'algorithme BWT ?

Plusieurs implémentations sont possibles mais les meilleures sont en $ O(n) $ pour la durée et $ O(n \log \sigma) $ (voire mieux) pour la mémoire. Avec $ n $ la taille en entrée et $ \sigma $ la taille de l'alphabet.

Quand BWT a-t-il été inventé ?

En 1994 par Michael Burrows et David Wheeler

Code source

dCode se réserve la propriété du code source de "Transformée de Burrows-Wheeler" en ligne. Sauf code licence open source explicite (indiqué CC / Creative Commons / gratuit), l'algorithme pour "Transformée de Burrows-Wheeler", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liée à "Transformée de Burrows-Wheeler" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou copier-coller, ou les accès API à "Transformée de Burrows-Wheeler" ne sont pas publics, idem pour un usage hors ligne, PC, tablette, appli iPhone ou Android ! Rappel : dCode est gratuit.

Besoin d'Aide ?

Rendez-vous sur notre communauté Discord dCode pour participer au forum d'entraide !
PS : Pour les messages codés, testez notre détecteur de chiffrement !

Questions / Commentaires

Grâce à vos remarques, réponses et commentaires pertinents, dCode peut développer le meilleur outil 'Transformée de Burrows-Wheeler', alors écrivez-nous c'est gratuit ! Merci !


Source : https://www.dcode.fr/transformee-burrows-wheeler
© 2021 dCode — La 'boite à outils' indispensable qui sait résoudre tous les jeux / énigmes / géocaches / CTF.
Un problème ?