Articulo de referencia

NaCl (software)

"},"alexa":{"wt":""},"website":{"wt":"{{URL|https://nacl.cr.yp.to/}}"},"standard":{"wt":""},"AsOf":{"wt":""}},"i":0}}]}"> NaCl ( Networking and Cryptography Library , pronunciad...

NaCl ( Networking and Cryptography Library , pronunciado "salt") 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 , conocido principalmente por la creación de qmail y Curve25519 . El equipo principal también incluye a Tanja Lange y Peter Schwabe. [ 3 ] [ 4 ] El objetivo principal al crear NaCl, según el documento del equipo de 2011, era "evitar varios tipos de desastres criptográficos sufridos por bibliotecas criptográficas anteriores". El equipo lo logra mediante diseños más seguros que evitan problemas como fugas de canal lateral y pérdida de aleatoriedad, con un rendimiento suficiente para que las funciones de seguridad no sean desactivadas por el usuario, y seleccionando mejores primitivas criptográficas. La API de alto nivel "box" está diseñada para fomentar el uso del 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 , incorporando a menudo rutinas de ensamblador en línea . La compatibilidad con C++ se implementa como un envoltorio. Se planeó un envoltorio para Python , [ 8 ] pero no forma parte de la última versión (20110221). La página principal, actualizada por última vez en 2016, menciona prototipos de envoltorios. [ 2 ]

La implementación de referencia de NaCl tiene una variedad de enlaces de lenguajes de programación, como PHP [ 9 ] y Tcl. [ 10 ]

Libsodio

Libsodium es una bifurcación compatible con la API de la biblioteca de referencia NaCl, creada en 2013. Es "instalable y empaquetable", es decir, 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 los tenía). También es "portátil y de compilación cruzada". [ 11 ]

Como libsodium se puede enlazar dinámicamente, sirve de base para varias vinculaciones en lenguajes como Squeak , [ 12 ] Pharo , [ 13 ] Perl 5, [ 14 ] y Python. [ 15 ] [ 16 ]

libsodium también amplía la API de NaCl con nuevos algoritmos (por ejemplo, BLAKE2 , [ 17 ] ChaCha20-Poly1305 , AEGIS) [ 18 ] y nuevas clases de funciones (por ejemplo, memoria segura, generación de números aleatorios , hash de entrada corta, [ 19 ] 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). [ 20 ]

TweetNaCl se ha utilizado como base para puertos como TweetNaCl.js [ 21 ] y TweetNaCl-Java. [ 22 ] 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". [ 23 ]

Otras implementaciones

Véase también

Referencias

  1. 1 2 Daniel J. Bernstein; Tanja Lange; Peter Schwabe. "El impacto en la seguridad de una nueva biblioteca criptográfica" (PDF) . Archivado (PDF) del original el 9 de agosto de 2017.
  2. 1 2 "NaCl: Biblioteca de redes y criptografía" .
  3. "Página web 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. Recuperado el 8 de febrero de 2016 .
  6. "Hashing: crypto_hash" . 30-08-2010 . Consultado el 14-11-2015 .
  7. "Comparación de cadenas: crypto_verify" . nacl.cr.yp.to. Consultado el 19 de enero de 2024 .
  8. "Propiedades internas del NaCl" .
  9. "Extensión PHP NaCl" . Github. 14 de junio de 2019.
  10. "Tclers Wiki - NaCl para Tcl" .
  11. Denis, Frank (18 de enero de 2024). "libsodium: Una biblioteca criptográfica moderna, portátil y fácil de usar" . GitHub .
  12. "Repositorio 'Sodium' de SqueakSource" . 6 de agosto de 2025.
  13. "Repositorio SmalltalkHub" . 22 de enero de 2018.
  14. "Cripto::NaCl::Sodio" .
  15. Autoridad Criptográfica de Python (18 de enero de 2024). "pyca/pynacl" . GitHub . PyNaCl es una interfaz de Python para libsodium, que es una bifurcación de la biblioteca de Redes y Criptografía.
  16. "Enlaces para otros lenguajes" . libsodium .
  17. "Hashing genérico" . 13 de diciembre de 2017. Consultado el 19 de mayo de 2018 .
  18. "Construcciones AEAD" . libsodium .
  19. "Hashing con entrada corta" . libsodium .
  20. ^ Daniel J. Bernstein; Bernard van Gastel; Wesley Janssen; Tanja Lange; Peter Schwabe; Sjaak Smetsers (2013). "TweetNaCl" .
  21. "TweetNaCl.js" .
  22. «TweetNaCl-Java» . GitHub .
  23. "SPARKNaCl" . GitHub .
  24. "No crees tu propio sistema criptográfico (dryoc): biblioteca de criptografía puramente en Rust, difícil de usar indebidamente" . GitHub .
  25. Vaillant, Loup (17 de enero de 2024). "LoupVaillant/Monocypher" . GitHub .
  • Sitio web oficial