mainLibTMCG - Summary

Membership Info
Group Admin:
2 active members

Group identification
Id: 7256
System Name: libtmcg
Name: LibTMCG
Group Type: non-GNU software and documentation

Search in this Group


This group is not part of the GNU Project.

LibTMCG is a C++ library for creating secure and fair online card games. The library contains 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, i.e., neither a central game server nor trusted hardware components are necessary. Thus, it is well-suited for peer-to-peer (P2P) environments.

The implementation is based primarily on two academic research papers:
First, Christian Schindelhauer, A Toolbox for Mental Card Games, Technical Report A-98-14, University of L├╝beck, 1998, and second, Adam Barnett, Nigel P. Smart, Mental Poker Revisited, Cryptography and Coding 2003, Lecture Notes in Computer Science 2898, pages 370-383, 2003.

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. LibTMCG provides the first practical implementation of such protocols.

The security and the verifiability rely 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. This important property is often required in card games like Poker. 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.

Registration Date: Sat 22 Jan 2005 04:38:29 PM UTC
License: GNU General Public License v2 or later
Development Status: 5 - Production/Stable


Latest News rss feed
LibTMCG 1.3.18 released
     posted by stamer, Sat 01 Jun 2019 11:20:31 AM UTC

This release is two-fold: first, it fixes some bugs (e.g. iterated S2K) of the OpenPGP interface, and second, it adds functionality for handling v5 keys and signatures (see RFC 4880bis-07).

LibTMCG 1.3.17 released
     posted by stamer, Wed 23 Jan 2019 08:34:06 PM UTC

This is a maintenance release that fixes a major bug in the VSSHE module (Groth's shuffle protocol). The verification of the special component E_d with respect to membership in the underlying commitment group has been done wrongly by a fast exponentiation function with fixed bases. Hence the check of membership for this component is always [...]

LibTMCG 1.3.16 released
     posted by stamer, Mon 03 Dec 2018 04:51:51 PM UTC

In this release AEAD support has been added to the OpenPGP interface. Please note that this feature is specified by working draft only and was not part of the aged RFC 4880. Moreover, some bugs have been fixed and some library constants (e.g. TMCG_MAX_CARDS) have been adjusted.

LibTMCG 1.3.15 released
     posted by stamer, Mon 12 Nov 2018 04:35:21 PM UTC

This is a maintenance release that fixes some bugs, e.g. in the Botan support of functions from module mpz_srandom. Moreover, some interfaces of the OpenPGP implemenation have been added and removed. For some modules of LibTMCG a basic C++ exception handling has been introduced.

Communication Tools
 Mailing Lists (2 public mailing lists)

Development Tools
 Task Manager (open items: 0, total: 0)
 Patch Manager (open items: 0, total: 0)

Back to the top

Powered by Savane 3.13-b921.
Corresponding source code