|
|
|
Компьютеры - Протокол конфиденциального вычисления - Формализованная постановка задачи22 января 2011
Оглавление: 1. Протокол конфиденциального вычисления 2. Формализованная постановка задачи
В конфиденциальном вычислении участвуют N участников p1, p2, ..., pN, у каждого участника есть тайные входные данные d1, d2, ..., dN соответственно. Участники хотят найти значение F, где F — известная всем участникам вычислимая функция от N аргументов. Допускается, что среди участников будут получестные нарушители, то есть те которые верно следуют протоколу, но пытаются получить дополнительную информацию из любых промежуточных данных.
Описание протокола
Для простоты допустим, что в вычислении участвуют 2 участника, то есть N=2.
- Представим функцию F в виде логического контура. На вход логического контура подаются биты всех аргументов функции F, сам контур состоит из логических гейтов AND, OR u NOT, и на выходе выдает результат функции F в двоичном формате.
- Участник p1 генерирует для каждого провода логической схемы два различных случайных числа k u k: они представляют ноль и единицу в этом проводе соответственно.
- Участник p1 создает для каждого контура зашифрованую таблицу вычисления. Для бинарного гейта OR такая таблица будет выглядеть следующим образом:
| Входной провод w1 |
Входной провод w2 |
Выходной провод w3 |
Зашифрованая таблица вычисления |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
Здесь Ek означает результат шифрования значения x ключом k, а Dk — соответственно расшифровка шифротекста y ключом k. Следует выбрать симметричную схему шифрования, обладающую одним дополнительным свойством: при попытке расшифровать с неправильным ключом алгоритм возвращает ошибку. Смысл этой таблицы таков: если мы знаем зашифрованые значения сигнала k1 u k2 на входных проводах гейта w1 u w2 соответственно, то мы можем вычислить зашифрованое же значение сигнала вычислив для всех i=1…4 значение . В трех случаях из четырех должна возникнуть ошибка, а в оставшемся четвертом мы получим зашифрованое значение k3 сигнала на выходе гейта.
- Участник p1 передает логический контур и зашифрованые таблицы вычисления для всех контуров участнику p2.
- Участник p1 передает участнику p2 зашифрованые значения сигналов входных проводов для тех входов, которые соответствуют входным данным участника p1.
- Для каждого входного провода wi соответствующего входным данным p2, участник p1 передает участнику p2 с помощью протокола забывчивой передачи число
, где bi — значение бита тайных входных данных p2. При такой передаче p1 не узнает значения bi'.
- Теперь у участника p2 есть зашифрованая логическая схема и зашифрованые значения всех входных проводов. Он вычисляет в зашифрованом виде как было описано выше все гейты схемы один-за-одним, и затем передает зашифрованый результат p1.
- Участник p1 расшифровывает результат и сообщает его p2.
Просмотров: 2200
|