This project has moved. For the latest updates, please go here.

Project Description
This is a C# implementation of the paper "A Toolbox for Mental Card Games"

This library allows to play a card game that is verifiable without a (trusted) third party. This is archived using zero-knowledge proves.

It is implemented as a Portable Library (.Net 4.5, Windows 8, Windows Phone 8.1).

This is still not a Complete Implementation, but it supports the important operation like mask a card and shuffle.

Key operations

  • Create Public/Private key pair (implemented)
  • Prove correctness of public key (not implemented)

List of Card operations

  • Create open card (supported)
  • Mask (↬) open/covered card (supported)
  • Create private card (supported via creating an open card before using the mask operation)
  • Pickup/Uncover card (supported)
  • Create covered random Card (not implemented)

List of Stack Operations

  • Permutation (supported)
  • Shuffle (supported with permutation performed by different players)
  • Prove of A ⊆ B (not implemented)
  • Prove of A ⊇ B (not implemented)
  • Prove of A ∩ B = ∅ (not implemented)
  • Prove for card C ∈ Stack A, C ∈ Stack B ⇔ A ∩ B ≠ ∅ (not implemented)
  • Cyclic shift of Stack (not implemented)
  • Insert Card at secrete position (not implemented)

Other Operations

  • Prove A ↬ B or C ↬D (not implemented)
  • Entering and Leaving a game (not implemented)

For more Information you can find the paper here.

A Nuget Package is also available here.

A C++ implementation can be found here.

Last edited Apr 26, 2014 at 12:40 PM by lokimidgard, version 13