Secure Poker
This project implements poker on the Internet. It will accept one to
five players. More than five players tends to spread the deck out too
much.
Every player will need a public/private key to play. They will also
need to have an account with the house. Startup will have to be
coordinated amongst the players. Session keys will be established
between the house and the players. The session key is used to encrypt
players. cards and for players to sign their bets. The house is
responsible for totaling the pot and announcing bets to all players and
tracking players banks. Session keys will be destroyed after a players
leaves a current session.
The rules of poker can be found at many websites and in many books. Here is one such site.
The site also contains many links to various on-line casinos.
Implementation:
House
- Authenticates players. There is a "new player" function to
create authorization information for a first-time player
- Keeps 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".
- Informs each player in turn when it time to do something.
- Receives plays from the user and validates the play for legality.
Player
- Program provides the user interface with the human player.
- Receives messages from server, presents info to user, and
collects users decision and communicates back to the server
- Manages the player's authentication keys and session keys with
the server, and signing bets and plays on behalf of the user.
The system should be implemented using your choice of C, C++, or Java.
(and maybe .NET, we're thinking about it!) It will consist
of 2 independant programs that communicate over the network using an
XML based protocol. One of these programs simulates the house.
The other program is the user prgogram, and interfaces with the
user either as a traditional GUI program, or as a web server serving
HTML pages. Of course, all communications should be secured using
SSL.
Resources
Please visit
the resources page