Son concept est simple. Les deux interlocuteurs qui doivent échanger des données confidentielles disposent tous les deux d'une clef identique. L'émetteur chiffre les données avec celle-ci, puis les envoie au récepteur. Ce dernier déchiffre avec la même clé pour récupérer les données qui deviennent alors lisibles.
Soit deux personnages Alice et Bob. Alice désire envoyer un message à Bob.
En pratique, il existe plusieurs systèmes, prouvés mathématiquement comme étant 100% fiable. L’un d’eux repose sur une fonction mathématique : le XOR.
D’un point de vu purement informatique, les données (messages ou clefs) sont représenté par un série de bits, donc de 0 ou de 1.
Si Alice veut envoyer le message 011110 à Bob, elle va devoir choisir une clé de la même longueur, par exemple 101101. Elle va coder le message en utilisant la fonction XOR :
101101
+ 011110
= 110011
Ensuite, elle envoie le messager crypté 110011 ainsi que la clef à Bob. Celui-ci, toujours en appliquant la fonction XOR, va pouvoir récupérer le message original :
110011
+ 101101
= 011110
Bob vient bien de décrypter le message.
Cette méthode est très sure est elle assure donc la confidentialité Dans l’exemple, si l’on ne dispose pas de la clef, il faut essayer 2^6 = 64 possibilité. Mais en pratique, en utilisant une clef de 128 bits ou plus, il faudrait plusieurs années à tous les ordinateurs du monde pour essayer les 3,4*10^38 possibilités.
Elle assure donc la confidentialité des données, puisque celui qui intercepterait la communication aurait beaucoup de mal à décrypter les données.
Mais elle pose également un énorme problème : comment s’échanger de manière fiable la clef ? Le problème est d’autant plus important, qu’en cryptographie, on suppose toujours qu’un pirate peut écouter les communications entre 2 personnes.
L’enjeu de la cryptographie moderne n’est donc plus de savoir crypter des données, mais de savoir s’échanger les clefs : « partager un secret ».