Shufin algoritmi

Schufin algoritmi  on tehokas algoritmi [1] pistemäärän laskemiseen elliptisellä käyrällä äärellisen kentän yli . Algoritmilla on sovelluksia elliptisessä kryptografiassa , jossa on tärkeää tietää pisteiden lukumäärä, jotta voidaan arvioida diskreetin logaritmiongelman ratkaisemisen vaikeus pisteryhmässä elliptisellä käyrällä.

Algoritmin julkaisi vuonna 1985 René Chouf ja se oli teoreettinen läpimurto, koska se oli ensimmäinen deterministinen polynomiaikaalgoritmi pisteiden laskemiseen elliptisellä käyrällä . Ennen Schufin algoritmia lähestymistavat pisteiden laskemiseen elliptisillä käyrillä, kuten yksinkertainen pienten ja suurten askelten algoritmi , olivat suurimmaksi osaksi työlästä ja vaativat eksponentiaalista ajoaikaa.

Tämä artikkeli selittää Schufin lähestymistavan keskittyen algoritmin takana oleviin matemaattisiin ideoihin.

Johdanto

Antaa olla  elliptinen käyrä , joka on määritelty äärellisen kentän yli , missä alkuluku ja kokonaisluku . Ominaisen kentän yli elliptinen käyrä voidaan antaa (lyhyesti) Weierstrassin yhtälöllä

kanssa . Yli määritelty pistejoukko koostuu ratkaisuista, jotka täyttävät käyrän ja äärettömän pisteen yhtälön . Jos tässä joukossa käytetään elliptisten käyrien ryhmälakia, voidaan nähdä, että tämä joukko muodostaa Abelin ryhmän , jossa se toimii nollaelementtinä. Laskeaksemme pisteitä elliptisellä käyrällä, laskemme joukon kardinaalisuuden . Schuf-lähestymistapa käyttää Hassen elliptisen käyrän lausetta yhdessä kiinalaisen jäännöslauseen ja jakopolynomien kardinaalisuuden laskemiseen .

Hassen lause

Hassen lause sanoo, että jos on elliptinen käyrä äärellisen kentän päällä, niin se täyttää epäyhtälön

Tämä vahva tulos, jonka Hasse sai vuonna 1934, yksinkertaistaa tehtäväämme rajaamalla sen rajallisiin (vaikkakin suuriin) mahdollisuuksiin. Jos määritämme kuinka ja käytämme tätä tulosta, saadaan, että tehomoduulin laskenta , jossa , riittää laskemaan ja siten saamaan . Vaikka ei olekaan tehokasta tapaa laskea suoraan yleisiä lukuja, on mahdollista laskea pieni alkuluku varsin tehokkaasti. Valitsemme joukoksi erilaisia ​​alkulukuja siten, että . Jos kiinalainen jäännöslause annetaan kaikille , voit laskea .

