Введение в гомоморфное шифрование:

Часть 1. Обзор и варианты использования

Часть 2: ОН пейзаж и CKKS

Часть 3: Кодирование и декодирование в CKKS

Введение

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

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

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

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

I. Проблемы конфиденциальности, связанные с использованием данных

Машинное обучение, особенно глубокое обучение, которое является подразделом машинного обучения, ориентированным на глубокие нейронные сети (DNN), доказало, что оно продвигает современное состояние в нескольких различных задачах. Разнообразные области, такие как распознавание изображений с помощью ResNet, обработка текста с помощью BERT или даже генерация речи с помощью WaveNet, претерпели значительные улучшения с использованием Deep Learning, в то время как другие модели проиграли со значительным отрывом.

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

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

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

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

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

  • Гомоморфное шифрование (HE) - это криптографическая схема с открытым ключом. Пользователь создает пару секретного и открытого ключей, использует открытый для шифрования своих данных перед отправкой их третьей стороне, которая будет выполнять вычисления с зашифрованными данными. Из-за гомоморфных свойств шифрования и дешифрования пользователь может получить зашифрованный результат и декодировать его своим собственным ключом, чтобы увидеть результат вычисления на своих данных, не показывая его один раз в явной форме для третьей стороны.
  • Безопасные многосторонние вычисления (SMPC) - это другая парадигма, которая больше полагается на общение между участниками. Данные могут быть разделены, как и модель, и каждый субъект отправляет только несколько долей своих данных, так что другие не могут восстановить исходные данные, но могут участвовать и выполнять некоторые вычисления над долями данных. Затем, как только каждая партия завершит свою работу, все можно агрегировать, и результат будет известен каждой стороне.
  • Надежные среды выполнения (TEE) позволяют разрабатывать программное обеспечение благодаря аппаратным гарантиям конфиденциальности. Технология Intel SGX обеспечивает реализацию такой системы. Технология анклава позволяет выполнять программы изолированно от других программ. Все входящие и исходящие данные зашифрованы, а чистые вычисления происходят только внутри анклава. Затем код и целостность анклава можно проверить извне.

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

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

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

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

HE позволяет передавать почти все вычисления на сервер после выполнения шифрования. Используя гомоморфные свойства, вычисления могут выполняться с зашифрованными данными без какой-либо утечки конфиденциальности, а вывод может быть безопасно дешифрован пользователем. Более того, HE не требует такого большого количества коммуникаций, как SMPC, и не требует специального оборудования по сравнению с TEE.

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

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

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

II. Дружественные к конфиденциальности сценарии использования с гомоморфным шифрованием

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

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

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

А. Конфиденциальность модели: финансовый показатель на основе общедоступных данных

обучение извлекло пользу из очень активных исследований и сообщества открытого исходного кода. Это сделало многие современные модели доступными для неисследователей. Например, хорошо известная структура Deep Learning Fastai позволила демократизировать мощные модели, такие как ResNet для распознавания изображений или ULMFiT для классификации текста.

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

Здесь мы рассмотрим сценарий, в котором пользователю удалось собрать, очистить и предварительно обработать набор данных, который использовался для обучения данной модели. Хотя данные, используемые при обучении, можно безопасно хранить, если пользователь хочет развернуть модель на облачных платформах, ему придется доверять облачному провайдеру, чтобы он не украл веса и не утек модель, будь то намеренно или непреднамеренно.

Таким образом, можно представить, что, зашифровав веса, облачный хост не сможет получить какое-либо представление о модели, и для пользователя становится безопасным развертывание своей модели в облаке.

Рисунок выше иллюстрирует это. Сценарий будет следующим:

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

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

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

Б. Частный вывод: пересечение частного набора

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

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

Например, пересечение частных наборов (PSI) - это сценарий, в котором один пользователь хранит личную информацию, но хочет проверить, пересекаются ли его данные с более крупной базой данных того же характера. Затем сервер будет управлять этой базой данных, и данные сервера не обязательно должны быть зашифрованы. HE предлагает возможность сделать это при сохранении конфиденциальности данных пользователя. Быстрое пересечение частных наборов с гомоморфным шифрованием исследует этот сценарий и показывает, что можно использовать PSI для обнаружения контактов. В этом случае у поставщика услуг, такого как Whatsapp, есть большие базы данных о том, кто пользуется их услугами, а новый клиент с небольшими ресурсами хотел бы знать, кто из их контактов использует Whatsapp. Затем этому клиенту просто нужно попросить сервер конфиденциально пересечь его список контактов со всеми пользователями и расшифровать результат, чтобы узнать, кто из ее контактов использует Whatsapp.

В качестве другого примера, в случае недавнего кризиса, связанного с Covid19, можно проверить, был ли установлен контакт между пользователем и известной группой инфицированных пациентов. Это может быть сделано в сценарии клиент-сервер, где пользователь делится своими данными о местоположении, а сервер может выполнять вычисления для вывода клиенту возможных пациентов, с которыми клиент мог столкнуться.

С. Трехстороннее конфиденциальное вычисление: модель больницы, размещенная в облаке

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

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

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

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

Заключение

На протяжении всей статьи мы видели, почему нам нужны более безопасные для конфиденциальности решения и каковы текущие подходы к HE, SMPC и TEE. Затем мы увидели, какие варианты использования могут быть адресованы HE.

HE кажется очень многообещающей областью в контексте GDPR и Covid19, где нам нужно продвигаться быстро, но с осторожностью в отношении данных людей.

Мы рассмотрим больше технических деталей в следующих статьях, где мы увидим, как построить нашу собственную схему HE с нуля.

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

Если у вас есть какие-либо вопросы, не стесняйтесь обращаться ко мне в Linkedin, вы также можете найти меня в Twitter!