Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tietoturvallisuus osa8

Samankaltaiset esitykset


Esitys aiheesta: "Tietoturvallisuus osa8"— Esityksen transkriptio:

1 Tietoturvallisuus osa8
Salausmenetelmät Digitaalinen allekirjoitus

2 Luottamuksellisuuden toteuttamisessa käytetään salausmenetelmiä
SALAUSMENETELMISTÄ Luottamuksellisuuden toteuttamisessa käytetään salausmenetelmiä Seuraavassa käydään läpi seuraavia salausmenetelmiin liittyviä asioita: Yleiset merkinnät Salausmenetelmien aritmetiikkaa Caesar – salaus Vigenèren salaus Diffie – Hellman avainjärjestelmä RSA - salaus

3 1. Yleiset merkinnät M = viesti kokonaislukujonona (message)
Viestit koodataan ennen salausta kokonaisluvuiksi, jotka salausalgoritmilla kuvataan toisiksi kokonaisluvuiksi. Käytetään merkintöjä: M = viesti kokonaislukujonona (message) e = salausfunktio (encryption function) C = salakirjoitettu viesti (ciphertext ) d = avausfunktio (decryption function)

4 Salaaminen ja avaaminen kaavoina
salaus: C = e (M) avaus: M = d (C) salausfunktion e tulee olla helposti laskettavissa, mutta avaaminen d on helppoa vain viestin vastaanottajalle, jolla on tiedossaan avaamiseen käytettävä salainen avain.

5 2. Salausmenetelmien aritmetiikkaa (moduloaritmetiikka)
Salaus tapahtuu kokonaislukujen joukon Z äärellisissä osajoukoissa Zn=0,1,2,…, (n-1). Joukossa Zn määritellään laskutoimitukset jakojäännöksen mod n avulla: esim. Olkoon n = 17 summa: = 21 mod 17 = 4 erotus: – 10 = - 4 mod 17 = 17 –4 = 13 kertolasku: 5*8 = 40 mod 17 = 6 potenssi: 52 = 25 mod 17 = 8

6 Z17 renkaana 16 1 15 2 14 13 3 12 4 11 5 10 6 7 9 8

7 Käänteisluku ja jakolasku
Esim. Moduloaritmetiikassa kaikilla sellaisilla joukon Zn alkioilla on käänteisluku, joilla ei ole yhteisiä tekijöitä luvun n kanssa. esim. luvut 5 ja 7 ovat käänteislukuja mod 17, koska 5*7 = 35 mod 17 = 1 samaten 6 ja 3 ovat käänteislukuja, koska 3*6 =18 mod 17 =1 Voidaankin määritellä jakolasku seuraavasti: a / b mod n = a*b-1 mod n eli esim. 12 / 7 mod 17 = 12*5 mod 17 = 60 mod 17 = 9

8 3. Historiallinen Caesar – salaus
Tätä salausta, joka on itse asiassa vain aakkoston siirto avaimen k verran oikealle, käytti jo Julius Caesar. Hänen sotapäälliköillään oli kiekot joilla salakirjoitus voitiin helposti avata. Algoritmi on seuraava: Salaus c = m + k mod n Avaus m = c – k mod n esim. Olkoot salausavain k = 12 ja luku n = 26 (aakkoston koko) Salataan viesti m = ”helsinki” = (7, 4, 11, 18, 8, 13, 10, 8). Salakirjoitus c = m+k = (19,16,23,30, 20,25,22,20) mod 26 = (19,16,23,4,20,25,22,20) =”tqxeuzwu” Avaaminen tapahtuu vähentämällä avain k salakirjoituksesta. Tulos = (7,4,11,-8, 8, 13, 10, 8) mod 26 = (7, 4, 11, 18, 8, 13, 10, 8) = ”helsinki” ( huom! - 8 mod 26 = = 18) II maailmansodan aikainen saksalaisten Enigma -salakirjoitin käytti Caesarin salausta osana laitettaan.

9 4. Vigenèren salaus Vanha , mutta erittäin turvallinen salausmenetelmä
Ongelmana on, että osapuolten tulee sopia yhteisestä salausavaimesta, jolloin tämä menetelmä ei sovellu nykyaikaisen tietoverkon tai GSM – puhelujen salausmenetelmäksi Tyypillinen käyttö on kahden käyttäjän välinen viestiliikenne Mm. kylmän sodan aikainen Washington – Moskova kuuma linja käytti tätä salausmenetelmää.

