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.

Hasonló dokumentumok
C# nyelvhez kapcsolódó programozási feladatok

Elemi adatszerkezetek

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

Algoritmizálási feladatok

Kriptográfiai alapfogalmak

Kriptográfia I. Kriptorendszerek

2019/02/11 10:01 1/10 Logika

2016/11/29 11:13 1/6 Digitális átvitel

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

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

Diszkrét matematika I.

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

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

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

Valószínűség-számítás, statisztika, titkosítási és rendezési algoritmusok szemléltetése számítógép segítségével Kiss Gábor, Őri István

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

A szimmetrikus titkosítás s első generáci

INFORMATIKAI ALAPISMERETEK

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

Az Informatika Elméleti Alapjai

Programozási tételek feladatok

Data Security: Access Control

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:

Információs társadalom alapismeretek

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

Elemi adatszerkezetek

2017/01/27 08:59 1/6 Gettext Rendszer

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

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

Objektumorientált programozás C# nyelven

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

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

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

IT alapok 11. alkalom. Biztonság. Biztonság

Titkosírás Biztos, hogy titkos? Biztonság növelése véletlennel Wettl Ferenc előadása 2010 december 7.

Bevezetés a programozásba I.

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

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Infóka verseny. 1. Feladat. Számok 25 pont

XII. Bolyai Konferencia. Bodnár József Eötvös Collegium II. matematikus, ELTE TTK

Modern szimmetrikus kulcsú rejtjelezők kriptoanalízise

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

INFORMATIKAI ALAPISMERETEK

Tudnivalók az otthon kidolgozandó feladatokról

LibreOffice Makró Basic

Kriptográfia házi használatra Szeptember 26

2. Előadás. rendszerek. Dr. Németh L. Zoltán

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

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

Algoritmusok és adatszerkezetek 2.

JELENTKEZÉSI LAP. Név: Osztály: cím (továbbjutásról itt is értesítünk): Iskola: Felkészítő tanár:

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

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.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java és web programozás

Informatikai Rendszerek Alapjai

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Sapientia Egyetem, Matematika-Informatika Tanszék.

Titkosítás NetWare környezetben

Modern titkosírások és a matematika

PGP. Az informatikai biztonság alapjai II.

Java és web programozás

C# feladatok gyűjteménye

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

H=0 H=1. Legyen m pozitív egészre {a 1, a 2,, a m } különböző üzenetek halmaza. Ha az a i üzenetet k i -szer fordul elő az adásban,

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Sapientia Egyetem, Matematika-Informatika Tanszék.

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

néhány cikk a titkosításról és annak gyakorlati alkalmazásairól

Data Security: Access Control

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

BME MOGI Gépészeti informatika 5.

Informatika terméktervezőknek

Dandé Fanni. Titkosírások

Biztonság, védelem a számítástechnikában

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

Java és web programozás

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

Data Security: Public key

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java II. I A Java programozási nyelv alapelemei

Készítette: Nagy Tibor István

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

E mail titkosítás az üzleti életben ma már követelmény! Ön szerint ki tudja elolvasni bizalmas leveleinket?

117. AA Megoldó Alfréd AA 117.

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

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

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Emlékeztet! matematikából

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

Diszkrét matematika 2.C szakirány

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

TUDOMÁNYOS ISMERETTERJESZTŐ TÁRSULAT

Szoftvertechnológia alapjai Java előadások

A C programozási nyelv III. Pointerek és tömbök.

Átírás:

2016/11/27 08:42 1/11 Kriptográfia < Kriptológia Kriptográfia Szerző: Sallai András Copyright Sallai András, 2011, 2014, 2015 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Bevezetés Titkosítás rejtjelezés és adatrejtés. Rejtjelezés, sifrírozás angolosan: cipher, crypt. titkos kulcsú kódolás - hagyományos kódolások nyilvános kulcsú kódolás Igazi biztonságnak azt tekintjük, ha tetszőleges nyílt szöveg esetén is biztonságos a titkosítás. A kódolás mindig kétféle alapmódszeren alapszik: helyettesítés - más szimbólumokkal helyettesítjük az eredetit keverés - a sorrendben változtatunk Hagyományos kódolás Konvencionális vagy egykulcsos és szimetrikus blokk-kódolás néven is ismert. A nyílt adatból blokkokat készítünk. Legyen ez x. x = (x 1,x 2,x 3,x 4, x M ) Ezt hívjuk plaintext-nek is. A titkosító egy algoritmussal ebből előállítja a titkosított szöveget. Legyen ez y

