Encryption is a process of transforming information (referred to as plaintext) into an unreadable form (referred to as ciphertext). Decryption is a transformation that recovers the plaintext from the ciphertext. A cipher performs a transformation that is controlled using a symmetric key (same key used for ciphering and deciphering) or an asymmetric key (different keys used for ciphering and deciphering) such that when the key is input to the cipher along with plaintext, the plaintext is enciphered via an encryption transformation, and when the key is input to the cipher along with ciphertext, the ciphertext is deciphered via a decryption transformation (which is an inverse of the encryption transformation). Encryption transformations are performed by an encryption algorithm (function) of a cipher, and decryption transformations are performed by a decryption algorithm (function) of the cipher.
Encryption is used to protect military and civilian systems, examples of which include internet e-commerce, mobile telephone networks, bank automatic teller machines, etc. As technology and computing power advance, new vulnerabilities are commonly discovered for encryption mechanisms that were previously considered secure. When such weaknesses are discovered, new encryption mechanisms and techniques are required to maintain security of sensitive information.
FIG. 1 illustrates a conventional encryption system 100. In the conventional encryption system 100, a message source 105 generates a message that includes plaintext data and sends it to encipherer 115. Encipherer 115 also receives a key from a key source 110. Encipherer 115 uses the key to encrypt the plaintext data into ciphertext, and then transmits the ciphertext to a decipherer 120 over a potentially unsecure channel. Decipherer 120 also receives the key from the key source 110 via a secure channel. Decipherer 120 decrypts the ciphertext using the key to re-create the plaintext data, and then transmits the plaintext data to a destination 130. The transmission of the ciphertext between the encipherer 115 and a decipherer 120 is exposed to the risk that a cryptanalyst 125 will intercept the ciphertext and attempt to decrypt it to re-create the plaintext. Therefore, it is important that the encipherer 115 and decipherer 120 use an encryption scheme that is resistant to decryption attacks.