Learn something new every day More Info... by email
Cryptographic algorithms are sequences of processes, or rules, used to encipher and decipher messages in a cryptographic system. In simple terms, they're processes that protect data by making sure that unwanted people can't access it. These algorithms have a wide variety of uses, including ensuring secure and authenticated financial transactions.
Most cryptography algorithms involve the use of encryption, which allows two parties to communicate while preventing unauthorized third parties from understanding those communications. Encryption transforms human readable plaintext into something unreadable, also known as ciphertext. The encrypted data is then decrypted to restore it, making it understandable to the intended party. Both encryption and decryption operate based on algorithms.
There are many different types of cryptographic algorithms, though most of them fit into one of two classifications — symmetric and asymmetric. Some systems, however, use a hybrid of both classifications. Symmetric algorithms, also known as symmetric-key or shared-key algorithms, work by the use of a key known only to the two authorized parties. While these can be implemented in the form of block ciphers or stream ciphers, the same key is used for both encrypting and decrypting the message. The Data Encryption Standard (DES) and Advanced Encryption Standard (AES) are the most popular examples of symmetric cryptography algorithms.
Asymmetric cryptography algorithms rely on a pair of keys — a public key and a private key. The public key can be revealed, but, to protect the data, the private key must be concealed. Additionally, encryption and decryption of the data must be done by the associated private and public keys. For example, data encrypted by the private key must be decrypted by the public key, and vice versa. RSA is one of the most common examples of this algorithm.
Symmetric algorithms are usually much faster than asymmetric algorithms. This is largely related to the fact that only one key is required. The disadvantage of shared-key systems, however, is that both parties know the secret key. Additionally, since the algorithm used is the public domain, it is actually the key that controls access to the data. For these reasons, the keys must be safe-guarded and changed relatively frequently to ensure security.
While cryptographic algorithms are used to provide security, they are not 100% fool-proof. Suboptimal system can be infiltrated and sensitive information can be compromised as a result. Rigorous testing of the algorithms, therefore, especially against established standards and identified weaknesses is vital to assuring the utmost security.
The below leads to a series of interrelated questions.
It is generally accepted that encrypted data is almost impossible to decipher without the correct key. Examples given are like finding a grain of sand on a beach in the solar system. Pretty awesome!
You wrote above, 'Encryption transforms human readable plaintext into something unreadable, also known as ciphertext'.
Would the data that is exchanged as a ciphertext using a known cryptographic program produce predictable patterns of data/ciphertext?
If the same identical plaintext was produced, transmitted or recorded twice using the same cryptographic program, would the resulting ciphertext also be identical?
If the ciphertext was identical, why would one not be able to break the cryptographic program by making small changes to the original data and then identifying these changes in the resulting ciphertext?
For example, if one changed one letter after another in a persons name and then noted the difference in the resulting ciphertext, could one not extrapolate the workings of the ciphertext? Thank you.