Elliptinen kryptografia

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 23.11.2021 tarkistetusta versiosta . tarkastukset vaativat 37 muokkausta .

Elliptinen kryptografia on kryptografian haara , joka tutkii epäsymmetrisiä kryptosysteemejä , jotka perustuvat elliptisiin käyriin äärellisten kenttien yli . Elliptisen kryptografian tärkein etu on se, että subeksponentiaalisia diskreettejä logaritmialgoritmeja ei tunneta toistaiseksi .

Neil Koblitz ja Victor Miller ehdottivat itsenäisesti elliptisten käyrien käyttöä kryptosysteemien luomiseen vuonna 1985 [1] .

Johdanto

Vuonna 1985 Neil Koblitz ja Victor Miller ehdottivat itsenäisesti elliptisten käyrien algebrallisten ominaisuuksien käyttöä kryptografiassa . Siitä hetkestä lähtien kryptografian uuden suunnan nopea kehitys alkoi, josta käytetään termiä "elliptisten käyrien kryptografia". Pääsalauksen rooli suoritetaan elliptisen käyrän pisteen skalaarikertoinnilla annetulla kokonaisluvulla, joka määräytyy elliptisen käyrän pisteiden yhteen- ja tuplausoperaatioilla. Jälkimmäiset puolestaan ​​suoritetaan summaus-, kerto- ja inversiooperaatioiden perusteella siinä äärellisessä kentässä, jonka yli käyrää tarkastellaan. Erityisen kiinnostava elliptisen käyrän kryptografia johtuu eduista, joita sen käyttö langattomassa viestinnässä tarjoaa - suuri nopeus ja pieni avaimen pituus [2] . Epäsymmetrinen kryptografia perustuu joidenkin matemaattisten ongelmien ratkaisemisen monimutkaisuuteen. Varhaiset julkisen avaimen salausjärjestelmät, kuten RSA-algoritmi , ovat turvallisia, koska yhdistelmälukua on vaikea sisällyttää alkutekijöihin. Käytettäessä algoritmeja elliptisille käyrille oletetaan, että diskreetin logaritmin ongelman ratkaisemiseksi niiden pisteiden ryhmissä ei ole subeksponentiaalisia algoritmeja . Tässä tapauksessa elliptisen käyrän pisteryhmän järjestys määrittää ongelman monimutkaisuuden. Uskotaan, että saman kryptografisen vahvuuden saavuttamiseksi kuin RSA:ssa tarvitaan pienempien tilausten ryhmiä, mikä vähentää tiedon tallennus- ja lähetyskustannuksia. Esimerkiksi RSA 2005 -konferenssissa National Security Agency ilmoitti luovansa "Suite B:n", joka käyttää vain elliptisiä salausalgoritmeja ja vain 384-bittisiä avaimia käytetään suojaamaan "Top Secret" -luokkaan luokiteltuja tietoja.

Elliptiset käyrät äärellisten kenttien yli

Elliptinen käyrä on joukko pisteitä , jotka täyttävät yhtälön:

Tätä yhtälöä voidaan tarkastella mielivaltaisten kenttien ja erityisesti äärellisten kenttien yli , jotka ovat erityisen kiinnostavia kryptografian kannalta.

Krypografiassa elliptisiä käyriä tarkastellaan kahdentyyppisten äärellisten kenttien yli : yksinkertaisten parittomien ominaisuuksien kentät ( , missä on alkuluku) ja ominaisuuden 2 ( ) kentät.

Elliptiset käyrät parittomien ominaisuuksien kenttien yli

Ominaiskentän yli elliptisen käyrän E yhtälö voidaan pelkistää muotoon:

missä vakiot tyydyttävät .

Kentän päällä olevan elliptisen käyrän E pisteryhmä on E : ssä olevien parien joukko yhdistettynä nollaelementtiin :

On huomattava, että jokaisessa nollasta poikkeavassa elementissä on joko kaksi neliöjuurta tai ei yhtään, joten elliptisen käyrän pisteet on jaettu muodon ja -pareihin .

Esimerkki

Tarkastellaan elliptistä käyrää kentän päällä . Erityisesti tällä käyrällä on piste , koska . On helppo tarkistaa, että pisteet , , , ovat kaikki annetun käyrän pisteitä.

Hassen lause

Hassen elliptisen käyrän lauseessa sanotaan, että elliptisen käyrän pisteiden lukumäärä on lähellä äärellisen kentän kokoa:

mitä tuo:

Elliptiset käyrät ominaisuuden 2 kenttien yli

Ominaisuuden 2 kentässä tarkastellaan kahdenlaisia ​​elliptisiä käyriä:

Supersingulaaristen elliptisten käyrien erityinen mukavuus on, että niiden järjestys on helppo laskea, kun taas ei-supersingulaaristen käyrien järjestyksen laskeminen on vaikeaa. Supersingulaariset käyrät ovat erityisen käteviä kotitekoisen ECC (Elliptic-curve cryptography) -salausjärjestelmän luomiseen. Voit käyttää niitä ilman aikaa vievää tilauksen laskentaprosessia.

Projektiiviset koordinaatit

Pisteparin summan laskemiseksi elliptisellä käyrällä ei vaadita vain useita yhteen- ja kertolaskuoperaatioita , vaan myös inversiooperaatio , eli tietylle löydökselle , joka on yksi tai kaksi suuruusluokkaa hitaampi kuin kertolasku. Onneksi elliptisen käyrän pisteet voidaan esittää erilaisissa koordinaattijärjestelmissä, jotka eivät vaadi inversion käyttöä pisteiden lisäämisessä:

On tärkeää huomata, että nimiä voi olla erilaisia ​​- esimerkiksi IEEE P1363-2000 kutsuu projektitiivisia koordinaatteja, joita yleensä kutsutaan Jacobi-koordinaateiksi.

Salaus/salauksen purku elliptisten käyrien avulla

Ensimmäinen tehtävä tarkasteltavassa järjestelmässä on salata viestin pelkkä teksti , joka lähetetään arvona (Kuinka?) [3] pisteelle . Tässä piste edustaa siihen koodattua tekstiä ja se puretaan myöhemmin. Huomaa, että viestiä ei voi koodata pelkällä koordinaatilla tai pisteellä, koska kaikki tällaiset koordinaatit eivät ole käytettävissä . Kuten avaimenvaihtojärjestelmässä, salaus- ja salauksenpurkujärjestelmissä myös piste ja elliptinen ryhmä katsotaan parametreina . Käyttäjä valitsee yksityisen avaimen ja luo julkisen avaimen . Salatakseen ja lähettääkseen viestin käyttäjälle käyttäjä valitsee satunnaisen positiivisen kokonaisluvun ja laskee salatekstin , joka koostuu pisteparista.

. Tässä tapauksessa pari kohtaa.

Huomaa, että osapuoli käyttää osapuolen julkista avainta : . Pura tämän salatekstin salaus kertomalla parin ensimmäinen piste salaisella avaimella ja vähentämällä tulos toisesta pisteestä:

Käyttäjä peitti viestin lisäämällä . Kukaan muu kuin tämä käyttäjä ei tiedä :n arvoa , joten vaikka se on julkinen avain, kukaan ei voi paljastaa naamiota . Käyttäjä kuitenkin sisällyttää viestiin myös "vihjeen", joka riittää poistamaan maskin henkilöltä, jolla on yksityinen avain . Viestin palauttamiseksi vastustajan on laskettava tiedoista ja , mikä näyttää olevan vaikea tehtävä [4] .

Elliptisen käyrän pisteiden aritmeettiset operaatiot eivät vastaa näitä koordinaattiensa aritmeettisia operaatioita.

Elliptisen käyrän pisteet äärellisen kentän yli edustavat ryhmää [5] . Kertominen pelkistyy toistuvaan tuplaukseen ja summaukseen.

Esimerkiksi G+G ≠ 2G ( nämä ovat eri operaatioita ), 2G + 2^115G = 2^115G + 2G (summaus on kommutatiivista);

2G = 2*G; 4G = 2*2G; 8G = 2*4G; 16G = 2*8G jne. (kahdelle identtiselle pisteelle - vain tuplaustoiminto);

25*G; 25 = 11001 (binäärimuodossa); 25 = 1*2^0 + 0*2^1 + 0*2^2 + 1*2^3 + 1*2^4 = 1 + 8 + 16; 25G = 16G + 8G + G = 1*(2^4)G + 1*(2^3)G + 1*G (summausoperaatio).

24G/3 = 24G* (3^-1 mod P); missä 3^(-1) mod P - modulaarinen kertova käänteinen ,

5G - 3G = 5G + (-3G); missä -3G = nG - 3G = O - 3G - additiivinen käänteispiste, vastakkainen piste .

Esimerkki

Tarkastellaan tapausta , , joka vastaa käyrää

ja .

Oletetaan, että käyttäjä on lähettämässä käyttäjälle elliptisellä pisteellä koodatun viestin ja että käyttäjä valitsee satunnaisluvun . Julkinen avain on . Meillä on:

.

Siten käyttäjän on lähetettävä salateksti .

Salauksen toteutus

Elliptisen käyrän salausalgoritmien erityiset toteutukset kuvataan alla. Tässä tarkastellaan elliptisen kryptografian yleisiä periaatteita.

Parametrijoukko

Elliptisen kryptografian käyttämiseksi kaikkien osallistujien tulee sopia kaikista elliptistä käyrää määrittävistä parametreista, ts. joukko salausprotokollan parametreja. Elliptinen käyrä määritetään vakioilla ja yhtälöstä (2). Abelin pistealaryhmä on syklinen ja sen antaa yksi generoiva piste G . Tässä tapauksessa kofaktorin , jossa n on pisteen G kertaluku , on oltava pieni ( , mieluiten parillinen ).

Joten ominaisuuden 2 kentällä parametrien joukko: , ja lopullisen kentän , jossa , parametrien joukko: .

On olemassa useita suositeltuja parametrijoukkoja:

Voit luoda oman parametrijoukon seuraavasti.

  1. Valitse joukko vaihtoehtoja.
  2. Etsi elliptinen käyrä, joka täyttää tämän parametrijoukon.

Käyrän etsimiseen tietylle parametrijoukolle käytetään kahta menetelmää.

On olemassa useita kryptografisesti "heikkojen" käyrien luokkia, joita tulisi välttää:

Nopea pienennys (NIST-käyrät)

Jakomoduuli p (joka on välttämätön yhteen- ja kertolaskussa) voidaan suorittaa nopeammin, jos p valitaan alkuluvuksi lähellä 2:n potenssia. Erityisesti p voi olla Mersennen alkuluku . Esimerkiksi tai ovat hyviä valintoja . National Institute of Standards and Technology (NIST) suosittelee käyttämään samanlaisia ​​alkulukuja kuin p .

Toinen NIST:n suosittelemien käyrien etu on valinta , joka nopeuttaa Jacobin koordinaattien yhteenlaskutoimintoa.

NIST:n suosittelemat elliptiset käyrät

NIST suosittelee 15 elliptistä käyrää, joista monet on johtanut Jerry Solinas (NSA) Neil Koblitzin työn perusteella [10] . Erityisesti FIPS 186-3 [11] suosittelee 10 päätekenttää. Jotkut heistä:

Lisäksi suositellaan yhtä elliptistä käyrää jokaista äärellistä kenttää kohden. Nämä äärelliset kentät ja elliptiset käyrät valitaan usein virheellisesti korkean turvallisuustason vuoksi. NIST:n mukaan heidän valintansa perusteli ohjelmistototeutuksen tehokkuus [13] . Ainakin muutamien turvallisuudesta on epäilyksiä [14] [15] [16] .

