Implementaciones de AES - AES implementations
Hay varias implementaciones del Estándar de cifrado avanzado , también conocido como Rijndael.
Bibliotecas
Rijndael es gratuito para cualquier uso público o privado, comercial o no comercial. Los autores de Rijndael solían proporcionar una página de inicio para el algoritmo. Se debe tener cuidado al implementar AES en el software, en particular con los ataques de canal lateral.
El algoritmo opera en bloques de texto plano de 16 bytes. El cifrado de bloques más cortos solo es posible rellenando los bytes de origen, generalmente con bytes nulos . Esto se puede lograr mediante varios métodos, el más simple de los cuales asume que el byte final del cifrado identifica el número de bytes nulos de relleno agregados.
Consideraciones de implementación
Se debe hacer una elección cuidadosa al seleccionar el modo de operación del cifrado. El modo más simple cifra y descifra cada bloque de 128 bits por separado. En este modo, denominado libro de códigos electrónicos (ECB), los bloques que son idénticos se cifrarán de forma idéntica; esto es completamente inseguro. Hace que parte de la estructura del texto sin formato sea visible en el texto cifrado. Seleccionar otros modos, como usar un contador secuencial sobre el bloque antes del cifrado (es decir, modo CTR) y eliminarlo después del descifrado evita este problema. Otro modo, Cipher Block Chaining (CBC) es uno de los modos de AES más utilizados debido a su uso en TLS. CBC utiliza un vector de inicialización aleatoria (IV) para garantizar que se produzcan textos cifrados distintos incluso cuando el mismo texto sin formato se codifica varias veces. El IV se puede transmitir en claro sin poner en peligro la seguridad. Una práctica común es anteponer el IV de 16 bytes al texto cifrado, lo que le da al descifrador un fácil acceso al IV. Se debe tener cuidado de utilizar un nuevo IV para cada operación de cifrado, ya que de lo contrario un atacante puede recuperar texto sin formato.
- Lista actual de módulos criptográficos validados por FIPS 197 (alojados por NIST)
- Lista actual de módulos criptográficos validados por FIPS 140 con implementaciones AES validadas (alojadas por NIST): la mayoría de ellos implican una implementación comercial de algoritmos AES. Busque la entrada "Algoritmos aprobados por FIPS" en la columna "Nivel / Descripción" seguida de "AES" y luego un número de certificado específico.
Biblioteca C / ASM
- Libgcrypt
- wolfSSL (anteriormente CyaSSL)
- GnuTLS
- Servicios de seguridad de red
- OpenSSL
- LibreSSL
- mbed TLS (anteriormente PolarSSL)
- Implementación original de referencia
- axTLS
- Microsoft CryptoAPI utiliza proveedores de servicios criptográficos para ofrecer implementaciones de cifrado. Microsoft AES Cryptographic Provider se introdujo en Windows XP y se puede utilizar con cualquier versión de Microsoft CryptoAPI.
- tiny-AES-c Pequeño portátil AES128 / 192/256 en C (adecuado para sistemas integrados)
- AES-256 A-orientado a bytes portátil implementación de AES-256 en C
- Solaris Cryptographic Framework ofrece múltiples implementaciones, con proveedores de kernel para la aceleración de hardware en x86 (usando el conjunto de instrucciones Intel AES ) y en SPARC (usando el conjunto de instrucciones SPARC AES). Está disponible en Solaris y derivados, a partir de Solaris 10.
- Biblioteca criptográfica portátil OpenAES C
- LibTomCrypt es un conjunto de herramientas criptográficas modular y portátil que proporciona a los desarrolladores cifrados de bloques bien conocidos, funciones hash unidireccionales, modos de encadenamiento, generadores de números pseudoaleatorios, criptografía de clave pública y otras rutinas.
- API libSodium para NaCl
- Implementación AES Dust Compact de cifrado AES-128 en ensamblaje C, x86, AMD64, ARM32 y ARM64.
- Implementación MSP430 AES para microcontrolador integrado de 16 bits
Biblioteca C ++
- Botan ha implementado Rijndael desde su primer lanzamiento en 2001
- Crypto ++ Una implementación integral de dominio público en C ++ de algoritmos de cifrado y hash. FIPS validado
Biblioteca C / CUDA
- gKrypt ha implementado Rijndael en CUDA con su primer lanzamiento en 2012
C # /.NET
- A partir de la versión 3.5 de .NET Framework , el espacio de nombres System.Security.Cryptography contiene una implementación completamente administrada de AES y un contenedor administrado alrededor de la implementación CAPI AES.
- Biblioteca de cifrado del castillo hinchable
Ir
- El paquete crypto / aes en la biblioteca estándar
Java
- Extensión de criptografía de Java , integrada en Java Runtime Environment desde la versión 1.4.2
- IAIK JCE
- Biblioteca de cifrado del castillo hinchable
Pitón
- PyCrypto : el kit de herramientas de criptografía de Python PyCrypto, extendido en PyCryptoDome
- keyczar - Kit de herramientas de criptografía keyczar
- M2Crypto : M2Crypto es el contenedor OpenSSL más completo para Python.
- Criptografía : biblioteca de Python que expone recetas y primitivas criptográficas.
- PyNaCl : enlace de Python para libSodium (NaCl)
JavaScript
- Biblioteca SJCL: contiene implementaciones JavaScript de AES en los modos CCM, CBC, OCB y GCM
- AES-JS : implementación de JavaScript portátil de los modos AES ECB y CTR
- Forge: implementaciones de JavaScript de AES en los modos CBC, CTR, OFB, CFB y GCM
- asmCrypto : implementación de JavaScript de utilidades criptográficas populares con enfoque en el rendimiento. Soporta modos CBC, CFB, CCM.
- pidCrypt : biblioteca de JavaScript de código abierto. Solo es compatible con los modos CBC y CTR.
Oxido
- aes_soft - Implementación de Rust.
LabVIEW
- AES LabVIEW - Implementación de LabVIEW.
Aplicaciones
Herramientas de archivo y compresión
Cifrado de archivos
- La criptografía Away RJN utiliza bloques de datos de 256 bits del algoritmo de Rijndael (NIST AES), clave de cifrado y CTR (modo de contador) para todos y cada uno de los documentos o cifrado de imágenes solo en Windows.
- Gpg4win
- Ncrypt
Cifrar sistemas de archivos
- La mayoría de los sistemas de archivos de cifrado utilizan AES, por ejemplo, NTFS
Cifrado de disco / partición
- BitLocker (parte de ciertas ediciones de sistemas operativos Windows )
- CipherShed
- DiskCryptor
- FileVault (parte del sistema operativo Mac OS X , y también la Utilidad de disco incluida crea imágenes de disco encriptadas con AES)
- GBDE
- Geli (software)
- LibreCrypt (descontinuado)
- LUKS
- Disco privado
- TrueCrypt (descontinuado)
- VeraCrypt
Seguridad para las comunicaciones en redes de área local
- IEEE 802.11i , una enmienda al estándar IEEE 802.11 original que especifica los mecanismos de seguridad para redes inalámbricas, utiliza AES-128 en modo CCM ( CCMP ).
- El estándar ITU-T G.hn , que proporciona una forma de crear una red de área local de alta velocidad (hasta 1 Gigabit / s) utilizando cableado doméstico existente ( líneas eléctricas , líneas telefónicas y cables coaxiales ), utiliza AES-128 para cifrado.
Diverso
- DataLocker utiliza cifrado de hardware en modo CBC y XTS AES de 256 bits
- Get Backup Pro utiliza AES-128 y AES-256
- GPG , con licencia GPL, incluye AES, AES-192 y AES-256 como opciones.
- IPsec
- IronKey utiliza cifrado de hardware en modo CBC AES de 128 bits y 256 bits
- KeePass Contraseña segura
- Ultimo pase
- Linux kernel 's Crypto API , ahora expuesta al espacio de usuario
- NetLib Encryptionizer admite AES 128/256 en los modos CBC, ECB y CTR para el cifrado de archivos y carpetas en la plataforma Windows.
- Pidgin (software) , tiene un complemento que permite el cifrado AES
- PyEyeCrypt Herramienta de cifrado de texto de código abierto / GUI gratuita con métodos de cifrado AES seleccionables por el usuario e iteraciones PBKDF2.
-
Protocolo de señal
- Google Allo (opcional)
- Facebook Messenger (opcional)
- Señal
- TextSecure
- El cifrado de archivos de SocialDocs utiliza AES256 para proporcionar una herramienta de cifrado de archivos en línea gratuita
- XFire usa AES-128, AES-192 y AES 256 para cifrar nombres de usuario y contraseñas
- Ciertos juegos y motores, como el motor de juego avanzado de Rockstar utilizado en Grand Theft Auto IV , usan AES para cifrar los activos del juego con el fin de disuadir la piratería en el modo multijugador.
Hardware
- Los procesadores x86-64 y ARM incluyen el conjunto de instrucciones AES .
- En los mainframes IBM zSeries , AES se implementa como la serie KM de códigos de operación de ensamblador cuando se instalan varias funciones de Message Security Assist.
- Los procesadores centrales SPARC S3 incluyen el conjunto de instrucciones AES, que se utiliza con los sistemas SPARC T4 y SPARC T5 .