320 likes | 572 Views
Iz vsebine. Šifrirni algoritmi Simetrični, nesimetrični algoritmi Overovitev, digitalni podpis, potrdila Protokoli O tem drugič. Zaščita podatkov - izhodišča. varnost / tajnost / zasebnost / zaupnost preprečevanje zlorabe podatkov, dostopa do občutljivih podatkov
E N D
Iz vsebine • Šifrirni algoritmi • Simetrični, nesimetrični algoritmi • Overovitev, digitalni podpis, potrdila • Protokoli • O tem drugič
Zaščita podatkov - izhodišča • varnost / tajnost / zasebnost / zaupnost • preprečevanje zlorabe podatkov, dostopa do občutljivih podatkov • (angl. Security, secrecy, privacy, confidentiality) • itegriteta – celovitost (neokrnjenost) podatkov • preprečevanje ponarejanja • (angl. Integrity) • avtentičnost, verodostojnost • pristnost udeležencev v komuniciranju, preverjanje ustreznosti. • (angl. Authentication) • zanikanje, utaja • preprečevanje zanikanja avtorstva oz. utaje poslanega • (angl. Non-repudiation)
Zaščita podatkov • Šifriranje/dešifriranje (prikrivanje podatkov) • algoritmi za zagotavljanje tajnosti, varnosti • Protokoli • postopki varovanja, izmenjave podatkov, ki skupaj s šifrirnimi algoritmi zagotavljajo primerno varnost • Področja • komunikacijski sistemi • operacijski sistemi • informacijski sistemi • Na različnih področjih uporabe
7 7 7 7 6 6 6 6 5 5 5 5 4 4 4 4 3 3 3 3 2 2 2 2 1 1 1 1 Zaščita podatkov • Ni omejena na en sam sloj • Lahko prisotna praktično na vsakem sloju • Na splošno čim bližje končnemu uporabniku
Šifriranje / prikrivanje podatkov • Kriptografija (področje šifriranja izdelave kriptogramov) • Kriptoanaliza (področje napadov na šifrirni sistem) • Kriptologija (kriptografija, kriptoanaliza)
Šifriranje / prikrivanje podatkov • P: Odprto besedilo (angl. Plaintext) • E: Šifrirni postopek (algoritem), parametriran s šifrirnim ključem • KE (Angl. Encryption, encryption key) • C = E( P, KE ): kriptogram • D: Dešifrirni postopek (algoritem), parametriran z dešifrirnim ključem • KD (Angl. Decryption, decryption key) • Vsiljivec (aktivni, pasivni) prisluškuje in ponareja kriptograme. • Pomembno: • Oba ključa morata biti tajna, postoka E in D pa sta lahko (tipično tudi sta) znana oziroma “javna”. Oba ključa sta (tipično) kar enaka.
Šifriranje - pristopi • Klasični pristopi šifriranja uporabljajo dve operaciji: • substitucija, zamenjava oz. nadomeščanje simbolov • transpozicija, permutacija oz. premeščanje simbolov • poljubna kombinacija obeh. • Sicer pa sta prvi pravili šifriranja • redundanca, t.j. odvečnost v kriptogramu, čim večja je, tem bolje. • aktualnost kriptograma, omejeno trajanje kriptograma
Nadomeščanje • Osnovne simbole nadomestimo z novimi simboli • Preprost primer: si r i, r i = s (i+k ) mod N
Preprost napad • Možen napad: statistične zakonitosti odprtih besedil
Nadomeščanje • Uporabimo več (različnih) abeced • Abecede izbiramo s ključem
Premeščanje / nadomeščanje Ključ Ključ Premeščanje, P-blok Nadomeščanje S-blok Kombinacija obeh “Zmnožek“
DES (Data Encryption Standard) • DES, razvoj IBM – 1977, izveden iz sistema Lucifer (128 bitni ključ) • Množično uporabljan • Za vse današnje potrebe/razmere ne zagotavlja zadostne varnosti, • je pa še uporaben. • V spremenjeni – izpopolnjeni obliki in v kombinaciji z drugimi • postopki še vedno množično prisoten. • DES je kompleksna kombinacija transpozicij in substitucij, • t.i. (angl. Block cipher) “bločni” način (šifriranje po blokih) in • (angl. Product cipher) “množilni” način šifriranja (transp., subst.).
DES • 56 bitni ključ, dejanski problem je premajhna dolžina ključa • 19 stopenj, 16 iteracij • vsa kompleksnost algoritma je v funkciji F • v vsaki iteraciji se uporabi modificiran ključ • DES je simetričen, isti ključ za šifriranje/dešifriranje • dešifrirni postopek je enak šifrirnemu v obratnem vrstnem redu.
K1 K1 K2 K2 K1 K1 E D D E E D C P P C DES izboljšave – trojni DES • dva 56-bitna ključa • K1 = K2 enojni DES
AES - Advanced Ecryption standard • NIST (National Institute of Standards and Technology) • 1997: klic za prijavo novega algoritma • Simetričen, bločni • Zasnova in izvedba algoritma morata biti javni • Dolžina ključa: 128, (192, 256) • Možnost izvedbe s strojno ali programsko opremo • Algoritem mora biti v javni lastni ali licenciran na • nediskriminatoren način
AES - Advanced Ecryption standard • 1998: NIST izbere pet finalistov • 2000: NIST na osnovi glasovanja izbere algoritem • RIJNDAEL (Rijmen, Daemen) • Nekaj podatkov: • Dolžina ključa 128 do 256 s korakom 32 (v praksi 128, ali 256) • Dolžina bloka 128 • Sicer pa je izvedbeno gledano algoritem zelo podoben DES, • bistven pa je daljši ključ.
Nekateri bolj pogosti algoritmi • Blowfish • DES, 56 bitni ključ • IDEA, 128 bitni ključ • RC4, 1- 2048 bitni ključ • RC5, 128-256 bitni ključ • AES128-256 bitni ključ (prva izbira) • Trojni DES, 168 bitni ključ (druga najboljša izbira)
Sistemi z javnim ključem • PKS (Angl. Public Key Systems) • Simetrični sistemi (klasični sistemi) uporabljajo enak ključ za • šifriranje in dešifriranje • Oba ključa (pravzaprav je en sam) morata biti TAJNA • Problem: distribucija kjučev • V sistemih z javnim ključem je ŠIFRIRNI ključ JAVEN, objavljen • oz. znan vsem zainteresiranim uporabnikom. • Razumljivo, (vsaj) dešifrirni ključ MORA biti TAJEN • Ključa sta torej različna • BISTVO sistema: na osnovi javnega šifrirnega ključa se ne da ali • vsaj ne v dogednem času odkriti tajnega dešifrirnega ključa.
RSA • Bistveno vprašanje: kako generirati (E,D) pare ključev? • RSA: Rivest, Shamir, Adleman • RSA temelji na dejstvu, da je velika števila težko faktorizirati. • RSA algoritem danes velja za nezlomljivega ali zelo trdnega • Slabost je zelo velika dolžina ključa in računska zahtevnost • Zato se največ uporablja za “distribucijo” ključev v kombinaciji • z računsko učinkovitejšimi simetričnimi algoritmi.
RSA - osnove • Generiranje ključev: • izberi dve veliki praštevili, p in q (tipično v obsegu 1024 bitov) • izračunaj n = p x q, in z = (p-1) x (q-1) • izberi z-ju tuje število, naj bo to število d • izberi e tako, da velja e x d = 1 (mod z) • Sedaj imamo par ključev, e in d • Šifriranje: • deli besedilo na enako dolge bloke P, tako da je P < n • šifriraj, C = Pe(mod n) • Dešifriraj: • P = Cd (mod n)
RSA – primer • izberemo p in q • naj bosta p = 3 in q = 11 • Izračunamo n in z, • izačunamo n = p x q = 3 x 11 = 33 • izračunamo z = (p-1) x (q-1) = 2 x 10 = 20 • Izberemo d • d = 7 (d in z nimata skupnega delitelja, no seveda 7 je praštevilo) • Izberemo e • e x 7 = 1 (mod 20), na primer (3 x 7 = 21 (mod 20) = 1) • Imamo oba ključa • šifriramo z (e, n) = 3, 33), dešifriramo z (d, n) = (7, 33) • (e, n) “objavimo”
RSA – primer • Šifriramo, C = P3 (mod 33) • Dešifriramo, P = C7 (mod 33) • Na primer, odprto besedilo je SDV, šifriramo posamezne črke.
PKS – digitalni (elektronski) podpis • Problem: • možnost ponarejanja, vsak se lahko predstavi pod lažnim imenom • možnost utaje, vsak lahko kasneje zanika pošiljanje • Rešitev: digitalni podpis
PKS – digitalni (elektronski) podpis • Vsaka postaja (uporabnik) ima svoj par ključev, javnega in tajnega • Z javnim šifrira tisti, kdor pošilja • Postaja A se najprej podpiše, “(de)šifrira” s svojim tajnim ključem • Postaja A skrije besedilo, šifrira z javnim ključem postaje B • Postaja A pošlje kriptogram postaji B • Postaja B dešifrira kriptogram s svojim tajnim ključem • Postaja B “šifrira” besedilo, dobi odprto besedilo • Ker je vsaka postaja edina, ki pozna svoj tajni ključ, je to dokazilo, • da kriptogram pošilja ona – njen podpis. • Če postaja B obdrži podpis besedila, je tudi utaja nemogoča.
Digitalni podpis s simetričnim ključem • Uporabniki izberejo zaupnega posrednika Z, ki mu vsi zaupajo. • Vsak uporabnik po zaupnem kanalu sporoči svoj ključ • zaupnemu posredniku: KA, KB, ...., • Uporabnik A pošilja besedilo P uporabniku B • Zato kreira KA( B, RA, t, P) in pošlje Z-ju: A, KA( B, RA, t, P) • RA je naključno število, t je čas, A je njegova identiteta • Zaupni posrednik ugotovi, da mu A pošilja kriptogram in ga • dešifrira z njegovim ključem. • Zaupni posrednik Z pošlje B-ju kriptogram: B, KB(A,RA,t,P, KZ(A,t,P)) • KZ(A,t,P) je besedilo A-ja, ki ga je podpisal zaupni posrednik • S pomočjo zaupnega posrednika oz. njegovega podpisa lahko B dokaže, • da je P poslal A
B A Overovitev • Digitalni podpis ali tajnost nista vedno potrebna, zadostuje overovitev • Enosmerne funkcije – “odtis” besedila (angl. Message digest – MD) • za dano odprto besedilo P je enostavno izračunati MD(P) • za dani MD(P) je težko, vsaj v doglednem času določiti P • za dani P je nemogoče najti Q, da bo MD(P) = MD(Q) • majhna sprememba P-ja povzroči veliko spremembo MD(P) P, DA(MD(P)) • Overovitev v sistemu z javnim ključem • Če tretji ponaredi P, B lahko preveri verodostojnost preko MD(P) • Znane enosmerne funkcije v uporabi MD5, SHA-1
Potrdila • V sistemih z javnim ključem je rešen problem distribucije ključev, • ne pa tudi problem zaupanja v dejansko identiteto pošiljatelja. • Potreben je zaupnik, ki izdaja potrdila (jamstva) za istovetnost javnih ključev. • Skratka, bistvena naloga zaupnika je jamstvo, da dotičnik javni ključ pripada • dani (pravi) osebi. • Vzemimo, da želi B zaupno komunicirati z A-jem in drugimi uporabniki. • B zato predloži svoj javni ključ KB zaupniku v potrditev • Zaupnik izda potrdilo (certifikat), s katerim jamči, da javni ključ KB pripada • B-ju, identiteto B-ja (npr. Njegovo ime), in odtis potrdila, podpisanega z • zaupnikovim tajnim ključem. • Če A komunicira z B-jem, lahko preko preverjanja potrdila ugotovi • istovetnost B-ja. Odtisa potrdila se ne da podtakniti.