AES implementations
Encyclopedia

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 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
Padding (cryptography)
-Classical cryptography:Official messages often start and end in predictable ways: My dear ambassador, Weather report, Sincerely yours, etc. The primary use of padding with classical ciphers is to prevent the cryptanalyst from using that predictability to find cribs that aid in breaking the...

 the source bytes, usually with null bytes
Null character
The null character , abbreviated NUL, is a control character with the value zero.It is present in many character sets, including ISO/IEC 646 , the C0 control code, the Universal Character Set , and EBCDIC...

. 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, modes of operation is the procedure of enabling the repeated and secure use of a block cipher under a single key.A block cipher by itself allows encryption only of a single data block of the cipher's block length. When targeting a variable-length message, the data must first be...

 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.

C/ASM library

  • BeeCrypt
    BeeCrypt
    BeeCrypt is a open source - LGPL licensed implementation of the cryptographic algortims. The core library implements the basic cryptographic functions and provides various utility functions...

  • OpenSSL
    OpenSSL
    OpenSSL is an open source implementation of the SSL and TLS protocols. The core library implements the basic cryptographic functions and provides various utility functions...

  • GnuTLS
    GnuTLS
    GnuTLS , the GNU Transport Layer Security Library, is a free software implementation of the SSL and TLS protocols. Its purpose is to offer an application programming interface for applications to enable secure communication protocols over their network transport layer.-Features:GnuTLS consists of...

  • PolarSSL
    PolarSSL
    PolarSSL is a dual licensed implementation of the SSL and TLS protocols. PolarSSL is almost entirely based on XySSL, which was written and copyrighted by French "white hat hacker" Christophe Devine. XySSL was first released on November 1, 2006 under GPL and BSD licenses...

     (single header and source file implementation Source Code)
  • Reference implementation and derived code
  • Brian Gladman
  • mcrypt
  • Microsoft CryptoAPI uses Cryptographic Service Providers
    Cryptographic Service Provider
    In Microsoft Windows, a Cryptographic Service Provider is a software library that implements the Microsoft CryptoAPI . CSPs implement encoding and decoding functions, which computer application programs may use, for example, to implement strong user authentication or for secure email. CSPs are...

     to offer encryption implementations. The Microsoft AES Cryptographic Provider was introduced in Windows XP and can be used with any version of the Microsoft CryptoAPIhttp://msdn.microsoft.com/en-us/library/aa386979(v=VS.85).aspx.

C++ library

  • Botan
    Botan (programming library)
    Botan is a BSD-licensed 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
  • Crypto++
    Crypto++
    Crypto++ is a free and open source C++ class library of cryptographic algorithms and schemes written by Wei Dai. Crypto++ has been widely used in academia, student projects, open source and non-commercial projects, as well as businesses...

     A comprehensive C++ semi-public-domain implementation of encryption and hash algorithms. FIPS validated

C# /.NET

  • As of version 3.5 of the .NET Framework
    .NET Framework
    The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

    , the System.Security.Cryptography namespace contains both a fully managed implementation of AES and a managed wrapper 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 APIs used in cryptography. It includes APIs for both the Java and the C# programming languages.Bouncy Castle is Australian in origin and thus American restrictions on the export of cryptographic software do not apply to it....


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 example code)
  • IAIK JCE, (see features)
  • Bouncy Castle Crypto Library
    Bouncy castle (cryptography)
    Bouncy Castle is a collection of APIs used in cryptography. It includes APIs for both the Java and the C# programming languages.Bouncy Castle is Australian in origin and thus American restrictions on the export of cryptographic software do not apply to it....


Python

  • PyCrypto
  • M2Crypto, a Python wrapper for OpenSSL
  • Python AES
  • NCrypt, a Python wrapper for OpenSSL built using Pyrex
  • alo-aes
  • pycryptopp, a set of Python wrappers for a few of the best crypto algorithms from the Crypto++ library
  • SlowAES, slow but still useful when faster ones are not available
  • pycrypt, a small Python program that encrypts or dercypts files using AES

