World Library  
Flag as Inappropriate
Email this Article

AES implementations

Article Id: WHEBN0023816967
Reproduction Date:

Title: AES implementations  
Author: World Heritage Encyclopedia
Language: English
Subject: Advanced Encryption Standard, BEAR and LION ciphers, Boomerang attack, CLEFIA, IAPM (mode)
Collection: Advanced Encryption Standard
Publisher: World Heritage Encyclopedia

AES implementations

There are various implementations of the Advanced Encryption Standard, also known as Rijndael.


  • Libraries 1
    • C/ASM library 1.1
    • C++ library 1.2
    • C# /.NET 1.3
    • Java 1.4
    • Python 1.5
    • Javascript 1.6
  • Applications 2
    • Archive and compression tools 2.1
    • File system 2.2
    • Disk encryption 2.3
    • Security for communications in Local Area Networks 2.4
    • Miscellaneous 2.5
  • Hardware 3
  • References 4


AES speed at 128, 192 and 256-bit key sizes.

Rijndael is free for any use public or private, commercial or non-commercial. The authors of Rijndael used to provide a homepage[1] for the algorithm. Care should be taken when implementing AES in software. Like most encryption algorithms, Rijndael was designed on big-endian systems. For this reason, little-endian systems return correct test vector results only through swapping bytes of the input and output words.

The algorithm operates on plaintext blocks of 16 bytes. Encryption of shorter blocks is possible only by padding the source bytes, usually with null bytes. 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 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, which is entirely insecure. 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.

  • Current list of FIPS 197 validated cryptographic modules (hosted by NIST)
  • Current list of FIPS 140 validated cryptographic modules with validated AES implementations (hosted by NIST) - 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

C++ library

  • Botan has implemented Rijndael since its very first release in 2001
  • Crypto++ A comprehensive C++ semi-public-domain implementation of encryption and hash algorithms. FIPS validated

C# /.NET



  • PyCrypto - The Python Cryptography Toolkit PyCrypto
  • keyczar - Cryptography Toolkit keyczar


  • SJCL library - contains Javascript implementations of AES in CCM, CBC, OCB and GCM modes - sjcl
  • AES-JS - portable Javascript implementation of AES ECB and CTR modes - aes-js
  • Forge - Javascript implementations of AES in CBC, CTR, OFB, CFB, and GCM modes forge
  • asmCrypto - JavaScript implementation of popular cryptographic utilities with focus on performance. Supports CBC, CFB, CCM, GCM modes. asmcrypto.js
  • pidCrypt - open source JavaScript library. Only supports the CBC and CTR modes. pidCrypt


Archive and compression tools

File system

Disk encryption

Security for communications in Local Area Networks


  • DataLockerUses AES 256-bit CBC and XTS mode hardware encryption
  • GPG, GPL-licensed, includes AES, AES-192, and AES-256 as options.
  • IPsec
  • IronKey Uses AES 128-bit and 256-bit CBC-mode hardware encryption
  • KeePass Password Safe
  • LastPass - [5]
  • Linux kernel's Crypto API, now exposed to userspace
  • Pidgin (software), has a plugin that allows for AES Encryption
  • SocialDocs file encryption uses AES256 to provide a free-online file encryption tool.
  • TextSecure
  • XFire uses AES-128, AES-192 and AES 256 to encrypt usernames and passwords
  • Certain games and engines, such as the Rockstar Advanced Game Engine used in Grand Theft Auto IV, use AES to encrypt game assets in order to deter hacking in multiplayer.


  • Intel and AMD processors include the AES instruction set.
  • On IBM zSeries mainframes, AES is implemented as the KM series of assembler opcodes when various Message Security Assist facilities are installed.
  • SPARC S3 core processors include the AES instruction set, which is used with SPARC T4 and SPARC T5 systems.


  1. ^ Original homepage and archived copy
  2. ^ "Microsoft AES Cryptographic Provider". 
  3. ^ "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. Retrieved 2012-11-27. 
  4. ^ Encrypting File System in Windows XP and Windows Server 2003
  5. ^ AES 256-bit encryption with routinely-increased PBKDF2 iterations
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.