Salaisuuksien jakaminen – Shamir, Blakley ja turvallinen salaustekniikka
Tutustu Shamir- ja Blakley-menetelmiin: turvallinen salaisuuksien jakaminen, avainjako ja käytännöt pankki- ja sotilastason salaustekniikoissa.
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.
Shamirin menetelmä
Tässä menetelmässä mitä tahansa t:tä n:stä osakkeesta voidaan käyttää salaisuuden palauttamiseen. Ajatuksena on, että asteen t-1 polynomi määritellään polynomin t pisteellä: Suoran määrittelyyn tarvitaan kaksi pistettä, kvadraattisen käyrän määrittelyyn kolme pistettä, kuutiokäyrän määrittelyyn neljä pistettä ja niin edelleen. Asteen t-1 polynomin määrittelyyn tarvitaan t pistettä. Näin on mahdollista rakentaa polynomi, jonka ensimmäinen kerroin on salaisuus; kertoimia on n satunnaisesti valittua. Jokainen pelaaja saa yhden n kertoimesta. Jos pelaajia on vähintään t, he voivat rakentaa alkuperäisen käyrän uudelleen ja saada salaisuuden.
Kysymyksiä ja vastauksia
Q: Mitä on salainen jakaminen?
V: Salaisuuden jakaminen on tapa jakaa salaisuus monien ihmisten kesken. Jokainen henkilö tietää osan jaetusta salaisuudesta, mutta useiden ihmisten on tehtävä yhteistyötä salaisuuden uudelleen rakentamiseksi.
K: Kuka kehitti salaisen jakamisen menetelmän?
V: Adi Shamir ja George Blakley kehittivät salaisen jakamisen menetelmän toisistaan riippumatta vuonna 1979.
K: Missä esimerkissä käytetään salaisen jakamisen menetelmää?
V: RSA-salausjärjestelmä annetaan esimerkkinä, jossa käytetään salaisuuden jakamista. Siinä käytetään salaista avainta, joka jaetaan monien ihmisten kesken, jotta kukaan yksittäinen henkilö ei voi tehdä allekirjoitusta.
K: Miksi salainen jakaminen on tärkeää esimerkiksi pankeissa tai armeijassa?
V: Salainen jakaminen on tärkeää esimerkiksi pankeissa ja armeijassa, koska se tarjoaa ylimääräisen turvakerroksen. Vaikka yhden henkilön osa salaisuudesta paljastuisi tai katoaisi, useat muut henkilöt voivat silti rekonstruoida salaisuuden.
K: Miten salaisuuksien jakaminen toteutetaan helpommin?
V: Helpommassa asetelmassa pelaajien osat voidaan yhdistää salaisuuden muodostamiseksi, mutta jokaisen osan mukana on ylimääräistä tietoa.
K: Mitä eroa on helpomman salaisuuden jakamisen asetelman ja muun asetelman välillä?
V: Helpompi salaisuudenjakoasetelma on vähemmän turvallinen tietoteorian näkökulmasta, koska kahden puuttuvan osan arvaaminen on helpompaa kuin salaisuuden arvaaminen, kun mitään osia ei tunneta. Toinen asetelma on turvallinen informaatioteorian näkökulmasta.
Kysymys: Onko olemassa erilaisia turvallisia salaisuudenjakotekniikoita?
V: Kyllä, on olemassa erilaisia turvallisen salaisuuden jakamisen tekniikoita.
Etsiä