NaCl (программное обеспечение) - NaCl (software)
Оригинальный автор (ы) | Дэниел Дж. Бернштейн, Таня Ланге, Питер Швабе |
---|---|
изначальный выпуск | 2008 |
Стабильный выпуск | 20110221/21 февраля 2011 г. |
Операционная система | UNIX-подобный |
Лицензия | всеобщее достояние[1] |
Интернет сайт | накл |
NaCl (произносится как «соль») - это сокращение от «Библиотека сетей и криптографии», всеобщее достояние «... высокоскоростная программная библиотека для сетевой связи, шифрования, дешифрования, подписи и т. д.».[2]
NaCl был создан математиком и программистом. Дэниел Дж. Бернштейн кто наиболее известен созданием qmail и Подкрутка25519. В основной состав также входят Таня Ланге[3] и Питер Швабе.[4] Согласно статье, основной целью при создании NaCl было «избежать различных типов криптографических катастроф, от которых страдали предыдущие криптографические библиотеки».[1]
Основные функции
Криптография с открытым ключом
- Подписи с помощью Ed25519.
- Ключевое соглашение с использованием Подкрутка25519.
Криптография с секретным ключом
- Аутентифицированное шифрование с помощью Сальса20 и Поли1305.
- Шифрование с помощью Сальса20 или же AES.
- Аутентификация с помощью HMAC-SHA-512-256.
- Одноразовая аутентификация с использованием Поли1305.
Функции низкого уровня
- Сравнение строк.[7]
Функция вывода ключей (только libsodium)
- Хеширование паролей с использованием аргон2
Реализации
Эталонная реализация написана на C, часто с несколькими встроенный ассемблер. C ++ и Python обрабатываются как обертки.[8]
NaCl имеет множество привязок языков программирования, таких как PHP,[9] и составляет основу Libsodium, кроссплатформенной криптографической библиотеки, созданной в 2013 году и совместимой с NaCl по API.
Альтернативные реализации
- Либсодиум - переносимая, кросс-компилируемая, устанавливаемая, упаковываемая, совместимая с API версия NaCl.[10]
- NaCl Pharo - расширение Pharo Smalltalk.[11]
- TweetNaCl - крошечная библиотека C, которая умещается всего в 100 твиты (140 символов каждый), но поддерживает все функции NaCl.[12]
- NaCl для Tcl - порт на язык Tcl.[13][требуется сторонний источник ]
- NaCl для JavaScript - порт криптографической библиотеки TweetNaCl / NaCl на язык JavaScript.[14]
- TweetNaCl для Java - перенос криптографической библиотеки TweetNaCl / NaCl на язык Java.[15]
- SPARKNaCl - переписывание TweetNaCl в подмножестве SPARK Ada с формальными и полностью автоматическими доказательствами безопасности типов и некоторыми свойствами правильности.[16]
- Crypt :: NaCl :: Sodium Привязка Perl 5 к libsodium[17]
Смотрите также
- Сравнение криптографических библиотек
- Список пакетов бесплатного и открытого программного обеспечения
Рекомендации
- ^ а б https://cr.yp.to/highspeed/coolnacl-20120725.pdf В архиве 2017-08-09 в Wayback Machine «Влияние новой криптографической библиотеки на безопасность» Дэниел Дж. Бернштейн, Таня Ланге, Питер Швабе
- ^ «NaCl: библиотека сетей и криптографии».
- ^ "Домашняя страница Тани Ланге".
- ^ "Домашняя страница Питера Швабе".
- ^ "Хеширование". 2010-08-30. Получено 2015-11-14.
- ^ «Общее хеширование». 2017-12-13. Получено 2018-05-19.
- ^ Бернштейн, Дэниел Дж. (10 марта 2009 г.). Криптография в NaCl (PDF). Архивировано из оригинал (PDF) 25 марта 2017 г.. Получено 8 февраля 2016.
- ^ «Внутреннее устройство NaCl».
- ^ «Расширение NaCl PHP». Github. 2019-06-14.
- ^ «Либсодиум».
- ^ "Репозиторий SmalltalkHub".
- ^ "TweetNaCl".
- ^ "Tclers Wiki - NaCl для Tcl".
- ^ "TweetNaCl".
- ^ "TweetNaCl-Java".
- ^ «СПАРКНАКЛ».
- ^ "Склеп :: NaCl :: Натрий".