From BitcoinWiki
This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search

Advanced Encryption Standard (AES) is an encryption algorithm based on the Rijndael family of algorithms. It is now one of the most used methods of encryption and decryption. Rijndael algorithm is a block cipher that was developed by Vincent Rijmen and Joan Daemen. It is a symmetric-key algorithm, meaning it uses one key to encrypt the data and the same key to decrypt it. Rijndael algorithm was chosen as an Advanced Encryption Standard and the successor of the Data Encryption Standard (DES) as a result of the NIST Advanced Encryption Standard competition. The competition was performed to establish the new cryptographic standard as alternative to DES that became outdated. The key length of the Data Encryption Standard (56 bit) was insecure at the time due to the modernization of the computer technologies. AES as a standard includes three algorithms of the Rijndael family of functions. They have different key lengths - 128, 192 and 256 bits, but all share the same block length, which is 128 bits. Rijndael family of hashing functions is broader than AES, in includes more versions of encryption algorithms, cyphers and other cryptographic functions. Advanced Encryption Standard was built to be equally efficiently computed in both software and hardware implementations. It was accomplished with the implementation of the substitution–permutation network design. This network design is close to the Feistel network - the design that was used in DES, but is faster to compute on both hardware and software, which was very important given DES’s lack of efficiency in software implementations.


Main page: Advanced Encryption Standard (AES)

AES256 version of the Advanced Encryption Algorithm is an AES algorithm that has a key length of 256 bits. The length of the AES version affects the computational complexity of the decryption. Key recovery of the AES 256-encrypted data takes more computing power than the key recovery of the 128 and 192 bits versions. For example, AES128 can be decrypted with a computational complexity of 2126using the biclique attack. For biclique attacks on AES 192 and AES 256, the computational complexities are 2189.9 and 2254.3, respectively. However, actual execution of the attacks on the AES-protected data is currently impractical for every key length. All the attacks on AES are theoretical. Every known attack on AES would take millions of years with no dependency on the key length of the algorithm.


Most of the encryption products that use AES include AES256 version in their systems. Taking into account that AES is one of the most, if not the most popular encryption algorithm, AES256 is widely implemented.

  • It is often provided by the software libraries that are used for the development of the Secure Sockets Layer (SSL), Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) protocols.
  • Various languages have their AES256-providing libraries, most of which are focused on the cryptography solutions development. Python, C++, C, C#, Java, JavaScript and other programming languages have their libraries developed for the work with AES256.
  • AES256 is often implemented in archiver applications, encryption and partition encryption applications, password management and communication protection.
  • AES256 is also used in processors, mainframes and other hardware use cases.

See Also on BitcoinWiki[edit]