200 likes | 310 Views
Avainten vaihto ja eheys. Avainta pitää vaihtaa aika ajoin. Avainten vaihto ei ole helppoa, ja mitä useampia osapuolia viestintään liittyy, sitä hankalammaksi se käy. Avaimen vaihtamiseen ei ole olemassa mitään helppoa tapaa… ellei sitten ole mahdollisuutta tehdä se avoimen kanavan läpi!
E N D
Avainten vaihto ja eheys • Avainta pitää vaihtaa aika ajoin. • Avainten vaihto ei ole helppoa, ja mitä useampia osapuolia viestintään liittyy, sitä hankalammaksi se käy. • Avaimen vaihtamiseen ei ole olemassa mitään helppoa tapaa… ellei sitten ole mahdollisuutta tehdä se avoimen kanavan läpi! • Tässä keskeisenä elementtinä on modulaarinen aritmetiikka eli kansanomaisesti jakojäännös. Timo Mynttinen
Idea on yksinkertainen: lasketaan jakolasku ja katsotaan paljonko jää jakojäännökseksi. • Esimerkiksi luku 7 menee 16:een kaksi kertaa, ja jakojäännökseksi jää 2: • 16=2 mod 7 , ”kuudentoista moduuli (jakojäännös) seitsemän suhteen on kaksi”. • Matemaattisesti asia merkitään hienommin , 16 on kongruentti kahden suhteen modulo 7. • Tulos on nolla silloin, kun jaettava luku on jakajan monikerta, eli jako menee tasan. Timo Mynttinen
Modulaaritekniikan hyödyllisyys piilee siinä, että jakojäännöksen laskeminen tähän suuntaan on helppoa. • Mutta jos laskutehtävä olisi annettu muodossa , oikeita x:n arvoja olisi nyt rajattomasti: 0, 8, 16, 24, 32, 40, … eli kaikki kahdeksan kerrannaiset. • Turvallista avaimenvaihtoprotokollaa kutsutaan kehittäjiensä mukaan Diffie-Hellman avaintenvaihtoprotokollaksi, ja se toimii seuraavasti: Timo Mynttinen
Henri ja Elsi sopivat keskenään yhteisestä luvusta Z. Luku ei ole mitenkään salainen, joten sitä voidaan ehdottaa ja hyväksyä avoimen kanavan yli. 2. Henri valitsee luvun SH (Secret Henri), jonka vain hän itse tietää. Henri laskee luvun PH (Public Henri) kaavalla ja lähettää sen Elsille. 3. Elsi valitsee vastaavasti oman salaisen luvun SE (Secret Elsi) ja laskee siitä PE (Public Elsi) kaavalla ja lähettää sen Henrille. Timo Mynttinen
Elsi on siis saanut Henrin lähettämän julkisen luvun PH ja Henri on saanut vastaavan Elsin lähettämän julkisen luvun PE. Jos joku on salakuunnellut liikennöintiä, niin hänellä on myös tiedossa Z, PH ja PE, mutta hän ei tiedä lukuja SH ja SE, joista PH ja PE on laskettu. 4. Seuraa alkeellista matematiikkaa. Koska seuraa tästä se, että . Timo Mynttinen
Kun Henri saa Elsin lähettämän julkisen luvun PE, hän korottaa sen omaan salaiseen potenssiin SH ja saa avaimeksi kelpaavan luvun K. Vastaavasti Elsi korottaa Henrin lähettämän julkisen luvun PH oman salaisen luvun SE potenssiin . Timo Mynttinen
Molemmilla osapuolilla on nyt hallussaan sama avain K, vaikkei sitä olekaan lähetetty avoimen kanavan yli. • Mikä estää salakuuntelijaa selvittämästä avainta K? Hän ei tunne lukuja SH ja SE. Hänen pitäisi ensin selvittää, mihin potensseihin luku Z on korotettu, jotta siitä on saatu Henrin ja Elsin julkiset luvut PH ja PE. • Tavallisessa matematiikassa tuo tehtävä olisi helppo: otetaan vain logaritmit lopputuloksesta Z:n suhteen. Timo Mynttinen
DH-protokollassa laskutoimitukset tehdään kuitenkin modulo q, missä q on suuri jaoton luku (alkuluku). • Potenssiin korottaminen modulo q on helppo laskea, mutta käänteinen tehtävä – diskreetti logaritmi – on erittäin hankala, eikä siihen tunneta mitään nopeaa menetelmää. • Otetaan äskeinen kättely oikeilla numeroilla (pienillä sellaisilla). Timo Mynttinen
Henri ja Elsi sopivat yhteisestä luvusta Z=7 sekä moduulista, jonka suhteen kaikki laskut jatkossa suoritetaan. Olkoon tämä luku u=11. 2. Henri valitsee salaisen luvun SH=3. 3. Elsi valitsee salaisen luvun SE=4. Timo Mynttinen
Henrin julkinen luku eli =343 mod 11=2 (luvun 343 jakojäännös eli moduuli 11 suhteen). 5. Elsin julkinen luku eli =2401 mod 11=3. 6. Henri lähettää Elsille luvun 2 ja Elsi Henrille luvun 3. 7. Henri laskee eli =27 mod 11=5 (jakojäännös 11:n suhteen) ja saa tuloksena salaisen avaimen K. Timo Mynttinen
Elsi laskee eli =16 mod 11=5. • Molemmat saavat siis saman tuloksen K=5 kuten pitikin. • Mahdollisen salakuuntelijan tiedossa ovat siis luvut Z=7, u=11 sekä PH=2 ja PE=3. Hänen pitäisi laskea SH ja SE voidakseen laskea K:n. • Tarvitaan siis ratkaisu lausekkeista ja . • Kun luvut ovat pieniä, arvot voidaan selvittää kokeilemalla: Timo Mynttinen
Kuvattu avaimen vaihto (generointi) ei takaa prosessin eheyttä: Kun Henri lähettää Elsille luvun, voi joku siepata sen matkalla ja vaihtaa sen itse laskemaansa lukuun…siis äsken kuvattu avaintenvaihtoprotokolla ei pysty todentamaan osapuolia. Timo Mynttinen
Tiiviste on yksisuuntainen funktio, jolle syötetään suuri joukko bittejä (esimerkiksi tiedosto tai kokonainen sähköpostiviesti) jonka jälkeen funktio tulostaa vakiomittaisen bittijonon eli tiivistearvon (hash value). • Funktio pitää valita siten, että yhdenkin sisään menevän bitin muuttaminen aiheuttaa suuren muutoksen ulos tulevassa arvossa. • Koska funktio on lisäksi yksisuuntainen, sitä ei voida ajaa takaperin: jos ulos tullut arvo tiedetään, ei voida mitenkään päätellä, minkälainen bittijoukko ne on tuottanut. Timo Mynttinen
Koska tiiviste yksilöi sille syötetyn bittijonon, tiivistettä kutsutaan myös bittijoukon sormenjäljeksi (fingerprint). • Hyvä tiivistefunktio täyttää seuraavat kriteerit: • sisään tulevien bittien lukumäärä voi olla mikä tahansa • ulos lähtevien bittien (tiivistearvo) lukumäärä on aina vakio, esim. 128 bittiä • yksisuuntainen (jos lopputulos tiedetään, ei voida mitenkään päätellä, millaisista arvoista se on saatu) • törmäykset epätodennäköisiä • nopea laskea • Yleisesti käytettäviä tiivistefunktioita ovat esim. MD5, RIPEMD-160, SHA-1, SHA-256 JA SHA-512. Timo Mynttinen
Tiivisteellä mm. varmistetaan, ettei viesti ole muuttunut matkalla. • Kun tiiviste lisätään viestin perään, vastaanottaja voi helposti tarkistaa että ne vastaavat toisiaan eikä viestiä ole muutettu. Timo Mynttinen
Edellä kuvatut salaustekniikat turvaavat Henrin ja Elsin välisen viestinnän luottamuksellisuuden, tiivisteet viestien eheyden ja DH-protokolla mahdollistaa avainten vaihtamisen niin usein kuin halutaan. • Kolme ongelmaa jää vielä ratkaisematta: 1. Henrillä ei edelleenkään ole varmuutta siitä, että linjan toisessa päässä on varmasti oikea Elsi. 2. Jos Henri saa Elsiltä tärkeän viestin, sen todistusvoima ei ole aukoton. Vaikka viesti on salainen, molemmat osapuolet tuntevat avaimen ja kumpi tahansa on voinut laatia viestin. Kiistämättömyysperiaate ei siis toteudu. Timo Mynttinen
3. On vaikeaa muistaa, mitä salasanaa kunkin vastaanottajan kohdalla käytetään – isossa organisaatiossa tämä ei onnistuisikaan! • Tarvittavien avainten määrä saadaan kaavasta , missä n on keskenään viestivien henkilöiden määrä: Timo Mynttinen
Mainitut kolme ongelmaa voidaan ratkaista vain epäsymmetrisellä salaustekniikalla. Timo Mynttinen