Archive and compression tools

  • 7z
    7z
    7z is a compressed archive file format that supports several different data compression, encryption and pre-processing algorithms. The 7z format initially appeared as implemented by the 7-Zip archiver. The 7-Zip program is publicly available under the terms of the GNU Lesser General Public...

  • PeaZip
    PeaZip
    PeaZip is a file manager and file archiver for Microsoft Windows and GNU/Linux. It supports its native PEA archive format and other mainstream formats, with special focus on handling open formats...

  • PKZIP
    PKZIP
    PKZIP is an archiving tool originally written by Phil Katz and marketed by his company PKWARE, Inc. The common "PK" prefix used in both PKZIP and PKWARE stands for "Phil Katz".-History:...

  • RAR
  • WinZip
    WinZip
    WinZip is a proprietary file archiver and compressor for Microsoft Windows and Mac OS X, developed by WinZip Computing...

  • Amanda Backup
    Advanced Maryland Automatic Network Disk Archiver
    Amanda, previously known as Advanced Maryland Automatic Network Disk Archiver is an open source computer archiving tool that is able to back up data residing on multiple computers on a network...


Disk encryption

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

  • BitLocker
    BitLocker Drive Encryption
    BitLocker Drive Encryption is a full disk encryption feature included with the Ultimate and Enterprise editions of Microsoft's Windows Vista and Windows 7 desktop operating systems, as well as the Windows Server 2008 and Windows Server 2008 R2 server platforms. It is designed to protect data by...

     (part of "Enterprise" and "Ultimate" editions of Windows Vista
    Windows Vista
    Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...

     and Windows 7 operating systems)
  • FileVault
    FileVault
    FileVault is a system which encrypts files on a Macintosh computer. It can be found in the Mac OS X v10.4 "Tiger" operating system and later....

     (part of the Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

     operating system, and also the included Disk Utility
    Disk Utility
    Disk Utility is the name of a utility created by Apple for performing disk-related tasks in Mac OS X. These tasks include:*the creation, conversion, compression and encryption of disk images from a wide range of formats read by Disk Utility to .dmg or—for CD/DVD images—.cdr, which is identical to...

     makes AES-encrypted drive images)
  • FreeOTFE
    FreeOTFE
    FreeOTFE is an open source on-the-fly disk encryption computer program for PCs running Microsoft Windows, and personal digital assistants running Windows Mobile . It creates virtual drives, or disks, to which anything written is automatically encrypted before being stored on a computer's hard or...

  • GBDE
    GBDE
    GBDE, standing for GEOM Based Disk Encryption, is a block device-layer disk encryption system written for FreeBSD, initially introduced in version 5.0. It is based on the GEOM disk framework. GBDE was designed and implemented by Poul-Henning Kamp and Network Associates Inc...

  • Geli (software)
    Geli (software)
    geli is a block device-layer disk encryption system written for FreeBSD, introduced in version 6.0. It utilises the GEOM disk framework. It was designed and implemented by Pawel Jakub Dawidek.- Design details :...

  • LUKS
  • TrueCrypt
    TrueCrypt
    TrueCrypt is a software application used for on-the-fly encryption . It is free and open source. It can create a virtual encrypted disk within a file or encrypt a partition or the entire storage device .- Operating systems :TrueCrypt supports Microsoft Windows, Mac OS X, and...

  • Crypt4000 (FIPS 140-2 certified disk encryption software by Secuware)
  • Private Disk
    Private Disk
    -Overview:Private Disk is a disk encryption application for the Microsoft Windows operating system, developed by Dekart SRL. It works by creating a virtual drive, the contents of which is encrypted on-the-fly; other software can use the drive as if it were a usual one.One of Private Disk's key...


