Logo EMF

114 - Chiffrement - Base64 et XOR

1. L'encodage Base64 : un alphabet de 64 caractères

Base64 représente des données binaires avec seulement 64 caractères, chacun codant 6 bits (2⁶ = 64). Clique sur une case pour voir son indice et ses 6 bits.

Clique sur une case de la table.

Les caractères

A–Z 26 caractères (indices 0 à 25)

a–z 26 caractères (indices 26 à 51)

0–9 10 caractères (indices 52 à 61)

+ / indices 62 et 63

= caractère de complément (« padding »), hors table

Quel intérêt ? Pourquoi l'utiliser ?

Uniquement des caractères imprimables et compatibles avec la majorité des systèmes.

On peut ainsi transmettre des données binaires (par exemple une image) dans un courriel ou sur une page Web.

Deux règles d'encodage

1. Si le nombre de bits n'est pas un multiple de 6, on complète avec des 0.

2. On groupe par 4 caractères Base64 et on complète le dernier groupe avec autant de = que nécessaire pour arriver à 4.

2. Encoder un texte pas à pas

Les caractères non ASCII (é, €…) occupent plusieurs octets en UTF-8 : ils produisent donc plus de bits à encoder.

3. Décoder du Base64

Le décodage fait le chemin inverse : chaque caractère redevient 6 bits, on regroupe par 8 bits et on retrouve les octets d'origine. Les bits en trop (complétés par des 0) sont ignorés.

Essaie aussi : SGk= · RU1G · EQ==

4. Le ET, le OU et le OU exclusif (XOR)

Clique pour inverser les bits. La ligne correspondante s'allume.

ET (AND)

Vrai uniquement si les deux sont vrais

OU (OR)

Vrai si au moins un des deux est vrai

OU exclusif (XOR)

Vrai si un, et un seul, est vrai

Sur un octet : bit à bit

Par défaut : A = 65 (« A ») et B = 80 (« P »), l'exemple du cours.

5. Chiffrer par manipulation de bits (XOR)

Détail bit à bit

6. Pour aller plus loin

Base64 n'est pas un chiffrement

C'est un encodage : il se décode sans clé, par n'importe qui. Il change la forme des données, pas leur confidentialité.

+ 33 % 3 octets (24 bits) deviennent 4 caractères.

Utilisé pour : courriels (MIME), data: URI (les logos de ces pages sont de petites images en Base64), certificats PEM, jetons JWT, armure ASCII de PGP.

Faiblesses du XOR à clé courte

Avec une clé d'un octet, il n'y a que 256 clés possibles : une attaque par force brute les teste toutes (comme les 25 clés de César).

Si l'on connaît un morceau du clair, on retrouve la clé :

Avec une clé répétée plus longue, l'analyse des fréquences casse le message.

Le masque jetable (Vernam)

XOR avec une clé vraiment aléatoire, aussi longue que le message et utilisée une seule fois : sécurité parfaite (Shannon, 1949).

Réutiliser la clé est fatal : C₁ ⊕ C₂ = M₁ ⊕ M₂, la clé disparaît et le texte fuit.

Comparer les encodages de texte

EncodageBits / caractèreAugmentation de tailleExemple
Hexadécimal4+ 100 %48 65 6C 6C 6F
Base325+ 60 %JBSWY3DP
Base646+ 33 %SGVsbG8=
Base64URL6+ 33 %« + » → « - », « / » → « _ »

Le XOR dans la vraie vie

Brique de base des chiffrements de flux et des modes d'AES (CTR, GCM), de la parité et du RAID, des sommes de contrôle. Seul, avec une clé courte, il ne protège presque rien.

ROT13, le décalage de 13 lettres, est un César : voir la page « Chiffrement de César ».

7. Défi CFC · Vérifie tes connaissances

Choisis une réponse par question. La correction apparaît immédiatement.