A homomorf titkosítás egy olyan titkosítási forma, amely lehetővé teszi bizonyos matematikai műveletek végrehajtását a titkosított szövegen , és olyan titkosított eredményt kap, amely megegyezik a nyílt szövegen végrehajtott műveletek eredményével . Például egy személy hozzáadhat két titkosított számot anélkül, hogy ismerné a megfejtett számokat, majd egy másik személy megfejtheti a titkosított összeget - megkaphatja a megfejtett összeget anélkül, hogy birtokában lenne a megfejtett számoknak. A homomorf titkosítás lehetővé tenné különböző szolgáltatások nyújtását anélkül, hogy az egyes szolgáltatásokhoz nyilvános felhasználói adatokat szolgáltatnának.
Vannak részben homomorf és teljesen homomorf kriptorendszerek. A részben homomorf kriptorendszer lehetővé teszi, hogy a műveletek közül csak egyet hajtson végre – akár összeadást, akár szorzást . Egy teljesen homomorf kriptorendszer mindkét műveletet támogatja, azaz kielégíti a homomorfizmus tulajdonságait mind a szorzás, mind az összeadás tekintetében.
A "homomorf titkosítás" fogalmát először [1] 1978-ban Ronald Rivest , Leonard Adleman és Michael Dertouzos , az RSA algoritmus szerzői alkották meg egy évvel az algoritmus kifejlesztése után. Azt javasolták, hogy a titkosított adatokon tetszőleges műveleteket hajtsanak végre azok visszafejtése nélkül.
Abban az időben a teljesen homomorf kriptorendszer létrehozására tett kísérletek nem jártak sikerrel. Például 1982-ben Shafi Goldwasser és Silvio Micali olyan titkosítási rendszert javasoltak, amely szorzáskor homomorf, és csak egy bitet képes titkosítani. Egy másik, a szorzás szempontjából homomorf kriptorendszert javasolt 1999-ben Pascal Peyet .
2005-ben Dan Bone , Yu Jin Guo és Kobi Nissim egy kriptorendszert javasoltak [2] , amely elliptikus görbék bilineáris párosításán alapul , és korlátlan számú összeadási és egy szorzási műveletet tesz lehetővé.
Az összeadási és szorzási műveletek tekintetében homomorf kriptorendszer létrehozásának problémája több mint 30 éve megoldatlan maradt.
2009-ben Craig Gentry , a Stanford Egyetem végzős hallgatója és az IBM gyakornoka elméletileg alátámasztotta egy teljesen homomorf titkosítási titkosítási rendszer létrehozásának alapvető lehetőségét, és egy ilyen rendszert javasolt . A javasolt rendszer az adatok bizalmas kezelésének biztosítására használható bármilyen nem megbízható környezetben végzett adatfeldolgozás során, például felhőben vagy elosztott számítástechnikában.
Hamarosan megjelentek a munkák, amelyek a Gentry kriptorendszer teljesítményjavító módosításait javasolják .
A kriptográfusok alternatív módokon dolgoznak teljesen homomorf kriptorendszerek felépítésére, például szimmetrikus titkosítást használnak a nyilvános kulcsú titkosítás helyett, polinomokat használnak egy vagy több változóban, mátrixpolinomokat használnak.
A homomorf titkosítás egy olyan titkosítási forma, amely lehetővé teszi egy adott algebrai művelet végrehajtását a nyílt szövegen, a titkosított szövegen végrehajtott algebrai művelet végrehajtásával.
Legyen a titkosítási kulcs, legyen a titkosítandó egyszerű szöveg (üzenet) , és a titkosítást végrehajtó funkció.
Egy függvényt homomorfnak nevezünk a " " műveletre (összeadás vagy szorzás) egyszerű szövegeken (üzeneteken) és ha van egy hatékony algoritmus (polinomiális számú erőforrást igényel és polinomiális időben fut ), amely bármely pár Az űrlap titkosított szövegei és bemenetként egy titkosított szöveget (titkosszöveget, kriptogramot) állít elő, így a visszafejtéskor egyszerű szöveget kap [3] .
A gyakorlatban a homomorf titkosítás alábbi speciális esetét gyakrabban veszik figyelembe.
Legyen az adott titkosítási függvény és a „ ” művelet egyszerű szövegeken , és legyen „ ” művelet a titkosított szövegeken, úgy, hogy az egyszerű szöveget a titkosított szövegből kinyerjük a visszafejtéskor . Ez megköveteli, hogy adott , , de ismeretlen kulccsal lehetetlen hatékonyan ellenőrizni, hogy a rejtjelezett szöveget a és -ból szerezték-e be .
Bármely szabványos titkosítási rendszer leírható három művelet leírásával: egy kulcsgenerálási művelet ( keyGen ), egy titkosítási művelet ( encypt ) és egy dekódolási művelet ( decrypt ) [4] .
Egy homomorf titkosítási rendszer leírásához a fent felsorolt három műveleten kívül szükséges a számítási művelet leírása ( eval ). A homomorf titkosítás használata magában foglalja a négy műveletből álló sorozat használatát: kulcsgenerálás, titkosítás, számítás, visszafejtés:
Legyen a titkosítási függvény; - bővítési funkció; és – egyszerű szövegek; a „ ” és a „ ” szimbólumok a titkosított szövegek szorzási és összeadási műveleteit jelölik, amelyek megfelelnek az egyszerű szövegek szorzási és összeadási műveleteinek.
Egy titkosítási rendszer homomorf a szorzási művelet tekintetében (multiplikatív homomorf tulajdonságokkal rendelkezik), ha
Egy titkosítási rendszer homomorf az összeadási művelet tekintetében (additív homomorf tulajdonságokkal rendelkezik), ha
Egy titkosítási rendszer a szorzási és összeadási műveletek tekintetében homomorf, azaz teljesen homomorf (multiplikatív és additív homomorf tulajdonságokkal is rendelkezik), ha
Ha egy ezekkel a tulajdonságokkal rendelkező kriptorendszer két bitet tud titkosítani, akkor mivel az összeadás és szorzás műveletei egy Turing-teljes alapot képeznek a biteken, lehetővé válik bármely logikai függvény kiszámítása , és így bármely más kiszámítható függvény is .
A homomorf titkosítás új lehetőségeket nyit meg az adatok integritásának, elérhetőségének és bizalmasságának megőrzésében, amikor azokat felhőrendszerekben dolgozzák fel. A felhőalapú számítástechnikában , ahol a teljesítmény a legfontosabb, különböző algoritmusokat kell alkalmazni, amelyek mindegyike a legjobban teljesíti az adott feladatot. Például a titkosított adatok szorzási műveleteihez tanácsos az RSA vagy az ElGamal algoritmust , összeadáshoz pedig a Peye algoritmust használni . Teljesen homomorf titkosítási rendszer alkalmazása esetén korlátozni kell az adatokon végrehajtható műveletek számát, mivel a számítások eredményeként némi hiba halmozódik fel . Ha a hibaérték meghaladja a titkos paraméter értékét, előfordulhat, hogy az adatokat nem lehet megfelelően visszafejteni.
Elektronikus szavazásAz elektronikus szavazás a homomorf titkosítás másik ígéretes alkalmazási területe. A rendszer képes lesz titkosítani a választók szavazatait, és titkosított adatokon számításokat végezni, miközben megőrzi a választók anonimitását . Például a Benalo e-szavazási rendszerben a szavazási folyamat a következő lépéseket tartalmazza [5] :
Vegyünk egy példát arra, hogyan lehet ezt a megközelítést megvalósítani.
Legyen egy olyan jelölthalmaz, amelyből a szavazólapon szereplő lista alakul. A szavazás kezdeményezője az összeadási művelet szempontjából homomorf kriptorendszerrel rendelkezik, a titkos szavazás résztvevői között szétosztja a homomorf titkosítási rendszer nyilvános kulcsát és a szavazást vektorként, ahol a -edik jelölt vezetékneve . A szavazók mindegyike elkészít egy preferencia vektort, ahol ezt követően a nyilvános kulcs segítségével minden szavazó elemenként titkosítja a vektort, és elküldi a szavazás kezdeményezőjének. A szavazás eredményének összegzéséhez számításokat végez a kapott preferenciavektorok megfelelő elemein, és a titkos kulcs segítségével dekódolja . Mivel a kriptorendszer az összeadás műveletét tekintve homomorf, az eredményül kapott vektor legnagyobb elemeinek indexei a nyertes jelöltek indexei lesznek.
Biztonságos információkeresésA homomorf titkosítás lehetővé teszi a felhasználók számára, hogy a titkosság megőrzése mellett információkat nyerjenek ki a keresőmotorokból : a szolgáltatások képesek lesznek fogadni és feldolgozni kéréseket, valamint kiadni a feldolgozási eredményeket anélkül, hogy elemeznék és javítanák a valódi tartalmat. Például a rekordok adatbázisból az indexek alapján történő kinyerésére szolgáló módszer a következőképpen ábrázolható.
Legyen a lekérendő rekord indexe; ; - minden indexelt rekord az adatbázisból.
Ezután a kívánt rekord kiválasztásához a következő függvényt kell kiszámítani :
Ha mindegyiket homomorf titkosítási rendszerrel titkosítjuk, akkor homomorf módon lehet számolni a titkosított szövegek felett. Ehhez elég, ha a kliens bitenként titkosítja a számára szükséges rekord indexét és elküldi a szervernek. Egy függvény titkosított szövegeken keresztüli homomorf kiértékelésének eredménye az ügyfél által kért bejegyzés kívánt titkosítási értéke lesz . Nyilvánvaló, hogy egy kriptorendszernek rendelkeznie kell multiplikatív és additív homomorf tulajdonságokkal is.
Vezeték nélküli decentralizált kommunikációs hálózatok védelmeA vezeték nélküli decentralizált önszerveződő hálózatok ( MANET ) mobileszközökből álló hálózatok. Mindegyik ilyen eszköz függetlenül mozoghat bármilyen irányba, és ennek eredményeként gyakran megszakad és kapcsolatot létesít a szomszédos eszközökkel. A MANET felépítésének egyik fő problémája a továbbított adatok biztonságának biztosítása. A probléma megoldására homomorf titkosítás használható, amely a biztonság javítása érdekében az útválasztási protokollokba van beépítve. Ebben az esetben a titkosított szövegeken végzett műveleteket a köztes csomópontok biztonságosan végrehajthatják. Különösen a két csomópont közötti optimális útvonal megtalálásához lineáris műveleteket kell végrehajtani a titkosított adatokon, dekódolás nélkül. A homomorf titkosítás jelenléte nem teszi lehetővé a támadó számára, hogy kapcsolatot találjon a csomópontba belépő és a csomópontot elhagyó üzenetek között. Ezért nem lehet nyomon követni egy üzenet útját forgalomelemzéssel [6] .
Outsourcing szolgáltatások intelligens kártyákhozA jelenlegi tendencia az univerzális kártyák fejlesztése saját operációs rendszerrel , amelyek különféle funkciókat látnak el, és több szolgáltatóval is együttműködhetnek. Feltételezések szerint egyes alkalmazások a térképen kívül is futhatnak homomorfikusan titkosított adatokon. A különösen erőforrásigényes alkalmazások, például a szolgáltatói alkalmazások, valamint a biometrikus ellenőrzések ( hang- , ujjlenyomat- vagy kézírás -felismerés ), amelyek jellemzően jelentős adatmennyiséget és nagyszámú viszonylag egyszerű műveletet igényelnek, használhatnak külső tárolóeszközöket és külső processzorok , erősebbek, mint a kártyába épített processzor.
Visszacsatoló rendszerekA homomorf titkosítás alkalmazható például az úgynevezett biztonságos homomorf visszacsatoló rendszerekben , amikor szükséges a felhasználó anonimitásának megőrzése és a számítások közbenső eredményeinek elrejtése . A rendszerek segítenek anonim módon összegyűjteni a diákok vagy tanárok visszajelzéseit (megjegyzéseit) a munkájukkal kapcsolatban. Az így kapott visszajelzéseket titkosítjuk és tároljuk a későbbi számításokhoz. A visszacsatoló rendszerek segítségével fel lehet hívni a figyelmet a dolgok helyzetére és javítani lehet a teljesítményt. Megállapítást nyert, hogy bármely rendszerről, folyamatról megbízható visszacsatolás csak a felhasználó anonimitásának megőrzése, a gyűjtött adatok megváltoztathatatlansága, valamint az adatelemzés belső működésének biztonsága esetén adható.
Elzavarás a szoftvertermékek védelme érdekébenAz obfuszkálás fő célja , hogy megnehezítse a program működésének megértését. Mivel minden hagyományos számítógép-architektúra bináris karakterláncokat használ, a biteken teljesen homomorf titkosítással bármilyen függvény kiszámítható. Ezért lehetséges a teljes program homomorfikus titkosítása, hogy megőrizze funkcionalitását.
A részlegesen homomorf kriptorendszerek olyan kriptorendszerek, amelyek csak egy művelet tekintetében homomorfak, akár az összeadási, akár a szorzási művelet tekintetében. Az alábbi példákban a kifejezés a titkosítási függvény használatát jelöli az egyszerű szöveg (üzenet) titkosításához .
Az RSA kriptorendszer egy nyilvános kulcsú kriptográfiai séma , amely homomorf szorzás. Legyen az RSA modul, legyen a nyílt szöveg és a nyilvános kulcs (a nyílt szöveg titkosításához). A titkosítási funkció így néz ki . Mutassuk meg a homomorfizmust szorzással:
Az ElGamal kriptorendszer az RSA kriptorendszer alternatívája, és ugyanazzal a kulcsértékkel ugyanazt a kriptográfiai biztonságot nyújtja . Az ElGamal továbbfejlesztette a Diffie-Hellman algoritmust , és algoritmusokat szerzett a titkosításhoz és a hitelesítéshez. A kriptorendszer egy valószínűségi titkosítási titkosítási rendszer. Titkosítási funkciója homomorf a szöveges szorzási művelethez képest: a szorzati kriptogram kiszámítható a tényezők kriptogramjainak (páronkénti) szorzataként. Legyen a titkosítási függvény; és — egyszerű szövegek. Ha és akkor formában lehet beszerezni .
A Goldwasser-Micali kriptorendszerben , ha a modulus a nyilvános kulcs, akkor a bittitkosítási funkció a véletlenszerű elemre vonatkozik . Ekkor ez a kriptorendszer homomorf a szorzás műveletére: ahol a „ ” szimbólum a modulo 2 összeadás műveletét jelöli .
A Peye kriptorendszerben , ha a nyilvános kulcs egy modulo és egy véletlen szám, akkor az üzenet titkosítási funkciója (sima szöveg) véletlen változóként jelenik meg . Ekkor az összeadás homomorfizmusát a következőképpen bizonyítjuk:
A Benalo kriptorendszerben , ha a nyilvános kulcs egy modulus , akkor az egyszerű szöveges titkosítási függvényt a véletlenszerűen ábrázoljuk . Ekkor az összeadás homomorfizmusát a következőképpen bizonyítjuk:
A részben homomorf kriptorendszerek lehetővé teszik homomorf számítások elvégzését a nyílt szövegek egyetlen műveletéhez (akár összeadáshoz, akár szorzáshoz). Az összeadást és szorzást egyaránt támogató kriptorendszer (így megőrzi a nyílt szöveges gyűrűszerkezetet ) teljesen homomorf titkosításként ismert, és erősebb. Egy ilyen rendszer használatával bármely séma homomorfikusan kiértékelhető, lehetővé téve olyan programok hatékony létrehozását, amelyek bemeneti titkosítással futtathatók a kimeneti titkosítás előállításához. Mivel egy ilyen program soha nem fogja visszafejteni a bemenetét, egy nem megbízható fél is végrehajthatja anélkül, hogy megmutatná a bemenetét és a belső állapotát. Egy hatékony és teljesen homomorf kriptográfiai rendszer megléte nagy gyakorlati következményekkel járna a privát számítástechnika kiszervezésében, például a számítási felhő kontextusában [7] . A homomorf titkosítás lehetővé tenné a különböző szolgáltatások egyesítését anélkül, hogy minden egyes szolgáltatáshoz adatot szolgáltatna. Például a különböző cégek szolgáltatásainak összevonása következetesen kiszámíthatja az adót, alkalmazhatja az aktuális árfolyamot, benyújthat tranzakciós kérelmet anélkül, hogy minden egyes szolgáltatásra tényleges adatot szolgáltatna [8] . A különféle kriptográfiai rendszerek homomorf tulajdonságával biztonságos szavazórendszerek [9] , ütközésálló hash-függvények, keresőmotorok által védett információk hozhatók létre, és a feldolgozott adatok titkosságának garantálásával lehetővé válik a nyilvános felhőalapú számítástechnika széles körű alkalmazása.
Az ismert teljesen homomorf kriptorendszerek egyik jelentős problémája rendkívül alacsony teljesítményük. Jelenleg két fő módja van a teljesítmény javításának: a „korlátozott, teljesen homomorf titkosítás ” [10] és az úgynevezett „titkosszöveg-csomagolási módszer” [11] használata . Az első olyan kriptorendszert jelent, amely képes összeadási és szorzási műveleteket végrehajtani, de korlátozott számban. A második lényege, hogy egy titkosított szövegbe egyszerre több nyílt szöveg kerül beírásra, ugyanakkor egy ilyen kötegelt rejtjelezett szöveg egyetlen művelete során az összes benne szereplő rejtjelezett szöveg egyidejűleg kerül feldolgozásra.