All Topics  
Advanced Encryption Standard

 

   Email Print
   Bookmark   Link






 

Advanced Encryption Standard



 
 
In cryptography
Cryptography

Cryptography is the practice and study of hiding information. In modern times cryptography is considered a branch of both mathematics and computer science and is affiliated closely with information theory, computer security and engineering....
, the Advanced Encryption Standard (AES) is an encryption
Encryption

In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key ....
 standard adopted by the U.S. government
Federal government of the United States

The Federal Government of the United States is the central current reigning United States governmental body, established by the United States Constitution....
. The standard comprises three block cipher
Block cipher

In cryptography, a block cipher is a symmetric key algorithm cipher which operates on fixed-length groups of bits, termed blocks, with an unvarying transformation....
s, AES-128, AES-192 and AES-256, adopted from a larger collection originally published as Rijndael. Each AES cipher has a 128 bit block size, with key
Key (cryptography)

In cryptography, a key is a piece of information that determines the functional output of a cryptographic algorithm or cipher. Without a key, the algorithm would have no result....
 sizes of 128, 192 and 256 bits, respectively. The AES ciphers have been analyzed extensively and are now used worldwide, as was the case with its predecessor, the Data Encryption Standard
Data Encryption Standard

The Data Encryption Standard is a block cipher that was selected by National Bureau of Standards as an official Federal Information Processing Standard for the United States in 1976 and which has subsequently enjoyed widespread use internationally....
 (DES).

AES was announced by National Institute of Standards and Technology
National Institute of Standards and Technology

The National Institute of Standards and Technology , known between 1901 and 1988 as the National Bureau of Standards , is a measurement standards laboratory which is a non-regulatory agency of the United States Department of Commerce....
 (NIST) as U.S.






Discussion
Ask a question about 'Advanced Encryption Standard'
Start a new discussion about 'Advanced Encryption Standard'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In cryptography
Cryptography

Cryptography is the practice and study of hiding information. In modern times cryptography is considered a branch of both mathematics and computer science and is affiliated closely with information theory, computer security and engineering....
, the Advanced Encryption Standard (AES) is an encryption
Encryption

In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key ....
 standard adopted by the U.S. government
Federal government of the United States

The Federal Government of the United States is the central current reigning United States governmental body, established by the United States Constitution....
. The standard comprises three block cipher
Block cipher

In cryptography, a block cipher is a symmetric key algorithm cipher which operates on fixed-length groups of bits, termed blocks, with an unvarying transformation....
s, AES-128, AES-192 and AES-256, adopted from a larger collection originally published as Rijndael. Each AES cipher has a 128 bit block size, with key
Key (cryptography)

In cryptography, a key is a piece of information that determines the functional output of a cryptographic algorithm or cipher. Without a key, the algorithm would have no result....
 sizes of 128, 192 and 256 bits, respectively. The AES ciphers have been analyzed extensively and are now used worldwide, as was the case with its predecessor, the Data Encryption Standard
Data Encryption Standard

The Data Encryption Standard is a block cipher that was selected by National Bureau of Standards as an official Federal Information Processing Standard for the United States in 1976 and which has subsequently enjoyed widespread use internationally....
 (DES).

AES was announced by National Institute of Standards and Technology
National Institute of Standards and Technology

The National Institute of Standards and Technology , known between 1901 and 1988 as the National Bureau of Standards , is a measurement standards laboratory which is a non-regulatory agency of the United States Department of Commerce....
 (NIST) as U.S. FIPS
Federal Information Processing Standard

Federal Information Processing Standards are publicly announced Standardizations developed by the United States Federal government for use by all non-military government agencies and by government contractors....
 PUB 197 (FIPS 197) on November 26, 2001 after a 5-year standardization process in which fifteen competing designs were presented and evaluated before Rijndael was selected as the most suitable (see Advanced Encryption Standard process
Advanced Encryption Standard process

The Advanced Encryption Standard , the block cipher ratified as a standard by National Institute of Standards and Technology of the United States , was chosen using a process markedly more open and transparent than its predecessor, the aging Data Encryption Standard ....
 for more details). It became effective as a standard May 26, 2002. , AES is one of the most popular algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
s used in symmetric key cryptography. It is available in many different encryption packages. AES is the first publicly accessible and open cipher
Cipher

In cryptography, a cipher is an algorithm for performing encryption and decryption — a series of well-defined steps that can be followed as a procedure....
 approved by the NSA
