The following examples explain most of the steps that are necessary to create a secure card game with LibTMCG. We consider an application with five permanent players (denoted by P_0, P_1, P_2, P_3, and P_4) and a regular deck of 52 different cards. For convenience only the more efficient card encoding scheme of Barnett and Smart [BS03] is described. Additionally, we complete our exposition with code fragments which show the usage of the fast shuffle verification protocol due to Groth [Gr05].
Throughout the remaining pages we suppose that all players are pairwise connected by
authenticated communication channels. These channels are organized in input resp.
output streams, where input_stream[i]
resp. output_stream[i]
denote
the corresponding std::istream
resp. std::ostream
instance for the
communication with player P_i.1
[1] We assume that the players are ordered in a natural way such that we can use the same nomenclature.