a system to exchange and authenticate public cryptographic keys between parties that share a common but secret password , using a pair of random numbers , a pair of diffie - hellman public keys computed from the random numbers and the password , a diffie - hellman symmetric secret key computed from the diffie - hellman public keys and the random numbers , and hashed values of arguments that depend upon these elements .