Last update: 2015/01/07 13:19 oktatas:kriptológia:kriptográfia http://szit.hu/doku.php?id=oktatas:kriptol%c3%b3gia:kriptogr%c3%a1fia y = (y 1,y 2,y 3,y 4, y N ) Ezt hívjuk ciphertextnek angolul. A kódolás angolul encrypt. A titkosítást ez után jelöljük egy nagy E betűvel. A dekódolás angolul decrypt. A visszafejtést ez után jelöljük egy nagy D betűvel. A kódolást jelöljük E k, ahol a k a titkosító algoritmus és annak inverze, amelyet ismételgetünk. Vagyis k = (k 1, k 2, k 3, k 4, k M Ezek után a kódolás így írható fel képlettel: y = E k (x) A visszafejtés képlettel: x = D k (y) Helyettesítés Betűnkénti helyettesítés 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 B U R K O L A T C D E F G H I J M N P Q S V W X Y Z A felső ábécé alá írtam egy értelmes szót, amiben minden karakter csak egyszer fordul elő. Utána írtam az ábécé megmaradt betűit sorrendbe. Az üzenet olvasója tehát a burkolat szót kell, hogy ismerje az üzenet visszafejtéséhez. A holnap reggel szöveg ezek után így titkosítható: TIFHBJ NOAAOF A nyílt üzenet és a titkosított üzenet blokk hossza ugyanaz. Ha kihagyjuk a szóközöket az üzenet nehezebben visszafejthető: TIFHBJNOAAOF Keverés Más néven: Transzpozíció Permutáció használata A nyílt szöveget például 8 karakteres tömbökre osztjuk. A következő lépésben blokkonként kódolunk a következő permutáció szerint: http://szit.hu/ Printed on 2016/11/27 08:42

2016/11/27 08:42 3/11 Kriptográfia 1 2 3 4 5 6 7 8 6 3 1 7 2 8 4 5 Az 1-es helyen lévő karaktert a 6-os helyre, a 2-es helyen lévő karaktert 3-as helyre, stb. A kulcs a megfejtéshez az aktuális permutáció. A módszer keverhető a helyettesítő módszerrel. A holnap reggel szöveg titkosítása: Indexek 1 2 3 4 5 6 7 8 9 10 11 12 Nyílt szöveg h o l n a p r e g g e l Permutáció 7 9 12 4 10 2 11 8 6 5 1 3 Kód e p l n g g h e o a r l Caesar titkosítás Az eredeti Caesar titkosításban tulajdonképpen eltoljuk az ábécét 3 betűvel jobbra. 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 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 Az a betű helyett tehát d írok. A b betű helyett e-t. A hideg kódolása például: klghj Az ábécét megfeleltetjük számoknak is. A = 0, B = 1, C = 2, Z = 25 A nyílt szövegen karakterenként végrehajtjuk a következő műveletet: y i = x i + k i (mod 26) i = 1, 2,, M moduló összeadásával kódoljuk Dekódolás x i = y i -k i (mod 26)

Last update: 2015/01/07 13:19 oktatas:kriptológia:kriptográfia http://szit.hu/doku.php?id=oktatas:kriptol%c3%b3gia:kriptogr%c3%a1fia ROT13 Az eltolás mindig 13. Program01.java class Program01 { public static String rot13(string input) { StringBuilder output = new StringBuilder(); for(int i=;i<input.length();i++) { char ch = input.charat(i); if(ch >= 'a' && ch <= 'm') { output.append((char)(ch + 13)); }else if(ch >= 'n' && ch <= 'z') { output.append((char)(ch - 13)); }else if(ch >= 'A' && ch <= 'M') { output.append((char)(ch + 13)); }else if(ch >= 'N' && ch <= 'Z') { output.append((char)(ch - 13)); }else { output.append(ch); } } return output.tostring(); http://szit.hu/ Printed on 2016/11/27 08:42

