Salaisuuden jakaminen on termi, jolla viitataan tapoihin jakaa salaisuus monien ihmisten kesken siten, että kukin henkilö saa vain osan tiedosta ja salaisuuden palauttaminen vaatii useamman osan yhdistämistä. Yhden henkilön tieto ei yleensä riitä salaisuuden rakentamiseen uudelleen. Tämänkaltaiset menetelmät kehitettiin itsenäisesti vuonna 1979 Adi Shamirin ja George Blakleyn toimesta.
Mikä on perusajatus?
Ajatuksena on luoda niin sanottu k-of-n-järjestelmä (esim. 3‑of‑5), jossa salaisuus jaetaan n vastaanottajalle siten, että mikä tahansa k vastaanottajaa voi yhdessä palauttaa alkuperäisen salaisuuden, mutta alle k osan tieto ei riitä. Jakaja (dealer) muodostaa jokaiselle vastaanottajalle yksilöllisen osuuden eli sharen, ja useiden osien yhdistelmä palauttaa salaisuuden. Tätä käytetään erityisesti tilanteissa, joissa halutaan estää yhden henkilön yksinomainen toimivalta tai suojata avaintiedostoja katoamisen tai vuodon varalta.
Shamirin salaisuuden jakaminen
Shamirin menetelmä pohjautuu polynomien ominaisuuksiin äärellisissä kentissä. Perusidea tiivistettynä:
- Valitaan k‑1 asteen polynomi f(x) äärellisessä kentässä (esimerkiksi modulo prime-p), jossa polynomin vakio termi f(0) = S on jaettava salaisuus.
- Lasketaan polynomin arvot f(1), f(2), ..., f(n) ja annetaan kukin arvo eri vastaanottajalle osana heidän osuuttaan.
- Kun k vastaanottajaa yhdistää osuutensa, he voivat rekonstruoida polynomin (esimerkiksi Lagrangen interpoloinnilla) ja siten saada f(0) eli salaisuuden S.
Turvallisuus: alle k osaa sisältää matemaattisesti nollatietoa alkuperäisestä salaisuudesta, kun käytetään sopivan suurta kenttää. Shamirin menetelmä on siten information-theoretically secure eli tietoteoreettisesti turvallinen — hyökkääjä ei saa salaisuudesta tietoa edes rajattomalla laskentateholla, jos osia on liian vähän.
Blakleyn geometrinen menetelmä
Blakleyn menetelmä on geometrinen versio saman lupauksen saavuttamisesta:
- Salaisuus esitetään pisteenä k‑ulotteisessa avaruudessa (esim. yksi koordinaatti tai funktio pisteen sijainnista).
- Jokainen osuus vastaa hyperpinnan (suoraviivan, tason tai ylinten tasojen) yhtälöä, joka kulkee kyseisen pisteen läpi.
- Kun k tai enemmän hyperpintaa yhdistetään, niiden leikkauspiste antaa alkuperäisen salaisuuden.
Blakleyn menetelmä saavuttaa samanlaisen k‑of‑n-toiminnallisuuden, mutta toteutustapa ja käytännön yksityiskohdat poikkeavat Shamirin polynomipohjasta. Joissain muunnelmissa voidaan huomata, että toteutusvalinnoilla voi olla vaikutusta esimerkiksi käytännön toteutuksen yksityiskohtiin ja siihen, mitä osat mahdollisesti paljastavat.
Esimerkki: avaimen jakaminen ja RSA
Yksi käytännön käyttötapaus on salaisten avainten jakaminen, kuten RSA-salausjärjestelmän yksityisen avaimen suojaaminen. Jos yksityinen avain jaetaan usealle henkilölle siten, että allekirjoitus voidaan luoda vain yhteistyöllä (k‑of‑n), yksittäisen osan paljastuminen tai katoaminen ei vaaranna avainta. Tämä on hyödyllistä esimerkiksi pankeissa, julkisissa palveluissa tai armeijassa.
Turvallisuus ja tietoteorian näkökulma
Hyvin suunnitelluissa salaisuudenjakojärjestelmissä pätee se, että alle vaaditun määrän osia sisältää teoreettisesti nollainformaation salaisuudesta. Tämän vuoksi näitä kutsutaan usein tietoteoreettisesti turvallisiksi. Alkuperäisessä tekstissä mainittu kohta on tässä relevantti: jos osan tietäminen ei muuta sitä, kuinka vaikeaa salaisuuden arvaaminen on ilman yhtään osaa, järjestelmä on turvallinen tietoteorian näkökulmasta.
Käyttötapaukset ja hyödyt
- Yksityisten avainten suojaaminen ja varmistus (esim. PKI, HSM-avaimet).
- Yrityksen kriittisten toimintojen hallinta siten, että päätökset vaativat usean avainhenkilön hyväksynnän.
- Turvallinen varmuuskopiointi: jos tallennusmedia katoaa, salaisuus voidaan palauttaa muilla osuuksilla.
- Järjestelmät, joissa halutaan suojata tiedot myös myötätuulta eli aktiivisilta hyökkääjiltä (lisäprotokollat kuten verifiable secret sharing auttavat).
Käytännön huomioita ja laajennuksia
Kun toteuttaa salaisuuden jakamista käytännössä, kannattaa huomioida:
- Kentän valinta ja avaimen koko: Shamirin menetelmä vaatii äärellisen kentän, jonka alkioiden määrä on suurempi kuin jaettava luku (esim. prime‑moduuli suurempi kuin salaisuus). Valitse turvallinen koko ja satunnaisuuteen pohjautuvat kertoimet.
- Luotettava jakaja vai hajautettu luonti: Perinteinen malli vaatii luotettavaa jakajaa (dealer). Jos dealer ei ole luotettava, käytetään DKG‑menetelmiä (distributed key generation) tai verifiable secret sharing (VSS) -protokollia sen varmistamiseksi, ettei dealer väärennä osuuksia.
- Proaktiivisuus: Proactive secret sharing -menetelmät sallivat osien päivittämisen säännöllisesti ilman salaisuuden uudelleenjakamista, mikä suojaa pitkäaikaisia järjestelmiä kompromissilta.
- Virheet ja yhdistäminen: realimaailman toteutukset huomioivat virheelliset tai haitalliset osat; sitä varten on olemassa robust-versioita ja korjausmekanismeja.
Rajoitukset ja erot muihin ratkaisuihin
Salaisuuden jakaminen ei aina ole sama asia kuin moniallekirjoitus (multisig) tai täydellinen hajautus: se tarjoaa n‑of‑käyttäytymisen vain avaintiedon jakamiseen. Joissain käytöissä halutaan sen sijaan, että allekirjoitus syntyy ilman, että koskaan muodostetaan koko yksityistä avainta yksiin käsiin — tähän on kehitettu threshold signature -ratkaisuja, jotka yhdistelevät salaisuuden jakamista ja kryptografisia protokollia.
Yhteenveto
Salaisuuden jakaminen on tehokas ja matemaattisesti hyvin perusteltu tapa suojata kriittisiä salaisuuksia jakamalla ne usean henkilön hallintaan. Shamirin polynomimenetelmä ja Blakleyn geometrinen lähestymistapa ovat perustavanlaatuisia menetelmiä, joihin on kehitetty monia laajennuksia ja turvallisuusparannuksia. Käytännössä valinta riippuu vaatimuksista: halutaanko tietoteoreettista turvaa, hajautettua luontia, verifioitavuutta vai käytännön sovittaavuutta järjestelmään.