National Security Agency

The National Security Agency/Central Security Service is a Cryptology Intelligence agency of the Federal government of the United States, administered as part of the United States Department of Defense....
 for top secret
Top Secret

Top Secret generally refers to the highest acknowledged level of classified information.Top Secret may also refer to:*Top Secret , codename for an experimental multiplayer online game collaboration...
 information (see Security of AES
Advanced Encryption Standard

In cryptography, the Advanced Encryption Standard is an encryption standard adopted by the Federal government of the United States. The standard comprises three block ciphers, AES-128, AES-192 and AES-256, adopted from a larger collection originally published as Rijndael. Each AES cipher has a 128 bit block size, with key sizes of 128...
, below).

The Rijndael cipher
Cipher

In cryptography, a cipher is an algorithm for performing encryption and decryption — a series of well-defined steps that can be followed as a procedure....
 was developed by two Belgian
Belgium

* A small German-speaking Community of Belgium exists in eastern Wallonia. Belgium's linguistic diversity and related political and cultural conflicts are reflected in the history of Belgium and a complex Communities and regions of Belgium....
 cryptographers, Joan Daemen
Joan Daemen

Joan Daemen is a Belgian cryptographer and one of the designers of Rijndael, the Advanced Encryption Standard , together with Vincent Rijmen. He has also designed or co-designed the MMB, Square , SHARK , NOEKEON, 3-Way, and BaseKing block ciphers....
 and Vincent Rijmen
Vincent Rijmen

Vincent Rijmen is a Belgian cryptographer and one of the designers of the Rijndael, the Advanced Encryption Standard. Rijmen is also the co-designer of the WHIRLPOOL cryptographic hash function, and the block ciphers Anubis , KHAZAD, Square , NOEKEON and SHARK....
, and submitted by them to the AES selection process. Rijndael is a portmanteau
Portmanteau word

A portmanteau word is used broadly to mean a blend of two words, and narrowly in linguistics fields to mean only a blend of two or more function words....
 of the names of the two inventors and is .

Description of the cipher

AES is fast in both software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 and hardware
Hardware

Hardware is a general term that refers to the physical cultural artifacts of a technology. It may also mean the physical components of a computer system, in the form of computer hardware....
, is relatively easy to implement, and requires little memory
Computer memory

Computer memory is usually meant to refer to the semiconductor technology that is used to store information in Electronics devices. Current primary computer memory makes use of integrated circuits consisting of silicon-based transistors....
. Unlike its predecessor DES, which used a Feistel network, the AES cipher is a substitution-permutation network
Substitution-permutation network

In cryptography, an SP-network, or substitution-permutation network , is a series of linked mathematical operations used in block cipher algorithms such as Advanced Encryption Standard....
.

AES has a fixed block size
Block size (cryptography)

In modern cryptography, symmetric key algorithm ciphers are generally divided into stream ciphers and block ciphers. Block ciphers operate on a fixed length string of bits....
 of 128 bit
Bit

A bit is a binary numeral system numerical digit, taking a value of either 0 or 1. Binary digits are a basic unit of information Computer data storage and transmission in digital computing and digital information theory....
s and a key size
Key size

In cryptography, key size or key length is the size of the key used in a cryptographic algorithm . An algorithm's key length is distinct from its cryptographic security, which is a logarithmic measure of the fastest known computational attack on the algorithm, also measured in bits....
 of 128, 192, or 256 bits, whereas Rijndael can be specified with block and key sizes in any multiple of 32 bits, with a minimum of 128 bits and a maximum of 256 bits.

Assuming one byte
Byte

A byte is a basic unit of measurement of Computer storage in computer science. In many computer architectures it is a Byte addressing memory address space....
 equals 8 bits, the fixed block size of 128 bits is 128 ÷ 8 = 16 bytes. AES operates on a 4×4 array of bytes, termed the state (versions of Rijndael with a larger block size have additional columns in the state). Most AES calculations are done in a special finite field
Finite field arithmetic

Arithmetic in a finite field is different from standard integer arithmetic. There are a limited number of elements in the finite field; all operations performed in the finite field result in an element within that field....
.

The AES cipher is specified as a number of repetitions of transformations rounds that convert the input plain-text into the final output of cipher-text. Each round consists of several processing steps, including one that depends on the encryption key. A set of reverse rounds are applied to transform cipher-text back into the original plain-text using the same encryption key.

