Como distribuir cartas com segurança?

Dec 03 2020

Graças a uma certa pandemia que está acontecendo, eu estava me perguntando se existe alguma maneira criptográfica de distribuir cartas remotamente sem que o dealer possa conhecê-las e sem precisar confiar em um servidor para isso. Meus primeiros impulsos envolveram o compartilhamento de segredos e provas de conhecimento zero, mas isso provavelmente nem mesmo está relacionado ... Algumas primeiras idéias:

Dado um pilha $S$ de $N$ cartas, $n$ deve ser distribuído para cada mão $H_i, i\in\{1,2,...,p\}$ de $p$ jogadores com os seguintes requisitos:

  1. $N\ge n\cdot p$ (obviamente)
  2. Uma vez que uma carta é sacada, ela não pode ser sacada por outra pessoa também, ou seja, $$\forall i\neq j: H_i\cap H_j = \{\}$$
  3. Ninguém deve ser capaz de determinar quais cartas os outros possuem nem quais permanecem na pilha. Apenas transmitir o estado criptografado de uma embalagem aleatória não é, portanto, bom o suficiente. Talvez todos devessem contribuir com alguma aleatoriedade criptografada que, em uma segunda rodada, é usada para determinar as cartas distribuídas?
  4. Em algum momento, deve-se ser capaz de provar que uma carta específica § está atualmente na mão.

Existe algum método que pode fazer isso?


§ Acho que um blockchain pode ser usado para rastrear os cartões trocando de lugar mais tarde

Respostas

1 ModalNest Dec 03 2020 at 01:18

Acho que você está procurando um "pôquer mental" .

Aqui está um vídeo de Ron Rivest discutindo especificamente como distribuir cartas via correio / internet.

O artigo aqui também pode ser uma boa leitura (dos criadores do RSA).