In this section, we'll look at the practical aspects of cryptography, focusing on key elements such as symmetric, asymmetric and Diffie-Hellman encryption, hash functions and ending with SSL/TLS sockets. We won't go into detail about how these elements work, as cryptography itself would take up an entire course. Nevertheless, there will be a theoretical section followed by practical implementations.