Avaimen koko

Nopein algoritmi, joka ratkaisee diskreetin logaritmiongelman elliptisillä käyrillä, kuten Shanksin algoritmi ja Pollardin ρ-menetelmä , tarvitsee operaatioita. Siksi kentän koon on oltava vähintään kaksi kertaa avaimen koko. Esimerkiksi 128-bittiselle avaimelle on suositeltavaa käyttää elliptistä käyrää kentän päällä , jossa p on 256 bittiä pitkä.

Monimutkaisimmat tähän mennessä julkisesti murtetut elliptisen käyrän piirit ovat sisältäneet 112-bittisen avaimen äärelliselle alkukentälle ja 109-bittisen avaimen ominaisuuden 2 äärelliselle kentälle. . Heinäkuussa 2009 yli 200 Sony Playstation 3 : n klusteri löysi 109-bittisen avaimen 3,5 kuukaudessa. Ominaisuuskentän 2 avain löydettiin huhtikuussa 2004 2 600 tietokoneella 17 kuukauden aikana. .

Diffie-Hellman-avaimenvaihdon analogi

Oletetaan, että tilaajat A ja B haluavat sopia avaimesta, jota he käyttävät myöhemmin jossain klassisessa salausjärjestelmässä. Ensinnäkin he valitsevat avoimesti jonkin äärellisen kentän ja jonkin elliptisen käyrän sen päälle. Niiden avain on rakennettu tämän elliptisen käyrän satunnaisesta pisteestä . Jos niillä on satunnainen piste , niin esimerkiksi sen -koordinaatti antaa satunnaisen elementin , joka voidaan sitten muuntaa -bitiksi kokonaisluvuksi -aarilukujärjestelmässä (jossa ), ja tämä luku voi toimia avaimena heidän klassisissa kryptojärjestelmä. Heidän on valittava kohta niin, että kaikki heidän viestinsä toisilleen ovat avoimia ja silti kukaan muu kuin he kaksi eivät tiedä niistä mitään .

Tilaajat (käyttäjät) A ja B valitsevat ensin avoimesti pisteen ∈ "kantapaikaksi"; Sillä on sama rooli kuin generaattori Diffie-Hellman-järjestelmässä äärellisille kentille. Emme kuitenkaan vaadi sen olevan generoiva elementti käyrän pisteryhmässä . Tämä ryhmä ei välttämättä ole syklinen. Vaikka se olisi syklistä, älkäämme tuhlaako aikaa generoivan elementin tarkistamiseen (tai edes N pisteen kokonaismäärän löytämiseen, jota emme seuraavassa tarvitse). Haluamme, että B:n generoima alaryhmä on suuri, mieluiten samaa suuruusluokkaa kuin se itse . Tällä hetkellä oletetaan, että se on avoimesti otettu piste erittäin suuressa järjestyksessä (yhtä kuin joko , tai suuri jakaja ).

Avaimen muodostamiseksi valitaan ensin satunnaisesti kokonaisluku , joka on verrattavissa arvoon (joka on lähellä ); hän pitää tämän numeron salassa. Se laskee ∈ ja ohittaa tämän pisteen avoimesti. Tilaaja B tekee samoin: hän valitsee satunnaisesti ja lähettää julkisesti ∈ . Silloin heidän käyttämä salainen avain on ∈ . Molemmat käyttäjät voivat laskea tämän avaimen. Se esimerkiksi tietää (piste välitettiin avoimesti) ja oman salaisuutensa . Kuka tahansa kolmas osapuoli tietää kuitenkin vain ja . Lukuun ottamatta diskreetin logaritmin ongelman ratkaisemista - lähteen ja (tai lähteen ja :n löytäminen ) ei näytä olevan mitään keinoa löytää , tietäen vain ja [17] .