10 Versio1 (Washington – Moskova)
Algoritmi: Viesti m muutetaan bittimuotoon esim. merkkien ASCII-koodia käyttäen Salausavain k on ennalta sovittu satunnainen bittijono, jonka pituus on viestin mittainen. (Voi olla tietysti pitempikin, sillä loput bitit on helppo poistaa) Salakirjoitus c = m + k mod 2 (säännöt: 0+0 = 1+1 = 0 , = = 1) Vastaanottaja avaa viestin täsmälleen samalla tavalla lisäämällä avaimen viestiin mod 2 m = c + k mod 2 Esim m = (viesti) +k = (avain) c = (salakirjoitus) Viestin avaaminen tehdään samalla tavalla: tulos =

11 Versio2: Salakirj. c = (11,20,16,1, 18, 0, 11, 12) =”luqbsalm”
Viesti m muutetaan luvuiksi esim. koodaamalla engl. aakkoset seuraavasti: a = 0 , b = 1 , … , z = 25 Käytetään avaimena k ennalta sovittua viestin mittaista lukujonoa, jonka luvut ovat väliltä 0 – 25 tai sitä vastaavaa sanaa Salaus suoritetaan kaavalla c = m + k mod 26 Salakirjoitettu viesti voidaan muuntaa merkeiksi. Salakirjoitetun viestin c avaaminen tapahtuu vähentämällä avain k Avattu viesti = c – k mod 26 Esimerkki. Viesti m = ”helsinki” ja avain k = ”eqfjknbe” Koodattuina m = (7, 4, 11, 18, 8, 13, 10, 8) k = (4, 16, 5, 9, 10, 13, 1, 4) (* Salakirj c = (11,20,16,1, 18, 0, 11, 12) =”luqbsalm” Avaaminen: c – k = (7,4,11,-8, 8, -13, 10, 8) mod 26 (** = (7,4,11, 18, 8, 13, 10, 7) = ”helsinki” (*) mod 26 = 27 mod 26 = 1, mod 26 = 0 (**) -8 mod 26 = 26-8 mod 26 = 18 , - 13 mod 26 = = 13

12 Vigenèren salauksen turvallisuus.
Jos versiossa 1 viestin pituus on n bittiä on erilaisia avainvaihtoehtoja 2n kpl. Esim. jos viestissä on 100 merkkiä eli 800 bittiä, on avainvaihtoehtoja 6.6*10240 kpl. Viestin salauksen purkaminen on mahdotonta. Miksi Vigenère ei sovellu nykyajan verkkoihin? GSM – verkossa tai sähköpostiverkossa on tuhansia , jopa miljoonia käyttäjiä, jotka koko ajan vaihtuvat (uusia tulee, entisiä lähtee). On selvää, että avaimista sopiminen on mahdotonta, ellei ole jotain menetelmää, jolla kullekin käyttäjäparille generoituisi automaattisesti yksilöllinen salausavain. Tämä on mahdollista toteuttaa 1970 –luvulla keksityn idean pohjalta (Diffie & Hellman)

13 Vigenèren salauksessa voidaan käyttää myös viestiä lyhyempää avainta, jota jatketaan kopioimalla viestin mittaiseksi. Esim. Olkoon avain k = “ivalo” ja viestin pituus 17 merkkiä. Tällöin salaus suoritetaan käyttämällä yhteenlaskettavana 17 merkin avainmerkkijonona “i v a l o i v a l o i v a l o i v”

14 5. Diffie – Hellman avainjärjestelmä
16 Olipa x mikä tahansa renkaan Zn alkio eli luku väliltä 0 – (n-1), niin potenssilaskussa pätee tutut säännöt: (xa)b = (xb)a = xab Ts. potenssiinkorotusjärjestyksellä ei ole väliä. 1 15 2 14 13 3 12 4 11 5 10 6 7 9 8 Diffie- Hellman avainjärjestelmässä valitaan n siten , että se on erittäin suuri alkuluku (jaoton kokonaisluku). Lisäksi sovitaan yhteisestä kantaluvusta x, jonka pitää täyttää ehto, että sen potenssit käyvät läpi kaikki renkaan luvut (ehdon täyttävää alkiota sanotaan generoivaksi alkioksi)

15 1) Jokainen käyttäjä A , B , … valitsee salaiseksi avaimekseen ka, kb ,… jonkin renkaan Zn luvun, jonka jälkeen järjestelmä laskee ja vie käyttäjätietokantaan kullekin käyttäjälle ns. JULKISEN AVAIMEN Ka = xka mod n , Kb = xkb mod n, … 2) Nyt käyttäjät A ja B laskevat keskinäisen salausavaimensa K korottamalle toistensa julkiset avaimet oman salaisen avaimensa osoittamaan potenssiin. Molemmat päättyvät samaan tulokseen, koska potenssien laskujärjestyksellä ei ole väliä: A: Kbka mod n = (xkb)ka mod n = xka*kb mod n B: Kakb mod n = (xka)kb mod n = xka*kb mod n

