В криптография и теория вычислений, то проверка следующего бита[1] это тест против генераторы псевдослучайных чисел. Мы говорим, что последовательность битов проходит следующий битовый тест в любой позиции
в последовательности, если любой злоумышленник, который знает
первые биты (но не семя) не могут предсказать
st с разумной вычислительной мощностью.
Точное заявление (я)
Позволять
- многочлен, и
набор таких множеств, что
содержит
-битные последовательности. Кроме того, пусть
быть распределение вероятностей струн в
.
Теперь мы определяем тест следующего бита двумя разными способами.
Формулировка логической схемы
Прогнозирующая коллекция[2]
это собрание логические схемы, так что каждая цепь
имеет меньше чем
ворота и точно
входы. Позволять
- вероятность того, что на входе
первые кусочки
, строка, случайно выбранная в
с вероятностью
, схема правильно предсказывает
, то есть:
![{ displaystyle p_ {k, i} ^ {C} = { mathcal {P}} left [C_ {k} (s_ {1} ldots s_ {i}) = s_ {i + 1} right | s in S_ {k} { text {с вероятностью}} mu _ {k} (s)]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8121de2c7bf08636284eda500f8d696acd0003b9)
Теперь мы говорим, что
проходит тест следующего бита, если для любого набора прогнозов
, любой многочлен
:
![{ displaystyle p_ {k, i} ^ {C} <{ frac {1} {2}} + { frac {1} {Q (k)}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8c79f78302d122444ecd47d30c1f4efeac3e3f1f)
Вероятностные машины Тьюринга
Мы также можем определить тест следующего бита в терминах вероятностные машины Тьюринга, хотя это определение несколько сильнее (см. Теорема Адлемана ). Позволять
- вероятностная машина Тьюринга, работающая за полиномиальное время. Позволять
быть вероятностью того, что
предсказывает
st бит правильно, т.е.
![{ displaystyle p_ {k, i} ^ { mathcal {M}} = { mathcal {P}} [M (s_ {1} ldots s_ {i}) = s_ {i + 1} | s in S_ {k} { text {с вероятностью}} mu _ {k} (s)]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b7766a3f48e5a6d071679f8541dc9fccbc6a94df)
Мы говорим, что коллекция
проходит проверку следующего бита, если для всех полиномов
, для всех, кроме конечного числа
, для всех
:
![{ displaystyle p_ {k, i} ^ { mathcal {M}} <{ frac {1} {2}} + { frac {1} {Q (k)}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/be33b4de78d0cebf7a8745460203ca7d08aae7be)
Полнота теста Яо
Тест следующего бита - это частный случай Тест Яо для случайных последовательностей, и поэтому его передача является необходимое условие для прохождения Тест Яо. Однако было также показано достаточное условие от Яо.[1]
Докажем это сейчас в случае вероятностной машины Тьюринга, поскольку Адлеман уже проделал работу по замене рандомизации неоднородностью в его теорема. Случай булевых схем не может быть выведен из этого случая (поскольку он включает решение потенциально неразрешимых проблем), но доказательство теоремы Адлемана может быть легко адаптировано к случаю неоднородных семейств булевых схем.
Позволять
быть отличительным признаком вероятностной версии теста Яо, то есть вероятностной машины Тьюринга, работающей за полиномиальное время, так что существует полином
такой, что бесконечно много ![k](https://wikimedia.org/api/rest_v1/media/math/render/svg/c3c9a2c7b599b37105512c5d570edc034056dd40)
![{ displaystyle | p_ {k, S} ^ { mathcal {M}} - p_ {k, U} ^ { mathcal {M}} | geq { frac {1} {Q (k)}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ac228a44222e9a8638f660ec23ab589143b91ea4)
Позволять
. У нас есть:
и
. Затем мы замечаем, что
. Следовательно, хотя бы один из
не должно быть меньше чем
.
Далее мы рассматриваем распределения вероятностей
и
на
. Распределение
- распределение вероятностей выбора
первые биты в
с вероятностью дается
, а
остальные биты равномерно случайны. Таким образом, мы имеем:
![{ Displaystyle му _ {к, я} (w_ {1} ldots w_ {P (k)}) = left ( sum _ {s in S_ {k}, s_ {1} ldots s_ { i} = w_ {1} ldots w_ {i}} mu _ {k} (s) right) left ({ frac {1} {2}} right) ^ {P (k) -i }}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fadf3826c8cab6e58260fb544f1de0b98ee4068a)
![{ displaystyle { overline { mu _ {k, i}}} (w_ {1} ldots w_ {P (k)}) = left ( sum _ {s in S_ {k}, s_ { 1} ldots s_ {i-1} (1-s_ {i}) = w_ {1} ldots w_ {i}} mu _ {k} (s) right) left ({ frac {1 } {2}} right) ^ {P (k) -i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3395ab0351612655ccc11b90ca5b5200a109f973)
Таким образом, мы имеем
(это показывает простой вычислительный трюк), таким образом, распределения
и
можно отличить по
. Без ограничения общности можно считать, что
, с участием
многочлен.
Это дает нам возможность построения машины Тьюринга, решающей следующий битовый тест: после получения
первые биты последовательности,
дополняет этот ввод предположением бита
а потом
случайные биты, выбранные с равномерной вероятностью. Затем он бежит
, и выходы
если результат
, и
еще.
использованная литература