High-level description of the algorithm


  • KeyExpansion using Rijndael's key schedule
    Rijndael key schedule

    Advanced Encryption Standard uses a key schedule to expand a short key into a number of separate round keys. This is known as the Rijndael key schedule....
  • Initial Round
  1. AddRoundKey
  • Rounds
  1. SubBytes—a non-linear substitution step where each byte is replaced with another according to a lookup table
    Rijndael S-box

    This article describes the Substitution box used by the Advanced Encryption Standard cryptographic algorithm.The S-box is generated by determining the multiplicative inverse for a given number in Finite field arithmetic ....
    .
  2. ShiftRows—a transposition step where each row of the state is shifted cyclically a certain number of steps.
  3. MixColumns—a mixing operation which operates on the columns of the state, combining the four bytes in each column
  4. AddRoundKey—each byte of the state is combined with the round key; each round key is derived from the cipher key using a key schedule
    Key schedule

    In cryptography, the so-called product ciphers are a certain kind of ciphers, where the ciphering of data is done in "rounds". The general setup of each round is the same, except for some hard-coded parameters and a part of the key , called a subkey....
    .
  • Final Round (no MixColumns)
  1. SubBytes
  2. ShiftRows
  3. AddRoundKey


The SubBytes step

Aes Subbytes
In the SubBytes step, each byte in the array is updated using an 8-bit substitution box
Substitution box

In cryptography, an S-box is a basic component of symmetric key algorithms which performs substitution. In block ciphers, they are typically used to obscure the relationship between the Key and the ciphertext — Claude Shannon property of confusion and diffusion....
, the Rijndael S-box
Rijndael S-box

This article describes the Substitution box used by the Advanced Encryption Standard cryptographic algorithm.The S-box is generated by determining the multiplicative inverse for a given number in Finite field arithmetic ....
. This operation provides the non-linearity in the cipher
Cipher

In cryptography, a cipher is an algorithm for performing encryption and decryption — a series of well-defined steps that can be followed as a procedure....
. The S-box used is derived from the multiplicative inverse
Multiplicative inverse

In mathematics, a multiplicative inverse or reciprocal for a number x, denoted by 1⁄x or x −1, is a number which when multiplied by x yields the multiplicative identity, 1....
 over GF
Finite field

In abstract algebra, a finite field or Galois field is a field that contains only finitely many elements. Finite fields are important in number theory, algebraic geometry, Galois theory, cryptography, and coding theory....
(28), known to have good non-linearity properties. To avoid attacks based on simple algebraic properties, the S-box is constructed by combining the inverse function with an invertible affine transformation
Affine transformation

In geometry, an affine transformation or affine map or an affinity between two vector spaces consists of a linear transformation followed by a translation :...
. The S-box is also chosen to avoid any fixed points (and so is a derangement
Derangement

In combinatorics mathematics, a derangement is a permutation in which none of the elements of the set appear in their original positions. That is, it is a bijection f from a Set S into itself with no fixed point : for all x in S, f ≠ x....
), and also any opposite fixed points.

The ShiftRows step

Aes Shiftrows
The ShiftRows step operates on the rows of the state; it cyclically shifts the bytes in each row by a certain offset. For AES, the first row is left unchanged. Each byte of the second row is shifted one to the left. Similarly, the third and fourth rows are shifted by offsets of two and three respectively. For the block of size 128 bits and 192 bits the shifting pattern is the same. In this way, each column of the output state of the ShiftRows step is composed of bytes from each column of the input state. (Rijndael variants with a larger block size have slightly different offsets). In the case of the 256-bit block, the first row is unchanged and the shifting for second, third and fourth row is 1 byte, 3 bytes and 4 bytes respectively - although this change only applies for the Rijndael cipher when used with a 256-bit block, which is not used for AES.

The MixColumns step

Aes Mixcolumns
In the MixColumns step, the four bytes of each column of the state are combined using an invertible linear transformation
Linear transformation

In mathematics, a linear map is a function between two vector spaces that preserves the operations of vector addition and scalar multiplication....
. The MixColumns function takes four bytes as input and outputs four bytes, where each input byte affects all four output bytes. Together with ShiftRows, MixColumns provides diffusion in the cipher. Each column is treated as a polynomial over GF(28) and is then multiplied modulo with a fixed polynomial . The MixColumns step can also be viewed as a multiplication by a particular MDS matrix
MDS matrix