16 Tähän perustuukin järjestelmän turvallisuus.
Todellisuudessa n on erittäin suuri luku (n.1000 bittiä), jolloin käyttäjien julkisista avaimista Ka, Kb ei voi nykytietokoneilla laskea käyttäjien valitsemia salaisia eksponentteja ka, kb,… Tähän perustuukin järjestelmän turvallisuus. Esimerkissä käytetään pieniä lukuja. Olkoon n = 31 ja kantaluku x = 3 Käyttäjä Aino valitsee salaiseksi avaimekseen ka= 13 Käyttäjä Bengt valitsee salaiseksi avaimekseen kb = 8 Mikä on heidän keskinäisessä viestinnässään käyttämä salausavain ? Ratk. Julkiset avaimet ovat Ka = 313 mod 31 = 24 ja Kb = 38 mod 31 = 20 Aino laskee keskinäisen avaimen seuraavasti: 2013 mod 31 = 10 ja Bengt : 248 mod 31 = 10 Luku 10 on siten heidän keskinäinen avaimensa. (jota käytetään esim. Vigeneren salauksessa) Todellisissa sovelluksissa n on 1000-bittinen, joten keskinäiset avaimetkin ovat tuota suuruusluokkaa.

17 Julkisen avaimen salausjärjestelmät Public Key Cryptosystems
Nykyisin on siirrytty käyttämään tietoliikenteessä lähes pelkästään ns. julkisen avaimen salausjärjestelmiä. Ideana on, että kunkin käyttäjän salausavaimet ovat julkisia ja itse salausalgoritmi on julkinen. Ainoa ei- julkinen tieto on kunkin käyttäjän viestien purkamiseen käyttämä salainen avain (”ns. salaovi”), jota ei ulkopuolinen pysty selvittämään tuntematta tiettyä tietoa, joka on vain käyttäjän hallussa (RSA:ssa tämä tieto liittyy siihen, miten käyttäjän toinen julkinen avain on muodostettu) Yleisin julkisen avaimen salausjärjestelmä on RSA, jonka kehittivät Rivers, Shamir ja Adlemann 1970 –luvun lopussa.

18 6. RSA - salausjärjestelmä
Matematiikan historiassa kuuluisasta Eulerin lauseesta seuraa,että Jos n = p*q = kahden alkuluvun tulo, niin a(p-1)(q-1) mod n= 1 kaikille kantaluvuille a Kukin käyttäjä A valitsee julkisen avainparin (n,e) , joista n on oltava kahden alkuluvun p ja q tulo (ts. n = pq). Toinen avain e voi olla melkein mikä tahansa luku väliltä 2 – (n -1) . (Ainoa rajoitus on se, että luvulla e ja luvulla (p-1)(q-1) ei saa olla yhteisiä tekijöitä.) Muuta käyttäjät salaavat viestit m käyttäjälle A potenssilaskulla c = me mod n 3) Viestit avataan vastaavalla potenssilaskulla m= cd mod n missä d on e:n käänteisluku mod (p-1)(q-1)

19 Tällä kurssilla ei mennä kovin syvälle taustalla olevaan matematiikkaan.
Kurssin web-sivulla on linkki Java – appletti –laskimeen, jolla voi mm. generoida alkulukuja laskea potenssilaskuja mod n suurillakin luvuilla, mikä on välttämätöntä salaus- ja avausalgoritmien kokeilussa Seuraavassa käydään läpi RSA –avainten muodostaminen, ja viestien avaamiseen käytettävän ”salaoven” d laskeminen, sekä lyhyen viestin salaus ja avaus:

20 VAIHE1: Avainten generointi
Julkisten avainten generointi käyttäjälle A: generoidaan 2 alkulukua : p = 47 ja q = 29. Avain n = p*q = 47*29 = 1363 Avaimeksi e valitaan e = 135 (Testataan sen sopivuus laskemalla suurin yhteinen tekijä GCD(135, 46*28) eli GCD(135,1288). Tulos on 1, joten e on sopiva) Julkinen avainpari (n,e) = (1363,135) Käyttäjä A laskee ”salaoven” d, jolla purkaa viestit: Nyt vain A itse tuntee luvun n tekijät (p=47 , q = 29). Salaovi d = e:n käänteisluku mod (p-1)(q-1) eli mod 1288. Tarvitaan taas applettilaskinta: d = mod 1288 = 935 A siis purkaa saamansa viestit avaimella d = 935

