570 likes | 1.16k Views
Kriptografija. Autori izvornika: prof . dr. sc. Miljenko Mikuc doc. dr. sc. Gordan Gledec Preradio: Luka Humski. Creative Commons. slobodno smijete: dijeliti — umnožavati, distribuirati i javnosti priopćavati djelo remiksirati — prerađivati djelo pod sljedećim uvjetima:
E N D
Kriptografija Autori izvornika: prof. dr. sc. Miljenko Mikuc doc. dr. sc. Gordan Gledec Preradio:Luka Humski
Creative Commons • slobodno smijete: • dijeliti — umnožavati, distribuirati i javnosti priopćavati djelo • remiksirati — prerađivati djelo • pod sljedećim uvjetima: • imenovanje. Morate priznati i označiti autorstvo djela na način kako je specificirao autor ili davatelj licence (ali ne način koji bi sugerirao da Vi ili Vaše korištenje njegova djela imate njegovu izravnu podršku). • nekomercijalno. Ovo djelo ne smijete koristiti u komercijalne svrhe. • dijeli pod istim uvjetima. Ako ovo djelo izmijenite, preoblikujete ili stvarate koristeći ga, preradu možete distribuirati samo pod licencom koja je ista ili slična ovoj. U slučaju daljnjeg korištenja ili distribuiranja morate drugima jasno dati do znanja licencne uvjete ovog djela. Najbolji način da to učinite je linkom na ovu internetsku stranicu. Od svakog od gornjih uvjeta moguće je odstupiti, ako dobijete dopuštenje nositelja autorskog prava. Ništa u ovoj licenci ne narušava ili ograničava autorova moralna prava. Tekst licencije preuzet je s http://creativecommons.org/. Informatika, II. gimnazija, Zagreb
Zapis podataka u računalu • Niz nula i jedinica • Primjer: 0000111010101011010101 • Binarni broj • Može ga se pretvoriti u dekadski • Primjer: (0000111010101011010101)2 = (240341)10 UVIJEK BROJ • Kodiranje podrazumijeva operacije s brojevima • MATEMATIKA • Isti niz binarnih znamenaka može se različito tumačiti • Također, ista informacija može se različito zapisati Informatika, II. gimnazija, Zagreb
Vrste kodiranja (s obzirom na namjenu) • KOMPRESIJA • Smanjenje broja bitova potrebnih za izražavanje poruke • Vrste: s gubitcima (npr. JPEG) i bez gubitaka (npr. ZIP, RAR) • ZAŠTITNO KODIRANJE • Zaštititi podatke od grešaka u prijenosu • Cilj: otkriti i ispraviti greške u prijenosu • KRIPTOGRAFIJA • O tome ćemo u nastavku Informatika, II. gimnazija, Zagreb
Problem • pretpostavka: napadač nadzire mrežu • presreće promet (datagrame) • mijenja njihov sadržaj • ubacuje svoje datagrame Informatika, II. gimnazija, Zagreb
Metode sigurnosnih prijetnji prekid presretanje promjena lažna informacija Informatika, II. gimnazija, Zagreb
Osnovni sigurnosni zahtjevi • cjelovitost, integritet (integrity) • povjerljivost (confidentiality) • raspoloživost (availability) • autentifikacija (authentification) • neporecivost (nonrepudiation) • kontrola pristupa (access control) • ranjivi: • sklopovlje • programska podrška • podaci Informatika, II. gimnazija, Zagreb
Sigurna komunikacija • temeljena na: • kriptografiji • upravljanju ključevima Informatika, II. gimnazija, Zagreb
Jednostavno kriptiranje • Cezarova šifra • Primjer: • LPDPR VDW LQIRUPDWLNH • IMAMO SAT INFORMATIKE Informatika, II. gimnazija, Zagreb
AugusteKerckhoffs(Jean-Guillaume-Hubert-Victor-François-Alexandre-AugusteKerckhoffs von Nieuwenhof) “Kriptosustavi bi trebali biti sigurni čak i ako sve vezano uz njih, osim samog ključa, bude javno poznato.”
Od stoljeća sedmog... Informatika, II. gimnazija, Zagreb
Kriptografija • omogućuje komunikaciju dviju stranki preko nesigurnog komunikacijskog kanala • treća stranka ne može razumjeti njihove poruke • postupak: • šifriranje: transformira se otvoreni tekst (plaintext) koristeći unaprijed dogovoreni ključ (key) • rezultat dobiven šifriranjem naziva se šifrat (ciphertext) ili kriptogram • pošiljatelj pošalje šifrat preko komunikacijskog kanala + = Informatika, II. gimnazija, Zagreb
I onda... • protivnik prisluškujući dozna sadržaj šifrata, ali ne može odrediti otvoreni tekst • primatelj koji zna ključ kojim je šifrirana poruka može dešifrirati šifrat i odrediti otvoreni tekst • realizacija? ? + = Informatika, II. gimnazija, Zagreb
Terminologija • kriptoanaliza ili dešifriranje • znanstvena disciplina koja se bavi proučavanjem postupaka za čitanje skrivenih poruka bez poznavanja ključa • kriptologija • grana znanosti koja obuhvaća kriptografiju i kriptoanalizu • kriptografski algoritam ili šifra • matematička funkcija koja se koristi za šifriranje i dešifriranje • općenito, radi se o dvije funkcije, jednoj za šifriranje, a drugoj za dešifriranje • njezini argumenti su ključ i otvoreni tekst, odnosno ključ i šifrat Informatika, II. gimnazija, Zagreb
Ključ • matematički algoritam • određuje kako se šifrira otvoreni tekst • složenost ovisi o duljini ključa - broj bitova • ključ duljine n bitova generira prostor ključeva od 2n mogućih vrijednosti • matematički algoritmi • tajni • javni • snaga sustava za šifriranje počiva na ključu • napadač može imati šifrirane tekstove i znati algoritme, ranjivost sustava ovisi o snazi ključa • dulje ključeve teže je probiti (vrijeme, novac) Informatika, II. gimnazija, Zagreb
Simetrična kriptografija • za šifriranje i dešifriranje koristi se isti ključ • tajni ključ • uglavnom temeljeni na logičkoj operaciji XOR • model: • M je poruka (message), K je ključ • šifriranje (encription): EK (M) C (C = šifrat, cyphertext) • dešifriranje (decription): DK (C) M • napadač bez znanja ključa K ne može iz šifrata C saznati sadržaj poruke M + = + = Informatika, II. gimnazija, Zagreb
Model simetrične kriptografije Kriptoanaliza M* K* EK (M) C DK (C) M Izvor poruke M Algoritam šifriranja C Algoritam dešifriranja M Odredišteporuke komunikacijski kanal K K Izvor ključa Informatika, II. gimnazija, Zagreb
One-time pad • izmišljen 1917., patentiran kasnije • Gilbert Sandford Vernam, Joseph Mauborgne • razmijeni se slučajno generirani ključ K (pad) • otvoreni tekst se šifrira s K u modularnoj aritmetici (XOR) • EK(M) = K M = C(bit po bit) • šifrat se dešifrira s istim K u modularnoj aritmetici • DK (C) = C K = M(bit po bit) • dobre strane: • teoretski jednostavan • neprobojan (Claude Elwood Shannon, 1949.) • mane: • ključ K mora biti jednako dug kao otvoreni tekst M • slučajno generiran Informatika, II. gimnazija, Zagreb
Koliko ključeva? • n korisnika? 1 10 Informatika, II. gimnazija, Zagreb
Algoritmi i duljina ključa • duljina ključa naznačuje koliko će trebati da se napadom razbije šifra • Data Encryption Standard (DES, 56 bita) • 3DES - trostruki DES • International Data Encryption Algorithm (IDEA, 128 bita) • Advanced Encryption Standard (AES, 128, 192, 256 bita) • Blowfish (varijabilni ključevi, do 448 bita) • CAST (Carlisle Adams & Stafford Tavares, 128, 256 bita) • RC2 (8-1024 bita), RC5 (0 do 2040 bita ) Informatika, II. gimnazija, Zagreb
Tip napadača Budžet Alat Vrijeme i cijena probijanja (po ključu) Duljina ključa potrebna za zaštitu1995. / 2015. 40 bita 56 bita Pojedinačni napadač Mali Neiskorišteno procesorsko vrijeme 1 tjedan nemoguće 45 / 59 $400 FPGA 5 sati($0.08) 38 godina($5,000) 50 / 64 Malo poduzeće $10,000 FPGA 12 minuta($0.08) 18 mjeseci($5,000) 55 / 69 Korporativni odjel $300K FPGA 24 sekunde($0.08) 19 dana($5,000) 60 / 74 ASIC 0.18 sekundi($0.001) 3 sata($38) Veliko poduzeće $10M FPGA 7 sekunda($0.08) 13 sati($5,000) 70 / 84 ASIC 0.005 sekundi($0.001) 6 minuta($38) Obavještajna agencija $300M ASIC 0.0002 sekunde($0.001) 12 sekundi($38) 75 / 89 Razbijanje DES-a Informatika, II. gimnazija, Zagreb
Može li se simetrična kriptografija koristiti pri digitalnom potpisivanju? I, naravno, zašto?
Asimetrična kriptografija • problemi u simetričnoj kriptografiji: • razmjena ključeva • nemogućnost digitalnog potpisivanja • asimetrično: • jedan ključ za šifriranje, drugi ključ za dešifriranje • ključevi su međusobno vezani • neizvedivo je poznavajući algoritam i jedan ključ otkriti drugi • često: svejedno je kojim ključem se šifrira, a kojim dešifrira • rade isključivo u paru • poznavanjem javnog ključa ne može se izračunati tajni ključ u nekom razumnom vremenu • vrijeme potrebno za izračunavanje tajnog ključa iz poznatog javnog ključa, tj. razbijanje šifre, mjeri se milijunima godina na danas najjačim raspoloživim računalima Informatika, II. gimnazija, Zagreb
Simetrična i asimetrična kriptografija • način rada: • isti algoritam i isti ključ koriste se i za šifriranje i za dešifriranje • pošiljatelj i primatelj dijele algoritam i ključ • sigurnost: • očuvati tajnost ključa • nemoguće ili nepraktično dešifrirati poruku • poznavanje algoritma i dijelova šifrata mora biti nedovoljno za rekonstrukciju ključa • 100-1000 puta brži • način rada: • jedan algoritam i par ključeva: jedan za šifriranje, jedan za dešifriranje • primatelj i pošiljatelj moraju imati po jedan od uparenih ključeva • sigurnost: • jedan od dva ključa mora ostati tajan • nemoguće ili nepraktično dešifrirati poruku • poznavanje algoritma, jednog ključa i dijelova šifrata mora biti nedovoljno za rekonstrukciju ključa Informatika, II. gimnazija, Zagreb
Privatni i javni ključ • svaki korisnik ima par ključeva: • privatni ključ KP • dostupan isključivo korisniku, ne smije se distribuirati • javni ključ KJ • dostupan svima • mora se distribuirati • ono što se šifrira javnim ključem, može se dešifrirati samo privatnim: • EKJ (M) C, DKP (C) M • ono što se šifrira privatnim ključem, može se dešifrirati samo javnim: • EKP (M) C, DKJ (C) M Informatika, II. gimnazija, Zagreb
Model rada –tajnost Kriptoanaliza M* KPB* DKPB (C) M A EKJB (M) C B Izvor poruke M Algoritam šifriranja C Algoritam dešifriranja M Odredišteporuke KPB KJB Izvor para ključeva Informatika, II. gimnazija, Zagreb
Model rada – autentifikacija Kriptoanaliza M* KPA* EKPA (M) C DKJA (C) M A B Izvor poruke M Algoritam šifriranja C Algoritam dešifriranja M Odredišteporuke KJA KPA Izvor para ključeva Informatika, II. gimnazija, Zagreb
Model rada – autentifikacija i tajnost Izvor para ključeva KJB KPB A B EKPA (M) P DKJA (P) M Izvor poruke Algoritam šifriranja Algoritam šifriranja Algoritam dešifriranja Algoritam dešifriranja Odredišteporuke P C P M M EKJB (P) C DKPB (C) P KJA KPA Izvor para ključeva Informatika, II. gimnazija, Zagreb
Zahtjevi • lako se generira par ključeva KP i KJ • pošiljatelj lako iz poruke M stvara šifrat C na temelju javnog ključa KJ primatelja • primatelj lako dešifrira šifrat C koristeći svoj privatni ključ KP • računalno neizvedivo da se na temelju javnog ključa KJ izračuna privatni ključ KP • računalno neizvedivo da se na temelju javnog ključa KJ i šifrata C rekonstruira poruka M Informatika, II. gimnazija, Zagreb
Kriptoanaliza • osjetljiva na brute-force napad • protumjera: dulji ključ • problem: matematički izračuni • složenost ne mora rasti linearno s brojem bita • duljina ključa mora biti: • dovoljno velika da spriječi napad • dovoljno mala da se operacije obavljaju brzo • napadi pogađanjem poruke • računanje privatnog ključa na temelju javnog • nije dokazano da nije moguće • svi algoritmi su sumnjivi Informatika, II. gimnazija, Zagreb
Hibridni pristup • dobre strane simetričnih algoritama: • 100-1000 puta brži od asimetričnih • manje računalno zahtjevni • dobre strane asimetričnih algoritama: • upravljanje ključevima, distribucija i tajnost • hibridni pristup: • asimetričnu kriptografiju koristiti za razmjenu simetričnog ključa • Secure Sockets Layer - SSL • Pretty Good Privacy - PGP • GNU Privacy Guard - GPG Informatika, II. gimnazija, Zagreb
Načelo šifriranja • pošiljatelj šifrira dokument koristeći javni ključ primatelja • rješava probleme kontrole pristupa i povjerljivosti – samo onaj tko ima privatni ključ, može pristupiti šifriranom dokumentu • zbog sporosti asimetričnih algoritama, koriste se u kombinaciji sa simetričnima = + = + Informatika, II. gimnazija, Zagreb
Postupak šifriranja + stvara se jednokratnisimetrični ključ svojim privatnim ključem primatelj dešifrira simetrični tajni ključ poruka se šifrira simetričnim ključem + tako dešifriranim simetričnim tajnim ključem dešifrira se poruka simetrični ključ se šifrira javnim ključem primatelja šalje se poruka šifrirana simetričnim ključem i simetrični ključ šifriran javnim ključem primatelj sada može pročitati poruku Informatika, II. gimnazija, Zagreb
Načelo digitalnog potpisa • pošiljatelj potpisuje poruku koristeći svoj privatni ključ • svi koji imaju javni ključ pošiljatelja, mogu verificirati potpis • rješava probleme neporecivosti, autentičnosti i cjelovitosti • razlog: samopošiljatelj ima ključ kojim je poruka potpisana! • za potpisivanje poruke koriste se dodatni algoritmi! = + = + Informatika, II. gimnazija, Zagreb
Hash funkcija • prije digitalnog potpisivanja treba generirati sažetak (hash, digest) poruke • hash funkcija • ulaz: niz znakova proizvoljne duljine • izlaz: niz znakova fiksne duljine (npr. 128 ili 160 bitova) • osnovna svojstva hash funkcije: • hash je jednosmjerna funkcija • jednostavno ju je izračunati za zadanu poruku • nije moguće na osnovu izlaza regenerirati ulaznu poruku • nije moguće odrediti ulaznu poruku koja bi imala zadani hash • neizvedivo da se pronađu dvije različite poruke koje bi imale isti hash • promjena jednog bita ulaza rezultira potpuno drugačijim izlazom Informatika, II. gimnazija, Zagreb
Primjena hash-funkcije • digitalni potpisi • MessageAuthenticationCode (MAC) • autentifikacija • hash-tablice (raspršeno adresiranje) • za detekciju kopija binarnih sadržaja • za jednoznačnu identifikaciju binarnih sadržaja • za izračunavanje kontrolne sume (checksum) Informatika, II. gimnazija, Zagreb
Primjer hash funkcije • ulazni tekst: "primjena" • izlaz (heksadecimalno): • MD5: 490901fcf9a20ffb05b1575a5b89c952 • SHA-1: 632488e67e6de572328801e9194025163476c2d4 • u ulazu se mijenja samo jedno slovo: "promjena" • izlaz: • MD5: fb336d024c6c32b181ab50870890a988 • SHA-1: 6e5b7ddbb89b0b2bf88aa15e860a6e4779902e1c Informatika, II. gimnazija, Zagreb
Postupak digitalnog potpisivanja izračuna se hash poruke iz poruke se vadi šifrirani hash hash se dešifrira javnim ključem pošiljatelja hash poruke potpiše se vlastitim privatnim ključem iz izvorne poruke se računa novi hash na izvornu poruku se doda hash i sve se šalje primatelju kao tekst ako su hashevi isti, dokazan je identitet pošiljatelja Informatika, II. gimnazija, Zagreb
Digitalni certifikat • rješava problem dokazivanja identiteta • skup informacija koje identificiraju korisnika i davatelja usluge certificiranja • sadržaj certifikata: • npr. ime organizacije koja izdaje certifikat, ime organizacije ili korisnika kojem pripada certifikat, njegovog javnog ključa, vremena važenja certifikata, elektroničke adrese organizacije ili korisnika, zemlje porijekla korisnika te ostalih bitnih informacija koje identificiraju stranu kojoj se izdaje certifikat • standardizacija: • X.509 format - ISO, ITU-T Informatika, II. gimnazija, Zagreb
Sadržaj certifikata DN: cn=AnjaKovač, o=FER, c=HR Serial #: 3913133 Start: 6-7-2009 3:33 End: 6-7-2010 3:33 CRL: cn=CRL2, o=FER, c=HR Key: CA DN: o=UNI-ZG, c=HR PKI informacije o korisniku: ime, institucija, država jednoznačni serijski broj informacija o važenju certifikata informacija o povlačenju certifikata javni ključ korisnika informacija o instituciji koja je izdala certifikat digitalni potpis institucijekoja je izdala certifikat