Chứng minh một phiên bản lý thuyết phức tạp như vậy của Định lý Rice là một động lực để tôi nghiên cứu chương trình obfuscation.
Định lý Rice nói về bản chất, thật khó để hiểu các chức năng mà các chương trình tính toán, đưa ra chương trình. Tuy nhiên, lý do những vấn đề này là không thể giải quyết được là chúng không nguyên tắc. Ngay cả trên một đầu vào, một chương trình có thể không bao giờ dừng lại và chúng ta cần xem xét chương trình làm gì với vô số đầu vào.
Một phiên bản chính xác của định lý Rice sẽ sửa kích thước đầu vào và thời gian chạy của một chương trình, và nói rằng chương trình này rất khó hiểu. Khi bạn đã sửa những lỗi này, bạn cũng có thể xem chương trình dưới dạng mạch Boolean. Những tính chất nào của hàm được tính toán bởi mạch Boolean khó tính? Một ví dụ là `` không phải luôn luôn 0 '', đó là các vấn đề về Mức độ thỏa mãn của NP. Nhưng không giống như Định lý của Rice, có một số tính chất không tầm thường nhưng dễ dàng, thậm chí không cần hiểu mạch. Chúng ta luôn có thể biết rằng: hàm được tính toán bởi một mạch có độ phức tạp giới hạn (kích thước của mạch). Ngoài ra, chúng tôi luôn có thể đánh giá các mạch trên đầu vào của sự lựa chọn của chúng tôi.
Vì vậy, giả sử một thuộc tính của rất dễ dàng với truy cập Hộp đen nếu nó có thể được tính toán, d trong thời gian đa thức xác suất bằng thuật toán lấy đầu vào n , ràng buộc vào | C | và truy cập oracle để f C . Ví dụ, sự thỏa mãn không dễ dàng với truy cập hộp đen, bởi vì chúng ta có thể tưởng tượng một mạch có kích thước n chỉ tạo ra câu trả lời 1 trên đầu vào x được chọn ngẫu nhiên . Không có thuật toán hộp đen nào có thể phân biệt một mạch như vậy với một mạch luôn trả về 0, vì xác suất truy vấn nhà tiên tri trên x là nhỏ theo cấp số nhân. Mặt khác, thuộc tính f ( 0..0 )fCn| C|fCnxx là hộp đen dễ dàng. Câu hỏi đặt ra là: có bất kỳ tính chất nào của f C có thể quyết định được trong thời gian đa thức xác suất không dễ dàng với truy cập Hộp đen không?f( 0..0 ) = 1fC
Trong khi câu hỏi này được mở theo như tôi biết, cách tiếp cận dự định của chúng tôi đã bị loại trừ. Chúng tôi đã hy vọng chứng minh điều này bằng cách chỉ ra rằng việc che giấu chương trình bảo mật bằng mật mã là có thể. Tuy nhiên, Boaz đã chứng minh điều ngược lại: rằng điều đó là không thể. Điều này ngầm cho thấy rằng việc truy cập hộp đen vào các mạch bị hạn chế hơn so với truy cập đầy đủ vào mô tả mạch, nhưng bằng chứng là không mang tính xây dựng, vì vậy tôi không thể đặt tên cho bất kỳ thuộc tính nào như trên, dễ dàng đưa ra mô tả mạch nhưng không phải với màu đen truy cập hộp. Thật thú vị (ít nhất là với tôi) nếu một tài sản như vậy có thể được thiết kế ngược từ giấy của chúng tôi.
Dưới đây là tài liệu tham khảo: Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, Ke Yang: Về khả năng (Im) của các chương trình Obfuscating. CRYPTO 2001: 1-18