Mes débuts en cryptographie:



Après de nombreux reproches (merci Juliette ;-)) sur mon site, j'ai décidé de rajouter une rubrique. Cette rubrique est déstinée à tous ceux qui veulent s'interesser à la cryptographie et qui n'ont aucune base en maths ou en informatique. Il est vrai qu'avec un peu de recule la plupart des sites traitant de la cryptographie s'adressent à des personnes déja au courant de pas mal de choses. En effet, prenons par exemple la méthode du XOR .Pour une personne un peu habituée à l'éléctronique ou à l'informatique elle semble triviale. Elle l'est peut être nettement moins pour votre grand mère ou votre copine bouclant son cycle de psycho. C'est à ces personnes que s'adresse cette rubrique. Il n'y a aucune honte à commencer par le début, car c'est par ici que tout le monde commence. Maintenant, si cette rubrique peut donnez goût à la cryptographie à certaines personnes j'en serai extrêment honoré.

Commençons par le début. Qu'est ce que la cryptographie ???
Comme son nom l’indique, c’est l’art de crypter des informations. Vous avez par exemple un message personnel que vous voulez transmettre à votre ami(e) et vous considérez que ce message ne doit lue que par votre ami(e). Vous pouvez lui transmettre le message dans un coffre et lui donnez en main propre la clef du coffre. Ainsi, toute personne malveillante désirant s’immiscer dans votre vie privée va se retrouver face à un coffre. S'il ne possède pas la clef, le problème se complique pour lui. Et bien la cryptographie, c’est exactement cela.
Vous mettez votre message (texte en clair) dans un coffre (vous le chiffrez) que vous fermez avec votre clef. Vous envoyer votre coffre (texte chiffré) à votre correspondant et si ce dernier possède votre clef il peut ouvrir le coffre et lire le message. Sinon il se retrouve face à un coffre fermé. Vous venez de comprendre le but de la cryptographie.

Un exemple de chiffrement :

Un exemple très simple de chiffrement de message, c’est le chiffrement de César. En effet, ce dernier voulait envoyer des messages aux chefs de ses armées sans des yeux indiscrets puissent y avoir accès. Pour cela il prit l’alphabet et décala chacune des lettres de son message d’un certain nombre. Je m’explique. Imaginons qu’il décide de décaler son alphabet de 2 caractères, que va-t-il se passer.
Prenons la lettre A. La lettre qui la suit dans l’alphabet est la lettre B puis c’est la lettre C. Donc si je décale 2 deux lettres la lettre A, je tombe sur la lettre C. Ainsi, pour chiffrer la lettre A je la remplace par la lettre C, et je fais de même pour toutes les lettres de l’alphabet, avec quand même une petite règle pour les dernières lettres. En effet, arrivée au Y que se passe-t-il si je rajoute 2 lettres ? Et bien, dans ce cas là on considère que l’alphabet boucle sur lui même, on recommence donc au début et l’on tombe sur la lettre A.
Ainsi à chaque lettre correspond une et une seule lettre chiffrée. Nous avons à faire à un chiffrement par substitution simple. (on substitue à une lettre une lettre différente).
Voyons maintenant un petit exemple:

cartago delanda est

Le C devient E, le A devient C,le R devient T etc... d'ou le texte chiffré suivant:

ectvciq fhngpfc guv

Ainsi, si vous n'êtes pas au courant du décalage de 2 caractères, ce message reste incompréhensible. Malgrés tout, vous vous doutez bien que depuis le début du chiffrement, des gens se sont lancés dans le déchiffrement. Le but est de "casser" ce chiffrement. C'est ce que l'on appelle de la cryptanalyse.

Un exemple de cryptanalyse :

Dans le cryptanalyse, on considère que l'on sait exactement à quel chiffrement on a affaire, mais que par contre, on ignore la clef (ici le décalage). Bon ici le nombre de possibilités est très faible, il est de 25. En effet, il existe 25 décalages différents (au bout de 26 on retombe sur l'alphabet initial). Donc pour briser ce chiffrement il suffit d'essayer tous les décalages possibles et de verifier si le texte obtenu est compréhensible. 25, ça n'est pas beaucoup on peut donc facilement tout essayer et tout vérifier. Imaginons que nous nous retrouvions face au texte crypté suivant :

