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.