Repolode
microsoft

microsoft/SEAL

Microsoft SEAL — это библиотека гомоморфного шифрования с открытым исходным кодом на C++, которая позволяет складывать и умножать зашифрованные числа, не расшифровывая их.

Звёзды
4,054
Форки
779
Открытые issues
110
Последний коммит
позавчера

Что это?

Microsoft SEAL — библиотека гомоморфного шифрования, разработанная исследовательской группой Microsoft по криптографии. Она позволяет программе обрабатывать зашифрованные данные: облачный сервис может выполнять вычисления над значениями, которые не может прочитать, а расшифровать результаты может только владелец данных, у которого есть секретный ключ. Поддерживаются сложение и умножение зашифрованных целых и вещественных чисел.

Библиотека реализует схемы BFV и BGV для точной модульной арифметики над целыми числами и схему CKKS для приближённой арифметики над вещественными или комплексными числами. Это подходит для таких задач, как суммирование зашифрованных данных и вычисление результатов работы моделей машинного обучения. Библиотека написана на стандартном C++17 и включает .NET-обёртку, распространяемую как пакет NuGet. Сборка доступна через CMake, vcpkg и Homebrew; также можно подключить Intel HEXL, Zstandard и ZLIB.

Гомоморфное шифрование требует значительных вычислительных ресурсов и поддерживает лишь ограниченный набор операций, поэтому SEAL предназначена для тех частей программы, где особенно важна конфиденциальность, а не для вычислений общего назначения. В документации проекта рекомендуется внимательно изучить примеры, прежде чем писать код для production.

Ключевые возможности

  • 01Сложение и умножение зашифрованных целых чисел (BFV, BGV), а также вещественных и комплексных чисел (CKKS).
  • 02Кодовая база на стандартном C++17, сборка через CMake; поддерживаются Windows, Linux, macOS, Android, iOS и WebAssembly.
  • 03Официальная .NET-обёртка доступна в виде пакета NuGet.
  • 04Опциональное ускорение с помощью Intel HEXL на процессорах с AVX-512.
  • 05Сжатая сериализация и сериализация шифротекстов и ключей с упаковкой битов.

Сценарии использования

  • Вычисление сумм и статистических показателей по зашифрованным конфиденциальным данным в облачном сервисе.
  • Вычисление результатов работы моделей машинного обучения на зашифрованных входных данных с сохранением конфиденциальности.
  • Исследование и прототипирование протоколов вычислений с сохранением конфиденциальности.
  • Добавление функций вычислений над зашифрованными данными в приложения на .NET или C++.

Быстрый старт

  1. 1

    Установите с помощью vcpkg (работает на большинстве платформ)

  2. 2

    В macOS установите с помощью Homebrew

  3. 3

    В FreeBSD установите с помощью инструмента pkg

    pkg install seal
  4. 4

    Для .NET установите пакет NuGet Microsoft.Research.SEALNet

Что важно знать

  • Для зашифрованных данных поддерживаются только сложение и умножение; сравнения и ветвления невозможны.
  • Схема CKKS дает только приблизительные результаты, поэтому она не подходит, если требуются точные значения.
  • Microsoft SEAL сложно освоить: для работы с ним нужно понимать концепции гомоморфного шифрования.
  • Гомоморфное шифрование значительно снижает производительность и приводит к гораздо большему размеру шифротекстов; кроме того, большинство схем обеспечивают более слабые гарантии безопасности, чем традиционное шифрование.

Темы

Частые вопросы

Что такое SEAL?
Microsoft SEAL — это библиотека гомоморфного шифрования с открытым исходным кодом на C++, которая позволяет складывать и умножать зашифрованные числа, не расшифровывая их. Microsoft SEAL — библиотека гомоморфного шифрования, разработанная исследовательской группой Microsoft по криптографии. Она позволяет программе обрабатывать зашифрованные данные: облачный сервис может выполнять вычисления над значениями, которые не может прочитать, а расшифровать результаты может только владелец данных, у которого есть секретный ключ. Поддерживаются сложение и умножение зашифрованных целых и вещественных чисел.
SEAL можно использовать бесплатно? Какая у него лицензия?
SEAL распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
SEAL всё ещё поддерживается?
Активно поддерживается. Последний коммит в SEAL — 19 окт. 2026 г..
Для чего можно использовать SEAL?
Вычисление сумм и статистических показателей по зашифрованным конфиденциальным данным в облачном сервисе. Вычисление результатов работы моделей машинного обучения на зашифрованных входных данных с сохранением конфиденциальности. Исследование и прототипирование протоколов вычислений с сохранением конфиденциальности. Добавление функций вычислений над зашифрованными данными в приложения на .NET или C++.
Как установить SEAL?
Установите с помощью vcpkg (работает на большинстве платформ) В macOS установите с помощью Homebrew В FreeBSD установите с помощью инструмента pkg: pkg install seal Для .NET установите пакет NuGet Microsoft.Research.SEALNet
Где скачать SEAL?
Исходный код и инструкции по установке — на GitHub: https://github.com/microsoft/SEAL

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты