1. A method of authenticating and encrypting a client-server communication, comprising the steps of: a) generating a first one-time password (OTP 1 ) and a second one-time password (OTP 2 ) from a cryptographic token; b) generating an encryption key (K_ENC) and a MAC (Message Authentication Code) key (K_MAC) based on OTP 2 ; c) preparing and protecting client data using K_ENC and K_MAC d) sending a request message from the client to the server, the request message containing the protected client data, a cryptographic identifier token (TID) and OTP 1 ; e) validating OTP 1 at the server, and generating OTP 2 at the server upon successful validation; f) deriving K_ENC and K_MAC from OTP 2 at the server; g) processing the request message and generating result data; h) encrypting the result data using K_ENC and creating a digest using K_MAC; i) sending the encrypted result data to the client; and j) decrypting the result data at the client using K_ENC and verifying the authenticity of the result data using K_MAC.