by: Janóczki Szilvia IV. évf.. matematika-számítástechnika

Slides:



Advertisements
Hasonló előadás
Egyszerű oszthatósági problémák
Advertisements

Oszthatósággal kapcsolatos feladatok pszeudokódban.
Készítette: Kosztyán Zsolt Tibor
Elemi algoritmusok Páll Boglárka.
FEJEZETEK A MATEMATIKÁBÓL
Készítette: Boros Erzsi
Kódelmélet.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Érettségi vizsga Visual Basic Express 2008-cal
Készítette: Mester Tamás METRABI.ELTE.  Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.
MI 2003/ A következőkben más megközelítés: nem közvetlenül az eloszlásokból indulunk ki, hanem a diszkriminancia függvényeket keressük. Legegyszerűbb:
Műveletek logaritmussal
Titkosítás Digitális aláírás Szabványosított tanúsítványok
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Prímtesztelés Témavezető: Kátai Imre Komputeralgebra Tanszék Nagy Gábor:
Euklidészi gyűrűk Definíció.
Egy f  R[x] polinom cS -beli helyettesítési értéke
Csoport részcsoport invariáns faktorcsoport részcsoport
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Programozási alapismeretek 10. előadás
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Sztringek.
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
Algebra a matematika egy ága
Informatikai biztonság alapjai 4. Algoritmikus adatvédelem Pethő Attila 2008/9 II. félév.
Informatikai biztonság alapjai 4. Algoritmikus adatvédelem
C A C nyelv utasításai.
Készítette: Pető László
Dr. Szalka Éva, Ph.D.1 Statisztika II. VII.. Dr. Szalka Éva, Ph.D.2 Mintavétel Mintavétel célja: következtetést levonni a –sokaságra vonatkozóan Mintavétel.
Digitális Aláírás ● A rejtjelező algoritmusokon alapuló protokollok közé tartozik a digitális aláírás is. ● Itt is rejtjelezés történik, de nem az üzenet.
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
A digitális számítás elmélete
A digitális számítás elmélete
Integrálszámítás Mire fogjuk használni az integrálszámítást a matematikában, hova szeretnénk eljutni? Hol használható és mire az integrálszámítás? (már.
6. SZÁMELMÉLET 6.1. Oszthatóság
Alkalmazott kriptográfia
M ODERN KORI KRIPTOGRÁFIA Három ember csak úgy tud megőrizni egy titkot, ha kettő közülük halott. „Benjamin Franklin” Hegedüs Dániel.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Az RSA algoritmus Fóti Marcell.
Ciklikus, lineáris kódok megvalósítása shift-regiszterekkel
Tömbök és programozási tételek
Hernyák Zoltán Programozási Nyelvek II.
Alapfogalmak.
Megyei Matematika verseny
Ha Caesar és Sándor Mátyás számítógépet használhatott volna...
Csempe Programozás érettségi mintafeladat
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Nagy Szilvia 13. Konvolúciós kódolás
Dodekaéder Hamilton köre
Valószínűségszámítás II.
Többdimenziós valószínűségi eloszlások
Nagy Szilvia 7. Lineáris blokk-kódok
Hibajavító kódok.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Nagy Szilvia 2. Lineáris blokk-kódok II.
Kriptográfia.
Nyilvános kulcsú titkosítás Digitális aláírás Üzenet pecsétek.
Programozás alapjai Készítette: Csiszár Nóra Anita
T i t k o s í r á s G R G P L H R I Z H N H V C L W H W W H
27. óra Kódolás, Dekódolás.
TITKOSÍTÁS.
Titkosítás.
A titkosítás története
Code kvíz a szlovák iskolában
IT hálózat biztonság Összeállította: Huszár István
IT hálózat biztonság Összeállította: Huszár István
Absztrakt problémák Q  I  S, az absztrakt probléma kétváltozós reláció az esetek (I) és a megoldások (S) halmazán Példa: legrövidebb út Eset: gráf és.
Előadás másolata:

by: Janóczki Szilvia IV. évf.. matematika-számítástechnika KRIPTOGRÁFIA by: Janóczki Szilvia IV. évf.. matematika-számítástechnika

„Ha az emberi agy képes egy rejtjelezett írás eljárásait megérteni, akkor egy másik agy követelheti ezt az utat, amikor egy ilyen út létezéséről tudomása van. Az egyedüli titkosírás az, amely elrejti a titkok meglétét.” Francis Bacon

Mi is a kriptográfia? Cryptographia=tikosítás A kriptográfia adatok, üzenetek rejtjelezésével (kódolás) foglalkozó tudomány. Szűkebb értelemben valóban a rejtjelezés a kriptográfia alapvető feladata: matematikai eszközökkel biztosítani azt, hogy stratégiai fontosságú adatok, üzleti információk, pénzügyi adatok, dokumentációk vagy személyiségi jogokat érintő adatok stb. csak az azok felhasználására kijelölt körben legyenek elérhetők, ne illetéktelenek birtokába.

Régmúlt idők titkosítása A titkosírás története egészen i.e. 1500-ig. nyúlik vissza, ekkor készült ugyanis az az ékírásos táblácska, amely az agyagmáz-készítés módját írta le, titkosítva. A görögök és a spártaiak már i.e. 475-ben használtak titkos kódokat, az itáliai reneszánsz idején pedig egyenesen virágkorát élte a titkosírás művészete. XIV. Lajos korában 587 véletlenszerűen kiválasztott elemből álló kódot használtak az állami üzenetek továbbításához.

Az 1800-as években Edgar Allan Poe novelláiban szereplő kódolt üzenetek felkeltették az olvasók érdeklődését, de a távíró és a Morse kód feltalálása is nagymértékben hozzájárult a titkosírás-titkosítás további fejlődéséhez. Az első világháborúban több nemzet készített mechanikus kódoló gépet, ami lehetővé tette a szövegek gyors és könnyű titkosítását, bonyolult rejtjelezéssel is. A titkosírás története itt vesz egy kisebb fordulatot, a kódok „feltörésének” története felé.

A mechanikus eszközök használata előtt nem használtak bonyolult rejtjelezést, mivel nagyon sok időt vett volna igénybe a szövegek, üzenetek kódolása és természetesen dekódolása is. Ebből kifolyólag viszonylag rövid idő alatt meg lehetett fejteni ezeket a kódokat. A megfejtés sokkal nehezebbé vált a kódoló gépek idejében, és a második világháborúban már az volt a hozzá vezető „legrövidebb” út, ha egyszerűen ellopják az ellenség kódoló gépét. Az a tény, hogy a szövetségesek birtokába került egy német kódoló gép - amiről a németek nem tudtak - valószínűleg befolyásolta a háború végső kimenetelét.

Az üzenethez kapcsolódó személyek KÜLDŐ KAPÓ ILLEGÁLIS BETOLAKODÓ

Kriptográfia részei klasszikus kriptográfia Két része van: klasszikus kriptográfia nyilvános kulcsú kriptográfia Vegyes módon szokták alkalmazni a titkosítást és akkor tényleg nagyon nehéz megfejteni a titkosított szöveget.

Klasszikus kriptográfia ezek a régi korok titkosításai ismerjük a módszert, hogy hogyan titkosítanak, akkor meg tudjuk fejteni a titkosított szöveget fejtési módszere: statisztikai módszerek a titkos szöveg általában betűkből áll

Nyilvános kulcsú kriptográfia modern titkosítási technika ismerjük a módszert, a fejtés még nem működik, nagyon nehezen tudjuk megfejteni fejtési módszere: statisztikai módszerek nem működnek bitsorozatokból, esetleg számokból áll a titkos szöveg

Nem matematikai módszerekkel való fejthetőség Nemcsak olyan titkosítási módszerek vannak, amelyeket matematikai módszerekkel lehet megfejteni. Vannak más módszerek is: láthatatlan tinta (tej) írás kopasz fejre CODE BOOK: titkosítás királya, a küldőnek is és a kapónak is van egy könyve, amelyben benne van, hogy melyik szónak mi felel meg

Titkosított szöveg Ek(T) A szöveg útja Titkosított szöveg Ek(T) Kódolt szöveg Szöveg T kódolás titkosítás Fejtett szöveg Dk(Ek(T)) Szöveg T fejtés dekódolás

kódolás: a szövegből valamiképpen számot csinálunk titkosítás: Ek titkosítási technika (encrypt) fejtés: Dk fejtési technika (decrypt) dekódolás: ezzel az eljárással visszakapjuk az eredeti szöveget

A jó titkosítás ismérvei: A XVII. században fogalmazta meg F. Bacon a jó titkosítás ismérveit: könnyű legyen a titkosított szöveg előállítása a fejtő kulcs ismeretében a fejtés könnyű legyen „A fejtő kulcs hiányában a fejtés lehetetlen legyen.” a titkosított szöveg legyen ártatlan kinézetű

Mikor lehetséges a fejtés: ha elég hosszú titkosított szöveg áll rendelkezésünkre (T, Ek(T)) pár ismeretében ha legális kapónak tüntetjük fel magunkat

MONOALFABETIKUS RENDSZEREK Caesar féle titkosítás A kulcsot az ábécé betűinek egy másik ábécével való helyettesítésével képezték, amelyet a nyílt ábécéhez viszonyítva három betűvel eltoltak. Nyílt ábécé: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Rejtjel ábécé: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Példa a rejtjelezésre: BUDAPEST = EXGDSHVW JULIUS CAESAR = MXOLXV FDHVDU

Kulcsszavas Caesar titkosítás Kulcsszó: SOMA Nyílt ábécé: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Rejtjel ábécé: S O M A B C D E F G H I J K L N P Q R T U V W X Y Z Példa a rejtjelezésre: KRIPTOGRAFIA = HQFNTLDQSCFS DEBRECEN = ABOQBMBK

Polybios módszere Polübiosz a harmadik pun háború nagy római hadvezérének volt a tanácsadója.

Példa ITT ALUDT, AKI ELADOTT EGY UBORKAGYALUT. ITTHON CSÜCSÜLÖK. U Az ábécé betűit magánhangzó párokkal helyettesítjük, ezeket a párokat észrevétlenül elrejthetjük szavakban. ITT ALUDT, AKI ELADOTT EGY UBORKAGYALUT. ITTHON CSÜCSÜLÖK. U Gyűjtsük páronként össze a szöveg magánhangzóit.

Megoldás IA UA IE AO EU OA AU IO UU OU Az elrejtett üzenet: KÜLDJ PÉNZT.

Hill-módszer Választunk egy tetszőleges mátrixot: például Például a titkosítandó szó: TEVE „e” és „f ” az ábécé betűinek a sorszáma: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Titkos képe TEVE GHML

Legális fejtő Ismeri: Példa: Titkos szöveg: GOIC Fejtsük meg az eredeti üzenetet!

PÉLDA: Titkosítsuk a CICA szót, majd mint legális fejtő, fejtsük vissza a titkosított szöveget, ezzel visszakapjuk az eredeti szót. Titkos képe CICA GOIC

Legális fejtés Titkosított szöveg: GOIC Titkos képe GOIC CICA

Affin kriptorendszer Választunk: a, b-t Két kép akkor egyezik meg ha:

POLIALFABETIKUS MÓDSZEREK Playfair módszer Kódolandó szöveg: MINDEN NAP HETFO (ékezet nélkül) MI PK NA CO FO EA ND YO PH AR EN TO ET TN

Ha a két betű egy sorban van: jobbra csúszás NE OT Kódolt szöveg MINDEN NAP HETFO PKYOTOCOARTNEA Ha a két betű egy sorban van: jobbra csúszás NE OT Ha a két betű egy oszlopban van: lefelé csúszás LE FV

Kulcsszavas Playfair módszer A kulcsszóban ne legyen betűismétlés és legyen elég hosszú. Kódolt szöveg MINDEN NAP HETFO FTFKUFHKYSLIMF

Blaise de Vigenére (1523-1596)

MARSM ARSM ARS MARSM (oszlop) LENNI VAGY NEM LENNI (sor) Kulcsszó: MARS Titkosítandó szöveg: LENNI VAGY NEM LENNI MARSM ARSM ARS MARSM (oszlop) LENNI VAGY NEM LENNI (sor) L képe: L. sor M. eleme E képe: E. sor A. eleme XEEFUVRYKNVEXEEFU Kódolt szöveg

Autoclave Cardano A Vigenére táblázat segítségével: Titkosítandó szöveg: AKI MER AZ NYER Titkosító kulcs: CER UZA AK IMER A Vigenére táblázat segítségével: Titkosított szöveg: COZGDRAJVKII AKI MER AZ NYER COZGDRAJVKII Kódolt szöveg

NYILVÁNOS KULCSÚ RENDSZEREK Knapsack (hátizsák) módszer Merkle-Hellman-féle algoritmus A nyilvános kulcsú kriptorendszerben van sok nevekkel ellátott, nyitott lakat, amelyeknek kulcsa a tulajdonosuknál van, bezárás után csak ők tudják kinyitni. Üzenet küldésekor a megfelelő névvel ellátott lakatot kattintják rá az acéldobozra, és úgy küldik el. A fogadó saját kulcsával fogja kinyitni a dobozt, így nincs is szükség a kulcs elküldésére. Szükséges viszont a nyitott lakatok és kulcsaik megfelelő szétosztása. Nyilvános kulcsú rendszerek: Órarend Utazóügynök problémája Rendezéses probléma Pakolási probléma

Pakolási probléma: Adottak különböző nagyságú hátizsákok és apróságok Pakolási probléma: Adottak különböző nagyságú hátizsákok és apróságok. A hátizsákokba kell bepakolnunk úgy, hogy a lehető legkevesebb hátizsákot használjuk fel. súlyok, apróságok Az ai apróságokra, azaz a sorozatra teljesülnie kell, hogy A hátizsákba súlyú felszerelés fér.

Visszafejtés Nyilvános kulcsú hátizsákrendszerben pár a titkos kulcs, a pedig a nyilvános kulcs. Visszafejtés és Értékek meghatározása után az könnyű hátizsákfeladat megoldásával történik.

hátizsák feladat Adott: Keressük: amelyre igaz az Példa:

Feladat: készítsük el A KRIPTO szó titkosítását és visszafejtését egy (A,t,m,B) hátizsákrendszerrel. t-1=1061, mert 25236 1061 1 (mod 55207) A=(103, 107, 211, 430, 863, 1718, 3449, 6907, 13807, 27610) B=(4579, 50316, 24924, 30908, 27110, 17953, 32732, 16553, 22075, 53620) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Titkosítás: Fejtés: A 0000100000 27110 863 KR 0101110010 148362 16925 Nyílt szöveg Bináris kód A 0000100000 27110 863 KR 0101110010 148362 16925 IP 0100110000 95379 2688 TO 1010001111 154483 52087 Fejtés: X=(0,1,0,1,1,1,0,0,1,0)

RSA algoritmus 1978-ban javasolt R. Rivest, A. Shamir és L. Adleman egy másik nyilvános kulcsú algoritmust. Az algoritmus a szerzők neve alapján az RSA nevet kapta. Választunk véletlenszerűen két nagy p és q prímszámot. Ezek nagyságrendje legalább 100 decimális jegy. Kiszámítjuk: modulust, és Választunk véletlenszerűen egy e számot Keresünk egy olyan d számot, amelyre fennáll az p, q és számokra továbbá nincs szükségünk. és és

Titkosítás Nézzünk egy példát a titkosításra: Regina Rudolfnak akar üzenni, akkor kikeresi Rudolf nyilvános kulcsát: KP=(n,e). Az üzenetet blokkokra kell vágni úgy, hogy az eredményül kapott, egy blokknak megfelelő számok ne legyenek nagyobbak Rudolf n modulusánál. KP=d titkos kulcsot jól védett helyen kell tárolni. Titkosítsuk a TITOK szót. A kódolást az ASCII táblázat alapján végezzük el. Minden blokk egy betűből áll, és kódja nem haladja meg a modulusok értékét.

Regina titkosít Rudolf számára Rudolf visszafejt

Digitális aláírás Regina aláírja a TITOK szöveget. Ehhez először göngyölített XOR művelet segítségével kiszámítja az MD kivonatot.

nyilvános kulcs ismeretében Göngyölített XOR művelet eredménye. Az aláírást: érték adja. Az ellenőrzést: nyilvános kulcs ismeretében számítás adja. Az aláírás és a titkosítás egymástól független, így lehet küldeni titkosított és aláírt üzenetet is.

PRÍMTESZTEK Álprímek tesztelése Ha n prím, akkor Azt modjuk, hogy az n szám „a” alapú álprím, ha n összetett és ÁLPRÍM(n) if MODULÁRIS-HATVÁNYOZÓ(2,n-1,n) 1 (mod(n)) then return ÖSSZETETT Valóban! else return PRÍM Reméljük! Ez az eljárás csak egyféleképpen adhat hamis végeredményt. Ha azt hozza ki, hogy n összetett, akkor az állítás mindig helyes. Ha pedig azt állítja, hogy n prím, csak akkor hibázik, ha az n szám 2 alapú álprím.

A Miller-Rabin valószínűségi prímteszt TÉTEL: Legyen: n>2 és n páratlan, , ahol r páratlan. Ha vagy valamely esetén. TESZT: Ha nem igaz, akkor n összetett. Ha igaz, akkor szukcesszív gyökvonást végzünk.

Ha -től különböző értéket kapunk, akkor n nem prím. Ha +1-et kapunk, akkor folytatjuk a gyökvonást. Ha -1-et kapunk, akkor „a” tanúskodik n prímsége mellett. „a” tanúskodik n prímsége mellett

TANÚ Algoritmus TANÚ(a,n) 1 legyen az n-1 bináris alakja 2 d 1 3 for i k downto 0 4 do x d 5 d 6 if d=1 és x=1 és x=n-1 7 then return IGAZ 8 if 9 then d 10 if d=1 11 then return IGAZ 12 return HAMIS Az n-1 bináris reprezentációját határozza meg, amit arra használunk, hogy az a számot az n-1 hatványra emeljük. Kiszámítja a értékét. Amikor azonban az 5. sorban négyzetre emel, a 6-7. sorokban rögtön leellenőrzi, hogy nem jelent-e meg az 1-nek nem triviális négyzetgyöke modulo n. Ha igen, az algoritmus leáll, és IGAZ kijelentést ad. Akkor szolgáltatnak IGAZ kifejezést, ha a-1 mod n nem 1.

Ha a TANÚ algoritmus a 11. sorban az IGAZ eredményt adja, akkor azt fedezte fel, hogy Ha azonban n prím, akkor Fermat-tétele szerint minden elemre. Emiatt n nem lehet prím, és a bizonyíték erre. Ha a TANÚ algoritmus a 7. sorban ad IGAZ kijelzést, akkor pedig felfedezte, hogy x az 1-nek nem triviális négyzetgyöke modulo n, mivel ekkor ugyanakkor mégis teljesül. Ha n összetett, akkor lesz az 1-nek nem triviális négyzetgyöke modulo n. Így, ha x-ről belátjuk, hogy az 1-nek nem triviális négyzetgyöke modulo n, akkor ez bizonyíték arra, hogy n összetett.

MILLER-RABIN(n,s) 1 for j to s 2 do a VÉLETLEN(1,n-1) 3 if TANÚ(a,n) 4 then return ÖSSZETETT 5 return PRÍM A Miller-Rabin prímteszt valószínűségi kereséssel bizonyítja, hogy n összetett. A fő ciklus az 1. sorban kezdődik a halmazból véletlenszerűen kiválaszt s darab a értéket 2. sor. Ha a kiválasztott a számok valamelyike az n összetettségére tanú, akkor a MILLER-RABIN teszt ÖSSZETETT kijelzést ad a 4. sorban. Ez az eredmény mindig helyes, amit a TANÚ algoritmus szavatol. Ha az s darab szám egyike sem tanú, akkor a MILLER-RABIN teszt feltételezi, hogy ilyenkor egyáltalán nem is lehet tanút találni, ezért n prím. Tényleg. Majdnem biztosan.

FAKTORIZÁLÁS Fermat-féle faktorizáció Tegyük fel, hogy az n egész számot faktorizálni akarjuk, azaz fel akarjuk bontani prímek szorzatára. Fermat-féle faktorizáció Kölcsönösen egyértelmű megfeleltetés van az n szám alakú faktorizációja és az n szám alakú előállítása között. Ez akkor működik, ha a faktorizálásnál a és b „közel” van egymáshoz.

Példa: Faktorizáljuk: 200819 teljes négyzet

Módosított változat: Ha van közös prímtényező, az lesz a faktor. Ha nincsennek „közel” a faktorok egymáshoz. Ha van közös prímtényező, az lesz a faktor.

Példa: Faktorizáljuk: 141467 A LNKO meghatározása Euklideszi algoritmus alapján.

Pollard-féle heurisztikus módszer Legyen f egy tetszőleges függvény, amely előállítja maradékosztályoknak önmagára való leképezését. Például: Általában egy véletlen polinom. Tetszőlegesen „kicsi” pont. Iterációval előállítjuk a pontsorozatot. n db Az iterációval előállított pontok esetén teszteljük LNKO-t.

n=91 91 egyik faktora:7

POLLARD 1 lnko és 2 VÉLETLEN(0,n-1) 3 4 5 while IGAZ 6 do 7 8 9 if 10 then d kinyomtatása 11 if i=k 12 then 13 i értéke 1 lesz x1 pedig a Zn véletlenszerűen választott eleme lesz elmenti x1 értékét k értéke 2 lesz n osztóit keresi i értéke egyesével nő x1, x2, x3, x4... végtelen sorozat soron következő elemének kiszámítása lnko n egyik prímtényezőjét próbálja megtalálni, az y-ban tárolt értékeket és az xi aktuális értékét felhasználva, ha d az n nem triviális osztója, akkor kinyomtatja d értékét és A program elmenti a 2-hatvány indexű xi legújabb kiszámított értékeit az y változóba. Azaz az: x1, x2, x4, x8, x16,… számokat. k értéke megduplázódik, amikor y átíródik, k az 1,2,4,8,… értékeket veszi fel, és mindig az ennek megfelelő indexű xk számokat tárolja y-ban.

310 996 396 814 84 x7 177 120 x6 1186 529 339 x5 1194 595 1053 x4 63 x3 8 x2 3 x1 2

x7” 31 x4’ 11 x6” 18 6 x7’ 47 x5” 26 x6’ x3’ 8 x4” 63 x3” 8 x2’ 3 16 x5’ x2” 3 x1’ 2 x1” 2