stringtranslate.com

NaCl (software)

NaCl ( Networking and Cryptography Library , pronunciado "sal") es una biblioteca de software de dominio público y de alta velocidad para criptografía . [2]

NaCl fue creado por el matemático y programador Daniel J. Bernstein , quien es mejor conocido por la creación de qmail y Curve25519 . El equipo central también incluye a Tanja Lange y Peter Schwabe. [3] [4] El objetivo principal al crear NaCl, según el artículo de 2011 del equipo, era "evitar varios tipos de desastres criptográficos sufridos por bibliotecas criptográficas anteriores". El equipo lo hace mediante diseños más seguros que evitan problemas como fugas de canal lateral y pérdida de aleatoriedad, siendo lo suficientemente eficientes como para que el usuario no deshabilite las funciones de seguridad y eligiendo mejores primitivas criptográficas. La API de "caja" de alto nivel está diseñada para fomentar el uso de cifrado autenticado . [1]

Funciones

Criptografía de clave pública

Criptografía de clave secreta

Funciones de bajo nivel

Implementaciones

La implementación de referencia está escrita en C , a menudo con varios ensambladores en línea . C++ se maneja como un contenedor. Se planeó un contenedor de Python , [8] pero no es parte de la última versión (20110221). La página de inicio, actualizada por última vez en 2016, menciona contenedores de prototipos. [2]

El NaCl de referencia tiene una variedad de enlaces de lenguaje de programación como PHP [9] y Tcl. [10] [ se necesita una fuente de terceros ]

Libsodio

Libsodium es una bifurcación compatible con API de la biblioteca de referencia NaCl creada en 2013. Es "instalable y empaquetable", o en otras palabras, se puede compilar en una biblioteca dinámica e instalar como un paquete de software gracias a la adición de archivos de compilación (NaCl no tenía ninguno). También es "portable y compilable en varios sistemas". [11]

Como libsodium se puede vincular dinámicamente, sirve como base para una serie de enlaces en lenguajes como Pharo , [12] Perl 5, [13] y Python. [14] [15]

libsodium también extiende la API de NaCl con nuevos algoritmos (por ejemplo, BLAKE2 , [16] ChaCha20-Poly1305 , AEGIS) [17] y nuevas clases de funciones (por ejemplo, memoria segura, generación de números aleatorios , hash de entrada corta, [18] hash de contraseñas y derivación de claves ).

TweetNaCl

En 2013, el equipo de NaCl y otros tres lanzaron TweetNaCl, una implementación condensada de las 25 funciones de NaCl que cabe en el tamaño de 100 tweets (140 símbolos cada uno). [19]

TweetNaCl se ha utilizado como base de puertos como TweetNaCl.js [20] y TweetNaCl-Java. [21] También se ha reescrito en el subconjunto SPARK Ada como SPARKNaCl, que los autores describen como "(a diferencia de TweetNaCl) legible debido a la gran cantidad de comentarios explicativos y contratos en el código". [22]

Otras implementaciones

Véase también

Referencias

  1. ^ de Daniel J. Bernstein; Tanja Lange; Peter Schwabe. "El impacto de seguridad de una nueva biblioteca criptográfica" (PDF) . Archivado (PDF) desde el original el 9 de agosto de 2017.
  2. ^ ab "NaCl: Biblioteca de redes y criptografía".
  3. ^ "Página de inicio de Tanja Lange".
  4. ^ "Página de inicio de Peter Schwabe".
  5. ^ Bernstein, Daniel J. (10 de marzo de 2009). Criptografía en NaCl (PDF) . Archivado (PDF) del original el 25 de marzo de 2017. Consultado el 8 de febrero de 2016 .
  6. ^ "Hashing: crypto_hash". 30 de agosto de 2010. Consultado el 14 de noviembre de 2015 .
  7. ^ "Comparación de cadenas: crypto_verify". nacl.cr.yp.to . Consultado el 19 de enero de 2024 .
  8. ^ "Componentes internos de NaCl".
  9. ^ "Extensión PHP de NaCl". Github. 14 de junio de 2019.
  10. ^ "Tclers Wiki - NaCl para Tcl".
  11. ^ Denis, Frank (18 de enero de 2024). "libsodium: una biblioteca de cifrado moderna, portátil y fácil de usar".
  12. ^ "Repositorio de SmalltalkHub".
  13. ^ "Cripta::NaCl::Sodio".
  14. ^ Autoridad criptográfica de Python (18 de enero de 2024). "pyca/pynacl". GitHub . PyNaCl es un enlace de Python a libsodium, que es una bifurcación de la biblioteca de redes y criptografía.
  15. ^ "Enlaces para otros idiomas". libsodium .
  16. ^ "Hash genérico". 13 de diciembre de 2017. Consultado el 19 de mayo de 2018 .
  17. ^ "Construcciones AEAD". libsodium .
  18. ^ "Hash de entrada corta". libsodium .
  19. ^ Daniel J. Bernstein; Bernard van Gastel; Wesley Janssen; Tanja Lange; Peter Schwabe; Sjaak Smetsers (2013). "TweetNaCl".
  20. ^ "TweetNaCl.js".
  21. ^ "TweetNaCl-Java".
  22. ^ "CHISPANaCl".
  23. ^ "No crees tu propia criptografía (dryoc): biblioteca de criptografía puramente Rust, difícil de usar incorrectamente".
  24. ^ Vaillant, Loup (17 de enero de 2024). "LoupVaillant/Monocypher".

Enlaces externos