Kryptoprotokollat, luento 8 (B) 9.4.2008

Valtuuttamisen kryptologiaa

Valtuusallekirjoitus oli esillä A-osan luennolla. Kryptografinen valtuuttaminen voi olla myös muunlaista. Yksi esimerkki siitä on key escrow (id=361). Siinä käyttäjä tietyssä mielessä (vapaaehtoisesti tai pakotettuna) valtuuttaa escrow-agentin purkamaan salauksen tietyissä tilanteissa. Kuten A-osan tarkasteluissa todettiin, mielenkiintoiseksi valtuuttaminen tulee siinä tapauksessa, että valtuuttaja ja valtuutettu eivät voi tehdä tarkalleen samoja operaatioita. Escrow-tapauksessa tämä tarkoittaa esim. sitä, että agentin suorittama purku vaatii jotain erityisjärjestelyjä ja tuloksesta jotenkin ilmenee, ettei purkaminen ollut normaali. Jäljempänä tässä luennossa käsitellään reiluun vaihtoon sopivaa allekirjoitusta ja siinä esiintyy osittain luotettu osapuoli, joka toimii vähän escrow-agentin tapaan, mutta tehtävänä on allekirjoituksen luominen. Siinä tapauksessa halutaankin, että normaalilla ja poikkeavalla tavalla luodut allekirjoitukset eivät eroa toisistaan.

Kaikki edellämainitun kaltaiset luotetut osapuolet tai monissa muissa protokollissa esiintyvät kolmannet osapuolet, esim. avainkeskukset Kerberoksessa, eivät varsinaisesti ole valtuutettuja tai valtuuttajia siinä mielessä kuin valtuuttamisen kryptologiassa tarkoitetaan. Yhtenäistä teoriaa tälle aihepiirille on kehitelty artikkelissa Anca Ivan, Yevgeniy Dodis: Proxy Cryptography Revisited (2003). Siinä määritellään formaalisesti valtuutetun

ja asetetaan näille turvavaatimukset. Lisäksi esitetään yleiset menetelmät, joilla tavanomainen krypto-operaatio voidaan muuntaa valtuusmuotoon.

Yksisuuntainen salaus [allekirjoitus] edellyttää seuraavat viisi algoritmia:

Kaksisuuntaisuus yksinkertaistaa tilannetta siten, että P*- ja F*-operaatioiden tilalla on yksi operaatio (artikkelissa merkitty pii-symbolilla), jolla valtuutettu P kääntää normaalin käyttäjän salatekstit [viestit] sellaiseen muotoon, että osapuoli F saa siitä omalla avaimellaan esiin alkuperäisen selkotekstin [normaalin allekirjoituksen]. Tässä tapauksessa siis avainten luonnin operaatio (BiGen) ei tuotakaan F:lle avaimia jokaista U:ta kohti, vaan yhden oman avaimen. Sen sijaan P:lle tuotetaan molempiin suuntiin toimiva käännösavain kutakin käyttäjäparia (U,F) kohti.

Esimerkki. Yksisuuntainen valtuusallekirjoitus muodostetaan artikkelin mukaan yleisesti siten, että normaalia algoritmia varten luodaan kahdet avaimet. Käyttäjä U allekirjoittaa aina molemmmilla yksityisillä avaimillaan ja todennus tapahtuu molemmilla julkisilla avaimilla. Osapuolella P on toinen U:n yksityisistä avaimista ja F:llä toinen.

Jos normaalina algoritmina on RSA, rakennetta voidaan hieman yksinkertaistaa yleisestä. Käyttäjällä U on normaaliin tapaan julkinen moduuli n (=p·q), julkinen eksponentti e ja yksityinen eksponentti d. Se on kuitenkin jaettu summaksi d= d1+d2 modulo (p-1)(q-1). Näistä d1 on annettu P:lle ja d2 F:lle. Viestin m normaali allekirjoitus on hash(m)d mod n kuten ennenkin ja todentuu entiseen tapaan e:llä. Jos F ja P rupeavat luomaan allekirjoitusta, heidän potenssilaskujensa tulo antaa normaalin tuloksen.

Artikkeli ei esitä kaksisuuntaisesta valtuusallekirjoituksesta esimerkkiä, vaan ainoastaan yleisen rakenteen. Voi olla sopiva harjoitustehtävä tutkia, miten RSA:ta voi soveltaa tässä tapauksessa. Kuten seuraavaksi käsiteltävässä artikkelissa huomataan hyvin samankaltaisessa RSA:ta soveltavassa yhteydessä, julkaistutkin soveltamiset voivat yllättäen murtua.

Reiluun vaihtoon sopiva allekirjoitus

Reilun vaihdon perusidea oli esillä jo TTJ:ssä (id=328). Tarkastellaan nyt määritelmiä ja protokollia, joita Yevgeniy Dodis ja Leonid Reyzin esittävät artikkelissaan Breaking and Repairing Optimistic Fair Exchange from PODC 2003. (2003).

