Vůbec tomu nerozumím, ale podle mě se to umí a říká se tomu Fully homomorphic encryption. Tady se tváří, že z toho umí vyrobit turingáč.
Pokud jsem správně pochopil problém, jde o to, že nedůvěryhodná strana může provést přesně dané výpočty nad tajnými daty aniž by se dostala k datům v otevřené formě. Takže bych třeba mohl podnikové účetnictví počítat někde fklaudu aniž by provozovatel mohl zjistit, kolik vydělávám.
Takže
D(f'(E(x,K1)),K2)=y kde y=f(x)
E...zašifrování
D...dešifrování
K1,K2...klíče
f...funkce, kterou chci vypočítat
f'...funkce, která provádí výpočet nad zašifrovanými daty
problém je, jak pro danou f zkonstruovat f'
Není mi jasné, jak by se tohle dalo použít pro obfuskaci software, protože v takové situaci má uživatel software k dispozici data v otevřeném formátu. Muselo by to fungovat tak, že svoje data pošlu vydavateli sw, ten je zašifruje (on jediný má K1), já zašifrovanou formu vrazím do algoritmu f', provedu výpočet na svém železe a výsledek rozšifruju pomocí K2, který mi vydavatel sw dá.
Nenapadá mě způsob, jak to udělat bez toho, aby jenom vydavatel měl K1 a při každém výpočtu jsem s ním musel interagovat.
Co mi uniká?