811168P 5 op 6. Oulun yliopisto Tietojenkäsittelytieteiden laitos
Mitä se on? on viestin alkuperän luotettavaa todentamista; ja eheyden tarkastamista. Viestin eheydellä tarkoitetaan sitä, että se ei ole välityksen aikana muuttunut. Viestin autentikoinnissa voidaan lisäksi todentaa viestijärjestyksen oikeellisuus ja viestin oikeaaikaisuus. 2
a koskevat hyökkäykset naamioituminen sisällön muuttaminen järjestyksen muuttaminen ajoituksen muuttaminen kiistäminen Digitaalinen allekirjoitus on autentikointitekniikka, joka estää erityisesti (lähteen suorittaman) kiistämisen. Kohteen kiistämisen estämiseen tarvitaan myös muita tekniikoita. Autentikaattori on se symbolijono, jota käyttäen autentikointi suoritetaan. 3
Viestinautentikointifunktiot Viestinautentikoinnissa on kaksi tasoa funktio, joka tuottaa autentikaattorin protokolla, joka mahdollistaa autentikointiprosessin On olemassa kolmentyyppisiä autentikointifunktioita salausfunktio (message encryption function) viestinautentikointikoodi (Message Authentication Code, MAC) hash funktio (hash function) 4
Viestin salaus Klassinen salaus takaa luottamuksellisuuden ja myös viestin autentikoinnin Eve ei tunne Alicen ja Bobin välistä salaisuutta (avainta), ja Bob tietää milloin kryptoteksti on muuttunut ymmärrettäväksi selkotekstiksi Bob voi lisätä selkotekstiin jonkin ylimääräisen rakenteen (tarkistussumman), joka on helppo tuottaa ja tarkistaa vain, jos tuntee salaisen avaimen. 5
Perinteinen salaus: luottamuksellisuus ja eheys Alice Bob x E E k (x) D x k k 6
Julkisen avaimen salaus Julkisen avaimen salaus tuottaa viestin autentikoinnin ja digitaalisen allekirjoituksen silloin, kun Alice allekirjoittaa viestin yksityisellä avaimellaan ja Bob varmentaa sen Alicen julkisella avaimella luottamuksellisuuden, autentikoinnin ja digitaalisen allekirjoituksen kun Alice ensin allekirjoittaa viestin yksityisellä avaimellaan ja tämän jälkeen salaa sen Bobin julkisella avaimella ja Bob aluksi avaa viestin omalla yksityisellä avaimellaan ja sitten varmentaa sen Alicen julkisella avaimella Bobin täytyy tietää milloin kryptoteksti on avattu selkotekstiksi; muussa tapauksessa tarvitaan tarkistussummaa. 7
Julkisen avaimen salaus: autentikointi ja digitaalinen allekirjoitus Alice Bob x E E kr a (x) D x kr a ku a 8
Julkisen avaimen salaus: luottamuksellisuus, autentikointi ja digitaalinen allekirjoitus A x E E E kra (x) E (E ku b kra (x)) kr a ku b D D kr a (x) D x B kr b ku a 9
Viestinautentikointikoodi (MAC) Oletetaan, että Alice ja Bob jakavat yhteisen salaisen avaimen k. Kun Alice haluaa lähettää viestin x Bobille, hän laskee x:n viestinauten-tikointikoodin (mac - arvon) M k (x), yhdistää sen viestiin x ja lähettää tuloksen Bobille. Edellä M k (x) on kiinteänpituinen (pituus sama kaikilla viesteillä) merkkijono, joka riippuu parametreista x ja k. Bob vastaanottaa lähetyksen, riisuu siitä viestiosan, suorittaa samat laskutoimitukset kuin Alice ja vertaa tulosta viestissä saamaansa mac-arvoon. Jos arvot ovat samat, Bob voi olla vakuuttunut siitä, että viesti 10
Viestinautentikointikoodi (2) ei ole matkalla muuttunut se on peräisin Alicelta on saapunut ajallaan (vast. oikeassa järjestyksessä) jos viesti sisältää aikaleiman (vast. järjestysnumeron) Huomattakoon, että mac-arvoa M k (x) ei dekryptata. Funktion oletetaan olevan yksisuuntainen ja vähemmän murtoaltis kuin tavanomainen salausfunktio. Muita syitä käyttää mactekniikkaa: säästää resursseja lisää rakenteellista joustavuutta pidentää suoja-aikaa 11
MAC-funktion käyttö: viestin autentikointi k x x M M k M k (x) vertaa 12
MAC-funktion käyttö: viestin autentikointi ja luottamuksellisuus k 2 x E E k 2 (x M k1 (x)) D M k 2 k 1 k 1 x M M k 1 (x) vertaa 13
MAC-funktiosta Mac-funktion rakenne jokaisella avaimella k on M k funktio, joka kuvaa minkä tahansa viestin x merkkijonoksi M k (x) kullakin k ja x, merkkijonon M k (x) pituus on aina sama Mac-funktio ei tuota digitaalista allekirjoitusta: sekä Alice että Bob tuntevat salaisen avaimen k ; kuvaa lukuisia argumentin arvoja samalle funktion arvolle Jos mac-funktio on hyvä, raa'an voiman murron avaimen löytämiseksi tulee vaatia noin 2 n-1 yritystä, kun avaimen pituus on n. 14
MAC funktion ominaisuuksia 1. Jokaisella avaimella k ja viestillä x, Alicen ja Bobin (koska he tuntevat k:n) on helppo laskea M k (x). 2. Evelle, vaikka hän tuntisi sekä viestin x että mac-arvon M k (x), on laskennallisesti vaikeaa löytää sellainen viesti x, x x että M k (x ) = M k (x). 3. Satunnaisesti valituilla viesteillä x ja x todennäköisyys sille, että M k (x ) = M k (x) on noin 1/2 n (n on mac-arvon pituus). 4. Vaikka viestit x ja x poikkeaisivat toisistaan hyvin vähän, on tn sille, että M k (x ) = M k (x) noin 1/2 n. 15
Data Authentication Algorithm (DAA) on eräs suosituimmista mac-funktioista. Se perustuu DESalgoritmiin, jota sovelletaan CBC-moodissa. Olkoon x viesti ja k Alicen ja Bobin salainen DES-avain. Tällöin viesti x jaetaan 64:n bitin lohkoihin x 1, x 2,..., x r, täydennetään x r oikealta nollilla, jos tarpeellista olkoon c 1 = DES(x 1 ); c i = DES(x i c i-1 ) kun i = 2, 3,..., r x:n mac-arvo DAC k (x) on c r 16
Hash - funktiot Hash-funktio h ottaa syötteenä minkä tahansa pituisen viestin x ja kuvaa sen kiinteänpituiseksi merkkijonoksi h(x). Tällöin h(x) on viestin x hash-arvo (hash-koodi, sormenjälki). Hash-arvo liitetään viestiin x ja saatu merkkijono x h(x) lähetetään vastaanottajalle joka autentikoi viestin laskemalla hash-arvon vastaanottamansa merkkijonon x:ää vastaavasta osasta. Hash-funktiot ovat julkisia: jokainen tuntee funktion h ; yksisuuntaisia: kun x on annettu, arvo h(x) helppo laskea; jos h(x) on annettu, to viestin x määrittäminen on laskennallisesti vaikeaa 17
Hash funktioiden käyttö hash-arvo h(x) liitetään viestiin x; tulos salataan jotain symmetristä menetelmää käyttäen vain hash-arvo h(x) salataan jotain symmetristä menetelmää käyttäen; kryptattu h(x) liitetään viestiin x käytetään jotain julkisen avaimen salausmene-telmää; hash-arvo h(x) varmennetaan Alicen yksityisellä avaimella ja liitetään viestiin x 18
Hash funktioiden käyttö: merkkijonon x h (x) salaus SK menetelmällä x E E k (x h(x)) D x H h k k h(x) vertaa 19
Hash funktioiden käyttö: merkkijonon h (x) salaus SK menetelmällä x x H vertaa H E k E k (h(x)) D k 20
Hash funktioiden käyttö (2) 21
Hash funktioiden käyttö (3) 22
Kun luottamuksellisuus ei ole välttämätöntä koko viestiä ei salata; näin siksi, että salausohjelmat hitaita salaustekniikka ei ole ilmaista salaustekniikka tukee suuria datakokoja salausalgoritmit on suojattu patenteilla salausalgoritmit ovat vientirajoitusten piirissä 23
Hash funktion h ominaisuuksia jokaisella viestillä x on h(x) helppo laskea millä tahansa hash-arvolla y on laskennallisesti vaikeaa löytää sellainen viesti x että y = h(x) (1. alkukuvaresistanssi) kun on annettu viesti x, on laskennallisesti vaikeaa löytää sellainen viesti x että x x ja h(x ) = h(x) (2. alkukuvaresistanssi) on laskennallisesti vaikeaa löytää sellainen viestipari (x, x' ) että x x' ja h(x) = h(x') (törmäysresistanssi) 24
Nykyaikaisten hash funktioiden iteratiivinen rakenne x 1 x 2 x s IV = h 0 f h1 f h s-1 f h s Olkoon annettu tiivistefunktio f : {0,1} n {0,1} m {0,1} n joka kuvaa minkä tahansa n:n bitin ja m:n bitin sanan n:n bitin sanaksi. Olkoon h 0 {0,1} n alkuarvo ja x viesti. Viesti x täydennetään ja jaetaan m:n bitin lohkoihin x 1, x 2,..., x s. Lasketaan h i = f (x i, h i-1 ), kun i =1,2,..., s. Asetetaan H(x) = h s. 25
Syntymäpäiväongelma Tarkastellaan funktiota f : A B missä määritysjoukon A kokoa ei ole rajoitettu, mutta arvojoukon koko B on n. Siten funktio f voi saada (korkeintaan) n eri arvoa. Jos funktiota f sovelletaan k:hon satunnaiseen argumentin arvoon, kuinka suuri täytyy luvun k olla, jotta todennäköisyys sille, että ainakin kaksi eri syötearvoa kuvautuu samalle funktion arvolle, on vähintään 0.5? 26
Syntymäpäiväongelma (2) 27
Syntymäpäiväongelma (3) 28
Syntymäpäiväongelma (4) 29
Syntymäpäiväongelma (5) Jos huoneessa on ainakin 23 henkilöä, todennäköisyys sille, että ainakin kahdella on sama syntymäpäivä, on suurempi kuin ½. (365 ½ < 23) 30
31
Tn P (365, k) parametrin k funktiona 32
Suosittuja hash-algoritmeja MD5 (Message Digest 5) RIPEMD-160 (RACE Integrity Primitives Evaluation) HMAC (Hash Based Message Authentication Code) SHA-1 (Secure Hash Algorithm 1) SHA-2 (parannettu SHA-1) SHA-3 (Keccak, valittiin NIST:n hash-funktiokilpailun voittajaksi 2.10.2012 ) 33
Digitaalinen allekirjoitus viestin autentikointi suojaa kommunikoivia osapuolia (Alice ja Bob) kolmatta osapuolta (Eve) vastaan se ei kuitenkaan suojaa Alicea ja Bobia toinen toistaan vastaan oletetaan, että John lähettää autentikoidun viestin Marylle ja käyttää jotakin kalvossa 35 esitetyistä tavoista seuraavanlaisia kiistoja voi syntyä Mary voi kirjoittaa väärennetyn viestin ja väittää, että se on Johnin lähettämä John voi kiistää lähettäneens viestin 34
Hash-funktion käyttö viestin autentikoinnissa 35
Digitaalisen allekirjoituksen ominaisuuksia digitaalinen allekirjoitus on bittijono, joka riippuu lähetettävästä viestitä digitaalisen allekirjoituksen tulee sisältää sellaista lähettäjää koskevaa tietoa, joka estää sekä väärentämisen että kieltämisien digitaalisen allekirjoituksen tuottamisen pitää olla (laskennallisesti) helppoa digitaalisen allekirjoituksen tunnistamisen ja todentamisen pitää olla (laskennallisesti) helppoa 36
Digitaalisen allekirjoituksen ominaisuuksia (2) digitaalisen allekirjoituksen väärentämisen pitää olla (laskennallisesti) vaikeaa vaikeaa konstruoida väärennetty viesti annetulle digitaaliselle allekirjoitukselle vaikeaa konstruoida väärennetty digitaalinen allekirjoitus annetulle viestille digitaalisen allekirjoituksen kopion säilyttämisen tulee olla helppoa 37
Digitaalisen allekirjoituksen geneerinen malli 38
Digitaalisen allekirjoituksen laatiminen: yksinkertaitettu kuvaus 39
Kaksi lähestymistapaa digitaaliseen allekirjoitukseen 40