On kolme osapuolta A, B ja C, joista C on se kolmas eli luotettu osapuoli. Voidaan ajatella että A on ostaja, jonka pitäisi allekirjoittaa vastaanottokuittaus (tai maksumääräys) tuotteesta, jonka hän saa B:ltä, mutta hän ei haluaisi tehdä sitä ennen kuin tuote on hänellä. Toisaalta B ei halua luovuttaa tuotetta ennen kuin saa takeet vastikkeesta eli A:n allekirjoituksen. Jotta C:tä ei tarvitsisi varsinaisesti käyttää kuin ongelmatilanteissa, muodostetaan seuraavanlainen allekirjoitussysteemi, jota Dodis ja Reyzin kutsuvat todennettavasti sitoutuneeksi ("verifiably committed signature").

Alustusvaiheessa A luo itselleen avaimia siten, että C saa niistä tietyn osan. Tuloksena A:lla on avainpari, joilla hän kaupanteon alkuvaiheessa voi luoda osittaisen allekirjoituksen S', jonka B voi todentaa sellaiseksi. Kun B sitten on toimittanut tuotteensa, A lähettää hänelle täyden allekirjoituksensa S, joka tekee B:n tyytyväiseksi. Jos A laiminlyö tämän, B voi lähettää S':n C:lle, joka pystyy sen perusteella luomaan S:n. Tätä varten B:n täytyy tietysti antaa C:lle todisteet siitä, että B on toiminut oikein. Tässä kohden ilmenee C:hen osoitettu luottamus. Lisävaatimuksena on se, että A:n ja C:n tuottama S ovat samanlaisia muutenkin kuin "tyydyttävyytensä" puolesta. Vaikka ne eivät siis välttämättä ole samat, jälkeenpäin ei saisi pystyä erottamaan, mitkä S:t on tehty normaalisti ja mitkä reklamaation perusteella. Tämän vaatimuksen takia protokollaksi ei riitä se, että C:llä vain on erillinen "mahtiallekirjoitus", joka yhdessä S':n kanssa tuottaa B:lle kelpaavan hyvityksen.

Artikkelin otsikossa mainittu "PODC 2003" on tuonnimisessä konferenssissa esitetty protokolla. Artikkelin kirjoittajat näyttävät, miten siinä C pystyy alustusvaiheessa saamaan tietoonsa A:n yksityisen avaimen. Seurauksena on tietenkin, että C pystyy luomaan A:n täyden allekirjoituksen, vaikka ei olisikaan nähnyt osittaista allekirjoitusta. Murtamisen taustalla on RSA-matematiikka, ja tilanne näyttää hyvin samantapaiselta kuin edellä oleva yksisuuntaisen valtuusallekirjoituksen RSA-esimerkki.

Artikkelin esittämä protokolla perustuu varsin uuteen kryptoprimitiiviin, nimeltä GDH-allekirjoitus, Gap-Diffie-Hellman (alunperin artikkelista D.Boneh, B.Lynn, H.Shacham, Short signatures from the Weil pairing, Asiacrypt01, 2001.) Sen taustalla ovat tietynlaiset elliptisten käyrien aliryhmät (GDH-ryhmät), joilla on seuraava erikoinen ominaisuus:

Edellä lainausmerkit lausekkeessa "gx" osoittavat, että operaatio voi oikeasti olla jokin muu kuin potenssiin korotus. Esimerkiksi elliptisissä käyrissä vastaava operaatio on kertolasku. Käytetään jatkossa tästä vain merkintää gx. Edelleenkin g on sellainen alkio että sen potensseina saadaan kaikki muut mahdolliset alkiot.

Tällaisen rakenteen soveltaminen allekirjoitussysteemiksi on ilmeistä. Jos kerran laskentaprobleema on vaikea, samoin täytyy olla logaritmin laskun: eksponentti x on turvassa tuloksessa Hx. Olkoon tässä siis x yksityinen avain ja H=hash(viesti). Kun julkisena avaimena kerrotaan pari (g, gx), niin pari (H, Hx) on GDH-allekirjoitus, sillä sen voi tehdä vain x:n omistaja ja sen voi todentaa helposti ratkaisemalla, onko kolmikko (gx, H, Hx) DH-kolmikko.

GDH-allekirjoitussysteemi on eksistentiaalisesti väärentämätön adaptiivista valitun tekstin hyökkäystä vastaan satunnaisoraakkelimallissa. Olettaen siis hash turvalliseksi on laskennallisesti mahdotonta luoda oikeaa allekirjoitusta millekään viestille, jonka allekirjoitusta ei ole ennen nähnyt, vaikka voisi "lypsää" malliksi allekirjoituksia mille tahansa valitsemilleen viesteille.

Artikkelin esittämä todennettavasti sitoutunut allekirjoitus käyttää GDH-allekirjoitusta siten, että koko allekirjoituksessa yksityisenä avaimena on x ja osittaisessa x1. Täydennykseen tarvitaan eksponenttia x2 ja kuten arvata saattaa x= x1+ x2.

Uutuudestaan ja erikoisuudestaan huolimatta GDH on päässyt vuonna 2005 jo wikipediaankin. Sitä käsitellään elliptisiin käyriin liittyvän XDH-oletuksen yhteydessä.