Kriptográfia Hatodik előadás Nyilvános kulcsú kriptográfia I. Az RSA

Hasonló dokumentumok
Kriptográfia Tizedik előadás SHA, Whirlpool, HMAC és CMAC

Kriptográfia Hetedik előadás Nyilvános kulcsú kriptográfia II. Kulcsgondozás és további nyilvános kulcsú rendszerek

Diszkrét matematika I.

Kriptográfia Kilencedik előadás A hitelesítésről általában

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

Kriptográfia Tizenegyedik előadás Digitális aláírások, kölcsönös és egyirányú hitelesítés, a DSA

Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

Kriptográfia Harmadik előadás Klasszikus titkosítások II

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:

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,...

4. Előadás Titkosítás, RSA algoritmus

Emlékeztet! matematikából

Data Security: Public key

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

Waldhauser Tamás december 1.

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

Kriptográfia Negyedik előadás A DES

2017, Diszkrét matematika

Kriptográfia Nyolcadik előadás Blokktitkosítók működési módjai, folyamtitkosítók

Kriptográfiai alapfogalmak

Sapientia Egyetem, Matematika-Informatika Tanszék.

Prímtesztelés, Nyilvános kulcsú titkosítás

2018, Diszkre t matematika. 10. elo ada s

Harmadik elıadás Klasszikus titkosítások II.

Kriptográfia I. Kriptorendszerek

Titkosítás NetWare környezetben

