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

Hasonló dokumentumok
Sapientia Egyetem, Matematika-Informatika Tanszék.

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

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

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

2016, Diszkrét matematika

Sapientia Egyetem, Matematika-Informatika Tanszék.

Kriptográfia I. Kriptorendszerek

2016/11/27 08:42 1/11 Kriptográfia. Titkosítás rejtjelezés és adatrejtés. Rejtjelezés, sifrírozás angolosan: cipher, crypt.

2016, Diszkrét matematika

Kriptográfiai alapfogalmak

2016, Diszkrét matematika

2018, Diszkre t matematika. 10. elo ada s

2017, Diszkrét matematika

2015, Diszkrét matematika

Modern titkosírások és a matematika

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

Diszkrét matematika I.

Elemi alkalmazások fejlesztése I.

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

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

2018, Diszkrét matematika

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

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Számelméleti alapfogalmak

Mátrixok 2017 Mátrixok

2016, Diszkrét matematika

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

3. Kriptográfia (Jörg Rothe)

Adatok titkosítása. Hálózatok biztonsága. IV. mérési utasítás SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Data Security: Access Control

Emlékeztet! matematikából

MA1143v A. csoport Név: december 4. Gyak.vez:. Gyak. kódja: Neptun kód:.

C programozási nyelv

5. Előadás. (5. előadás) Mátrixegyenlet, Mátrix inverze március 6. 1 / 39

Információs társadalom alapismeretek

Módszerek és eszközök a kriptográfia oktatásakor

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Titkosítási rendszerek CCA-biztonsága

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Transzformációk síkon, térben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Diszkrét matematika I.

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. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

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

Elektronikus aláírás és titkosítás beállítása MS Outlook 2010 levelezőben

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Alapvető polinomalgoritmusok

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

Windows biztonsági problémák

Oktatási cloud használata

Algoritmuselmélet gyakorlat (MMN111G)

Vektorok, mátrixok, lineáris egyenletrendszerek

Data Security: Access Control

3. Osztályok II. Programozás II

Számítási feladatok a Számítógépi geometria órához

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Data Security: Public key

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Valasek Gábor

Gyökértanúsítványok telepítése Windows Mobile operációs rendszerekre

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Az Outlook levelező program beállítása tanúsítványok használatához

A Code::Blocks fejlesztőkörnyezet

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Dr. Schuster György október 14.

Nemzeti Közszolgálati Egyetem. Vezető-és Továbbképzési Intézet. Bérczes Attila Pethő Attila. Kriptográfia

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

A házifeladatban alkalmazandó XML struktúra

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

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

Data Security: Concepts

KR TITKOSÍTÓ PROGRAM. Felhasználói leírás. v március 12.

KÓDOLÁSTECHNIKA PZH december 18.

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 31. Széchenyi István Egyetem, Gy r

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

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

HÁLÓZATBIZTONSÁG II. rész. Összeállította: Huszár István

Pontfelhő létrehozás és használat Regard3D és CloudCompare nyílt forráskódú szoftverekkel. dr. Siki Zoltán

1. Alapok. Programozás II

BASH SCRIPT SHELL JEGYZETEK

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

2018, Diszkrét matematika

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:

Diszkrét matematika 2.

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








Átírás:

Kriptográfia és Információbiztonság 2 előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@mssapientiaro 2016

Miről volt szó az elmúlt előadáson? Félévi áttekintő Könyvészet Történelmi háttér Klasszikus kriptográfiai rendszerek: Eltolásos rejtjelezések: Caesar-titkosító, Keyword Caesar

Miről lesz szó? Klasszikus kriptográfiai rendszerek, matematikai modell Helyettesítéses rejtjelezés: affin-titkosító, Mátrixos rejtjelezés: Hill módszere az NTL könyvtárcsomag

A klasszikus titkosítás matematikai modellje Legyen M a nyílt-szövegek egy véges halmaza, C a rejtjelezett-szövegek egy véges halmaza, K a kulcsok egy véges halmaza Három algoritmust értelmezünk: Gen, a kulcs-generáló algoritmus, meghatározza a key kulcsot, Enc key a rejtjelező algoritmus, a key kulcs alapján, meghatározza az m M nyílt-szöveg rejtjelezett értékét: c Enc key (m), Dec key a visszafejtő algoritmus, a key kulcs alapján visszafejti a c rejtjelezett-szöveget: m Dec key (c) A rendszer helyessége érdekében megköveteljük: Dec key (Enc key (m)) m, minden m M esetében Számos klasszikus titkosítási rendszer létezik: Caesar, Vigenere, Palyfair, Hill, stb

