В определении, которое я дал для случайной функции, есть фундаментальный недостаток.
Это должно быть определено как: Случайная функция {0,1} ^ k1 -> {0,1} ^ k2 - это случайно выбранная функция из семейства всех возможных функций над {0,1} ^k1 -> {0,1} ^ k2
Теперь, согласно этому определению, чтобы доказать, что любая функция случайна, мы должны в свою очередь доказать, что она случайным образом выбирает из семейства всех таких функций.
В нашем случае, предполагая, что R (x): {0,1} ^ k -> {0,1} ^ k - случайная функция, R (x) случайным образом выбирается из семейства функций.
Доказать, что G (x) = R (x) ||R (x '): {0,1} ^ k -> {0,1} ^ 2k - случайная функция, нам нужно установить, что G (x) действительно выбирает случайным образом из семейства функций над {0,1} ^k -> {0,1} ^ 2k, учитывая, что R (x) - случайная функция.Однако это не так, поскольку пример с небольшим счетчиком покажет, что G (x) выбирает из меньшего подмножества семейства функций.
Следовательно, G (x) не является случайным, даже если R (x)это