Texte de couverture (Latin requis)
Capacité : ~0 caractères masquables
Message secret
Confusables
8 caractères
a e o p c y x i ↔ Cyrillique
Technique
Unicode swap
Confusables U+0430…
Traitement
100% local
Aucune donnée envoyée
Fonctionnement des homoglyphes, table Unicode des confusables et méthodes de détection.
Guide complet →Comment ça fonctionne
Algorithme Homoglyphes
8 lettres latines (a, e, o, p, c, y, x, i) possèdent des sosies cyrilliques/ukrainiens quasi-identiques visuellement : а е о р с у х і. L'encodeur convertit le message en binaire, puis pour chaque bit du message parcourt le texte de couverture : si le caractère courant est une des 8 lettres éligibles, il reste latin (bit 0) ou est remplacé par son sosie cyrillique (bit 1). Le décodeur reconnaît les cyrilliques (bit 1) et latins (bit 0) pour reconstruire les bits.
Capacité & limites
La capacité dépend du texte de couverture : environ 1 bit par occurrence des 8 lettres éligibles. Un texte anglais contient en moyenne ~35% de voyelles a/e/o/i — pour 800 caractères de couverture, on peut encoder ~35 bits ≈ 4 caractères de message. Limite principale : la table n'inclut que 8 lettres. Détectable par comparaison Unicode (une lettre latine et son sosie cyrillique ont des codepoints différents).
Les sosies cyrilliques sont-ils visuellement identiques ?▾
Presque. Dans la majorité des polices système (Arial, Helvetica, Times, system-ui), les glyphes sont indiscernables à l'œil nu. Certaines polices à empattements prononcés (Georgia, Palatino) montrent de légères différences de graisse sur le "a" ou le "e". En pratique, un lecteur humain ne les détecte jamais sans loupe.
Pourquoi seulement 8 lettres ?▾
Ces 8 lettres (a, e, o, p, c, y, x, i) sont les seules de l'alphabet latin ayant un équivalent cyrillique ou ukrainien suffisamment proche graphiquement. D'autres confusables Unicode existent (lettres grecques, IPA) mais leur rendu diffère plus visiblement selon la police.
Comment détecter cette technique ?▾
Tout éditeur affichant les codepoints Unicode révèle immédiatement la substitution : "a" latin = U+0061, "а" cyrillique = U+0430. La commande `diff` entre deux fichiers texte, ou un simple copier-coller dans un éditeur hex, suffit. La détection automatisée est triviale : un script de 5 lignes Python peut scanner tous les codepoints.