Az Affin rejtjelezés helyettesítéses, monoalfabetikus rejtjelezés, M C {0, 1,, 25} Z 26, K {(a, b) Z 26, gcd(a, 26) 1}, key (a, b): Enc(m) (a m + b) (mod 26), Dec(c) a 1 (c b) (mod 26) Megjegyzés: 1 a 1, az a multiplikatív inverze (mod 26) szerint: Feltörési módszerek: a a 1 1 (mod 26) 1 gyakoriság vizsgálat, 2 az összes lehetséges kulcs kipróbálása, kulcsok száma: 312, 3 ismert nyílt-szöveg támadás: ha rendelkezünk két betű rejtjelezett értékével

Az Affin rejtjelezés - példa Ha a kulcs (5, 2) és a nyílt-szöveg a következő: akkor a titkosított-szöveg: AMATHEMATICIAN, CKCTLWKCTQMQCP, ahol a titkosított-szöveg első 6 karakterét a következőképpen határoztuk meg: A > C : (5 0 + 2) 2 (mod 26) M > K : (5 12 + 2) 10 (mod 26) A > C : (5 0 + 2) 2 (mod 26) T > T : (5 19 + 2) 19 (mod 26) H > L : (5 7 + 2) 11 (mod 26) E > W : (5 4 + 2) 22 (mod 26) A visszafejtéshez szükséges kulcs: (21, 2), mert 5 21 105 1 (mod 26), azaz, 5 multiplikatív inverze (mod 26) szerint 21

Az Affin rejtjelezés - ismert nyílt-szöveg támadás Ha ismertek az m 1, m 2, c 1, c 2, akkor a következő kongruencia-rendszer megoldásával, megállapítható a titkosításhoz használt (a, b) kulcs: m 1 a + b c 1 (mod 26) m 2 a + b c 2 (mod 26) (m 1 m 2 ) a (c 1 c 2 ) (mod 26) a (m 1 m 2 ) 1 (c 1 c 2 ) (mod 26) b (c 1 m 1 a) (mod 26) vagy b (c 2 m 2 a) (mod 26) Ha létezik multiplikatív inverz, akkor az meghatározható : a kiterjesztett Euklideszi algoritmussal, az összes érték kipróbálásával (26 szorzás szükséges)

Hill módszere, példa, titkosítás 1929-ben publikálta Lester S Hill, polialfabetikus rendszer, az első blokk titkosítók egyike Legyen d 2, az egyszerre titkosítható szimbólumok száma, M C Z 2 26, és ( ) 3 3 key, 2 1 ha a nyílt szöveg: AM AT HE MA TI CI AN, akkor a titkosított szöveg: KM FT HQ KC DW EE NN, az első két betű-tömb titkosítása: ( ) ( ) ( 3 3 A 3 3 2 1 M 2 1 ( 3 3 2 1 ) ( A T ) ( 3 3 2 1 ) ( 0 12 ) ( 0 19 ) ( 10 12 ) ( 5 19 ) ( K M ) ( F T ), )

Hill módszere, példa, visszafejtés a visszafejtéshez meg kell határoznunk a kulcs inverz értékét, azaz a determináns, majd az inverz mátrix értékét ( ) 3 3 key esetében (det key) 1 3 ( 2) 3 9, 2 1 gcd(9, 26) 1 (det key)-nek létezik inverze, ahol (det key) 1 3, mert 9 3 1 (mod 26) ( ) 1 3 az adjungált mátrix: (adj key) 2 3 az inverz mátrix: key 1 (det key) 1 (adj key) 3 az első két betű-tömb visszafejtése: ( ) ( ) ( 3 9 K 3 9 6 9 M 6 9 ( 3 9 6 9 ) ( F T ) ( 3 9 6 9 ( 1 3 2 3 ) ( 10 12 ) ( 5 19 ) ( 3 9 6 9 ) ( 0 12 ) ( 0 19 ) ) ( A M ) ( A T ), )

