Скачиваний:
181
Добавлен:
02.05.2014
Размер:
891.9 Кб
Скачать

Вычисления при By-сбоях

Как и в случае FS-сбоев нам необходимо вычислить функциюf:FnF. Предположим, что процессоры имеют общую арифметическую схему для вычисленияf. Ниже описываетсяn-сторонний протокол для безопасногоt-вычисленияfв асинхронной сети с произвольными (то есть, при By-сбоях) противниками, при условииn4t+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(0rt), процессоры сначала используют протоколСОАМ(см. выше) чтобы договориться о множествеGr, состоящее из, по крайней мере, 3t+1+rпроцессоров, которые успешно объединяют свои входы. Затем, стороны выполняют вычисления, описываемые ниже, для проверки, является ли множество(2t,r)-интерполируемым. Еслиявляется (2t,r)-интерполируемым, тогда существует множествоGrGrразмером из, по крайней мере, 3t+1 процессоров такое, чтоявляется (2t,0)-интерполируемым. Тогда процессоры вычисляют и выдаютGr. В противном случае (т.е., когда- не является (2t,r)-интерполируемым), процессоры переходят к следующей итерации. Подчеркиваем, что стороны не будут знать интерполируемый полином для каждого. Они будут только знать, что такой полином существует.

Остается только описать, как проверить по данному множеству Gразмера 3t+1+rявляется лиSG(2t,r)-интерполируемым, и как вычислить соответствующее множествоG(то есть,GG,G3t+1 иSGявляется (2t,0)-интерполируем). Как и в процедуреСКОП, мы используем обобщенные коды с исправлением ошибок Рида-Соломона. Однако, в процедуреСКОП«слово»SG, было (динамическим) входом для одного процессора и, таким образом, каждый процессор мог бы локально запускать процедуру, реализующую схему с исправлением ошибок. В данной установке, каждый процессор имеет только одну долю каждого элементаSG; стороны будут вызывать совместные вычисления, выполняющее специфическую процедуру, реализующую схему с исправлением ошибок и использовать это для проверки, является лиG- (2t,r)-интерполируемым и вычисленияG.

Сначала опишем частичную процедуру с исправлением ошибок. Входы для этой процедуре - (d,r,W). ЕслиWd+2r+1 иWявляется (d,r)-интерполируем, тогда выход - интерполируемый полиномW. (В противном случае, выводится соответствующее сообщение). Процедура состоит из трех шагов.

Соседние файлы в папке Казарин О.В. Теория и практика защиты программ