A method for transmitting a transaction message from a transaction device having a transaction device identifier I D to a transaction processing system, wherein the transaction message conforms to an EMV standard for payment processing in which the transaction message comprises, at least, a first data field configured to hold a transaction device identifier I D, a second data field configured to hold supplementary data, a third data field, and other data fields for conveying transaction data, the method comprising: receiving, at the transaction device, transaction data from a transaction processing server of the transaction processing system; receiving, at the transaction device, a public key P S for the transaction processing server generated based on a cyclic group G and a private key d S for the transaction processing server; calculating, at the transaction device, a hash value h by inputting a hashing key K, known to both the transaction device and the transaction processing server, and a concatenation of the transaction device identifier I D and the transaction data for a transaction; generating, at the transaction device, an ephemeral public key P D for the transaction device using the hash value h and the cyclic group G; generating, at the transaction device, a shared secret S using the hash value h and the public key P S for the transaction processing server; encrypting, at the transaction device, the transaction device identifier I D for the transaction device using the shared secret S to generate an encrypted transaction device identifier C; generating, at the transaction device, the transaction message for the transaction system; and sending the transaction message to the transaction processing system, wherein the generation of the transaction message comprises providing data in the first data field of the transaction message that does not identify the transaction device, providing the encrypted transaction device identifier C in the second data field of the transaction message, providing the ephemeral public key P D in the third data field. receiving, at the transaction device, transaction data from a transaction processing server of the transaction processing system; receiving, at the transaction device, a public key P S for the transaction processing server generated based on a cyclic group G and a private key d S for the transaction processing server; calculating, at the transaction device, a hash value h by inputting a hashing key K, known to both the transaction device and the transaction processing server, and a concatenation of the transaction device identifier I D and the transaction data for a transaction; generating, at the transaction device, an ephemeral public key P D for the transaction device using the hash value h and the cyclic group G; generating, at the transaction device, a shared secret S using the hash value h and the public key P S for the transaction processing server; encrypting, at the transaction device, the transaction device identifier I D for the transaction device using the shared secret S to generate an encrypted transaction device identifier C; generating, at the transaction device, the transaction message for the transaction system; and sending the transaction message to the transaction processing system, wherein the generation of the transaction message comprises providing data in the first data field of the transaction message that does not identify the transaction device, providing the encrypted transaction device identifier C in the second data field of the transaction message, providing the ephemeral public key P D in the third data field.