11.3 Conventional Cryptographic Algorithms

11.3  Conventional Cryptographic Algorithms

     Conventional cryptographic algorithms have been there for a long long time, dating back thousands of years of human history. They have been used since pre-historic times to the present day. As technology has become sophisticated, as automatic computers were invented, as computers have become stupendously fast, conventional cryptographic algorithms have become increasingly complex to keep up with the times. Conventional cryptographic algorithms are very widely used at this time, and will be for the foreseeable future.

Conventional cryptographic algorithms are fast, and can be performed using specialized hardware as well. Conventional computer-based cryptographic algorithms use a large number of simple bit-based computation. These include permuting a number of bits, performing bit shifts, performing XOR computation between two sequences of bits, and performing table-based bit conversion. The tables that guide table-based conversion, usually called boxes, are very carefully constructed. Several such tables are used. A table has a small number of input bits and has some output bits. In table-based conversion, a large input bit string is divided into several small groups of bits. For each small group in the input, it is replaced by the corresponding output of the table. The carefully constructed tables, among other computations, make it difficult to break conventional cryptographic algorithms. Perl provides implementation for
several conventional cryptographic algorithms. These include Crypt::DES—the Data Encryption Standard (DES), Crypt::IDEA—the International Data Encryption Algorithm (IDEA), Crypt::Blowfish—Blowfish, and Crypt::Rijndael—the Advanced Encryption Standard. DES was adopted as the national non-military standard for encryption by the US Government in 1977. It was used very widely in industry—banks, financial companies, credit-card companies, as well Web browsers and servers. Over the years, DES has aged and has even been broken in the 1990s. Hence, a new national standard has been adopted in 2001. It is called the Advanced Encryption Standard or AES. Before its acceptance as the new national standard, it was known as the Rijndael encryption algorithm based on
a stylish combination of the last names of its inventors. Perl’s implementation of AES is called Crypt::Rijndael.

A conventional cryptographic algorithm uses a single key . The sender A encrypts his or her message with this key and sends it to the receiver B over unsecured lines that are open to wiretapping. The key  has to be given to B by A before data is transferred. B uses this key to decipher the data. A must generate the key  and safeguard it. A must deliver it securely to B. B must safeguard the key as well. Therefore, there are many possibilities for breach. Moreover, every pair (A,B) of sender and receiver must have a separate secure key. In the context of the Web where there are millions of individual companies and hundreds of millions of individual users, the number of keys required to allow any two arbitrary parties to communicate becomes enormous. Hence, conventional cryptographic algorithms are difficult to
implement and put in practice. However, they are fast to compute and widely used at this time, with some help from public-private key algorithms.

In this section, we discuss several conventional cryptographic algorithms although our focus is on the Data Encryption Standard (DES). The other algorithms briefly discussed are: IDEA, Blowfish and AES.