Гомоморфное шифрование с использованием SEAL

.NET

В этой статье описывается, как и когда следует использовать одноморфное шифрование и как реализовать одноморфное шифрование с помощью библиотеки простого шифрования Microsoft Simple Encrypted Arithmetic Library (SEAL).

Архитектура

Схема, показывающая традиционное шифрование и шифрование SEAL.

Скачайте файл Visio для этой архитектуры.

Рабочий процесс

Традиционные схемы шифрования состоят из трех функций: создания ключей, шифрования и расшифровки. Схемы шифрования симметричного ключа используют один и тот же секретный ключ для шифрования и расшифровки. Это обеспечивает эффективное шифрование больших объемов данных для безопасного, аутсорсинга облачного хранилища. Схемы шифрования с открытым ключом используют открытый ключ для шифрования и отдельный секретный ключ для расшифровки. Любой, кто знает открытый ключ, может шифровать данные, но только тот, кто знает секретный ключ, может расшифровать и прочитать данные. Шифрование с открытым ключом обеспечивает безопасный сетевой обмен данными, но обычно является менее эффективным, чем шифрование симметричного ключа.

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

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

Подробности сценария

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

Потенциальные варианты использования

  • Упрощенные вычисления, такие как добавление и умножение на критически важные для конфиденциальности данные и части программ.
  • Аутсорсинг облачных вычислений, где один владелец владеет всеми данными и имеет единственный доступ к ключам расшифровки.

Рекомендации

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

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

  • Одноморфное шифрование не является эффективным. Так как одноморфное шифрование поставляется с большими затратами на производительность, вычисления, которые уже дорогостоящи для выполнения незашифрованных данных, вероятно, не являются возможными для зашифрованных данных.

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

  • Как правило, схемы гомоморфного шифрования имеют один секретный ключ, который хранится владельцем данных. Одноморфное шифрование не является разумным для сценариев, когда несколько разных владельцев частных данных хотят участвовать в совместной работе.

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

  • Хотя примитив гомоморфного шифрования является безопасным, он не гарантирует, что приложения и протоколы, использующие его, защищены.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Автор субъекта:

  • Хосе Контрерас | Главный менеджер по разработке программного обеспечения

Следующие шаги

Дополнительные сведения о гомоморфном шифровании и библиотеке Microsoft SEAL см. в статье Microsoft SEAL из Microsoft Research и проект кода SEAL на сайте GitHub.

Ознакомьтесь со следующими ресурсами по обеспечению безопасности в Azure: