The strength of the algorithm is as important as the length of the key. Therefore, selection of an algorithm to design a cryptosystem forms the first and most formidable task. There are many aspects that require consideration in choosing a particular algorithm, such as:
- Relying on a published algorithm and hoping that the published algorithm is open to public scrutiny and hasn’t been broken
- Relying on some commercial product
- Relying on the algorithms proposed as the standards
- Writing a new algorithm
The only way an algorithm can be considered reliable is when it has been scrutinized thoroughly and the intellectual community finds no known attacks.
Until recently, encryption was performed through specialized hardware chips. The inherent advantage of using hardware for encryption is speed. These hardware devices were connected at the data transfer links in order to enable encryption and decryption. Hardware is also preferred in order to make the encryption system tamper-proof.
Software encryption is currently being widely used due to the software features of portability and flexibility. However, software encryption is very slow and is insecure in many aspects of key management and program manipulation.
A new blend of hardware and software is currently being used for encryption in order to combine the best features of both. This provides a considerable speed advantage and security. Additionally, it provides for ease of programming. Future devices will contain encryption modules along with other applications.