An MDS matrix is a matrix representing a function with certain diffusion properties that have useful applications in cryptography. Technically, an m×n matrix A over a finite field K is an MDS matrix if it is the transformation matrix...
 in Finite field
Finite field

In abstract algebra, a finite field or Galois field is a field that contains only finitely many elements. Finite fields are important in number theory, algebraic geometry, Galois theory, cryptography, and coding theory....
. This process is described further in the article Rijndael mix columns
Rijndael mix columns

The MixColumns operation performed by the Rijndael cipher, along with the shift-rows step, is the primary source of confusion and diffusion in Rijndael....
.

The AddRoundKey step

Aes Addroundkey
In the AddRoundKey step, the subkey is combined with the state. For each round, a subkey is derived from the main key
Key (cryptography)

In cryptography, a key is a piece of information that determines the functional output of a cryptographic algorithm or cipher. Without a key, the algorithm would have no result....
 using Rijndael's key schedule
Rijndael key schedule

Advanced Encryption Standard uses a key schedule to expand a short key into a number of separate round keys. This is known as the Rijndael key schedule....
; each subkey is the same size as the state. The subkey is added by combining each byte of the state with the corresponding byte of the subkey using bitwise XOR.

Optimization of the cipher

On systems with 32-bit or larger words, it is possible to speed up execution of this cipher by combining SubBytes and ShiftRows with MixColumns, and transforming them into a sequence of table lookups. This requires four 256-entry 32-bit tables, which utilizes a total of four kilobytes (4096 bytes) of memory—one kilobyte for each table. A round can now be done with 16 table lookups and 12 32-bit exclusive-or operations, followed by four 32-bit exclusive-or operations in the AddRoundKey step.

If the resulting four kilobyte table size is too large for a given target platform, the table lookup operation can be performed with a single 256-entry 32-bit table by the use of circular rotates.

Using a byte-oriented approach it is possible to combine the SubBytes, ShiftRows, and MixColumns steps into a single round operation.

Security

As of 2006, the only successful attacks against AES implementations have been side-channel attacks. The National Security Agency
National Security Agency

The National Security Agency/Central Security Service is a Cryptology Intelligence agency of the Federal government of the United States, administered as part of the United States Department of Defense....
 (NSA) reviewed all the AES finalists, including Rijndael, and stated that all of them were secure enough for US Government non-classified data. In June 2003, the US Government announced that AES may be used to protect classified information
Classified information

Classified information is sensitive information to which access is restricted by law or regulation to particular classes of persons. A formal security clearance is required to handle classified documents or access classified data....
:
The design and strength of all key lengths of the AES algorithm (i.e., 128, 192 and 256) are sufficient to protect classified information up to the SECRET level. TOP SECRET information will require use of either the 192 or 256 key lengths. The implementation of AES in products intended to protect national security systems and/or information must be reviewed and certified by NSA prior to their acquisition and use."
Two of NSA's algorithms for protection of TOP SECRET information (BATON
Baton

Baton may refer to:In stick-like objects:*Baton , a short thin stick used for directing a musical performance*Baton , an object transferred by runners in a relay race...
 and JUNIPER
Juniper

Junipers are coniferous plants in the genus Juniperus of the cypress family Cupressaceae. Depending on taxonomic viewpoint, there are between 50-67 species of juniper, widely distributed throughout the northern hemisphere, from the Arctic, south to tropical Africa in the Old World, and to the mountains of Central America....
) use 160-bit keys; NSA may simply have required the longer AES key lengths to provide a similar security margin against brute-force attacks.

The most common way to attack block ciphers is to try various attacks on versions of the cipher with a reduced number of rounds. AES has 10 rounds for 128-bit keys, 12 rounds for 192-bit keys, and 14 rounds for 256-bit keys. By 2006, the best known attacks were on 7 rounds for 128-bit keys, 8 rounds for 192-bit keys, and 9 rounds for 256-bit keys.

Cryptographers worry about the security of AES. They feel that the margin between the number of rounds specified in the cipher and the best known attacks is too small for comfort. There is a risk that some way to improve such attacks might be found and then the cipher could be broken. In this meaning, a cryptographic
Cryptanalysis

Cryptanalysis is the study of methods for obtaining the meaning of encrypted information, without access to the secret information which is normally required to do so....
 "break" is anything faster than an exhaustive search
Brute force attack

