Kriptográfiai algoritmus implementációk időalapú támadása

Hasonló dokumentumok
Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT

Kriptográfiai alapfogalmak

Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

Diszkrét matematika I.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

TANÚSÍTVÁNY. megfelel minősített hitelesítés-szolgáltató által végzett alábbi tevékenységek biztonságos elvégzéséhez:

Ahol a kvantum mechanika és az Internet találkozik

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Készítette: Fuszenecker Róbert Konzulens: Dr. Tuzson Tibor, docens

Fizikai támadások HSM-ek ellen. Pintér Olivér

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

KÓDOLÁSTECHNIKA PZH december 18.

FELÜLVIZSGÁLATI JEGYZŐKÖNYV (E-DS10F1_TANF-SW) MELLÉKLETE

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Titkosítás NetWare környezetben

Tanúsítási jelentés HUNG-TJ amely a HUNG-E számí értékelési jelentésen alapul.

2018, Diszkre t matematika. 10. elo ada s

A nyilvános kulcsú infrastruktúra önálló kialakításának szükségessége

Adat és Információvédelmi Mesteriskola 30 MB. Dr. Beinschróth József SAJÁTOS LOGIKAI VÉDELEM: A KRIPTOGRÁFIA ALKALMAZÁSA

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

Az adatfeldolgozás és adatátvitel biztonsága. Az adatfeldolgozás biztonsága. Adatbiztonság. Automatikus adatazonosítás, adattovábbítás, adatbiztonság

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

Dr. Beinschróth József Kriptográfiai alkalmazások, rejtjelezések, digitális aláírás

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Hírek kriptográfiai algoritmusok biztonságáról

Hibatűrő TDMA ütemezés tervezése ciklikus vezeték nélküli hálózatokban. Orosz Ákos, Róth Gergő, Simon Gyula. Pannon Egyetem

Sapientia Egyetem, Matematika-Informatika Tanszék.

Modern szimmetrikus kulcsú rejtjelezők kriptoanalízise

Az RSA és az ECC gyakorlati

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Matematikai alapok és valószínőségszámítás. Statisztikai becslés Statisztikák eloszlása

Kriptográfia I. Kriptorendszerek

Data Security: Public key

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

megtalálásának hihetetlen nehéz voltán alapszik. Az eljárás matematikai alapja a kis FERMAT-tétel egy következménye:

Struktúra nélküli adatszerkezetek

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

1. Adatok kiértékelése. 2. A feltételek megvizsgálása. 3. A hipotézis megfogalmazása

Kvantumkriptográfia II.

Kvantumkriptográfia III.

TANÚSÍTVÁNY. tanúsítja, hogy a Polysys Kft. által kifejlesztett és forgalmazott

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Least Squares becslés

Kabos: Statisztika II. t-próba 9.1. Ha ismert a doboz szórása de nem ismerjük a

Data Security: Protocols Integrity

Digitális technika VIMIAA hét

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

2018, Diszkrét matematika

Bevezetés a kvantum informatikába és kommunikációba Féléves házi feladat (2013/2014. tavasz)

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Digitális technika VIMIAA hét

I. A felfedési kockázat mérése és a mikroadatokhoz való hozzáférés jövője II. Paraadatok használata a rugalmas (responsive) mintavétel során

BAGME11NNF Munkavédelmi mérnökasszisztens Galla Jánosné, 2011.

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Sapientia Egyetem, Matematika-Informatika Tanszék.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

A mérési eredmény megadása

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Emlékeztet! matematikából

Lövedékálló védőmellény megfelelőségének elemzése lenyomatmélységek (traumahatás) alapján

2016, Diszkrét matematika

Programozás II. előadás

Biomatematika 12. Szent István Egyetem Állatorvos-tudományi Kar. Fodor János

2017, Diszkrét matematika

REJTJELZŐ MÓDSZEREK VIZSGÁLATA

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Statisztikai következtetések Nemlineáris regresszió Feladatok Vége

1. ábra: Magyarországi cégek megoszlása és kockázatossága 10-es Rating kategóriák szerint. Cégek megoszlása. Fizetésképtelenné válás valószínűsége

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Amortizációs költségelemzés

Statisztika I. 8. előadás. Előadó: Dr. Ertsey Imre

Általános algoritmustervezési módszerek

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Egyszerű programozási tételek

Tömörítés. I. Fogalma: A tömörítés egy olyan eljárás, amelynek segítségével egy fájlból egy kisebb fájl állítható elő.

A maximum likelihood becslésről

Waldhauser Tamás december 1.

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Az alábbiakban a HUNGUARD Kft. tanúsítási tevékenységével kapcsolatos jogszabályokat, mértékadó, szakmai előírásokat és elvárásokat találja.

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Digitális technika VIMIAA01

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Számítógépes Hálózatok. 4. gyakorlat

Occam 1. Készítette: Szabó Éva

A Z E L E K T R O N I K U S A L Á Í R Á S J O G I S Z A B Á L Y O Z Á S A.

TITOKMEGOSZTÁS ÉS TÖBBRÉSZTVEVŐS SZÁMÍTÁSOK. Szakdolgozat. Írta: Zentai Dániel Matematika bsc szak Alkalmazott matematikus szakirány.

IT BIZTONSÁGTECHNIKA. Tanúsítványok. Nagy-Löki Balázs MCP, MCSA, MCSE, MCTS, MCITP. Készítette:

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Átírás:

Bevezetés Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla <endrodi@mit.bme.hu> Csorba Kristóf <kristof@impulzus.sch.bme.hu> BME Méréstechnika és Információs Rendszerek Tanszék Napjainkban már nem kérdéses, hogy az elektronikus adatok és az azokat kezelő rendszerek védelmére komoly hangsúlyt kell fektetni. Fontos továbbá látni, hogy nem elegendő csupán kialakítani egy megfelelő biztonsági szintet nyújtó rendszert, azt folyamatosan karbantartani és adott esetben fejleszteni is kell, tekintve, hogy a támadási módszerek is folyamatosan fejlődnek. Ahhoz, hogy az újabb támadások kivédéséhez hatásos és hatékony megoldásokat találhassunk, kulcsfontosságú, hogy megismerjük az egyes támadások működési elvét és így a kihasznált gyengeségeket, valamint a veszélyességük mértékét megadó hatékonysági jellemzőket. Emiatt gyakorlati szempontból is jelentősséggel bír az ismertté vált támadási módszerekben rejlő lehetőségek mélyebb vizsgálata. Támadási lehetőségek Az elektronikus információ illetve kommunikáció biztonságát szolgáltató protokollok például integritás védelem, bizalmasság illetve letagadhatatlanság biztosítása stb. különböző kriptográfiai algoritmusokon alapulnak. Viszonylag sok ilyen algoritmus létezik; ezek közös jellemzője, hogy bizonyos műveletek végrehajtásának lehetőségét például egy kódolt szöveg visszaalakítását vagy egy aláírás megtételét a megfelelő kriptográfiai kulcs ismeretéhez kötik. A kriptográfiai algoritmusokat általában megfelelő matematikai ismeretek és gyakorlat birtokában, megfelelő körültekintéssel alkották meg, ennek ellenére mégis volt már számos példa arra, hogy egy kezdetben jónak vélt algoritmust megtörtek, azaz találtak olyan módszert, amellyel ugyan bizonyos fáradozások árán, de a kriptográfiai kulcs ismerete nélkül, a korábban feltételezett időigénynél lényegesen gyorsabban eredményre juthatott egy támadó. Azoknál az algoritmusoknál, ahol a biztonsági szint nem bizonyított és meg kell jegyezni, hogy viszonylag sok ilyen algoritmus van ilyen áttörések végül is bármikor előfordulhatnak. Mindenesetre a gyakorlatban alapvetően azoknak a kriptográfiai algoritmusoknak az alkalmazása elfogadott, amelyek matematikai hátterét már széles körben és alaposan megvizsgálták, és megfelelőnek találták. Ez természetesen nem jelent teljes garanciát, de általánosságban mindenképpen igaz az, hogy egy kriptográfiát használó informatikai rendszernek amelyet megfelelően implementáltak nem a (matematikai értelemben vett) kriptográfiai algoritmus a leggyengébb pontja. Egy adatbiztonsági funkció megvalósításához azonban nem elegendő egy jó kriptográfiai algoritmus, így támadási felület is akad még bőven. Nem is kell nagyon messzire mennünk, gondoljunk csak arra, hogy ahhoz, hogy egy kriptográfiai algoritmust használni tudjunk, azt valamilyen programnyelven meg kell fogalmaznunk és valamilyen hardveren végre kell hajtatnunk. Ennek során óhatatlanul fizikai jellemzőkkel ruházzuk fel, ami a támadások egy nagyon érdekes fajtájára ad lehetőséget. Az algoritmus működése során fellépő mellékhatások megfigyelésével ugyanis mint például a végrehajtási idő, az áramfelvétel vagy az elektromágneses kisugárzás többlet információ nyerhető a végrehajtott műveletről, ami sok esetben szoros összefüggésben áll az aktuálisan használt titkos kriptográfiai kulccsal is. Ennek köszönhetően bizonyos esetekben, kellő számú megfigyelés alapján kikövetkeztethetővé válhat a kulcs. Ez a támadási módszer side-channel attack néven ismert.

