# How to securely deal cards?

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 and 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:

1. $$N\ge n\cdot p$$ (obviously)
2. 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 = \{\}$$
3. 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?
4. 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