2016/11/27 08:42 5/11 Kriptográfia } } public static void main(string[] args) { System.out.println(rot13("titkos fogadas")); } Linuxokon a játékok között található egy rot13 parancs, amely megvalósítja a titkosítást. Debian alapú rendszereken a telepítése: apt-get install bsdgames Használata: echo titok rot13 Affin rejtjelezés Monoalfabetikus rejtjelezés. Kódolás: 0 a a 24 (a,25) = 1 Ahol x a kódolandó karakter, az m a használt ábécé nagysága (angol ábécé esetén 26). Dekódolás: Az reciproka az m-nek. Támadható gyakoriságelemzéssel. Homofonikus titkosítás A betűk gyakorisága alapján, még annyi kódot adunk az adott betűhöz, ahány százalékos a gyakorisága. 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 18 36 23 29 66 35 57 43 89 84 76 39 55 41 61 14 31 22 47 50 27 34 42 58 40 56 53 73 64 54 82 77 69 94 33 30 74 92 67 32 70 48 80 59 45 26

Last update: 2015/01/07 13:19 oktatas:kriptológia:kriptográfia http://szit.hu/doku.php?id=oktatas:kriptol%c3%b3gia:kriptogr%c3%a1fia 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 71 60 72 95 24 99 97 87 62 15 05 02 98 52 25 65 85 75 80 63 79 01 16 07 19 37 86 78 81 88 20 04 17 49 83 96 68 90 93 03 13 10 20 12 91 06 51 46 11 28 21 10 38 44 Törése: A nyelv jellegzetességeit keressük, minthogy az angolban a q után csak u állhat. Vigenére Polialfabetikus kód, többféle kódábécét használ. Giovan Batista Belaso írta le 1553-ban elsőként, de Blaise de Vigenère nevéhez fűzik. A különböző Caesar kódok használatához Blaise de Vigenère (1523-1596) francia diplomata, fordító, kriptológus és alkimista készített elsőként egy táblázatot, amely segít a kódolásban és a visszafejtésben. Különböző Caesar-kódok sorozatát használjuk, a következő táblázat alapján: 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 A 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 B 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 C 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 D 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 E 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 D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P R R http://szit.hu/ Printed on 2016/11/27 08:42

2016/11/27 08:42 7/11 Kriptográfia 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 T T U V W X Y Z A B C D E F G H I J U U V W X Y Z A B C D E F G H I J V V W X Y Z A B C D E F G H I J W W X Y Z A B C D E F G H I J X X Y Z A B C D E F G H I J Y Y Z A B C D E F G H I J Z Z A B C D E F G H I J K L M N O P Q R S K L M N O P Q R S T K L M N O P Q R S T U K L M N O P Q R S T U V K L M N O P Q R S T U V W K L M N O P Q R S T U V W X K L M N O P Q R S T U V W X Y Legyen a lekódolandó szöveg reggel támadunk. Választok egy kulcsot, mondjuk titok. Leírom ismétlések nélkül: tiok Utána írom a fennmaradó ábécét: tiokabcdefghjl Csak az l betűig írtam le, de nem is lesz többre szükség. Aláírom a kódolandó szöveget: tiokabcdefghjl reggeltamadunk Az r betű titkosítása: Az r-dik sorban megkeresem a t-dik betűt: h A következő e-dik sorban, megkeresem az i-dik betűt. Kircher-féle rejtjel Polialfabetikus helyettesítés, amely a Vigenére rejtjelen alpszik. Athanasius Kircher dolgozta ki, aki 1602 és 1680 között élt jezsuita páter. A XVII. században jelentős tudós. A Vigenére rejtjelezéssel teljesen megegyezi, de a kód betűi helyett azok ábécében elfoglalt helyét írjuk fel. Az eljárás az eredeti szöveg növekedésével jár. Véletlen átkulcsolás One-time pad (OTP) Magyarul szokták még egyszeres átkulcsolás néven emlegetni. A titkosítandó szöveg mindenegyes karakteréhez külön kódot rendelek. A kulcs hossza így megegyezik a tisztaszöveg hosszával.

