Implementaciones de AES - AES implementations

Hay varias implementaciones del Estándar de cifrado avanzado , también conocido como Rijndael.

Bibliotecas

Velocidad AES en tamaños de clave de 128, 192 y 256 bits.

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

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

Ir

Java

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

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

Cifrado de disco / partición

Seguridad para las comunicaciones en redes de área local

Diverso

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 .

Referencias