Időmérés alapú támadás Az időmérés alapú támadás (timing attack) esetében az egyes titkos kulcs felhasználásával végzett műveletek végrehajtási idejei alapján következtetnek magára a titkos kulcsra. Ennek alapja, hogy az egyes műveletek végrehajtási idejei a használt kulcstól, az aktuális üzenettől, illetve esetleg más tényezőktől függően különböznek. Ez a függés az algoritmust megvalósító, futtatásra kerülő kód és a futtatási környezet pontos ismeretében feltérképezhető, és bizonyos esetekben módszer adható arra, hogy a mért idők és az aktuális üzenetek ismeretében következtetni tudjunk a használt kriptográfiai kulcsra. Fontos kiemelni, hogy az ilyen támadások sikeres végrehajtásához elegendő, ha a támadó passzívan le tudja hallgatni a csatornát (elegendő az üzenetek megfigyelése, nem szükséges, hogy ő maga is küldhessen üzenetet); azonban szükség van az algoritmus részletekbe menő ismeretére. Az idő alapú támadások gyakori célpontja a sok kriptográfiai algoritmusban előforduló moduláris hatványozás művelet. Általánosságban elmondható, hogy ha az alap és a modulus rögzített, akkor a hatványozás végrehajtási ideje érzékenyen függ a kitevő értékétől, ami az algoritmusoknál gyakran maga a titkos kulcs. A gyakorlatban ugyan a moduláris hatványozást nem a moduláris szorzás ismétlésével, hanem valamely gyorshatványozó algoritmussal [6] valósítják meg, és így az összefüggés a végrehajtási idő és a kitevő értéke között nem annyira magától értetődő, de a statisztika módszereit segítségül hívva itt is kimutatható és felhasználható a kapcsolat a titkos kulcs megfejtésére. Kocher módszere Paul C. Kocher 996-ban publikált cikkében mutatott elméleti megoldást az MSB-től LSB felé haladó gyorshatványozó algoritmus esetében a titkos kulcs meghatározására a végrehajtási idők alapján []. Módszere alkalmazható például az RSA [7] és a Diffie-Hellman [8] algoritmusok ellen, amelyeknél a titkos kulcsú műveletvégzés egy olyan y = x k mod m moduláris hatványozást tartalmaz, ahol m nyilvános érték, x lehallgatható 2, k pedig a titkos kulcs. A támadó célja k meghatározása. A támadás végrehajtáshoz szükség van arra, hogy a megfigyelt rendszerben rögzített m és k értékek mellett, sok különböző x értékre végrehajtsák a titkos kulcsú műveletet, és így a támadó megfigyelhessen sok x értéket és a hozzájuk tartozó végrehajtási időket. Ehhez elegendő, ha passzívan meg tudja figyelni a csatornát, nem szükséges, hogy ő maga kezdeményezze a műveleteket. Előfeltétel továbbá, hogy a támadó részletesen ismerje a végrehajtásra kerülő algoritmus implementációt. A szóban forgó gyorshatványozás egy formális leírását a 2. ábra mutatja, ahol a titkos kulcs (k) w bites, és az i-edik bitet k i jelöli. kérdés válasz eltelt idő titkos kulcs Implementáció. ábra Időmérés alapú támadás s := ; for (i = ; i < w; i++) { if (k i == ) y temp := (s i * x) mod m; s i+ := (y temp * y temp ) mod m; } return y temp ; 2. ábra MSB LSB gyorshatványozás MSB: legnagyobb helyiértékű bit; LSB: legkisebb helyiértékű bit 2 a csatornán ebben a formában átküldött érték

