Бросок монеты с помощью однонаправленных функций

Если Алиса и Боб договорятся об однонаправленной функции, протокол прост : (1) Алиса выбирает случайное число, х. Она вычисляет y—f(x), где/fx) - однонаправленная функция.


(2) Алиса посылает у Бобу.

(3) Боб предполагает, что х четно или нечетно, и посылает свое предположение Алисе.

(4) Если предположение Боба правильно, результатом броска является "орел", если неправильно - то "решка". Алиса объявляет результат броска монеты и посылает х Бобу.

(5) Боб проверяет, что y=f(x).

Безопасность этого протокола обеспечивается однонаправленной функцией . Если Алиса сможет найти хих', такие что х - четно, а х' - нечетно, и y=f(x)= f(x'), то она каждый раз сможет обманывать Боба. Кроме того, наи­меньший значащий 5mf(x) должен быть некоррелирован с х. В противном случае Боб сможет обманывать Али­су, по крайней мере иногда. Например, если/fx) в 75 процентах случаев четна, если х, у Боба будет преимущест­во. (Иногда наименьший значащий бит не является лучшим выбором для использования в приложении, потому что его вычисление может оказаться слишком простым .)