Введение
Подраздел криптографии
Безопасные многосторонние вычисления (также известные как безопасные вычисления, многосторонние вычисления (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".
in). In 2020, a number of companies working with secure multiparty computation founded the MPC alliance with the goal of "accelerate awareness, acceptance, and adoption of MPC technology."
Протоколы
Существуют значительные различия между протоколами, предлагаемыми для вычислений между двумя сторонами (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 миллионов вентилей в секунду.
The approach that so far seems to be the most fruitful in obtaining active security comes from a combination of the garbling technique and the "cut and choose" paradigm. This combination seems to render more efficient constructions. To avoid the aforementioned problems with respect to dishonest behaviour, many garblings of the same circuit are sent from the constructor to the evaluator. Then around half of them (depending on the specific protocol) are opened to check consistency, and if so a vast majority of the unopened ones are correct with high probability. The output is the majority vote of all the evaluations. Here the majority output is needed. If there is disagreement on the outputs the receiver knows the sender is cheating, but he cannot complain as otherwise this would leak information on his input. This approach for active security was initiated by Lindell and Pinkas. This technique was implemented by Pinkas et al. in 2009, the efficiency of actively secure Yao based implementations was improved even further, requiring only 40 circuits, and a much smaller number of commitments, to obtain cheating probability. The improvements come from new methodologies for performing cut and choose on the transmitted circuits. More recently, there has been a focus on highly parallel implementations based on garbled circuits, designed to be run on CPUs with many cores. Kreuter, et al. describe an implementation running on 512 cores of a powerful cluster computer. Using these resources they could evaluate the 4095 bit edit distance function, whose circuit comprises almost 6 billion gates. To accomplish this they developed a custom, better optimized circuit compiler than Fairplay and several new optimizations such as pipelining, whereby transmission of the garbled circuit across the network begins while the rest of the circuit is still being generated. The time to compute AES was reduced to 1.4 seconds per block in the active case, using a 512 node cluster machine, and 115 seconds using one node. Shelat and Shen improve this, using commodity hardware, to 0.52 seconds per block. The same paper reports on a throughput of 21 blocks per second, but with a latency of 48 seconds per block. Meanwhile, another group of researchers has investigated using consumer grade GPUs to achieve similar levels of parallelism. They utilize oblivious transfer extensions and some other novel techniques to design their GPU specific protocol. This approach seems to achieve comparable efficiency to the cluster computing implementation, using a similar number of cores. However, the authors only report on an implementation of the AES circuit, which has around 50,000 gates. On the other hand, the hardware required here is far more accessible, as similar devices may already be found in many people's desktop computers or games consoles. The authors obtain a timing of 2.7 seconds per AES block on a standard desktop, with a standard GPU. If they allow security to decrease to something akin to covert security, they obtain a run time of 0.30 seconds per AES block. In the passive security case there are reports of processing of circuits with 250 million gates, and at a rate of 75 million gates per second.
Внедрение безопасного многостороннего анализа вычислительных данных
Одним из основных применений безопасных многосторонних вычислений является возможность анализа данных, хранящихся у нескольких сторон, или "слепого" анализа данных третьими сторонами, без предоставления хранителю данных информации о характере проводимого анализа.
Аппаратные реализации
Имя Разработчик Год выпуска Заметки Поддерживается ли? Trident MPCi4p informatics ltd. 2019 Первый на рынке физический аппаратный модуль безопасности, сертифицированный по стандарту Common Criteria EAL4+, разработанный для применения безопасных многосторонних вычислений (SMPC) в управлении криптографическими ключами. По состоянию на 2024 год.