Látható, hogy ennél a gyorshatványozó algoritmusnál a főciklus annyiszor kerül végrehajtásra, ahány bites a kulcs, és minden egyes lépésben a kulcs egyetlen újabb bitjét használjuk fel. Kocher módszerében a titkos kulcs megfejtése szintén lépésenként, bitről-bitre történik. Gyakorlatilag a gyorshatványozás folyamatát hajtja végre újra az elejétől kezdve, és minden egyes lépésben döntést hoz a következő kulcsbit értékére vonatkozóan, különböző statisztikai összefüggések alapján. A kulcsbit meghatározásához felhasználja, hogy az előző bitek, és ezáltal az aktuális s i és y temp érték már ismert. A legelső kulcsbitről biztosan tudjuk, hogy az, így innen el tudjuk indítani a kalkulációt. A kulcsfejtő algoritmus lényege dióhéjban a következő: tegyük fel, hogy az első i- kulcsbitet már sikerrel megfejtettük. Ekkor a ciklus első i- lépése után járunk, így rendelkezésre állnak az s i és y temp értékek, valamint ismert az első i- lépés végrehajtási időinek összege: t j ; j= ezen kívül ismerjük a teljes végrehajtási időt: T. Az i-edik lépésben az aktuális kulcsbittől függően kétféle dolog történhet: - ha k i =, akkor az y temp értéket megszorozzuk x-szel modulo m, majd kiszámítjuk y temp négyzetét modulo m, - ha k i =, akkor az x-szel való szorzás elmarad, csak az eddigi y temp értéket emeljük négyzetre modulo m. Ennek megfelelően az i-edik lépés időigénye kétféle érték lehet: t i és t i. Mindkét értéket meghatározzuk, majd az első i lépés időigényének a teljes végrehajtási időből való kivonásával kiszámítjuk a hátralevő időket is: hi = T t j ti j= i i, hi = T t j ti j= Tételezzük fel, hogy összesen N üzenetről van megfigyelésünk. Ezek mindegyikéhez kiszámítható k i = -t illetve k i = -et feltételezve az i-edik ciklust követően hátralevő végrehajtási idő: h i és h i. Az aktuális (i-edik) kulcsbit meghatározásának az alapja, hogy a hátralevő idők szórásnégyzete csökken az előző lépésben kiszámítotthoz képest, amennyiben helyesen találtuk el az aktuális kulcsbitet; és nő, ha helytelenül. Hasonló támadás konstruálható a DSS [9] ellen is, sőt, Kocher rámutatott más algoritmusok DES, IDEA, RC5, Blowfish, SEAL támadásának elméleti lehetőségére is. Kocher eredménye fontos mérföldkőnek számít az időmérés alapú kriptoanalízis fejlődésében, hiszen kézzel fogható bizonyítékot szolgáltatott az elgondolás működésére. Kocher eredményei azonban mégis főként elméleti jelentőséggel bírnak, ugyanis a módszer működéséhez szükséges, hogy pontosan meg tudjuk határozni a gyorshatványozás egyes lépéseinek valós végrehajtási időtartamait is külön-külön. Ez a gyakorlatban általában nem kivitelezhető, hiszen csak a teljes végrehajtási időket tudjuk megfigyelni. Időmérés alapú támadás RSA ellen A Löveni Katolikus Egyetem Kriptográfiai Laboratóriumában (UCL Crypto Lab) a gyakorlatban is sikeresen alkalmazható időmérés alapú támadást fejlesztettek ki Kocher módszerére alapozva [2,]. Módszerük egy konkrét RSA implementáció, a CASCADE smart card [] ellen került kidolgozásra. Ebben a moduláris hatványoz a Kocher által is tárgyalt MSB-től LSB felé haladó gyorshatványozó algoritmussal történik. A támadáshoz kihasználják továbbá, hogy a moduláris szorzás műveletet a Montgomery algoritmussal [3] valósították meg. Ennek sajátossága, hogy az operandusok értékétől függetlenül mindig ugyanannyi ideig tart, kivéve azt az egyetlen esetet, amikor az eredmény több lenne a modulusnál, és ezért szükség van egy végső kivonásra (redukciós lépésre). A redukció egyértelműen többlet futási időt eredményez,. i

