Šifrovanie Vypracoval: Marek Leššo 23.3.2004.

Slides:



Advertisements
Podobné prezentace
Úvod do klasických a moderních metod šifrování Jaro 2008, 7. přednáška.
Advertisements

Asymetrická kryptografie
Radek Horáček IZI425 – Teorie kódování a šifrování
Hillova šifra Lester S. Hill (1929) Polygrafická šifra Φ: Amx K  Bm
RSA šifra Ronald Rivest, Adi Shamir a Leonard Adlemann.
Teorie čísel Prvočíslo Eulerova funkce φ(n)
Feistlovy kryptosystémy Posuvné registry Lucifer DES, AES Horst Feistel Německo, USA IBM.
Šifrování pomocí počítačů Colossus 1948 ENIAC.
Bezpečnost systémů 2. RSA šifra *1977 Ronald Rivest *1947 Adi Shamir *1952 Leonard Adelman *1945 University of Southern California, Los Angeles Protokol.
Informační bezpečnost VY_32_INOVACE _BEZP_16. SYMETRICKÉ ŠIFRY  Používající stejný šifrovací klíč jak pro zašifrování, tak pro dešifrování.  Výhoda.
Složitost algoritmu Vybrané problémy: Při analýze složitosti jednotlivých algoritmů často narazíme na problém, jakým způsobem vzít v úvahu velikost vstupu.
Pôvod Názov Blu-ray pochádza z anglického slova Blue-ray a znamená modrý lúč. Je to jeden z najnovších a najkapacitnejších optických diskov na svete. Blu-ray.
Úpravy algebrických výrazov
Úpravy algebrických výrazov
Feistlovy kryptosystémy
Úvod do klasických a moderních metod šifrování
Lineárna funkcia a jej vlastnosti
Vonkajšie pamäťové média
Úvod do klasických a moderních metod šifrování
Prínos prebiehajúcich partnerstiev 2011, 2012 pre realizátorov projektov Výsledky prieskumu.
Digitalizácia zvuku.
F8 Elektrický obvod Elektrický príkon Téma 12.
Matematická olympiáda
BLOKOVÁ SCHÉMA POČÍTAČA
Pavol Nečas Gymnázium L. N. Senica Šk. rok 2008/2009 III.A
Reprezentácia údajov v počítači Písmo – forma kódovania
Závislosť elektrického odporu vodiča od jeho vlastností Mgr
Priama úmernosť ISCED 2.
Počítačové vírusy.
Pamäťové zariadenia Adam Lech Tomáš Kožurko I.A.
SOČ 3. roč. v prípade, že máme problém, aký výskum ku svojej teoreticke časti použijeme, môžeme vykonať sociologický, psychologický alebo edukačný (napr.
Firmware - charakteristika
JADROVÁ ENERGIA.
Plánovanie a príprava hodiny
Úvod. Porovnávanie celých čísel.
Čo je informatika? Je všeobecne veda o informáciách.
Kvalitatívne heuristiky
Šifrovaná komunikácia cez Internet
Počítač Počítač – je zariadenie alebo stroj na realizáciu výpočtov alebo riadenie operácií vyjadriteľných číselnými alebo logickými výrazmi. Počítače.
MZDY Stravné lístky COMPEKO , 2015.
Prehľad OS.
(Digitálny prezentačný materiál)
Grafické formáty.
Pamäťové média Mgr. Gabriela Zbojeková.
Základná schéma počítača
3D Modelovanie prvkov krajiny
Dominika Vidovičová IX.B
Typy pamäťových zariadení
Informácie okolo nás Šifrovanie.
Informácie okolo nás Šifrovanie.
Elektronické bankovníctvo
IP adresovanie vytvorené pre vnútornú potrebu MCST, a.s.
Informácie okolo nás Kódovanie znakov.
Aké poznáme formáty zvuku a na čo slúžia ? Vladimír Červený, 4.D
Čo je PHP- PHP (PHP: Hypertext Preprocessor) je populárny open source (prístupné zdrojové kódy) skriptovací programovací jazyk Používa najmä na programovanie.
Grafické riešenie lineárnej rovnice
Ing. Zlatica Molčanová Košice
Počtové operácie s celými číslami: sčítanie a odčítanie
Von Neumannova architektúra počítača
Informatika, údaj, informácia, jednotka informácie, digitalizácia
KVINTAKORDY Rachel Dudová.
Základné parametre obrazu II.
Úvod do programovania automatizačných zariadení
DEKOMPOZÍCIA ČASOVÝCH RADOV
Entrópia, redundancia a sci-fi príklad.
Elektronický podpis.
IP adresovanie Ing. Branislav Müller.
3D modelovanie Polygony
Informatika Adriana Petríková 1.A.
Hromadná korešpondencia
Transkript prezentace:

Šifrovanie Vypracoval: Marek Leššo 23.3.2004

Základné pojmy šifrovanie - proces, pri ktorom je nešifrovaný text transformovaný na šifrovaný (prevod textu z otvorenej formy do skrytej formy) dešifrovanie - proces prevodu údajov zo skrytej formy do otvorenej formy šifra - správa v zašifrovanej podobe ň kľúč - parameter používaný pri šifrovaní a dešifrovaní kryptosystém - systém slúžiaci na šifrovanie a dešifrovanie informácií kryptografia - používa kryptosystémy na udržiavanie tajných informácií kryptoanalýza- študuje možnosti prelomenia kryptosystémov

Základné pojmy (2) kryptografia šifrovanie a dešifrovanie vedná disciplína zaoberajúca sa zabezpečením dôvernosti informácií, integrity údajov a autentifikáciou veda, ktorá sa zaoberá šifrovacími a dešifrovacími metódami šifrovanie a dešifrovanie vyžaduje si znalosť tajnej informácie, ktorú pozná len odosielateľ a adresát –túto utajenú informáciu nazývame kľúč

Základné pojmy (3) šifrovanie a dešifrovanie slabý kľúč poloslabý kľúč algoritmus, ktorého bezpečnosť je založená na utajenosti algoritmu, sa nepovažuje za bezpečný šifrovací algoritmus celková bezpečnosť je daná kvalitou algoritmu, dĺžkou kľúča a uložením kľúča slabý kľúč je to kľúč, ktorý informáciu nazašifruje dobre poloslabý kľúč je to taký kľúč, pri aplikácii ktorého je priamy vzťah medzi otvoreným a zašifrovaným textom

Základné pojmy (4) šifrovacie algoritmy symetrické - kľúč je rovnaký pre odosielateľa aj adresáta asymetrické

Symetrické šifrovacie algoritmy na šifrovanie aj dešifrovanie sa používa rovnaký kľúč algoritmus symetrického šifrovania je rýchlejší ako algoritmus nesymetrického šifrovania nevýhodou symetrického šifrovania je nutnosť výmeny kľúča tajným kanálom Toto je nešifrovaný text. Je nutné ho zašifrovať. Šifrovanie Wod1asd5 asdWJB8 VDSE9fs sdQPCBbds 4DUd3fd tajný šifrovací kľúč Dešifrovanie

Symetrické šifrovacie algoritmy (2) DES (Data Encryption Standard) bol vyvinutý firmou IBM v roku 1977 dĺžka kľúča je 64 bitov (efektívne len 56 bitov) v súčasnosti nie je považovaný za bezpečný algoritmus 3DES tento algoritmus vychádza z DES dáta sú prešifrované trikrát používajú sa 2 alebo tri rôzne kľúče - týmto spôsobom dosiahneme kľúč o dĺžke 128 (112 efektívne) resp. 192 bitov (168 efektívne) rýchlosť šifrovania je trojnásobne menšia v porovnaní s DES

Symetrické šifrovacie algoritmy (3) DES -1 X Y K1 K2 algoritmus šifrovania 3DES Algoritmy IDEA dĺžka kľúča je 128 bitov pri tej istej dĺžke kľúča má tento algoritmus vyššiu rúchlosť ako DES ide o patentovaný algoritmus

Symetrické šifrovacie algoritmy (4) BlowFish možnosť použiť premenlivú dĺžku kľúča 32-448 bitov najčastejšie sa používa kľúč dĺžky 128 bitov algoritmus je voľne dostupný - nie je patentovaný CAST jedná sa o podobný algoritmus ako BlowFish dĺžka kľúča je 128 bitov kľúče najčastejšie sa používajú kľúče o dĺžke 128 bitov pri výbere je nutné zabezpečiť náhodné a správne generovanie kľúča je nutné vyhnúť sa slabým a poloslabým kľúčom

Nesymetrické šifrovacie algoritmy pre šifrovanie a dešifrovanie sa používa dvojica kľúčov - verejný a súkromný (tajný) kľúče sa generujú súčasne a existuje medzi nimi matematická väzba dáta zašifrované verejným kľúčom je možné rozšifrovať len súkromým kľúčom nesymetrický šifrovací algoritmus je pomalší ako symetrický Toto je nešifrovaný text. Je nutné ho zašifrovať. Šifrovanie Wod1asd5 asdWJB8 VDSE9fs sdQPCBbds 4DUd3fd verejný (adresátov) šifrovací kľúč Dešifrovanie tajný dešifrovací

Nesymetrické šifrovacie algoritmy (2) nesymetrické šifrovanie sa používa pri elektronickom podpise M - text v nešifrovanej forme Odosielateľ Adresát 1) (VK,SK) 2) VK 3) C=f(M,VK) 4) C 5) M=g(C,SK) VK - verejný kľúč SK - súkromný kľúč f - šifrovacia funkcia g - dešifrovacia funkcia C - šifrovaný text posielanie šifrovanej správy od odosielateľa k adresátovi

