Microsoft SEAL - это быстрая и удобная библиотека гомоморфного шифрования, созданная Microsoft Research. Он написан на C++ и работает в Windows, Linux и macOS. Самая последняя версия Microsoft SEAL находится в открытом доступе по адресу https://github.com/Microsoft/SEAL.

Введение

Microsoft SEAL - это простая в использовании библиотека гомоморфного шифрования, разработанная исследователями из группы Cryptography Research Group в Microsoft Research. Microsoft SEAL написан на стандартном C++ и не имеет внешних зависимостей, что упрощает компиляцию во многих различных средах. Текущая версия включает стандартные оболочки.NET для общедоступного API.

Первая версия Microsoft SEAL была выпущена в конце 2015 года, и с тех пор библиотека постоянно развивается, выпуская несколько основных выпусков в год. Microsoft SEAL находится под лицензией MIT и может быть загружен по адресу https://github.com/Microsoft/SEAL.

Гомоморфное шифрование

Гомоморфное шифрование относится к новому типу схемы шифрования, которая позволяет выполнять вычисления непосредственно на зашифрованных данных, не требуя предварительного дешифрования. Результат таких зашифрованных вычислений остается зашифрованным и, таким образом, может быть интерпретирован только владельцем секретного ключа (в большинстве случаев владельцем данных). Такая функциональность может, например, включать криптографически частное облачное хранилище и вычислительную службу. В частности, Microsoft SEAL реализует схему BFV для зашифрованной модульной арифметики и схему CKKS для зашифрованной приблизительной арифметики с фиксированной точностью.

И BFV, и схема CKKS представляют собой высокоэффективные схемы гомоморфного шифрования на основе постквантового безопасного RLWE. Такие схемы шифрования в настоящее время не стандартизированы ни одной крупной организацией по стандартизации, но недавно начатая группа http://homomorphicencryption.org пытается вместо этого создать стандарт консорциума, описывающий параметры безопасности, стандартный API и модель программирования для нескольких схем, включая BFV. и схемы CKKS. Microsoft SEAL реализует параметры безопасности, рекомендованные стандартом.

Документация и вопросы

На главной странице репозитория GitHub содержится подробное руководство по установке для нескольких платформ. Для практического обучения Microsoft SEAL содержит примеры проектов с обширными комментариями, демонстрирующие основные концепции библиотеки. Кроме того, файлы заголовков содержат подробные комментарии к общедоступному API.

Задавая вопросы, важно знать конкретную версию Microsoft SEAL, которая используется, а также видеть полный код, вызывающий проблему. В частности, значения, заданные в параметрах шифрования (EncryptionParametersclass) критически важно знать, поскольку поведение схемы шифрования полностью зависит от этих параметров. Прежде чем задать свой вопрос, пожалуйста, посмотрите на вопросы, получившие наибольшее количество голосов под этим тегом, поскольку они, как правило, решают многие общие проблемы, недопонимание и фундаментальные проблемы при использовании Microsoft SEAL.