Rechercher un outil
Indice de Coïncidence

Outil pour calculer l'indice de coincidence (IC) en cryptanalyse afin d'évaluer la probabilité de répétition des lettres du message chiffré.

Résultats

Indice de Coïncidence -

Catégorie(s) : Cryptanalyse

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 ? Écrire à 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 !


Remarques et suggestions sont les bienvenues afin que dCode propose le meilleur outil 'Indice de Coïncidence' gratuit ! Merci !

Indice de Coïncidence

Cryptanalyse avec l'Indice de Coincidence






Réponses aux Questions (FAQ)

Qu'est ce que l'indice de coïncidence ? (Définition)

L'indice de coïncidence (IC ou IoC) est un indicateur utilisé en cryptanalyse qui permet d'évaluer la répartition globale des lettres dans un message chiffré pour un alphabet donné.

Un texte écrit en français a un indice de coïncidence de 0.0778. L'utilisation de certains chiffrements sur un message en français aura tendance à modifier cette valeur ce qui peut permettre de les reconnaitre. Voir l'outil de reconnaissance de chiffrement.

Comment se calcule l'indice de coincidence ?

L'indice de coïncidence utilise la formule :

$$ IC = \sum_{i=A}^{i=Z} \frac{n_{i}(n_{i}-1)}{N(N-1)} $$

avec $ n_i $ le nombre de fois ou la lettre $ i $ apparait dans le message et $ N $ le nombre total de lettres.

Cet indice a probablement été inventé par William F. Friedman.

Comment utiliser l'Indice de Coincidence ?

Pour un message chiffré donné, la valeur de l'IC permet de filtrer la liste de méthodes de chiffrement utilisées. C'est une technique de base en cryptanalyse.

Si l'indice de coincidence est grand (proche de $ 0.070 $), c'est à dire similaire à celui d'un message non chiffré, alors le message a probablement subi une transposition (lettres déplacées) ou substitution monoalphabetique (une même lettre ne peut être remplacée que par une seule autre).

Si l'indice de coincidence est faible (proche de $ 0.0385 $), c'est à dire similaire à une répartition aléatoire, alors le message a probablement subi un chiffrement polyalphabétique (une même lettre peut être remplacée par plusieurs autres).

Plus l'indice est faible, plus le nombre d'alphabets utilisés est grand.

Exemple : Le chiffre de Vigenère avec une clé entre 4 et 8 lettres aura un IC d'environ $ 0.045 \pm 0.005 $

Quelles sont les valeurs de l'IC en fonction des langues ?

Pour un texte non chiffré les index de coincidence sont

Français0.0778Anglais0.0667
Allemand0.0762Espagnol0.0770
Italien0.0738Russe0.0529

Qu'est ce qu'une répartition aléatoire des lettres ?

Un texte ou chaque lettre a autant de probabilité d'apparaitre qu'une autre, l'IC est alors de $ 1/N $ (avec $ N $ le nombre de lettres de l'alphabet)

Exemple : $ IC = 0.0385 $ pour $ N=26 $

Comment calculer une taille de clé à partir de l'IC ?

Dans le cas où plusieurs alphabets sont utilisés et que la taille de la clé détermine le nombre d'alphabets (comme pour le chiffre de Vigenere), en notant $ n $ le nombre total de lettres dans le message et $ m $ la taille de la clé, un nouvel indice de coincidence peut être calculé par la formule :

$$ IC = \frac{n-m}{m(n-1)}} \cdot IC_{\text{lang}}} + \frac{n(m-1)}{(n-1)m} \cdot 0.0385 $$

Comment programmer une fonction IC ? (Algorithme)

Exemples de codes dans les langages de programmations : // Python
def ic(self):
num = 0.0
den = 0.0
for val in self.count.values():
i = val
num += i * (i - 1)
den += i
if (den == 0.0):
return 0.0
else:
return num / ( den * (den - 1))

Code source

dCode se réserve la propriété du code source pour "Indice de Coïncidence". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Indice de Coïncidence", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Indice de Coïncidence" (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 les accès API à "Indice de Coïncidence" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.

Citation

Le copier-coller de la page "Indice de Coïncidence" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Indice de Coïncidence sur dCode.fr [site web en ligne], consulté le 21/11/2024, https://www.dcode.fr/indice-coincidence

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

Remarques et suggestions sont les bienvenues afin que dCode propose le meilleur outil 'Indice de Coïncidence' gratuit ! Merci !


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