Прочитавши цю відповідь деякий час тому, я захопився повністю гомоморфним шифруванням. Прочитавши вступ до тези Джентрі, я почав цікавитись, чи може його схема шифрування використовуватись для беззаперечного виконання коду, визначеного в третьому абзаці.
У повністю гомоморфній схемі шифрування ми зазвичай шифруємо деякі дані, відправляємо їх у вороже середовище, де на даних обчислюється певна функція, результат якої потім надсилається назад (шифрується), без супротивника з'ясовувати, що отримані дані або результат функції -.
Маючи на увазі виконання коду, я маю на увазі, що ми шифруємо фрагмент коду розроблений для вирішення якоїсь проблеми P та відправляємо його у вороже середовище. Противник хоче використовувати С для розв’язання Р , але ми не хочемо, щоб він знав, якпрацює С. Якщо у нього є вхід I для P , він може зашифрувати I, а потім використовувати (деяка схема шифрування на C )з I , яка потім повертає (не зашифрований) вихід O (рішення P для входу I). Схема шифрування гарантує, що противник ніколи не дізнається, як працює фрагмент коду, тобто для нього він працює так, як це робить оракул.
Основне практичне використання для такої схеми шифрування було б зробити ускладнення або навіть неможливе піратство.
Причиною, на яку я думаю, це можливо можливо, використовуючи повністю гомоморфну схему шифрування, є те, що ми можемо виконувати довільні схеми на зашифрованих даних, зокрема універсальну машину Тюрінга. Тоді ми могли б зашифрувати код так, ніби це дані, а потім використати схему для універсальної машини Тьюрінга на цих зашифрованих даних для виконання коду.
Я ставлю це як питання тут, тому що не знаю, чи корисна ця ідея: я ніколи не проходив набагато далі, ніж впровадження тези Джентрі, і мої знання про криптографії обмежені. Крім того, я не знаю, чи існує вже часто вживаний термін для непомітного виконання коду: я спробував шукати ідею в Google, але не знаючи належного терміна, я нічого не знайшов.
Я думаю, що існує декілька проблем, які можуть спричинити проблеми при такому підході. По-перше, якщо ми будемо використовувати повністю гомоморфне шифрування без модифікації, результат обчислення ( ) буде зашифрований. Тому було б марно для противника , який хоче використовувати свій код для вирішення P . Хоча це все ще може бути корисним для, скажімо, хмарних обчислень, я цього не хочу досягти.
По-друге, оскільки ми використовуємо схеми, а не довільні машини Тьюрінга, ми не можемо використовувати довільну кількість пам'яті: ми обмежені заздалегідь заданим об'ємом пам'яті. Це означає, що якщо ми хочемо запустити програму таким чином, слід пам'яті завжди буде однаковим, а саме - це пікове використання пам'яті.
Нарешті, задіяні константи майже напевно знищують будь-яке практичне використання такої системи, але я думаю, що ця ідея цікава.