added shared secret exchange via ElGamal