Security for communications in Local Area Networks

  • IEEE 802.11i
    IEEE 802.11i
    IEEE 802.11i-2004 or 802.11i, implemented as WPA2, is an amendment to the original IEEE 802.11. The draft standard was ratified on 24 June 2004. This standard specifies security mechanisms for wireless networks. It replaced the short Authentication and privacy clause of the original standard with...

    , an amendment to the original IEEE 802.11
    IEEE 802.11
    IEEE 802.11 is a set of standards for implementing wireless local area network computer communication in the 2.4, 3.6 and 5 GHz frequency bands. They are created and maintained by the IEEE LAN/MAN Standards Committee . The base version of the standard IEEE 802.11-2007 has had subsequent...

     standard specifying security mechanisms for wireless networks, uses AES-128 in CCM mode
    CCMP
    Counter Mode with Cipher Block Chaining Message Authentication Code Protocol or CCMP is an encryption protocol designed for Wireless LAN products that implement the standards of the IEEE 802.11i amendment to the original IEEE 802.11 standard...

    .
  • The ITU-T
    ITU-T
    The ITU Telecommunication Standardization Sector is one of the three sectors of the International Telecommunication Union ; it coordinates standards for telecommunications....

     G.hn
    G.hn
    G.hn is the common name for a home network technology family of standards developed under the International Telecommunication Union's Standardization arm and promoted by the HomeGrid Forum...

     standard, which provides a way to create a high-speed (up to 1 Gigabit/s) Local area network
    Local area network
    A local area network is a computer network that interconnects computers in a limited area such as a home, school, computer laboratory, or office building...

     using existing home wiring (power lines
    Power line communication
    Power line communication or power line carrier , also known as power line digital subscriber line , mains communication, power line telecom , power line networking , or broadband over power lines are systems for carrying data on a conductor also used for electric power transmission.A wide range...

    , phone lines and coaxial cables
    Ethernet over coax
    Ethernet over Coax is a family of technologies that supports the transmission of Ethernet frames over coaxial cable.- History :The first Ethernet standard, known as 10BASE5 in the family of IEEE 802.3, specified baseband operation over coaxial cable...

    ), uses AES-128 for encryption.

Miscellaneous

  • GPG
    GNU Privacy Guard
    GNU Privacy Guard is a GPL Licensed alternative to the PGP suite of cryptographic software. GnuPG is compliant with RFC 4880, which is the current IETF standards track specification of OpenPGP...

    , GPL-licensed, includes AES, AES-192, and AES-256 as options.
  • IPsec
    IPsec
    Internet Protocol Security is a protocol suite for securing Internet Protocol communications by authenticating and encrypting each IP packet of a communication session...

  • IronKey
    IronKey
    IronKey is an Internet security and privacy company located in Sunnyvale, California that was formed in 2005 by David Jevans, with the stated aim of providing security and privacy solutions to both consumers and enterprises. IronKey's founding was partially funded by the U.S...

     Uses AES 128-bit and 256-bit CBC-mode hardware encryption
  • OpenSSL
    OpenSSL
    OpenSSL is an open source implementation of the SSL and TLS protocols. The core library implements the basic cryptographic 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
  • Pidgin (software)
    Pidgin (software)
    Pidgin is an open-source multi-platform instant messaging client, based on a library named libpurple. Libpurple has support for many commonly used instant messaging protocols, allowing the user to log into various services from one application.The number of Pidgin users was estimated to be over 3...

    , has a plugin that allows for AES Encryption
  • XFire
    Xfire
    Xfire is a proprietary freeware instant messaging service for gamers, that also serves as a game server browser and has various other features. It is currently available for Microsoft Windows. Xfire was originally developed by Ultimate Arena based in Menlo Park, California...

     uses AES-128, AES-192 and AES 256 to encrypt usernames and passwords
  • CyaSSL
    CyaSSL
    CyaSSL is a small, portable, embedded SSL programming library targeted for use by embedded systems developers. It is an open source, implementation of SSL built in the C language. It includes SSL client libraries and an SSL server implementation as well as support for multiple API's, including...

     includes AES cipher support YaSSL HomePage
  • DataLockerUses AES 256-bit CBC and XTS mode hardware encryption
  • Universal Metering Interface
    Universal Metering Interface
    UMI is a set of 3 free open specifications for smart metering and smart home products. The UMI specifications define; a module interface based on SPI, an optical communications interface based on EN62056-21 and a security interface based on ECC-256 and AES-128...

     (UMI) an open standard, originally created by Cambridge Consultants for use in Smart Metering devices/systems and home automation, which uses AES-128 alongside ECC-256 for various security purposes.

Hardware

Intel and AMD
Advanced Micro Devices
Advanced Micro Devices, Inc. or AMD is an American multinational semiconductor company based in Sunnyvale, California, that develops computer processors and related technologies for commercial and consumer markets...

 processors include the AES instruction set
AES instruction set
Advanced Encryption Standard Instruction Set is an extension to the x86 instruction set architecture for microprocessors from Intel and AMD proposed by Intel in March 2008...

. On IBM ZSeries
ZSeries
IBM System z, or earlier IBM eServer zSeries, is a brand name designated by IBM to all its mainframe computers.In 2000, IBM rebranded the existing System/390 to IBM eServer zSeries with the e depicted in IBM's red trademarked symbol, but because no specific machine names were changed for...

mainframes, AES is implemented as the KM series of assembler opcodes when various Message Security Assist facilities are installed.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK