Лучшие вопросы
Таймлайн
Чат
Перспективы
NaCl (библиотека)
библиотека для сети и криптографии Из Википедии, свободной энциклопедии
Remove ads
NaCl — аббревиатура от «Networking and Cryptography library» с англ. — «библиотека для работы с сетью и криптографией», является общественным достоянием как «… высокоскоростная программная библиотека для связи по сети, шифрования, дешифрования, подписей и т. д.»[5]
Библиотека была создана математиком и программистом Дэниелом Бернштейном[англ.], известным более как создатель qmail и Curve25519. В числе главных разработчиков есть Таня Ланге[вд] и Питер Швабе[вд]. Главной целью, которой хотели достичь разработчики — это «избежание различных неудач, случившихся с ранее создаными криптографическими библиотеками»[6].
Remove ads
Базовые функции
Криптосистема с открытым ключом
- Аутентифицированное шифрование с использованием Curve25519, Salsa20 и Poly1305
- Электронные подписи с использованием EdDSA
- Принятие ключа при помощи Curve25519
Криптосистема с закрытым ключом
- Аутентифицированное шифрование с использованием Salsa20 и Poly1305
- Шифрование при помощи Salsa20 или AES
- Аутентификация при помощи механизма HMAC-SHA-512-256
- Одноразовая аутентификация при помощи Poly1305
Низкоуровневые функции
- Хеширование при помощи SHA-512 или SHA-256[7]
- Сравнение строк[8]
Remove ads
Реализации
Эталонная реализация была написана на Си с частыми вставками ассемблера. C++ и Python выступают в роли обёртки[9].
NaCl реализован в различных языках, например, PHP[10], является частью Libsodium.
Альтернативные реализации
- Libsodium — переносимая кроссплатформенная совместимая по API версия NaCl[11]
- TweetNaCl — уменьшенная библиотека на Си, умещающаяся в 100 твитов (около 14000 символов), так же совместимая по API[12]
- NaCl for Tcl — порт на Tcl[13]
- NaCl for JavaScript — порт TweetNaCl на JavaScript[14]
Примечания
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads