*** Welcome to piglix ***

Cryptographic software


Encryption software is software that uses cryptography to prevent unauthorized access to digital information. Practically speaking, people use cryptography today to protect the digital information on their computers as well as the digital information that is sent to other computers over the Internet. As software that implements secure cryptography is complex to develop and difficult to get right, most computer users make use of the encryption software that already exists rather than writing their own.

As encryption software is an important component in providing protection from cybercrime, there are many, many software products that provide encryption. Because there are so many software products that provide encryption, a good way to begin understanding this topic is classification by categorization.

Software encryption uses a cipher to obscure the content into ciphertext, so one way to classify this type of software is by the type of cipher used. Ciphers can be categorized into two categories: public key ciphers, also known as asymmetric ciphers, and symmetric key ciphers. Thus, encryption software may be said to based on public key or symmetric key encryption.

Another way to classify software encryption is to categorize its purpose. Using this approach, software encryption may be classified into software that encrypts "data in transit" and software that encrypts "data at rest".

As it turns out, these two types of classifications has something in common: that is, data in transit generally uses public key ciphers, and data at rest generally uses symmetric key ciphers.

However, software encryption is not as simple at that.

To begin with, symmetric key ciphers can be further subdivided into stream ciphers and block ciphers. Stream ciphers typically encrypt plaintext a bit or byte at a time, and are most commonly used to encrypt real-time communications, such as audio and video information. The key is used to establish the initial state of a keystream generator, and the output of that generator is used to encrypt the plaintext. Block cipher algorithms split the plaintext into fixed-size blocks and encrypt one block at a time. For example, AES processes 16-byte blocks, while its predecessor DES encrypted blocks of eight bytes.


...
Wikipedia

...