16.2.3. Homomorf titkosítás

2025.10.06.
AI Biztonság Blog

Mi lenne, ha műveleteket végezhetnénk adatokon anélkül, hogy valaha is látnánk őket? 

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

Ha egy felhőszolgáltató képes lenne betanítani egy modellt a titkosított orvosi leleteiden, anélkül, hogy egyetlen bájtnyi érzékeny információt is dekódolna? Ez nem sci-fi, hanem a homomorf titkosítás ígérete, amit sokan a kriptográfia „Szent Gráljának” tartanak!

Míg az egyesített tanulás a modellt viszi az adatokhoz, a homomorf titkosítás lehetővé teszi, hogy a titkosított adatokat vigyük a modellhez, megnyitva ezzel az adatvédelem egy teljesen új dimenzióját.

A homomorf titkosítás alapgondolata

A hagyományos titkosítási sémák (mint az AES vagy az RSA) egy alapvető korláttal rendelkeznek: ha műveletet akarsz végezni a titkosított adaton, először vissza kell fejtened. 

Ez a visszafejtési lépés sebezhető pontot hoz létre, ahol  a memóriában az adatok nyers formában léteznek. A homomorf titkosítás (Homomorphic Encryption, HE) ezt a problémát oldja meg azáltal, hogy lehetővé teszi bizonyos matematikai műveletek elvégzését közvetlenül a titkosított adatokon (ciphertext)!

A folyamat lényege, hogy ha van két titkosított értéked, enc(a) és enc(b), akkor elvégezhetsz rajtuk egy műveletet (jelöljük -szal), és az eredmény, enc(a) ⊕ enc(b), visszafejtve ugyanazt adja, mintha a műveletet az eredeti, nyers adatokon végezted volna el: decrypt(enc(a) ⊕ enc(b)) = a + b. Ez a tulajdonság teszi lehetővé a „vak” számításokat.

KLIENS Adat: x, y Titkos kulcs SZERVER (pl. Felhő) Függvény: f(x, y) Nyilvános kulcs 1. Kliens elküldi: enc(x), enc(y) 3. Szerver visszaküldi: enc(z) 2. Számítás a titkosított adaton: enc(z) = f(enc(x), enc(y)) 4. Kliens visszafejti: decrypt(enc(z)) = z = f(x, y)

A homomorfia szintjei: A részlegestől a teljesig

A homomorf titkosítás nem egyetlen technológia, hanem egy spektrum. A különböző sémák abban térnek el, hogy milyen és mennyi műveletet támogatnak a titkosított adatokon.

  • Részben Homomorf Titkosítás (Partially Homomorphic Encryption – PHE): Ezek a sémák egyetlen típusú művelet (vagy összeadás, vagy szorzás) tetszőleges számú elvégzését teszik lehetővé. Például a Paillier-kriptorendszer additívan homomorf, míg a „tankönyvi” RSA multiplikatívan. Egyszerűek és viszonylag gyorsak, de a képességeik korlátozottak.
  • Valamennyire Homomorf Titkosítás (Somewhat Homomorphic Encryption – SHE): Ezek a rendszerek már mindkét műveletet (összeadást és szorzást) támogatják, de csak korlátozott számban. Minden művelet „zajt” ad a titkosított adathoz, és egy bizonyos zajszint felett a visszafejtés meghiúsul. Ez korlátozza a számítási kör „mélységét”.
  • Teljesen Homomorf Titkosítás (Fully Homomorphic Encryption – FHE): Az FHE a végső cél. Lehetővé teszi az összeadások és szorzások tetszőleges kombinációját és számát. Ezt egy „bootstrapping” nevű zseniális, de számításigényes eljárással éri el, amely periodikusan „megtisztítja” a titkosított adatot a felgyülemlett zajtól, lényegében „újratitkosítva” azt.
Tulajdonság PHE (Részleges) SHE (Valamelyest) FHE (Teljes)
Támogatott műveletek Csak összeadás VAGY csak szorzás Összeadás és szorzás Összeadás és szorzás
Műveletek száma Korlátlan (egy típusból) Korlátozott Gyakorlatilag korlátlan
Kulcsmechanizmus Egyszerűbb (pl. Paillier) Komplex (pl. BGV, BFV) Nagyon komplex, bootstrapping szükséges (pl. CKKS, TFHE)
Teljesítmény Viszonylag gyors Lassabb Rendkívül lassú
Tipikus AI alkalmazás Egyszerű aggregációk, titkosított szavazás Egyszerűbb modellek (pl. lineáris regresszió) inferenciája Bonyolultabb modellek inferenciája/tanítása (kutatási fázis)

Homomorf titkosítás az AI Red Team szemével: Lehetőségek és buktatók

AI Red Teamerként a HE kétélű fegyver. Egyrészt rendkívül erős védelmi mechanizmus, ami megnehezíti a dolgunkat, másrészt a komplexitása és a jelenlegi korlátai új támadási felületeket nyitnak.

Az AI Vörös Csapat célpontjai (a gyengeségek)

  1. Teljesítmény és mellékcsatornák (Side-Channels): Az FHE műveletek nagyságrendekkel lassabbak, mint a nyers adatokon végzett társaik. Ez a lassúság önmagában információt szivárogtathat. Az AI Red Team elemezheti a számítási időt, a memóriahasználatot vagy az energiafogyasztást, hogy következtessen a titkosított adatokon végzett műveletekre (pl. egy elágazás melyik ága futott le), ami idővel az adatokra vonatkozó információt is felfedhet.
  2. Implementációs hibák: Az FHE könyvtárak (mint a Microsoft SEAL, a HElib vagy a TFHE) rendkívül bonyolultak. Egy apró hiba a paraméterek beállításában (pl. túl alacsony biztonsági szint, nem megfelelő zajbüdzsé) katasztrofális következményekkel járhat, és az egész sémát sebezhetővé teheti. Az AI Red Team feladata ezeket a konfigurációs hibákat felkutatni.
  3. Ciphertext mérete: A titkosított adatok jelentősen nagyobbak, mint a nyers adatok (akár több ezerszeresére is duzzadhatnak). Ez nemcsak a tárolást és a hálózati forgalmat terheli, de metaadat-analízisre is lehetőséget adhat.
  4. Funkcionalitásbeli korlátok: A jelenlegi FHE sémák alapvetően aritmetikai műveletekre (összeadás, szorzás) vannak optimalizálva. A nem polinomiális függvények (pl. ReLU aktivációs függvény egy neurális hálóban) közelítése bonyolult és pontatlan lehet, ami a modell teljesítményét rontja. Egy támadó kihasználhatja ezeket a pontatlanságokat.

Mire jó az AI-ban? (az erősségek)

A kihívások ellenére a HE forradalmasíthatja a biztonságos AI-t:

  • Privacy-Preserving Machine Learning (PPML): Lehetővé teszi, hogy egy szolgáltató modellt tanítson vagy inferenciát végezzen a felhasználók adataiból anélkül, hogy valaha is hozzáférne a nyers adatokhoz. Ez ideális orvosi, pénzügyi vagy más érzékeny területeken.
  • Biztonságos felhőalapú számítások: A vállalatok kiszervezhetik a számításokat a felhőbe anélkül, hogy megbíznának a felhőszolgáltatóban. A szolgáltató csak a titkosított adatokat látja, a számításokat elvégzi, és a titkosított eredményt küldi vissza.
  • Biztonságos lekérdezések: Egy kliens titkosítva küldhet egy lekérdezést egy adatbázisnak, amely a teljes titkosított adatbázison végrehajtja a keresést, és csak a szintén titkosított találatot küldi vissza.

Gyakorlati betekintés: Pszeudokód egy egyszerű művelethez

Hogy kézzelfoghatóbbá tegyük a folyamatot, nézzünk egy egyszerű pszeudokódot, ami két titkosított szám összeadását mutatja be egy FHE könyvtár (pl. SEAL) logikája alapján.


# Pszeudokód a homomorf összeadáshoz

# --- Kliens oldalon ---

# 1. Kontextus és kulcsok generálása
params = FHE.Parameterek(biztonsagi_szint=128, ...)
kontextus = FHE.Kontextus(params)
kulcspar = FHE.KulcsGeneralas(kontextus)
nyilvanos_kulcs = kulcspar.nyilvanos
titkos_kulcs = kulcspar.titkos

# 2. Adatok titkosítása a nyilvános kulccsal
szam1_nyers = 10
szam2_nyers = 25
szam1_titkos = FHE.Titkosit(szam1_nyers, nyilvanos_kulcs)
szam2_titkos = FHE.Titkosit(szam2_nyers, nyilvanos_kulcs)

# A kliens elküldi a 'szam1_titkos' és 'szam2_titkos' adatokat a szervernek.

# --- Szerver oldalon ---

# 3. Művelet végrehajtása a titkosított adatokon
# A szervernek nincs hozzáférése a titkos kulcshoz!
eredmeny_titkos = FHE.Osszead(szam1_titkos, szam2_titkos)

# A szerver visszaküldi az 'eredmeny_titkos' adatot a kliensnek.

# --- Ismét a kliens oldalon ---

# 4. Az eredmény visszafejtése a titkos kulccsal
eredmeny_nyers = FHE.Visszafejt(eredmeny_titkos, titkos_kulcs)

# 5. Ellenőrzés
print(f"Az eredmény: {eredmeny_nyers}") # Várt kimenet: Az eredmény: 35
assert eredmeny_nyers == szam1_nyers + szam2_nyers
 

Erőteljes, de rétegelt eszköz

A homomorf titkosítás rendkívül ígéretes technológia, amely alapjaiban változtathatja meg, hogyan gondolkodunk az adatbiztonságról az AI korában. Ugyanakkor ez sem általános csodaszer. 

A jelenlegi teljesítménybeli korlátok és a komplexitás miatt leginkább olyan speciális, magas kockázatú környezetekben alkalmazható, ahol az adatvédelem mindenek felett áll. AI Red Teamerként ismernünk kell a működését, hogy felismerjük a gyenge pontjait, és védekezőként pedig tudnunk kell, mikor és hogyan érdemes bevetni ezt a hatékony, de erőforrás-igényes eszközt.

Míg a HE azt a problémát oldja meg, hogy egy fél számításokat végezhessen egy másik fél titkosított adatain, felmerül a kérdés: mi történik, ha több, egymásban nem bízó fél szeretne közösen elvégezni egy számítást anélkül, hogy felfednék a saját bemeneti adataikat egymás előtt? Erre ad választ a következő fejezetben tárgyalt biztonságos többszereplős számítás (Secure Multi-Party Computation).