Udowodnienie takiej złożoności teoretycznej wersji twierdzenia Rice'a było dla mnie motywacją do studiowania zaciemnienia programu.
Twierdzenie Rice'a mówi w istocie, że trudno jest zrozumieć funkcje obliczane przez programy, biorąc pod uwagę program. Przyczyną tych problemów jest jednak to, że są one nieskończone. Nawet przy jednym wejściu program nigdy się nie zatrzyma i musimy rozważyć, co program robi na nieskończenie wielu wejściach.
Skończona wersja twierdzenia Rice'a poprawiłaby wielkość wejściową i czas działania programu i powiedziałaby, że program jest trudny do zrozumienia. Po ich naprawieniu możesz równie dobrze postrzegać program jako obwód logiczny. Jakie właściwości funkcji obliczonej przez obwód logiczny są trudne do obliczenia? Jednym z przykładów jest `` nie zawsze 0 '', czyli problemy z całkowitą satysfakcją z NP. Ale w przeciwieństwie do twierdzenia Rice'a, istnieją pewne właściwości, które są nietrywialne, ale łatwe, nawet bez zrozumienia obwodu. Zawsze możemy wiedzieć, że: funkcja obliczona przez obwód ma ograniczoną złożoność obwodu (wielkość obwodu). Ponadto zawsze możemy ocenić obwód na wybranych wejściach.
fCn|C|fCnxxf(0..0)=1fC
O ile mi wiadomo, pytanie to jest otwarte, nasze zamierzone podejście zostało wykluczone. Mieliśmy nadzieję to udowodnić, pokazując, że możliwe jest kryptograficznie bezpieczne zaciemnianie programu. Jednak Boaz udowodnił coś przeciwnego: że było to niemożliwe. To domyślnie pokazuje, że dostęp czarnej skrzynki do obwodów jest bardziej ograniczony niż pełny dostęp do opisu obwodu, ale dowód nie jest konstruktywny, więc nie mogę nazwać żadnej właściwości jak wyżej, która jest łatwa z uwagi na opis obwodu, ale nie z czarnym dostęp do skrzynki. Interesujące jest (przynajmniej dla mnie), czy taka właściwość mogłaby zostać odwrócona na podstawie naszej pracy.
Oto odniesienie: Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, Ke Yang: O (Im) możliwościach zaciemniania programów. CRYPTO 2001: 1-18