- •Конфиденциальные вычисления
- •Водные замечания по проблематике конфиденциальных вычислений
- •Описание используемых примитивов, схем и протоколов
- •Общие определения
- •Проверяемая схема разделения секрета
- •Широковещательный примитив (Br-протокол)
- •Протокол bb
- •Протокол византийского соглашения (ba-протокол)
- •Обобщенные модели для сети синхронно и асинхронно взаимодействующих процессоров
- •Вводные замечания
- •Обобщенные модели сбоев и противника
- •Получестные модели
- •Злонамеренные модели Действия процессоров в злонамеренной модели
- •Вычисления в идеальной модели
- •Вычисления в идеальной модели
- •Вычисления в реальной модели
- •Модель взаимодействия
- •Синхронная модель вычислений Общее описание модели
- •Идеальный и реальный сценарии
- •Асинхронная модель вычислений Общее описание модели
- •Асинхронные идеальный и реальный сценарии
- •Безопасность асинхронных вычислений
- •Конфиденциальное вычисление функции
- •Проверяемые схемы разделения секрета как конфиденциальное вычисление функции
- •Описание проверяемой схемы разделения секрета
- •Протокол РзПр
- •Протокол ВсПр
- •Доказательство безопасности схемы проверяемого разделения секрета
- •Описание работы моделирующего устройства m
- •Синхронные конфиденциальные вычисления
- •Примитив «Забывающий обмен»
- •Протокол отпчм
- •Двухсторонние вычисления Безопасные протоколы для получестной модели
- •Редукция к от41
- •Протокол вычислений на арифметической схеме над gf(2)
- •Редукция к мв
- •Основной результат для злонамеренной модели
- •Многосторонние протоколы Общая идея
- •Получестная модель
- •Конфиденциальное вычисление
- •Многосторонний протокол схемного вычисления
- •Редукция к кВm
- •Основной результат для злонамеренной модели
- •Асинхронные конфиденциальные вычисления
- •Вводные замечания
- •Примитив «Соглашение об аккумулируемом множестве» (соам-субпротокол)
- •Протокол соам
- •Алгоритм звз
- •Процедура скоп
- •Асинхронная схема проверяемого разделения секрета Общие определения
- •Протокол аРзПр
- •Протокол аВсПр
- •Доказательство безопасности схемы апрс
- •Асинхронная схема глобального проверяемого разделения секрета
- •Протокол агРз
- •Протокол агВс
- •Субпротокол агпрс
- •Вычисления на мультипликативном вентиле Вычисления при fs-сбоях
- •Вычисления на линейном вентиле
- •Вычисления на мультипликативном вентиле
- •Протокол мат (XI,a)
- •Субпротокол mul(ai,bi)
- •Основной протокол
- •Протокол авф
- •Вычисления при By-сбоях
- •Процедура соим
- •Протокол соим(Zi)
- •Протокол ByMul
Вычисления при By-сбоях
Как и в случае FS-сбоев нам необходимо вычислить функциюf:FnF. Предположим, что процессоры имеют общую арифметическую схему для вычисленияf. Ниже описываетсяn-сторонний протокол для безопасногоt-вычисленияfв асинхронной сети с произвольными (то есть, при By-сбоях) противниками, при условииn4t+1.
Основная идея заключается в адаптации вышеописанного протокола для FS-сбоев к аналогичному протоколу, но дляBy-сбоев. Для этого используем вышеописанную схемуАПРС, а затем, этап умножения адаптируется к аналогичной конструкции, но дляBy-сбоев.
Пусть c=ab– мультипликативный вентиль и пустьA(),B() – полиномы, ассоциированные с входными линиями, а именно доли каждого процессораPiэтих линий -A(i) иB(i) соответственно иA(0)=aиB(0)=b. Как и в случаеFS-сбоев процессоры совместно вычисляют свои доли случайного полиномаC() степениt, гдеC(0)=A(0)B(0), так, что доля каждого несбоящего процессораPiна выходной линии будетC(i).
Процедура умножения при By-сбоях следует из соответствующей процедуры, но дляFS-сбоев. А именно, процессоры сначала генерируют случайный полиномD() степени 2tсо свободными коэффициентамиD(0)=A(0) B(0). Тогда процессоры вычисляют свои доли усеченного полиномаD() степениtи этот усеченный полином есть выходной полиномC().
Собственно сама процедура умножения начинается с описания двух модифицированных шагов: умножения и редукции степени.
Рандомизация.Отличие от случая дляFS-сбоев состоит в том, как каждый процессорPiделит полиномHi() степени 2tсHi(0)=0. Для этого используется следующий метод [BGW]. Каждый процессорPiделитtравномерно выбранных значений, используяtвызовов субпротоколаАРзПр. Пустьzi,j,k, - выход процессораPkприj-том вызовеАРзПр, гдеPi- дилер. После завершения всехtвызововАРзПр, каждый процессорPkлокально вычисляетHi(k)=.
Для этого пусть Si,j() – полином степениtопределенныйj-тым вызовомАРзПр, инициированнымPi(а именно,Si,j(k)=zi,j,kдля каждого несбоящего процессораPk). ПолиномHi() теперь определен какHi(x)=. Каждый процессорPkлокально вычисляетHi(k)==. Пустьsi,j,l- коэффициентxlвSi,j(x). Это можно показать как
Hi(x)= |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=si,1,0x |
+ |
si,1,1x2 |
+ |
... |
+ |
si,1,t-1xt |
+ |
si,1,txt+1 |
+ |
|
|
|
|
|
|
si,2,0x2 |
+ |
... |
+ |
si,2,t-2xt |
+ |
si,2,t-1xt+1 |
+ |
si,2,txt+2 |
+ |
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
si,t,0xt |
+ |
si,t,1xt+1 |
+ |
... |
+ |
si,t,tx2t |
Свободный коэффициент Hi() равен 0 и, таким образом,Hi(0)=0. Каждый полиномSi,j() имеет степеньtи, таким образом,Hi(x) имеет степень 2t. Кроме того, можно заметить, что коэффициенты членовx,...,xtвHi(x) равномерно распределены надF. Следовательно, коэффициенты всех ненулевых степеней усеченного полиномаC() равномерно распределены надF.
Ясно, что сбоящие процессоры накапливают некоторую дополнительную информацию относительно tдолейHi(). Однако эта информация независима отA(0)B(0), так как процессорPiвыбираетt2+tслучайных коэффициентов, а сбоящие процессоры получает толькоt2значений.
Редукция степени.Процессоры используют свои доли полиномаD() для совместного и конфиденциального вычисления своих долей «усечения» полиномаD() степениt. А именноt+1 коэффициентов выходного полиномаC() являются коэффициентамиD() с более низкой степенью.
В протоколе для FS-сбоев процессоры вычисляли свои долиC(), вызывая протокол для «умножения вектора входов на фиксированную матрицу».
В протоколе для By-сбоев процессоры используют субпротоколыАРзПриАВсПрвместо простой схемы разделения секрета дляFS-сбоев. Однако проблема заключается в том, что согласованное множествоGможет содержать сбоящие процессорыPi, совместно использующие некоторое значение, отличное от ожидаемого значенияD(i). В этом случае, процессоры не будут иметь требуемых выходов.
Далее мы описываем, как процессоры Piмогут удостовериться в том, что значение, связанное с каждым процессоромPiв согласованном множестве (а именно, свободный коэффициент полинома степениt, определенного долями несбоящих процессоровPi) – действительноD(i).
Для процессоров Piпустьsi- значение, связанное сPi; для множестваAпроцессоров, пустьSA=f{(i,si)PiA}.Cначала отметим, что достаточно договориться о множествеGиз, по крайней мере, 3t+1 процессоров, такое, чтоSGявляется (2t,0)-интерполируемым (а именно, все значения, общедоступные для процессоров изG«находятся на полиноме степени 2t»). Это так, потому, что множествоGразмером 3t+ 1, содержит, по крайней мере, 2t+1 несбоящих процессоров. Таким образом, интерполируемый полиномSGсвязан (ограничен) с полиномомD().
Далее описывается протокол для соглашения по множеству Aпроцессоров такому, чтоSAявляется (2t,0)-интерполируемым. Этот протокол, обозначаемыйСОИМ-Соглашения об интерполируемом множестве, является «распределенным вариантом» схемыСКОП, описанной выше.
Протокол СОИМсостоит изtитераций. На итерацииr(0rt), процессоры сначала используют протоколСОАМ(см. выше) чтобы договориться о множествеGr, состоящее из, по крайней мере, 3t+1+rпроцессоров, которые успешно объединяют свои входы. Затем, стороны выполняют вычисления, описываемые ниже, для проверки, является ли множество(2t,r)-интерполируемым. Еслиявляется (2t,r)-интерполируемым, тогда существует множествоGrGrразмером из, по крайней мере, 3t+1 процессоров такое, чтоявляется (2t,0)-интерполируемым. Тогда процессоры вычисляют и выдаютGr. В противном случае (т.е., когда- не является (2t,r)-интерполируемым), процессоры переходят к следующей итерации. Подчеркиваем, что стороны не будут знать интерполируемый полином для каждого. Они будут только знать, что такой полином существует.
Остается только описать, как проверить по данному множеству Gразмера 3t+1+rявляется лиSG(2t,r)-интерполируемым, и как вычислить соответствующее множествоG(то есть,GG,G3t+1 иSGявляется (2t,0)-интерполируем). Как и в процедуреСКОП, мы используем обобщенные коды с исправлением ошибок Рида-Соломона. Однако, в процедуреСКОП«слово»SG, было (динамическим) входом для одного процессора и, таким образом, каждый процессор мог бы локально запускать процедуру, реализующую схему с исправлением ошибок. В данной установке, каждый процессор имеет только одну долю каждого элементаSG; стороны будут вызывать совместные вычисления, выполняющее специфическую процедуру, реализующую схему с исправлением ошибок и использовать это для проверки, является лиG- (2t,r)-интерполируемым и вычисленияG.
Сначала опишем частичную процедуру с исправлением ошибок. Входы для этой процедуре - (d,r,W). ЕслиWd+2r+1 иWявляется (d,r)-интерполируем, тогда выход - интерполируемый полиномW. (В противном случае, выводится соответствующее сообщение). Процедура состоит из трех шагов.