Cryptography Overview
78 RSA BSAFE Crypto-C Developers Guide
Phase 1
The first party randomly generates a private value, a number k1, greater than 0 but
less than n. Similarly, the second party generates a random private value, k2.
Each party then computes a public value. To do this, they each compute Ri=kiP. For
each party, this is an elliptic curve point. The two parties exchange their public values.
These private and public values correspond to the private and public key components
of a key pair. The public value is generated in such a way that computing the private
value from the public value is computationally infeasible.
Phase 2
Each participant computes the agreed-upon secret key, z, from the others public
value, Rj, and their own private value, ki. The parties compute kiRj to get the elliptic
curve point S. This is a pair, (xS,yS). They then use the first coordinate of S, xS, as their
secret value.
Even with knowledge of the parameters and both public keys, an outside individual
will not be able to determine the secret key. One must have one of the private values
to determine the secret key. This means secret information is never sent over unsecure
lines.