Nesymetrické šifrovacie algoritmy (3) RSA vznikol v roku 1977 na Massachussets Institute of Technology je založený na modulárnej aritmetike je nutné použiť kľúč o dĺžke 1024 alebo 2048 bitov Eliptické kryptosystémy (ECC) moderné algoritmy zabezpečujú vysokú bezpečnosť už pri kratších kľúčoch 160-180 bitový kľúč poskytuje rovnakú bezpečnosť ako 2048 bitový kľúč pri RSA

Nesymetrické šifrovacie algoritmy (4) nesymetrické algoritmy sa používajú spolu so symetrickými šifrovacími algoritmami pre zvýšenie rýchlosti šifrovania a výmeny informácií Odosielateľ Adresát 1) (VK,SK) 3) VK 7) C=k(M,S) 5) T 9) M=h(C,S) NESYMETRICKÉ ŠIFROVANIE VK - verejný kľúč SK - súkromný kľúč f - šifrovacia funkcia g - dešifrovacia funkcia posielanie šifrovanej správy od odosielateľa k adresátovi 2) S SYMETRICKÉ ŠIFROVANIE S - tajný kľúč T - zašifrovaný tajný kľúč k - šifrovacia funkcia h - dešifrovacia funkcia M - text v nešifrovanej forme C - šifrovaný text 4) T=f(S,VK) 6) S=g(T,SK) 8) C

