Networking / Beginners

Algorithm

An algorithm is an established computational approach for solving a problem in a finite number of steps that are easily duplicable in the same manner given the same set of parameters. Technically, the algorithm must generate a result after a finite number of steps. In the world of cryptography, there are currently two classes of algorithms:

symmetric and asymmetric algorithms.

Symmetric Encryption Algorithms

Symmetric algorithms often use the same key for encryption and decryption. In symmetric encrypted algorithms, the key size is directly correlated with the strength of the encryption, so a large key size used with a good algorithm will be more difficult to break than a small key size. Symmetric algorithms are best suited for providing confidentiality requirements of a security system.

This type of algorithm is also referred to as a "secret key-based algorithm" because its mode of operation depends on a secret-the "key"-that is shared between the entities that need to communicate securely. It is therefore important that the secret, or key, is well protected at all times. The sharing of this key is also one of the main weaknesses of symmetric encryption algorithms. The other weakness of the symmetric algorithms is in the logistics of how the key is distributed to the parties that need it.

Symmetric algorithms are generally computationally less demanding when compared with asymmetric algorithm (discussed next) and as such tend to execute faster.

Following are examples of symmetric algorithms:

• Advanced Encryption Standard (AES)
• Triple Data Encryption Algorithm (3DES)
• Blowfish
• Carlisle Adams and Stafford Tavares v5 (CAST5)
• International Data Encryption Algorithm (IDEA)
• Twofish