aminek a hatása elegendően nagy mintavételi halmaz esetén a teljes végrehajtási időkben is kimutatható. Kocher módszeréhez hasonlóan a támadási itt is lépésről lépésre történik, a főciklus végrehajtásának szimulálásával minden lépésben egyetlen kulcsbit kerül meghatározásra. A döntés alapját itt is statisztikai összefüggések képezik. Két támadási módszert is ismertetnek, az egyik a szorzás, a másik a négyzetreemelés támadása néven kerül bemutatásra. () A szorzás támadása esetében a kódban szereplő feltételes utasítás játsza a fő szerepet. Tegyük fel, hogy N üzenet került megfigyelésre: x, x 2,.., x N, és ezek teljes végrehajtási idejei rendre T, T 2,.., T N. Tegyük fel továbbá, hogy az első i- kulcsbit már sikeresen meghatározásra került. Ekkor az első i- lépés lejátszásával ismertnek tekinthetjük minden egyes üzenet esetén az az s i és y temp értékeket. Tegyük fel, hogy az i-edik kulcsbit. Ekkor a feltételes utasítás, y temp := (s i * x) mod m végrehajtásra kerül. Ez a Montgomery algoritmus sajátosságának megfelelően minden x és a hozzá tartozó s i esetén ugyanannyi ideig tart, kivéve azokat az eseteket, amikor szükség van a végső redukciós lépésre. Mivel ismerjük a művelet összes operandusát, így pontosan meg is tudjuk határozni, hogy melyek azok az x értékek, amelyeknél ebben az iterációs lépésben (k i = esetén) kell lennie redukciónak, és melyek azok, ahol nem; legyen ez a két üzenethalmaz rendre {X r } és {X }. Ezek után kiszámítjuk az ily módon létrehozott halmazokban levő üzenetek teljes végrehajtási idejeinek átlagát, legyenek ezek Tˆ r és Tˆ. Amennyiben igaz a feltételezésünk, miszerint k i =, akkor a redukció által okozott többlet időnek meg kell jelennie a teljes végrehajtási időkben, azaz azt kell tapasztalnunk, hogy Tˆ r > Tˆ. Ellenkező esetben a szóban forgó moduláris szorzás nem is került végrehajtásra, így a szétválogatott üzenetek teljes végrehajtási idejeinek eloszlása véletlenszerű lesz, azaz átlagukban szignifikáns különbség nem fog megjelenni. Így tulajdonképpen a Tˆ r - Tˆ különbség határozza meg, hogy helyes-e a k i = feltételezés vagy nem. Ezt a döntést nem mindig egyszerű meghozni, hiszen a két átlagos végrehajtási idő között jó eséllyel akkor is lesz valamekkora különbség, ha a szelekciós alapot képező utasítás nem került végrehajtásra. Pontos küszöbértéket meghatározni nehéz, néha bizony előfordulhat hibás döntés. (2) A négyzetreemelés támadásának módszerével az előbb említett probléma kiküszöbölhető. Az előbbihez hasonlóan feltételezzük, hogy ismert N üzenet és a hozzájuk tartozó teljes végrehajtási idők, valamint hogy kulcs első i- bitjét már sikeresen megfejtettük, és ismerjük s := ; for (i = ; i < w; i++) { if (k i == ) y temp := (s i * x) mod m; s i+ := (y temp * y temp ) mod m; } return y temp ; 3. ábra A szorzás támadása s := ; for (i = ; i < w; i++) { if (k i == ) y temp := (s i * x) mod m; s i+ := (y temp * y temp ) mod m; } return y temp ; 4. ábra A négyzetreemelés támadása minden egyes x-hez az aktuális s i és y temp értékeket. Tegyük fel, hogy az i-edik kulcsbit. Ekkor a szorzás végrehajtásra kerül, és így a négyzetreemelés már az új y temp értéken fog megtörténni. Az előbbihez hasonlóan válogassuk két halmazba az üzeneteket, legyen {X r }, amikor kell lennie redukciónak, és {X }, amikor nem. Azután tekintsük a másik esetet: ha k i = a helyes feltételezés, akkor a négyzetreemelés az eredeti y temp értéken fog megtörténni. Válogassuk most eszerint is két halmazba az összes üzenetet, legyen {X r }, amikor kell lennie redukciónak, és {X }, amikor nem. Mindezek után számítsuk ki a ˆ, T r ˆ, Tˆ, r T

Tˆ értékeket. Tudjuk, hogy ha a k i = feltételezés a helyes, akkor Tˆ r és Tˆ -nek kell szignifikánsan különböznie, ha pedig k i = igaz, akkor a Tˆ és r Tˆ átlagoknak kell jelentősen eltérnie. A döntés meghozásához egyszerűen megvizsgáljuk mindkét különbséget, és a nagyobbat választjuk, azaz T = ( Tˆ r - Tˆ ) - ( Tˆ - r Tˆ ) > esetén k i = -re döntünk, T = ( Tˆ r - Tˆ ) - ( Tˆ - r Tˆ ) < esetén pedig k i = -ra. Ez a döntési mechanizmus egyértelműbb az előző módszernél alkalmazottnál. A módszer további előnye, hogy rendelkezik egy hibajelző tulajdonsággal, amit egy esetleges hibás döntés korrigálására is fel lehet használni. Ennek alapja az, hogy ha egy kulcsbitet hibásan határozunk meg, akkor onnantól kezdve a T érték jól észrevehetően lecsökken az előzőekhez képest. Ezt észlelve vissza kell menni odáig, amikor még helyesnek tűnt a döntés, és újra kell futtatni a törést a feltételezhetően hibás döntés helyen az ellenkező döntést hozva. Az ismertetett módszer segítségével gyakorlati töréseket is sikerült véghez vinnie a csoportnak: 52 bites RSA kulcsot 3 ezer megfigyelés alapján percek alatt, míg 28 bites RSA kulcsot ezer megfigyelés alapján másodpercek alatt sikerült megfejteniük. Az UCL Crypto Group módszerük gyakorlati jelentősségét az adja, hogy esetükben Kocher módszerével ellentétben nincs szükség arra, hogy a ciklus egyes iterációinak valós végrehajtási időit is ismerjük. Ennek ára az, hogy a módszer csak a Montgomery algoritmussal megvalósított moduláris szorzások esetében működik. Továbbfejlesztés Saját kutatásaink céljául az idő alapú támadások egy általánosabb vizsgálatát tűztük ki. A bemutatott eredmények valamely konkrét algoritmushoz kötődnek, ugyanakkor találhatunk utalást arra, hogy a módszer átültethető más algoritmusokra is. A módszer határának feltérképezéséhez ezért megvizsgáltuk, hogy melyek azok a feltételek, amelyeknek eleget kell tennie egy algoritmusnak ahhoz, hogy arra a támadás alkalmazható legyen azaz melyek azok a tulajdonságok, amelyeket a támadás ténylegesen kihasznál. Ennek megfelelően az Előfeldolgozás általunk megcélzott algoritmusoknak mindössze A egyetlen feltételt kell teljesíteniük: tartalmazniuk if Θ(di, x) then Ciklus kell egy olyan ciklust, amelyben egy elágazás a titkos kulcs bitjeitől egyenként függően különböző B futási idő-igényű műveleteket tartalmaz. Ennek a Utómunkálat feltételnek viszonylag sok kriptográfiai algoritmus megfelel, hiszen köztük sok alkalmaz gyorshatványozást, amire ez a feltétel gyakran 5. ábra Algoritmus struktúra teljesül. Vizsgáltuk továbbá a támadás hatékonyságát javító módszereket is. Tapasztalataink szerint a siker valószínűsége növelhető, ha egyszerre több kulcs-jelöltet tartunk nyilván. Ez a megoldás némely esetben csökkentheti a támadás időigényét, de természetesen megnöveli a rendelkezésre álló tárhely szükségletet. Ezek szem előtt tartásával kidolgozásra került egy olyan formális modell, amelyben a támadás sikerességének feltétele és valószínűsége formális képletekkel is megfogalmazható. Módszerünk az eddigi megoldásokhoz képest három alapvető újdonságot tartalmaz: - a fizikai helyett logikai idő bevezetése és alkalmazása, - a ciklus egyetlen lépésének időigényének ( OneStep ) méri lehetősége, - konstans számú kulcsjelölt alkalmazása.

