stringtranslate.com

NaCl (программное обеспечение)

NaCl ( Библиотека сетей и криптографии , произносится как «соль») — общедоступная высокоскоростная программная библиотека для криптографии . [2]

NaCl был создан математиком и программистом Дэниелом Дж. Бернштейном , который наиболее известен созданием qmail и Curve25519 . В основную команду также входят Таня Ланге и Питер Швабе. [3] [4] Основная цель создания NaCl, согласно документу команды 2011 года, заключалась в том, чтобы «избежать различных типов криптографических катастроф, от которых пострадали предыдущие криптографические библиотеки». Команда делает это за счет более безопасных проектов, которые позволяют избежать таких проблем, как утечка по побочным каналам и потеря случайности, обеспечивая достаточную производительность, чтобы функции безопасности не отключались пользователем, и выбирая лучшие криптографические примитивы. Высокоуровневый «коробочный» API предназначен для поощрения использования шифрования с проверкой подлинности . [1]

Функции

Криптография с открытым ключом

Криптография с секретным ключом

Функции низкого уровня

Реализации

Эталонная реализация написана на C , часто с использованием нескольких встроенных ассемблеров . C++ обрабатывается как оболочка. Была запланирована оболочка Python [8], но она не является частью последней версии (20110221). На домашней странице, последний раз обновленной в 2016 году, упоминаются оболочки прототипов. [2]

Ссылка NaCl имеет множество привязок к языкам программирования, таким как PHP [9] и Tcl. [10] [ нужен сторонний источник ]

Либнатрий

Libsodium — это API-совместимая версия эталонного NaCl, созданная в 2013 году. Его можно «устанавливать и упаковывать», то есть, другими словами, его можно скомпилировать в динамическую библиотеку и установить в виде пакета программного обеспечения благодаря добавлению файлов сборки (у NaCl их не было). ). Он также «переносим и кросс-компилируем». [11]

Поскольку libsodium может быть динамически скомпонован, он служит основой для ряда привязок в таких языках, как Pharo , [12] Perl 5, [13] и Python. [14] [15]

libsodium также расширяет API NaCl новыми алгоритмами (например, BLAKE2 , [16] ChaCha20-Poly1305 , AEGIS) [17] и новыми классами функций (например, защищенная память, генерация случайных чисел , хеширование коротких входных данных, [18] хеширование паролей и вывод ключа ).

ТвитнутьNaCl

В 2013 году команда NaCl и еще три человека выпустили TweetNaCl — сокращенную реализацию 25 функций NaCl, которая умещается в размере 100 твитов (по 140 символов каждый). [19]

TweetNaCl использовался в качестве основы для портов, включая TweetNaCl.js [20] и TweetNaCl-Java. [21] Он также был переписан в подмножестве SPARK Ada как SPARKNaCl, который авторы описывают как «(в отличие от TweetNaCl) читаемый благодаря большому количеству пояснительных комментариев и контрактов в коде». [22]

Другие реализации

Смотрите также

Рекомендации

  1. ^ AB Дэниел Дж. Бернштейн; Таня Ланге; Питер Швабе. «Влияние новой криптографической библиотеки на безопасность» (PDF) . Архивировано (PDF) из оригинала 9 августа 2017 г.
  2. ^ ab «NaCl: библиотека сетей и криптографии».
  3. ^ "Домашняя страница Тани Ланге" .
  4. ^ "Домашняя страница Питера Швабе" .
  5. Бернштейн, Дэниел Дж. (10 марта 2009 г.). Криптография в NaCl (PDF) . Архивировано (PDF) из оригинала 25 марта 2017 г. Проверено 8 февраля 2016 г.
  6. ^ «Хеширование: crypto_hash». 30 августа 2010 г. Проверено 14 ноября 2015 г.
  7. ^ «Сравнение строк: crypto_verify» . nacl.cr.yp.to . Проверено 19 января 2024 г.
  8. ^ "Внутренние компоненты NaCl" .
  9. ^ «Расширение PHP NaCl» . Гитхаб. 14.06.2019.
  10. ^ "Tclers Wiki - NaCl для Tcl" .
  11. Денис, Фрэнк (18 января 2024 г.). «libsodium: современная, портативная и простая в использовании криптобиблиотека».
  12. ^ "Репозиторий SmalltalkHub" .
  13. ^ "Склеп::NaCl::Натрий" .
  14. ^ Криптографический орган Python (18 января 2024 г.). "пика/пинакл". Гитхаб . PyNaCl — это привязка Python к libsodium, который является ответвлением библиотеки Networking and Cryptography.
  15. ^ «Привязки для других языков». либнатрий .
  16. ^ «Общее хеширование». 13 декабря 2017 г. Проверено 19 мая 2018 г.
  17. ^ "Конструкции AEAD" . либнатрий .
  18. ^ «Хеширование с коротким вводом». либнатрий .
  19. ^ Дэниел Дж. Бернштейн; Бернар ван Гастель; Уэсли Янссен; Таня Ланге; Питер Швабе; Сяак Сметсерс (2013). «ТвитНаКл».
  20. ^ "TweetNaCl.js".
  21. ^ "TweetNaCl-Java" .
  22. ^ "СПАРКNaCl".
  23. ^ «Не создавайте свою собственную криптографию (dryoc): чистая ржавчина, криптографическую библиотеку, которую трудно использовать неправильно» .
  24. Вайлант, Лу (17 января 2024 г.). «ЛупВайлант/Моношифр».

Внешние ссылки