1. A method executed by one or more computing devices for generating a public key for an elliptic curve Diffie-Hellman (ECDH) key exchange protocol without disclosing the private key during computation of the public key, the method comprising the steps of: generating, by at least one of the one or more computing devices, a random number; interpreting, by at least one of the one or more computing devices, that random number as a linearly transformed random number {circumflex over (r)} which results from an application of a linear transformation to an original random number r; and generating, by at least one of the one or more computing devices, a public key Q corresponding to a private key d using the linearly transformed random number {circumflex over (r)} by computing one or more auxiliary elliptic curve points based at least in part on the linearly transformed number {circumflex over (r)} and computing the public key Q based at least in part on the one or more auxiliary elliptic curve points; wherein Q=dG=(r+1)G, wherein G comprises an elliptic curve generator point, wherein Q is generated without disclosing either d or r within a memory of a computing device generating Q, and wherein the generated public key Q is compatible with the corresponding private key d.