Введение

Подраздел криптографии

Безопасные многосторонние вычисления (также известные как безопасные вычисления, многосторонние вычисления (MPC) или вычисления, сохраняющие конфиденциальность) — это подраздел криптографии, целью которого является разработка методов, позволяющих сторонам совместно вычислять функцию над своими входными данными, сохраняя при этом эти данные в тайне. В отличие от традиционных криптографических задач, где криптография обеспечивает безопасность и целостность связи или хранения, а злоумышленник находится вне системы участников (например, перехватывает сообщения между отправителем и получателем), криптография в данной модели защищает конфиденциальность участников друг от друга. Основы безопасных многосторонних вычислений были заложены в конце 1970-х годов в работах по ментальному покеру — криптографическим исследованиям, имитирующим игровые/вычислительные задачи на расстоянии без привлечения доверенной третьей стороны. Традиционно криптография была направлена на сокрытие содержимого, тогда как этот новый тип вычислений и протоколов направлен на сокрытие частичной информации о данных при вычислениях с данными из множества источников и корректное получение результатов. К концу 1980-х годов Майкл Бен-Ор, Шафи Голдвассер и Ави Вигдерсон, а также независимо от них Дэвид Чоум, Клод Крепо и Иван Дамгард опубликовали работы, демонстрирующие "возможность безопасного вычисления любой функции в условиях защищенных каналов связи".

История

Специальные протоколы для конкретных задач появились в конце 1970-х годов. Позже, безопасные вычисления были формально введены как безопасные вычисления двух сторон (2PC) в 1982 году (для так называемой проблемы миллионеров, специфической задачи, являющейся булевым предикатом), и в общем виде (для любых реализуемых вычислений) в 1986 году Эндрю Яо. Эта область также называется безопасной оценкой функций (SFE). За двухсторонним случаем последовало обобщение на многосторонний случай Одедом Голдрейхом, Сильвио Микали и Ави Вигдерсоном. Вычисления основаны на секретном разделении всех входных данных и доказательствах с нулевым разглашением для потенциально злоумышленного случая, где большинство честных участников в случае злонамеренного противника гарантируют обнаружение некорректного поведения и продолжение вычислений с исключением нечестного участника или раскрытием его входных данных. Эта работа предложила базовую общую схему, которой должны следовать практически все будущие многосторонние протоколы для безопасных вычислений. В этой работе был представлен подход, известный как парадигма GMW, для компиляции многостороннего вычислительного протокола, устойчивого к получестным противникам, в протокол, устойчивый к злонамеренным противникам. За этой работой последовал первый устойчивый безопасный протокол, терпимо относящийся к ошибочному поведению без раскрытия выходных данных кого-либо, посредством работы, в которой была изобретена часто используемая "идея разделения долей" и протокол, позволяющий одной из сторон безоговорочно скрыть свои входные данные. Парадогма GMW долгое время считалась неэффективной из-за значительных накладных расходов, которые она вносит в базовый протокол. Однако было показано, что можно достичь эффективных протоколов, что делает это направление исследований еще более интересным с практической точки зрения. Приведенные выше результаты относятся к модели, в которой противник ограничен вычислениями за полиномиальное время и наблюдает за всеми коммуникациями, поэтому модель называется "вычислительной моделью". Кроме того, было показано, что протокол скрытой передачи является полным для этих задач. Приведенные выше результаты установили, что в указанных вариациях можно достичь безопасных вычислений, когда большинство пользователей честны. Следующим вопросом было решение задачи безопасных каналов связи, где противник не имеет доступа к связи типа "точка-точка"; в этом случае было показано, что решения могут быть достигнуты, если до 1/3 участников ведут себя некорректно и злонамеренно, и решения не используют криптографические инструменты (поскольку доступна безопасная связь). Добавление широковещательного канала позволяет системе выдерживать до 1/2 недобросовестного меньшинства, в то время как ограничения связности на графе связи были исследованы в книге "Perfectly Secure Message Transmission". С годами понятие многосторонних протоколов общего назначения стало плодотворной областью для изучения фундаментальных и общих свойств протоколов, таких как универсальная композируемость или мобильный противник, как в случае проактивного секретного разделения. С конца 2000-х годов, и особенно с 2010 года, область протоколов общего назначения перешла к улучшению эффективности протоколов с учетом практических приложений. Были предложены все более эффективные протоколы для MPC, и теперь MPC можно рассматривать как практическое решение для различных реальных задач (особенно тех, которые требуют только линейного разделения секретов и в основном локальных операций с долями без значительного взаимодействия между участниками), таких как распределенное голосование, частные торги и аукционы, совместное использование функций подписи или дешифрования и конфиденциальный поиск информации. Первым крупномасштабным и практическим применением многосторонних вычислений стало проведение электронного двойного аукциона на датском аукционе сахарной свеклы, который состоялся в январе 2008 года. Очевидно, что необходимы как теоретические концепции и исследования, так и прикладные разработки (например, условия для внедрения MPC в повседневную деятельность были предложены и представлены в). В 2020 году ряд компаний, работающих с безопасными многосторонними вычислениями, основали альянс MPC с целью "ускорить осведомленность, принятие и внедрение технологии MPC".

Протоколы

Существуют значительные различия между протоколами, предлагаемыми для вычислений между двумя сторонами (2PC) и многосторонних вычислений (MPC). Кроме того, для протоколов специального назначения, имеющих важное значение, часто требуется разработать специализированный протокол, отличающийся от универсальных (голосование, аукционы, платежи и т.п.).

Двусторонние вычисления

Двухсторонний сценарий особенно интересен не только с точки зрения практического применения, но и потому, что в двухстороннем сценарии можно применять специальные методы, которые не применимы в многостороннем случае. Действительно, безопасные многосторонние вычисления (фактически, частный случай безопасной оценки функции, где оценивается только одна функция) впервые были представлены в двухстороннем сценарии. Оригинальная работа часто упоминается как одна из двух работ Яо, хотя в этих работах на самом деле не содержится то, что сейчас известно как протокол запутанной схемы Яо. Базовый протокол Яо устойчив к получестным противникам и чрезвычайно эффективен с точки зрения количества раундов, которое является постоянным и не зависит от оцениваемой целевой функции. Функция рассматривается как булева схема с входами в двоичном формате фиксированной длины. Булева схема представляет собой набор логических элементов, соединенных тремя типами проводов: входными проводами схемы, выходными проводами схемы и промежуточными проводами. Каждый логический элемент получает два входных провода и имеет один выходной провод, который может быть разветвлен (то есть передан нескольким логическим элементам на следующем уровне). Простая оценка схемы выполняется путем последовательной оценки каждого логического элемента при условии, что логические элементы топологически упорядочены. Логический элемент представлен в виде таблицы истинности, которая для каждой возможной пары входных битов (полученных с входных проводов) присваивает уникальный выходной бит, являющийся значением выходного провода логического элемента. Результатом оценки являются биты, полученные на выходных проводах схемы. Яо объяснил, как запутать схему (скрыть ее структуру), чтобы две стороны – отправитель и получатель – могли узнать выход схемы, и ничего больше. В общих чертах, отправитель подготавливает запутанную схему и отправляет ее получателю, который конфиденциально оценивает схему, узнавая кодировки, соответствующие как его, так и выходным данным отправителя. Затем он отправляет отправителю кодировки отправителя, позволяя ему вычислить свою часть выходных данных. Отправитель отправляет получателю отображение кодировок выходных данных получателя на биты, позволяя получателю получить свои выходные данные. Более подробно, запутанная схема вычисляется следующим образом. Основным компонентом является симметричное шифрование с двойным ключом. Для каждого логического элемента схемы каждое возможное значение его входных проводов (0 или 1) кодируется случайным числом (меткой). Значения, полученные в результате оценки логического элемента для каждой из четырех возможных пар входных битов, также заменяются случайными метками. Запутанная таблица истинности логического элемента состоит из шифрований каждой выходной метки с использованием меток входных данных в качестве ключей. Положение этих четырех шифротекстов в таблице истинности рандомизировано, чтобы не раскрывать информацию о логическом элементе. Для правильной оценки каждого запутанного логического элемента схема шифрования должна обладать двумя свойствами. Во-первых, диапазоны функции шифрования для любых двух различных ключей должны быть непересекающимися (с преобладающей вероятностью). Второе свойство заключается в том, что можно эффективно проверить, был ли данный шифротекст зашифрован с использованием данного ключа. Благодаря этим двум свойствам получатель, получив метки для всех входных проводов схемы, может оценить каждый логический элемент, сначала выяснив, какой из четырех шифротекстов был зашифрован его ключами меток, а затем расшифровав его, чтобы получить метку выходного провода. Это делается конфиденциально, поскольку все, что узнает получатель во время оценки, – это кодировки битов. Входные биты отправителя (то есть создателей схемы) могут быть отправлены оценщику в виде кодировок, в то время как кодировки получателя (то есть оценщиков схемы), соответствующие его входным битам, получаются с помощью протокола 1 из 2 скрытой передачи (OT). Протокол 1 из 2 OT позволяет отправителю, владеющему двумя значениями C1 и C2, отправить запрошенное получателем значение (b – значение из {1, 2}) таким образом, чтобы отправитель не знал, какое значение было передано, а получатель узнавал только запрошенное значение. Если рассматриваются злонамеренные противники, необходимо предусмотреть дополнительные механизмы для обеспечения правильного поведения обеих сторон. По построению легко показать безопасность для отправителя, если протокол OT уже безопасен против злонамеренного противника, поскольку все, что может сделать получатель, – это оценить запутанную схему, которая не сможет достичь выходных проводов схемы, если он отклонится от инструкций. Ситуация на стороне отправителя совершенно иная. Например, он может отправить неверную запутанную схему, вычисляющую функцию, раскрывающую входные данные получателя. Это означало бы, что конфиденциальность больше не соблюдается, но поскольку схема запутана, получатель не сможет это обнаружить. Однако можно эффективно применять доказательства с нулевым разглашением, чтобы сделать этот протокол безопасным против злонамеренных противников с небольшими накладными расходами по сравнению с протоколом для получестных противников. Секретное распределение, определяющее, как вычислять сложение и умножение на секретных долях, часто используется для вычисления функций с использованием секретных долей Шамира. Схемы секретного распределения с аддитивным свойством могут выдерживать контроль противника над всеми сторонами, кроме одной, то есть поддерживать безопасность против пассивного и активного противника с неограниченной вычислительной мощностью. Некоторые протоколы требуют фазы настройки, которая может быть безопасна только против вычислительно ограниченного противника. Ряд систем реализовали различные формы MPC со схемами секретного распределения. Наиболее популярной является SPDZ, которая реализует MPC с аддитивными секретными долями и безопасна против активных противников.

Другие протоколы

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

Практические системы MPC

В последние годы достигнут значительный прогресс в системах 2PC и MPC.

Протоколы на основе Яо

Одной из основных проблем при работе с протоколами на основе Яо является то, что функция, которую необходимо безопасно вычислить (которая может быть произвольной программой), должна быть представлена в виде схемы, обычно состоящей из XOR и AND-вентилей. Поскольку большинство реальных программ содержат циклы и сложные структуры данных, это весьма нетривиальная задача. Система Fairplay стала первым инструментом, разработанным для решения этой проблемы. Fairplay состоит из двух основных компонентов. Первый из них – компилятор, позволяющий пользователям писать программы на простом языке высокого уровня и преобразовывать их в булево-логическое представление схемы. Второй компонент затем может "запутывать" схему и выполнять протокол для безопасного вычисления запутанной схемы. Помимо двухсторонних вычислений на основе протокола Яо, Fairplay также может выполнять многосторонние протоколы, используя протокол BMR. Подход, который на данный момент представляется наиболее перспективным для достижения активной безопасности, основан на комбинации техники запутывания и парадигмы "вырезать и выбрать". Эта комбинация, по-видимому, позволяет создавать более эффективные конструкции. Чтобы избежать вышеупомянутых проблем, связанных с нечестным поведением, от конструктора к вычислителю отправляется множество запутываний одной и той же схемы. Затем примерно половина из них (в зависимости от конкретного протокола) раскрывается для проверки согласованности, и если она подтверждается, то подавляющее большинство неоткрытых запутываний с высокой вероятностью являются корректными. Результатом является мажоритарное голосование по всем вычислениям. В данном случае требуется выход большинства. Если результаты не совпадают, получатель понимает, что отправитель жульничает, но не может пожаловаться, поскольку это может привести к утечке информации о его входных данных. Этот подход к активной безопасности был предложен Линдэллом и Пинкасом. Пинкас и др. реализовали эту технику в 2009 году. Эффективность активно защищенных реализаций на основе Яо была еще больше улучшена, потребовав всего 40 схем и значительно меньшего количества обязательств для достижения желаемой вероятности обмана. Улучшения связаны с новыми методологиями выполнения "вырезать и выбрать" на передаваемых схемах. В последнее время основное внимание уделяется высокопараллельным реализациям на основе запутанных схем, предназначенным для работы на процессорах с большим количеством ядер. Кройтер и др. описывают реализацию, работающую на 512 ядрах мощного кластерного компьютера. Используя эти ресурсы, они смогли вычислить функцию расстояния редактирования длиной 4095 бит, схема которой состоит почти из 6 миллиардов вентилей. Для этого они разработали специализированный, более оптимизированный компилятор схем, чем Fairplay, и несколько новых оптимизаций, таких как конвейеризация, при которой передача запутанной схемы по сети начинается, пока остальная часть схемы еще генерируется. Время вычисления AES было сокращено до 1,4 секунды на блок в активном режиме, используя кластерную машину с 512 узлами, и до 115 секунд, используя один узел. Шелат и Шен улучшили этот результат, используя стандартное оборудование, до 0,52 секунды на блок. В той же работе сообщается о пропускной способности 21 блок в секунду, но с задержкой 48 секунд на блок. Между тем, другая группа исследователей изучила возможность использования графических процессоров потребительского класса для достижения аналогичного уровня параллелизма. Они используют расширения протокола слепой передачи и некоторые другие новые методы для разработки своего специализированного протокола для графических процессоров. Этот подход, по-видимому, достигает сравнимой эффективности с кластерной вычислительной реализацией, используя аналогичное количество ядер. Однако авторы сообщают только о реализации схемы AES, которая содержит около 50 000 вентилей. С другой стороны, необходимое оборудование здесь гораздо более доступно, поскольку аналогичные устройства уже могут быть установлены во многих настольных компьютерах или игровых консолях. Авторы получили время 2,7 секунды на блок AES на стандартном настольном компьютере со стандартным графическим процессором. Если они допускают снижение безопасности до уровня, близкого к скрытой безопасности, они достигают времени выполнения 0,30 секунды на блок AES. В случае пассивной безопасности сообщается об обработке схем с 250 миллионами вентилей со скоростью 75 миллионов вентилей в секунду.

Внедрение безопасного многостороннего анализа вычислительных данных

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

Аппаратные реализации

Имя Разработчик Год выпуска Заметки Поддерживается ли? Trident MPCi4p informatics ltd. 2019 Первый на рынке физический аппаратный модуль безопасности, сертифицированный по стандарту Common Criteria EAL4+, разработанный для применения безопасных многосторонних вычислений (SMPC) в управлении криптографическими ключами. По состоянию на 2024 год.