Istnieje wiele problemów, w których wiemy o wydajnym algorytmie losowym i nie znamy żadnego deterministycznego algorytmu, który możemy udowodnić, że jest skuteczny. Może to jednak odzwierciedlać niedociągnięcia w naszej zdolności do udowodnienia złożoności, a nie jakiejkolwiek zasadniczej różnicy.
Na podstawie Twojego komentarza wydaje się, że chciałeś zapytać, czy istnieje problem z wydajnym algorytmem randomizowanym i możemy udowodnić, że nie ma algorytmu deterministycznego o porównywalnej wydajności. Nie znam żadnego takiego problemu.
Rzeczywiście istnieją uzasadnione podstawy, aby podejrzewać, że takie problemy prawdopodobnie nie wystąpią. Heurystycznie istnienie takiego problemu prawdopodobnie oznaczałoby, że bezpieczna kryptografia jest niemożliwa. To wydaje się raczej nieprawdopodobne.
Jaki jest związek, pytasz? Rozważmy dowolny randomizowany algorytm który skutecznie rozwiązuje jakiś problem. Opiera się na losowych monetach: losowych bitach uzyskanych ze źródła prawdziwie losowego. Załóżmy teraz, że bierzemy generator pseudolosowy o jakości kryptograficznej i zastępujemy źródło prawdziwie losowe wyjściem generatora pseudolosowego. Wywołaj wynikowy algorytm . Należy zauważyć, że jest algorytm deterministyczny, a jego czas pracy jest w przybliżeniu taka sama jak .AA′A′A
Ponadto, jeśli kryptograficzny PRNG jest bezpieczny, heurystycznie powinniśmy oczekiwać, że będzie dobrym algorytmem, jeśli jest:A′A
Na przykład, jeśli jest algorytmem Las Vegas (zawsze wysyła poprawną odpowiedź i kończy się szybko z dużym prawdopodobieństwem), to będzie całkiem dobrym algorytmem deterministycznym (zawsze wysyła poprawną odpowiedź i kończy się szybko dla większości danych wejściowych) .AA′
Jako kolejny przykład, jeśli jest algorytmem Monte Carlo (deterministyczny czas działania i daje prawidłową odpowiedź z prawdopodobieństwem co najmniej ), to będzie całkiem dobrym algorytmem deterministycznym (deterministyczny czas działania i wyświetla prawidłowy wynik odpowiedz na ułamek wszystkich danych wejściowych).A′1−εA1−ε
Dlatego jeśli kryptograficzny PRNG jest bezpieczny i istnieje skuteczny algorytm losowy, otrzymasz algorytm deterministyczny, który jest całkiem dobry. Obecnie istnieje wiele konstrukcji kryptograficznych programów PRNG, które mają zagwarantowane bezpieczeństwo, jeśli zostaną spełnione pewne założenia kryptograficzne. W praktyce powszechnie uznaje się te założenia kryptograficzne: przynajmniej bezpieczny handel i transakcje polegają na tym, że są prawdziwe, więc najwyraźniej jesteśmy skłonni obstawiać duże sumy pieniędzy, że istnieje bezpieczna kryptografia. Jedynym sposobem, w jaki ta transformacja może się nie powieść, jest brak kryptograficznego PRNG, co z kolei oznacza, że bezpieczna kryptografia jest niemożliwa. Chociaż nie mamy żadnego dowodu, że tak nie jest, wydaje się to mało prawdopodobnym rezultatem.
Szczegóły konstrukcji: oto jak działa . Na wejściowych , wyprowadza się materiał siewny na PRNG kryptograficznego w funkcji (na przykład, przez mieszający ), a następnie symuluje , do wyjścia z PRNG kryptograficznego jako monet dla . Na przykład określoną instancją byłoby ustawienie , a następnie użycie jako zarodka dla AES256 w trybie licznika lub innego kryptograficznego PRNG. Możemy udowodnić powyższe stwierdzenia w modelu losowej wyroczni.A′xxxA(x)Ak=SHA256(x)k
Jeśli nie jesteś zadowolony z pomysłu, że może generować nieprawidłowe wyniki na niewielkiej części danych wejściowych, można to rozwiązać. Jeśli powtórzysz wiele razy i uzyskasz większość głosów, prawdopodobieństwo błędu gwałtownie spada w liczbie iteracji. Tak więc, iterując stałą liczbę razy, możesz uzyskać prawdopodobieństwo błędu poniżej , co oznacza, że szanse, że natkniesz się na dane wejściowe gdy algorytm generuje błędną odpowiedź, są znikomo małe (mniej niż szanse na trafienie pioruna wiele razy z rzędu). Co więcej, przy konstrukcji, którą podałem powyżej, szanse, że przeciwnik może nawet znaleźć wkładA′A′ε1/2256xx gdzie daje złą odpowiedź, można uczynić bardzo małym, ponieważ wymagałoby to złamania bezpieczeństwa skrótu SHA256. (Technicznie wymaga to modelu losowej wyroczni, aby to uzasadnić, więc oznacza to, że musi być wybrany jako „niezależny” od SHA256, a nie w twardym kodzie obliczeń związanych z SHA256, ale prawie wszystkie rzeczywiste algorytmy spełniają ten wymóg .)A′A
Jeśli chcesz mocniejszej podstawy teoretycznej, możesz iterować razy i uzyskać prawdopodobieństwo błędu poniżej , gdzie jest długością wejścia . Teraz ułamek bitowych danych wejściowych, na których daje niepoprawną odpowiedź, jest ściśle mniejszy niż . Ale są tylko możliwych wejść bitowych, a na każdym z nich jest poprawne lub niepoprawne, więc wynika z tego, że nie ma danych wejściowych, w których jest niepoprawne: jest poprawne na wszystkich wejściach, i to bezwarunkowo . JeśliA Θ(n)1/2nnxnA′1/2n2nnAA′A′Abiegnie w czasie , następnie biegnie w czasie , więc jest nieco wolniejsze niż ale nie za dużo wolniejsze. Jest to treść dowodu Adlemana, że BPP jest zawarty w P / poly. Dla celów praktycznych jest to prawdopodobnie przesada, ale jeśli lubisz czyste dowody, które unikają założeń kryptograficznych lub jeśli podchodzisz do tego z perspektywy teoretyka, możesz polubić tę wersję bardziej.t(n)A′Θ(n⋅t(n))A′A
Aby uzyskać więcej informacji na temat ostatnich rozważań teoretycznych i dodatkowych problemów, w przypadku których znamy skuteczny algorytm randomizowany, ale nie znamy żadnego deterministycznego algorytmu, który możemy udowodnić, że jest skuteczny, zobacz /cstheory//q/31195 / 5038
Podsumowując: W przypadku każdego problemu, w którym znamy skuteczny algorytm randomizowany, znamy również algorytm deterministyczny, który wydaje się być skuteczny w praktyce - ale obecnie nie wiemy, jak udowodnić , że jest skuteczny. Jedną z możliwych interpretacji jest to, że nie jesteśmy zbyt dobrzy w dowodzeniu rzeczy na temat algorytmów.