This document discusses public-key cryptography and digital signatures. It begins with an introduction to symmetric and asymmetric key cryptography, including the basic concepts and differences between the two approaches. It then provides more details on public-key cryptography principles, including how public/private key pairs are generated and used. The document explains the RSA algorithm for public-key encryption and decryption in detail with examples. It also covers digital signature models and how they provide message authentication, integrity, and non-repudiation using public-key techniques. Diffie-Hellman key exchange is introduced as a method for securely transmitting a symmetric secret key between two parties.