A method of exchanging a cryptographic key between two users that includes the steps of selecting a value p from p=(2.sup.dk-2.sup.ck-1)/r, p=(2.sup.dk-2.sup.(d-1)k+2.sup.(d-2)k- . . . -2.sup.k+1)/r, p=(2.sup.dk-2.sup.ck-1)/r, p=(2.sup.dk-2.sup.ck+1)/r, and p=(2.sup.4k-2.sup.3k+2.sup.2k+1)/r; selecting an elliptic curve E and an order q; selecting a base point G on the elliptic curve E, where G is of order q; generating a private key w; generating a public key W=wG; distributing p, E, q, G, and Win an authentic manner; agreeing on p, E, q, G, W.sub.1, and W.sub.2, where W.sub.1 is the public key of a first user, and where W.sub.2 is the public key of a second users; each users generating a private integer; each users multiplying G by that user's private integer using a form of p agreed upon; each user transmitting the result of the last step to the other user; each users combining that user's private integer and public key with the other user's result of the tenth step and public key using the form of p agreed upon to form a common secret point between the users; and each user deriving the cryptographic key from the common secret point.Cryptographic key exchange method using efficient elliptic curve699313631/01/200609/08/200120061,636Solinas; Jerome A.US Patent and Trademark OfficeGoogle Patent Searchpatentimages.storage.googleapis.com/US6993136B2/US06993136-20060131-D00000.pngUniqueuserpublic keycommon secret pointprivate integersupcryptographic keyw.subelliptic curveefficient elliptic curvekey exchange method