Titkosírás. Biztos, hogy titkos? Szabó István előadása. Az életben sok helyen használunk titkosítást (mobil, internet, jelszavak...

Kriptográfia Első előadás A kriptográfiáról általában

RSA algoritmus. Smidla József. Rendszer- és Számítástudományi Tanszék Pannon Egyetem

Elektronikus aláírás. Gaidosch Tamás. Állami Számvevőszék

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

Diszkrét matematika I.

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

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

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

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

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:

Nyilvános kulcsú titkosítás RSA algoritmus

Hálózati biztonság ( ) Kriptográfia ( )

Információs társadalom alapismeretek

Webalkalmazás-biztonság. Kriptográfiai alapok

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

Matematikai alapismeretek. Huszti Andrea

Számelméleti alapfogalmak

IP alapú távközlés. Virtuális magánhálózatok (VPN)

Adatvédelem titkosítással

Diszkréció diszkrét logaritmussal

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

Mintafeladat az RSA algoritmus szemléltetésére

Informatikai biztonság alapjai

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

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

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

2016, Diszkrét matematika

KÓDOLÁSTECHNIKA PZH december 18.

REJTJELZŐ MÓDSZEREK VIZSGÁLATA

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.

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

5.1 Környezet Hálózati topológia

2016, Diszkrét matematika

Egyesíthető prioritási sor

PRÍMSZÁMOK ÉS A TITKOSÍRÁS

Fábián Zoltán Hálózatok elmélet

Kriptográfia Ötödik előadás Az AES

Kongruenciák. Waldhauser Tamás

Kriptográfiai protokollok

A nyilvános kulcsú algoritmusokról. Hálózati biztonság II. A nyilvános kulcsú algoritmusokról (folyt.) Az RSA. Más nyilvános kulcsú algoritmusok

Bevezetés az algebrába az egész számok 2

Diszkrét matematika 2.

PGP. Az informatikai biztonság alapjai II.

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

A félév során előkerülő témakörök

Miller-Rabin prímteszt

Elektronikus hitelesítés a gyakorlatban

XIII. Bolyai Konferencia Bodnár József Eötvös József Collegium, ELTE TTK, III. matematikus. A véletlen nyomában

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

védelme és s adatbiztonság zoltanadam_tamus@yahoo.com,,

Windows biztonsági problémák

Kriptográfia házi használatra Szeptember 26

SzA XIII. gyakorlat, december. 3/5.

Prímszámok. A cikkben szereplő eredmények 2008 decemberéből származnak.

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

Elemi matematika szakkör

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

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

Az elektronikus aláírás és gyakorlati alkalmazása

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

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Számelmélet. 1. Oszthatóság Prímszámok

Informatika Biztonság Alapjai

Biztonságos kulcscsere-protokollok

Data Security: Access Control

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Kvantumkriptográfia II.

2018, Diszkre t matematika. 8. elo ada s

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

Digitális aláírás és kriptográfiai hash függvények. 1. az aláírás generálása (az X üzenetet küldő A fél végzi): A B: X, D A (X)

Átírás:

Kriptográfia Hatodik előadás Nyilvános kulcsú kriptográfia I. Az RSA Németh L. Zoltán SZTE, Számítástudom studomány Alapjai Tanszék 2008 ősz

Titkos kulcsú kriptográfia (Private-Key Cryptography) a hagyományos: szimmetrikus/titkos/egy kulcsú kriptográfi fiában egy titkosító/megfejt /megfejtő kulcs van ha nem is szó szerint egyezik meg a kettő,, a titkosító és s a megfejtő kulcs, egymásb sból l könnyen k kiszámíthat tható a kulcsot csak a feladó és s a címzett c ismeri a kulcs titokban tartásán n alapszik a biztonság a feleknek előzetesen kommunikálni kell egymással a titkos kulcsot ez szimmetrikus,, a felek szerepe egyenrangú: mindketten tudnak titkosítani tani és s megfejteni is ezért nem védi v a feladót t a címzettel c szemben attól, hogy a címzett c a kapott üzenetet meghamísítva azt állítsa, hogy az a feladótól l jöttj

Nyilvános kulcsú kriptográfia (Public-Key Cryptography) talán n a legjelentősebb találm lmány a kriptográfia 3000 éves törtt rténetében két t kulcs van egy nyilvános nos (public( key) egy magán (private key) /néhol: saját t kulcs v. titkos kulcs/ a nyilvános nos kulccsal lehet titkosítani tani de az üzenetet csak a magánkulccsal lehet megfejteni így példp ldául maga a küldk ldő sem tudja visszafejteni az üzenetet, ha mondjuk elfelejtette, hogy mit titkosított tott

Nyilvános kulcsú kriptográfia II (Public-Key Cryptography) a nyilvános nos kulcsot nyilvánoss nosságra lehet hozni és s legalább a küldk ldő számára nyilvánoss nosságra kell hozni (de ez nem igényeli hogy biztonságos kommunikáci ció legyen) bárki lehet feladó,, aki a nyilvános nos kulcsot megkapja a számelm melmélet let számítási si szempontból,,egyik irányban nehéz -- másik irányban könnyk nnyű problémáin alapszik (pl. faktorizáci ció,, diszkrét log.) kiegész szíti és s nem helyettesíti ti a titkosított tott kulcsú kriptográfi fiát

Miért jój a nyilvános nos kulcsú kriptográfia? a titkos kulcsú kriptográfia két k t alap problémájára ra ad választ: v kulcselosztás elektronikus aláí áírások az első nyilvános nos publikáci ciója: Whitfield Diffie és Martin Hellman (Stanford tanford), 1976 ismert volt, bár b r titokban tartották k 1999-ig: James Ellis (UK), 1970 sőt állítólag lag az NSA már m r a 60-as évek közepén n ismerte

Public-Key Cryptography nyílt kulcsú/k /két t kulcsú/aszimmetrikus titkosításnak snak is nevezik a kulcsok szerepe: a nyilvános nos kulcsot titkosításra sra és s a magánkulccsal készített aláí áírás s ellenőrz rzésérere lehet használni a magánkulccsal (amit csak a címzett c ismer) a megfejteni lehet, és aláí áírást készk szíteni természetesen másik irány nyú titkos vagy nem titkos üzenetküldéshez a felek szerepe aszimmetrikus: a nyilvános nos kulcs tulajdonosa (a feladó) csak titkosítani tani és s aláí áírást ellenőrizni tud, megfejteni vagy aláí áírni nem ezért aláí áíráshoz (saját t névre n szóló) ) magánkulcs kell, de üzenet titkosításához elég g a küldk ldő nyilvános nos kulcsát t ismerni

A nyilvános nos kulcsú titkosítás s vázlatav

A két k t kulcs viszonya Feltételek telek a nyilvános nos kulcsú titkosítás s működéshez: m a nyilvános nos kulcs ismeretében hatékonyan lehessen titkosítani tani a magánkulcs ismeretében hatékonyan lehessen az üzenetet megfejteni jelenlegi algoritmusainkkal reménytelen nytelenül l sok ideig tartson a nyilvános nos kulcsból l a magánkulcsot kiszámítani (a titkosító/megfejt /megfejtő algoritmust ismeretét t persze feltételezz telezzük) a magán n kulcs ismerete nélkn lkül l szintén n reménytelen számítási si feladat legyen az üzenet megfejtése hatékonyan tudjunk véletlen v nyilvános nos-magán kulcspárokat generálni néhány ny algoritmusnál l (pl. RSA) hasznos, hogy a magánkulccsal is lehessen titkosítani, tani, ami csak a nyilvános nos kulccsal fejthető meg (ezen alapul az aláí áírás)

Nyilvános kulcsú titkosítás és s aláí áírás (elvi vázlat) v PR = private, magánkulcs, PU = public, nyilvános kulcs

A nyilvános nos kulcsú kriptográfia alkalmazásai 3 kategóri riába osztható: titkosítás/megfejt s/megfejtés (bizalmasságot ad) elektronikus aláí áírások (hitelesítést st ad) kulcscsere (kapcsolatkulcsok (session( keys) cseréjére) re) néhány ny algoritmus mindhárom feladatra alkalmas, mások m csak egy-két t célra c használhat lhatók

A nyilvános nos kulcsú rendszerek biztonsága I nem biztonságosabbak vagy kevésb sbé biztonságosabbak mint a titkos kulcsú rendszerek; a biztonság g az alkalmazott algoritmustól, l, kulcs hossztól l stb. függ f nem a módszer típust pusától mint a titkos kulcsú rendszereknél l itt is a teljes kipróbálás (brute force) ) feltörés s legalább is elméletben letben mindig lehetséges de a gyakorlatban használt kulcsok a teljes kipróbálás meghiúsításánál l jóval j hosszabbak (> 512 bitesek esek) mert a titkosítás s alapját t képezk pező számelm melméleti leti probléma nehéz z irány nyának nak (pl. faktorizáci ció) ) kiszámítása sa ellen kell védekeznünknk pl. 512-bit RSA 64-bit DES, 1024-bit RSA 80-bit DES

