Hash encoding, or hashing, ensures that messages are not corrupted or tampered with during transmission. Hashing uses a mathematical function to create a numeric value that is unique to the data. If even one character is changed, the function output, called the message digest, will not be the same. However, the function is one way. Knowing the message digest does not allow an attacker to recreate the message, making it difficult for someone to intercept and change messages. Hash encoding is shown in Figure 1. The most popular hashing algorithms are Secure Hash Algorithm (SHA), Message Digest 5 (MD5), and Data Encryption Standard (DES).
Symmetric encryption requires both sides of an encrypted conversation to use an encryption key to encode and decode the data. The sender and receiver must use identical keys. Symmetric encryption is shown in Figure 2. DES and 3DES are examples of symmetric encryption.
Asymmetric encryption requires two keys, a private key and a public key. The public key can be widely distributed, including emailing in cleartext or posting on the web. The private key is kept by an individual and must not be disclosed to any other party. These keys can be used in two ways.
Public key encryption is used when a single organization needs to receive encrypted text from a number of sources. The public key can be widely distributed and used to encrypt the messages. The intended recipient is the only party to have the private key, which is used to decrypt the messages.
In the case of digital signatures, a private key is required for encrypting a message, and a public key is needed to decode the message. This approach allows the receiver to be confident about the source of the message because only a message encrypted using the originator’s private key could be decrypted by the public key. Asymmetric encryption using digital signatures is shown in Figure 3. RSA is the most popular example of asymmetric encryption.