Last update: 2015/01/07 13:19 oktatas:kriptológia:kriptográfia http://szit.hu/doku.php?id=oktatas:kriptol%c3%b3gia:kriptogr%c3%a1fia Elméletileg és gyakorlatilag törhetetlen, mivel semmilyen összefüggés nem ismerhető fel a titkosított szöveg egyes karakterei között. Playfair-rejtjel Digrafikus helyettesítő rejtjel. 1854-ben Charles Wheatstone találta fel, de legfőbb támogatójának, Lord Playfairnek a nevét viseli. Az ábécét felírjuk egy 5 5-ös mátrixba: a b c d e f g h i j k l m n o p r s t u v w x y z A titkosítandó szöveget betűpárokba rendezzük. Legyen a titkosítandó szöveg például: holnap nyitas Betűpárokat alakítunk ki: ho ln ap ny it as Vegyük az első betűpárt. A h és az o egy különböző sorban és oszlopban vannak, és meghatározzák egy négyzet bal felső és jobb alsó sarkát. Ennek a négyzetnek veszem a jobb felső és bal alsó sarkát, az itt lévő betűk lesznek a kódok. jm A következő betűpáros az ln. Elhelyezkedésüket tekintve nem alkotnak négyzetet, mert egy sorban vannak. Ilyenkor j betű helyett a j után következő betűt írom le, az m helyett az az utána következőt. Ha az ma a tábla végén lenne, akkor a vele azonos sorban a tábla első oszlopában lévő betűt írom le. jm mo A következő betűpár az ap. Az ap sem alkot négyzetet a táblázatban, mert a két betű egy oszlopban van. Így az mindkét betű alatt lévő betűket írom fel. Ha egyik betű az utolsó sorban lenne, akkor az első sor betűjét írom fel. jm mo fv A fenti gondolatmenetet követve a végső kód: jm mo fv td ny cp http://szit.hu/ Printed on 2016/11/27 08:42

2016/11/27 08:42 9/11 Kriptográfia Négy négyzet-rejtjel Készítünk négy négyzetet, 5 5-ös mátrixokból, egy-egy sorban két négyzetet elhelyezve: a b c d e k a r o m f g h i j b c d e f k l m n o g h i j l p r s t u n p s t v v w x y z u w x y z g o m b a a b c d e c d e f h f g h i j i j k l n k l m n o p r s t u p r s t u v w x y z v w x y z Így egy nagyobb négyzetet kapunk. A bal felső és a jobb alsó négyzet a szimpla ábécé, q nélkül. Az angol ábécéből kihagyható a q vagy egynek tekinthető az i és a j, mivel csak 25 helyünk van. A jobb felső és a bal alsó négyzetben elhelyezek egy-egy kulcsszót. A kulcsszó elhelyezhető a bal felső sarokból kezdve, balról jobbra, vagy spirálalakban is. Ha kulcsszóban ismétlődik egy betű, akkor azt kihagyjuk. A ki nem töltött helyeket az ábécé maradék betűivel töltöm fel. Legyen a kódolandó szöveg: holnap nyitas Betűpárokat alakítunk ki: ho ln ap ny it as Vegyük az első betűpárt, a ho-t. Az első betűjét a h-t, megkeresem a bal felső mátrixban. A második betűjét a jobb alsó mátrixban keresem meg: a b c d e k a r o m f g h i j b c d e f k l m n o g h i j l p r s t u n p s t v v w x y z u w x y z g o m b a a b c d e c d e f h f g h i j i j k l n k l m n o p r s t u p r s t u v w x y z v w x y z Kikeresem a h sorát hol keresztezi az o oszlopa a jobb felső mátrixban. Az f-nél. Akkor ez az első kódszó. A h oszlopát az o sora a bal alsó mátrixban a k-nál keresztezi, ezért a következő kódszó a k

Last update: 2015/01/07 13:19 oktatas:kriptológia:kriptográfia http://szit.hu/doku.php?id=oktatas:kriptol%c3%b3gia:kriptogr%c3%a1fia betű. a b c d e k a r o m f g h i j b c d e f k l m n o g h i j l p r s t u n p s t v v w x y z u w x y z g o m b a a b c d e c d e f h f g h i j i j k l n k l m n o p r s t u p r s t u v w x y z v w x y z fk A fenti sémát követve, a teljes kódszöveg: fk jj kp jy et rp Az eredeti szöveg: holnap nyitas Kódolva: fkjjkpjyetrp Nyilvános kulcsú titkosítás From: http://szit.hu/ - SzitWiki Permanent link: http://szit.hu/doku.php?id=oktatas:kriptol%c3%b3gia:kriptogr%c3%a1fia Last update: 2015/01/07 13:19 http://szit.hu/ Printed on 2016/11/27 08:42

2016/11/27 08:42 11/11 Kriptográfia