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 Cryptographie » Recherche d'un algorithme de chiffrement à la main sûr » 29-06-2020 21:49:15

Elerias
Réponses : 0

Bonjour à tous, passionés de cryptologie !

Aujourd'hui, avec l’avènement puissance de l'informatique, la cryptographie moderne a définitivement triomphé sur la cryptographie classique "au papier et au crayon". Elle permet en effet d'atteindre des niveaux de sécurité surprenants. Un algorithme de chiffrement moderne est dit sûr s'il résiste aux 4 attaques suivantes. On considère, conformément au deuxième principe de Kerckhoffs que l'attaquant connaît l'algorithme de chiffrement.
- l'attaque à texte chiffré seul : à partir d'un texte ou d'un ensemble de textes chiffrés avec la même clé, l'attaquant peut retrouver la clé et donc le texte en clair.
- l'attaque à texte clair connu : à partir de textes ou de portions de texte chiffrés avec la même clé et avec leur correspondance, l'attaquant peut retrouver la clé.
- l'attaque à texte clair choisi : l'attaquant peut obtenir la version chiffrée de n'importe quel échantillon de texte en clair. Il peut, à partir des informations obtenues, retrouver la clé.
- l'attaque à texte chiffré choisi : l'attaquant peut obtenir la version en clair de n'importe quel échantillon de texte chiffré. Il peut, à partir des informations obtenues, retrouver la clé.

Quand on dit résister, cela signifie, qu'il est pratiquement ou mathématiquement impossible de retrouver la clé en un temps "court" (inférieur à plusieurs milliards d'années avec la puissance de tous les ordinateurs du monde).

AES (Advanced Encryption Standard) est la norme actuelle en terme de chiffrement symétrique, il est totalement sûr à ce jour.

Mais je me demandais à quel point en était la cryptographie classique. Vous me demanderez peut-être pourquoi s'en soucier. Je pense qu'il se peut qu'elle puisse être utile dans certaines situations. Par exemple, si dans quelques années, on apprend que tous les appareils électroniques sont surveillés (c'est peut-être déjà un peu le cas ...), il faudra trouver un autre moyen de garder une communication privée sûre. Et même si cela n'arrive pas, on peut toujours chercher pour la beauté de cet art qu'est la cryptologie.
La question est la suivante : Existe-t-il aujourd'hui des chiffrements que l'on peut implanter à la main en un temps raisonnable et qui sont sûrs, au moins pour les deux premières attaques (à texte chiffré seul et à texte clair connu) ?

Plus précisément, je cherche un système de chiffrement qui satisfasse les conditions suivantes :

1. Il doit respecter les principes de Kerckhoffs, excepté celui qui stipule que le chiffrement doit être adapté pour la télégraphie, qui n'est plus réellement d'actualité, notamment :
- le deuxième : la sécurité doit reposer sur la clé et non sur l'algorithme de chiffrement lui-même ;
- le sixième : le système doit être facile d'utilisation et utilisable en un temps correct à la main. Mettons un maximum de 30 minutes pour chiffrer ou déchiffrer 100 caractères.

2. Le système doit résister au moins à l'attaque à texte chiffré seul et à l'attaque à texte clair connu.

3. Le système ne doit pas augmenter la longueur du message, sauf de quelques caractères pour les lettres nulles par exemple. La carré de Polybe ne respecte donc pas ce point.

4. La clé doit pouvoir être aussi simple ou complexe que le veut l'utilisateur : elle doit s'apparenter à un mot de passe comme sur les systèmes de chiffrement moderne.

5. Le système doit pouvoir supporter un alphabet avec un nombre quelconque de caractères (plus que 1 quand même) ce qui permettra aux utilisateurs du système d'adapter le système à leur besoin et à leur langue.

6. S'il y a une erreur dans le chiffrement, le reste du texte ne doit pas être compromis.

7. Le système doit pouvoir être mis en oeuvre partout et donc ne pas nécessiter de ressources matérielles comme des dictionnaires, des livres, des tables, etc.

