Des chercheurs de Google viennent de nous rapprocher un peu plus de la singularité technologique en permettant à deux réseaux de neurones, Alice et Bob de développer entre eux une méthode de cryptage qu’un troisième réseau de neurone, Eve, ne soit pas capable de décrypter [1]
Le schéma utilisé est celui de la cryptographie symétrique, illustré ci-dessus. Alice doit apprendre à crypter le message P, et Bob et Eve doivent apprendre à décrypter le message C. Le mot « adversial » dans le titre de l’article [1] peut se traduire par « carotte et bâton numériques »: à chaque essai, l’apprentissage d’Alice et Bob est récompensé si plus de la moitié* des bits de PBob correspondent à P, et puni si plus de la moitié de PEve correspond à P. Et Eve est récompensée si PEve correspond à P. Le seul avantage de Bob est qu’il reçoit également une « clé » K qu’Alice peut utiliser pour le cryptage, alors qu’Eve ne possède pas cette clé.
Les résultats se trouvent ci-dessous : pendant les 7000 premières itérations, Bob et Eve ne comprennent rien aux messages d’Alice. Puis tout à coup, en 2000 itérations supplémentaires, Bob « comprend » le cryptage d’Alice, mais Eve fait des progrès également. Alors, après 10000 étapes environ, Alice change un peu son cryptage, probablement en y intégrant mieux la clé, et Alice Eve n’y comprend presque plus rien, alors que Bob, après une petite hésitation, arrive à décrypter parfaitement les messages d’Alice après 15000 étapes. Beau match !
Ce qui pourrait faire peur, c’est qu’aucun humain ne sait vraiment quelle méthode de cryptage Alice et Bob ont ainsi mis au point entre eux. On peut imaginer qu’un de ces jours Google pourra dire à la NSA : « désolés, on ne sait pas nous-mêmes comment décrypter les messages que vous voulez… ». Mais ça prendra encore du temps, parce que ça ne marche pas (encore) pour la cryptographie asymétrique, mais aussi à cause de la « loi de Schneier ».
La loi de Schneier
Bruce Schneier est mon gourou de sécurité informatique, et de sécurité tout court. Je suis assidument son blog depuis que j’ai lu son excellent bouquin « Liars and outliers« . Et à propos de la nouvelle ci-dessus, il s’est fendu d’un tout petit article [2] pour le moins critique que je vous traduis intégralement :
Cette histoire concerne plus l’intelligence artificielle et les réseaux de neurones que la cryptographie. L’algorithme ne vaut rien mais est un parfait exemple de ce que j’ai entendu nommer « la loi de Schneier »: n’importe qui peut concevoir un chiffrement qu’il n’est pas capable de casser lui-même.
Son lien vers « Schneier’s Law » mène à un de ses article datant de 2011 [3], où il relève que l’origine de cette idée remonte en fait au moins jusqu’à 1864, lorsque Charles Babbage (oui, celui d’Ada Lovelace !) écrivit dans son autobiographie [4]:
Une des caractéristiques les plus singulières dans l’art du déchiffrage est la forte conviction de chaque personne, même si elle n’est que modérément familiarisé avec cet art, qu’elle est capable de construire un chiffrement que personne d’autre ne peut décrypter.
En 1998, Schneier l’a reformulée ainsi:
Tout le monde, de l’amateur le plus ingénu au meilleur cryptographe, peut créer un chiffrement qu’il n’est pas capable de casser. Ce n’est même pas difficile. Ce qui est difficile est de créer un algorithme que personne d’autre ne peut casser, même après des années d’analyse. Et la seule manière de prouver ceci est de soumettre l’algorithme à des années d’analyse par les meilleurs cryptographes disponibles.
C’est cette version que Cory Doctorow a nommé « Loi de Schneier » dans une conférence en 2004 [5]. Schneier considère aujourd’hui que « sa » loi est un exemple de l'effet Dunning-Kruger, le biais cognitif selon lequel les moins qualifiés dans un domaine surestiment leur compétence…
Reste à voir si ce biais ne touche que les humains, ou aussi les réseaux de neurones artificiels…
Note* : en tirant les bits à pile ou face, on obtient la moitié des bits du message original par hasard…
Références:
- [altmetric arxiv= »1610.06918″ float= »right »]Martin Abadi and David G. Andersen « Learning to protect communications with adversarial neural cryptograph« , 2016, arxiv=1610.06918v1
- Bruce Schneier « Teaching a Neural Network to Encrypt » 2016
- Bruce Schneier « Schneier’s Law » 2011
- Charles Babbage « Passages from the Life of a Philosopher », 1864 (extrait « Charles Babbage and deciphering codes« )
- Cory Doctorow, « Microsoft Research DRM talk« , June 17, 2004
- [altmetric pmid= »10626367″ float= »right »]Kruger, J., & Dunning, D. « Unskilled and Unaware of It: How Difficulties in Recognizing One’s Own Incompetence Lead to Inflated Self-Assessments« , 1999. Journal of Personality and Social Psychology, 77(6), 121–1134. DOI:10.1.1.64.2655 PMID:10626367
6 commentaires sur “Réseaux de neurones et loi de Schneier”
Science Presse a écrit à peu près la même chose le lendemain : http://www.sciencepresse.qc.ca/actualite/2016/11/08/cryptographie-ceci-nest-terminator
« après 10000 étapes environ, Alice change un peu son cryptage,
probablement en y intégrant mieux la clé, et Alice n’y comprend presque
plus rien »
Une petite coquille, je pense car si j’ai bien compris, c’est Eve qui n’y comprend plus rien après le changement de cryptage.
Sinon continuez, j’adore votre blog dont j’attends les nouveaux articles avec impatience 😉
Oui, vous avez absolument raison, j’ai corrigé !
Merci pour votre lecture attentive et les fleurs 🙂
Salut !
Tout d’abord merci pour ton blog, je l’ai découvert récemment et j’apprends beaucoup de choses 🙂
Un article très intéressant, mais comme je n’y connais rien ni en cryptographie ni en intelligence artificielle je me pose une question. Qu’entends-tu par « récompensé » au début de ton article ? J’ai de la peine à imaginer un réseau de neurone travailler pour recevoir un cadeau, cela doit donc avoir un autre sens.
Merci pour ta réponse et ton article,
ArpadH – Le Medoscope
Salut!
Merci pour les fleurs… http://lemedoscope.com/ c’est toi ? ça a l’air bien aussi ! Regarde http://www.cafe-sciences.org/rejoignez-nous/ si jamais…
Pour une bonne introduction aux réseaux de neurones et au Deep learning je te conseille la vidéo d’un de nos membres :
https://www.youtube.com/watch?v=trWrEWfhTVg
Il ne rentre pas dans le détail de l’apprentissage automatique (qui n’est pas très détaillé non plus…) mais l’article [1] est assez clair (section 2.2 : Objectives) : Alice, Bob et Eve apprennent en optimisant une « loss function » qui pondère le taux de décodage des uns et des autres.
Par rapport à la vidéo de David , il faut le voir comme un ajustement automatique et progressif des petits potentiomètres (les gains synaptiques…) : au début le réseau de neurones combine au hasard les entrées (P et K pour Alice, codé C et K pour Bob, C pour Eve) en sorties (C, Pbob, Peve), puis à chaque essai les gains synaptiques sont ajustés (un peu au hasard au début, puis le système « trouve » dans quel sens tourner les potentiomètres pour que la « loss function » converge peu à peu …
Donc si, les réseaux de neurones artificiels reçoivent en cadeau une meilleure valeur de la « loss function », et ça semble comparable à une giclée de dopamine dans notre système de récompense : ça motive à faire encore mieux 😉
Oui c’est moi 😉 Merci pour ta réponse, j’y vois maintenant plus clair sur cette technique de récompense. Merci également pour la vidéo, je connaissais sa chaîne YouTube et son blog, mais n’avais jamais vu celle là.
Je connais le café des sciences mais comme mon blog est encore tout jeune, j’attends qu’il mûrisse un peu avant de le proposer…
A bientôt !