Encryption systems have evolved over time to securely transmit information. The Greeks first developed codes using letter and number substitutions or transpositions, while modern computers now use symmetric and public key encryption. Symmetric key encryption relies on both computers having the same key, while public key encryption uses separate private and public keys to encode and decode messages securely. Popular implementations of public key encryption include Secure Sockets Layer (SSL) and Transport Layer Security (TLS), which make use of certificate authorities to verify identities and encrypt web browser traffic. Hashing algorithms also play a key role by generating unique hash values from input data that cannot be traced back to the original.