Problème du dîner des cryptographes

Un article de Wikipédia, l'encyclopédie libre.

En cryptographie, le problème du dîner des cryptographes est un exemple illustratif d'un protocole qui montre la possibilité d'envoyer des messages publics, tout en garantissant une certaine sécurité[1].

Description[modifier | modifier le code]

Illustration.

Trois cryptographes dînent autour d'une table, au restaurant. Le serveur les informe que le dîner a été payé soit par l'un d'entre eux, soit par la NSA. Les cryptographes souhaitent savoir si c'est la NSA qui a payé ou si c'est l'un d'entre eux, mais dans ce dernier cas, sans dévoiler lequel des trois a payé. Ils exécutent donc un protocole en deux étapes.

D'abord, chaque paire de cryptographes choisit un bit secret, partagé entre eux (par exemple, ils laissent une pièce derrière leur menu de façon que seuls les deux cryptographes voient le résultat). Supposons par exemple que les cryptographes A et B partagent le bit , A et C le bit , et B et C le bit .

Ensuite, chaque cryptographe annonce un bit qui est :

  • s'il n'a pas payé le repas, le ou exclusif (XOR) des deux bits secrets qu'il connaît avec ses voisins,
  • s'il a payé, la négation de ce XOR.

Supposons qu'aucun des cryptographes n'ait payé, alors A annonce , B annonce , et C annonce . Sinon, si par exemple, A a payé, il annonce .

Les trois annonces publiques combinées donnent la solution à leur question : on calcule le XOR des trois bits annoncés. Si le résultat est 0, alors aucun des cryptographes n'a payé. Sinon, l'un des cryptographes a payé mais son identité reste inconnue.

Notes et références[modifier | modifier le code]

  1. David Chaum, « Security Without Identification: Transaction Systems to Make Big Brother Obsolete », Commun. ACM, vol. 28, no 10,‎ , p. 1030–1044 (ISSN 0001-0782, DOI 10.1145/4372.4373, lire en ligne, consulté le )