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