Merkle -allekirjoitus on postkvantti- ja uudelleenkäytettävä digitaalinen allekirjoitusalgoritmi , joka perustuu Merkle-puun käyttöön ja jonkinlaiseen kertaluonteiseen digitaaliseen allekirjoitukseen. [yksi]
Ralph Merkle julkaisi allekirjoituksen ensimmäisen kerran vuonna 1979 artikkelissaan "Secrecy, authentication and public key systems" [2] uudelleenkäytettävänä digitaalisena allekirjoituksena käyttäen Lamportin kerta-allekirjoitusta . [3]
Merklen allekirjoitus perustuu jo olemassa olevaan kertaluonteiseen digitaaliseen allekirjoitukseen, jonka kryptografisen vahvuuden tulee perustua kryptografisesti turvalliseen hajautustoimintoon . Esimerkkejä tällaisista allekirjoituksista ovat Winternitzin kertaluonteinen allekirjoitusjärjestelmä tai Lamportin allekirjoitus . [4] Kertaluonteisen digitaalisen allekirjoituksen tulisi sisältää kolme päätoimintoa: [5]
On myös tarpeen päättää kryptonkestävästä hash-funktiosta , jota käytetään myöhemmin julkisen avaimen laskemiseen. [neljä]
Näppäinten ja pituuksien joukot luodaan . Pituus valitaan potenssiksi kaksi, koska Merkle-puun rakentaminen on välttämätöntä. Jokaista paria käytetään yksityisen ja julkisen avaimen parina kertaluonteiseen perusallekirjoitukseen. Array - on Merkle-allekirjoituksen yksityinen avain, Merkle-puu on rakennettu luomaan julkista avainta:
Rakennetun Merkle-puun juuri otetaan julkiseksi avaimeksi: . [6]
Allekirjoituksen luomiseksi taulukoista ja valitaan -. avainpari Viesille lasketaan yksityisellä avaimella kertaluonteinen digitaalinen allekirjoitus . Harkitse seuraavaksi polkua Merkle-puun juuresta avainta vastaavaan lehteen . Merkitään pisteet, joiden kautta tämä polku kulkee taulukona , jonka pituus on , jossa on puun juuri ja on . Kunkin huippupisteen arvo paitsi , lasketaan muodossa , missä ja ovat välittömiä jälkeläisiä . Näin ollen polun laskemiseksi puun juuresta riittää, että tunnetaan kärkijoukko , jota kutsumme autentikointipoluksi. Näin ollen viestin allekirjoitus sisältää: vahvistusavaimen , kertaluonteisen allekirjoituksen ja todennuspolun polun laskemiseksi puun juureen. [7]
Ensin vastaanottaja vertaa kertaluonteisen allekirjoituksen viestiin . Jos tarkistus onnistui, se alkaa rakentaa polkua puun juurelta. Ensin , sitten , ja niin edelleen. Jos , allekirjoituksen vahvistus onnistui. [kahdeksan]
Yleisesti käytetyt digitaalisen allekirjoituksen algoritmit, kuten RSA ja DSA , hyödyntävät lukukertoimien monimutkaisuutta ja diskreetin logaritmin laskemisen monimutkaisuutta . Kuitenkin käyttämällä Shorin algoritmia ja kvanttitietokonetta nämä allekirjoitukset voidaan rikkoa polynomiajassa. Sitä vastoin Merklen allekirjoitus on postkvantti, koska sen kryptografinen vahvuus perustuu kryptografisen hajautusfunktion vahvuuteen ja kertaluonteisen digitaalisen allekirjoituksen vahvuuteen. [yksi]
Yksi vahvoihin hajautustoimintoihin perustuvien digitaalisten allekirjoitusten suurimmista ongelmista on, että niitä käytetään tyypillisesti kertaluonteisten digitaalisten allekirjoitusten yhteydessä, eli allekirjoituksissa, joissa yhdellä avainparilla allekirjoitetaan vain yksi viesti. On kuitenkin olemassa tapoja laajentaa tällaisia allekirjoituksia uudelleenkäytettäviksi. Yksi tällainen tapa on rakentaa Merkle-puu, jota käytetään erilaisten kertaluonteisten allekirjoitusten todentamiseen . [9]
Tämä ongelma liittyy tehokkaan algoritmin löytämiseen todennustietojen laskemiseen. Triviaali ratkaisu - pitää kaikki tiedot muistissa - vaatii liikaa muistia. Toisaalta lähestymistapa todennuspolun laskemiseksi alueella, jossa sitä tarvitaan, tulee olemaan liian kallista joillekin puusolmuille. [10] Jos X- ja Y-taulukoiden pituus on suurempi kuin 2^25, Merklen allekirjoituksen käytöstä tulee epäkäytännöllistä. [kahdeksan]
Merklen digitaalisen allekirjoituksen algoritmin on osoitettu olevan kryptografisesti vahva adaptiivista viestinvalintahyökkäystä vastaan, jos se käyttää hash-funktiota, joka kestää tyypin 2 törmäyksiä . [11] [12] Merklen allekirjoituksen murtamiseksi kryptanalyytikon on kuitenkin joko rekonstruoitava hash-funktion esikuva tai laskettava tyypin I törmäys. Tämä tarkoittaa, että käytännössä Merklen allekirjoituksen kryptografinen vahvuus perustuu käytetyn hash-funktion peruuttamattomuuteen ja sen kestävyyteen ensiluokkaisia törmäyksiä vastaan. [12]
Hash-funktiot | |
---|---|
yleinen tarkoitus | |
Kryptografinen | |
Avainten luontitoiminnot | |
Tarkista numero ( vertailu ) | |
Hashes |
|