Thanks to a certain pandemic going around I was wondering whether there is any cryptographic way to remotely deal cards without the dealer being able to know them and without requiring to trust a server for that. My first impulses involved secret-sharing and zero-knowledge-proofs but that is probably not even related... Some first thoughts:
Given a stack $S$ of $N$ cards, $n$ shall be dealt to each hand $H_i, i\in\{1,2,...,p\}$ of $p$ players with the following requirements:
- $N\ge n\cdot p$ (obviously)
- Once a card has been drawn it cannot be drawn by someone else as well, i.e. $$\forall i\neq j: H_i\cap H_j = \{\}$$
- No one must be able to determine which cards anyone else has nor which ones remain in the stack. Just passing around the encrypted state of a shuffle bag is thus not good enough. Maybe everyone should contribute some encrypted randomness which in a second round is used to determine the dealt cards?
- At some point one must be able to proof a specific card is§ currently in the hand.
Is there any method which can achieve this?
§ I guess a blockchain could be used to keep track of the cards changing places later on