L'OTP : le seul algorithme impossible à casser


Là vous devez vous dire que je me moque de vous. Je vous ai dit qu'il n'existait aucun algorithme ou programme impossible à cracker.

J'aurais dû préciser "algorithme ou programme à clé".

En effet, il suffit d'essayer toutes les clés différentes possible jusqu'à trouver la bonne.

Mais il existe une méthode qui n'utilise aucune clé.

 

L'OTP : One-Time Pad

Aussi appelé masque jetable, c'est une technique simplissime.

Imaginons que nous ayons un message de n octets. Pour l'encrypter:

  1. créer une suite S (même taille que n) d'octets aléatoires (S est appelé pad ou masque).
  2. appliquer ce masque octet par octet au message (généralement avec une opération logique XOR)

Ainsi, si vous ne connaissez pas le masque S, le message EDRJVQUIKEGDNCTUIO peut très bien se décrypter en:

Tout dépend de !

Si vous n'avez pas S, vous pouvez toujours essayer de décrypter le message : il peut vouloir dire n'importe quoi !

Quelle que soit votre puissance de calcul, vous ne pourrez jamais décrypter le message.

 

Le piège

Vous allez me dire : facile !

Et bien non... c'est une technique très difficile à maîtriser. Pourquoi ?

Vous voyez, c'est une technique imparable, mais très délicate à utiliser.

 

Les nombres aléatoires

Il est impossible de créer des nombres aléatoires avec un programme, quel qu'il soit. Point à la ligne.

On peut au mieux créer des nombres pseudo-aléatoires.

La plupart des générateurs de nombres aléatoires sont assez mauvais :

L'OTP a donc besoin de nombres réellement aléatoires, tels que ceux créés avec des phénomènes physiques impossibles à prévoir :

Bref, ce n'est pas à la portée de tout le monde. Il faut un bon dispositif physique, et non pas seulement logiciel.

Certains ont inventé des systèmes ingénieux avec une webcam qui filme des lava-lamps (ces lampes en forme de fusée avec des boules de parafine fondue qui montent et descendent à l'intérieur). Comme ces écoulements de fluide et la convection les rendent impossible à prévoir à long terme, ils font un bon générateur de nombres aléatoires.

Il suffit de filmer l'image et d'utiliser la valeur des pixels pour générer des nombres aléatoires.

Silicon Graphics (le fabricant d'ordinateurs) possède un site Web dédié à cela. Vous pourrez y voir comment ils ont conçu leur générateur de nombres aléatoires : http://www.lavarnd.org.

Si vous n'êtes pas bricoleur, il existe aussi des cartes d'extension qui permettent d'obtenir des nombres aléatoires facilement.

Si la génération de nombres aléatoires vous intéresse, vous pouvez lire la RFC 1750 (http://www.ietf.org/rfc/rfc1750.txt).


Le contenu de cette page est placé sous les termes de la licence suivante : CC Attribution-Noncommercial 4.0 International
h t t p : / / s e b s a u v a g e . n e t