Có nhiều vấn đề mà chúng tôi biết về một thuật toán ngẫu nhiên hiệu quả và chúng tôi không biết bất kỳ thuật toán xác định nào mà chúng tôi có thể chứng minh là hiệu quả. Tuy nhiên, điều này có thể phản ánh những thiếu sót trong khả năng của chúng tôi để chứng minh những điều về sự phức tạp hơn là bất kỳ sự khác biệt cơ bản nào.
Dựa trên nhận xét của bạn , có vẻ như bạn muốn hỏi liệu có tồn tại bất kỳ vấn đề nào khi có thuật toán ngẫu nhiên hiệu quả hay không và chúng tôi có thể chứng minh rằng không có thuật toán xác định nào về hiệu quả có thể so sánh được. Tôi không biết bất kỳ vấn đề như vậy.
Thật vậy, có cơ sở hợp lý để nghi ngờ rằng những vấn đề như vậy có thể không tồn tại. Về mặt heuristic, sự tồn tại của một vấn đề như vậy có thể có nghĩa là mật mã an toàn là không thể. Đó dường như là một kết quả khá khó tin.
Bạn hỏi kết nối là gì? Vâng, hãy xem xét bất kỳ thuật toán ngẫu nhiên nào giải quyết một số vấn đề hiệu quả. Nó dựa vào các đồng tiền ngẫu nhiên: các bit ngẫu nhiên thu được từ một nguồn ngẫu nhiên thực. Bây giờ, giả sử chúng ta sử dụng một trình tạo giả ngẫu nhiên có chất lượng mật mã và thay thế nguồn ngẫu nhiên thực bằng đầu ra của trình tạo giả ngẫu nhiên. Gọi kết quả thuật toán A ' . Lưu ý rằng A ' là một thuật toán xác định và thời gian chạy của nó là xấp xỉ như nhau như một .AA′A′A
Ngoài ra, nếu PRNG mật mã là an toàn, heuristically chúng ta nên mong đợi là một thuật toán tốt nếu A là:A′A
Ví dụ, nếu là một thuật toán Las Vegas (nó luôn luôn kết quả đầu ra câu trả lời đúng, và chấm dứt nhanh chóng với xác suất cao), sau đó A ' sẽ là một khá tốt xác định thuật toán (luôn luôn kết quả đầu ra câu trả lời đúng, và chấm dứt nhanh chóng cho hầu hết các nguyên liệu đầu vào) .AA′
Một ví dụ khác, nếu là một thuật toán Monte Carlo (thời gian chạy xác định, và kết quả đầu ra câu trả lời đúng với xác suất ít nhất 1 - ε ), sau đó A sẽ là một khá tốt thuật toán xác định (xác định thời gian chạy, và kết quả đầu ra đáp án đúng trên một phần nhỏ 1 - ε của tất cả các đầu vào).A′1−εA1−ε
Do đó, nếu PRNG mật mã là an toàn và có một thuật toán ngẫu nhiên hiệu quả, bạn sẽ có được một thuật toán xác định khá tốt. Bây giờ có nhiều cấu trúc của PRNG mã hóa được đảm bảo an toàn nếu các giả định về mật mã nhất định được giữ vững. Trong thực tế, những giả định về mật mã đó được tin tưởng rộng rãi: ít nhất, thương mại và giao dịch an toàn dựa vào chúng là đúng, vì vậy chúng tôi rõ ràng sẵn sàng đặt cược một số tiền lớn mà mật mã an toàn tồn tại. Cách duy nhất để chuyển đổi này có thể thất bại là nếu PRNG mật mã không tồn tại, điều này ngụ ý mật mã an toàn là không thể. Mặc dù chúng tôi không có bất kỳ bằng chứng nào cho thấy đây không phải là trường hợp, nhưng có vẻ như đó là một kết quả không thể xảy ra.
Chi tiết về công trình: Đây là cách hoạt động. Mở đầu vào x , nó xuất phát một hạt giống cho PRNG mật mã là một hàm của x (ví dụ, bằng cách băm x ), và sau đó mô phỏng Một ( x ) , sử dụng đầu ra của PRNG mật mã như tiền xu cho Một . Chẳng hạn, một khởi tạo cụ thể sẽ là đặt k = SHA256 ( x ) , sau đó sử dụng k làm hạt giống cho AES256 trong chế độ truy cập hoặc một số PRNG mã hóa khác. Chúng ta có thể chứng minh các tuyên bố trên theo mô hình nhà tiên tri ngẫu nhiên.A′xxxA(x)Ak=SHA256(x)k
Nếu bạn không hài lòng với ý tưởng rằng đầu ra sức kết quả không chính xác trên một số phần nhỏ của đầu vào, có thể được giải quyết. Nếu bạn lặp lại A ′ nhiều lần và lấy phiếu đa số, xác suất lỗi sẽ giảm nhanh theo cấp số nhân theo số lần lặp. Vì vậy, bằng cách lặp lại một hằng số lần, bạn có thể nhận xác suất lỗi ε được dưới 1 / 2 256 , có nghĩa là cơ hội mà bạn chạy trên một đầu vào xA′A′ε1/2256xtrong đó thuật toán đưa ra câu trả lời sai rất nhỏ (ít hơn khả năng bị sét đánh nhiều lần liên tiếp). Hơn nữa, với việc xây dựng tôi đã nêu trên, các cơ hội mà một kẻ thù thậm chí có thể tìm thấy một đầu vào nơi Một ' đưa ra câu trả lời sai có thể được thực hiện rất nhỏ, vì điều đó sẽ yêu cầu phá vỡ sự an toàn của các băm SHA256. (Về mặt kỹ thuật, điều này đòi hỏi mô hình nhà tiên tri ngẫu nhiên phải chứng minh, do đó, điều đó có nghĩa là A phải được chọn là "độc lập" với SHA256 và không phải mã cứng trong các tính toán có liên quan đến SHA256, nhưng hầu như tất cả các thuật toán trong thế giới thực sẽ đáp ứng yêu cầu đó .)xA′A
Nếu bạn muốn có một cơ sở lý luận mạnh mẽ hơn, bạn có thể lặp Θ ( n ) lần, và có được xác suất lỗi được dưới 1 / 2 n , nơi n là chiều dài của đầu vào x . Bây giờ phần của n đầu vào -bit nơi Một ' đưa ra một câu trả lời không chính xác là đúng ít hơn 1 / 2 n . Nhưng chỉ có 2 n thể n đầu vào -bit, và trên mỗi một A hoặc là đúng hoặc không chính xác, vì vậy nó sau đó không có đầu vào nơi A 'A Θ(n)1/2nnxnA′1/2n2nnAA′không chính xác: đúng trên tất cả các đầu vào và điều này giữ vô điều kiện. Nếu Một chạy trong thời gian t ( n ) , sau đó A ' chạy trong thời gian Θ ( n ⋅ t ( n ) ) , vì vậy A ' là chậm hơn một chút so với A nhưng không quá nhiều chậm hơn. Đây là nội dung bằng chứng của Adman rằng BPP có trong P / poly. Đối với các mục đích thực tế, điều này có thể là quá mức cần thiết, nhưng nếu bạn thích bằng chứng rõ ràng tránh các giả định về mật mã hoặc nếu bạn tiếp cận điều này từ quan điểm của một nhà lý thuyết thì bạn có thể thích phiên bản này tốt hơn.A′At(n)A′Θ(n⋅t(n))A′A
Để biết thêm chi tiết về các cân nhắc lý thuyết sau và các vấn đề bổ sung mà chúng tôi biết về thuật toán ngẫu nhiên hiệu quả nhưng chúng tôi không biết bất kỳ thuật toán xác định nào mà chúng tôi có thể chứng minh là hiệu quả, hãy xem /cstheory//q/31195 / 5038
Tóm lại: Đối với bất kỳ vấn đề nào chúng tôi biết một thuật toán ngẫu nhiên hiệu quả, chúng tôi cũng biết một thuật toán xác định có vẻ hiệu quả trong thực tế - nhưng hiện tại chúng tôi không biết làm thế nào để chứng minh rằng nó hiệu quả. Một cách giải thích có thể là chúng ta không giỏi trong việc chứng minh các công cụ về thuật toán.