Есть функция
, проделывающая некоторое вычисление, использующее функцию
и некий дополнительный аргумент
. Можно ли иметь функцию
такую*, что
и такую, что просто проверить, что
— это действительно скорее всего результат применения
к некоторым известным нам аргументам (а не результат применения какой-то подкрученной злоумышленником
) — проще, чем посчитать
.
* И чтобы, разумеется, она вообще была практически реализуема на тьюринг-ограниченной архитектуре, если реализуема .Дополнительно, у нас может не быть возможности самим посчитать
, потому что вместо конкретной
нам дан некоторый хеш
её кода
(будем считать, что у
только одна реализация
и потому ей соответствует только один хеш), где
известная функция — но нам всё равно хотелось бы иметь какие-то гарантии, что (при известных всем
) переданное нам
— это
.
Это описывает такую ситуацию:
симулирует какую-то систему, полностью задаваемую параметрами
, и оценивает управление
для неё. Хочется довести
до какой-то затем публично известной
, которую каждый проверяющий свою
мог бы запустить у себя сам и надеяться, что результаты запуска (вместе с параметрами) позволят другим считать, что он действительно воспользовался
и ничего не менял в её коде, не пользовался никакими уязвимостями в процессе выполнения и т. п., и притом было бы хорошо, если бы ему не надо было показывать сам код своей функции, вместо того дав что-то безобидное типа
.
Как я понимаю, задача почти исключительно требует очень жёстко впутать вычисление
в каждый шаг симуляции в
, значимый для получения результатов? (Это выглядит ужасно нереализуемым; но если это не предполагать, то мы вроде очень легко сможем написать
, делающую что нам захочется, так как код
по условию всем известен.) Или можно что-то попроще? Я вообще в криптографии не разбираюсь, знаю только некоторые идеи и что у неё можно типично просить.
-- Вс фев 28, 2021 18:15:02 --Если больше разных результатов выполнения
дают большую гарантию, предполагается, что можно варьировать параметр
как душе угодно (и это вынужденно скажется на
из результата).
-- Вс фев 28, 2021 18:33:44 --Было бы вообще прекрасно, если бы существовала
, такая что
для всех
(и когда определены подвыражения
— не любой код задаёт подходящую
и не всегда
), вычислимая проще
. Но я думаю, это невозможно или искать подходящую
, когда
достаточно хитра, просто нецелесообразно.
Выше
— тип значений
,
— получение функции по её коду.
-- Вс фев 28, 2021 18:38:00 --(Существование
, разумеется, требует, чтобы в
входил в какой-то мере протокол работы
. Уже потому это сомнительная затея, если ожидать, что
на каждом шаге не делает ничего особо сложного, что мне стоило наверно добавить к описанию наверху.)