LibTMCG

LibTMCG is a C++ library for creating secure and fair online
card games. The library provides a sort of useful classes,
algorithms, and high-level protocols to support an application
programmer in writing such software.
The most remarkable feature is the absence of a trusted third
party (TTP), i.e. neither a central game server nor trusted
hardware components are necessary. Thus, with the present
library there is no need for an independent referee, because
the applied protocols provide a basic level of confidentiality
and fairness by itself. Consequently, the library is well-suited
for peer-to-peer (P2P) environments where no TTP is available.
Of course, we cannot avoid that malicious players share
information about their private cards, but the protocols ensure
that the shuffle of the deck is performed randomly (presumed that
at least one player is honest) and thus the cards will be
distributed uniformly among the players. Further, no coalition can
learn the private cards of a player against his will (except
for trivial conclusions). The corresponding cryptographic
problem, actually called Mental Poker, has been studied
since 1979 (Shamir, Rivest, and Adleman) by many authors
(see the first section of [St05]
for a short survey). LibTMCG provides the first practical
implementation of such protocols.

The implementation relies on advanced cryptographic
techniques---the so-called zero-knowledge proofs. Using
these building blocks the high-level protocols minimize
the effect of coalitions and preserve the confidentiality
of the players' strategy, i.e. the players are not required
to reveal their cards at the end of the game to show that
they did not cheat. For many operations of Schindelhauer's
toolbox the library provides optimized protocols based on
standard cryptographic assumptions like Decisional Diffie
Hellman (DDH). Therefore a reasonable level of performance
is obtained. Moreover, for some of these protocols the
included non-interactive zero-knowledge proofs (NIZK) reduce
workload and communication complexity further.

The most recent version of LibTMCG is
libTMCG-1.3.17.tar.gz.
Please verify the
signature
with a trusted version of the GNU Privacy Guard
before you unzip the above file.
The corresponding public key (will be revoked soon) can be found
here.
Additionally, you should verify the
signature
of my distributed
signing key. The corresponding public key can be found on several key servers.
Older versions of LibTMCG are available on the
download page.

Heiko Stamer. Efficient Electronic Gambling: An Extended
Implementation of the Toolbox for Mental Card Games.
Proceedings of the Western European Workshop on Research in
Cryptology (WEWoRC 2005), Lecture Notes in Informatics P-74,
pp. 1--12, 2005.
PDF