Aussi disponible en : English · Español · Português · العربية
L’alphabet cyrillique
Les 33 lettres russes avec leurs points de code, celles qu’ajoutent les autres langues slaves, et celles qui imitent le latin.
Qu’est-ce que l’alphabet cyrillique ?
Le cyrillique sert à écrire le russe, l’ukrainien, le bulgare, le serbe, le macédonien, le biélorusse et des dizaines de langues d’Eurasie. Il descend de l’onciale grecque par la Bulgarie du neuvième siècle, ce qui explique que plusieurs de ses lettres soient grecques et non latines d’origine, et que quelques-unes ne ressemblent ni aux unes ni aux autres.
Il n’existe pas un alphabet cyrillique unique, et autant le dire d’emblée. Le russe emploie 33 lettres et c’est l’ensemble auquel presque tout le monde pense, mais l’ukrainien possède і, ї, є et ґ, le serbe ј, љ, њ, ћ et џ, et le bulgare se passe de deux lettres que le russe conserve. Le tableau ci-dessus place d’abord les 33 russes puis les lettres des autres alphabets, car présenter l’ensemble d’une langue comme l’alphabet est l’erreur que commet presque toute liste.
Deuxième point : l’alphabet russe n’est pas une plage nette dans Unicode. Trente-deux de ses majuscules se suivent de U+0410 à U+042F, et la trente-troisième, le Ё, se trouve loin de là, en U+0401, parmi des lettres que le russe n’emploie même pas. Qui génère cet alphabet à partir d’une plage obtient 32 lettres et perd le Ё sans la moindre erreur, et c’est pourquoi la liste présentée ici est construite depuis la base de données des caractères plutôt que comptée à la main.
Comment utiliser cette page
- Cherchez dans le tableau la lettre qu’il vous faut. Chaque ligne donne la majuscule et la minuscule, le nom de la lettre, les deux points de code et la lettre latine avec laquelle on peut la confondre, s’il y en a une. Les points de code sont ce dont vous avez besoin lorsqu’une lettre doit survivre à un copier-coller vers un système qui stocke des octets et non des formes.
- Consultez le second tableau avant de tenir une lettre pour russe. Les treize lettres qui y figurent sont employées par l’ukrainien, le serbe, le macédonien ou le biélorusse, et non par le russe. Si vous transcrivez un nom ou un toponyme, cette distinction est le plus souvent précisément ce qui compte.
- Collez dans le vérificateur tout texte suspect. Il signale chaque caractère qui est une lettre cyrillique déguisée en latine, affiche la position et le point de code de chacune, et écrit ce que le texte donne une fois les imitations résolues. Il indique aussi si la chaîne mêle des alphabets, ce qui est la partie qu’il faut comprendre.
Les sosies, comptés et non supposés
Le cyrillique est l’alphabet qui donne son nom aux attaques par homographes : on s’attend donc à ce qu’il compte plus de sosies latins que tout autre. Mesuré sur confusables.txt, la table qu’Unicode publie derrière ses recommandations de sécurité et que les registres consultent effectivement, ce n’est pas le cas. Treize majuscules russes et neuf minuscules sont marquées confondables avec une lettre latine de base, soit vingt-deux en tout. Le grec, que ce site a mesuré de la même façon, en compte quatorze en majuscules et huit en minuscules, vingt-deux également, et il devance le cyrillique sur les majuscules.
Le décompte est donc à égalité, et la raison pour laquelle le cyrillique domine en pratique est ailleurs : dans les lettres que les sosies couvrent. Les minuscules cyrilliques peuvent tenir lieu de a, c, e, o, p, r, w, x et y. Les grecques couvrent a, i, o, p, u, v et y. Ces neuf substituts cyrilliques comprennent c, e, r et w, et cela suffit à bâtir des mots entiers plutôt qu’à remplacer une lettre à l’intérieur.
Confronté à un vrai dictionnaire, l’écart est frappant. Sur les 167 968 mots de la liste ENABLE que ce site emploie pour ses jeux de lettres, 394 peuvent s’écrire entièrement avec des sosies cyrilliques et seulement 43 avec des sosies grecs, un facteur d’environ neuf. Care, acre, carp, opera, reappear et preparer appartiennent à l’ensemble cyrillique. Score non, car le s n’a pas d’imitateur cyrillique, et apple non plus, car le l n’en a pas.
Voilà ce qui rend l’écart dangereux et pas seulement curieux. La parade bon marché et courante contre ce type d’usurpation consiste à vérifier le mélange d’alphabets : si une chaîne contient à la fois des caractères latins et cyrilliques, quelque chose cloche. Un mot écrit entièrement en cyrillique ne contient aucun caractère latin : c’est donc un texte parfaitement cohérent d’un seul alphabet, et ce contrôle n’a rien à en dire. Le vérificateur ci-dessus le démontre : le mot sur lequel il s’ouvre ne mêle aucun alphabet, et ce n’est pas le mot qu’il paraît être.
Limites honnêtes
Les paires confondables proviennent de la table d’Unicode et non du jugement de quiconque sur ce qui se ressemble, et cette table parle de formes isolées. Que deux caractères soient réellement indiscernables dépend de la police dans laquelle vous lisez, et quelques paires qu’Unicode marque comme confondables se distinguent fort bien dans un caractère à forte hauteur d’x ou à empattements marqués. Prenez cette colonne pour la réponse de la norme, non pour une promesse concernant votre écran.
La normalisation n’aide en rien, et il faut le dire nettement car c’est le premier réflexe. Les formes normales d’Unicode servent à unifier des caractères canoniquement ou compatiblement identiques, et une lettre cyrillique n’est pas le même caractère qu’une latine qui lui ressemble par hasard. Ni NFC ni NFKD ne les fusionnent : le réflexe normaliser-puis-comparer n’attrape donc rien de tout cela.
La page ne couvre par ailleurs que les sosies du latin de base. Les caractères cyrilliques peuvent imiter des chiffres, des signes de ponctuation et des lettres d’autres alphabets, et confusables.txt recense bien plus de paires que celles montrées ici. Se limiter de A à Z garde le tableau lisible et correspond à ce que l’on demande d’ordinaire, mais c’est une restriction.
Enfin, ceci est une référence et un vérificateur, non un contrôle de sécurité. Savoir qu’une chaîne contient des homoglyphes vous dit qu’elle est suspecte ; cela ne vous dit pas qu’un domaine est hostile, et quantité de textes parfaitement légitimes mêlent les alphabets. Les vraies défenses résident dans les navigateurs et les registres, qui appliquent des règles de mélange d’alphabets, des jeux de caractères autorisés par registre et des politiques d’affichage qu’aucune page ne saurait reproduire.
Pourquoi est-ce gratuit ?
Parce que c’est un tableau et un peu d’arithmétique. Rien de ce que vous collez dans le vérificateur n’est envoyé, journalisé ni conservé : les données de caractères accompagnent la page et la comparaison se fait dans votre navigateur, ce qui importe ici plus qu’ailleurs, puisque ce que l’on colle naturellement est justement un domaine ou un identifiant dont on se méfie déjà.
Il n’y a donc ni compte, ni inscription, ni rien de réservé. Les lettres et leurs noms viennent de la base de données des caractères d’Unicode et les sosies de confusables.txt, régénérés par un script déposé à côté de la page, avec 70 vérifications qui en attestent le résultat.