Indice de Coïncidence

Ce calculateur en ligne calcule l'indice de coïncidence (IC) pour le texte donné

Voici le calculateur qui calcule l'indice de coïncidence, ou IC pour le texte donné. Vous pouvez lire la description de ce qu'est l'indice de coïncidence et de la manière dont il est calculé en-dessous du calculateur.

PLANETCALC, Indice de Coïncidence

Indice de Coïncidence

Chiffres après la virgule décimale : 4
Indice de Coïncidence
 
Indice de Coïncidence normalisé
 

L'indice de coïncidence

L'indice de coïncidence est la probabilité que deux lettres sélectionnées aléatoirement soient égales. William F. Friedman a proposé cette mesure en premier en 1922 dans la publication Revierbank Publication N°22 intitulée "L'Indice de Coïncidence et son application en Cryptographie". En 1967, l'historien David Kahn a écrit.

La publication de Revierbank N°22, écrite en 1920, lorsque Friedman avait 28 ans, doit être considérée comme l'une des publications simples les plus importantes en cryptographie. Elle a amené la science vers un nouveau monde. 1

Avec la définition ci-dessus, on peut concevoir la formule pour l'IC.
Prenons N comme la longueur du texte.
Prenons n comme la taille de l'alphabet.
Prenons a_i comme la i-ème lettre de l'alphabet.
Prenons F_i comme le nombre d'occurrences de la i-ème lettre dans le texte.

Alors la probabilité d'avoir deux a_i sélectionnées est p_i=\frac{F_i*(F_i-1)}{N*(N-1)}
La probabilité totale (qui est l'IC) est la somme des probabilités pour chaque lettre :
IC=\frac{1}{N*(N-1)}*\sum^{n}_{i=1}F_i*(F_i-1)

Notez que l'IC est parfois "normalisé". Ceci est généralement fait en multipliant le résultat par n - la taille de l'alphabet.
IC_{normalisé}=\frac{n}{N*(N-1)}*\sum^{n}_{i=1}F_i*(F_i-1)

Le calculateur ci-dessous analyse le texte et calcule l'IC en utilisant les formules ci-dessus. Vous pouvez également lire pourquoi cela est aussi important en-dessous du calculateur.

Pourquoi l'Indice de Coïncidence est-il si important ?

Il est important, car nous pouvons calculer l'indice de coïncidence attendu pour des langages donnés en utilisant la fréquence des lettres du langage. Avec la fréquence des lettres comme p_i, nous pouvons approximer le F_i comme p_i*N. Ce qui nous donne la formule suivante :
IC_{attendu}=\frac{1}{N*(N-1)}*\sum^{n}_{i=1}F_i*(F_i-1)\\=\frac{1}{N*(N-1)}*\sum^{n}_{i=1}(p_i*N)*(p_i * N - 1)\\=\sum^{n}_{i=1}p_i*\frac{p_i*N-1}{N-1}
Si N est assez grand, alors nous pouvons approximer la fraction \frac{p_i*N-1}{N-1} comme p_i, ce qui nous donne
IC_{attendu}=\sum^{n}_{i=1}p_i^2

Nous pouvons également calculer l'indice de coïncidence attendu pour un texte complètement aléatoire - où toutes les lettres ont la même fréquence de 1/n. C'est en effet 1/n.

En ayant l'indice de coïncidence attendu, vous pouvez rapidement estimé le texte codé si vous suspectez qu'il a été produit par l'un des codes "classiques". Si l'indice de coïncidence est élevé et proche de l'IC attendu pour le langage, alors le texte a probablement été codé en utilisant un code de transposition ou en code par substitution simple (monoalphabétique). Sinon, si l'indice de coïncidence est faible et proche de l'IC attendu pour un texte aléatoire, alors le texte a probablement été codé en utilisant un code polyalpabétique.

Selon Wikipédia,

L'indice de coïncidence est utilise pour l'analyse de texte en clair en langage naturel et de texte codé (cryptanalyse). Même lorsque seul le texte codé est disponible pour les tests et lorsque les identités des lettres du texte en clair sont déguisées, la coïncidence du texte en clair sous-jacence peut engendrer la coïncidence dans le texte codé. Cette technique est utilisé pour la cryptanalyse du chiffre de Vigenère par exemple. Pour un code polyalphabétique avec une clef répétée, organisé sous la forme d'une matrice, le taux de coïncidence au sein de chaque colonne sera généralement plus élevé lorsque la largeur de la matrice est un multiple de la longueur de la clef, et ce fait peut être utilisé pour déterminer la longueur de la clef, ce qui est la première étape pour craquer le système. Le nombre de coïncidences peut aider à déterminer lorsque deux textes sont écrits dans le même langage en utilisant le même alphabet. Cette technique a été utilisée pour examiner le code présumé de la Bible. Le nombre de coïncidences causales pour de tels textes sera distinctement plus élevé que le nombre de coïncidences accidentelles pour des textes dans des langages différents ou pour des textes utilisant des alphabets différents ou alors pour des textes incompréhensibles.2


  1. David Kahn, Le Briseur de Codes, Macmillan, 1967. 

  2. Indice de Coïncidence 

URL copiée dans le presse-papiers
PLANETCALC, Indice de Coïncidence

commentaires