secret.cards lets mutually untrusting parties play many card games without a trusted central server or dealer; To start playing, send the other players this link to join you in the game room:
The ideal was inspired by John Gordon's After Dinner Speech at The Zurich Seminar (April 1984) about the famous cryptographers, Alice and Bob:
Alice and Bob have been used to illustrate all sorts of protocols and bits of coding theory in scientific papers. Over the years Alice and Bob have tried to defraud insurance companies, they've exchanged secret messages over a tapped line, and they've played poker for high stakes by mail.
Alice and Bob have very powerful enemies with almost unlimited resources who always listen in to telephone conversations between Alice and Bob. And these enemies are very sneaky. One of their favourite tricks is to telephone Alice and pretend to be Bob. Since Alice has never met Bob, so she has no idea what his voice sounds like. Oh yes, and Alice doesn't trust Bob.
All in all Alice has a whole bunch of problems. Now most people in Alice's position would give up. Not Alice.She has courage which can only be described as awesome.
Against all odds, over a noisy telephone line, tapped by the tax authorities and the secret police, Alice will happily attempt, with someone she doesn't trust, whom she can't hear clearly, and who is probably someone else, to fiddle her tax return and to organise a cout d'etat, while at the same time minimising the cost of the phone call.
In secret.cards, the players use commutative cryptography based on SRA81 to collaboratively shuffle a deck of cards such that none of them can influence the ordering, and to draw a unique card from the deck without revealing it to any other player. These conditions hold as long as there is at least one honest player -- the rest of them can collude without being able to violate the integrity of the game.
There is a server used to connect the players, but it does not validate any of the messages and is not trusted by any of the players. The players sign their sequenced messages with ephemeral public keys, and the other players validate the messages with these keys. They can detect modified, dropped, and replayed messages, and since the keys are generated per game, they can't be replayed from other games.
2521 - 1 = 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151