@MISC{Disagreements04anonymity:anexplanation, author = {A B C Disagreements}, title = {Anonymity:An Explanation of the Dining Cryptographer’s Algorithm}, year = {2004} }
Share
OpenURL
Abstract
The Scenario Consider three cryptographers who have just finished a meal in a rather swish restaurant. The cryptographers want to know whether the NSA will have to pick up the tab, or whether one of their number is willing to foot bill. An additional condition is that the cryptographer who pays wishes to inform her colleagues anonymously. In [1], a protocol was proposed to solve this problem. The Protocol The cryptographers are arranged around a circular table and position their menus as shown in figure 1. Each cryptographer flips a coin behind their menu such that only the colleague to their right can see the result. Each cryptographer then compares their coin with that visible to their left and states whether the coins match. However, if (at most) one of the cryptographers is paying for the meal, then they state the opposite of what they see. If the number of disagreements is even then the NSA is paying. Otherwise a cryptographer is paying. Why it Works The table below illustrates the number of disagreements for any combination of the three cryptographer’s flips. Notice that the number of disagreements is always even since, beginning from all 0’s a change by one cryptographer will result in a change of exactly 2 in the number of disagreements. Therefore, if all cryptographers are honest then there are always an even number of disagreements. However, if exactly one cryptographer states the opposite of what they see, then the number of disagreements will be odd. The source code listing below implements the dining cryptographer’s problem. It can be seen that this property holds regardless of the number of cryptographers having dinner. See [1] for the full paper.