In cryptanalysis, a brute force attack is a method of defeating a cryptographic scheme by systematically trying a large number of possibilities; for example, a large number of the possible key s in a key space in order to decrypt a message....
, thus an attack against a 128-bit-key AES requiring 'only' 2120 operations (compared to 2128 possible keys) would be considered a break even though it would be, at present, quite infeasible. In practical application, any break of AES which is only that "good" would be irrelevant. At present, such concerns can be ignored. The largest successful publicly-known brute force attack
Brute force attack

In cryptanalysis, a brute force attack is a method of defeating a cryptographic scheme by systematically trying a large number of possibilities; for example, a large number of the possible key s in a key space in order to decrypt a message....
 has been against a 64-bit RC5
RC5

In cryptography, RC5 is a block cipher notable for its simplicity. Designed by Ron Rivest in 1994, RC stands for "Rivest Cipher", or alternatively, "Ron's Code" ....
 key by distributed.net
Distributed.net

distributed.net is a worldwide distributed computing effort that is attempting to solve large scale problems using otherwise Idle time. It is officially recognized as a non-profit organization under U.S....
.

Other debates center around the mathematical
Mathematics

Mathematics is the study of quantity, structure, space, change, and related topics of pattern and form. Mathematicians seek out patterns whether found in numbers, space, natural science, computers, imaginary abstractions, or elsewhere....
 structure of AES. Unlike most other block ciphers, AES has a very neat algebra
Algebra

Algebra is a branch of mathematics concerning the study of structure , relation , and quantity. Together with geometry, mathematical analysis, combinatorics, and number theory, algebra is one of the main branches of mathematics....
ic description. This has not yet led to any attacks. During the AES process, developers of competing algorithms wrote of Rijndael, "...we are concerned about [its] use...in security-critical applications." However, at the end of the AES process, Bruce Schneier, a developer of Twofish, wrote that while he thought academic attacks on Rijndael would be developed someday, "I do not believe that anyone will ever discover an attack that will allow someone to read Rijndael traffic."

In 2002, a theoretical attack, termed the "XSL attack
XSL attack

In cryptography, the XSL attack is a method of cryptanalysis for block ciphers. The attack was first published in 2002 by researchers Nicolas Courtois and Josef Pieprzyk....
", was announced by Nicolas Courtois
Nicolas Courtois

Nicolas Courtois is a cryptographer, philosopher, film director, bird specialist, and amateur magician. He is notable for creating the XSL attack....
 and Josef Pieprzyk
Josef Pieprzyk

Josef Pieprzyk is a professor at Macquarie University in Sydney, Australia.He has worked on cryptography, in particular the XSL attack. He collaborated in the invention of the LOKI and LOKI97 block ciphers and the HAVAL cryptographic hash function....
, showing a potential weakness in the AES algorithm. Several cryptography experts have found problems in the underlying mathematics of the proposed attack, suggesting that the authors may have made a mistake in their estimates. Whether this line of attack can be made to work against AES remains an open question. At present, the XSL attack against AES appears speculative; it is unlikely that the current attack could be carried out in practice.

Side-channel attacks

Side-channel attack
Side channel attack

In cryptography, a side channel attack is any attack based on information gained from the physical implementation of a cryptosystem, rather than brute force attack or theoretical weaknesses in the algorithms ....
s do not attack the underlying cipher and so have nothing to do with its security as described here, but attack implementations of the cipher on systems which inadvertently leak data. There are several such known attacks on certain implementations of AES.

In April 2005, D.J. Bernstein
Daniel J. Bernstein

Daniel Julius Bernstein is a professor at the University of Illinois at Chicago, a mathematician, a cryptologist, and a programmer. Bernstein is the author of the computer software qmail, publicfile and djbdns....
 announced a cache-timing attack that he used to break a custom server that used OpenSSL
OpenSSL

OpenSSL is an open source implementation of the Transport Layer Security protocols. The core library implements the basic cryptography functions and provides various utility functions....
's AES encryption. The custom server was designed to give out as much timing information as possible (the server reports back the number of machine cycles taken by the encryption operation), and the attack required over 200 million chosen plaintexts. Some say the attack is not practical over the internet with a distance of one or more hops; Bruce Schneier
Bruce Schneier

Bruce Schneier is an American cryptographer, computer security specialist, and writer. He is the author of several books on computer security and cryptography, and is the founder and chief technology officer of BT Counterpane, formerly Counterpane Internet Security, Inc....
 called the research a "nice timing attack."