Hašovacie funkcie slúžia na získanie sekvencie charakteristickej pre vstupný blok údajov z tejto sekvencie nie je možné odvodiť pôvodný údaj používajú sa pri šifrovaní hesiel a digitálnych podpisoch pri zmene správy sa musí zmeniť aj charakteristická sekvencia Toto je nešifrovaný text. Je nutné pre neho získať hašovanú hodnotu. Ha š ovacia funkcia PkouDmA8

Hašovacie funkcie (2) Algoritmy MD5 (Message Digest) SHA-1 (Secure Hash Algorithm)

História kryptografie

História Július Cézar (100 - 44 pred n.l.) Blaise de Vignere (1585) ako prvý použil jednoduchú substitúciu obyčajných znakov abecedy (išlo o posun znakov v abecede o pevný počet znakov) Cézar používal túto šifru na posielanie svojich príkazov armáde Blaise de Vignere (1585) išlo o obdobu Cézarovej šifry každý znak správy bol nahradený iným znakom z inej pozície v abecede, pričom každému znaku odpovedala iná pozícia – táto pozícia bola definovaná kľúčom, ktorý bol držaný v tajnosti Sir Francis Bacon (1623) popísal šifru, ktorá teraz nesie jeho meno ide o 5 bitové binárne šifrovanie

História (2) Transpozičné šifrovanie Cézarova šifra je prúdovou šifrou transpozičné šifrovanie je blokové šifrovanie spočíva v tom, že text sa zapíše do tabuľky v riadkoch a číta sa po stĺpcoch – poradie čítania stĺpcov môže byť určený prídavnou číselnou kombináciou Nezašifrovaný text: TECHNICKA UNIVERZITA Zašifrovaný text: TIURECNZCKIIHAVTN EA T E C H N I K A U V R Z alebo: Zašifrovaný text: 21543 ECNZTIURN EAHAVTCKII

História (3) Thomas Jefferson (1790) William Frederick Friedman vyvinul kruhovú šifru táto šifra bola prepracovaná (Strip Cipher, M-138-A) – bola používaná námorníctvom USA počas 2. Svetovej vojny William Frederick Friedman zakladateľ Riverbank Laboratories pokladá sa za otca americkej kryptoanalýzy počas 2. Svetovej vojny viedol tím za účelom prelomenia šifry japonského šifrovacieho stroja Purpla Machine aj keď bola kryptografia použitá už v 1. Svetovej vojne, dva najznamejšie šifrovacie stroje pochádzajú z 2. Svetovej vojny – nemecká Enigma a japonská Purple Machine

DES

Úvod DES je akronymom pre Data Encryption Standard šifrovacia norma DES je tiež označovaná ako DEA (Data Encryption Algorithm) v Amerike definovala túto normu ANSI v rámci celého sveta bola definovaná medzinárodnou organizáciou ISO ako DEA-1, bola platným štandardom 80 rokov minulého storočia DES je vylepšením algoritmu Lucifer, ktorý bol vyvíjaný v IBM na počiatku 70. rokov značnú rolu na vyvíjaní tohto algoritmu vo finálnych fázach mala NSA v poslednom desaťročí boli vyvinuté metódy ako lineárna a diferenčná kryptoanalýza, ktoré majú istú šancu odhaliť potrebný kľúč

Úvod (2) algoritmus DES bol originálne vyvinutý pre hardvérovú implementáciu v prípade, že sa algoritmus DES používa na komunikáciu, musia odosielateľ aj prijímateľ poznať kľúč, ktorý sa používa na šifrovanie a dešifrovanie správ alebo na vytváranie a verifikovanie MAC (Message Authentication Code) DES môže byť taktiež použitý pre single-user (jedno používateľské) šifrovanie, napríklad pri ukladaní súborov na disk v šifrovanej podobe v multi-user (viac používateľskom) prostredí je problémom bezpečná distribúcia kľúča

Opis DES DES je bloková šifra, čo znamená, že šifruje údaje po 64 bitových blokoch na vstup sa privedie 64 bitový otvorený text a na výstupe dostaneme 64 bitový zašifrovaný text algoritmus je symetrický, teda na zašifrovanie a dešifrovanie sa použije rovnaký kľúč kľúč má dĺžku 64 bitov, ale jeho efektívna dĺžka je 56 bitov, zvyšné bity sú paritné postupom času boli odhalené slabé kľúče, avšak sú známe a je jednoduché sa im vyhnúť slabý kľúč je taký, ktorý informáciu nezašifruje dobre

Opis DES (2) algoritmus v sebe kombinuje šifrovacie techniky konfúzie a difúzie - tieto techniky v sebe predstavujú súbstitúciu a následnú permutáciu bitov kľúča a zašifrovaného textu algoritmus DES pracuje v 16-tich kolách algoritmus v sebe zahrňuje grupové operácie, substitúciu a XOR, dôsledkom čoho je jednoducho realizovateľný pomocou hardvérových prostriedkov softvérové metódy sú samozrejme pomalšie

