Доведення такої теоретичної версії теореми Райса для мене стало мотивацією для вивчення програмної обфузації.
Теорема Райса, по суті, говорить, що важко зрозуміти функції, які програмують, враховуючи програму. Однак причина цих проблем нерозв'язна - це те, що вони інфінітарні. Навіть на одному вході програма може ніколи не зупинятися, і нам потрібно враховувати, що програма робить на нескінченно багато входів.
Кінцева версія теореми Райса дозволила б виправити розмір вводу та час роботи програми, і сказати, що програму важко зрозуміти. Після їх виправлення ви можете також переглядати програму як булева схема. Які властивості функції, обчисленої булевою схемою, важко обчислити? Одним із прикладів є `` не завжди 0 '', що є проблемою задоволеності, пов'язаної з NP. Але на відміну від теореми Райса, є деякі властивості, які нетривіальні, але прості, навіть не розуміючи схеми. Ми завжди можемо знати, що: функція, обчислена ланцюгом, має обмежену складність ланцюга (розмір схеми). Крім того, ми завжди можемо оцінити схему на входах на наш вибір.
fСн| С|fСнххf( 0..0 ) = 1fС
Хоча це питання відкрите, наскільки я знаю, наш намічений підхід був виключений. Ми сподівалися довести це, показавши, що криптографічно захищена програмна обфузація можлива. Однак Боаз довів протилежне: що це неможливо. Це неявно показує, що доступ до мікросхем є обмеженим, ніж повний доступ до опису схеми, але доказ неконструктивний, тому я не можу назвати жодне властивість, як описано вище, що легко дається в описі схеми, але не з чорним доступ до скриньки. Цікаво (принаймні для мене), якби така властивість могла бути розроблена з нашої роботи.
Ось довідка: Боаз Барак, Од Голдрайх, Рассел Імпальяццацо, Стівен Рудіч, Аміт Сахай, Саліл П. Вадхан, Ке Ян: Про (Ім) можливість заплутаних програм. CRYPTO 2001: 1-18