In October 2005, Dag Arne Osvik, Adi Shamir
Adi Shamir

Adi Shamir is an Israeli cryptography. He was one of the inventors of the RSA algorithm , one of the inventors of the Feige-Fiat-Shamir Identification Scheme , one of the inventors of differential cryptanalysis and has made numerous contributions to the fields of cryptography and computer science....
 and Eran Tromer presented a paper demonstrating several cache-timing attacks against AES. One attack was able to obtain an entire AES key after only 800 operations triggering encryptions, in a total of 65 milliseconds. This attack requires the attacker to be able to run programs on the same system that is performing AES.

Tadayoshi Kohno wrote a paper entitled "Attacking and Repairing the WinZip Encryption Scheme" showing possible attacks against the WinZip
WinZip

WinZip is a proprietary file archiver for Microsoft Windows, developed by WinZip Computing . It natively uses the PKZIP format but also has various levels of support for other List of archive formats....
 implementation (the zip archive's metadata isn't encrypted).

FIPS validation

The Cryptographic Module Validation Program
CMVP

The Cryptographic Module Validation Program is a joint American and Canadian security accreditation program for cryptographic modules. The program is available to any vendors who seek to have their products certified for use by the U.S....
 (CMVP) is operated jointly by the United States Government's National Institute of Standards and Technology
National Institute of Standards and Technology

The National Institute of Standards and Technology , known between 1901 and 1988 as the National Bureau of Standards , is a measurement standards laboratory which is a non-regulatory agency of the United States Department of Commerce....
 (NIST) Computer Security Division and the Communications Security Establishment
Communications Security Establishment

The Communications Security Establishment Canada is the Canada Government of Canada's national Cryptology Intelligence agency. Administered under the Department of National Defence , it is charged with the duty of keeping track of foreign SIGINT , and protecting Canadian government electronic information and communication networks....
 (CSE) of the Government of Canada. The use of validated cryptographic modules is required by the United States Government for all unclassified uses of cryptography. The Government of Canada also recommends the use of FIPS 140
FIPS 140

The Federal Information Processing Standard 140 are series of publications numbered 140 which are a United States government of the United States computer security standardization that specify requirements for cryptographic modules....
 validated cryptographic modules in unclassified applications of its departments.

Although NIST publication 197 ("FIPS 197") is the unique document that covers the AES algorithm, vendors typically approach the CMVP under FIPS 140 and ask to have several algorithms (such as Triple DES
Triple DES

In cryptography, Triple DES is a block cipher formed from the Data Encryption Standard cipher by using it three times....
 or SHA1) validated at the same time. Therefore, it is rare to find cryptographic modules that are uniquely FIPS 197 validated and NIST itself does not generally take the time to list FIPS 197 validated modules separately on its public web site. Instead, FIPS 197 validation is typically just listed as an "FIPS approved: AES" notation (with a specific FIPS 197 certificate number) in the current list of FIPS 140 validated cryptographic modules.

FIPS validation is challenging to achieve both technically and fiscally. There is a standardized battery of tests as well as an element of source code review that must be passed over a period of several days. The cost to perform these tests through an approved laboratory can be significant (e.g., well over $10,000 US) and does not include the time it takes to write, test, document and prepare a module for validation. After validation, modules must be resubmitted and reevaluated if they are changed in any way.

Test vectors

Test vectors are a set of known ciphers for a given input and key. For example, for the 128-bit key "00010203050607080A0B0C0D0F101112" (16 bytes represented as two hexadecimal
Hexadecimal

In mathematics and computer science, hexadecimal is a numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 09 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen....
 characters per byte), and an input "506812A45F08C889B97F5980038B8359" the AES-128 cipher output should be "D8F532538289EF7D06B506A4FD5BE9C9".

Implementations


Libraries


Rijndael is free for any use public or private, commercial or non-commercial. The authors of Rijndael used to provide a homepage for the algorithm. Care should be taken when implementing AES in software. Like most encryption algorithms, Rijndael was designed on big-endian
Endianness

In computing, endianness is the byte ordering used to represent some kind of data. Typical cases are the order in which integer values are stored as bytes in computer memory and the transmission order over a network or other medium....
 systems. For this reason, little-endian
Endianness