A nyilvános nos kulcsú rendszerek biztonsága II a biztonság g a könnyű irány ny (titkosítás) s) és s a nehéz irány ny (feltörés) közötti k elég g nagy számítási si különbségen alapszik pl. RSA esetében könnyű irány = szorzás, s, (illetve hatványoz nyozás mod p) nehéz z irány = faktorizáci ció (prímt mtényezőkre bontás) általánosságban a,,nehéz z irány ny is algoritmussal megoldható,, de elég g nehézz zzé kell tennünk nk ahhoz, hogy a gyakorlatban kivitelezhetetlen legyen ehhez nagy (több százjegy zjegyű) ) számokra van szüks kség ezért a nyilvános nos kulcsú kriptográfia jóval lassabb a titkos kulcsúnál

RSA Rivest, Shamir & Adleman (MIT), 1977 a legismertebb és s legelterjedtebb nyilvános nos kulcsú algoritmus véges (Galois( Galois) ) test feletti hatványoz nyozáson alapszik valamilyen n modulusra nézven a b (mod n) kiszámításának időig igénye O((log n) 3 ) ez polinomiális lis a bemenet hosszának (log( n) függvényében /könny nnyű/ a modulus nagy szám (pl.. 1024 bit ) a biztonságát t a faktorizáci ció nehézs zsége adja erre ma csak superpolinomiális lis algoritmusok ismertek /nehéz/, pl. GNFS időig igénye ahol n a bemenet hossza

RSA Kulcsgenerálás Minden felhasználónak nak saját t nyilvános/mag nos/magán kulcspárra van szüks ksége, amit így generálhatunk: 1. válasszunk két k t nagy prímsz mszámot mot véletlenszerv letlenszerűen: en: p, q 2. számítsuk ki a modulust n=p q 3. ekkor φ(n)=(p-1)(q-1) ahol φ(n) az Euler féle φ függvény az {1,,n},n} számok közül k az n-hez n relatív v prímek száma, pl φ(6)= 2 4. válasszunk egy olyan e számot, melyre 1<e<φ(n) (n), (e,φ(n))=1 (n))=1 5. számítsuk ki azt a d értékét, t, melyre e d=1 mod φ(n) and 0 d n0 6. a nyilvános nos kulcs: PU={e,n} 7. a titkos kulcs: PR={d,n} p és q értékét t szintén n titokban kell tartani, vagy meg kell semmisíteni, bár b r sebesség g szempontjából, még m g jój jöhet

Az RSA használata az nyílt szöveget elősz ször 1 és n közötti számokkal kell kódolnunk, k legyen M a titkosítand tandó blokk értéke, ahol 0 M<n az M üzenet titkosításához a küldk ldő a címzettc PU={e,n e,n} nyilvános nos kulcsával kiszámítja a C = M e mod n értéket a C üzenet megfejtéséhez a címzett c a PR={d,n d,n} magánkulcs nkulcsát hasznáva kiszámítja az C d mod n értéket, ami éppen M

