NaCl (бібліотека)
NaCl (англ. Networking and Cryptography library) - «проста у використанні, високошвидкісна програмна бібліотека для мережевих комунікацій, шифрування, дешифрування, підписів і т.п.»[4].
Бібліотека була створена математиком і програмістом Деніелом Бернштайном, який відомий більше як творець qmail і Curve25519[en]. До ядра команди також входять Таня Ланге[5] й Пітер Швабе[6]. Проектуючи та реалізовуючи бібліотеку розробники намагались «уникнути різноманітних криптографічних катастроф, що сталися із попередніми криптографічними бібліотеками, такими як OpenSSL».[7]
Базові функції[ред. | ред. код]
Криптосистема з відкритим ключем[ред. | ред. код]
- Аутентифікаційне шифрування з використанням Curve25519[en], Salsa20 і Poly1305[en]
- Електронні підписи з використанням EdDSA[en]
- Прийняття ключа за допомогою Curve25519[en]
Криптосистема із закритим ключем[ред. | ред. код]
- Аутентифікаційне шифрування з використанням Salsa20 і Poly1305[en]
- Шифрування за допомогою Salsa20 або Advanced Encryption Standard AES
- Аутентифікація за допомогою механізму HMAC — SHA-512-256
- Одноразова аутентифікація за допомогою Poly1305[en]
Низькорівневі функції[ред. | ред. код]
Реалізації[ред. | ред. код]
Еталонна реалізація написана на Сі з ассемблерними вставками[en]. Для C++ і Python написані обгортки[10].
NaCl має прив'язки для різних мов, таких як PHP[11], є основою для Libsodium [⇨].
Альтернативні реалізації[ред. | ред. код]
- англ. Libsodium — переносна кросплатформена сумісність з API версія NaCl[12]
- англ. TweetNaCl — зменшена бібліотека на Сі, вміщується в 100 твітів (близько 14000 символів), також сумісна з API[13]
- англ. NaCl for Tcl — порт на Tcl[14]
- англ. NaCl for JavaScript — порт TweetNaCl на JavaScript[15]
Примітки[ред. | ред. код]
- ↑ а б в NaCl: Networking and Cryptography library — 2016.
- ↑ NaCl: Networking and Cryptography library — 2016.
- ↑ Features — 2011.
- ↑ NaCl: Networking and Cryptography library: Introduction. Архів оригіналу за 7 жовтня 2017. Процитовано 25 червня 2018.
- ↑ Домашня сторінка Тані Ланге. Архів оригіналу за 23 червня 2018. Процитовано 25 червня 2018. (англ.)
- ↑ Домашня сторінка Пітера Швабе. Архів оригіналу за 5 липня 2012. Процитовано 25 червня 2018.
- ↑ Daniel J. Bernstein, Tanja Lange і Peter Schwabe (25 липня 2012). The security impact of a new cryptographic library (PDF) (англ.). Архів оригіналу (PDF) за 9 серпня 2017. Процитовано 18 серпня 2017.
Permanent ID of this document: 5f6fc69cc5a319aecba43760c56fab04
- ↑ Hashing: crypto_hash url = https://nacl.cr.yp.to/hash.html (англ.). 30 серпня 2010.
{{cite web}}
:|access-date=
вимагає|url=
(довідка); Пропущений або порожній|url=
(довідка) - ↑ Daniel J. Bernstein (2009-03- 10). Cryptography in NaCl (PDF) (англ.). Department of Computer Science (MC 152) The University of Illinois at Chicago Chicago, IL 60607-7053. Архів оригіналу (PDF) за 25 березня 2017. Процитовано 18 серпня 2017.
Permanent ID of this document: 1ae6a0ecef3073622426b3ee56260d34
- ↑ Internals (англ.). 26 червня 2011. Архів оригіналу за 18 серпня 2017. Процитовано 18 серпня 2017.
- ↑ Gasol. NaCl PHP Extension. GitHub (англ.). Архів оригіналу за 11 червня 2018. Процитовано 18 серпня 2017.
- ↑ Сайт Libsodium. Архів оригіналу за 24 вересня 2019. Процитовано 10 травня 2022.
- ↑ Сайт TweetNaCl. Архів оригіналу за 20 лютого 2022. Процитовано 10 травня 2022.
- ↑ Сайт NaCl for Tcl. Архів оригіналу за 9 грудня 2017. Процитовано 13 квітня 2018.
- ↑ Сайт NaCl for JavaScript. Архів оригіналу за 7 лютого 2018. Процитовано 13 квітня 2018.
Посилання[ред. | ред. код]
На цю статтю не посилаються інші статті Вікіпедії. Будь ласка розставте посилання відповідно до прийнятих рекомендацій. |