Секретные вычисления: такое животное существует? - PullRequest
7 голосов
/ 01 октября 2009

Вопрос по теории компьютерных наук

Сегодня я могу тайно хранить файлы в облаке (скажем, amazon s3), зашифровав их перед сохранением и расшифровав после загрузки. Поставщик хранилища не может получить никакой информации из хранимых файлов - все надежно зашифровано, и даже симметричный шифр будет в порядке.

У меня вопрос: можно ли сделать то же самое с вычислениями в облаке? В облаке есть поставщик вычислений (скажем, amazon ec2). Могу ли я загрузить «зашифрованную программу» вместе с «зашифрованным вводом» для программы и попросить моего провайдера облачных вычислений выполнить все вычисления для меня и сгенерировать для меня «зашифрованный вывод» - с теми же гарантиями безопасности, что и в «секретном файле» магазин "?

Обратите внимание, что я говорю не о проблемах запутывания и обратного инжиниринга, а о секретных вычислениях с надежными криптографическими гарантиями.

Я догадываюсь, что это невозможно. В противном случае 1) оно существует, 2) моя интуиция заключается в том, что никакие зашифрованные данные не могут «оставаться зашифрованными данными» после применения к ним преобразований, т. Е. Они просто становятся бессмысленными.

Примечание Возможно, мне не хватает соответствующего фона в информатике, если бы кто-то мог сказать мне, какой должна быть точная номенклатура.

Приветствуются указатели на академическую литературу и разъяснения, касающиеся вышеописанных концепций.

Ответ:

Похоже, что:

  • секретный ввод и вывод, несекретная программа: только теоретически

  • Секретный ввод, секретный вывод и секретная программа: даже не в теории. ( Обновление: возможно, да, см. Комментарий Артелия)

Ответы [ 4 ]

11 голосов
/ 01 октября 2009

Да, такая вещь действительно существует, хотя в настоящее время она очень теоретическая. Это называется гомоморфным шифрованием. Вот статья о прорывах, сделанная в IBM и , в блоге Брюса Шнайера есть комментарий .

По сути, система гомоморфного шифрования - это система, в которой:

decrypt (f (encrypt (plaintext))) = f (plaintext)
3 голосов
/ 01 октября 2009

На самом деле, совсем недавно кто-то решил проблему того, что называется Полностью гомоморфное шифрование . Я не криптограф, но, насколько я понимаю, основная идея состоит в том, что кто-то может выполнять действия с зашифрованными данными , даже не зная, что это за данные , и эти действия будут иметь значение (т. Е. Когда данные расшифрованы, будут иметь место анологичные изменения).

Это была открытая проблема в криптографии долгое время, и теперь, когда она решена, технически кто-то может сделать что-то похожее на то, что вы предлагаете. Например, вы можете загрузить данные на серверы Amazon для работы, они могут выполнить какой-то алгоритм, который специально разработан, а затем отправить обратно ваши новые данные. (Я не знаю, есть ли способ на самом деле указать сам алгоритм, как вы и просили).

Конечно, во всем этом есть проблема: она все еще нецелесообразна, несмотря на то, что была решена.

Если вы хотите больше узнать об этом, я бы порекомендовал статью из Википедии, а также статью Брюса Шнайера " Прорыв в гомоморфном шифровании ".

1 голос
/ 01 октября 2009

Другие уже указали на теоретические возможности полностью гомоморфного шифрования, но я хотел бы отметить, что (секретный ввод, секретный вывод, несекретная программа) -система может использоваться для mke (секретный ввод, секрет выход, секретная программа) -система: просто сделайте не секретную программу интерпретатором для некоторого языка общего назначения и используйте (фактическую программу, ввод) в качестве ввода для несекретной программы.

Конечно, стандартный компьютер, встроенный в защищенный корпус и сертифицированный независимой третьей стороной, был бы гораздо более практичным решением.

1 голос
/ 01 октября 2009
...