Popis algoritmu DES v úvode šifrovania je vykonaná úvodná permutácia (prehodenie bitov na rôzne pozície podľa vopred definovanej tabuľky) po permutácii sa blok dát rozdelí na dve polovice L a R po 32 bitoch algoritmus následne definuje 16 kôl identických operácií nazývaných f, u ktorých dochádza ku kombinácii údajov a kľúča po 16. kole sa ľavá a pravá polovica spojí a nakoniec sa prevedie záverečná permutácia

Popis algoritmu DES (2) v každom kole DESu sa bity kľúča posunú a potom sa z nich vyberie 48 bitov podkľúča kompresnou permutáciou pravá polovica údajov (32 bit) sa rozšíri expanznou permutáciou na 48 bitov a prevedie sa operácia XOR na výsledok tejto operácie sa použije množina funkcií nazvaná S-box - tieto funkcie kódujú 6 vstupných bitov na 4 výstupné jedno kolo algoritmu DES

Popis algoritmu DES (3) výstup S-boxov sa znovu permutuje (P-box) tieto štyri operácie sa nazývajú funkcia f na výstup funkcie f a ľavú polovicu údajov znova aplikujeme operáciu XOR výsledok operácie sa stane novou pravou polovicou údajov, ktorá postupuje do ďalšieho kola tieto operácie sa opakujú 16-krát jedno kolo algoritmu DES Li = Pi-1 Pi = Li-1 XOR f(Pi-1,Ki)

Popis algoritmu DES (4) Začiatočná permutácia robí sa pred prvým kolom DES v podstate iba povymieňa vstupné bity otvoreného textu nemá vplyv na bezpečnosť DES vznikla kvôli jednoduchšej hardvérovej implementácii niektoré softvérové implementácie ju nerobia, avšak tým nesplňajú normu začiatočná permutácia - spôsob výmeny bitov

Popis algoritmu DES (5) Vytváranie podkľúčov Kompresná permutácia na začiatku sa 64 bitový kľúč redukuje na 56 bitov a to vyhodením paritných bitov a permutáciou kľúča takáto permutácia kľúča sa robí iba raz a to na začiatku algoritmu z takto získaného kľúča sa ďalej generujú podkľúče kľúč sa rozdelí na dve polovice po 28 bitoch - tieto polovice sa potom v jednotlivých kolách DESu posúvajú pomocou rotácie o 1 alebo 2 bity doľava v závislosti od kola DESu Kompresná permutácia táto permutácia nemení len usporiadanie bitov ale aj niektoré bity vynecháva výsledkom tejto operácie je podkľúč

Popis algoritmu DES (6) Expanzná permutácia S-box substitúcia táto operácia rozširuje pravú polovicu údajov R z 32 bitov na 48 bitov operácia mení poradie bitov a zároveň niektoré bity kopíruje S-box substitúcia každý S-box má 6-bitový vstup a 4-bitový výstup - takýchto S-boxov je 8 vstupných 48 bitov sa rozdelí na 8 6-bitových subblokov, ktoré sa samostatne spracovávajú P-box permutácia táto priama permutácia iba vymieňa bity vo výsledku

Popis algoritmu DES (7) Konečná permutácia konečná permutácia je priamym opakom začiatočnej permutácie - ide o inverznú maticu

Dešifrovanie DES pretože DES je symetrický algoritmus, na dešifrovanie použijeme rovnaký algoritmus ako na šifrovanie jediný rozdiel oproti šifrovaniu spočíva v tom, že podkľúče musia byť používané v opačnom poradí ako pri šifrovaní algoritmus generovania podklúčov je rovnaký, až na to, že pri posune sa posúvajú bity doprava

Slabé kľúče vzhľadom k spôsobu, akým je kľúč modifikovaný k získaniu podkľúča každého kola algoritmu, budeme musieť niektoré kľúče označiť za slabé 00000000 00000000, 00000000 FFFFFFFF FFFFFFFF 00000000, FFFFFFFF FFFFFFFF z niektorých kľúčov sa dajú vygenerovať len 2 rôzne podkľúče - takéto kľúče sa nazývajú poloslabé kľúče niektoré kľúče vytvárajú len 4 podkľúče - voláme ich potenciálne slabé kľúče dohromady máme asi 64 kľúčov, ktoré by sa nemali používať - keď si to ale porovnáme s celkovou množinou kľúčov 256, ide o zanedbateľné množstvo

Pracovné módy DES ECB mód (eletronic codebook) jedná sa o čistý DES každý 64 bitový blok textu sa šifruje tým istým 56 bitovým kľúčom CBC mód (cipher block chaining) Y0 = iv , Yi = DES(Yi-1 XOR Xi) šifrovanie každého okrem prvého bloku závisí od výsledku šifrovania predchádzajúceho bloku tento mód chráni proti určitým typom útokov, avšak nechráni pred kompletným prehľadaním všetkých kľúčov a pred diferenčnou kryptoanalýzou

Pracovné módy DES (2) CFB mód (cipher feedback) OFB mód Y0 = iv , Yi = Xi + DES(Yi-1) umožňuje použiť bloky kratšie ako 64 bitov OFB mód Z0 = iv , Zi = DES(Zi-1) , Yi = Xi XOR Zi v súčasnosti je najpoužívanejším módom CBC pre zvýšenú bezpečnosť by bolo vhodné skombinovať Triple-DES s módom CBC

