Допустим, на стороне клиента есть секретный пароль $\пи$. На сервере есть ряд индексов $0..n-1$ и значение, связанное с солью $s_i$ для всех $i \in \{0,n-1\}$ назовите это набором $S=\{s_i |
я \in \{0,n-1\}\}$ для каждого клиента. Клиент хочет вычислить функцию OPRF $f(\pi,s)$ так что он не учится $s$ и сервер ничего не узнает. Это в основном то, что OPAQUE делает для $f(\pi,s)=H(\pi,H'(\pi)^s)$ куда $H'$ хэши для элемента подгруппы.Потому что сервер видит только ослепленных $Н'(\пи)$ который является случайным элементом группы, он может имитировать свое представление, и независимо от того, сколько запросов делает клиент, он никогда не узнает $s$.
Но мне нужно сделать еще один шаг вперед и потребовать, чтобы он позволял анонимно входить в систему. То есть мне нужна функция $g(i,\pi,S)=f(\pi,s_i)$ так что сервер ничего не узнает ни о $я$ или же $\пи$ и клиент больше ничего не узнает о $S$ или о любых других элементах в $S$. По крайней мере, нет $f(\pi,s_j)$ для другого $j$ что позволяет одновременно нацеливаться на несколько учетных записей с помощью атак грубой силы / словаря.
Одним из способов сделать это для той же функции, что и в OPAQUE, является использование OPAQUE вместе с переносом по забывчивости. Клиенту не нужно отправлять много значений за раз, но простое использование OT здесь означает, что сервер должен выполнить завершение расчета $f(\pi,s_i)$ для каждого $я$ то есть $n$ возведения в степень/скалярные умножения и должны отправить $n$ шифровать тексты каждый раз, когда клиент пытается войти в систему. И это вне вычислений, связанных с самой ОТ. В конце концов, OT можно использовать для передачи произвольных сообщений, а не только для вычисления каких-то функций. $n$ шифрование текстов в общем случае оправдано. Но здесь это было бы нецелесообразно.
Итак, знает ли кто-нибудь о какой-либо работе по этому поводу или делает что-нибудь, что может достичь этого более эффективно в постоянное или, по крайней мере, сублинейное время количества клиентов, чтобы быть практичным. Это может быть что-то, что использует некоторый аккумулятор в $S$ который может быть предварительно вычислен или что-то в этом роде. Это не обязательно должна быть та же функция, что и в OPAQUE, все с указанными выше свойствами работает.
РЕДАКТИРОВАТЬ: я не предлагаю выполнять полный OPAQUE анонимно, что, поскольку он содержит зашифрованный идентификатор клиента, закрытый ключ DH и открытый ключ DH сервера, требует, чтобы OT выполнял анонимно. Но анонимно выполняется только расчет части OPRF, а остальной обмен ключами выполняется отдельно.