15 октября 2014
Релиз новой криптографической библиотеки Sodium
Первый стабильный релиз свободной криптографической библиотеки Sodium (libsodium 1.0.0) в сентябре 2014 года представил сотрудник компании «OpenDNS» Фрэнк Денис. Библиотека предназначена для создания инструментов защищенного сетевого взаимодействия, шифрования и работы с цифровыми подписями. Исходный код Sodium распространяется по лицензии ISC.
Проект Sodium представляет собой версию разработанной ранее криптографической библиотеки Networking and Cryptography library (NaCl). Она анонсирована компанией «OpenDNS» в 2013 году, но не получила широкого распространения из-за несовместимости с другими платформами, кроме Unix.
Библиотека обеспечивает полную совместимость с NaCl на уровне интерфейса программирования приложений. Она включается в пакеты и инсталляторы для многих операционных систем. В Sodium сборка представлена в виде разделяемой библиотеки, поставляется стандартный набор заголовочных файлов, добавлены средства для установки и интеграции со сторонними проектами. Базовый интерфейс программирования ориентирован на язык Си, но дополнительно в пакет включены дополнения для языков Ruby и Python. Sodium поддерживает следующие платформы: Bitrig, OpenBSD, Dragonfly BSD, NetBSD, FreeBSD, SmartOS, Mac OS X, Linux, Windows, iOS и Android.
Libsodium предоставляет упрощенный интерфейс программирования с ограниченным, но проверенным набором безопасных криптографических опций и методов. В Sodium и NaCl пользователю предоставляется готовый к использованию набор функций, содержащий только безопасные методы. По сравнению с OpenSSL, который обладает избыточной функциональностью, освоение Sodium проще. Sodium предоставляет через интерфейс программирования приложений следующие функции:
– шифрование с использованием аутентификации с открытыми и общими ключами;
– создание и проверку цифровых подписей по открытым и общим ключам;
– операции хэширования, позволяющие сформировать слепок от сообщения, имеющий фиксированную длину, дающий возможность проверить соответствие хэшу начального сообщения, но не позволяющий восстановить элементы сообщений из хэша;
– средства для формирования для хэш-таблиц непредсказуемых ключей из коротких сообщений;
– безопасный генератор псевдослучайных чисел для использования в криптографических операциях.