Bezpečnosť šifrovania pomocou DES doposiaľ nebol objavený spôsob, ktorým by sa dalo jednoduchým spôsobom prelomiť šifru DES súčasné spôsoby útoku na DES šifru využívajú hrubú silu (brute force) na kompletné prehľadanie všetkých kľúčov - tento spôsob však priemerne zaberá 255 krokov bohatý a mocný útočník by však mohol vybudovať špeciálne určenú výpočtovú jednotku, ktorá by bola schopná prelomiť DES šifru v reálnom čase prvý typ útoku na DES, ktorý je lepší než kompletné prehľadanie všetkých kľúčov, ohlásili Biham a Shamir, ktorý používali novú techniku známu ako diferenčná kryptoanalýza tento útok vyžaduje zašifrovanie 247 vybraných textov, ktoré sú vybrané útočníkom

Bezpečnosť šifrovania pomocou DES (2) diferenčná kryptoanalýza hoci je teoreticky možné týmto spôsobom prelomiť DES, útok nie je praktický z dôvodu zložitosti algoritmu Biham a Shavir vyhlásili, že považujú algoritmus šifrovania DES za bezpečný neskôr bola vyvinutá ďalšia metóda útoku známa ako lineárna kryptoanalýza metódu vyvinul Matsui šifrovací kľúč môže byť zistený po analýze 243 známych textov prvý experiment založený na tejto metóde bol úspešný - ochranu šifrou sa podarilo prelomiť po 50-tich dňoch na 12-tich počítačoch HP 9735 takýto typ útoku je však stále nepraktický

Bezpečnosť šifrovania pomocou DES (3) najnovšie sa podarilo prelomiť DES šifru za 22 hodín preto sa šifrovanie DES už nepokladá za bezpečné - 56 bitový kľúč je totiž možné prelomiť kompletným prehľadaním ako štandard sa používa Triple-DES a AES

Bezpečné používanie DES kľúč pre DES šifrovanie by sa mal často obmieňať pri komunikácii je potrebné nájsť bezpečný spôsob ako dostať kľúč od odosielateľa k príjemcovi - na to sa používa algoritmus RSA v prípade, že sa algoritmus DES používa na šifrovanie súborov uložených na disku, nie je možné často meniť kľúč - namiesto toho sa môže používať jeden master kľúč, ktorým sa zašifruje súbor obsahujúci zoznam ďalších kľúčov, ktoré sú používané na šifrovanie súborov master kľúč je možné meniť často master kľúč ale predstavuje oveľa podstatnejší cieľ útoku ako ostatné kľúče - preto by bolo vhodné na zašifrovanie zoznamu kľúčov používať šifrovanie Tripple-DES

RSA

Princíp šifrovania pomocou RSA ide o nesymetrické šifrovanie tento algoritmus vyvinuli Ronald Rivest, Adi Shamir a Leonard Adleman na MIT v roku 1977 na šifrovanie sa používa verejný kľúč a na dešifrovanie sa používa súkromný kľúč princíp šifrovania spočíva v tom, že k šifrovacej a dešifrovacej funkcii neexistuje inverzná funkcia, ktorá by umožnila odšifrovať správu s tým istým kľúčom, ktorý sa použil na zašifrovanie správy verejný a tajný kľúč generuje adresát správy, ktorá má byť prenesená v zašifrovanej podobe, verejný kľúč adresát poskytuje odosielateľovi správy

Princíp šifrovania pomocou RSA (2) generovanie kľúčov vygenerujú sa dve veľké prvočísla p a q nech n=p.q - číslo n sa volá modul nech m=(p-1).(q-1) - m sa nazýva Eulerova funkcia čísla n nájdeme také číslo e, aby najväčší spoločný deliteľ čísel m a e bolo číslo 1 nájdeme ďalšie číslo d také, aby platilo d.e mod m = 1 číslo e sa nazýva verejný exponent a číslo d sa nazýva súkromný exponent verejným kľúčom je dvojica (n,e) súkromným (privátnym) kľúčom je dvojica (d,e)

Princíp šifrovania pomocou RSA (3) v súčasnosti je veľmi obtiažné získať z dvojice (n,e) číslo d ak by bol niekto schopný faktorizovať číslo n na prvočísla p a q, mohol by vypočítať číslo d a dostať sa takto k súkromnému kľúču bezpečnosť šifrovania algoritmom RSA je teda založená na predpoklade, že faktorizácia veľkých čísel je extrémne zložitá objavenie jednoduchšej metódy faktorizácie by mohlo narušiť bezpečnosť šifrovania algoritmom RSA bezpečnosť šifrovania teda vychádza z veľkej výpočtovej zložitosti faktorizácie veľkých čísel aby bolo šifrovanie bezpečné, musia mať čísla p a q aspoň 100 desiatkových cifier

Princíp šifrovania pomocou RSA (4) Šifrovanie nech s je nezašifrovaná správa potom c = se mod n c je zašifrovaná správa s Dešifrovanie s = cd mod n ako správa s sa môže brať buď jeden znak, alebo viac znakov, pričom číslo ktoré reprezentujú by malo byť v rozsahu do 0 po n-1

Rýchlosť RSA algoritmu šifrovanie, dešifrovanie (a taktiež aj podpisovanie a verifikovanie digitálneho podpisu) je v podstate modulárne umocňovanie - výpočty sú vykonávané ako série modulárnych násobení v praktických aplikáciach je bežné ako verejný exponent (e) použiť malé číslo - týmto sa dá dosiahnúť šifrovanie rýchlejšie ako dešifrovanie a podpisovanie rýchlejšie ako verifikovanie pri použití algoritmu modulárneho umocňovania na implementáciu RSA majú operácie s verejným kľúčom zložitosť O(k2), operácie so súkromnym kľúčom majú zložitosť O(k3) a operácie generovania kľúčov majú zložitosť O(k4) - k udáva počet bitov modulu je možné použiť techniku rýchleho násobenia, ktorá je založená na metóde FFT (Fast Fourier Transform) - použitie tejto techniky vyžaduje menej krokov

