The first publicly known public key memorandum of understanding that meets the above criteria was the Diffie-Hellman key exchange, in which two parties together expose a random generator in such a way that a listener cannot determine in a feasible way what is the resulting value used to make a common key. Key exchange protocols allow two or more parties to set up a common encryption key that allows them to encrypt or sign data they wish to exchange. Key exchange protocols typically use cryptography to achieve this goal. To achieve this goal, different cryptographic techniques can be used. Authenticated key protocols require the separate setting of a password (which can be smaller than a key) in a way that is both private and integrity. These are designed to withstand man-in-the-middle attacks and other active attacks against the password and established keys. For example, DH-EKE, SPEKE, and SRP are authenticated variations of Diffie-Hellman. Many key exchange systems allow one party to generate the key and send that key simply to the other party – the other party has no influence on the key. Using a key-agreement protocol avoids some key distribution issues related to these systems. .