Вопрос по теории информатики
Сегодня я могу тайно хранить файлы в облаке (скажем, на amazon s3), зашифровав их перед сохранением и расшифровав после загрузки. Провайдер хранилища не может получить никакой информации из хранимых файлов — все надежно зашифровано, и здесь подойдет даже симметричный шифр.
Мой вопрос заключается в том, можно ли сделать то же самое с вычислениями в облаке. В облаке есть провайдер вычислений (скажем, amazon ec2). Могу ли я загрузить «зашифрованную программу» вместе с «зашифрованным вводом» для программы, и пусть мой провайдер облачных вычислений выполнит за меня все вычисления и сгенерирует для меня «зашифрованный вывод» — с теми же гарантиями безопасности, что и в «секретном файле хранить"?
Обратите внимание, что я говорю не об обфускации и обратном инжиниринге, а о секретных вычислениях с сильными криптографическими гарантиями.
Моя догадка, что это невозможно сделать. В противном случае 1) он бы существовал, 2) моя интуиция такова, что никакие зашифрованные данные не могут «продолжать оставаться зашифрованными данными» после применения к ним преобразований, т.е. они просто становятся тарабарщиной.
Примечание Возможно, у меня нет надлежащего опыта в области компьютерных наук, если бы кто-нибудь мог сказать мне, какой должна быть точная номенклатура.
Приветствуются ссылки на академическую литературу и разъяснения относительно описанных выше концепций.
Отвечать:
Похоже, что:
секретный ввод и вывод, несекретная программа: только в теории
Секретный ввод, секретный вывод и секретная программа: даже не в теории. (Обновление: возможно, да, см. комментарий Артелиуса)