Advanced Encryption Standard process

From Example Problems
Jump to navigation Jump to search

The Advanced Encryption Standard (AES), the block cipher ratified as a standard by National Institute of Standards and Technology (NIST), was chosen using a process markedly more open and transparent than its predecessor, the ageing Data Encryption Standard (DES). This process won plaudits from the open cryptographic community, and helped to increase confidence in the security of the winning algorithm from those who were suspicious of backdoors in the predecessor, DES.

The primary motivation for a new standard was the fact that DES has a relatively small 56-bit key which was becoming vulnerable to brute force attacks. In addition the DES was designed primarily for hardware and is relatively slow when implemented in software. While Triple-DES avoids the problem of a small key size, it is very slow in software, and also unsuitable for limited-resource platforms.

Start of the process

On January 2, 1997, NIST announced that they wished to choose a successor to the DES to be known as the AES. Like DES, this was to be "an unclassified, publicly disclosed encryption algorithm capable of protecting sensitive government information well into the next century." [1]. However, rather than simply publishing a successor, NIST asked for input from interested parties on how the successor should be chosen. Interest from the open cryptographic community was immediately intense, and NIST receieved a great many submissions during the three month comment period.

The result of this feedback was a call for new algorithms on September 2, 1997 [2]. The algorithms were all to be block ciphers, supporting a block size of 128 bits and key sizes of 128, 192, and 256 bits. Such ciphers were rare at the time of the announcement; the best known was probably Square.

Rounds one and two

In the nine months that followed, fifteen different designs were created and submitted from several different countries. They were, in alphabetical order:

CAST-256, CRYPTON, DEAL, DFC (cipher), E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, and Twofish.

In the ensuing debate, many advantages and disadvantages of the different candidates were investigated by cryptographers; they were assessed not only on security, but also on performance in a variety of settings (PCs of various architectures, smart cards, hardware implementations) and on their feasability in limited environments (smart cards with very limited memory, low gate count implementations, FPGAs).

Some designs fell due to cryptanalysis that ranged from merely glancing blows to highly destructive assaults, while others lost favour due to poor performance in various environments or through having little to offer over other candidates. NIST held two conferences to discuss the submissions (AES1, August 1998 and AES2, March 1999), and in April 1999 they announced that they were narrowing the field from fifteen to five: MARS, RC6, Rijndael, Serpent, and Twofish. All five originated from cryptographers well known and respected in the community.

A further round of intense analysis and cryptanalysis followed, culminating in the AES3 conference in April 2000, at which a representative of each of the final five teams made a presentation arguing why their standard should be chosen as the AES.

Selection of the winner

On October 2, 2000, NIST announced that Rijndael had been selected as the proposed AES, and underwent the process of being made the official standard. On November 26, 2001, NIST announced that AES was approved as FIPS PUB 197.

NIST won praises from the cryptographic community for the openness and care with which they ran the standards process. Bruce Schneier, one of the authors of the losing Twofish algorithm, wrote after the competition was over that "I have nothing but good things to say about NIST and the AES process" [3].

References

A historical overview of the process can be found on NIST's website [4].

On the sci.crypt newsgroup, there are extensive discussions about the AES process:

Template:Block ciphers

fr:Advanced Encryption Standard process it:Processo di standardizzazione dell'Advanced Encryption Standard