X25519 is an elliptic curve Diffie-Hellman key exchange using Curve25519. It allows two parties to jointly agree on a shared secret using an insecure channel.
Alice Bob
----- ---
choose private key: choose private key:
d_A d_B
| |
v v
compute public key: compute public key:
Q_A = d_A * BasePoint_Mont Q_B = d_B * BasePoint_Mont
| |
v v
----- Begin Key Exchange Phase -----
| |
v v
compute shared secret: compute shared secret:
S_A = Montgomery(Q_B * d_A) S_B = Montgomery(Q_A * d_B)
| |
v v
----- End Key Exchange Phase -----
| |
v v
(S_A) (S_B)
Usage of x25519: -key string Private key. -keygen Generate X25519 asymmetric keypair. -pub string Remote's side Public key.
./x25519 -keygen // 2x
./x25519 -key $2ndprivatekey -pub $1stpublickey
./x25519 -key $1stprivatekey -pub $2ndpublickey
This project is licensed under the ISC License.