1. A method performed by a system including a processor and memory, the processor processing instructions stored in memory, the method comprising: obtaining input specifying one or more points on an elliptic curve defined over a finite prime field, each point having one or more coordinates in a first coordinate system, at least one point representing a plaintext message and at least one other point representing a cryptographic key; selecting a single first non-zero non-random value; transforming each coordinate of each point from the first coordinate system to a second coordinate system, wherein each coordinate of each transformed point in the second coordinate system has a first representation obtained by multiplying each coordinate of each transformed point in the first coordinate system by the single first non-random value raised to a non-zero integer power; generating a single random non-zero value; changing each transformed point in the second coordinate system from the first representation to a second representation, wherein each coordinate of each transformed point in the second representation is obtained by multiplying each coordinate of each transformed point in the first representation by the single random value raised to a non-zero integer power; performing one or more field operations on the second representation of each transformed point to obtain a second representation of ciphered points; and performing an inverse transformation and representation change on the second representation of each ciphered points, to obtain a ciphered message corresponding to the plaintext message.