Salaustekniikassa sitoumusmalli tai bittisitoumusmalli ( eng. Commitment Scheme ) on kryptografinen primitiivi , jonka avulla voit korjata minkä tahansa valitun arvon (valitun lauseen, tiedon bitin ) ja pitää sen piilossa muille, jotta se voidaan myöhemmin paljastaa kiinteä arvo [1 ] . Sitoumusskeemat on suunniteltu siten, että osapuoli ei voi muuttaa arvoa tai väitettä lähettämisen jälkeen, eli sitoumusskeemat toteuttavat datan sidontaa . Sitoumusjärjestelmiä voidaan soveltaa useissa kryptografisissa protokollissa , mukaan lukien suojattu kolikonheitto , nollatietotodistus, luottamuksellinen laskentaprotokolla ja muut.
Jos haluat kuvitella, kuinka järjestelmä toimii, harkitse lähettäjää sijoittamassa viestin riippulukkoon laatikkoon ja välittävän laatikon vastaanottajalle. Viesti on piilossa vastaanottajalta, joka ei voi itse avata lukkoa. Siitä hetkestä lähtien, kun viestilaatikko on vastaanottajan hallussa, lähettäjä ei voi muuttaa laatikon sisältöä – laatikko yksinkertaisesti avataan, jos lähettäjä myöhemmin päättää antaa avaimen vastaanottajalle.
Kahden osapuolen vuorovaikutus velvoitejärjestelmässä tapahtuu kahdessa vaiheessa:
Yksinkertaisissa sitoutumismenetelmissä lähetysvaihe koostuu yhden viestin lähettämisestä lähettäjältä vastaanottajalle. Tätä viestiä kutsutaan sitoumukseksi. On tärkeää, että valittu arvo ei ole vastaanottajan tiedossa tässä vaiheessa (tätä kutsutaan piiloomaisuudeksi). Yksinkertainen luovutusvaihe koostuu yhden viestin lähettämisestä lähettäjältä vastaanottajalle, jonka jälkeen vastaanottaja suorittaa sitoumustarkistuksen. Lähetysvaiheessa valitun arvon tulee olla ainoa, jonka lähettäjä voi laskea ja joka tarkistetaan laajennusvaiheessa (tätä kutsutaan sidosominaisuudeksi).
Gilles Brassard , David Chaum ja Claude Crepeau muodostivat ehkä ensimmäisenä sitoumusjärjestelmien käsitteen vuonna 1988 [2] osana erilaisia NP-luokan nollatietoprotokollia, jotka perustuvat erityyppisiin sitoumusjärjestelmiin [3] . Käsitettä on käytetty aiemminkin, mutta ilman muodollista harkintaa. Velvoitteiden käsite esiintyi Manuel Bloomin [4] ja muiden teoksissa tai osana esimerkiksi alkuperäisen kertaluonteisen yksibittisen allekirjoitusjärjestelmän Lamport -allekirjoitusta.
Oletetaan , että Alice ja Bob haluavat ratkaista riidan heittämällä kolikon . Jos ne ovat fyysisesti samassa paikassa, menettely menee seuraavasti:
Jos Alice ja Bob eivät ole samassa paikassa, tämän riidan ratkaisemisessa on ongelma. Kun Alice on arvannut ja kertonut sen Bobille, hän voi valehdella kolikonheiton tuloksesta siten, että lopputulos on hänelle voitto. Vastaavasti, jos Alice ei ilmoita arvaustaan Bobille, sen jälkeen kun Bob on heilauttanut kolikon ja ilmoittanut tuloksen, Alice voi raportoida ennustaneensa hänelle voittoa. Alice ja Bob voivat käyttää sitoutumisjärjestelmää tässä menettelyssä, jonka avulla he molemmat voivat luottaa tulokseen:
Jotta Bob vääristää tuloksia edukseen, hänen on täytettävä implisiittiset velvoitteet. Jos sitoumusjärjestelmä on hyvin rakennettu, Bob ei voi vääristää tuloksia. Liisa ei myöskään voi vaikuttaa tulokseen, jos hän ei voi muuttaa ennustamaansa arvoa ennen heittoa ja sitoutumista [4] [5] .
Tämän ongelman todellinen sovellus on olemassa, kun ihmiset (usein tiedotusvälineissä) tekevät päätöksen ja antavat vastauksen "suljetussa kirjekuoressa", joka avataan myöhemmin.
Eräs hyvin tunnettu esimerkki on sitoutumisjärjestelmän käyttö nollatietotodistuksissa . Sitoumuksia käytetään näissä protokollissa kahteen päätarkoitukseen: ensinnäkin, jotta lähettäjä voi osallistua järjestelmiin, joissa todentaja voi valita, mitä tarkistaa, ja lähettäjä näyttää vain sen, mikä vastaa todentajan valintaa. Sitoumusmallit antavat lähettäjälle mahdollisuuden määritellä kaikki tiedot etukäteen ja paljastaa vain sen, mikä on tiedettävä myöhemmin todisteessa [6] . Todentaja käyttää sitoumuksia myös tiedon nollatodistuksessa, joka usein ilmoittaa valintansa etukäteen sitoumuksessa. Tämä mahdollistaa nollatietotodisteiden rakentamisen rinnakkain paljastamatta ylimääräistä tietoa lähettäjältä vastaanottajalle [7] .
Toinen tärkeä sitoutumisjärjestelmän käyttökohde on todennettavissa olevan salaisuuden jakamisen toteuttaminen, joka on luottamuksellisen laskentaprotokollan kriittinen rakennuspalikka . Salaisuuden jakamisjärjestelmässä viesti jaetaan osiin - "osuuksiin", ja kukin useista osapuolista saa "osuuksia", jotka on piilotettava kaikilta paitsi tietyn osan omistajalta. Salaisuuden voi luoda uudelleen vain alkuperäisen ryhmän osallistujien koalitio, ja koalitiossa on oltava vähintään alustavasti tiedossa oleva määrä osallistujia. Salaisuuksien jakaminen on monien suojatun tietojenkäsittelyn protokollien ytimessä: esimerkiksi toiminnon suojatussa arvioinnissa jollakin jaetulla syötteellä, jossa käytetään salaisia jaettuja resursseja. Jos hyökkääjät kuitenkin luovat jaettuja resursseja, haavoittuvuus voi syntyä ja näiden resurssien oikeellisuus on tarkistettava. Todennettavissa olevassa salaisuuden jakamisjärjestelmässä salaisuuden jakamiseen liittyy yksittäisiä osakesitoumuksia. Sitoumukset paljastavat mitään, mikä voisi auttaa hyökkääjiä, mutta antaa jokaisen yksittäisen osapuolen tarkistaa, ovatko heidän osuutensa oikein ja karsia hyökkääjät [8] .
Sitoumusjärjestelmä voi olla joko täysin sitova (Alice ei voi muuttaa laatikon sisältöä siirron jälkeen, vaikka hänellä olisi rajattomasti laskentaresursseja) tai täydellisesti piilossa oleva (Bob ei voi avata laatikkoa ennen kuin Alice on siirtänyt avaimen, vaikka hänellä olisi rajattomasti laskentaresurssit). ), mutta ei samanaikaisesti [9] .
Kvanttisalauksessa herää mielenkiintoinen kysymys : onko kvanttitasolla olemassa ehdottoman turvallisia bittisidottuja sitoumuksia, eli protokollia, jotka ovat (ainakin asymptoottisesti) sitovia ja piilottavia, vaikka laskentaresursseille ei ole rajoituksia? Toivotaan , että kvanttimekaniikan luontaisia ominaisuuksia voitaisiin hyödyntää , kuten kvanttiavaimen jakeluprotokollassa . [kymmenen]
Vuonna 1993 ehdotettiin protokollaa bittisitoumusten toteuttamiseksi kvanttimekaniikassa, ja tämän protokollan ehdoton turvallisuus on yleisesti hyväksytty jo jonkin aikaa. Tämä tulos osoittautui kuitenkin vääräksi. Tämän protokollan, jota kutsutaan BCJL-protokollaksi, turvattomuus todistettiin syksyllä 1995. Vuonna 1996 Dominic Myers osoitti teoreettisesti, että on mahdotonta toteuttaa ehdottoman turvallista järjestelmää. Mikä tahansa tällainen protokolla voidaan pelkistää protokollaksi, kun järjestelmä on jossakin kahdesta selkeästä tilasta lähetysvaiheen jälkeen riippuen bitistä, jonka Alice haluaa lukita. Jos protokolla piiloutuu täydellisesti, niin Alice voi yhtenäisesti muuttaa nämä tilat toisiinsa käyttämällä Schmidt-hajoamisen ominaisuuksia , mikä tehokkaasti vaimentaa sitomisominaisuuden [11] .