Regardons à présent les types de chiffrement connus de cryptographie classique afin de voir s'ils respectent ou non ces propriétés.
On peut éliminer tout de suite les substitutions mono-alphabétiques et poly-alphabétiques qui ne resistent pas à une attaque à texte chiffré seul (analyse des fréquences, test de Kasiki, test de Friedman ...) et encore moins à une attaque à texte clair connu. Les substitutions polygraphiques (chiffre de Hill, Playfair, 4 carrés ...) ne résistent pas non plus à cette dernière de la même façon que les transpositions, les chiffres homophones et les chiffres à répertoire (le chiffre du livre) qui de plus, ne respectent pas le 7ème point.
Les chiffres tomographiques (Chiffre de Chase, ADFGVX) semblent peu résistants à une attaque à texte clair connu quand le texte chiffré et sa correspondance en clair sont assez longs.
Le chiffre de Vernam ne respecte pas les principes de Kerckoffs et le 4ème point.
J'ai cherché d'autres chiffres, mais je n'en trouve pas un qui résiste à une telle attaque.

Si vous connaissez un algorithme de chiffrement qui respecte ces 7 points, pouvez-vous m'en faire part s'il vous plaît ? Sinon, je vous propose que l'on réfléchisse ensemble à un tel cryptosystème.

J'ai dans l'idée un chiffrement par bloc afin de respecter le 6ème point. Claude Shannon a donné deux propriétés d'opération fondamentales : la confusion et diffusion. La confusion permet de rendre le lien entre le cryptogramme et la clé "confus" : le texte dépend dans son ensemble de la clé. La diffusion "diffuse" l'information du texte en clair dans le texte chiffré : si on change un bit du texte en clair, chaque bit du texte chiffré a une chance sur deux de changer.
La substitution constitue une opération de confusion, la transposition constitue une opération de diffusion globale.
Mais la combinaison des deux n'est pas efficace si chaque caractère est substitué à un autre caractère et que la transposition se contente de mélanger les caractères. Les caractères ne sont alors pas dépendants les uns des autres, ils sont juste déplacés et substitués, la diffusion est faible. Si au contraire, on substitue les bigrammes puis qu'on effectue une transposition (chiffres tomographiques), les informations des deux caractères constituants les bigrammes seront mélangés puis séparés causant une diffusion plus forte. En répétant un certain nombre de fois le procédé, la diffusion devient presque totale. Il faut donc trouver un équilibre entre cette diffusion et le temps de chiffrement et de déchiffrement.

J'invite donc tous les gens intéressés par cette question à proposer des systèmes de chiffrement, commenter ceux des autres, faire diverses remarques ou simplement poser des questions ; ou bien à m'informer dans le cas où ce que je cherche existe déjà. Merci d'avance.

#2 Re : Cryptographie » Questions d'un débutant » 01-02-2020 18:48:47

Oui mais je pense qu'il faut que tu retiennes la clé que tu as utilisé pour chiffrer tes mots de passe. Donc elle ne doit pas être trop longue.
Si les mots de passe sont chiffrés sur l'ordinateur, il y a l'agorithme AES, qui est aujourd'hui incassable. Si ils sont écrits et chiffrés sur papier et que tu veux pouvoir les déchiffrer à la main, je pense que si ce sont des mots de passe aléatoires, tu peux utiliser le chiffre de Vigenere. Il faut juste augmenter la taille de l'alphabet pour qu'il comprenne les caractères spéciaux.
Par exemple, la clé générale est TEST, et le mot de passe est gpEa67
L'alphabet utilisé est :
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
On convertit le mot clé en nombres selon sa position dans l'alphabet ci dessus (a->0, b->1, J->35 ...).
TEST -> 45 30 44 45
On fait la même chose avec le mots de passe :
gpEa67 -> 6 15 30 0 58 59
On fait une addition terme par terme
   45 30 44 45 45 30
+ 06 15 30 00 58 59
   51 45 74 45 103 89
L'aphabet n'ayant que 62 caractères, on enlève 62 aux nombres tant qu'ils sont égaux ou supérieurs à 62 (modulo 62).
51 45 74 45 103 89 -> 51 45 12 45 41 17
Et ensuite, on convertit en lettres :
51 45 12 45 41 17 -> ZTmTPr
Pour déchiffrer, on fait l'inverse. Si les mots de passe sont aléatoires et la clé assez longue, le chiffrement est sûr.

#3 Re : Cryptographie » Questions d'un débutant » 01-02-2020 17:56:45