In computing, endianness is the byte ordering used to represent some kind of data. Typical cases are the order in which integer values are stored as bytes in computer memory and the transmission order over a network or other medium....
 systems return correct test vector results only through considerable byte-swapping, with efficiency reduced as a result.

The algorithm operates on plaintext blocks of 16 bytes. Encryption of shorter blocks is possible only by padding
Padding (cryptography)

In cryptography, padding refers to a number of distinct practices....
 the source bytes, usually with null bytes
Null character

The null character is a character with the value zero, present in the ASCII and Unicode character sets, and available in nearly all mainstream programming languages....
. This can be accomplished via several methods, the simplest of which assumes that the final byte of the cipher identifies the number of Null bytes of padding added.

Careful choice must be made in selecting the mode of operation
Block cipher modes of operation

In cryptography, a block cipher operates on blocks of fixed length, often 64 or 128 bits. Because messages may be of any length, and because encrypting the same plaintext under the same key always produces the same output , several modes of operation have been invented which allow block ciphers to provide confidentiality for messages of arbit...
 of the cipher. The simplest mode encrypts and decrypts each 128-bit block separately. In this mode, called "electronic code book (ECB)", blocks that are identical will be encrypted identically. This will make some of the plaintext structure visible in the ciphertext. Selecting other modes, such as empressing a sequential counter over the block prior to encryption (CTR mode) and removing it after decryption avoids this problem.
  • - Most of these involve a commercial implementation of AES algorithms. Look for "FIPS-approved algorithms" entry in the "Level / Description" column followed by "AES" and then a specific certificate number.


C/ASM library
  • Cryptographic Application Programming Interface
    Cryptographic Application Programming Interface

    The Cryptographic Application Programming Interface is an application programming interface included with Microsoft Windows operating systems that provides services to enable developers to secure Windows-based applications using cryptography....
     or CAPI, Microsoft's Cryptography API


C++ library
  • Botan
    Botan (programming library)

    Botan is a BSD_licenses cryptographic library written in C++.It provides a wide variety of cryptographic algorithms, formats, and protocols. It is used in the Monotone distributed revision control program....
     has implemented Rijndael since its very first release in 2001
  • A comprehensive C++ semi-public-domain implementation of encryption and hash algorithms. FIPS validated


C# /.NET
  • A detailed explanation with C# implementation by James D. McCaffrey
    James D. McCaffrey

    For the American actor, see James McCaffrey.James D. McCaffrey is a software engineer and author known for his contributions to the fields of mathematical combinatorics and software test automation....
    .
  • As of version 3.5 of the .NET Framework
    .NET Framework

    The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
    , the namespace contains both a implementation of AES and a around the CAPI
    Cryptographic Application Programming Interface

    The Cryptographic Application Programming Interface is an application programming interface included with Microsoft Windows operating systems that provides services to enable developers to secure Windows-based applications using cryptography....
     AES implementation.
  • Bouncy Castle Crypto Library
    Bouncy castle (cryptography)

    Bouncy castle is a collection of Application Programming Interface used in cryptography. It includes APIs for both the Java and the C Sharp programming languages....


Java
  • Java Cryptography Extension
    Java Cryptography Extension

    The Java Cryptography Extension is an officially released Standard Extension to the Java Platform. JCE provides a framework and implementation for encryption, key generation and key agreement, and Message Authentication Code algorithms....
    , integrated in the Java Runtime Environment since version 1.4.2 (see )
  • Bouncy Castle Crypto Library
    Bouncy castle (cryptography)

    Bouncy castle is a collection of Application Programming Interface used in cryptography. It includes APIs for both the Java and the C Sharp programming languages....


JavaScript
  • , includes an efficient implementation.
  • transparently coded, with counter mode of operation
  • , OpenSSL compatible with CBC operation, and very efficient. MIT Licensed
  • , JavaScript and Python implementation. Apache 2.0 Licensed
  • , both CTR and CBC mode of operation. ISC Licensed


Delphi
  • David Barton's implementation in Delphi, as part of a suite of hashes and ciphers called : OIS-Certified open source


LISP
  • , Common Lisp cryptography library.
  • using 8 and 32 bits arithmetic.


Other languages
  • (Registration required)
  • LGPL implementation in PHP supporting 128, 192, and 256-bit keys.
  • Program made in Flash to encrypt/decrypt using AES-128.
  • A VB5/6 Source-Code (cls) implementation of the AES-Rijndael Block Cipher.
  • for Perl
  • for Erlang implements AES (binding for Openssl)
  • for PHP
  • for the D (programming language)
    D (programming language)

    The D programming language, also known simply as D, is an Object-oriented programming, Imperative programming, Multi-paradigm programming language system programming language by Walter Bright of Digital Mars....
     implements AES