Miért működik m? az Euler-Fermat tétel tel szerint a φ(n) (n) mod n = 1, 1 amennyiben (a,n)=1 az RSA esetében: n=p q φ(n)=(p-1)(q-1) e és d egymás s inverzei mod φ(n) ezért e d=1+k φ(n) valamilyen k-ra ezért ha (M,n) = 1, akkor C d = M e d = M 1+k φ(n) = M 1 (M = M 1 (1) k = M 1 = M mod n az (M,n) 1, azaz az M=p vagy M=q eset hasonlóan an igazolható (HF!) (M φ(n) ) k

RSA minipélda - Kulcsgenerálás 1. Választott prímek mek: p=17 és q=11 2. Számítás: n = pq =17 11=187 11=187 3. Számítás: φ(n)=( )=(p 1) 1) (q-1)=16 10=16010=160 4. Választás e: melyre (e,160)=1; legyen e=7 5. Számítás d: melyre de=1 mod 160 és d < 160 Most d=23 mert 23 7=161=10 7=161=10 160+1160+1 6. Nyilvános kulcs: PU={7,187} 7. Magánkulcs: PR={23,187}

RSA minipélda titkosítás/megfejt s/megfejtés a példp ldát t folytatva legyen a nyílt szöveg M = 88 M szabályos blokk, mert 88<187 titkosítás: C = 88 7 mod 187 = 11 megfejtés: M = 11 23 mod 187 = 88

Gyors hatványoz nyozás modulo n az iterált négyzetreemelések módszerével (Square and Multiply Algorithm) gyors hatékony algoritmus (moduláris) hatványoz nyozásra a kitevő bináris reprezentáci cióját t tekintjük az alapot ismételten négyzetre n emeljük és s ezen hatványok közül k l azokat szorozzuk össze, amelyek a hatvány nyérték k kiszámításhoz shoz valóban kellenek, mert a kitevő megfelelő bitje 1-es1 így O(log 2 n) szorzás s kell, ha a kitevő legfeljebb n pl. 3 135 = 3 128 34 3 1 = 5 4 3 = 5 mod 11 mert 3 1 =3, 3 2 =9, 3 4 =4, 3 8= 5, 3 16 =3, 3 32 =9, 3 64 =4, 3 64 =5, 3 128 =5

a b mod n kiszámítása, sa, c = 0; f = 1 ahol b=b k b 0 for i = k downto 0 do c = 2 * c f = (f * f) mod n if b i == 1 then return f c = c + 1 f = (f * a) mod n Megj: c re nincs szükség csak szemlélteti a kitevő aktuális értékét

A titkosítás s hatékonyan megvalósíthat tható a titkosítás e kitevőre hatványoz nyozás mod n Ezért ha e kicsi, a titkosítás s gyorsabb gyakori választv lasztás: s: e=65537=(2 vagy szóba jöhet: j e=3 e or e=17 (2 16 +1) 16 +1 de ha e túl kicsi (pl. e=3) akkor feltörhet rhető ha e-t rögzítjük, akkor (e, φ(n))=1-t n megválaszt lasztásával kell biztosítanunk, tanunk, pl. elutasítva tva minden p-t és q-t melyekre p-1 és q-1 nem relatív v prímek e-hez

A megfejtés s is hatékony a megfejtés d-dikdik hatványra emelés d valósz színűleg nagy szám, különben k a rendszer nem biztonságos alkalmazható a kínai k maradékt ktétel tel a hatvány nyérték mod p majd mod q külön kiszámításához, majd a részeredmr szeredmények összekombinálásához ez kb. 4 szer gyorsabb mint a direkt módszerm csak a titkos kulcs, pontosabban p és q ismerője tudja ezt a gyorsítást st használni

RSA kulcsgenerálás s elmélete lete I Az RSA kulcsaihoz szüks kséges: két t nagy véletlen v prímsz mszám m meghatároz rozása: p és q e vagy d egyikének kiválaszt lasztása, sa, és s a másik m kiszámítása sa p és q nem lehet az n = p q szorzatból könnyen kiszámíthat tható pl. nem lehet az egyik sem túl t l kicsi nem eshetnek közel k a n négyzetgyökéhez p-1-nek és q-1-nek is kell, hogy legyen nagy prímoszt mosztója de (p-1,q 1,q-1) 1) kicsi legyen

