A Magyar Tudományos Akadémia folyóirata. Alapítva: 1840
 

KEZDŐLAP    ARCHÍVUM    IMPRESSZUM    KERESÉS


 A MODERN KRIPTOGRÁFIA PARADIGMÁI

X

Vajda István

az MTA doktora, egyetemi tanár, Budapesti Műszaki és Gazdaságtudományi Egyetem

Villamosmérnöki és Informatikai Kar Hálózati Rendszerek és Szolgáltatások Tanszék

vajda(kukac)hit.bme.hu

 

Internetes vásárlás vagy banki ügyintézés során már mindenki futtatott kriptográfiai alapú algoritmust az internetes böngészőjét használva. Egészen biztosan mindenki hallott már rejtjelezésről (esetleg titkosírás néven irodalmi olvasmányokból), mindenki naponta használ jelszóalapú hitelesítési algoritmust, illetve akár a napi sajtó technikai rovataiban is olvashatott a digitális aláírásról.

A hétköznapokban használt módszerek nagy része mögött tipikusan (sajnos) nem áll bizonyított garancia, biztonságukat a tervezők nagy gyakorlati tapasztalata garantálta. Ez azt jelenti, hogy a konstruált algoritmus (kriptográfiai primitív, illetve protokoll1) analízise a tapasztalatok szerinti, lehetségesnek vélt támadási módszerek „listájával” szembeni, legtöbbször informális ellenőrzést jelenti. Az ún. modern kriptográfia formális matematikai modellben történő formális bizonyítást céloz meg. Innen származik ezen irányzat másik neve: bizonyított biztonságú kriptográfia. A formális kezeléshez matematikai modellre van szükség. Ennek a modellnek tudnia kell formálisan leírni többek között azt, hogyan definiáljuk egy kriptográfiai algoritmus biztonságosságát, kapcsolatosan a támadó formális modelljét.


Hetven év Shannontól napjainkig


A bizonyított biztonság úttörője Claude Shannon volt. Hetven évvel ezelőtt formalizált, matematikai (információelméleti) modellt adott a szimmetrikus kulcsú rejtjelezés feladatra. Bebizonyította, hogy a one time pad rejtjelező tökéletes abban az értelemben, hogy rejtjelezett üzenethez hozzáférő, a kommunikációs csatornát lehallgató támadó zéró információhoz képes csak jutni, bármekkora számítási kapacitással is rendelkezik (de akkor is, ha a világ végezetéig próbálkozhatna a megoldással). Ez a rejtjelező roppant egyszerű, minden egyes továbbítandó üzenetbithez véletlenül sorsolt kulcsbitet adunk modulo 2, majd a távoli fél ugyanezt a műveletet végzi el a vett bittel, ahol feltétel, hogy azonos kulcsbiteket használjon a küldő és vevő fél.2 A módszer hátránya pontosan ezen utóbbi feltétel: ugyanis a véletlen kulcsbiteket az egyik fél generálja, és azt biztonságosan el kell juttatni a másik félhez, azaz valamiféle biztonságos csatornának kell léteznie a két fél között. Ha pedig van ilyen csatorna, akkor megkérdezhetnénk, hogy eleve miért nem azon továbbítjuk magát az üzenetet. Egy gyakorlati szcenárió, amely mellett mégiscsak értelmes a feladat, és kihasználható az említett tökéletesség tulajdonság, az, amikor időben szétválik a kulcsmegegyezés és a rejtjelezés feladat: például a két fél találkozik és kulcsot egyeztet, majd valamely későbbi időpontban ezen kulccsal rejtjelezett üzenetváltást végez. Vegyük észre azt is, hogy a kicserélt kulcsbitek számát nem haladhatja meg a rejtjelezetten küldendő üzenetbitek száma, ami nyilván korlátozza a biztonságosan küldhető üzenetbitek számát. Speciális feladatokban használható csak ez a megoldás, kommerciális tömeges feladatokra nem alkalmas.

Sokáig váratott magára, amíg a bizonyított biztonságú kriptográfiai primitívek következő generációja megszületett. Harmincöt év telt el Shannon úttörő munkáját követően (az 1980-as évek kezdetéig), amikor algoritmuselméleti (számítástudományi) alapokon megszülettek az új matematikai modellek, amelyek alappillérét az egyirányú függvény jelentette. Innen számítjuk a modern kriptográfia indulását. A dolog informális lényegét tekintve arról van szó, hogy Shannon számítási komplexitás korlát nélküli támadója helyett egy reálisabb, csak számítási komplexitásában korlátozott támadó algoritmust futtatni képes ellenfelet tételezünk fel. Konkrétan, véletlen elemeket is felhasználható, az adott feladat biztonsági paramétere bitméretében polinomiális futási idejű (PPT – Probabilistic Polinomial Time), de egyébként tetszőleges támadó algoritmusról van szó. Például a biztonsági paraméter megfelelően nagyra választott értéke mellett kizárjuk, hogy kimerítő keresést végezzen a támadó. A nevezett egyirányú függvény biztosítja (informális megfogalmazásban), hogy a támadó ne tudja megoldani azt a feladatot, hogy a függvény képtere egy tetszőleges eleméhez megadjon illeszkedő ősképtérbeli elemet. Ha már van egyirányú függvényünk, akkor arra építkezve konstruálhatunk bizonyított biztonságú álvéletlen generátort, álvéletlen függvényt és álvéletlen permutációt, ahol az utóbbi a bizonyítható biztonságú szimmetrikus kulcsú blokk rejtjelező modellje. Itt az álvéletlen jelző azt jelenti, hogy a fentiekben említett korlátozott komplexitású algoritmussal vizsgálva az input–output viselkedést, az nem különböztethető meg a valódi véletlen algoritmusétól, például az álvéletlen generátor outputja az azonos bithosszúságú pénzfeldobás-sorozattól. A biztonság bizonyítások technikai módszere az algoritmikus redukció, indirekt bizonyításon belül: mindegyik konstrukció egy, a támadó számára feltételezetten „nehéz” feladatra épül, és azt bizonyítjuk be, hogy amennyiben a konstrukciónk támadható lenne, akkor a nehéz feladat is támadható lenne. Ilyen standard feladat például az egész szám faktorizáció vagy a diszkrét logaritmus számítása. A korszak legnevesebb képviselői között megemlítjük Andrew C. Yao, Leonid Levin, Oded Goldreich, Shafi Goldwasser, Silvio Micali, Michael Luby, Charles Rackoff és Phillip Rogaway nevét. Valamennyien a számítástudomány világhírű képviselői.

A harmadik hullám a 2000-es évekre és napjainkra tevődik. Az elődök munkájára épül, de alapvetően új megközelítést igényelt a kriptográfiai protokollok bizonyított biztonságú módszertana, az univerzális kompozíciós módszertan (UC – Universal Composability Framework) (Pfitzman – Waidner, 2000; Canetti, 2000). Ez a ma ismert legerősebb garanciákat nyújtó technológia a kriptográfiai protokollok moduláris tervezésére és biztonsági analízisére. Ezen módszertan erős támadói környezet mellett kívánja garantálni az adott feladathoz tartozó ideális funkcionalitás realizálását. A szokásos informális analíziseken értelemszerűen túlmutat azzal, hogy bizonyított garanciát nyújt. Más bizonyításos módszertanokkal szemben pedig alapvetően abban, hogy tetszőleges konkurrens futtatási környezetben garantálja az adott protokollpéldány biztonságos szeparálását, immunitását az „ellenséges”, támadó által vezényelt interakciókkal szemben. És mindezt úgy garantálja, hogy ez egy UC-biztonságosnak bizonyított protokoll, moduláris elemként felhasználható tetszőleges más protokoll konstruálásánál, mondhatni ez egy biztonságos, algoritmikus „plug-in technika”. Ennek a máig is tartó hullámnak világhírű képviselői közül megemlítjük Ran Canetti, Birgit Pfitzmann, Hugo Krawczyk, Yehuda Lindell, Boaz Barak és Ivan Damgaard nevét.

Hangsúlyozni kívánjuk, hogy a kriptográfia tudománya igen széles terület, és abban egy szelet a bizonyított biztonság témaköre. A kriptográfia teljességét tekintve jeles hazai képviselői közül megemlítjük Buttyán Levente (protokoll konstrukciók), Csirmaz László (kombinatorika), Ligeti Péter (számítástudomány), Nemetz Tibor (információelmélet), Pethő Attila (elliptikus görbék) és Szabó István (matematikai statisztika) nevét.

E rövid történeti áttekintés után visszakanyarodunk a címben megjelölt témához. Meggyőződésünk, hogy a dolgok közepébe ugrással tudjuk ezt leghatékonyabban megtenni, ebből profitálhat legtöbbet az olvasó, és hogy egy távoli tudományterületet művelő kutató is megérezze, melyek a modern kriptográfia mozgatórugói. E célból néhány alapprobléma lényegét mutatjuk be tömören és a formalizmus minimumon tartása mellett, amelyekre adott válaszok szorosan kapcsolódtak a nevezett tudományterület fejlődéséhez. A következő problémákat emeljük ki:

• Egymásban nem bízó két távoli fél képes-e megbízható közös számítást végezni egymástól eltitkolt (féltett) információikon, ahol a számítás mindkettőjük által megismerendő végeredménye függ a mindkét fél által birtokolt információtól?

• Lehet-e tetszőleges jövőbeli PPT támadó algoritmus ellen biztonsági garanciát nyújtani?

• Önmagában biztonságosnak minősített – különböző tervezőtől származó – két algoritmus kompozíciójának biztonsága garantálható-e?

A tengernyi fontos referencia közül, inkább csak szemelvényként néhányat emelünk ki, kiindulópontokat adva a mélyebben érdeklődő olvasónak. Nem szerénytelenség miatt szerepelnek a szerző saját, alapvetően alkalmazásorientált friss publikációi (Vajda, 2013a,b, 2014, 2015a,b) talán aránytalanul nagy számban e rövid referencialistán, csak némi jogosítvány kívánt felmutatni arra, hogy a taglalt témában itt megszólaljon.


Lehet-e egymástól titkolt információkon megbízható közös számítást végezni?


A modern (bizonyított biztonság igényű) kriptográfia kiinduló alapfeladata a biztonságos függvénykiszámítás problémája volt (Goldreich et al., 1987; Goldreich, 2007; Yao, 1982).

A feladat az, hogy távoli, egymással kommunikációs csatornákon kapcsolatban levő, egymásban meg nem bízó N résztvevő közösen kiszámítson egy y = F(x1,…,xN) függvényt, ahol kiindulásképp az i-edik résztvevő és csak ő ismeri az xi inputot, i = 1,…N. Ha a résztvevők támaszkodhatnának egy megbízható harmadik félre, akkor a feladat realizációja arra egyszerűsödne, hogy az egyes résztvevők a megbízható harmadik félnek biztonságos csatornán átadnák titkos információikat, majd a megbízható fél elvégezné a számítást, és a végeredményt kiosztaná a résztvevők között. Talán a legegyszerűbb ilyen függvény két bit XOR-ja,3 azaz N = 2, y = x1+x2 mod 2, x1, x2{0,1} (1. ábra). Például két résztvevő közösen szeretne egy y véletlen bitet generálni, saját, független generálású x1, illetve x2 véletlen bitjéből.

 

 

 

1. ábra • Két bit XOR-jának kiszámítása

megbízható harmadik fél esetén

 

 

Tegyük fel, hogy nem támaszkodhatunk harmadik félre. Képzeljük el, hogy Aliz és Robi válnak, és pénzfeldobással, telefonon keresztül kommunikálva szeretnének dönteni közös vagyontárgyaik sorsáról XOR-alapon. Megállapodnak abban a szabályban, hogy ha y = 1 az eredmény, akkor Aliz, ellenkező esetben Robi a nyertes. Kicsit is belegondolva, a probléma az, hogy egyik résztvevő se közölheti a másik féllel elsőként a bitjét, mert akkor a másik hazudhat, hogy a végeredményt a saját javára fordítsa. Például, ha őszinte Aliz pénzfeldobásának eredménye 1, és ezt közli Robival, erre Robi azt hazudhatná válaszként, hogy az ő pénzfeldobásának eredménye is 1, így y = 1+1 = 0 (mod 2) okán Robi biztossá tehetné a győzelmét (ami becsületessége esetén csak 0,5 valószínűségű lehetne).

A feladat bizonyított biztonsággal megoldható. Manuel Blum protokollja az egyik indító alapcikke a modern kriptográfiának (Blum, 1981). A dolog lényegét tekintve, Blum bevezetett egy érdekes részfeladatot, az ún. bitelkötelezés feladatot. Ez azt jelenti a fenti példánkban, hogy Aliz elküld egy bitsorozatot Robinak, amivel elkötelezi magát x1 bitje mellett anélkül, hogy Robi ebből megtudhatná a kérdéses bitet. Ezután Robi elküldheti nyíltan x2 bitjét Aliznak, s legvégül Aliz „kinyitja” az elkötelezés információt, anélkül, hogy csalhatna x1 értéke felől, s ezzel Robi is megismeri az x1 bitet. Az eredeti biztonságos XOR-számítás feladatot így a biztonságos bitelkötelezés feladatra redukáltuk, amely utóbbira azóta ismerünk biztonságos realizációkat.


Biztonsági garancia tetszőleges jövőbeli támadással szemben?


Ahogy fentebb említettük, a Shannon által analizált one time pad rejtjelező tökéletes védelmet biztosít olyan támadóval szemben, amely lehallgatva a kommunikációs csatornát, olvashatja a rejtjelezett biteket. Ezen feltétel mellett a tökéletes védelem tetszőleges jövőbeli támadó algoritmussal szemben is fennáll. Azonban napjaink hálózati támadója összehasonlíthatatlanul erősebb, mint az egyszerű passzív (lehallgató) típusú támadó.

A támadó a résztvevők közti minden egyes kommunikációs csatornán jelen lehet (MIM – Man-In-the-Middle támadó), lehallgathatja, időlegesen tárolhatja, késleltetheti, aktívan módosíthatja a csatornán haladó valamennyi üzenetet (2. ábra).

 

 

 

2. ábra • Man-in-the-Middle támadó

 

Támadás azonban nemcsak a kommunikációs csatornát érheti, hanem a résztvevők azon eszközeit (például számítógépét) is, amelyen a biztonsági algoritmusokat (kriptográfiai protokollokat) futtatják. A legerősebb ilyen, ún. korrumpáló támadó a bizánci típusú dinamikus támadó, amely kriptográfiai protokoll futásának bármely pontján dönthet valamely résztvevő (gépe) korrumpálására, és annak eredményeképpen annak pillanatnyi belső állapotát (például titkos kulcsait) megtudhatja, és a korrumpált résztvevő vonatkozásban a protokolltól eltérő tetszőleges algoritmust futtatva vehet részt a protokoll hátralevő lépéseinek végrehajtásában. Ezenfelül a támadó tetszőleges számú protokollpéldányt futtathat a hálózaton a támadásra célba vett protokollpéldánnyal egy időben ugyanabból vagy tetszőleges, akár ártó szándékú protokollból választva a támadó példányokat.

Lehetséges-e ilyen képességű PPT-támadó esetén bizonyított garanciát adni tetszőleges jövőbeli támadási algoritmus mellett? 

 

 

Fentebb említettük, hogy biztonsági bizonyításaink nem klasszikus matematikai bizonyítások, hanem algoritmikus redukciók, ahol általánosan elfogadott feltételezésekkel élünk abban a vonatkozásban, hogy léteznek PPT-támadó számára nem végrehajtható számítási feladatok. Ennek megfelelően, amennyiben ezen feltételezések érvényben maradnak a jövőben is, akkor fennállnak a kérdezett jövőbeli garanciák. Példaként itt a kvantumszámítógéppel történő támadás jövőbeli lehetőségére utalok, amely ha valóban konkrét veszéllyé válik, az több, jelenleg még nehéznek sejtett feladatot könnyen megoldhatóvá tenne, és végveszélybe sodorná számos, ma használatban lévő kriptográfiai protokollunkat (ilyen feladatok az egész szám faktorizáció, illetve a diszkrét hatványozás).


Részfeladatokra bontás és moduláris építkezés


Minél nagyobb méretű egy protokoll (például a protokoll lépéseinek számában), annál nagyobb feladat biztonságának formális bizonyítása. Ezért törekedni kell a részfeladatokra bontásra, azok önálló analízisére. Azt szeretnénk, hogy önmagukban biztonságosnak minősített elemekből építkezve a kompozíció eredménye is biztonságos maradjon. A modulokból összeálló kompozíció lehet alapvetően soros, párhuzamos vagy – általánosan – ezek keveréke. Például klasszikus soros kompozíció a biztonságos csatornát realizáló protokoll esetére a következő: partnerazonosítás → kapcsolatkulcs-csere → rejtjelezett üzenetcsere. Egy másik tipikus példa, amikor egy főprogram szubrutinjaként fut egy modul, jellemzően egy kriptográfiai primitív (például rejtjelező algoritmus, digitális aláíró algoritmus), amelyhez a futás során többször fordul a résztvevő.

Ennek megfelelően fontos igény és tervezési szempont a modularitás. A megközelítés analóg a programtervezésben megszokott modularitással, ahol az egyes modulok programozói interfészének definiálása a kiindulópont, mert ha ez már megvan, ettől kezdve akár független programozók is fejleszthetik a modul tartalmát, ugyanis az egymáshoz való végső csatlakoztatásuk problémamentes lesz. A kriptográfiai modulok interfésze kapcsán kerül elő két alapvető paradigma: az algoritmikus megkülönböztethetetlenség, valamint a szimulációs paradigma.

Az első izgalmas megállapítás az, hogy akár két „durván” különböző eloszlású valószínűségi változó is lehet megkülönböztethetetlen tetszőleges PPT megkülönböztető algoritmus számára. Analógként képzeljünk el két, apró részleteiben különböző képet, amelyeket távolról nézünk, és nem tudjuk az adott távolságból (a kapcsolatosan adódó „felbontásban”) megkülönböztetni. Az algoritmikus feladatban a felbontás finomságának analógja a megkülönböztetést végző algoritmus komplexitás-korlátja. Konkrét példaként az álvéletlen generátort tekintsük: létezik álvéletlen generátor (PRG), amely egy polinomiális futási idejű determinisztikus algoritmus, és amely egy n bites (valódi) véletlen bináris sorozat inputot (magot) p(n) hosszúságú álvéletlen sorozatra nyújt ki tetszőleges p polinom esetén (Blum – Micali, 1984). Például tekintsünk egy kétszeresen hossznövelő PRG-t, azaz ahol p(n)=2n. Ekkor a pénzfeldobással sorsolt 2n hosszú bináris X sorozat algoritmikusan megkülönböztethetetlen lesz a PRG által generált Y 2n bites álvéletlen sorozattól. Vegyük észre, hogy az utóbbi az összes 2n bites sorozatok 22n elemszámú halmazának csak egy elenyésző 2n méretű részhalmazából veszi értékeit (amennyit n bites maggal generálni tudhatunk). Ugyanakkor ezen X és Y változók valószínűségi eloszlásának (statisztikai) távolsága közel maximális (1-2-n), azaz az eloszlások teljesen eltérők.

Ha azonos feladat végrehajtására tervezett két kriptográfiai modul az interfészén keresztül vizsgálva egymástól algoritmikusan megkülönböztethetet-lennek bizonyul, akkor azokat ekvivalensen felhasználhatónak tekintjük. Az „etalon”, amelytől valamennyi, adott feladatra tervezett biztonságos megvalósításának algoritmikusan megkülönböztethetetlennek kell lennie, az az adott feladat ideálisan biztonságos protokollja. Az ideális protokollban valamennyi résztvevő egy megbízható harmadik félen, az ún. ideális funkcionalitáson keresztül kommunikál (az 1. ábrán láttunk erre példát). Az egyes megvalósításoknak tehát ezt az ideálisan biztonságos protokollt kell emulálniuk, olyan módon, hogy a kétféle végrehajtás (az ideális, illetve a valós) ne legyen algoritmikusan megkülönböztethető. Így jutottunk el az algoritmikus megkülönböztethetetlenségen alapuló szimulációs paradigmához: azt tekintjük biztonságosnak, ami az ideálistól algoritmikusan megkülönböztethetetlen. Egy picit formalizáltabb bemutatáshoz tekintsük a 3. ábrát, ahol a valós és az ideális rendszer sémája látható.

A komponensek a következők: futtató környezet (Z), a protokoll résztvevői (M1,…MN), a támadó (A, illetve S, a valós, illetve ideális rendszerben) valamint az ideális funkcionalitás (F). Az összekötések a kommunikációs kapcsolatokat jelzik. A 3. ábra szaggatott vonala az az interfész, amelyen keresztül Z futtató környezet látja az alatta futó rendszert (valóst vagy ideálisat), tehát Z a résztvevők outputját, valamint a támadó „közléseit” figyeli. A valós rendszerben láthatjuk a MIM-támadót, azaz a résztvevők közti minden kommunikáció rajta keresztül fut. Az ideális rendszer magja az F ideális funkcionalitás, a támadó csak ennek kontrollján keresztül interferálhat az ideális protokoll futásával. Ezek után a konstruált protokoll biztonságossága azt követeli, hogy Z környezet ne tudja megkülönböztetni, hogy az ideális vagy a valós rendszer fut-e alatta. Kissé formalizáltabban:

Pénzfeldobással sorsoljuk ki, hogy a valós vagy az ideális rendszert futtatjuk-e, amely sorsolás eredményéről Z nem tud. Ezután Z környezet kezdje futtatni a kisorsolt rendszert (a protokoll szerinti inputot adva résztvevőknek, illetve a támadónak is adhat induló információt, például a protokoll múltbeli futtatásaiból származó elemeket). Ekkor, ha tetszőleges valós támadó algoritmushoz (A) létezik olyan ideális támadó algoritmus (S szimulátor), hogy semmilyen Z algoritmus nem tudja megkülönböztetni, hogy melyik rendszert futtatja, a realizációt biztonságosnak tekintjük. Az így definiált biztonságosság mögötti intuíció az, hogy a valós támadó minden támadási „sikere” megkülönböztethetetlenül előállítható az ideális rendszerben is, márpedig ezen utóbbi rendszerben az ideális funkcionalitás definíciója szerint nem lehet sikeres.

A biztonság bizonyítás nem más, mint az S szimulátor algoritmusának a definiálása és annak megmutatása, hogy az sikeresen lefut, azaz bármit is próbál ügyeskedni a valós támadó, azt S utánozni képes az ideális rendszerben. Következésképpen, a kriptográfia ezen területén az alkalmazás feladatok is tétel-bizonyítás alapúak.

Sejthető, hogy az erős támadhatatlansági garanciák, amelyeket az univerzális komponálhatóság is nyújt, nincsenek „ingyen”. A mindennapi racionalitás, hogy ami nagyon jó, általában drága is. Az UC-biztonságosság erős garanciái sincsenek ingyen, ahol a költséget a megnövekedett számítási komplexitás jelenti. Jelenleg még lassúak a kapcsolatos realizációk. Ne felejtsük el, hogy egy gyakorlati feladatnál egy realizáció kapcsán mérlegre kell tenni a garanciák ereje mellett a futási sebességet is. Ezért áll elő ma még legtöbbször a helyzet, hogy egy alkalmazás „eladhatóságának” hatékonyságkényszere kompromisszumra készteti a tervezőt, és végül is az informális igazolási hátterű, de elegendő sebességű realizációt választja, elfogadható kis valószínűségű kockázatnak tekintve azt, hogy esetleg mégiscsak megtörésre kerül a konstrukció. Éppen ezért, a bizonyításos tervezési módszertanok (így az UC-módszertan) számára az egyik legfontosabb kutatási irány az algoritmikus komplexitás csökkentése (lásd például Lindell, 2011).

Végül is, konkrétabban mi az oka a bizonyított biztonságú kriptográfiai elemek (primitívek, protokollok) nagy algoritmikus komplexitásának? A probléma gyökere ott van, hogy a kapcsolatos egyirányú függvényeink még az inputról outputra történő számítás algoritmikus komplexitási osztálya szerint hatékony (PPT) végrehajtása is sok számítást igényel a biztonságosnak tekintett dimenziók mellett. Nem csoda, hogy ez az a pont, amelyen keresztül a kutatók a konstrukciók komplexitásából szeretnének lefaragni. Analóg komplexitáscsökkentés (sebességnövelés) volt a mozgatórugó az elliptikus görbék segítségével generálható algebrai struktúrákra épített kriptográfiai primitíveknél jó egy évtizeddel ezelőtt. Megjelennek nem standard, újabb keletű, nehéznek vélt feladatokra épített konstrukciók, amelyek jól hangzó komplexitásjavulást hirdetnek, ugyanakkor óvatosnak kell lennünk, mivel még nem eléggé analizáltak a kapcsolatos nehézségfeltételezések. Hétköznapi analógiával élve, a „fürge páncélozott autó” nehezen megvalósítható. Egy lehetséges természetes kompromisszum jelenleg ott jöhet létre, hogy erős, de költséges megoldásokat elsősorban ott alkalmazzunk, ahol valóban nagy a kockáztatott „érték”, és az nem a gyors, tömeges biztonsági szolgáltatások kategóriája. Nos, ha ez a helyzet, mi a gyakorlati jelentősége (haszna) jelenleg a bizonyított biztonságú konstrukcióknak, például az UC-módszertannak?

Általános alapvetésként az, hogy lehetséges biztonság garanciát adni igen erős támadói környezetben, anélkül, hogy bármilyen konkrét feltételezéssel élnénk a támadó PPT-algoritmus vonatkozásában. További sajátos és izgalmas ereje a módszertannak, hogy ebben realizálhatósági (egzisztencia), valamint nemrealizálhatósági tételek is bizonyíthatók tetszőleges kriptográfiai feladatra vonatkozó általánossággal. Egy nemrealizálhatósági tétel tipikus állítása arra vonatkozik, hogy bizonyos feltételek hiányában garantált biztonságigénnyel nem realizálhatunk kriptográfiai feladatokat. Ilyen feltétel lehet például egy harmadik megbízható fél elérhetősége (például publikus kulcsú infrastruktúra – PKI) vagy a protokoll résztvevői közti előzetes egyeztetés szükségessége. Maga a módszertan egy tervezési útmutató. Pragmatikus példaként tegyük fel, hogy megtervezünk egy protokollt bizonyított garanciákkal, azonban egy, a bizonyítás szerint alkalmazandó kriptográfiai primitív (például egy rejtjelező transzformáció) túl lassú, s ezt a primitívet helyettesítjük a „világon” legbiztonságosabbnak tartott, gyors, de ad hoc tervezésű (azaz nem bizonyított) primitívvel. Ekkor ugyan nem hivatkozhatunk a biztonság bizonyításunkra, de azt várhatjuk, hogy amíg a gyors primitív tartja a biztonsági tulajdonságait, a teljes protokollunk is biztonságos lesz. A gyakorlati hasznok közé sorolhatjuk egy felmerülő kriptográfiai feladat ideális funkcionalitás alapú definiálását, amelyre a módszertan számos példát ad. Helyszűke miatt nem taglalunk további gyakorlati előnyöket.

Reményeink szerint sikerült átadni az olvasónak valamennyi maradandót abból az izgalmas világból, amelyet modern kriptográfiának hívnak. Ez a terület az egyik legszebb példája annak, amikor addig külön fejlődő tudományterületek szintézise gyors fejlődést, mélyebbre hatolást hoz. A modern kriptográfia a klasszikus információelméleti/algebrai megközelítésekkel sikeresen ötvözi a számítástudomány korszerű módszereit.
 



Kulcsszavak: bizonyított biztonság, protokollanalízis, algoritmikus megkülönböztethetetlenség, szimulációs paradigma, univerzális kompozíció
 


 

IRODALOM

Blum, Manuel (1981): Coin Flipping by Telephone. CRYPTO. 1981, 11–15. • WEBCÍM

Blum, Manuel - Micali, Silvio (1984): How to Generate Cryptographically Strong Pseudo-random Bits. SIAM Journal of Computing. 13, 4, 850–863. • WEBCÍM

Canetti, Ran (2000): Universally Composable Security: A New Paradigm for Cryptographic Protocols. Cryptology ePrint Archive: Report 2000/067 • WEBCÍM

Goldreich, Oded (2007): Foundations of Cryptography, Vol. 1–2. Cambridge Univ. Press, Cambridge Vol 1: • WEBCÍM Vol 2: • WEBCÍM

Goldreich, Oded – Micali, S. – Wigderson, A. (1987): How to Play ANY Mental Game. In: Proceedings of the 19th Annual ACM Conference on Theory of Computing. ACM Press, 218–229. • WEBCÍM  

Lindell, Yehuda (2011): Highly-Efficient Universally-Composable Commitments Based on the DDH Assumption. EUROCRYPT 2011 • WEBCÍM

Pfitzmann, Birgit – Waidner, Michael (2000): Composition and Integrity Preservation os Secure Reactive Systems. In: Proceedings of the 7th Conference on Computer and Communication Security of the ACM. 245–254.

Vajda István (2013a): A Universal Composability Framework for Anonymous Communications. Journal of Computer and Communications Security. 3, 3, 33–44.

Vajda István (2013b): Provably Secure On-demand Routing Protocols. Pioneer Journal of Computer Science and Engineering Technology, 6, 1–2, 19–39.

Vajda István (2014): A Proof Technique for Security Assessment of On-demand Ad Hoc Routing Protocols. International Journal of Security and Networks, 9, 1, 12–19.  DOI: 10.1504/IJSN.2014.059329

Vajda István (2015a): Can Universally Composable Cryptographic Protocols Be Practical? International Journal of Computer Network and Information Security. 7, 10, 1–12. DOI: 10.5815/ijcnis.2015.10.03

Vajda István (2015b): On the Analysis of Time Aware Protocols in Universally Composable Framework. International Journal of Information Security. 14, 4, 1–10. DOI: 10.1007/s10207-015-0300-2

Yao, Andrew C. (1982): Protocols for Secure Computations. In: Proceedings of the 23rd Annual Symposium on Foundations of Computer. IEEE Computer Society Washington, 160–164. DOI: 10.1109/SFCS.1982.88 • WEBCÍM

 


 

LÁBJEGYZETEK

1 A kriptográfiai primitív egy általánosan használt építőelem (például rejtjelező transzformáció vagy digitális aláírás), míg a kriptográfiai protokoll két vagy több résztvevő közti biztonságos párbeszéd valamely biztonsági feladat közös végrehajtására. A protokollok a primitíveket építőelemként használják. <

2 Modulo 2 a 2-vel való osztás maradéka. <

3 Az XOR „kizáró vagy” logikai művelet, amelyik nem engedi meg, hogy a két állítás logikai értéke egyszerre igaz legyen. <

 


 

 

3. ábra • A valós és ideális rendszer: a biztonság szimulációs definíciója