Recent from talks
Nothing was collected or created yet.
Advanced Encryption Standard process
View on Wikipedia
The Advanced Encryption Standard (AES), the symmetric block cipher ratified as a standard by National Institute of Standards and Technology of the United States (NIST), was chosen using a process lasting from 1997 to 2000 that was markedly more open and transparent than its predecessor, the Data Encryption Standard (DES). This process won praise 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.
A new standard was needed primarily because DES had a relatively small 56-bit key which was becoming vulnerable to brute-force attacks. In addition, the DES was designed primarily for hardware and was relatively slow when implemented in software.[1] While Triple-DES avoids the problem of a small key size, it is very slow even in hardware, it is unsuitable for limited-resource platforms, and it may be affected by potential security issues connected with the (today comparatively small) block size of 64 bits.
Start of the process
[edit]On January 2, 1997, NIST announced that they wished to choose a successor to DES to be known as AES. Like DES, this was to be "an unclassified, publicly disclosed encryption algorithm capable of protecting sensitive government information well into the next century."[2] 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 received a great many submissions during the three-month comment period.
The result of this feedback was a call for new algorithms on September 12, 1997.[3] 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, two, and three
[edit]In the nine months that followed, fifteen designs were created and submitted from several countries. They were, in alphabetical order: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, and Twofish.
In the ensuing debate, many advantages and disadvantages of the 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 feasibility in limited environments (smart cards with very limited memory, low gate count implementations, FPGAs).
Some designs fell due to cryptanalysis that ranged from minor flaws to significant attacks, 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[4][5][6]), and in August 1999 they announced[7] that they were narrowing the field from fifteen to five: MARS, RC6, Rijndael, Serpent, and Twofish. All five algorithms, commonly referred to as "AES finalists", were designed by cryptographers considered well-known and respected in the community. The AES2 conference votes were as follows:[8]
- Rijndael: 77 positive, 1 negative
- RC6: 79 positive, 6 negative
- Twofish: 64 positive, 3 negative
- MARS: 58 positive, 6 negative
- Serpent: 52 positive, 7 negative
- E2: 27 positive, 13 negative
- CAST-256: 16 positive, 18 negative
- SAFER+: 20 positive, 24 negative
- DFC: 22 positive, 27 negative
- Crypton: 16 positive, 31 negative
- DEAL: 1 positive, 71 negative
- HPC: 1 positive, 78 negative
- MAGENTA: 1 positive, 84 negative
- Frog: 1 positive, 86 negative
- LOKI97: 1 positive, 86 negative
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 design should be chosen as the AES. The AES3 conference votes were as follows:[9]
Selection of the winner
[edit]On October 2, 2000, NIST announced[10] that Rijndael had been selected as the proposed AES and started the process of making it the official standard by publishing an announcement in the Federal Register[11] on February 28, 2001 for the draft FIPS to solicit comments. 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."[12]
See also
[edit]- CAESAR Competition – Competition to design authenticated encryption schemes
References
[edit]- ^ "cryptology:: The Data Encryption Standard and the Advanced Encryption Standard". Britannica.com. Archived from the original on May 14, 2014. Retrieved October 9, 2018.
- ^ "Announcing Development of a Federal Information Processing Standard for Advanced Encryption Standard". csrc.nist.gov. January 2, 1992. Retrieved October 9, 2018.
- ^ "Requesting Candidate Algorithm Nominations for AES". csrc.nist.gov. September 12, 1997. Retrieved October 9, 2018.
- ^ Georgoudis, Dianelos. "Live from the Second AES Conference, day 1". Cryptome. Retrieved April 7, 2019.
- ^ Georgoudis, Dianelos. "Live from the Second AES Conference, day 2". Cryptome. Retrieved April 7, 2019.
- ^ Georgoudis, Dianelos. "Discussion about Second AES Conference". Google Groups. Retrieved November 30, 2019.
- ^ "AES Development - Cryptographic Standards and Guidelines". csrc.nist.gov. December 29, 2016. Retrieved October 9, 2018.
- ^ "Development of the Advanced Encryption Standard" (PDF). 2021. Archived (PDF) from the original on August 20, 2021. Retrieved November 24, 2023.
- ^ "AES3 Conference Feedback Form - Summary" (PDF). April 28, 2000. Archived (PDF) from the original on November 24, 2023. Retrieved November 24, 2023.
- ^ Swenson, Gayle (October 2, 2000). "Commerce Department Announces Winner of Global Information Security Competition". NIST. Retrieved October 9, 2018.
- ^ NIST (February 28, 2001). "Announcing Draft Federal Information Processing Standard (FIPS) for the Advanced Encryption Standard (AES) and Request for Comments" (PDF). Federal Register. 66: 12762. Archived (PDF) from the original on October 22, 2012. Retrieved October 9, 2018.
- ^ "Crypto-Gram: October 15, 2000 - Schneier on Security". www.schneier.com. October 15, 2000. Retrieved October 9, 2018.
External links
[edit]- A historical overview of the process can be found on NIST's website.
- On the sci.crypt newsgroup, there are extensive discussions about the AES process.
Advanced Encryption Standard process
View on GrokipediaBackground and Initiation
Need for Replacing DES
The Data Encryption Standard (DES), adopted by the National Institute of Standards and Technology (NIST) in 1977 as Federal Information Processing Standard (FIPS) 46, served as the primary symmetric-key block cipher for protecting unclassified but sensitive U.S. government data for nearly two decades.[3] However, DES's 56-bit key length, which provided only about 2^56 possible keys, became increasingly vulnerable to brute-force attacks as computational power advanced rapidly in the 1990s, with specialized hardware enabling exhaustive key searches that were once deemed impractical.[3] A pivotal demonstration of DES's insecurity came from the Electronic Frontier Foundation (EFF), which initiated its DES cracker project in 1997 and successfully broke a DES-encrypted message in 56 hours on July 15, 1998, using a custom-built machine costing under $250,000 that searched 88 billion keys per second.[4] This event underscored the practical feasibility of cracking DES with off-the-shelf technology, accelerating calls for a successor algorithm. As an interim solution pending the development of AES, NIST approved the use of the Triple Data Encryption Algorithm (3DES) in 1999 through FIPS 46-3, which mitigates DES's weaknesses by encrypting data three times with different keys, providing an effective 168-bit key length.[5][6] In response to these growing threats, NIST began serious planning for a DES replacement in 1996, formally recognizing by 1997 the urgent need for a more robust symmetric block cipher to safeguard federal information systems against emerging computational capabilities.[7] The agency emphasized that DES no longer provided adequate protection for unclassified but sensitive data in an era of escalating processing speeds and distributed computing resources.[3] To address these limitations and ensure long-term security, NIST specified that the new standard must support a 128-bit block size and key lengths of 128, 192, or 256 bits, offering exponentially greater resistance to brute-force and other attacks compared to DES.[8] These requirements aimed to future-proof the algorithm against anticipated advances in hardware and cryptanalytic techniques for at least several decades.[7]Announcement of the AES Program
In response to the growing vulnerabilities of the Data Encryption Standard (DES), particularly its 56-bit key length, the National Institute of Standards and Technology (NIST) initiated the development of a successor encryption standard.[9] On January 2, 1997, NIST published a notice in the Federal Register announcing its intent to establish the Advanced Encryption Standard (AES) program as a replacement for DES, soliciting public input to guide the process.[9] This announcement marked the formal launch of the AES development effort under NIST's Computer Security Division, with the primary goal of creating a voluntary Federal Information Processing Standard (FIPS) to protect sensitive unclassified government information well into the 21st century.[10] Building on the feedback received, NIST issued a formal call for algorithm nominations on September 12, 1997, also published in the Federal Register, emphasizing an open and transparent public evaluation process that encouraged international participation.[11] The program outlined initial broad criteria for candidate algorithms, requiring them to be symmetric block ciphers available in the public domain or freely licensable without royalty fees, and designed for efficient implementation in both software and hardware environments.[10][11]Call for Proposals and Submissions
Published Criteria for Algorithms
In September 1997, following the January 1997 announcement and an April workshop to refine draft requirements based on public comments, NIST published a detailed solicitation in the Federal Register calling for nominations of candidate algorithms for the Advanced Encryption Standard (AES). This solicitation specified that algorithms must be symmetric block ciphers with a fixed 128-bit block size and support for key lengths of 128, 192, and 256 bits, with optional support for additional key sizes to ensure flexibility in security levels.[12][13] The mandatory security criteria required algorithms to provide high resistance against all known cryptanalytic attacks, including differential, linear, and related-key attacks, with submitters obligated to provide a detailed analysis of the algorithm's security work factor and any potential weaknesses. Performance was a key requirement, demanding efficient implementation across diverse platforms, such as high-end software environments (e.g., on Intel Pentium processors), limited-resource hardware like 8-bit microprocessors and smart cards, and both encryption/decryption operations, with emphasis on throughput, memory usage, and power consumption where applicable. Additionally, designs had to be simple and elegant to facilitate independent cryptanalytic review, avoiding unnecessary complexity while supporting variable key lengths without mode-specific dependencies.[12] Procedural rules for submissions were stringent to promote transparency and openness: each nomination package had to include a complete technical specification, reference and optimized implementations in ANSI C and Java, comprehensive test vectors for validation, performance estimates across specified platforms, and a formal statement affirming that the algorithm was unencumbered by patents or other intellectual property restrictions, available royalty-free worldwide under terms consistent with U.S. government use. NIST encouraged submitters to design algorithms amenable to analysis by the cryptographic community, committing to a multi-round public evaluation process involving open conferences, independent expert reviews, and iterative rounds of testing over approximately three to four years, culminating in the selection of a single standard by 2000.[12]Receipt and Initial Screening of Proposals
The call for proposals for the Advanced Encryption Standard (AES) culminated in a submission deadline of June 15, 1998, by which NIST received 21 algorithm packages from contributors in 12 countries.[14][15] These submissions represented a diverse international effort, with proposals originating from academic, industry, and independent researchers responding to NIST's public solicitation for royalty-free, unclassified symmetric block ciphers meeting specified security and performance criteria.[14] Following receipt, NIST's internal AES review team conducted an initial screening to assess each submission for completeness, compliance with the published criteria (including support for 128-bit blocks and variable key sizes of 128, 192, and 256 bits), and basic validity, such as verifiable reference implementations and legal agreements ensuring public domain status.[14][15] Six proposals were rejected primarily due to incompleteness—such as missing documentation, non-compiling code, or failure to provide all required components—or issues like potential proprietary restrictions that violated the royalty-free requirement.[14][15] The remaining 15 algorithms were accepted as official candidates, advancing them to the first round of public evaluation.[14] On August 20, 1998, NIST announced the 15 accepted candidates during the First AES Candidate Conference (AES1) in Ventura, California, inviting broader cryptographic community input to inform subsequent analyses.[14][15] The selected algorithms, listed in alphabetical order, were:- CAST-256
- CRYPTON
- DEAL
- DFC
- E2
- FROG
- HPC (Hasty Pudding Cipher)
- LOKI97
- MAGENTA
- MARS
- RC6
- Rijndael
- SAFER+
- Serpent
- Twofish
First Round Evaluation
The 15 Candidate Algorithms
In August 1998, NIST announced the selection of 15 candidate algorithms for the first round of evaluation in the Advanced Encryption Standard (AES) development process. These candidates shared common traits as symmetric-key block ciphers, all supporting a minimum 128-bit block size and key sizes of 128, 192, and 256 bits, with designs originating from diverse academic, industry, and international teams across 12 countries.[16] Each submission package included detailed specifications, reference implementations in multiple programming languages, test vectors, and commitments to ongoing analysis by the submitters.[16] The candidates encompassed a variety of architectural approaches, including Feistel networks, substitution-permutation networks (SPNs), and hybrid structures. Below are concise overviews of their designs:- CAST-256, submitted by Carlisle Adams and Stafford Tavares of Entrust Technologies (Canada), employs an extended Feistel network with 48 rounds, incorporating fixed and variable rotations, table lookups, and modular additions/subtractions for diffusion.[16]
- CRYPTON, proposed by Chae Hoon Lim of Korea Advanced Institute of Science and Technology (South Korea), uses an SPN structure with 12 rounds, featuring data-dependent rotations, Boolean functions, and S-box lookups to promote parallelism.[16]
- DEAL, developed by Lars Knudsen of Katholieke Universiteit Leuven (Belgium), adopts a balanced Feistel network processing 128-bit blocks in 64-bit sub-blocks over 18 rounds (6 rounds per key size variant), relying on DES-like operations including XOR and modular addition.[16]
- DFC, from Jacques Patarin and the CNRS team (France), features a Feistel-like structure with 8 rounds, utilizing 64-bit multiplications for key mixing and linear feedback shift registers for enhanced diffusion.[16]
- E2, submitted by NTT (Japan), implements a 12-round SPN with data whitening, employing cyclic shifts, XOR operations, and key-dependent transformations to support efficient parallel processing.[16]
- FROG, by the TecApro team (Denmark), employs a non-standard 8-round structure with key-dependent permutations and substitution tables, emphasizing simplicity in its round function design.[16]
- HPC (Hasty Pudding Cipher), designed by Richard Schroeppel of the University of Illinois (USA), uses a variable-round (typically 72 for 256-bit keys) pipeline structure with quadratic residues for key scheduling and multiplications for core mixing.[16]
- LOKI97, proposed by Lawrie Brown, Josef Pieprzyk, and Jennifer Seberry of the University of Wollongong (Australia), follows a 16-round Feistel network with fixed S-boxes, rotations, and linear feedback functions for key expansion.[16]
- MAGENTA, from Michael Jacobson Jr., Lutz Brandt, and Klaus Huber of MDR AG (Germany), utilizes an unbalanced 18-round Feistel structure with modular arithmetic and key-dependent rotations to achieve diffusion.[16]
- MARS, developed by the IBM team led by Don Coppersmith (USA), combines a 32-round hybrid of Feistel and SPN layers, incorporating S-boxes, multiplications, and data-dependent rotations alongside key whitening.[16]
- RC6, submitted by Ron Rivest, Matt Robshaw, Ray Schneider, and Theo Schuster of RSA Laboratories (USA), employs a 20-round Feistel-like network with four parallel registers, featuring data-dependent rotations and 32-bit multiplications.[16]
- Rijndael, by Joan Daemen and Vincent Rijmen (Belgium), adopts an SPN with variable rounds (10 for 128-bit keys, 12 for 192-bit, 14 for 256-bit), using byte-oriented substitutions, row shifts, column mixing, and key addition for wide-trail diffusion.[16]
- SAFER+, proposed by James Massey and the Cylink team (Switzerland/USA), implements an 8-round SPN with linear and nonlinear layers, relying on 8-bit additions, XORs, and key-dependent expansions for simplicity.[16]
- Serpent, designed by Ross Anderson (UK), Eli Biham (Israel), and Lars Knudsen (Denmark/Norway), features a 32-round SPN with 8-bit S-boxes in a bit-slicing approach, horizontal and vertical mixing via linear transformations and key XORs.[16]
- Twofish, from Bruce Schneier and the Counterpane team (USA), uses a 16-round Feistel network with a pre- and post-whitening, incorporating key-dependent S-boxes, MDS matrices, and pseudohadamard transforms for flexibility.[16]