Rýchlosť RSA algoritmu (2) v praxi sa však metóda rýchleho násobenia nevyužíva z dôvodu jej veľkej softvérovej zložitosti - pre určité veľkosti kľúčov môže byť táto metóda dokonca pomalšia rýchlosť a efektívnosť mnohých komerčne používaných programov a hardvérových implementácií algoritmu RSA stále rastie algoritmus DES je v porovnaní s algoritmom RSA minimálne 100 krát rýchlejší v softvérových implementáciách a 1000 - 10000 krát rýchlejší v hardvérových implementáciách

Bezpečnosť kryptovania pomocou RSA existuje niekoľko možností, ako by mohol útočník narušiť bezpečnosť šifrovania pomocou RSA najviac nebezpečným útokom by bol útok, pri ktorom by sa útočníkovi podarilo na základe verejného kľúča získať k nemu prisluchajúci súkromný kľúč - utočník by získal schopnosť čítať všetky zašifrované správy a taktiež by mohol sfalšovať digitálny podpis tento útok by sa mohol útočníkovi podariť faktorizáciou modulu n (ktorý je súčasťou aj verejného kľúča) na dve prvočísla p a q – z čísel p,q a e (verejný exponent) by mohol útočník jednoduchým spôsobom vypočítať d (súkromný exponent) samozrejme najťažšou časťou takého útoku je faktorizácia modulu n bezpečnosť RSA šifrovania je založená na zložitosti faktorizácie

Bezpečnosť kryptovania pomocou RSA (2) ani hardvérová implemetácia faktorizácie neoslabuje bezpečnosť RSA šifrovania, samozrejme pokiaľ je použitá primeraná dĺžka kľúča ďalším spôsobom ako prelomiť RSA kryptosystém je nájdenie techniky na výpočet inverznej funkcie k funkcii c = se mod n tento typ útoku nie je ekvivalentom k faktorizácii modulu tento typ útoku by umožnil útočnikovi dešifrovať správy a falšovať podpisy aj bez znalosti súkromného kľúča v súčasnosti nie sú známe žiadne metódy, pomocou ktorých by sa dal prelomiť RSA kryptosystém týmto spôsobom

Bezpečnosť kryptovania pomocou RSA (3) spomenuté typy útokov sú jedinými spôsobmi ako prelomiť RSA kryptosystém s cieľom dešifrovania všetkých správ existujú aj útoky typu single message - tieto útoky v prípade úspechu odhalenia jednej správy neumožňujú útočníkovy dešifrovať ďalšie správyzašifrované tým istým kľúčom najjednoduchším útokom typu single message je útok, pri ktorom útočník predpokladá, ako vyzerá dešifrovaný text (napríklad: „Útok na svitaní.“) - tento text útočník zašifruje odchyteným verejným kľúčom príjemcu a porovná ho so zašifrovaným textom vyslaným odosielateľom – podľa výsledku porovnania útočník vie, či jeho odhad bol správny útoky tohto typu môžeme prekaziť pridaním náhodných bitov k správe

Bezpečnosť kryptovania pomocou RSA (4) samozrejme existujú aj útoky, ktoré sa nezameriavajú na samotný kryptosystém, ale na jeho nedokonalú implementáciu - prípadný úspech útočníka však nie je prelomením systému RSA príkladom nie bezpečnej implementácie, ktorú by mohol útočník využiť, je nedostatočne zabezpečené uloženie súkromného kľúča v praxi mnoho úspešných útokov je spôsobených nedokonalou implementáciou

Silné prvočísla vytváranie páru kľúčov sa začína výberom prvočísel p a q p a q by mali byť silné prvočísla silné prvočísla majú vlastnosti, ktorých dôsledkom je ťažká faktorizácia modulu n, ktorý vznikne vynásobením týchto prvočísel pokrok vo faktorizácii posledných desať rokov umožnil obídenie výhody silných prvočísel – nové metódy faktorizácie majú rovnakú šancu na úspech pri použití silných aj slabých prvočísel v súčasnosti sa teda výberom silných prvočísel pri generovaní páru kľúčov nijakým významným spôsobom nezvýši bezpečnosť šifrovania týmto kľúčom na čom najviac záleží je to, aby vybrané prvočísla boli čo najväčšie

Silné prvočísla (2) samozrejme, používanie silných prvočísel nie je chybou - avšak ich generovanie môže trvať o niečo dlhšie ako generovanie ľubovoľných prvočísel je možné, že v budúcnosti budú objavené nové algoritmy faktorizácie, ktoré však budú úspešné len na prvočísla s určitými vlastnosťami - ak sa tak stane, používanie silných prvočísel umožní zvýšiť bezpečnosť

