7
Public-Key Cryptography
So far, we have learned that secret keys are absolutely necessary to establish a secure communication channel. We have seen how one can use them to achieve different security objectives, and that you should use a different cryptographic key for each objective.
In this chapter, we will explain how key transport and key agreement over an insecure channel can be made to work in a secure manner. The solution to this problem is called public-key cryptography, in which there are two kinds of keys: private keys, which are to be kept secret, as usual, and are only known to a single entity, and public keys, which are – you guessed it – public.
In addition to explaining the fundamentals of public-key cryptography, we will also cover RFC 8446 Section 7 Cryptographic Computations, in particular subsection 7.4 (EC)DHE Shared Secret Calculation.
Summing up, in this chapter we will introduce you to the following topics:
The mathematical structures in which public...