Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 04-01-2019 06: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 07: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 20: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 19: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.
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 15: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 :
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
Pages : 1