Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 06-02-2007 19:28:37

vbnul
Membre
Inscription : 06-02-2007
Messages : 67

Test de Friedman

Bonjour,

Dans le cadre d'un TIPE je tente de mettre en oeuvre le test de Friedman en java.

Mon problème se trouve au niveau du calcul de l'incide de coïncidence d'un cryptogramme. J'applique à la lettre la formule donnée dans les livres et sur bibmath mais les résultats sont visiblement mauvais (l'indice obtenu est inversement proportionnel à la longueur de clé supposée).
D'autre part je trouve les mêmes résultats en utilisant ma calculette, ce qui m'amène à me demander si la formule est correcte, voir si l'applet de bibmath à ce sujet n'en utiliserai pas une autre (car lui trouve des valeurs intéressantes).

Bref, je ne sais plus trop où donner de la tête et aurais bien besoin d'un petit coup de pouce.

Voici mon code java ainsi que la formule que j'utilise :

[tex]P(c)=\frac{n-l}{l(n-1)}I_{L}+\frac{n(l-1)}{l(n-1)}I_{H}[/tex]
[tex]I_L[/tex] : Indice de coincidence du langage
[tex]I_H[/tex] : Indice du hasard

    public static double indiceCryptogramme(String str, int l, int nbcar, double indiceLang)
    {
        int n = str.length();
        return (((double)(n-l))/((double)(l*(n-1))))*indiceLang
                +((double)(n*(l-1)))/(((double)(l*(n-1)*nbcar)));
    }

Merci à ceux qui auront le courage d'y plonger le nez ainsi qu'au concepteur des applets de bibmath qui m'ont épargné pas mal de doute sur la méthode de Friedman.

Hors ligne

#2 06-02-2007 21:59:28

pascal
Membre
Inscription : 27-01-2007
Messages : 56

Re : Test de Friedman

Dans la formule P(c) que vous proposez, l'indice IH est multiplié à la seconde fraction et dans votre fonction indiceCryptogramme, j'imagine que le IH est appelé nbcar. Or, nbcar divise la seconde fraction il me semble... est-ce normal ?

Hors ligne

#3 06-02-2007 23:01:39

vbnul
Membre
Inscription : 06-02-2007
Messages : 67

Re : Test de Friedman

Oui car [tex]I_H = 1/26[/tex], 26 étant le cardinal de l'alphabet codé, c'est à dire les 26 lettres de A à Z dans la plupart des exemples. J'appelle donc la fonction avec 26 pour nbcar.
[tex]I_H[/tex] est noté [tex]I_a[/tex] sur bibmath.

Hors ligne

#4 08-02-2007 10:08:35

Fred
Administrateur
Inscription : 26-09-2005
Messages : 7 035

Re : Test de Friedman

Je confirme, l'applet de la bibmath utilise la formule du site....

Frédéric.

Hors ligne

#5 08-02-2007 12:45:55

vbnul
Membre
Inscription : 06-02-2007
Messages : 67

Re : Test de Friedman

J'ai réécrit ma fonction en utilisant la formule de la bibmath, à savoir :
[tex]I_c=\frac{(I_f-I_a)n+k(nI_a-I_f)}{k(n-1)}[/tex]

Ce qui donne le code suivant :

    public static double indiceCryptogramme(String str, int l, int nbcar, double indiceLang)
    {
        double n = (double)str.length();
        double k = (double)l;
        double If = indiceLang;
        double Ia = 1.0/(double)nbcar;

        return ((If-Ia)*n+k*(n*Ia-If))/(k*(n-1));
    }

Et toujours les mêmes résultats :
l=2 : 0.05922989388914285
l=3 : 0.05230652518552379
l=4 : 0.048844840833714265
l=5 : 0.04676783022262855
l=6 : 0.04538315648190474
l=7 : 0.04439410380995916
l=8 : 0.04365231430599998
l=9 : 0.04307536691403172

Ces résultats me semblent logiques car les 2 formules que j'ai testées donnent [tex]I_c[/tex] en fonction de la longueur du texte, de la longueur de la clé supposée, de l'indice de coincidence du langage et de l'indice du hasard.
Ainsi, si on prend 2 cryptogrammes d'un même texte mais obtenus avec des clés de longueur différentes, les paramètres cités ci dessus ne changent pas ! Les résultats sont donc toujours les mêmes quelle que soit la longueur de clé utilisée pour chiffrer.

J'ai l'impression que la formule du calcul de l'indice est fausse, l'ai-je comprise de travers ?
Pourrais-je jeter un oeil sur la fonction en question dans l'applet de la bibmath ?

Hors ligne

#6 10-02-2007 19:36:53

vbnul
Membre
Inscription : 06-02-2007
Messages : 67

Re : Test de Friedman

Je crois avoir compris, les résultats sont corrects mais il faut les comparer à l'indice de coïncidence du cryptogramme et non pas avec l'indice du langage.

Admin a écrit :

Je confirme, l'applet de la bibmath utilise la formule du site....

En êtes vous certain ? J'ai l'impression qu'elle utilise plutot l'attaque de Babbage (décrite sur Ars Cryptographica).

Hors ligne

#7 10-02-2007 22:32:53

Fred
Administrateur
Inscription : 26-09-2005
Messages : 7 035

Re : Test de Friedman

Bonjour,

  Je n'en suis pas certain, mais je ne peux pas le vérifier pour le moment,
car dans mes changements d'ordi et mes passages de Windows à Linux et vice-versa,
j'ai perdu le code source des applets de crypto (enfin, je dois en avoir un CD de sauvegarde,
mais dans les déménagements, c'est possible que celui-ci se soit égaré également!)

Fred.

Hors ligne

#8 07-03-2007 10:35:06

carrc88
Membre
Inscription : 07-03-2007
Messages : 8

Re : Test de Friedman

vas sur mon site,

http://perso.orange.fr/carrez.christophe/

à l'onglet "substitution polyalphabétique" ya tout un tas d'explications l'indice de coincidence ça peut beaucoup t'aider, pis à l'onglet "application du chiffre de vigenere" tu verras une application en java script qui se sert de l'indice de coincidence (puisqu'il s'agit d'une substitution polyalphabétique) tu peux t'amuser à jeter un oeil à la source (le programme ne trouve pas toujours le message mais il ne se trompe pas dans la taille de la clef, c'est à dire dans l'application de l'indice de coincidence. Par contre, il lui arrive de se tromper suite à l'analyse des fréquences parce qu'il est prévu pour déchiffrer des lipogrammes et c'est assez compliqué).

Hors ligne

#9 18-03-2007 12:57:36

vbnul
Membre
Inscription : 06-02-2007
Messages : 67

Re : Test de Friedman

Je suis maintenant certain que l'applet de la bibmath n'utilise pas la formule du site, les deux méthodes sont cependant basées sur l'indice de coïncidence.

Je n'ai pas lu ton site Christophe, le contenu est peut être intéressant mais la présentation est tellement horrible... et il est très mal affiché par firefox.

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
soixante dix-huit moins dix-sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums