Homomorf Titkosítás az MI-ben: Hogyan végezzünk számításokat titkosított adatokon?

2025.10.17.
AI Biztonság Blog

Homomorf Titkosítás az MI-ben: Hogyan végezzünk számításokat titkosított adatokon?

Képzeld el a következő, cseppet sem életszerűtlen forgatókönyvet. Van egy startupod, amely egy forradalmi, MI-alapú orvosi diagnosztikai modellt fejlesztett ki. Képes megjósolni a rák korai stádiumát mellkasröntgenekből, elképesztő pontossággal. A kórházak imádnák, de van egy bökkenő. Egyetlen kórház sem fogja a betegei legérzékenyebb, legintimebb adatait – a röntgenfelvételeket – feltölteni a te csillogó, felhőalapú szerveredre. Még akkor sem, ha megesküszöl az összes létező ISO tanúsítványra.

És igazuk van. Az adatbiztonságban az alapfeltevés mindig ez: a szerver előbb-utóbb kompromittálódni fog. Nem az a kérdés, hogy ha, hanem hogy mikor.

Kapcsolati űrlap

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

Szóval, mit teszel? Hogyan tudná a modelled elemezni az adatokat anélkül, hogy valaha is látná azokat? Hogyan végezhetsz számításokat egy olyan információn, ami a te rendszered számára csak értelmetlen, titkosított adathalmaz?

Ez hangzik a kriptográfia Szent Gráljának, igaz? Pedig létezik. A neve: homomorf titkosítás.

A bezárt doboz, amin mégis dolgozhatsz

A legtöbb titkosítási eljárás úgy működik, mint egy tökéletesen záródó, átláthatatlan páncélszekrény. Beteszed a dokumentumot, bezárod, és onnantól kezdve az érinthetetlen. Ahhoz, hogy bármit is kezdj vele – elolvasd, módosítsd, elemezd –, ki kell nyitnod a széfet. És abban a pillanatban, hogy kinyitod, a tartalom sebezhetővé válik.

A homomorf titkosítás (Homomorphic Encryption, HE) más. Ez nem egy páncélszekrény. Ez inkább egy speciális, lezárt, átlátszó kesztyűs doboz (glove box), amilyet a vegyi laborokban látsz. Beteszed a dobozba a legféltettebb kincsedet – mondjuk egy összerakásra váró Lego modellt. Bezárod, kulcsra zárod, a kulcsot pedig elteszed a zsebedbe.

A doboz oldalán van két beépített, strapabíró gumikesztyű. Bárki odajöhet, bedughatja a kezét a kesztyűkbe, és a dobozon belül manipulálhatja a tárgyakat. Összerakhatja a Lego modellt. De soha, egyetlen pillanatra sem tudja kinyitni a dobozt, vagy kivenni belőle a legókat. Amikor végzett, az eredmény – a kész Lego modell – biztonságban, a lezárt dobozon belül marad. Csak te, a kulcs birtokosa, tudod kinyitni és kivenni a végeredményt.

Ez a homomorf titkosítás lényege. Lehetővé teszi, hogy egy harmadik fél (a felhőszolgáltató, a te MI modelled) matematikai műveleteket végezzen a titkosított adataidon (ciphertext) anélkül, hogy előbb visszafejtené azokat. A művelet eredménye is egy titkosított adat lesz, amit csak te, a privát kulcs birtokosa tudsz visszafejteni.

Lezárt, Homomorf Környezet Műveletek (pl. MI inferencia) E(A) (Titkosított adat) E(B) (Titkosított adat) Számítás E(A+B) (Titkosított eredmény) Privát kulcs (csak nálad)

A „homomorf” szó a matematikából jön, és struktúramegőrző leképezést jelent. A mi esetünkben ez azt jelenti, hogy a titkosított adatokon végzett művelet (pl. összeadás) eredménye megegyezik azzal, mintha az eredeti, nyílt adatokon végeztük volna el a műveletet, majd az eredményt titkosítottuk volna.

Képlettel, ami egyszerűbb, mint amilyennek hangzik:

Encrypt(A) ऑपरेशन Encrypt(B) = Encrypt(A művelet B)

Például egy összeadást támogató homomorf séma esetén:

Összeadás(Encrypt(5), Encrypt(10)) eredménye egy új titkosított adat, amit ha visszafejtesz a kulcsoddal, pontosan 15-öt kapsz.

A lényeg: a szerver elvégzi a számítást, de fogalma sincs róla, hogy 5-öt és 10-et adott össze. Számára ez csak két random karaktersorozat volt, amiken egy meghatározott algoritmust futtatott le.

Nem minden homomorf titkosítás egyforma: A család

Az ötlet már a 70-es években felmerült, de évtizedekig csak egy elméleti álom volt. Az igazi áttörést Craig Gentry 2009-es disszertációja hozta el. Azóta a terület robbanásszerűen fejlődik. Fontos megérteni, hogy a „homomorf titkosítás” egy gyűjtőfogalom. Különböző típusai léteznek, eltérő képességekkel és – ami még fontosabb – eltérő költségekkel.

1. Részlegesen Homomorf Titkosítás (Partially Homomorphic Encryption – PHE)

Ezek a rendszerek a legegyszerűbbek és leggyorsabbak. A trükk az, hogy egyetlen típusú matematikai műveletet (vagy összeadást, vagy szorzást) tudnak elvégezni, de azt akárhányszor.

  • Additív homomorfizmus: Támogatja az összeadást. A híres Paillier-kriptorendszer ilyen. Tökéletes például szavazatszámlálásra: mindenki titkosítja a szavazatát (pl. 1-et, ha a jelöltre szavaz, 0-t, ha nem), a rendszer összeadja a titkosított értékeket, és a végén csak a végeredményt (a titkosított összes szavazatot) kell visszafejteni. Senki nem tudja meg, ki kire szavazott, csak a végső eloszlás derül ki.
  • Multiplikatív homomorfizmus: Támogatja a szorzást. A „sima” RSA ilyen tulajdonságokkal bír.

A PHE gyors és hatékony, de a képességei korlátozottak. Egy komplex MI modellhez, ahol összeadások és szorzások ezrei váltogatják egymást, ez édeskevés.

2. Valamelyest Homomorf Titkosítás (Somewhat Homomorphic Encryption – SWHE)

Ez már egy szinttel feljebb van. Az SWHE sémák mind az összeadást, mind a szorzást támogatják. Itt jön a „de”. Csak korlátozott számú műveletet végezhetnek el egy adaton.

Hogy miért? Mert minden egyes művelet – különösen a szorzás – egy kis „zajt” ad a titkosított adathoz. Képzeld el, mintha minden számítás után egyre halkabban súgnák tovább az információt egy zajos szobában. Egy idő után a zaj elnyomja a hasznos jelet, és a visszafejtés lehetetlenné válik. Az SWHE rendszereknek van egy előre meghatározott „zajküszöbük”. Amíg a felhalmozódott zaj ez alatt van, minden rendben. Ha túllépi, az adat használhatatlanná válik.

3. Teljesen Homomorf Titkosítás (Fully Homomorphic Encryption – FHE)

Ez a csúcs, a Szent Grál. Az FHE rendszerek tetszőleges számú összeadást és szorzást képesek elvégezni a titkosított adaton, elméletileg végtelen mélységben. De hogyan győzik le a zaj problémáját?

A megoldás Gentry zseniális trükkje, a bootstrapping.

A bootstrapping egyfajta „zaj-reset”. Amikor a titkosított adatban a zaj már veszélyesen közelít a kritikus szinthez, a rendszer fogja ezt a „zajos” titkosított adatot, és egy másik kulccsal homomorfikusan „újratitkosítja” saját magát. Ez a folyamat mintegy „kitisztítja” a zajt, visszaállítva a zajküszöböt anélkül, hogy közben visszafejtené az adatot.

Az analógiánkhoz visszatérve: képzeld el, hogy a Lego modellt egy tengeralattjáróban rakod össze, aminek véges a levegőellátása (ez a zajküszöb). Mielőtt elfogyna a levegő, a tengeralattjáró legénysége egy apró, belső 3D nyomtatóval (ez a bootstrapping kulcs) kinyomtat egy vadonatúj, kisebb tengeralattjárót, aminek tele van a levegőtartálya. Átszállnak ebbe, és folytatják az útjukat. A küldetés (a számítás) folytatódhat anélkül, hogy valaha is a felszínre (visszafejtésre) kellett volna jönniük.

FHE Bootstrapping: A „Zaj-Reset” Ciphertext E(A) (Magas zajszint) Zaj: 90% Bootstrapping (Homomorf dekódolás & újratitkosítás) Ciphertext E'(A) (Alacsony zajszint) Zaj: 10% A műveletek növelik a „zajt”. Mielőtt a zaj elérné a kritikus szintet, a bootstrapping létrehoz egy új, „tiszta” titkosított verziót ugyanabból az adatból. Ez lehetővé teszi a számítások folytatását.

Zseniális, nem? De ahogy sejtheted, ennek a varázslatnak ára van. A bootstrapping egy rendkívül, de rendkívül számításigényes művelet.

Gyakorlati összehasonlítás

Lássuk egy táblázatban, hogy jobban átlásd a különbségeket.

Tulajdonság PHE SWHE FHE
Támogatott műveletek Csak 1 típus (vagy +, vagy *) Összeadás és szorzás is Összeadás és szorzás is
Műveleti mélység Korlátlan (az egy típusra) Korlátozott (a zajküszöb miatt) Gyakorlatilag korlátlan (bootstrapping)
Teljesítmény Viszonylag gyors Lassabb Extrém lassú (főleg a bootstrapping)
Ciphertext mérete Nagyobb, mint a plaintext Jelentősen nagyobb Hatalmas (akár 1000x-es, 10000x-es növekedés)
Tipikus felhasználás Titkos szavazás, privát statisztikák Egyszerűbb MI modellek, ahol a műveleti mélység ismert Komplex számítások, „Privacy as a Service”

A valóság pofonja: Miért nem használjuk ezt mindenhol?

Ha az FHE ennyire fantasztikus, miért nem ez az alapértelmezett minden felhőalapú szolgáltatásnál? Miért nem fut minden homomorf titkosítással?

Mert a teljesítménybeli kompromisszum brutális. Nem kicsit, hanem letaglózóan.

  1. Lassúság: Egy homomorf művelet akár 1000-szer, 1,000,000-szor vagy még lassabb lehet, mint a nyílt adaton (plaintext) végzett megfelelője. A bootstrapping pedig önmagában is egy rendkívül drága mulatság. Egy olyan MI modell tanítása, ami plaintext adaton órákig tartana, FHE-vel hetekig vagy hónapokig is elhúzódhat.
  2. Ciphertext-expanzió: A titkosított adat sokkal, de sokkal nagyobb, mint az eredeti. Egyetlen bitnyi információ titkosítása kilobájtokat vagy akár megabájtokat is felemészthet. Ez komoly terhet ró a hálózati sávszélességre és a tárolókapacitásra.
Ciphertext Expanzió Plaintext Adat 1 (pl. 1 bit) FHE Titkosítás Homomorf Ciphertext 01101…10101101010010110110010101101100… 11010…10101101010010110110010101101100… 00110…10101101010010110110010101101100… 10111…10101101010010110110010101101100… (pl. több megabájt)

Ez olyan, mintha egy egyszerű csavar behajtásához nem egy csavarhúzót, hanem egy komplett, daruval mozgatható ipari robotkart kellene használnod. Megoldja a feladatot, de a költségek és a bonyolultság csillagászatiak.

Ahol az MI és a HE találkozik: A gyakorlati alkalmazások

A fenti korlátok ellenére vannak területek, ahol a homomorf titkosítás nem csak egy menő elméleti koncepció, hanem egy valós üzleti és biztonsági igényre adott válasz. Ez a terület a Privacy-Preserving Machine Learning (PPML).

Forgatókönyv 1: Titkosított Inferencía (AI as a Service)

Ez a cikk elején vázolt orvosi diagnosztikai probléma. A felhasználó vagy egy intézmény (a kórház) rendelkezik az érzékeny adattal. A szolgáltató (a te startupod) rendelkezik a betanított, értékes MI modellel. A cél, hogy a modell fusson le az adaton anélkül, hogy a szolgáltató hozzáférne a nyers adathoz, a felhasználó pedig a modell belső működéséhez.

A folyamat a következő:

  1. Kliens: A kórház fogja a páciens röntgenfelvételét, és a te publikus kulcsoddal homomorfikusan titkosítja.
  2. Küldés: A titkosított képet elküldi a te szerveredre. Ez csak egy nagy adathalmaz, értelmezhetetlen számsor.
  3. Szerver: A szervereden futó MI modell elvégzi az inferenciát közvetlenül a titkosított adaton. A modell minden egyes rétege (konvolúció, összeadás, stb.) homomorf műveletekként van implementálva.
  4. Eredmény: A végeredmény (pl. egy valószínűségi érték) szintén titkosítva jön létre.
  5. Visszaküldés: A szerver visszaküldi a titkosított eredményt a kórháznak.
  6. Kliens: A kórház a saját privát kulcsával visszafejti az eredményt, és megkapja a diagnózist: „98% esély rosszindulatú elváltozásra”.

Ebben a láncban a te szervered soha, egyetlen pillanatra sem látta a páciens adatait. A kórház pedig soha nem látta a modelled súlyait vagy architektúráját. Win-win.

KLIENS (pl. Kórház) Érzékeny Adat (Röntgenfelvétel) Titkosítás (Publikus Kulcs) E(Adat) SZERVER (AI Szolgáltató) MI Modell (Homomorf műveletek) ReLU Conv Pool 1. Titkosított adat küldése 2. Titkosított eredmény küldése E(Eredmény) Visszafejtés (Privát Kulcs) „98% esély”

A probléma a nem-linearitással

A fenti folyamat gyönyörűen hangzik, de van egy komoly technikai akadály. A homomorf titkosítás alapvetően polinomok kiértékelésére (összeadásokra és szorzásokra) lett kitalálva. A modern neurális hálók viszont tele vannak nem-lineáris aktivációs függvényekkel, mint a ReLU (Rectified Linear Unit) vagy a Sigmoid.

Egy ReLU függvény pofonegyszerű: f(x) = max(0, x). De ez az egyszerű összehasonlítás (nagyobb-e, mint nulla?) egy rémálom homomorf környezetben. Nincs rá natív, hatékony művelet. A kutatók trükkös polinom-approximációkkal (pl. Csebisev-polinomokkal) próbálják helyettesíteni ezeket a függvényeket, de ez tovább növeli a számítási komplexitást és a zajt, valamint pontatlanságot vihet a modellbe.

Ez az egyik legaktívabb kutatási terület jelenleg: hogyan lehet hatékonyan megvalósítani a nem-lineáris műveleteket FHE alatt?

A Red Teamer szemszöge: Hogyan lehet ezt feltörni?

Oké, a matek szép és jó. De te és én tudjuk, hogy minden rendszer annyira erős, mint a leggyengébb láncszeme. A homomorf titkosítás sem egy sebezhetetlen csodafegyver. Hol vannak a támadási felületek?

  • Oldalcsatorna-támadások (Side-channel attacks): A kriptográfia klasszikus réme. Lehet, hogy a matematikai művelet biztonságos, és az adat végig titkosítva marad. De mi van a fizikai megvalósítással? Az MI modell futása közben a szerver processzorának energiafogyasztása, a memóriahozzáférési mintázatok, a számítások pontos időtartama mind-mind információt szivárogtathatnak ki. Például, ha egy homomorf „elágazás” (ami egy approximált nem-lineáris függvény) egyik ága jelentősen több műveletet igényel, a futási idő mérésével az attacker következtethet arra, hogy melyik ág futott le, és így információt nyerhet a titkosított adat egy bitjéről.
  • Implementációs hibák: A legkifinomultabb kriptográfiai séma is fabatkát sem ér, ha a szoftveres implementációja hibás. Egy buffer overflow, egy rosszul kezelt memória-allokáció, egy gyenge véletlenszám-generátor – és a milliárd dolláros matek megy a kukába. A homomorf titkosítási könyvtárak rendkívül komplex szoftverek, a hibalehetőség pedig óriási.
  • Kulcsmenedzsment: A rendszer Achilles-sarka. Ha a kliens (a kórház) privát kulcsa kompromittálódik, vége a játéknak. Az összes múltbeli, jelenlegi és jövőbeli adat visszafejthetővé válik. Hogyan tárolják a kulcsot? Ki fér hozzá? Hogyan cserélik le biztonságosan? Ezek a „unalmas” operációs kérdések döntik el egy ilyen rendszer sorsát.
  • Rosszindulatú modell / paraméterek: Mi van, ha a szolgáltató szervere nem csak passzívan végzi a számítást, hanem aktívan próbál szabotálni? Elméletileg lehetséges olyan speciálisan preparált modellparamétereket (súlyokat) használni, amelyek interakcióba lépnek a titkosított bemeneti adattal, és a titkosított kimenetben szivárogtatnak információt, amit csak a szolgáltató tud értelmezni. Ez egy fejlett, de valós fenyegetés.
  • Protokoll szintű támadások: A rendszer nem csak egy FHE sémából áll. Van egy protokoll, ami leírja, hogyan kommunikál a kliens és a szerver. Ha ebben a protokollban van hiba – például a rendszer rosszul kezeli a hibásan formázott ciphertexteket –, az kihasználható lehet információkinyerésre.

Soha ne felejtsd el: nem elég, hogy a kriptográfia tökéletes. A rendszer egészének, a kódtól a hardverig, a protokolltól az emberi tényezőig, biztonságosnak kell lennie. És ez sosem egyszerű.

Az eszköztár: Mivel vágj neki?

Ha idáig eljutottál, és még mindig érdekel a téma, akkor valószínűleg viszket a tenyered, hogy kipróbáld. Szerencsére számos nyílt forráskódú könyvtár létezik, amelyekkel elkezdheted a kísérletezést. De óvatosan! Ezek nem „plug-and-play” megoldások egy webshophoz. Mély szakértelmet igényelnek.

Könyvtár Fejlesztő Nyelv Implementált séma Főbb jellemzők
Microsoft SEAL Microsoft Research C++, C#/.NET, Python wrapper BFV, CKKS Jól dokumentált, aktívan fejlesztett. A CKKS séma kiváló valós számokon végzett műveletekhez (ideális MI-hez).
HElib IBM Research C++ BGV, CKKS Az egyik legrégebbi, legkiforrottabb FHE könyvtár. Nagyon erős, de meredekebb a tanulási görbéje.
PALISADE NJIT, Duality Technologies C++ BFV, BGV, CKKS, FHEW, TFHE Moduláris felépítésű, többféle sémát támogat. Nagy hangsúlyt fektet a sebezhetőségek elleni védelemre.
TFHE Inria, Zama, és mások C, C++ TFHE Rendkívül gyors bootstrappingre specializálódott, ami ideálissá teszi logikai kapuk és lookup table-ök kiértékelésére.

Konklúzió: A jövő, ami már a küszöbön áll

A homomorf titkosítás nem egy varázspálca, ami megoldja az összes adatvédelmi problémánkat. Jelenleg egy erősen specializált eszköz, egy nehéz, lassú, de elképesztően erős pajzs, amit csak a legérzékenyebb adatok védelmére és a legkritikusabb számítások elvégzésére érdemes bevetni.

Azonban a fejlődés megállíthatatlan. A sémák egyre hatékonyabbak, a könyvtárak egyre használhatóbbak, és már léteznek FHE-gyorsító hardveres megoldások (ASIC, FPGA) is, amelyek több nagyságrenddel képesek megdobni a teljesítményt. Ami ma még a kutatólaborok világa, 5-10 év múlva a felhőplatformok egy prémium, „ultra-secure” szolgáltatása lehet.

Fejlesztőként, mérnökként, vezetőként nem kell holnap FHE specialistává válnod. De tudnod kell, hogy létezik. Értened kell a benne rejlő potenciált és a vele járó kompromisszumokat. Mert eljön majd a nap, amikor egy ügyfél, egy partner, egy szabályozó hatóság azt a kérdést teszi fel, amire a cikk elején kerestük a választ: „Hogyan garantálod, hogy soha, semmilyen körülmények között nem látod az adataimat?”

A kérdés már csak az: készen állsz a válasszal?