Chiffrement et cryptographie
Au départ, on a un problème à résoudre : Bob veut connaitre un des secrets que possède Alice, mais il ne veut pas lui dire lequel.
Et en plus, on ne veut pas qu'Alice sache quel secret Bob veut ! Tout ça sans envoyer tous les secrets à Bob, bien sûr.
C'est là que le transfert inconscient oblivious transfert en anglais devient une primitive cryptographique : il s'agit d'obtenir une information sans révéler laquelle au propriétaire, ni que le propriétaire soit obligé de révéler toutes les informations.
Ne pas révéler d'information
Je vous ai construit un exemple exprès :
- Alice emploie 10 personnes, dont Dexter.
- Dexter soupçonné de meurtre par Bob.
- Bob voudrait obtenir l'adresse de Dexter par Alice, mais il ne veut pas qu'Alice sache que c'est Dexter qui est soupçonné (sinon Alice va le virer).
- Sauf qu'Alice ne veut pas donner toute la base de données des adresses de ses employés.
Comment faire ? En faisant confiance à Bob :
- Bob écrit le nom des 10 personnes sur 10 coffres. Dans chaque coffre, il met un cadenas ouvert. Il jette toutes les clés, mais ne garde que la clé du coffre marqué Dexter (c'est là qu'il faut lui faire confiance).
- Bob envoie les 10 coffres à Alice.
- Alice met les adresses dans chaque coffre, et les ferme. Elle peut même virer les étiquettes. Elle ne sait pas lequel peut être ouvert.
- Alice envoie les 10 coffres fermés à Bob.
- A réception, Bob ne peut ouvrir que celui contenant l'adresse de Dexter et donc connait à présent son adresse. Il ne peut pas ouvrir les autres coffres -il a jeté les clés- et donc ne connait pas toutes les adresses.
Évidemment qu'Alice doit faire confiance à Bob sur le fait qu'un seul coffre peut être ouvert, mais ce problème peut se résoudre si c'est Alice qui fournit les cadenas et les clés (en faisant un peu attention lors de la distribution).
Et Eve dans tout ça ?
- Eve a vu passer 10 coffres ouverts avec 10 noms. La voilà bien avancée, c'est une info connue. Eve ne peut pas savoir que c'est Dexter qui est intéressant (comme Alice du reste). Eve cherche éventuellement à obtenir les adresses.
- Eve pourrait alors remplacer les coffres, et les intercepter au retour: Alice et Bob feront donc un peu attention en mettant les 10 coffres dans un gros coffre -on sait faire ça.
- Eve voit passer en retour 10 coffres fermés. Mais elle ne peut rien ouvrir, elle n'a pas les clés. Elle ne connaîtra aucune adresse.
J'espère que cela vous a convaincu que c'est faisable.
La situation se complique un peu si jamais une des entités est malhonnête, soit passivement en tentant d'analyser le protocole pour en savoir plus sur les autres, soit activement en tentant d'attaquer le protocole.
Des protocoles ont été proposés pour réaliser ces transactions, à commencer par le cas avec seulement deux données. Aussi en quantique. Eh bien sûr que ça se fait attaquer par les ordinateurs quantiques.