2

Here is a problem vaguely related to the dining philosophers problem. Three metaphysicians go to a restaurant for dinner. When it is time to pay the bill, they decide that they want one of them to pay the entire bill, but without the other two knowing who paid the bill. Ideally, they'd put three tokens in a bag, one white and two black, and secretly draw a token at random. But this is not allowed. They each have a random generator (coin, dice), and they are limited to exchanging information between each other, either publicly or in private between two of them. For example, all three of them may flip a coin, take note of their coin flip (H or T) and inform their left neighbour of the result. Then the metaphysician whose coin flip equals the coin flip of his right neighbour pays, and the other two don't pay (and don't know who paid). This only works, however, for THH, TTH, HTT, HHT, HTH, and THT; but not for HHH and TTT (since in those cases, all three of them would be paying the entire bill).

Here is my attempt at a solution. Let $R$ be a finite event space for the random generator, ${r_1,...,r_n}$, let $S$ be $\{0,1\}$, and $T$ be a suitable set. Let $f$ be a mapping from $R$ to $S$ and $g$ be a mapping from $R$ to $T$. $f$ maps the outcome $r_i$ to heads or tails as in the coin flipping example. $g$ is a function that masks the $r_i$ while providing enough information to decide whether the procedure needs to be repeated (because the $f$ results are of the HHH or TTT type). The metaphysicians reveal their outcome $f(r_i)$ only to their left neighbour and announce $g(r_i)$ publicly. Here is what $f$ and $g$ need to be able to do: (i) knowing all $g$ values determines whether $f(r_1)=f(r_2)=f(r_3)$ or not; in the former case repeat the procedure. In the latter case apply the coin flipping example to determine who pays. (ii) the probability of $f(r_L)=f(r_\mbox{me})$ conditional on knowing $(g(r_L),g(r_{\mbox{me}}),g(r_R))$ and $f(r_\mbox{me})x≠f(r_R)$ is $0.5$ so that I don't know who pays the bill if my coin flip differs from the coin flip of my right neighbour. $r_L$ is my left neighbour's outcome, $r_R$ my right neighbour's outcome. If I had functions $f$ and $g$ fulfilling these constraints, I'd have a solution for my problem, but I don't know what $f$ and $g$ might look like. $g(r_i)$ could be something like an md5sum, not allowing me to infer $f(r_i)$ which determines the payor.

maibaita
  • 131
  • 2
  • Welcome to Computer Science! The title you have chosen is not well suited to representing your question. Please take some time to improve it; we have collected some advice here. Thank you! – Raphael Jul 13 '16 at 08:11
  • The lack of helpful formatting makes your post hard to comprehend. Please take some time to improve the presentation; we collected some advice here. Thank you! – Raphael Jul 13 '16 at 08:11
  • I tried. I hope it's more comprehensible now. – maibaita Jul 14 '16 at 13:24
  • Have you looked at cryptographic protocols for coin-tossing and multi-party-secure computation? They seem to do what you're trying to achieve. 2. What kind of security are you looking for? Unconditional (information-theoretic) security? Computational security (based on computational hardness assumptions, such as that factoring is hard)?
  • – D.W. Jul 14 '16 at 19:16
  • Not you are using MathJax, but I think you should break up your post into more paragraphs. Also, there's an itemized list there for which you could use Markdown formatting. – Raphael Jul 16 '16 at 12:29