La sécurité d'un chiffrement doit reposer seulement sur sa clé, pas sur la méthode. Pour vérifier la résistance de ton algorithme, il faut donner la méthode complète à l'attaquant.
Quant à l'idée de la suite de Fibonacci, c'est une bonne idée. Car à un seul nombre, on en associe plein d'autres. Cette méthode s'appelle un étirement de clé. Par contre, il faut utiliser la formule fonctionnelle de la suite, c'est à dire que l'on calcule le n-ième terme sans utiliser les nombres précédents (cf https://fr.m.wikipedia.org/wiki/Suite_de_Fibonacci) sinon c'est complexe de calculer le n-ième terme.
Une autre technique d'étirement de clés est l'utilisation de fonctions de hachages cryptographiques. Une fonction de hachage est une fonction qui à une suite de caractère attribue un résultat appelé empreinte. Par exemple, en sha-256 :
bonjour --> 2cb4b1431b84ec15d35ed83bb927e27e8967d75f4bcd9cc4b25c8d879ae23e18
Donc à partir d'une clé basique, on calcule son empreite, on hash l'emprente obtenue, puis on recommence. On stocke toutes les empreintes et on les assemble : la clé a été étirée. Et on l'étire autant que besoin

#4 Re : Cryptographie » Questions d'un débutant » 01-02-2020 15:29:28

Le système de chiffrement que tu proposes s'appelle un chiffrement homophonique. Cela signifie qu'une lettre peut être chiffré par différents groupe de lettres.
Il y a par exemple le chiffrement du livre. Les deux interlocuteurs se mettent d'accord sur un texte ou un livre puis chiffrent chaque mot ou chaque lettre du message à chiffrer grâce à un système de numérotation qui diffère selon les méthodes. Par exemple, les deux premiers chiffres indiquent la page, les deux suivants la ligne et les deux derniers le numéro du mot. Ainsi, si un attaquant intercepte le message et qu'il ne connaît pas le livre utilisé comme clé, il aura beaucoup de mal à le décrypter.

Un algorithme par chiffrement homophonique est assez résistant. Celui que tu proposes est extrémement sûr aussi. Mais encore une fois, il y a le problème de la clé. Celle ci est extrémement longue et donc difficile à transmettre de façon sûre et impossible à mémoriser car elle contiendra des centaines de mots voire plus. Et puis quand tu décryptes, tu dois chercher dans toutes les listes le mot ce qui peut être long. Enfin, le message chiffré est beaucoup plus long que le message clair, 4 ou 5 fois avec les mots choisis.
Pour conclure, l'algorithme n'est utilisable que par l'ordinateur si les listes sont assez longues, la transmission de la clé est difficile (à moins d'utiliser un chiffrement asymétrique tel que RSA), mais l'algorithme est extrêmement sûr si on arrive à partager secrètement la clé.

#5 Re : Cryptographie » Questions d'un débutant » 01-02-2020 01:15:17

Bonjour sworex51. Je ne suis pas un expert en cryptogie non plus mais je crois pouvoir t'apporter des élémenrs de réponses.

1) Pour répondre à ta question, d'abord, en cryptographie, il existe deux grands types de chiffrement : la transposition et la substitution.


A) La transposition

La transposition est un mélange des lettres, c'est un immense anagramme. Par exemple : BONJOUR devient JBNURNOO. Les lettres changent de place mais ont la même signification. Un A est toujours un A, un E un E ... Les algorithmes de chiffrement par transposition les plus connus sont le code rail fence, le code scytale et la transposition rectangulaire.


B) La substitution

À l'inverse de la transposition, dans une substitution, les lettres gardent leur place mais change de signification. Il existe 3 types de chiffrements par substitution :

1) La substitution monoalphabétique
La substitution monoalphabétique est une substitution dans laquelle une lettre est toujours chiffrée par une même autre lettre. Par exemple : BONJOUR BOB --> TIVDIOP TIT. Le B est toujours chiffré par T et le O par I.
Chiffres les plus connus : Chiffre de César, Chiffre affine, carré de Polybe.
2) La substitution polyalphabétique
La substitution polyalohabétique est une substitution dans laquelle une lettre peut être chiffrée de différentes façons. Par exemple, un E dans le message pourra être chiffré par un A puis un K puis un Y ... ce qui en fait un chiffre très résistant. La plupart des algorithmes employant cette méthode découle du chiffre de Vigenère
3) La substitution polygrammique
Dans une substitution polygrammique, on ne chiffre plus lettre par lettre mais groupe de lettres par groupe de lettres. Les chiffres les plus connus sont le code Playfair et le chiffre de Hill.


