370 likes | 492 Views
Epäsymmetrinen salaus. Tässä salaukseen käytettävä avain voi olla julkinen, kunhan purkuavain pidetään salassa. Koska avaimet ovat erilaisia, tekniikkaa kutsutaan epäsymmetriseksi salaukseksi.
E N D
Epäsymmetrinen salaus • Tässä salaukseen käytettävä avain voi olla julkinen, kunhan purkuavain pidetään salassa. • Koska avaimet ovat erilaisia, tekniikkaa kutsutaan epäsymmetriseksi salaukseksi. • Englanninkielisten termien ”private key” ja ”public key” käännöksinä käytetään sanoja ”yksityinen avain” ja ”julkinen avain”. • Epäsymmetrinen salaustekniikka pohjautuu tiivistefunktioiden tavoin yksisuuntaisiin funktioihin. Timo Mynttinen
Yksisuuntainen funktio riitti tiivisteen laskemiseen, mutta salaustekniikaksi siitä ei ole. • Tarvitaan jokin tapa, jolla funktio saadaan toimimaan myös toiseen suuntaan. • Tätä keinoa kutsutaan salaluukuksi (trapdoor). • Henkilö, joka tietää salaluukun, pystyy sittenkin ajamaan funktion toiseen suuntaan, vaikka se muiden silmissä näyttää yksisuuntaiselta. • Salaluukun on oltava niin piilossa, ettei sitä pysty löytämään pelkästään kokeilemalla. Timo Mynttinen
Julkisen avaimen järjestelmässä käytetään kahta avainta: toisella salataan ja toisella puretaan. • Avaimet liittyvät toisiinsa matemaattisella tavalla, jota ulkopuolisen on käytännössä mahdotonta keksiä. • Koska julkisella avaimella voidaan vain salata, sen paljastumista ei tarvitse pelätä. • Päinvastoin, avaimen löytäminen tehdään mahdollisimman helpoksi ilmoittamalla se esim. henkilökohtaisella www-sivulla. • Julkiseen avaimeen liittyvä yksityinen avain pidetään sitä vastoin visusti omana tietona. Timo Mynttinen
Se, mitä julkisella avaimella on salattu, voidaan purkaa vain vastaavalla yksityisellä avaimella. • Lähetettäessä salaista tietoa se enkoodataan vastaanottajan julkisella avaimella. • Tämän jälkeen edes lähettäjä itse ei pysty enää purkamaan tekemäänsä salausta. • Salatun version voi avata vain henkilö, jolla on hallussaan julkista avainta vastaava yksityinen avain. • Julkisen avaimen järjestelmä on kuin lukittu laatikko, jonka lukossa on paikka kahdelle avaimelle. • Toisella avaimella lukko suljetaan ja toisella avataan. Timo Mynttinen
Henkilön, jonka talon edessä tällainen laatikko on, kannattaa tehdä lukitusavaimesta mahdollisimman monta kopiota ja jakaa niitä kaikille halukkaille. • Sen jälkeen tällaisen avaimen haltija voi jättää viestejä laatikkoon ja lukita laatikon perässään. • Oleellista on, että vain yksityisen avaimen haltija pystyy avaamaan laatikon ja saamaan haltuunsa sen, mitä muut ovat laatikkoon laittaneet. • Koska yhteistä salaisuutta ei ole, julkisen avaimen sopiminen on pelkkä ilmoitusasia. Timo Mynttinen
Aina kun Henri haluaa vaihtaa käyttämäänsä avainta, hän luo uuden avainparin (toisiinsa liittyvät julkisen ja yksityisen avaimen). • Henri tallentaa yksityisen avaimensa turvalliseen paikkaan, mutta lähettää julkisen avaimen Elsille täysin avoimella sähköpostilla. • Koska avaimet toimivat itsenäisesti, molempien osapuolien ei tarvitse vaihtaa avainpariaan yhtä aikaa. Timo Mynttinen
Julkisen avaimen käyttö ratkaisee toisenkin ongelman: kun se voidaan panna näytille esim. omalle www-sivulle, niin kenenkään ei tarvitse muistella mikä oli kulloinkin Henrin kanssa voimassa oleva salausavain. • Pelkässä julkisen avaimen tekniikassa on kuitenkin omat varjopuolensa: Timo Mynttinen
Epäsymmetrisen avaimen tekniikka tarvitsee huomattavasti pidemmät avaimet kuin symmetrisen avaimen tekniikka, koska järjestelmällisen kokeilun sijaan niiden murto perustuu salaimen matemaattisiin ominaisuuksiin. Jopa useisiin tuhansiin bitteihin venyvä avain on tallennettava levylle (jolloin sen tiedosto suojataan yleensä symmetrisellä salauksella ja lyhyemmällä, ulkoa muistettavalla salasanalla). • Epäsymmetriset menetelmät pohjautuvat matematiikkaan, niistä RSA lukujen jakamiseen tekijöihinsä. Riittävän nopeaa tekijöihin jakoa ei tällä hetkellä tunneta, mutta ei voida myöskään todistaa, etteikö sellaista olisi… Timo Mynttinen
Epäsymmetriset salaukset ovat hitaita, koska niissä lasketaan suurilla luvuilla. Ohjelmallisena toteutuksena RSA-menetelmä on noin 100 kertaa hitaampi kuin vastaavan datamäärän salaaminen DES:llä… laitteistotasolla ero nousee 1000…10000 –kertaiseksi. • Niin sanottu Forward search –hyökkäys voi paljastaa salauksen. • Julkisen avaimen järjestelmä ei synnytä luottamusta. Se ei takaa sitä, että Henri on Henri. Timo Mynttinen
Elsin on varmistuttava Henrin henkilöllisyydestä esim. tapaamalla Henri henkilökohtaisesti ja vaihtamalla julkisia avaimia ensimmäisen kerran. • Sen jälkeen Henri voi digitaalisella allekirjoituksellaan siirtää Elsin hankkimaa luottamusta ajassa eteenpäin. • Kun uudet avaimet tulevat Henrin yksityisellä avaimella allekirjoitettuna, Elsi voi olla varma niiden aitoudesta. • Sen sijaan, että Elsi itse tarkistaisi Henrin henkilöllisyyden, hän voi uskoa tehtävän vaikkapa viranomaisen tehtäväksi. Timo Mynttinen
Digitaalinen allekirjoitus, viestien salaaminen ja kiistämättömyysperiaate toteutuvat vain, jos niissä käytettävä yksityinen avain on ainoastaan oikean henkilön tiedossa. • Jos yksityinen avain paljastuu, epäsymmetrisestä tekniikasta ei ole yhtään sen enemmän hyötyä kuin symmetrisestäkään. Timo Mynttinen
Yhdistämällä symmetrisen salauksen nopeus ja epäsymmetrisen salauksen edut luodaan seuraava menetelmä: 1. Henri arpoo satunnaisen 128-bittisen avaimen K. 2. Tiedostoliite salataan jollakin symmetrisellä menetelmällä käyttäen avainta K. 3. Itse avain K salataan Elsin julkisella avaimella ja lähetetään sähköpostilla Elsille. 4. Salattu tiedostoliite lähetetään Elsille. Timo Mynttinen
Elsi purkaa saamansa viestin yksityisellä avaimellaan ja saa avaimen K. Sen jälkeen hän purkaa varsinaisen liitteen tällä avaimella ja tuhoaa lopuksi avaimen K. • Sähköpostin tapauksessa avain K on kertakäyttöinen, ja sitä kutsutaan istuntoavaimeksi (session key). Timo Mynttinen
RSA:n idea (Ronald Rivest, Adi Shamir, Leonard Adleman) • Alkulukuja (primes) ovat luvut, jotka voidaan jakaa tasan vain ykkösellä ja itsellään. • Lukujen sanotaan olevan jaottomia, eikä niillä ole tekijöitä. • Alkulukuja on rajaton määrä, mutta mitä suurempiin lukuihin mennään, sitä harvemmaksi alkuluvut käyvät, sillä mitä suurempi luku on, sitä useampia jakajia sillä voi olla. Timo Mynttinen
Ei kuitenkaan ole mitään kaavaa, jolla voitaisiin helposti laskea mikä on järjestyksessä n:s alkuluku. • Isoilla luvuilla toimittaessa jo pelkkä jaottomuuden selvittäminen on hankalaa. • Pienten alkulukujen jaottomuuden tutkiminen on helppoa. • Otetaan luku n ja testataan nousevassa suuruusjärjestyksessä, jakaako jokin pienempi luku sen tasan. • Neliöjuuri n on suurin mahdollinen jakaja: jos jakajaa ei ole siihen mennessä löytynyt, sitä ei löydy tämänkään jälkeen. Timo Mynttinen
Lisäksi mahdollisina jakajina kannattaa kokeilla vain alkulukuja, koska muut luvut voidaan edelleen jakaa tekijöihin ja silloin ne jakavat myös luvun n. • Lukujen ominaisuuksia (alkulukuja, jaollisuutta, ym) tutkivaa matematiikan haaraa kutsutaan lukuteoriaksi (number theory). • Tunnetun matemaatikon Karl Friedrich Gaussin (1777-1855) mielestä matematiikka on tieteiden kuningatar ja lukuteoria on matematiikan kuningatar. Timo Mynttinen
RSA-menetelmään tarvitaan kaksi isoa alkulukua, joita perinteisesti merkitään kirjaimilla p ja q. • Jotta salaus säilyisi turvallisena, lukujen on oltava suunnilleen yhtä pitkiä ja niillä on oltava eräitä lisäominaisuuksia. • Lasketaan tulo n=p*q. • Kertolaskun jälkeen n:n pituus on kaksinkertainen p:hen ja q:hun nähden, jos p ja q ovat 512-bittisiä, niin n on 1024-bittinen. • Lisäksi tarvitaan kaksi lukua, joiden osoittamiin potensseihin sala- ja selväteksti korotetaan. Timo Mynttinen
Näitä lukuja merkitään kirjaimilla e (encryption, salaus) ja d (decryption, purku). • Nämä luvut e ja d on valittava siten, että ne täyttävät ehdon e*d=1 mod t, missä t=(p-1)*(q-1), eli toisin sanoen löytyy jokin k:n arvo, jolle on voimassa e*d=k*t+1. • Matemaattisessa esityksessä luvun t paikalla käytetään pientä kreikkalaista kirjainta Phi, φ, jolloin kyseessä on Eulerin kertymäfunktio (totient function). • Kertymäfunktio ilmoittaa, kuinka monta on lukua n pienempiä lukuja (positiivisia lukuja, 1 mukaan lukien), joilla ei ole yhteisiä tekijöitä (relatively prime) n:n kanssa. Timo Mynttinen
Silloin kun n on alkuluku, kertymäfunktion arvo on aina n-1, eli silloin φ(n)=(p-1)*(q-1). • Koska luku t saadaan kertomalla keskenään kaksi alkulukua, joista molemmista on vähennetty yksi, tulos ei itse ole alkuluku. • Valittavan luvun e tulee olla pienempi kuin t, eikä sillä saa olla yhteisiä tekijöitä t:n kanssa (muita kuin ykkönen). Tämä ilmaistaan kirjoittamalla s.y.t(t, e)=1 (suurin yhteinen tekijä) eli englanniksi gcd(t, e) =1 (greatest common factor). • Lopuksi tarvitaan vielä luku d, jonka täytyy olla e:n käänteisluku modulo t. Timo Mynttinen
Modulaariaritmetiikassa käänteisluku määritellään toisin kuin perinteisessä aritmetiikassa. • Modulaariaritmetiikassa kaksi lukua ovat toistensa käänteislukuja, jos niiden tulo annetun moduluksen suhteen on yksi. • Esimerkiksi 3 ja 7 ovat toistensa käänteislukuja modulo 10, sillä 7*3 mod 10=21 mod 10=1. • Luku e ja modulus n muodostavat yhdessä julkisen avaimen, joka voidaan kertoa kaikille. • Luku d ja modulus n muodostavat yksityisen avaimen, joka pidetään vain omana tietona. • Myös luvut p, q ja t ovat luottamuksellisia. Timo Mynttinen
Luvut p, q ja t tuhotaan, kun avainpari on luotu. • Olkoot salattava selväteksti P ja salateksti C. • Salaus tehdään korottamalla selväteksti P potenssiin e ja ottamalla siitä modulo n:n suhteen: . • Salateksti puretaan tekemällä korotus toisella eksponentilla d ja ottamalla taas modulo: . Timo Mynttinen
Kokeillaan äskeistä luvuilla: 1. Valitaan aluksi kaksi suunnilleen yhtä pitkää alkulukua, luvut p=7 ja q=17. 2. Lasketaan n=p*q=7*17=119. 3. Lasketaan t=(p-1)(q-1)=6*16=96. 4. Valitaan luku e, joka on pienempi kuin 96 ja jolla ei ole yhteisiä tekijöitä 96:n kanssa. Valitaan arvoksi e=5. 5. Etsitään d:n arvo, joka täyttää ehdon d*e=1 mod 96 ja on pienempi kuin t. Pitäisi siis löytää luku, joka kerrottuna 5:llä (e) ja jaettuna 96:lla antaa jakojäännökseksi ykkösen. Timo Mynttinen
Koska 96+1=97, kokeillaan arvoja seuraavasti: ((1*96)+1)/5=97/5=19,4 ((2*96)+1)/5=193/5=38,8 ((3*96)+1)/5=289/5=58,2 ((4*96)+1)/5=385/5=77 ((5*96)+1)/5=485/5=96,2 • Luku 4 kerrottuna 96:lla ja lisättynä yhdellä on 385, johon viisi menee tasan. • Valitaan siis d=77. • Tarkastetaan vielä, että d*e=77*5=385 ja 385 mod 96=1, joten d täyttää vaaditun ehdon. Timo Mynttinen
Arvo d voidaan etsiä myös ns. laajennetulla Euklideen algoritmilla. • Julkinen avain on siis lukupari e ja n eli luvut 5 ja 119 sekä yksityinen avain lukupari d ja n eli luvut 77 ja 119. • ASCII-järjestelmässä isot aakkoset alkavat vasta numeron 65 kohdalta, mutta sovitaan nyt, että aloitetaan ykkösestä: A=1, B=2, jne. • Olkoot salattavana tekstinä yksi kirjain, R=18. • Silloin salaus tapahtuu korottamalla 18 potenssiin e (5) ja otetaan moduuli 119 suhteen: =1889568 mod 119=86. Timo Mynttinen
Vastaanottajalle lähetettävä salateksti on siis 86. • Vastaanottaja purkaa viestin käyttämällä omaa yksityistä avaintaan eli paria 77 ja 119: • Laskutoimitus ei ilman aputyökaluja onnistune… Timo Mynttinen
Yleisillä RSA:n avainpituuksilla n on 1024 tai 2048 bittiä, eli kyse on pisimmillään 299 tai 617 numeroa pitkistä kymmenkantaluvuista. • Nopeimmatkin tunnetut algoritmit ja tietokoneet ovat liian hitaita jakamaan näin pitkiä lukuja tekijöihin (eli löytämään luvut p ja q järkevässä ajassa). Timo Mynttinen
RSA-menetelmässä julkinen ja yksityinen avain ovat symmetrisiä eli ne toimivat molempiin suuntiin. • Lähettäjän yksityisellä avaimellaan enkoodaama viesti on kenen tahansa purettavissa, jolla on hallussaan (joka vaivautuu etsimään) lähettäjän julkisen avaimen. • Jos viesti purkautuu ymmärrettävään muotoon, voidaan olla varmoja siitä, että se tulee ilmoitetulta lähettäjältä (koska vain hän tuntee yksityisen avaimen, jolla viesti on täytynyt enkoodata). Timo Mynttinen
Esimerkiksi sopimusteksti voidaan allekirjoittaa digitaalisesti siten, että molemmat osapuolet enkoodaavat siitä lasketun tiivisteen, jotka sitten lisätään asiakirjan liitteeksi. Jos joku haluaa tarkistaa allekirjoitukset, hän etsii vastaavat julkiset avaimet, ja katsoo, purkaako koodaus oikein. • Käytännössä allekirjoitus tehdään salaamalla ainoastaan asiakirjasta laskettu tiiviste yksityisellä avaimella. • Koska ulkopuolisen on mahdotonta laatia toista tekstiä, joka tuottaisi saman tiivistearvon, tiivistettä ja tekstiä voidaan pitää samanarvoisina. Timo Mynttinen
Digitaalisessa allekirjoituksessa tekstin peukalointi jälkikäteen on mahdotonta. • Sähköinen allekirjoitus turvaa sekä aitouden että eheyden. • Viestin, joka on allekirjoitettu digitaalisesti, on pakko tulla ilmoitetulta henkilöltä, koska kukaan toinen ei pysty laatimaan samanlaista allekirjoitusta. • Digitaalinen allekirjoitus siis toteuttaa kiistämättömyyden periaatteen. • Käytetyin puhdas allekirjoitusalgoritmi on DSA, Digital Signature Algorithm. Timo Mynttinen