NaCl (библиотека)
NaCl — аббревиатура от «Networking and Cryptography library» с англ. — «библиотека для работы с сетью и криптографией», является общественным достоянием как «… высокоскоростная программная библиотека для связи по сети, шифрования, дешифрования, подписей и т. д.»[5]
Библиотека была создана математиком и программистом Дэниелом Бернштейном, известным более как создатель qmail и Curve25519. В числе главных разработчиков есть Таня Ланге и Питер Швабе. Главной целью, которой хотели достичь разработчики — это «избежание различных неудач, случившихся с ранее создаными криптографическими библиотеками»[6].
Общие сведения
| NaCl | |
|---|---|
| Тип | библиотека функций, проект и свободное и открытое программное обеспечение |
| Разработчики | Daniel J. Bernstein[2], Таня Ланге[d][3] и Швабе, Питер[d][3] |
| Написана на | Си[4], C++ и Python |
| Операционная система | Unix-подобная операционная система |
| Первый выпуск | 2008 |
| Последняя версия |
|
| Лицензия | 🅮 |
| Сайт | nacl.cr.yp.to |
Базовые функции
- Аутентифицированное шифрование с использованием Curve25519, Salsa20 и Poly1305
- Электронные подписи с использованием EdDSA
- Принятие ключа при помощи Curve25519
- Аутентифицированное шифрование с использованием Salsa20 и Poly1305
- Шифрование при помощи Salsa20 или AES
- Аутентификация при помощи механизма HMAC-SHA-512-256
- Одноразовая аутентификация при помощи Poly1305
- Хеширование при помощи SHA-512 или SHA-256[7]
- Сравнение строк[8]
Реализации
Альтернативные реализации
- Libsodium — переносимая кроссплатформенная совместимая по API версия NaCl[11]
- TweetNaCl — уменьшенная библиотека на Си, умещающаяся в 100 твитов (около 14000 символов), так же совместимая по API[12]
- NaCl for Tcl — порт на Tcl[13]
- NaCl for JavaScript — порт TweetNaCl на JavaScript[14]