Yu-Chi Lai


CS642 Introduction to Information Security

1. Introduction

In this project, we are implementing an online poker game. In this design document, we will present our method and protocol so as to ensure the security of the game. The poker game we are implementing is the Texas Hold’em. The appendix lists the rules about how to play it. The rest of this document is the detailed description of the design for this project.

2. Entity Description

There are two types of entities, player and house, in our poker game. The following section describes their roles and actions in this game design.




bulletAuthenticates players.  There is a "new player" function to create authorization information for a first-time player
bulletKeeps track of cards in each player's hand, amount of money player has in the game, as well as how much each player has bet, and the total amount of the "pot".
bulletInforms each player in turn when it time to do something.
bulletReceives plays from the user and validates the play for legality.


bulletProgram provides the user interface with the human player.
bulletReceives messages from server, presents info to user, and collects users decision and communicates back to the server
bulletManages the player's authentication keys and session keys with the server, and signing bets and plays on behalf of the user.

3. Message Flow

In this section, we describe the communication required and the information involved between players and the house.  Figure 1 shows the flow of the game from a player’s point of view. Our message flow is divided into the corresponding sections, which include authentication, money operation, game play, and leave.

Figure 1 Diagram of the flow for the poker game when standing in the player’s point of view.

4. Architecture Diagram

Figure 2 shows the structure of our poker project. In this section, the functionalities and interfaces among these sub-blocks are described.


Figure 2 the schematic diagram for the entire structure of our poker game


Player interfaces, functions, and data structure

Because this is the only entity which interacts with users, it should provide good user interface to allow users to communicate with the House for the poker game. The followings are the user interfaces which should be provided.  All the interfaces are temporary and they only provide the idea of what functions and interactions needed. Note that the interface is temporary and subject to change.

  1. Login interface: (At the initial of the program) for existing users. Shown in Figure 3
  2. Deposit and withdraw money interface. Shown in Figure 4 .
  3. Play Card interface (During playing game). Shown in Error! Reference source not found.



Figure 3 User Login Interface

Figure 4 Deposit and Withdrawal Interface


Figure 5 Play Card Interface                                          

5. Security Measurement


Player Authentication

Detail how authentication to be done


6. Design Implementation

 In this project, we use C++ with OpenSSL 0.9.7d to construct secure connection, Xerces C++ Library to parse the message to the XML format, and we use FLTK-1.1.4 and OpenGL to build up the user interface.

Appendix:  Game flow

bulletFinal Report
bulletFinal Presentation
bulletSource Code


      E-mail        yu-chil@cae.wisc.edu

      Address    422 N. Segoe Rd. Apt. 73B,

                          Madison, WI 53705

      Phone   H:           608-236-9763

                     CS:       608-262-7500