() A logikai idők alkalmazása azt jelenti, hogy az egyes végrehajtandó utasításokhoz mi magunk rendelünk hozzá egy-egy bizonyos időköltséget. A vizsgált algoritmus futásának nyomon követésével meghatározható a végrehajtott utasítások, és zajmentesen összegezhető ezek költsége. Ez a módszer egyszerűen kivitelezhető minden olyan algoritmus esetében, ami forráskód szinten hozzáférhető (pl. OpenSSL). Természetesen ahhoz, hogy a logikai idők összegzésével megállapított értékek megfeleljenek a valóságos futási időknek, az egyes műveletek logikai időigényét először hangolni kell. Ezt a megcélzott rendszer fizikai időigényének figyelésével és ezzel párhuzamosan a folyamat szimulálásával (és a logikai idő mérésével) meg lehet oldani, amennyiben tudjuk, hogy az algoritmus milyen paraméterekkel fut le. Ilyen eset például az, amikor a rendszer nyilvános kulcsú műveletet végez. (2) A logikai idők bevezetése teszi lehetővé a ciklus egyes lépéseinek (OneStep) egyenkénti költségének megmérését. Mint láttuk, Kocher módszerének gyakorlati alkalmazhatósága ennek megvalósításán múlik. A mi esetünkben, mivel a kriptográfiai algoritmus futását ténylegesen képesek vagyunk szimulálni, annak bármely részletének időigény mérésére lehetőségünk van. (3) A több kulcsjelölt alkalmazása révén az algoritmusnak nem szükséges minden lépésben jó döntést hoznia az aktuális kulcsbitet illetően; hanem elegendő az, hogy a jó kulcs a jelölt szelekciós eljárással kiválasztott jelöltek között maradjon. Ezzel áthidalható néhány olyan iteráció amilyen a tapasztalataink szerint néha előfordul, főként a fejtés elején, amikor az aktuális kulcsbit meghatározása nem teljesen egyértelmű. Az UCL Crypto Group módszere az így előforduló esetleges hibákat a visszalépéses módszer védi ki; a mi esetünkben nincs szükség visszalépésre. A keresési tér méretének exponenciális robbanása elkerülésére előre meghatározott, konstans számú kulcsjelölttel dolgozunk (ezek tipikus száma jelenleg 4, 8, 6). A kulcsjelöltek száma meghatározó a támadás sikerességének szempontjából. A kulcsfejtés módszere Egy ismert kriptográfiai algoritmust használó rendszer titkos kulcsának meghatározásához először is szükség van megfelelően sok üzenet, és az azokon végzett titkos kulcsú művelet végrehajtási idejeinek megfigyelésére. Szükség van továbbá a birtokunkban levő hasonló rendszer hangolására, azaz az egyes utasításokhoz tartozó időköltségek meghatározására. Ezek után a titkos kulcs meghatározása lépésről-lépésre, bitenként történik. Az i-edik bit meghatározásához felhasználjuk, hogy az első i- bit, valamint minden egyes üzenetre a ciklus első i- lépésének végrehajtási ideje, és az i- lépésben meghatározott c darab kulcsjelölt ismert. Tekintve, hogy a kulcs első (MSB) bitje, az iterációt innen indítható. Az i-edik kulcsbit meghatározásához először is előállítjuk az eddigi kulcsjelöltek összes lehetséges folyatatását, azaz az eddigi kulcsjelöltek mindegyikéhez hozzáfűzzük az és a értékeket is (így 2c darab jelölt-jelölt keletkezik). Ezek közül a jelöltszelekciós eljárás során választunk ki c darabot. Egy ilyen eljárás lehet például, amikor minden egyes lehetséges jelölthöz hozzárendelünk egy jósági tényezőt, és az ez alapján felállított sorrend első c elemét visszük tovább. A jósági tényezővel kifejezhetjük például azt, hogy az adott kulcsjelölt esetében az i-edik lépésig elhasznált idő és az összes futási idő mennyire korrelál. Erre egy alkalmas mérőszám például a Kocher módszerében is használt szórásnégyzet. Ekkor meg kell határozni minden lehetséges kulcsjelölthöz és minden üzenethez az első i lépés és a teljes időigény különbségét. A teljes időigények ismertek, az első i lépés időigényének meghatározásához pedig felhasználható az első i- lépés időigénye, így összességében csak 2cN OneStep elvégzésére van szükség, ahol N az üzenetek száma. Ha meghatároztuk a legjobb c kulcsjelöltet, folytatódhat a fejtés az i+ lépéssel. x x 2 6. ábra Végrehajtási idők x N {X}