Veľkosť kľúča veľkosť kľúča v RSA algoritme sa väčšinou vzťahuje na veľkosť modulu n prvočísla p a q, z ktorých sa skladá modul n, by mali mať zhruba rovnakú veľkosť – zťažuje to faktorizáciu modulu ak sa rozhodneme použiť 768 bitový modul, prvočísla by mali mať približne po 384 bitov ak sú tieto dve prvočísla veľmi blízko seba, môže to spôsobiť bezpečnostné riziko pravdepodobnosť, že dve náhodne vygenerované prvočísla budú na číselnej osi blízko vedľa seba je ale bezvýznamná veľkosť použitých kľúčov závisí na bezpečnostných požiadavkách

Veľkosť kľúča (2) čím je väčší modul, tým je väčšia bezpečnosť algoritmu, avšak týmto sa spomaľujú operácie RSA na šifrovanie a dešifrovanie – je teda potrebné zvážiť veľkosť kľúča v roku 1997 sa ohodnocovala bezpečnosť 512 bitového kľúča 512 bitové číslo môže byť faktorizované za cenu $1000000 a za čas približne 8 mesiacov v roku 1999 bolo faktorizované 512 bitové číslo v priebehu 7 mesiacov 512 bitový kľúč už teda neposkytuje dostatočnú bezpečnosť v súčasnosti sa teda odporúča používať 1024 bitové kľúče pre bežné použitie a 2048 bitové kľúče pre šifrovanie extrémne dôležitých údajov

Veľkosť kľúča (3) používať môžeme aj 768 bitové kľúče pre šifrovanie menej významných informácií, keďže prelomenie aj takéhoto kľúča je v súčasnosti ešte stále nemožné použitím známych algoritmov je vhodné zaistiť, aby kľúč ktorý používa konkrétny používateľ, prestal platiť po určitom období (napríklad po dvoch rokoch) a bol nahradený novým kľúčom je potrebné poznamenať, že veľkosti kľúčov algoritmu RSA sú omnoho väčšie ako veľkosti kľúčov algoritmu DES, avšak bezpečnosť algoritmu DES nemôže byť porovnávaná s bezpečnosťou algoritmu RSA

Veľkosť kľúča (4) zvyšovaním počtu bitov kľúča (a teda aj modulu) sa znižuje rýchlosť operácií algoritmu RSA zdvojnásobením dĺžky modulu sa zvýši čas potrebný na operácie s verejným kľúčom 4 x zdvojnásobením dĺžky modulu sa zvýši čas potrebný na operácie so súkromným kľúčom 8 x dôvod, prečo je čas operácií s verejným kľúčom menej ovplyvnený zmenou dĺžky modulu ako čas operácií so súkromným kľúčom je ten, že sĺžka verejného exponentu (e) ostáva stále rovnaká aj pri zmene veľkosti modulu, zatiaľ čo dĺžka súkromného exponentu (d) rastie proporcionálne

Rozsah možných prvočísel môžu používatelia RSA systému spotrebovať všetky možné prvočísla ? Euclid už pred 2000 rokmi ukázal, že počet prvočísel je nekonečný pretože RSA algoritmus je implementovaný s pevnou dĺžkou kľúča, počet prvočísel je konečný avšak ide o veľmi veľké číslo teoréma prvočísel hovorí, že počet prvočísel menších alebo rovných n je približne n/ln n - ak používame 512 bitový kľúč, počet použiteľných prvočísel je zhruba 10150 (čo je viac ako počet všetkých atómov v známom vesmíre)

Súčasné používanie RSA kryptosystému RSA systém sa v súčasnosti využíva v širokom rozsahu produktov a platforiem na celom svete RSA algoritmus je zabudovaný v operačných systémoch od firiem Microsoft, Apple, Sun RSA algoritmus sa tiež používa aj bezpečných telefónoch, Ethernetových kartách algoritmus je tiež súčasťou všetkých hlavných protokolov pre bezpečnú internetovú komunikáciu (S/MIME, S/WAN)

Príklad RSA Generujeme dve veľké prvočísla p a q Nech n = p.q v tomto príklade z dôvodu jednoduchosti použijeme malé čísla, avšak používanie malých čísel nie je bezpečné p = 7 q = 19 Nech n = p.q n = 7.19 = 133 Nech m = (p-1).(q-1) m = (7–1).(19–1) = 6.18 = 108 Vypočítame e (e coprime to e) najväčší spoločný deliteľ čísel e a m má byť 1 používa sa Euklidov algoritmus

Príklad RSA (2) Nájdeme také d, aby platilo d.e mod m = 1 e = 2 => nsd(e,108) = 2 (nie) e = 3 => nsd(e,108) = 3 (nie) e = 4 => nsd(e,108) = 4 (nie) e = 5 => nsd(e,108) = 1 (áno) Nájdeme také d, aby platilo d.e mod m = 1 to je ekvivalentné nájdeniu takého d, pre ktoré platí d.e = 1 + n.m , kde n je ľubovoľné celé číslo platí teda d = (1 + n.m) / e pre n dosadzujeme čísla 0,1,2,... až kým nedostaneme celočíslený výsledok pre veľké čísla sa samozrejme používa sofistikovanejší algoritmus nazvaný rozšírený Euklidov algoritmus

Príklad RSA (3) Verejný kľúč Súkromný kľúč n = 0 => d = 1 / 5 (nie) n = 3 => d = 325 / 5 = 65 (áno) Verejný kľúč n = 133 e = 5 Súkromný kľúč d = 65