Hill módszere, általános esetben M C Z d 256, a key egy d d-es mátrix, melynek elemei Z 256, jelöljük a mátrix i, j elemét k i,j -vel, legyen m (m 1, m 2, m d ) M a nyílt szöveg egy d hosszúságú blokkja, melyet egy lépésben fogunk titkosítani, a titkosítás során meghatározzuk a nyílt szöveg egy lineáris transzformációját: c (c 1, c 2, c d )-t,

Hill módszere Enc key (m) : c key m (c 1, c 2, c d ) k 1,1 k 1,2 k 1,d k 2,1 k 2,2 k 2,d k d,1 k d,2 k d,d m 1 m 2 m d Dec key (c) key 1 c key 1 létezik, ha (det key) (det key) 1 1 (mod 256), key 1 (det key) 1 (adj key) (mod 256), ahol (adj key) az adjungált mátrix ha d 2, akkor egyszerűen meghatározható az inverz mátrix ( ) ( ) k1,1 k key 1,2 és key k 2,1 k 1 (det key) 1 k2,2 k 1,2 2,2 k 2,1 k 1,1 általános esetben több algoritmus is létezik C++ alatt lehet használni Shoup NTL könyvtárcsomagját

Az NTL könyvtárcsomag Victor Shoup: NTL könyvtárcsomag (Windows és Linux disztribuciók) A statikus könyvtár létrehozása (Win): töltsük le és csomagoljuk ki a, pl a WinNTL mappába: http://wwwshoupnet/ntl/downloadhtml hozzunk létre egy új projektet: New Project Win32 ConsoleApplication, adjunk egy nevet a projektnek, legyen ez NTLLib, jelöljük be a Static library opciót ne legyen bejelölve a Precompiled header opció, a Source Files-hoz az Add Existing Item menüpont segítségével adjuk hozzá a WinNTL\src mappából az összes állományt, a Project/NTLLib/Properties menüpontnál az Additional Include Directories-nél adjuk meg a header állományok elérési útvonalát: \WinNTL\include a Build\Bulid\Solution parancs megadásával létrejön a NTLLib\Debug mappában a statikus könyvtár

Az NTL könyvtárcsomag, használat Hozzunk létre egy új projektet: New Project Win32 Console Application, adjunk egy nevet a projektnek, legyen ez Labor6, jelöljük be a Empty project opciót a Labor6 project-hez az Add Existing Item menüpont segítségével adjuk hozzá az NTLLib Debug mappából a létrehozott statikus könyvtárat, a Project/NTLLib/Properties menüpontnál az Additional Include Directories-nél adjuk meg a header állományok elérési útvonalát: \WinNTL\include

Az NTL könyvtárcsomag, használat a forráskódba: #ifndef _ZZ_ #define _ZZ_ #include <NTL/ZZh> #include <NTL/matrixh> #include <NTL/mat_ZZh> #endif NTL_CLIENT ZZ d; a nagy számok kezelésére szolgáló típus, Mat<ZZ> A; mátrix kezelésére alkalmas típus, ASetDims(n, n); az A mátrix méretének a beálĺıtása, ANumRows(); sorméret lekérdezés, ANumCols(); oszlopméret lekérdezés, inv(d, inva, A, 0); meghatározza az A mátrix determinánsát, a d változóba illetve azt az inva mátrixot, amelyre teljesül: (A * inva) / d I

Hill módszere - ismert nyílt-szöveg támadás, d 2 Ha ismertek az m, ˆm, c, ĉ, tömb-párok értékei, ahol az m rejtjelezett értéke c és az ˆm) rejtjelezett értéke ĉ), akkor a következő rendszer megoldásával, megállapítható a titkosításhoz használt key kulcs, ( ) ( ) ( ) ( ) m1 c1 ˆm1 ĉ1 legyen m, c, ˆm, ĉ, m 2 c 2 ˆm 2 ĉ 2 feĺırható: ( ) ( ) m1 ˆm key 1 c1 ĉ 1 m 2 ˆm 2 c 2 ĉ 2 ( ) ( ) 1 c1 ĉ key 1 m1 ˆm 1 c 2 ĉ 2 m 2 ˆm 2 hasonló támadási stratégia alkalmazható nagyobb blokk méret esetében