NaCl (wymawiana jako „sól”) jest nową, łatwą w użyciu, szybką biblioteką oprogramowania do komunikacji sieciowej, szyfrowania, deszyfrowania, podpisów, itp.Celem NaCl jest dostarczenie wszystkich podstawowych operacji potrzebnych do zbudowania narzędzi kryptograficznych wyższego poziomu.
Oczywiście, istnieją już inne biblioteki dla tych podstawowych operacji.NaCl rozwija stan techniki poprzez poprawę bezpieczeństwa, poprawę użyteczności i poprawę szybkości.
Następujący raport porównuje NaCl z innymi bibliotekami z perspektywy bezpieczeństwa:(PDF)Daniel J. Bernstein, Tanja Lange, Peter Schwabe, „The security impact of a new cryptographic library”.Pages 159-176 inProceedings of LatinCrypt 2012, edited by Alejandro Hevia and Gregory Neven,Lecture Notes in Computer Science 7533,Springer, 2012.ISBN 978-3-642-33480-1.
Następujący raport został stworzony dla Research Plazaand i stanowi wprowadzenie do NaCl dla szerszej publiczności:(PDF)
Nadchodzące funkcje
Główne funkcje w następnym wydaniu NaCl:pełna obsługa PIC, dla łatwej integracji z innymi językami;podpisy Ed25519 (obecnie dostępne w SUPERCOP);optymalizacje NEON.
Współautorzy
Główny zespół rozwijający NaCl składa się zDaniela J. Bernstein (University of Illinois at Chicago i Technische Universiteit Eindhoven),Tanja Lange (Technische Universiteit Eindhoven) i Peter Schwabe (Radboud Universiteit Nijmegen).
NaCl został zainicjowany w ramach projektuCACE (Computer Aided Cryptography Engineering) finansowanego przez Siódmy Program Ramowy Komisji Europejskiej (7PR), numer umowy ICT-2008-216499, realizowanego w latach 2008-2010.Prace nad NaCl na Technische Universiteit Eindhoven w latach 2008-2010 były sponsorowane przez CACE.
NaCl czerpie korzyści z bliskiej współpracy z dwoma innymi projektami.API NaCl jest oparte na i miało wpływ na API SUPERCOP (System for Unified Performance Evaluation Relatedto Cryptographic Operations and Primitives) opracowany dla projektu eBACS (ECRYPT Benchmarking of Cryptographic Systems).Wiele algorytmów i implementacji użytych w NaCl zostało opracowanych jako część projektu Daniela J. Bernsteina High-Speed Cryptography finansowanego przez U.S. National Science Foundation, grant numer 0716498, oraz kontynuacji projektu Higher-Speed Cryptography finansowanego przez U.S. National Science Foundation, grant numer 1018836.Praca nad NaCl na Uniwersytecie Illinois w Chicago była sponsorowana przez te granty. „Wszelkie opinie, ustalenia i wnioski lub rekomendacje wyrażone w tym materiale są opiniami autora(ów) i niekoniecznie odzwierciedlają poglądy National Science Foundation.”
Kilka implementacji w NaCl pochodzi częściowo lub całkowicie od stron trzecich.Przenośność NaCl opiera się na implementacji ref Curve25519 napisanej przez Matthew Dempsky’ego (Mochi Media, obecnie Google).Od 2009 do 2011 roku szybkość działania NaCl na zwykłych procesorach Intel/AMD polegała na implementacjach donna i donna_c64 krzywej 25519 napisanych przez Adama Langleya (Google).Najnowsze implementacje krzywej 25519 i Ed25519 były dziełem Nielsa Duifa (Technische Universiteit Eindhoven) i Bo-Yin Yanga (Academia Sinica).Implementacja AES w core2 była dziełem Emilii Käsper (Katholieke Universiteit Leuven, obecnie Google).