NSA

A method of exchanging a cryptographic key between two users that includes the steps of selecting a value p from p=(2dk−2ck−1)/r, p=(2dk−2(d−1)k+2(d−2)k− . . . −2k+1)/r, p=(2dk−2ck−1)/r, p=(2dk−2ck+1)/r, and p=(24k−23k+22k+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, W1, and W2, where W1 is the public key of a first user, and where W2 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.

Inventors:

Solinas, Jerome Anthony

Patent Number:

Technical domain:

Communications

FIle Date:

2001-08-09

Grant Date:

2006-01-31

Grant time:

1,636 days

Grant time percentile rank:

30

Claim count percentile rank:

1

Citations percentile rank:

1

'Cited by' percentile rank:

1

Assignee:

NATIONAL SECURITY AGENCY