Я изучал протокол, использующий OT, и внезапно понял, что не могу себе представить, как протокол, использующий OT, может быть безопасным от вредоносных программ.
Предположим, у нас есть протокол P, который использует OT в качестве подпротокола. Предположим, что ОТ используется $N$ раз. Каждый ОТ имеет вход $x_{0,i}$, $x_{1,i}$, куда $я$ обозначает $я-$позиция ОТ, от 1 до $N$. Разумно предположить, что для каждого положения получатель выбирает бит $0$ или же $1$ в соответствии с его входом (это, например, случай протокола Yao, где для каждого вентиля приемник запрашивает 0, если его вход равен 0 или 1 в противном случае).
Теперь предположим, что отправитель в ОТ злонамерен и априори решает изменить $x_{0,N}$ с чем-то другим. Это может быть случайное значение, значение $x_{1,N}$ или что-то еще. У нас есть три возможности
- Прерывание протокола. Тогда отправитель знает, что во время последнего ОТ получатель запросил 0.
- Протокол не прерывается, и ввод действительно правильный. Теперь отправитель знает, что во время последнего ОТ получатель запросил 1.
- Протокол не прерывается, ввод неверен, и стороны могут это обнаружить. Теперь отправитель знает, что во время последнего OT получатель запросил 0.
- Протокол не прерывается, ввод неверный, но стороны не могут его обнаружить. Затем отправитель может произвольно заставить протокол выводить значения, отличные от заданного.
Если поведение является одним из первых трех, отправитель может изменить таким образом все OT, и это $\фракция{1}{2^N}$ вероятность изучения всего запроса без обнаружения, что, поскольку $N$ является фиксированным параметром, не является незначительным (тем более, если $N$ маленький). В других случаях получатель узнает, что отправитель злонамерен, но это не мешает получателю что-то узнать.
Если поведение является последним, я не понимаю, как такой протокол может считаться «безопасным», поскольку злоумышленнику очень легко выполнить атаку «DoS», где каждый вывод не имеет смысла.
В случае протокола Yao предположим, что отправитель устанавливает последний OT $X_{0,N}, X_{0,N}$. Как мы можем предотвратить это? Если протокол «идет не так», то отправитель знает, что последний бит Боба равен 0. Это огромно, не так ли?
И я не рассматриваю симметричный случай: что произойдет, если получатель вместо того, чтобы спрашивать по правилу, будет спрашивать случайным образом? Насколько я понимаю, это поведение не учитывается при проверке безопасности, я ошибаюсь?
Я что-то пропустил? Являются ли эти соображения выходящими за рамки, и мы допускаем такое поведение? Может быть, мы предполагаем, что отправитель всегда устанавливает $x_0$ и $x_1$ в правильном направлении?