Alkuluvun laskemiseen käytämme Frobeniuksen endomorfismiteoriaa ja jakopolynomeja [ . Huomaa, että alkulukujen huomioiminen ei aiheuta ongelmia, koska voimme aina valita suuremman alkuluvun varmistaaksemme, että tulo on riittävän suuri. Joka tapauksessa tapaukseen käytetään useimmiten Schuf-algoritmia , koska on olemassa tehokkaampia, ns. -adic-algoritmeja kentille, joilla on pieni ominaisuus.

Frobenius endomorfismi

Kun elliptinen käyrä on määritelty yli , katsotaan pisteet yli , kentän algebrallinen sulkeutuminen . Eli sallimme pisteiden olla koordinaatteja . Frobeniuksen endomorfismi laajentaa elliptistä käyrää kartoituksella .

Tämä kartta on identtinen ja sitä voidaan laajentaa pisteellä äärettömään , mikä tekee siitä ryhmämorfismin itseensä .

Frobeniuksen endomorfismi täyttää potenssiin liittyvän toisen asteen yhtälön seuraavalla lauseella:

Lause: Kartoituksen antama Frobenius-endomorfismi täyttää ominaisyhtälön

, missä

Sitten kaikki meillä on , jossa + tarkoittaa elliptisen käyrän lisäystä ja ja tarkoittaa pisteen skalaarituloa ja pisteen skalaarituloa [ 2 ] .

Voit yrittää laskea nämä pisteet symbolisessa muodossa ja käyrän koordinaattirenkaan funktioina ja etsiä sitten yhtälön täyttävän arvon. Tutkinnot osoittautuvat kuitenkin erittäin suuriksi, eikä tällä lähestymistavalla ole käytännön arvoa.

Schufin ideana oli tehdä tällaisia ​​laskelmia rajoittuen tilaamaan pisteitä erilaisille pienille alkuluvuille . Korjaamme parittoman alkuluvun, siirrymme ratkaisemaan ongelman määrittämisessä , määriteltynä , tietylle alkuluvulle . Jos piste on -torsion aliryhmässä , Sitten , Jossa on ainoa kokonaisluku sellainen, että ja . Huomaa, että ja että mille tahansa kokonaisluvulle meillä on . Siten sillä on sama järjestys kuin . Sitten , joka kuuluu , meillä on myös jos . Näin ollen olemme vähentäneet ongelmamme yhtälön ratkaisemiseksi

missä ja välissä .

Laskelmat modulo

Jakopolynomi , jonka indeksi on l  , on polynomi siten, että sen juuret ovat täsmälleen kertaluvun l pisteiden x - koordinaatit. Tällöin laskennan rajoittaminenl -vääntöpisteisiin tarkoittaa näiden lausekkeiden laskemista koordinaattirenkaan E ja l :nnen jakopolynomin moduulin. Eli työskentelemme. Tämä tarkoittaa erityisesti sitä, että X :n ja Y :nei ylitä 1:tä muuttujan y suhteen ja muuttujanx suhteen .

Pistetulo voidaan tehdä tupla-ja-lisää- menetelmällä tai jakopolynomilla. Toinen lähestymistapa antaa:

,

missä  on n :s jakopolynomi . Huomaa, että se on vain x :n funktio, merkitään tämä funktio : lla .

Meidän on jaettava ongelma kahteen tapaukseen: tapaukseen, jossa , ja tapaukseen, jossa .

Tapaus 1:

Käyttämällä ryhmän lisäyskaavaa saamme:

Huomaa, että tämä laskenta on mahdotonta, jos epäyhtälö-oletus epäonnistuu.

Voimme nyt kaventaa x -koordinaatin valintaa kahdelle mahdollisuudelle, nimittäin positiiviselle ja negatiiviselle tapaukselle. Y -koordinaatin avulla määritämme kumpi näistä kahdesta tapauksesta tapahtuu.

Osoitamme ensin, että X on vain x :n funktio . Harkitse . Koska se on parillinen , korvaamalla lausekkeen kirjoitamme uudelleen muotoon

ja meillä on

Nyt, jos , niin tasa-arvo on totta

kaikille P l -vääntöpisteille.

Kuten aiemmin mainittiin, käyttämällä Y ja , voimme nyt määrittää, kumpi kahdesta arvosta ( tai ) toimii. Se antaa merkityksen . Schoofin algoritmi muistaa muuttujan arvot jokaiselle tarkastelulle alkuluvulle l .

Tapaus 2:

Oletetaan, että . Koska l on pariton alkuluku, se on mahdotonta , ja siksi . Ominaisuusyhtälöstä seuraa, että , ja siksi se . Tästä seuraa, että q on neliömoduuli l . Anna . Laske sisään ja tarkista onko . Jos on, niin on y-koordinaatista riippuen.

Jos q ei ole neliömodulo l , tai jos yhtäläisyys epäonnistuu joillekin w ja , oletuksemme on väärä, joten . Ominaisuusyhtälö antaa .

Lisätapaus

Muista, että alkuperäisissä sopimuksissamme ei oteta huomioon tapausta . Koska oletimme, että q on pariton, ja erityisesti jos ja vain jos sillä on 2:n kertaluvun elementti. Ryhmän summauksen määritelmän mukaan minkä tahansa kertaluvun 2 elementin tulee olla muotoa . Siten jos ja vain jos polynomin juuri on , jos ja vain jos gcd .

Algoritmi

Syöte: 1. Elliptinen käyrä . 2. Kokonaisluku q äärelliselle kenttään , jossa on . Johtopäätös:E - pisteiden määrä yli . Valitsemme joukon parittomia alkulukuja S , jotka eivät sisällä p :tä siten, että Hyväksymme jos gcd , muuten hyväksymme . Laskemme jakopolynomin . Kaikki alla olevan silmukan laskutoimitukset suoritetaan renkaassa Sillä suoritamme : Antaa olla ainoa kokonaisluku sellainen, että ja . Laskemme ja . _ Jos sitten Laske . tekemiseen : jos sitten jos sitten ; _ muuten . muuten, jos q on neliömoduuli l , laske w ja laske jos sitten toisin jos sitten toisin Laske kiinalaisen jäännöslauseen avulla t modulo N yhtälöstä jossa . Me johdamme .

Vaikeus

Useimmissa laskelmissa lasketaan ja kullekin alkuluvulle eli lasketaan , , , jokaiselle alkuluvulle . Laskelmat sisältävät eksponentioimisen renkaassa ja vaativat kertolaskuja. Koska aste on , jokainen renkaan alkio on astepolynomi . Alkulukulauseen mukaan on noin alkulukuja koon , joka antaa for , ja saamme . Siten jokainen kertolasku renkaassa vaatii kertolaskuja in , mikä puolestaan ​​vaatii bittikohtaisia ​​operaatioita. Yhteensä kunkin alkuluvun bittioperaatioiden määrä on . Olettaen, että tämä laskenta on tehtävä jokaiselle alkuluvulle, Schufin algoritmin kokonaismonimutkaisuus tulee . Nopeiden polynomioperaatioiden ja kokonaislukuaritmetiikka lyhentää tämän ajan arvoon .

Parannuksia Schuf-algoritmiin

1990-luvulla Noam Elkis ja sitten A. O. L. Atkin keksivät parannuksia Schufin perusalgoritmiin rajoittamalla alkulukujoukon tietyntyyppisiin lukuihin. Nämä luvut tunnettiin vastaavasti Elkiksen ja Atkinin alkulukuina. Alkulukua kutsutaan Elkis-alkuluvuksi, jos karakteristinen yhtälö on hajotettava yli ja Atkin-alkuluvut ovat alkulukuja, jotka eivät ole Elkis-alkulukuja. Atkin osoitti kuinka yhdistää Atkin-alkuluvuista saatua tietoa Elkis-alkuluvuista saatuun tietoon tehokkaan algoritmin saamiseksi, jota kutsuttiin " Schoof-Elkis-Atkin-algoritmiksi . Ensimmäinen tehtävä on määrittää, onko tietty alkuluku Elkis- vai Atkin-alkuluku. Tämän saavuttamiseksi käytämme modulaarisia polynomeja, jotka syntyvät tutkittaessa modulaarisia muotoja ja tulkittaessa elliptisiä käyriä kompleksilukukentän hilaksi. Kun olemme määrittäneet, mikä tapaus meillä on, sen sijaan, että käyttäisimme jakopolynomeja , voimme työskennellä polynomien kanssa, joilla on pienempi aste kuin jakopolynomeilla: sijasta . Tehokkaan toteutuksen varmistamiseksi käytetään todennäköisyyspohjaisia ​​juurihakualgoritmeja, mikä tekee algoritmista Las Vegasin algoritmin deterministisen algoritmin sijaan. Heuristisella oletuksella, että noin puolet alkuluvuista, jotka ovat pienempiä tai yhtä suuria kuin ovat Elkis-alkulukuja, saadaan algoritmi, joka on tehokkaampi kuin Schoofin algoritmi, ja tämän algoritmin odotettu ajoaika on , jos käytetään tavallista aritmetiikkaa, ja , jos käytetään nopea aritmetiikka. On huomattava, että tämä heuristinen oletus pätee useimpiin elliptisiin käyriin, mutta sitä ei tunneta yleisessä tapauksessa, vaikka yleistetty Riemannin hypoteesi olisikin totta .

Toteutukset

Mike Scott on toteuttanut osan algoritmeista C++ :ssa ja ne ovat saatavilla lähdekoodina . Toteutus on täysin ilmainen (ei ehtoja, ei rajoituksia), mutta käyttää MIRACL- kirjastoa , jota jaetaan AGPLv3 -lisenssillä .

Katso myös

Muistiinpanot

  1. Tosin ECDSA :n artikkelissa sanotaan seuraavaa: Skoofin algoritmi on käytännössä varsin tehoton p -arvoille , jotka ovat todella kiinnostavia, eli p > 2 160 .
  2. Pistettä mP, joka on yhtä suuri kuin pisteen P m-kertainen summa elliptisen käyrän additiivinen pisteryhmässä, kutsutaan pisteen ja luvun m skalaarituloksi , ja itse pisteitä mP kutsutaan skalaarikerroiksi. kohta ( Rybolovlev 2004 ). Tiborgin kirjassa ( van Tilborg 2006 ) samaa käsitettä kutsutaan skalaarikertoimeksi.

Kirjallisuus