A method of generating a cryptographic key in an authenticated manner
using coefficient splitting. Select a prime number p and an elliptic
curve of either a first class or a second class. Select a point P. The
first user generates r.sub.a, w.sub.a, and R.sub.a=r.sub.aP and
W.sub.a=w.sub.aP via coefficient splitting. The second user generates
r.sub.b, w.sub.b, and R.sub.b=r.sub.bP and W.sub.b=w.sub.bP via
coefficient splitting. After the users have exchanged the points R.sub.a,
W.sub.a, R.sub.b, W.sub.b, the first user generates c.sub.a, g.sub.a, and
c.sub.aW.sub.b, and g.sub.aR.sub.b via coefficient splitting, and the
second user generates c.sub.b, g.sub.b, and c.sub.bW.sub.a and
g.sub.bR.sub.a via coefficient splitting. Each user then sums the
corresponding results to form K and derives the cryptographic key from K
in the same user-definable manner. An unauthenticated key exchange method
is also presented.