Historically, cryptography was used to ensure private communication between two people with some prior relationship. More recently, its scope has expanded to include things as diverse as data integrity, secure internet-wide communication, electronic cash, secure distributed computation, and more. Cryptography has also become ubiquitous. Perhaps unknowingly, we have all encountered applications of cryptography in our daily lives—whether by logging in using a password, making a web purchase over a secure connection, or applying a software update that is digitally signed. web purchase over a secure connection, or applying a software update that is digitally signed.