Cryptography Overview
78 RSA BSAFE Crypto-C Developer’s Guide
Phase 1The 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 2Each participant computes the agreed-upon secret key, z, from the other’s 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.