Тайно изчисление: съществува ли такова животно?

Въпрос от теорията на компютърните науки

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

Въпросът ми е дали същото може да се направи с изчисления в облака. Има компютърен доставчик в облака (да кажем amazon ec2). Мога ли да кача „криптирана програма“ заедно с „криптиран вход“ за програмата и моят доставчик на облачни изчисления да извърши всички изчисления вместо мен и да генерира за мен „криптиран изход“ – със същите гаранции за сигурност като в „таен файл“ магазин"?

Обърнете внимание, че не говоря за проблеми с обфускацията и обратното инженерство, а за тайно изчисление със силни криптографски гаранции.

Моето предчувствие е, че не може да се направи. В противен случай 1) би съществувало, 2) моята интуиция е, че никакви криптирани данни не могат да „продължат да бъдат криптирани данни“, след като към тях се приложат трансформации, т.е. те просто се превръщат в безсмислици.

Забележка Може би ми липсва подходящ опит в компютърните науки, ако някой може да ми каже каква трябва да бъде точната номенклатура.

Ще бъдат добре дошли указатели към академична литература и разяснения относно описаните по-горе концепции.

Отговор:

Изглежда, че:

  • таен вход и изход, несекретна програма: Само на теория

  • Таен вход, таен изход и тайна програма: дори на теория. (Актуализация: може би да, вижте коментара на Artelius)


person flybywire    schedule 01.10.2009    source източник
comment
Мисля, че е възможно, но много много... трудно.   -  person Pratik Deoghare    schedule 01.10.2009
comment
Какво имаш предвид под криптирана програма?   -  person MAK    schedule 01.10.2009
comment
Таен вход, таен изход и тайна програма също може да са възможни. Да предположим, че можете да стартирате интерпретатор (или машина на Тюринг или каквото и да е) в тайна входна и изходна, несекретна програмна среда. Тогава програмата, която интерпретаторът изпълнява, е секретна.   -  person Artelius    schedule 02.10.2009


Отговори (4)


Да, такова нещо наистина съществува, въпреки че в момента е много теоретично. Нарича се хомоморфно криптиране. Ето документ за пробивите, направени в IBM и има коментар за това в блога на Брус Шнайер.

По принцип системата за хомоморфно криптиране е тази, при която:

decrypt (f (encrypt (plaintext))) = f (plaintext)
person Skizz    schedule 01.10.2009
comment
+1 Уау! Ще прочета добре това. Време е да изтрия отговора си, казвайки не :) - person Robin Day; 01.10.2009
comment
Моля, поправете ме, ако съм разбрал погрешно блога на Scheneier: алгоритъмът не е таен, само входът и изходът са. - person flybywire; 01.10.2009
comment
Прав си, алгоритъмът не е таен или криптиран и никога не може да бъде таен. Кодът трябва да бъде изпълнен от нещо по некриптиран начин. Доставчикът на услуги винаги ще може да получи кода, който се изпълнява на сървърите. Обикновено е най-добре, от гледна точка на сигурността, да имате отворени алгоритми, които общността може да проверява и тества за слабости - обфускацията не е сигурност! Ако имате „магически алгоритъм“, който никой друг не е разработил (и мразя да го казвам), винаги има патентна защита. - person Skizz; 01.10.2009
comment
Шнайер не казваше ли, че идеята е фундаментално непрактична? - person zebrabox; 06.10.2009

Всъщност съвсем наскоро някой реши проблема с това, което се нарича Напълно хомоморфно криптиране. Не съм криптограф, но доколкото разбирам, основната идея е, че някой може да извършва действия върху криптирани данни, без дори да знае какви са данните, и тези действия действително ще имат значение (т.е. когато данните се дешифрират, ще са настъпили аналогични промени).

Това е открит проблем в криптографията от дълго време и сега, когато е решен, технически някой може да направи нещо подобно на това, което предлагате. Например, можете да качите данни, за да работят сървърите на Amazon, те биха могли да изпълнят някакъв вид алгоритъм, който е много специално проектиран, и след това да изпратят обратно вашите нови данни. (Не знам дали има начин действително да се уточни самият алгоритъм, както попитахте).

Разбира се, има проблем с всичко това: все още е напълно непрактично, въпреки че е решен.

Ако искате да прочетете повече за това, бих препоръчал статията в Уикипедия, както и статията на Брус Шнайер "Пробив в хомоморфното криптиране".

person Edan Maor    schedule 01.10.2009


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

Разбира се, стандартен компютър, вграден в защитен от фалшифициране кутия и сертифициран от независима трета страна, би бил много по-практично решение.

person Rasmus Faber    schedule 01.10.2009