A method of authenticating a wireless communication device for secure transaction of data between the communication device and a server , the method comprising: receiving, by the server , a first message transmitted by the communication device , the first message comprising challenge data to authenticate the server ; generating a random number by the server ; computing, by the server , a masking process of the random number using the random number, a mask, and one or more parameters; generating, by the server , a first encrypted message using a result of the masking process, a nonce value for security, a public key of the communication device and an ECE encryption algorithm; transmitting, by the server , the first encrypted message to the communication device; decrypting, by the communication device , the first encrypted message in order to retrieve the random number using a private key of the communication device and an ECE decryption algorithm; computing, by the communication device , a second message r 3 mod p using a permutation technique of the random number, r-> r 3 = r 3 mod p, which is a bijective map, r being the random number and p being a prime number; generating, by the communication device , a resultant message by signing the second message using an ECDSA-163 algorithm and the private key of the communication device ; transmitting, by the communication device , the resultant message to the server ; computing, by the server , a second message r 3 mod p using a permutation technique of the random number, r-> r 3 = r 3 mod p, which is a bijective map, r being the random number and p being the prime number; verifying, by the server , the resultant message using the public key of the communication device generating a response based on the verification; and transmitting the response to the communication device by the server . receiving, by the server , a first message transmitted by the communication device , the first message comprising challenge data to authenticate the server ; generating a random number by the server ; computing, by the server , a masking process of the random number using the random number, a mask, and one or more parameters; generating, by the server , a first encrypted message using a result of the masking process, a nonce value for security, a public key of the communication device and an ECE encryption algorithm; transmitting, by the server , the first encrypted message to the communication device; decrypting, by the communication device , the first encrypted message in order to retrieve the random number using a private key of the communication device and an ECE decryption algorithm; computing, by the communication device , a second message r 3 mod p using a permutation technique of the random number, r-> r 3 = r 3 mod p, which is a bijective map, r being the random number and p being a prime number; generating, by the communication device , a resultant message by signing the second message using an ECDSA-163 algorithm and the private key of the communication device ; transmitting, by the communication device , the resultant message to the server ; computing, by the server , a second message r 3 mod p using a permutation technique of the random number, r-> r 3 = r 3 mod p, which is a bijective map, r being the random number and p being the prime number; verifying, by the server , the resultant message using the public key of the communication device generating a response based on the verification; and transmitting the response to the communication device by the server . <EOS>