use mpz only on new random secret
mpz around diffie hellman modulus so it's only called once
merge