NaCl — аббревиатура от «Networking and Cryptography library» , является общественным достоянием как «… высокоскоростная программная библиотека для связи по сети, шифрования, дешифрования, подписей и т. д.»

Библиотека была создана математиком и программистом Дэниелом Бернштейном, известным более как создатель qmail и Curve25519. В числе главных разработчиков есть и . Главной целью, которой хотели достичь разработчики — это «избежание различных неудач, случившихся с ранее создаными криптографическими библиотеками».

Базовые функции

Криптосистема с открытым ключом Аутентифицированное шифрование с использованием Curve25519, Salsa20 и Poly1305 Электронные подписи с использованием EdDSA Принятие ключа при помощи Curve25519

Криптосистема с закрытым ключом Аутентифицированное шифрование с использованием Salsa20 и Poly1305 Шифрование при помощи Salsa20 или AES Аутентификация при помощи механизма HMAC-SHA-512-256 Одноразовая аутентификация при помощи Poly1305

Низкоуровневые функции Хеширование при помощи SHA-512 или SHA-256 Сравнение строк

Реализации Эталонная реализация была написана на Си с частыми вставками ассемблера. C++ и Python выступают в роли обёртки.

NaCl реализован в различных языках, например, PHP, является частью Libsodium.

Альтернативные реализации Libsodium — переносимая кроссплатформенная совместимая по API версия NaCl TweetNaCl — уменьшенная библиотека на Си, умещающаяся в 100 твитов (около 14000 символов), так же совместимая по API NaCl for Tcl — порт на Tcl NaCl for JavaScript — порт TweetNaCl на JavaScript

Примечания

Категория:Криптографическое программное обеспечение