Annonce

Réduire
Aucune annonce.

Le chiffre de Vigenère

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Le chiffre de Vigenère

    L'hétéroclite Blaise de Vigenère, né il y a près d'un demi millénaire, inventa un algorithme de cryptographie qui ressemble au chiffre de César, mais dans une forme bien plus évoluée.

    Il demeure très simple, au demeurant, en comparaison avec les algos du XXe et XXI siècle, cela va de soi. Cependant, si l'on parle du Chiffre de César, on ne peut pas ne pas parler du chiffre de Vigenère !

    La différence en le chiffre de César et celui de Vigenère :

    Dans celui de César, le décalage utilisé (la clé) est ferme tandis que celui de Vigenère s'incrémente de lettre en lettre, ce qui le rend bien plus complexe à déchiffrer (quand on ne connait pas le principe évidemment, et surtout pour l'époque, encore une fois). De surcroit, la clé du chiffre de césar était associée à un chiffre (ou un nombre ; de 1 à 25), tandis que celui de Vigenère est associé à une clé écrite (un mot, ou une phrase). Sans avoir la clé... Et sans savoir qu'il s'agit de l'algorithme de Vigenère... Ca parait quelque peu compliqué plus complexe que le chiffre de César, n'est-ce pas ..?!!

    Présentation du Chiffre de vigénère sous forme tabulaire :



    Vous voyez donc clairement l'incrémentation, et saisissez directement le principe.

    26 alphabets :

    - L'alphabet horizontal (en bleu) est la clé.
    - L'alphabet vertical (en rose) est le texte à chiffrer.
    - Les lettres situées aux intersections sont donc le code chiffré.

    Ensuite, il suffit donc de :

    - Choisir une phrase à chiffrer.
    - Choisir une clé.

    Pour l'exercice, nous allons utiliser :

    - Comme phrase à chiffrer : BIENVENUE SUR THE HACKADEMY
    - Comme clé : VIGENERE

    Cela va donc nous donner ceci :

    BIENVENUE SUR THE HACKADEMY
    VIGENEREV IGE NER EVIGENEREV


    On répète tout simplement la clé tant qu'il y a du texte

    Simple n'est-ce pas ?

    Donc, désormais, chiffrons ce code grâce avec l'algorithme de Vigenère.

    Cela va nous donner :

    BIENVENUE SUR THE HACKADEMY
    WQKZIIEYZ AYV GLV MVKQEHVQT


    Nous voyons bien la "robustesse" de cet algorithme en remarquant que la lettre E, inclue 5 fois dans notre phrase à crypter, a été changée respectivement en :

    E1 : K
    E2 : I
    E3 : Z
    E4 : V
    E5 : V


    --EOF--
    Dernière modification par comaX, 20 novembre 2011, 14h57.
    sigpic

    Cyprium Download Link

    Plus j'étudie plus j'me rends compte que je n'sais rien.

    †|

  • #2
    Il existe une très bonne librairie en python pour traiter (entre autre) avec ce genre de chiffrement: PyCrypto.
    Un exemple d'application, un cracker en ligne de code Vigenère qui se base sur de l'analyse fréquentielle. Excellent: http://smurfoncrack.com/pygenere/index.php

    Commentaire


    • #3
      Merci pour PyCrypto Grabeu, mais, lorsque je rentre WQKZIIEYZ AYV GLV MVKQEHVQT il ne me trouve pas du tout BIENVENUE SUR THE HACKADEMY... :|

      Lien de téléchargement de Pycrypto ici :

      https://www.dlitz.net/software/pycrypto/
      sigpic

      Cyprium Download Link

      Plus j'étudie plus j'me rends compte que je n'sais rien.

      †|

      Commentaire


      • #4
        Ca se base sur de l'analyse fréquentielle. Si le message est à peu près aussi long que la clé, ça ne marcheras pas. Il faut je dirai à la louche un message qui fasse 6-7 fois la longeur de la clé (enfin, c'est des maths à l'arrache ce que je fais là )

        Ex (caricatural sur la longeur):

        Gos iodmi, ze p svx cà ne tbqvno qpyg wv tpyivysuxv; v'vgu-à-hzkv evi gxigprex us me jhtwéué rv lv gpymxeojx ux j'êhsi atdojw thczé vrv irffmcev wohzzvgumfg jis pr vfbtgzxeqf. Kvkmojwv, égffni, ktjgéf wlk cst gfnust, qrgxsbmk wv ussj fffdirno rf fcteq, oi gtizbrk irg, ei gxlf, ei gxirsi lgv ppytaév; su icev éhbmk lvimidxeh vr gxl vprkxlgf hvorbu Kfnasu, ieglméf hv lv aprkkvf bmelz, umslmfboi thdaf yex tvbxkx. Xcvnvm, u'ojpcxlft, w'vfgzjwjtzh uvfi cij-qêdx, à co wszk kcvxv kfgf hv gfisvzmlff. Tlbj, rbrj lr upyifrbemjx, vzmi ixjhbmk lz ufrkbczf ik lz pprex ! Vzmi ex gosprbk dbw, dtzg fpcx js eévrgxsbmk à vyoryv begueem, gcvv jhzuoii ev dèsi Skl su plb gotwvk hifphnv qisjx us eépzvrh tyi lfb bwjbvhui. T'émrwu qêdx kcvgyteh ei ixxoshvk tsuxv zfisqrgus t'ieevjfv lg scvx u'tzzf hv er ppytav, dpyi ev rprexi ov zzxll, ryz gv gfqserwu trl tcorrbjgfyi xk evm rorzbmk mfiu, pr mêks cejlv, &pêum ux koox sâyiss, plb ucox cx xégjii tmojx gxirv pv zfûh ey gtzb. Mij Effjpcxll qejlrwfrk evis vrzv gvv cx iôhj; mcl vb qvvgrwfrk ifis xihzg kslkj, wmw rniojiem vbhpfnkw mi gerh, me ktszf ik er ppykbhif, ewbe rf vlbess pr Urbcee wl qpyg. Mfiuij evg eedxj owezxeh wslel rf pr vrfdejlv; zb grktotwv, v'vgu pv fffdirn ust hrfvg. Nqv Evfbx, Dfv Ppgyx, Daf Tlmfwt kitkhbmvgk rfw fl, koohzl hif qrfrb Dslivov, ulb rrpvrbk zf gfn, vb bvittvbmk er jjeewv owit lvg eilq ussrzèkvg eiemj.
        Dernière modification par Grabeu, 23 août 2011, 20h25.

        Commentaire


        • #5
          Testé sur python 2.7

          Code:
          # -*- coding:utf8 -*-
          
          from string import ascii_uppercase
          
          def vigenere(c,k,e=1):
          # e=1 cryptage, e=-1 decryptage
              wk=[ascii_uppercase.find(ch) for ch in k.upper()]
              wc=[ascii_uppercase.find(ch) for ch in c.upper()]
          
          
              wc = [ (x[0]+(e*x[1]))%26 for x in zip(wc,wk*(len(wc)/len(wk)+1))]
          
              print ''.join([ascii_uppercase[x] for x in wc])
              
          vigenere("BIENVENUE SUR THE HACKADEMY", "VIGENERE") # cryptage WQKRIIEYZHYYEDKLZHNEPORHZUE
          vigenere("WQKRIIEYZHYYEDKLZHNEPORHZUE", "VIGENERE", -1) #decryptage BIENVENUESURTHEHACKADEMY

          Commentaire


          • #6
            Ahahah, Fred, doucement, ça va venir Ahahah !!! Toi déjà sur DVZ j'te sentais chaud mais là ça se confirme Super !
            sigpic

            Cyprium Download Link

            Plus j'étudie plus j'me rends compte que je n'sais rien.

            †|

            Commentaire


            • #7
              Wah, connaissait pas la fonction zip(). Bien utile pour les chiffres a clé ^^

              Commentaire


              • #8
                Envoyé par Luxerails Voir le message
                Wah, connaissait pas la fonction zip(). Bien utile pour les chiffres a clé ^^


                WWaahh ... Fonction !


                ps: ce n'est pas un troll, ça vient du coeur :-) merci !
                sigpic

                Commentaire


                • #9
                  Envoyé par Grabeu Voir le message
                  Gos iodmi, ze p svx cà ne tbqvno qpyg wv tpyivysuxv; v'vgu-à-hzkv evi gxigprex us me jhtwéué rv lv gpymxeojx ux j'êhsi atdojw thczé vrv irffmcev wohzzvgumfg jis pr vfbtgzxeqf. Kvkmojwv, égffni, ktjgéf wlk cst gfnust, qrgxsbmk wv ussj fffdirno rf fcteq, oi gtizbrk irg, ei gxlf, ei gxirsi lgv ppytaév; su icev éhbmk lvimidxeh vr gxl vprkxlgf hvorbu Kfnasu, ieglméf hv lv aprkkvf bmelz, umslmfboi thdaf yex tvbxkx. Xcvnvm, u'ojpcxlft, w'vfgzjwjtzh uvfi cij-qêdx, à co wszk kcvxv kfgf hv gfisvzmlff. Tlbj, rbrj lr upyifrbemjx, vzmi ixjhbmk lz ufrkbczf ik lz pprex ! Vzmi ex gosprbk dbw, dtzg fpcx js eévrgxsbmk à vyoryv begueem, gcvv jhzuoii ev dèsi Skl su plb gotwvk hifphnv qisjx us eépzvrh tyi lfb bwjbvhui. T'émrwu qêdx kcvgyteh ei ixxoshvk tsuxv zfisqrgus t'ieevjfv lg scvx u'tzzf hv er ppytav, dpyi ev rprexi ov zzxll, ryz gv gfqserwu trl tcorrbjgfyi xk evm rorzbmk mfiu, pr mêks cejlv, &pêum ux koox sâyiss, plb ucox cx xégjii tmojx gxirv pv zfûh ey gtzb. Mij Effjpcxll qejlrwfrk evis vrzv gvv cx iôhj; mcl vb qvvgrwfrk ifis xihzg kslkj, wmw rniojiem vbhpfnkw mi gerh, me ktszf ik er ppykbhif, ewbe rf vlbess pr Urbcee wl qpyg. Mfiuij evg eedxj owezxeh wslel rf pr vrfdejlv; zb grktotwv, v'vgu pv fffdirn ust hrfvg. Nqv Evfbx, Dfv Ppgyx, Daf Tlmfwt kitkhbmvgk rfw fl, koohzl hif qrfrb Dslivov, ulb rrpvrbk zf gfn, vb bvittvbmk er jjeewv owit lvg eilq ussrzèkvg eiemj.
                  C'est un véritable assommoir, ce texte absolument incompréhensible, ça donne envie de faire un festin ! xD
                  sigpic

                  Commentaire

                  Chargement...
                  X