Esimerkki Diffie-Hellman-avaintenvaihdosta

Esimerkkinä otetaan

. _

joka vastaa käyrää

ja .

Voidaan laskea, että . Käyttäjän A yksityinen avain on , joten A:n julkinen avain on

.

Käyttäjän B yksityinen avain on , joten B:n julkinen avain on

.

Jaettu salaisuus on

.

Salauksen suojaus elliptisten käyrien avulla

Elliptisen käyrän kryptografisen lähestymistavan tarjoama turvallisuus riippuu siitä, kuinka vaikeaa on ratkaista datasta ja . Tätä ongelmaa kutsutaan yleensä diskreetiksi logaritmiongelmaksi elliptisellä käyrällä. Nopein nykyään tunnettu menetelmä logaritmien ottamiseen elliptisellä käyrällä on ns. Pollard-menetelmä. Taulukossa (katso alla) verrataan tämän menetelmän tehokkuutta seula-alkutekijälaskentamenetelmään yleisessä lukukentässä. Siitä voidaan nähdä, että RSA:han verrattuna elliptisten käyrien kryptografiamenetelmiä käytettäessä saavutetaan suunnilleen sama suojaustaso huomattavasti pienemmillä avaimen pituuksilla.

Samoilla avainten pituuksilla RSA:n ja elliptisen käyrän salaustekniikan vaatima laskenta ei myöskään eroa paljon. Siten verrattuna RSA:han samalla suojaustasolla selkeä laskennallinen etu kuuluu elliptisiin käyriin perustuvalle kryptografialle, jonka avaimen pituus on lyhyempi [18] .

Taulukko: Elliptisiä käyriä ja RSA:ta käyttävän krypta-analyysin vaatima laskentateho

Avaimen koko MIPS vuotta
150 3,8*10^10
205 7,1*10^18
234 1,6*10^28
Avaimen koko MIPS vuotta
512 3*10^4
768 3*10^7
1024 3*10^11
1280 3*10^14
1536 3*10^16
2048 3*10^20

Sähköisen digitaalisen allekirjoituksen rakentaminen elliptisiä käyriä käyttäen

ECDSA ( Elliptic Curve Digital Signature Algorithm) -algoritmi on hyväksytty ANSI X9F1- ja IEEE P1363 -standardeiksi .

Avainten luominen

  1. Elliptinen käyrä on valittu . Siinä olevien pisteiden lukumäärän tulee olla jaollinen suurella alkuluvulla n.
  2. Tilauksen peruspiste valitaan .
  3. Satunnaisluku valitaan .
  4. Laskettu .
  5. Yksityinen avain on d, julkinen avain on monikko <a, b, G, n, Q>.

Allekirjoituksen luominen

  1. Satunnaisluku valitaan .
  2. ja lasketaan .
  3. Ehto tarkistetaan , koska muuten allekirjoitus ei riipu yksityisestä avaimesta. Jos r = 0, valitaan toinen satunnaisluku k.
  4. Laskettu .
  5. Laskettu .
  6. Ehto tarkistetaan , koska tässä tapauksessa allekirjoituksen vahvistamiseen tarvittavaa numeroa ei ole olemassa. Jos s = 0, valitaan toinen satunnaisluku k.

Viestin M allekirjoitus on numeropari (r, s).

Allekirjoituksen vahvistus

  1. Tarkistetaan, että luvut r ja s kuuluvat lukualueeseen (1, n). Muussa tapauksessa varmennustulos on negatiivinen ja allekirjoitus hylätään.
  2. Laske ja H(M).
  3. Laske ja .
  4. Laske .
  5. Allekirjoitus on tosi, jos ja vain jos v = r [19] .

Sovellukset

Suurin osa nykyaikaisen kryptografian kryptosysteemeistä voidaan luonnollisesti "siirtää" elliptisiin käyriin. Perusajatuksena on, että tietyille äärellisille ryhmille käytetty tunnettu algoritmi kirjoitetaan uudelleen käyttämään elliptisten käyrien rationaalisten pisteiden ryhmiä:

On huomattava, että tällaisten digitaalisten allekirjoitusjärjestelmien turvallisuus ei riipu ainoastaan ​​salausalgoritmien kryptografisesta vahvuudesta, vaan myös käytettyjen kryptografisten hajautusfunktioiden ja satunnaislukugeneraattoreiden kryptografisesta vahvuudesta .

Vuoden 2013 katsauksen mukaan yleisimmin käytetyt käyrät ovat nistp256, nistp384, nistp521, secp256k1, secp384r1, secp521r1 [20] .

Muistiinpanot

  1. Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. Johdatus matemaattiseen kryptografiaan . - Springer, 2008. - 524 s. - (Matematiikan perustutkintotekstit). — ISBN 9780387779942 .
  2. Bolotov A. A., Gashkov S. B., Frolov A. B., Chasovskikh A. A. . Johdatus elliptiseen kryptografiaan. 11 s.
  3. Numeroiden koodaus pisteiksi elliptisellä käyrällä äärellisessä kentässä ja niiden salaus ja salauksen purkaminen. . Haettu 29.10.2019.
  4. Zhdanov O.N., Zolotarev V.V. Tietojen kryptografisen suojauksen menetelmät ja keinot. 167 s.
  5. Elliptinen kryptografia: teoria . Haettu 13. lokakuuta 2016.
  6. Suositellut elliptiset käyrät valtion käyttöön
  7. SEC 2: Suositellut elliptisen käyrän verkkoalueen parametrit
  8. Schoofin algoritmi  (downlink)
  9. Schoof–Elkies–Atkin-algoritmi
  10. Neal Koblitz. Satunnaiset käyrät: Matemaatikko matkat . - Springer, 2009. - S. 312-313. — 402 s. — ISBN 9783540740780 .
  11. FIPS 186-3 Arkistoitu 7. lokakuuta 2013. // NIST, 2009; poistui käytöstä vuonna 2013 FIPS 186-4:n julkaisun myötä
  12. Tämä järjestys saattaa vaikuttaa virheeltä. Viimeinen arvo on kuitenkin täsmälleen 521, ei 512 bittiä.
  13. Daniel J. Bernstein , Tanja Lange, NIST-käyrien turvallisuusvaarat // 2013.09.16: "Miksi NIST valitsi nämä käyrät? * Useimmat olemme kysyneet: turvallisuus * Todellinen NIST-suunnitteludokumentti: tehokkuus" ( [1] )
  14. Daniel J. Bernstein ja Tanja Lange. SafeCurves: turvallisten käyrien valinta elliptisen käyrän kryptografiaan.  (englanniksi) . safecurves.cr.yp.to (18. marraskuuta 2013). Haettu: 20. joulukuuta 2013.
  15. Jevgeni Zolotov . Snowden ja elliptinen krypto: Bitcoinia ja TOR:ta ei epäillä, mutta entä muut projektit? , Computerra (16. syyskuuta 2013). Haettu 20. joulukuuta 2013.
  16. Tohtori Michael Scott, NIST-elliptisten käyrien takaovet Arkistoitu 20. joulukuuta 2013 Wayback Machinessa 24. lokakuuta 2013: "NSA:ssa työskennellyt Jerry Solinas ehdotti itse käyrät."
  17. Chalkin T.A. Zhdanov O.N. Elliptisten käyrien käyttö kryptografiassa.
  18. Zhdanov O.N., Zolotarev V.V. Tietojen kryptografisen suojauksen menetelmät ja keinot. 186 s.
  19. Ishmukhametov Sh.T. Faktorisointimenetelmät luonnollisille lukuille.99 p.
  20. Bos et al, Elliptic Curve Cryptography in Practice // MSR-TR-2013-119, marraskuu 2013

Linkit