RSA kulcsgenerálás elélete lete II általában a prímeket véletlen v generálással + valósz színűségi teszteléssel ssel állítják k elő Fermat teszt (néha hibás eredményt ad) Miller-Rabin teszt (valószínűségi teszt) Solovay-Strassen teszt (valószínűségi teszt) AKS teszt (determinisztikus, elméleti) ezért PRÍMEK P (2004-ben!) Ld: bonyolultságelm gelmélet let illetve http://en.wikipedia.org/wiki/primality_test a kitevők e, d egymás s inverzei mod φ(n) egymásb sból és φ(n) (n)-ből az általánosított Euklideszi algoritmussal számíthat thatók

Az RSA biztonsága lehetséges támadt madási típusok t ellene: a kulcsok teljes kipróbálása (kivitelezhetetlen a számok nagysága ga miatt) matematikai támadások időméréses támadt madások (a megfejtő algoritmuson) választott titkos szöveg alapú támadások

Matematikai támadt madások matematikai támadások fajtái: faktorizáci ció (n ből p és q meghatározása) φ(n) kiszámítása sa d direkt kiszámítása sa az első kettő egyforma nehéz: p és s q ismeretében φ(n)=( )=(p 1)( 1)(q-1) φ(n) és n ismeretében n = pq és φ(n)=( )=(p 1)( 1)(q-1) p-re és q-ra megoldható,, mert másodfokm sodfokú egyenletrendszer sejtés, s, hogy d kiszámítása sa is a faktorizáci cióval polinomiálisan lisan ekvivalens

A faktorizáci ció nehézs zsége a faktorizáló algoritmusok csak lassú ütemben fejlődnek (QS -> > GNFS -> > LS) Ld: Paul Zimmermann's factoring page 2005 májusm jusában a rekord 200 jegyű (663 bites es) ) szám felbontása LS (Lattice Sieve) ) algoritmussal (55 processzorév v lenne egyetlen 2.2 GHz Opteron CPU-val val.) pedig díjakat d is lehetett nyerni érte: Ld. RSA factoring challange: http://www.rsasecurity.com/rsalabs/node.asp?id www.rsasecurity.com/rsalabs/node.asp?id=2879 így ma egy 1024 vagy inkább 2048 bites RSA biztonságos feltéve, hogy p és q,e és d a feltételeknek teleknek megfelelően en és s valóban véletlenv letlenül l választott v az algoritmus biztonságosan implementált lt a titkos kulcs biztonságosan tároltt

Időméréses támadt madások (Timing Attacks) feltalálójuk Paul Kocher a 90-es évek közepk zepén különböző műveletek időig igénye eltérő pl. kis vagy nagy számmal való szorzás az IF-ek mely ága kerül l végrehajtv grehajtásra így a használt titkos kulcstól l (kitevő!) függ f a megfejtés s végrehajtv grehajtásának ideje az RSA erre igen érzékeny, mert a megfejtéskor a titkos kulcs a kitevő,, erősen hat az időig igényre védekezés s ellene konstans idejű hatványoz nyozás s implementálása (lassít) véletlen szünetek beiktatása blinding (megvakítás): véletlen v értékkel szorzás s a hatványoz nyozás s előtt, majd korrigálás s (csak + 2 102 %)

Választott titkos szöveg alapú támadás az RSA választott v titkos szöveg alapú támadásokra sérülékenys a támadt madó a feltöréshez titkos szövegeket jelölhet lhet ki, melyek megfejtését t megkapja választhatjuk titkos szövegeket úgy, hogy azok előseg segítsék k a kriptoanalízist ellenszere: a nyíltsz ltszöveg véletlen v szöveggel való feltölt ltése (padding( padding) nevezetesen: Optimal Asymmetric Encryption Padding (OASP) /bonyolult/

Felhasznált lt irodalom Virrasztó Tamás: Titkosítás és s adatrejtés: Biztonságos kommunikáci ció és s algoritmikus adatvédelem, delem, NetAcademia Kft., Budapest, 2004. Online elérhet rhető: http:// ://www.netacademia.net/book.aspx?id=1# William Stallings: Cryptography and Network Security,, 4th Edition, Prentice Hall, 2006. (Chapter 9) Lawrie Brown előad adás s fólif liái i (Chapter( 9) http://en.wikipedia.org/wiki/rsa /RSA