NaCl (pronuncia-se “sal”) é uma nova biblioteca de software de alta velocidade fácil de usar para comunicação em rede, criptografia, decodificação, assinaturas, etc. O objetivo do NaCl é fornecer todas as operações centrais necessárias para construir ferramentas criptográficas de nível superior.
Obviamente, já existem outras bibliotecas para essas operações centrais.NaCl avança o estado da arte melhorando a segurança, melhorando a usabilidade e a velocidade.
O seguinte relatório contrasta NaCl com outras bibliotecas de uma perspectiva de segurança:(PDF)Daniel J. Bernstein, Tanja Lange, Peter Schwabe, “The security impact of a new cryptographic library”.Páginas 159-176 emProceedings of LatinCrypt 2012, editado por Alejandro Hevia e Gregory Neven,Lecture Notes in Computer Science 7533,Springer, 2012.ISBN 978-3-642-33480-1.
O seguinte relatório foi criado para o Research Plazaand e dá uma introdução ao NaCl para um público mais amplo:(PDF)
Apróximas características
Características maiores na próxima versão do NaCl:suporte completo ao PIC, para fácil integração em outros idiomas;Ed25519 assinaturas (atualmente disponível em SUPERCOP);NEON otimizações.
Contribuidores
A equipe central de desenvolvimento do NaCl consiste emDaniel J. Bernstein (Universidade de Illinois em Chicago e Technische Universiteit Eindhoven),Tanja Lange (Technische Universiteit Eindhoven),e Peter Schwabe (Radboud Universiteit Nijmegen).
NaCl foi iniciado no âmbito do projectoCACE (Computer Aided Cryptography Engineering) financiado pelo Sétimo Programa Quadro da Comissão Europeia (FP7),número de contrato ICT-2008-216499,a decorrer de 2008 a 2010.As actividades do CACE foram organizadas em vários pacotes de trabalho (WPs); NaCl foi a principal tarefa do WP2, “Accelerating Secure Networking”. O trabalho sobre NaCl na Technische Universiteit Eindhoven entre 2008 e 2010 foi patrocinado pelo CACE.
NaCl beneficia da estreita colaboração com dois outros projectos.O NaCl API é baseado no SUPERCOP (System for Unified Performance Evaluation Related to Cryptographic Operations and Primitives) API desenvolvido para o projeto eBACS (ECRYPT Benchmarking of Cryptographic Systems), e tem influenciado.Muitos dos algoritmos e implementações utilizados no NaClwere foram desenvolvidos como parte do projeto High-Speed Cryptography de Daniel J. Bernstein, financiado pela Fundação Nacional da Ciência dos EUA, doação número 0716498, e o projeto de acompanhamento Higher-Speed Cryptography financiado pela Fundação Nacional da Ciência dos EUA, doação número 1018836.O trabalho sobre NaCl na Universidade de Illinois, em Chicago, foi patrocinado por essas bolsas. “Quaisquer opiniões, achados e conclusões ou recomendações -expressas neste material são do(s) autor(es) e não refletem necessariamente a opinião da National Science Foundation.”
Several das implementações em NaCl são parcial ou totalmente de terceiros. A portabilidade do NaCl depende da implementação de ref. da Curve25519 escrita por Matthew Dempsky (Mochi Media, agora Google).De 2009 até 2011 a velocidade do NaCl em CPUs Intel/AMD comuns contou com as implementações donna e donna_c64 da Curve25519 escrita por Adam Langley (Google). As mais novas implementações da Curve25519 e da Ed25519 foram feitas em conjunto com Niels Duif (Technische Universiteit Eindhoven) e Bo-Yin Yang (Academia Sinica).