Donc une fois qu'on se retrouve devant un message chiffré, il faut d'abord identifier le type d'algorithme (transposition ou substitution). Pour cela, le cryptanalyste (celui qui décrypte les messages secrets) dispose d'un outil très puissant appelé analyse des fréquences.
En français, il y a des lettres beaucoup plus présentes que d'autres : le e, le a, le s sont très fréquents alors que le w et le k beaucoup moins. On peut dresser un tableau avec la fréquences des 26 lettres en français.
On dresse également un tableau de fréquences du message secret et on compare les deux tableaux.
Si les fréquences et le classement des lettres sont très proches, on pourra en déduire que le chiffrement est une transposition car mélanger les lettres n'influent pas sur les fréquences. Au contraire, si les deux tableaux diffèrent, c'est que le texte est chiffré par substitution.
Ensuite on affine la recherche avec d'autres outils notamment l'indice de coïncidence qui permettra de différencier une substitution monoalphabétique d'une subsitution polyalphabétique. On peut aussi se baser sur la caractèristique du message pour déterminer l'algorithme comme le nombre de lettres, les caractères qui apparaissent, les répétitions ...
Une fois le type de chiffrement connu, le cryptanalyste pourra tenter de casser le code. On sait par exemple qu'un chiffrement monoalphabétique ne résiste pas à une analyse les fréquences.

2) Cette méthode de chiffrement ne respecte pas le principe de Kerckhoffs car la sécurité du cryptosystème ne repose pas sur la clé mais sur l'algorithme lui même.
En effet, la sécurite d'un bon cryptosystème réside dans la clé car l'algorithme, si le cryptosystème est diffusé, est connu de tous.
Et si un pirate intercepte l'algorithme de ta méthode de chiffrement, elle n'est plus sûre du tout car il lui suffit d'enlever les caractères nuls et de casser le code césar classique par analyse des fréquences ou par force brute. Il peut casser tous les messages passés, présents et futurs avec toutes les clés différentes.
Et autre problème, comment partager avec le destinaire l'algorithme de façon secrète et rapide ? Autant, une clé, ça tient en un mot mais un algorithme, c'est long à expliquer. La clé BONJOUR est plus facile à faire passer de façon secrète qu'un algorithme complet.

En espérant avoir aidé

#6 Re : Cryptographie » texte à décrypter » 02-01-2020 00:45:11

Bonjour,
Ce message a déjà été décrypté dans un autre fil de discussion :
http://bibmath.net/forums/viewtopic.php?id=7521
Je me demande d'ailleurs d'où il provient.

#7 Re : Cryptographie » Besoin d'aide pour un decryptage » 25-10-2019 23:59:38

Bonjour à tous,

En regardant le code décrypté et la transcription de Rossignol, on remarque que le "l" a deux significations possibles : le "l" et le "u".
Les vers 3 et 4 ont 9 syllabes alors que le vers 2 en possède 10. On peut en enlever une si on traduit "ZLI" par "QUI" car le "l" peut devenir un "u". "Z" signifie alors "Y" et "Q".
Ensuite, concernant le vers 4, on peut voir que le "s" a aussi deux significations : "s" et "p" ("emplacement").
Comme "loin de" pose 2 problèmes de transcription (le "l" et le "d"), on peut le remplacer par "pointe" qui va mieux et "des ardies" peut-être par "de Pardies" une commune française.
Grâce à cette double signification du "s", on peut tenter de décrypter la première phrase en respectant la rime, les 9 syllabes et la conjugaison. Le tout donnerait :

LESERETLSERETESESSERES
Le père du père de ses pères

ZLINRILLETPUSLEOIELTESPRTIES
Qui brille dans le ciel de Pardies

NIEULMIUTESORISTLCERMSDELRFRI
Bien loin des cris du héros meurtri

SMIUFELEDSLPOEDEUFTLDZSFERE
Pointe l'emplacement du mystère

Alphabet de chiffrement :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
PNOTE__ CI __ LDUMSZTSFL_____ Z_

#8 Re : Cryptographie » Code compliqué » 15-08-2019 18:06:27

Bonjour,
J'ai regardé un peu le cryptogramme, mais pourrait-on avoir plus d'informations concernant le code, où il a été trouvé, dans quel cadre ... ? Et aussi comment as-tu / avez-vous décodé la dernière partie ?
Ces informations pourraient aider. Merci

Pied de page des forums