No matter the medium of communication, all forms of encryption share the same “plain-text” and “cipher-text” transitioning.
To clarify, software dependent could be described to be something that requires the use of some piece of software during the encryption or decryption process. For example, a encryption program could be used by entering plain-text which is then piped through to generate cipher-text, similarly, a piece of software could be used in the decryption process as well where cipher-text is piped through to generate output of plain-text.
Both of these processes use algorithms to both decrypt and encrypt a set of data. For software independent forms of encryption, a key (or perhaps a password of some sort) is usually used to either decrypt or encrypt data. If a key is used for both the decryption and encryption of data, then the algorithm used would be under the category of symmetric cryptography, which is also known as private-key cryptography. On the flip side, asymmetric encryption (also known as public-key cryptography), uses two separate keys for encrypting and decrypting a set of data.
As documented in “Cryptography – Forms and Applications (Part 1)”, the following is a recap of the types of encryption one can encounter:
Software Dependent:
- Manual Encryption
- Transparent Encryption
- Semi-Transparent Encryption
Software Independent:
- Symmetric Encryption
- Asymmetric Encryption
Let’s look into each type to better understand the big picture, shall we?
First, the software dependent encryption:
Manual Encryption
Specifically, manual encryption requires the COMPLETE input of the user during the entire encryption process. Including the data to encrypt (whether its a file, piece of text, etc). The encryption algorithm is also chosen by the user. So an example of this would be if a user wanted to encrypt a file using a specific type of algorithm the user would then get a program that suits their needs and use it to encrypt the specific file or data that they choose. This means that it requires the user’s active participation throughout the entire encryption process. This can be a real downfall since the user may forget certain parts of his own data to encrypt, as well as making an input error.
Transparent Encryption
Like manual encryption, transparent encryption uses a computer program. However transparent encryption is quite the opposite of manual encryption. Most, if not all of the encryption is being done at a lower level of the system. This can allow the storage of the data in its encrypted form on the disk without the threat of loss of data from power outage or power surge. Therefore using the general security principles, a complete low-level transparent encryption can allow for the most secure data ever possible. Obviously since the encryption is done on a system level as opposed to application level the data in itself is not mobile. Thus, you cannot move the encrypted data from one computer to another without first decrypting it on one computer and putting it on another.
Semi-Transparent Encryption
Semi-Transparent encryption is also referred to as “On the fly” encryption. This type probably merges the strengths of both manual and transparent encryption with only having an issue with system efficiency. A great example of how a semi-transparent encryption would be executed would be the move of data to a separate volume and applying the encryption during the move process. Also a good example would be if it encrypted a set of files or data on computer shutdown and then decrypted on start-up. This causes a large strain on system resources, and can sometimes slow down the system a large amount.
Going with the understanding that both symmetric and asymmetric encryption do not necessarily have to be encrypted/decrypted with a computer program, one can see all forms of encryption distinctly in these categories:
Symmetric Encryption
Symmetric encryption is simply an encryption that shares a single key for the encryption and decryption process. Obviously this can generally be done electronically however this category can apply to any encryption even if it wasn’t generated with a computer program. Also, it is good to note that there are two types of Symmetric key algorithms, Stream ciphers, and Block ciphers. This can also be applied to any encryption that encrypted by yourself. A good example of this could be if one decided to substitute letters for numbers (a=1, b=2, c=3, etc) to encrypt/decrypt a set of text.
A Stream Cipher is an encryption algorithm that operates on one bit (or one byte) at a time. This allows for a faster encryption and decryption time, and ease of implementation, however the only downfall from a security perspective that it has is if the same key stream is used, information that is encrypted may be revealed. A good example of this would be the VEST cipher
A Block Cipher is a category of algorithm that encrypts and decrypts data or information in blocks or sets. The data is essentially broken down and then encrypted individually in blocks. A good example of two different block ciphers that are used often today are AES and DES.
Asymmetric Encryption
Opposite of symmetric encryption, asymmetric encryption uses a separate key for the encryption and decryption processes. This is usually referred to as public key cryptography, since there is a private key that is used for encrypting data, and a public key that is used for decrypting that data. In some cases, each user is giving key-pairs of their own public and private keys so that they are able to both send and receive messages. Some good examples of asymmetric encryption are RSA, DSA, and PGP.
Keep in mind that non-software dependent algorithms can still be implemented in software. With that said, you should have a good grasp of the basics of the forms of encryption.