Applications


Archive and compression tools
  • 7z
    7z

    7z is a compressed archive file format that supports several different data compression, encryption and pre-processing filters. The 7z format initially appeared as implemented by the 7-Zip archiver....
  • WinZip
    WinZip

    WinZip is a proprietary file archiver for Microsoft Windows, developed by WinZip Computing . It natively uses the PKZIP format but also has various levels of support for other List of archive formats....
  • PKZIP
    PKZIP

    PKZIP is an archiving tool originally written by Phil Katz and marketed by his company PKWARE, Incorporation PKZIP is an acronym for Phil Katz's ZIP program....
  • RAR


Disk encryption
  • DiskCryptor
    DiskCryptor

    DiskCryptor was the first open source full disk encryption system for MS Windows that allowed the encryption of an entire PC's harddrive or individual partitions - including the ability to encrypt the partition and disk the OS is installed on....
  • FileVault
    FileVault

    FileVault is a system that protects files on a Macintosh computer. It can be found in the Mac OS X v10.3 operating system and later.FileVault uses encrypted file systems that are mounted and unmounted when the user logs into or out of the system....
  • FreeOTFE
    FreeOTFE

    FreeOTFE is an "on-the-fly" disk encryption program for PCs running MS Windows and Windows Mobile Personal digital assistant . It creates "virtual drive" - anything written to which is automatically encrypted before being stored on the computer's hard drive or USB drive....
  • LUKS
  • TrueCrypt
    TrueCrypt

    TrueCrypt is a software application used for real-time on-the-fly encryption. It can create a virtual encrypted disk within a file or a device-hosted encrypted volume on either an individual partition or an entire Data storage device....
  • Many disk drives incorporate AES encryption in firmware.


Misc

  • OpenSSL
    OpenSSL

    OpenSSL is an open source implementation of the Transport Layer Security protocols. The core library implements the basic cryptography functions and provides various utility functions....
     includes AES cipher support as of version 0.9.7 (released in 2002) and is dual-licensed under the terms of the OpenSSL License and the original SSLeay license. FIPS validated via IBM
  • GPG
    GNU Privacy Guard

    GNU Privacy Guard is a free software alternative to the Pretty Good Privacy suite of cryptography software. GnuPG is compliant with RFC 4880, which is the current Internet Engineering Task Force standards track specification of OpenPGP....
    , GPL-licensed, includes AES, AES-192, and AES-256 as options.
  • IronKey Uses AES Encryption
  • Pidgin (software)
    Pidgin (software)

    Pidgin is a multi-platform instant messaging client . The software has support for many commonly used instant messaging Protocol , allowing the user to log into various different services from one application....
     Has a plugin that allows for AES Encryption:


See also

  • Full Disk Encryption
    Full disk encryption

    Full disk encryption is a kind of disk encryption software or disk encryption hardware which encryption every bit of data that goes on a disk storage or disk volume ....
  • Data Encryption Standard
    Data Encryption Standard

    The Data Encryption Standard is a block cipher that was selected by National Bureau of Standards as an official Federal Information Processing Standard for the United States in 1976 and which has subsequently enjoyed widespread use internationally....
     (DES) - AES has replaced this standard
  • Triple DES
    Triple DES

    In cryptography, Triple DES is a block cipher formed from the Data Encryption Standard cipher by using it three times....
     - AES has replaced this standard
  • Advanced Encryption Standard process
    Advanced Encryption Standard process

    The Advanced Encryption Standard , the block cipher ratified as a standard by National Institute of Standards and Technology of the United States , was chosen using a process markedly more open and transparent than its predecessor, the aging Data Encryption Standard ....
  • Whirlpool - hash function also co-created by Vincent Rijmen


External links

  • (PDF
    Portable Document Format

    Portable Document Format is a file format created by Adobe Systems in 1993 for document exchange. PDF is used for representing two-dimensional documents in a manner independent of the application software, hardware, and operating system....
     file)
  • (85 KB wav
    WAV

    WAV , short for Waveform audio format, is a Microsoft and International Business Machines audio file format standard for storing an audio bitstream on personal computer....
     file)


  • and Test Vectors