Rebondissant sur le post de Jodko a partir de RSA je vais m'efforcer de poser quelques bases de crypto, en tous cas celle que je comprend.
La cryptographie symetrique (du lointain passé)La cryptographie, basiquement c'est rendre un message incompréhensible pour qui n'est pas censé le comprendre, il est facile de comprendre a quel point ce principe simple a des repercutions de PARTOUT (correspondance militaires, transactions bancaires ...).
Bien qu'existant depuis la nuit des temps, la premiere célebre application de la cryptographie est attribuée a Cesar , le célebre Caesar cipher (qu'il utilisait pour certaines correspondances militaires)
Un exemple, le Caesar CipherMéthode simple, mais efficace consistant a coder l'alphabet par un decalage des lettres , connu du destinataire, par exemple decaler toutes les lettre de trois , vers la droite;
A devenant D
B devenant E
C devenant F
...
X devenant A
Y devenant B
Z devenant C
Le destinataire etant informé de l'
algorithme de codage (le décalage vers la droite) et de la
clé (3), il n'aura aucun mal a dechiffrer ce que Cesar a voulu dire ;
DVWHULA YLHQW GH PH UHIDLUH OH WDIDQDUL
Ceci est un exemple basique de
cryptographie symétrique; la meme clé est utilisée pour coder et décoder le message.
Cette methode a pour gros défaut d'etre tres facilement cassable, avec un peu de logique , de methode et quelques principes connus.
Un des principes connus qui auraient pu nous permettre de casser le message de Cesar sans connaitre la cle (mais en se doutant de l'agorithme, il faut savoir qu'en cryptographie l'algorithme de chiffrement est considere comme connu par les attaquants, seules les cles protegent le contenu; c'est le principe de Kerckhoffs) est
l'analyse frequentielle;
Il existe des statistiques de fréquences des lettres (et groupements de lettres) dans une langue (avec des tableaux facilement trouvables sur le net), par exemple en francais ou en anglais la lettre la plus fréquente dans un texte est le "E" (de loin) , suivie du "A" (BTW la distribution des lettres du Scrabble se base sur ces statistiques).
Il existe egalement des statistiques sur les groupements de lettres les plus frequents, en anglais par exemple "THE" est le triplet de lettre le plus frequent.
Des lors on comprend qu'il est possible de se servir de ces faits pour essayer de casser un texte codé, qui plus il sera long, plus il refletera la réalité statistique.
Si l'on analyse le texte de Cesar ci dessus (a la main ou avec ce genre d'outils par exemple
http://www.richkni.co.uk/php/crypta/freq.php ) on remarque que la lettre qui revient le plus est le H, suivi du D;
DVW
HULA YL
HQW G
H P
H U
HIDLU
H O
H WDIDQDUL
Si l'on pose pour principe que le H est probablement le E et que le D est probablement le A, on comprend aisément que la clé pour le décalage est 3 , et on peut déchiffrer le message facilement.
Une autre methode, ressemblante aurait été de rechercher un mot problable dans le texte crypté et de l'utiliser pour déduire le codage.
Sachant que l'expediteur est Cesar, et que je suis un grand amateur d'Asterix, on aurait pu tenter de trouver Asterix dans la phrase et utiliser ainsi les lettres qui le composent pour déduire le reste du texte.
LimitesOn peut voir plusieurs limitations a l'analyse séquentielle, qui ne peut aider a casser que des codages simples;
- Si le texte est tres court cette analyse ne donnera probablement aucun resultat exploitable, car ne refletant pas la realité statistique.
- Elle est utile si l'algorithme utilisé est simple, si a la place du décalage par exemple on avait eu des substitutions (remplacement de lettres par d'autres sans algorithme défini) , l'analyse frequentielle nous aurait donné peut etre quelques lettres mais aurait nécessité pas mal de tentatives en utilisant un outil du style :
http://www.richkni.co.uk/php/crypta/letreplace.php).
- L'analyse fréquentielle ne fonctionne que sur les lettres de l'alphabet.
- L'analyse fréquentielle ne fonctionne que sur des codes de substitutions simples (comme l'on voit plus haut) pas pour des chiffrements plus compliqués (comme l'on voit aujourd'hui sur le marche du chiffrement symétrique).
- Il existe des parades simples a ce genre d'analyses, on peut par exemple décider d'attribuer 5 symboles possibles différents pour le E, 4 pour le A et ainsi desuite.
ExerciceEn sachant que ce message aurait pu etre ecrit sur OMlive
, qu'il est chiffré avec un simple décalage et en utilisant l'analyse fréquentielle et la recherche de mots probables, essayez de le déchiffrer (vous pouvez aussi utiliser les outils relatés dans les liens plus haut);
FSNLT JXY ZSJ WFHQZWJ ZSJ XFQJYJ ZS UFWFXNYJ JY ZS UWTKNYJZW FSNLT JXY AWFNRJSY UFX HTTQ FSNLT JXY ZS HFHF
ConclusionIl existe une multitude de méthodes de crypto symétrique
modernes, bien plus efficaces (de par la complexité de l'agorithme ou la longueur de la clé tels que AES, DES ...) que celle presentée dans ce post qui sont de simpls exemples de substitution (qui ne se veut absolument pas exhaustif je n'en ai ni les connaissances, ni le temps) , mais le trés gros probleme avec les algorithmes de cryptographie symétrique est que la clé doit etre préalablement transmise au destinataire, qui est en soit un gros probleme de securité; si la clé est interceptée par une personne indésirable, le codage n'aura aucune eficacité.
C'est a cela que les algorithmes de cryptographie asymetriques (dont RSA) tentent de remédier (avec succes depuis plus 30 ans !) , mais cela fera l'objet d'un post ulterieur.