21 Vaihe2: Viestin koodaaminen luvuiksi
Ennen viestin salaamista on viestit muutettava kokonaisluvuiksi, jotka hyödyntävät mahdollisimman tarkkaan lukualuetta 0 – (n-1). Muistin kannalta edullisin tapa on käyttää lukujärjestelmää, jossa kantalukuna on käytetyn aakkoston koko (tässä 26). Esim. viesti m = ”helsinki” voidaan tällöin koodata 2 merkin lohkoissa neljäksi luvuksi. m = ”helsinki”= (7, 4, 11, 18, 8, 13, 10, 8) => m = (7*26+4,11*26+18, 8*26+13,10*26+8) = (186, 304, 221, 268) Vaihe 3: Salaus ja avaus Salaus: c = me mod n Salattu viesti c = (186135, , , ) mod 1363 = (887, 461, 60, 107) Avaus: m = cd mod n (887935, , 60935, ) mod =(186, 304, 221, 268), joka on sama kuin alkuperäinen viesti.

22 Viestiä avatessaan A saa siis viestin suurina kokonaislukuina, jotka ohjelmiston tulee purkaa merkeiksi: Se tapahtuu seuraavasti: Esim. 186 jaetaan luvulla 26 => osamäärä on 7 ja jakojäännös = 4 Ts. Kyseessä ovat merkit 7 ja 4 jotka ovat kooditaulukon mukaan h ja e. Vastaavasti puretaan viestin muut luvut ja saadaan selväkielinen alkuperäinen viesti ”helsinki”.

23 Mihin RSA:n turvallisuus perustuu?
RSA:ssa käytetty avainkoko on yli 1000 bittiä avaimelle n. Ts luvussa n on yli 300 numeroa. Jotta salauksen murtaminen olisi mahdollista, olisi saatava selville luvun n tekijät p ja q (jotta voitaisiin laskea luku d, jolla viestit puretaan). Tällä hetkellä ei ole mitään matemaattista keinoa tämän suuruusluokan kokonaislukujen tekijöihin jakamiseen missään kohtuullisessa ajassa. Parhaimmillakin tietokoneilla aikaa kuluu vuosia, joten RSA:ta pidetään turvallisena. RSA:ta hyödyntävät yritykset testaavat koko ajan tekijöihin jaon rajoja tarjoamalla web:issä ns. RSA –haastelukuja, joiden onnistuneesta tekijöihin jaosta tarjotaan palkkioita 10000$:sta ylöspäin. Alla on tällä hetkellä (joulukuu 04) pienin haasteluku, jonka tekijöihin jaosta maksetaan $ . Luku on 680 bittinen. (linkki:

24 Digitaalinen allekirjoitus
Digital signature algorithm DSA

25 Digitaalinen allekirjoitus
Digitaalisen allekirjoituksen tavoitteena on antaa tietoverkon käyttäjille mahdollisuus allekirjoittaa asiakirjoja verkon välityksellä omakätisen allekirjoituksen sijasta. Allekirjoitusta voidaan käyttää myös varmennepalveluissa todistamaan osapuolen autenttisuus. DSA –algoritmeja käytetään mm. sähköisessä henkilökortissa Dokumenttien lähetyksessä itse viestin muuttumattomuus taataan laskemalla viestiasiakirjasta tiivisteluku, joka sitten lähetetään viestin liitteenä käsiteltynä DSA –algoritmilla.

26 Digitaalinen allekirjoitus RSA:ssa
Miten A allekirjoittaa viestinsä digitaalisesti A ( -ohjelma) laskee viestistä tiivisteluvun S Allekirjoitus S lähetetään muodossa, jossa se on korotettu A:n salaisen RSA-avaimen osoittamaan potenssiin: S’ = Sd mod n ( tässä n on A:n toinen julkinen avain) 3) Asiakirjan vastaanottaja B purkaa allekirjoituksen A:n julkisella avaimella laskemalla S’ e mod n Tulos täytyy olla S, koska potenssiin korotukset potensseihin d ja e kumoavat toisensa. 4) Lopuksi B laskee itse asiakirjatekstistä tiivisteluvun, jonka täytyy olla sama kuin S – muutenhan asiakirja olisi muuttunut.

27 Nyt voidaan päätellä seuraavaa:
Koska B purki allekirjoituksen S’ nimenomaan A:n julkisella avaimella e ja purettu allekirjoitus antoi oikean tiivisteluvun, on viesti tullut perille muuttumattomana viesti on A:n allekirjoittama, koska allekirjoitus purettiin A:n julkisella avaimella e , mikä edellyttää että lähettäjä on käyttänyt A:n salaista avainta d sen lähettämisessä. Käytännössä älykortti (esim. HST) sisältää nämä algoritmit, jolloin käyttäjän ei tarvitse huolehtia DSA:n yksityiskohdista. Samaa DSA –algoritmia voidaan käyttää myös pelkästään verkossa asioijan varmennukseen. DSA :lla voidaan toteuttaa teknisesti tietoturvan päämääristä varmentamisen eli autentikoinnin, sekä kiistämättömyyden


Lataa ppt "Tietoturvallisuus osa8"

Samankaltaiset esitykset


Iklan oleh Google