dqpkqwt vqwv ng oqpfg

essayons, pour commencer, un décalage de 1 caractère en arrière. On tombe sur :

bpokpvs spvs mf npoef

On ne peut pas dire que le résultat soit très probant, la phrase ne veut toujours rien dire, continuons avec un décalage de 2 caractères (on utilise bien sûr toujours la phrase cryptée d'origine), d'oû le résultat suivant:

bonjour tout le monde

Ca y est nous avons brisé le chiffrement du message. Bon maintenant un peu de vocabulaire. Ce que nous venons de faire est une des méthodes de cryptanalyse les plus dures, c'est une attaque à texte chiffré seulement. En effet, nous ne sommes en possession que d'une seule chose : un texte chiffré. Et nous avons attaqué par la force brute, c'est à dire que nous avons essayé toutes les clefs possibles jusqu'à ce que nous tombions sur la bonne. Autant préciser une chose dès maintenant, faire une attaque à force brute contre un algorithme récent tel que PGP, c'est foncer droit la tête dans le mur. En effet, ici nous avions 28 possibilités, mais imaginons une clef de 128 bits............ ça y est je recommence...... ma grand mère n'est pas censée savoir ce qu'est une clef de 128 bits. OK petite explication au passage.

Une clef de 128 bits ???

L'informatique c'est simple (enfin la plupart du temps). Tout n'est question que de 1 et de 0. C'est ce que l'on appelle le binaire. Nous sommes naturellement habitué à travailler en décimale (c'est à dire en base 10). En effet, nous avons 10 chiffres: 0,1,2,3,4,5,6,7,8,9. Mais en fait qu'est ce qui nous empêche de choisir une autre base ? Et bien rien, la preuve. Il existe d'autres base dont les plus connues sont : la base octale (0,1,2,3,4,5,6,7), la base hexadécimale (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) et la bien sûr la base binaire (0,1). En en effet, en n'utilisant que des 0 et des 1 on peut écrire n'importe quel chiffre. Assez parlé, quelques exemples:

décimale binaire
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001

Ainsi on peut tout décomposer n'importe quel chiffre en 0 et en 1. Si vous avez compris cela, tout va devenir clair. Quand je dit que tout peut se representer par des 0 et des 1, je voit deja le doute dans vos yeux. Ainsi quand vous editez un texte vous ne voyez pas de chiffres mais bien des lettres. C'est normal, voici comment cela marche. Votre fichier texte de base c'est ça:
01110111100010101000111100110011 .....ect....
Ensuite on découpe cette suite de 1 et de 0 en blocs de 8 bits (c'est ce que l'on appelle un octet).
01110111 - 10001010 - 10001111 - 00110011 ....ect....
On peut bien sûr transformer ces octets en nombres décimaux (comme nous l'avons vu).
119 - 138 - 143 - 51 ....ect......
Ensuite on à défini une convention pour faire correspondre à chaque octet un caractère. Question pour voir si vous avez compris, combien de caractères peut-on écrire avec 1 octet. Réponse : 256. car nous avons 8 bits donc 2*2*2*2*2*2*2*2=256 possibilités. Cette correspondance est répertoriée dans une table que l'on appelle table ASCII. Vous comprenez ainsi que chaque lettre est une suite de 1 et de 0. Bon revenons sur notre clef de 128 bits. 128 représente la longueur de la clef (c'est à ici une suite de 128, 1 ou 0) ou encore 128/8=16 octets. Ainsi notre chaine fait 16 octets, or comme nous venons de le voir nous prenons 1 caractère (quand je parle de caractère je parle de toute la table ASCII qui est composée de 256 éléments et non pas seulement de l'alphabet qui ne comporte que 26 éléments, la table ASCII contient entre autre l'alphabet majuscule, miniscule ) pour 1 octet, donc notre clef dot