A vázolt módszer az OpenSSL RSA kódjának felhasználásával kerül implementálásra, de moduláris felépítésének köszönhetően a kriptográfiai algoritmus könnyen kicserélhető, így lehetőséget nyújt más a feltételeknek megfelelő algoritmus vizsgálatára is. A szelekciós eljárás szintén könnyen cserélhető. A későbbiek során szeretnénk ebből is többfélét kipróbálni. A további fejlesztési lehetőségek többek között a zaj bevezetésének vizsgálata, még általánosabb algoritmusok elemzése, valamint kriptográfiai protokollok (például SSL) vizsgálata szerepel. A mérési eredmények felhasználásával szeretnénk feltérképezni illetve alátámasztani a támadás veszélyességére vonatkozó összefüggéseket a kulcs mérete, a rendelkezésre álló üzenetek száma, az alkalmazott kulcsjelöltek száma és a támadás sikerének valószínűsége között fennálló kapcsolatot. Összefoglalás Az eddigi nemzetközi eredmények meggyőzően igazolják, hogy az időmérés alapú támadás valós veszélyt jelenthet sok létező kriptográfiai rendszerre 3, ezek ellen azonban lehet illetve lehetne védekezni [,4,6,2]. Először is, nem minden alkalmazás veszélyeztetett (például egy off-line módban működő szolgáltatás egyáltalán nem érintett). Másrészt ma már sok algoritmus implementációban eleve benne vannak a védelmi megoldások, csak esetleg nem mindegyik alkalmazza ezeket alapértelmezettként (pl. OpenSSL). Ezen kívül vannak olyan megoldások is, amelyek a kriptográfiai algoritmus módosítása nélkül is védelmet tudnak nyújtani ez ellen a támadás ellen. A keserű tapasztalat azonban mégis az, hogy a gyakorlatban általában nem fordítanak kellő figyelmet ezek alkalmazására. Fontos tehát, hogy ezeket a lehetőségeket ne hagyjuk figyelmen kívül, hanem használjuk ki az általuk nyújtott védelmet! Felhasznált irodalom [] P. Kocher, Timing attacks on implementations of Diffie-Hellman, RSA, DSA, and other systems, in Advances in Cryptology CRYPTO 96, Santa Barbara, California, vol. 9 of LNCS, pp. 4-3. Springer, 996. [2] J.-F. Dhem, F. Koeune, P.-A. Leroux, P. Mestré, J.-J. Quisquater, J.-L. Willems, A Practical Implementation of the Timing Attack, in Proc. CARDIS 998, Smart Card Research and Advanced Applications, 998. [3] P. Montgomery, Modular Multiplication without Trial Division, Mathematics of Computation, pp. 59-52, 985. [4] G. Hachez, J-J. Quisquater, Montgomery Exponentiation with no Final Subtraction: Improved Results, in Proceedings of Cryptographic Hardware and Embedded Systems, vol. 965 of LNCS, pp. 293-3. Springer, 2. [5] Dr. Burt Kaliski, Timing Attacks on Cryptosystems, RSA Bulletin No.2, Jan. 23. 996. [6] Daniel M. Gordon, A Survey of Fast Exponentiation Methods, Journal of Algorithms 27, pp. 29-46, 998. [7] R. L. Rivest, A.Shamir, L. M. Adleman, A method for obtaining digital signatures and public key cryptosystems, Communications of the ACM, 2, 978, pp. 2-26. [8] W. Diffie, M. E. Hellman, New Directions in Cryptography, IEEE Transactions on Information Theory, IT-22, n. 6, Nov 976, pp. 644-654. [9] National Institute of Standards and Technology, Digital Signature Standard, Federal Information Processing Standards Publications 86, May 994. [] J.-F. Dhem, F. Koeune, P.-A. Leroux, P. Mestré, J.-J. Quisquater, J.-L. Willems, A Practical Implementation of the Timing Attack, in J.-J. Quisquater and B. Schneider (eds.): Smart Card Research and Applications, vol. 82 of LNCS, pp. 75-9. Berlin, Springer, 2. [] Cascade (Chip Architecture for Smart Cards and portable intelligent DEvices). Project founded by the European Community, see http://www.dice.ucl.ac.be/crypto/cascade. [2] D. Chaum, Blinding Signatures for Untraceable Payments, Advances in Cryptology: Preceedings of Crypto 82, Plenum Press, 983, pp. 99-233. 3 Jelen cikk csak pár jelentős hivatkozást tartalmaz, de ezen kívül számos cikk számol be további sikerekről.