Príklad RSA (4) Šifrovania Dešifrovanie správou, ktorú šifrujeme, musí byť číslo menšie ako p a q väčšinou ale nevieme aké bolo p a q, preto by mala byť zverejnená dolná hranica p a q pre tento príklad použijeme ako správu s číslo 6 c = se mod n = 65 mod 133 = 7776 mod 133 = 62 Dešifrovanie dešifrovanie funguje podobne ako šifrovanie avšak vyžaduje väčšie umocňovanie, ktoré je potrebné rozložiť na viac krokov s = cd mod n = 6265 mod 133 = 62 . 6264 mod 133 s = 62 . (622)32 mod 133 = 62 . 384432 mod 133 s = 62 . (3844 mod 133)32 mod 133 s = 62 . 12032 mod 133

Príklad RSA (5) s = 62 . 3616 mod 133 s = 62 . 998 mod 133

Message Digest

Popis Message Digest (MD) – niekdy sa mu hovorí digitálny odtlačok – je číslo, ktoré sa počíta zo všetkých informácií obsiahnutých v správe použitím kryptografickej hašovacej funkcie ide o jednocestné šifrovanie MD môže slúžiť na verifikovanie dátovej integrity správy algoritmus na výpočet MD má na vstupe správu ľubovoľnej veľkosti a na výstupe produkuje 128 bitovú hodnotu akákoľvek zmena vstupnej správy (už aj zmena jedného bitu) má za následok úplnú zmenu výstupnej hodnoty algoritmus MD a považuje za bezpečný, ak nie je možné z hodnoty MD dostať pôvodnú správu, alebo ak sa nedá nájsť kolízia – kolízia vzniká keď dve rôzne správy môžu mať rovnaký MD

Popis (2) MD sa využíva hlavne pri digitálnych podpisoch ak sa podpisuje veľká správa, táto správa je pred tým, než sa zašifruje súkromným kľúčom, „skomprimovaná“ bezpečným spôsobom pomocou MD algoritmu MD môžeme použiť aj na generovanie pseudonáhodných čísel poznáme algoritmy MD2, MD4 a MD5 štruktúra týchto algoritmov je podobná, avšak návrh MD2 sa trochu líši od MD4 a MD5 algoritmus MD2 bol optimalizovaný pre 8 bitové počítače, MD4 a MD5 boli optimalizované pre 32 bitové počítače

Kryptografické hašovacie funkcie sú to hašovacie funkcie s určitými vlastnosťami, ktoré zabezpečujú ich bezpečnosť Vlastnosti preimage resistance (one-way) pre dané h také, že platí h=hash(m1) by malo byť ťažké nájsť m1 second preimage resistance pre dané h a m1 také, že platí h=hash(m1) , by malo byť ťažké nájsť také m2!=m1, aby platilo h=hash(m2) collision-free malo by byť veľmi ťažké nájsť dve také správy m1 a m2, aby platilo hash(m1)=hash(m2)

MD2 tento algoritmus bol vyvinutý v roku 1989 vstupná správa je najprv rozširená tak, aby mala dĺžku v bajtoch deliteľnú číslom 16 k tejto vstupnej správe sa ešte pridá 16 bajtový checksum (kontrolný súčet) - z takto doplnenej správy sa vypočíta hašovacia hodnota Rogier a Chauvaud zistili, že v prípade vynechania kontrolného súčtu sa môže vyskytnúť kolízia pri konštruovaní hašovacej hodnoty

MD4 algoritmus MD4 bol vyvinutý v roku 1990 vstupná správa je rozšírená tak, aby jej dĺžka v bitoch + 64 bola deliteľná číslom 512 ku správe je pridaná 64 bitová reprezentácia originálnej dĺžky správy správa je spracovávaná v 512 bitových blokoch každý blok je spracovávaný v troch odlišných kolách čoskoro bol objavený typ útoku na nekompletný algoritmus MD4 (s vynechaným prvým alebo posledným kolom) Dobbertin ukázal, akým spôsobom môže byť nájdená kolízia pre plnú verziu MD4 v priebehu jednej minúty na obyčajnom PC neskôr Dobbertin ukázal, že algoritmus MD4 bez posledného kola nie je jednocestným algoritmom v súčasnosti sa algoritmus MD4 považuje za nespoľahlivý

MD5 algoritmus MD5 vyvinul v roku 1991profesor Ronald Rivest na MIT MD5 je rozšírením algoritmu MD4 algoritmus MD5 je trochu pomalší ako algoritmus MD4, avšak je bezpečnejší algoritmus MD5 pozostáva zo štyroch rôznych kôl, ktoré sú trochu odlišné od kôl algoritmu MD4 veľkosť výstupu ostáva rovnaká ako pri MD4, teda 128 bitov predpokladá sa, že je nemožné vyprodukovať dve rôzne správy, ktoré majú rovnakú hašovaciu hodnotu, alebo vyprodukovať správu, ktorá by mala dopredu určenú hašovaciu hodnotu

MD5 (2) implementácia algoritmu MD5 nevyžaduje žiadne veľké substitučné tabuľky MD5 sa využíva aj ako checksum (kontrola integrity) súborov stiahnutých z Internetu – na uistenie, že súbor nebol zmenený alebo napadnutý vírusom

Použitá literatúra [1] www.rsasecurity.com [2] www.pajhome.org.uk [3] www.krellinst.org/AiS/textbook/unit2/example_projects/ starter/math/crypt/methods.html [4] hornad.fei.tuke.sk/~poruban/bpi/P4.docň [5] www.ietf.org/rfc/rfc1321.txt [6] www.cs.princeton.edu/introcs/10analysis