What is the common secret that is established used for? What types of interactions are now possible?
3 Answers
It can be used as a key for a symmetric key algorithm.
It can be used to derive a key via a standard key derivation mechanism.
There are many protocols that require a common secret between the two communicating parties. An obvious example is the establishment of a confidential channel between them, with respect to eavesdroppers: once the DH key exchange takes place and a common secret exists, it can be used to derive a secret symmetric key (as Kodlu mentions in the answer) that feeds a symmetric encryption algorithm protecting the communication channel. Note that this protocol does not protect against active attackers, nor provides authentication.
-
$\begingroup$ As I understand it dh alone doesn't provide authentication but you can digitally sign the messages to perform an authenticated key exchange. $\endgroup$ Jun 17, 2016 at 20:33
What is the common secret that is established used for?
That of course depends on the protocol definition.
In general it is used to establish secret session keys between the two parties to communicate. Generally you need one or two keys for either party; a key for encryption and a key for message authentication. Nowadays authenticated modes of encryption are becoming popular, meaning that the encryption key is also used for authentication, reducing the number of keys to two.
I'm assuming 2-way communication for above.
What types of interactions are now possible?
This allows secure communication to take place. This means confidentiality, integrity and authenticity of the messages that are send/received.
This kind of construction can also be used for asymmetric encryption using DH primitives. An example of this is ECIES which stands for for Elliptic Curve Integrated Encryption Scheme. This hybrid scheme uses Elliptic Curve Diffie-Hellman keys internally.
Although the master secret can often be used directly as key material, usually a Key Based Key Derivation Function (KBKDF) is used to derive session keys.
This allows full use of the entropy contained within the master secret. It also allows to generate any number of keys using labels, and possibly information and salt. Nowadays HKDF is becoming popular which explicitly contains a key extract and expand part (first extracting the entropy, then expanding to the right key size).
Note that the KBKDF function is simply called a PRF in TLS 1.2 transport security. TLS 1.3 (draft) uses HKDF.