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 04-01-2019 05:42:15

Krayon
Invité

cryptage efficacité

Bonjour à toutes et à tous,

M'initiant à la programmation en Python, j'ai eu l'idée de réaliser un programme de codage.

J'ai utilisé cette méthode (cf. ci-dessous) et j'aimerais votre avis sur son "efficacité".
Peut être pourriez-vous m'indiquer un site où l'on peut essayer de décrypter des textes...

Voici ma méthode :

Caractères possibles dans le message : abcdefghijklmnopqrstuvwxyz0123456789
Table de codage/décodage : {a=1, b=2, c=3, ..., x=24, y=25, z=26, 0=27, 1=27, 2=28,  ..., 7=34, 8=35, 9=36}

Entrez un texte  : jaienfinfinidecodermonprogrammedecryptage
Entrez une clé   : fk45lch34

texte crypté : pldaziqhaoyd9qfw79xxjj1uwamgxhaphkltv45cq


Comment crypter:
1) 1ère lettre du texte = j ; j=10 (cf. table de codage complète)
   1ère lettre de la clé = f ; f=6
2) 10+6=16 ; 16=p
3) la lettre 'j' devient 'p'
4) recommencer en décalant le texte ainsi que la clé d'une position

Remarques:
- si on arrive à la fin de la clé, recommencer au début
- si le nombre issu de l'addition est plus grand que 36, lui soustraire '36' jusqu'à ce qu'il soit
  petit ou égal à 36, puis coder (ex. 42 ; 42-36=6 ; ce qui donne 'f')

Comment décrypter:
1) 1ère lettre du texte crypté = p ; p=16 (cf. table de codage complète)
   1ère lettre de la clé = f ; f=6
2) 16 = ? + 6 ; réponse = 10
3) 10=j ; la lettre 'p' devient 'j'
4) recommencer en décalant le texte crypté ainsi que la clé d'une position

Remarques:
- si on arrive à la fin de la clé, recommencer au début

Qu'en pensez-vous ? Est-ce trop "simpliste" ?

Merci d'avance de vos réponses.
Meilleures salutations.

Yvan

#2 04-01-2019 06:40:29

Pmimo
Invité

Re : cryptage efficacité

Cette méthode s'appel le chiffre de Vigenère, et pour sa robustesse, elle est assez faible, il existe de bien meilleurs algorithme de chiffrement symétrique que celui-ci.

#3 04-01-2019 19:08:09

KRAYON70
Invité

Re : cryptage efficacité

Hello,

Merci pour la réponse.
Je croyais que la technique de cryptage de Vigenère utilisait deux nombres avec un modulo pour calculer un décalage...
La méthode que j'ai utilisée est-elle décryptable au moyen d'un ordinateur sans que cela dure 20 ans... Je veux dire que toutes les méthodes de cryptages sont théoriquement "cassables" mais il faut prendre en compte le facteur temps...

Serais-tu capable, par exemple, au moyen d'un algorithme de décrypter mon message ?

Amicales salutations.

Yvan

#4 06-01-2019 18:46:59

Rossignol
Membre
Inscription : 19-06-2015
Messages : 290

Re : cryptage efficacité

Bonjour Krayon,

Je confirme, il s'agit bien d'un chiffre de Vigenère avec un alphabet de 36 lettres.

Krayon a écrit :

La méthode que j'ai utilisée est-elle décryptable au moyen d'un ordinateur sans que cela dure 20 ans...

Oh oui ! J'ai écrit un IPython notebook sur le décryptement d'un chiffre de Vigenère par force brute.

La faiblesse de ce chiffre est la répétition périodique de la clé.

Le moyen de pallier cette faiblesse est d'utiliser une clé apériodique de même longueur que le texte clair. Et pour une sécurité maximum il faut que cette clé soit aléatoire.

Si on prend la clé dans un livre par exemple, bien qu'il n'y ait plus de périodicité, le chiffre reste faible.

Il y a quelque temps, Klaus Schmeh a proposé sur son blog trois cryptos chiffrés en Vigenère avec une clé indéfinie [running key cipher] : les trois cryptos ont été cassés.

Hormis le masque jetable, point de salut :-)

@+

Hors ligne

#5 23-02-2019 14:23:33

LeSingeMalicieux
Membre
Inscription : 18-01-2015
Messages : 84

Re : cryptage efficacité

Bonjour Yvan,

Sans vouloir rien ôter à l'excellente réponse de Rossignol, je souhaitais apporter quelques informations complémentaires, et notamment répondre à cette question :

KRAYON70 a écrit :

Je croyais que la technique de cryptage de Vigenère utilisait deux nombres avec un modulo pour calculer un décalage...

C'est exactement ce que ta méthode fait. En effet, pour chiffrer tu convertis la lettre claire ainsi que la lettre de la clef en nombres (le rang dans ton alphabet de 36 caractères) avant de les additionner modulo 36.
La seule différence entre ta méthode et un chiffre de Vigenère (hormis le nombre de caractères de l'alphabet utilisé) est que tu numérotes les éléments de l'alphabet de 1 à 36, alors que le chiffre de Vigenère les numéroterait de 0 à 35. Ce qui est d'ailleurs plus adapté mathématiquement parlant à un modulo 36, qui renvoie toujours une valeur comprise entre 0 et 35.

Ainsi, en déchiffrant ton cryptogramme avec un chiffre de Vigenère et avec un alphabet étendu à 36 caractères, on obtient un résultat dont tous les caractères ont un décalage de 1 dans l'alphabet par rapport à la réponse attendue. Un César de 1 sur ce résultat donne alors la réponse attendue.

De même, en le décryptant, on en ressort la clef GL56MDI45, qui est identique à la tienne avec un décalage de 1 dans l'alphabet.


Tout comme Rossignol, je me suis créé un p'tit outil maison (avec Excel) pour attaquer ce genre de méthode. Il est largement perfectible, et au vu de la petite longueur de ton cryptogramme (par rapport à la longueur de la clef) ne m'a pas donné un résultat optimal, puisque sur 9 éléments de la clef il n'en a trouvé que 4. Mais avec un cryptogramme un peu plus long je pense qu'il n'y aurait pas de souci.


Je souhaitais également ajouter que ta méthode de chiffrement consiste à additionner la lettre claire avec la lettre de la clef (ou plutôt additionner leurs rangs alphabétiques), ce que fait le chiffre de Vigenère.
Il est également possible de :
- soustraire la lettre du texte clair à la lettre de la clef : cela correspond à un chiffre de Beaufort.
- soustraire la lettre de la clef à la lettre du texte clair : cela correspond à la variante dite à l'allemande du chiffre de Beaufort.

Ces trois méthodes sont complémentaires et s'analysent (et se décryptent) de la même manière.


Amicalement


PS : Sauf erreur de ma part, il y a un souci dans ton cryptogramme, une lettre est incorrecte, puisque le déchiffrement donne :
J AI ENFIN FINI DE CODER MON ZROGRAMME DE CRYPTAGE

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)?
cinquante deux plus neuf
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