
Before playing a game in the Direct Mode against a game server, a user sets up a CryproKey to encrypt all her moves in the future game by means of an unidirectional hash function algorithm with usage of the CryptoKey.
To make sure that the CryptoKey is unique and not known to the server, the user can encrypt it into an Open Key and check its uniqueness in the list of Open Keys and Open Codes stored on the game server. The server updates the list on receiving user’s CryptoKey when the user requests her winning at the game end.

In the play, the app encrypts user’s moves with the CryptoKey into Open Codes, transmits the Open Codes to the server as user’s implicit moves, receives and displays server’s responces, and compares them with user’s moves to find out the winnings according to game rules.
To get the winnings, the app transmits user’s CryptoKey and explicit moves to the server, the server encrypts the moves into Open Codes, compares the Open Codes with the earlier received implicit moves and in case of their matches determines and confirms the winnings.
