ECDSA

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. április 27-én felülvizsgált verziótól ; az ellenőrzések 27 szerkesztést igényelnek .

Az ECDSA (Elliptic Curve Digital Signature Algorithm)  egy nyilvános kulcsú algoritmus , amelyet elektronikus digitális aláírás létrehozására és ellenőrzésére használnak elliptikus görbe kriptográfia segítségével .

Történelem

Az elliptikus görbéket, mint matematikai fogalmat régóta tanulmányozzák, számos tudományos közlemény létezik ebben a témában. Azonban minden kutatás ellenére valós problémákra, különösen a kriptográfiára való alkalmazásuk a 20. század végéig ismeretlen volt. 1985-ben Victor Miller és Neil Koblitz javasolta az elliptikus görbék használatát a kriptográfiában.

1991-ben a DSA -t a National Institute of Standards and Technology (NIST) fejlesztette ki, a moduláris aritmetika és a diszkrét logaritmus - probléma köré épülve . Nem sokkal ezután a NIST nyilvános megjegyzéseket kért a digitális aláírási sémákra vonatkozó javaslatához [O 1] . Ettől az ötlettől ihletett Scott Vanstone a "Responses to NIST's javaslat" című cikkében a digitális aláírási algoritmus analógját javasolta elliptikus görbe kriptográfiát (ECDSA) használva.

Az 1998-2000 közötti időszakban. Az ECDSA-t különböző szervezetek szabványként fogadták el ( ISO 14888-3, ANSI X9.62, IEEE 1363-2000, FIPS 186-2).

Alkalmazás

Az ECDSA-t kriptovaluta-tranzakciókban (például Bitcoin és Ethereum ) használják annak biztosítására, hogy a pénzeszközöket csak a jogos tulajdonosaik költhessék el [Y 1] .

Az elliptikus görbe alapvető paraméterei

Egy véges mező feletti elliptikus görbe fő paraméterei (eng. domain paraméterek) a következő mennyiségek halmaza:

A paramétereket úgy kell megválasztani, hogy a véges mező felett meghatározott elliptikus görbe ellenálljon az ECDLP -re alkalmazható összes ismert támadásnak . Ezenkívül biztonsági vagy megvalósítási megfontolások vonatkozhatnak más korlátozásokra is.

Általános szabály, hogy a fő paraméterek az entitások egy csoportjára vonatkoznak, de egyes alkalmazásokban (implementációkban) minden egyes felhasználóra jellemzőek lehetnek [O 2] .

ECDSA az ANSI X9.62 szerint

A gyakorlati alkalmazás érdekében az ECDSA korlátozásokat ír elő azokra a mezőkre, amelyekben elliptikus görbéket határoznak meg. Az egyszerűség kedvéért vegyük figyelembe az algoritmusok megvalósításának esetét, amikor  egy egyszerű véges mező, (más mezőkhöz hasonlóan), akkor az elliptikus egyenletünk a formát veszi fel .

Algoritmus az alapvető paraméterek generálásához

Az elliptikus görbe pontjainak csoportjában a diszkrét logaritmuson alapuló ismert támadások elkerülése érdekében szükséges, hogy az elliptikus görbe pontjainak száma kellően nagy prímszámmal osztható legyen . Az ANSI X9.62 szabvány megköveteli .

Bevitel : Mezősorrend , mezőbemutató jelző a , - biztonsági szint: és . Következtetés : Az elliptikus görbe fő paraméterei . 1. lépés: Válassza ki a véletlenszerűen ellenőrzött elemeket , amelyek megfelelnek a feltételnek . A 2. lépésben a görbe sorrendje kiszámítható a SEA algoritmussal . 3. lépés : Ellenőrizze, hogy van-e nagy prímszám . Ha nem, akkor folytassa az 1. lépéssel. 4. lépés. Ellenőrizze, hogy . Ha nem, akkor folytassa az 1. lépéssel. 5. lépés . Ellenőrizze, hogy . Ha nem, akkor folytassa az 1. lépéssel. 6. lépés. 7. lépés : Válasszon egy tetszőleges pontot , és állítsa be a . Ismételje addig, amíg , hol van a pont a végtelenben 8. lépés. Vissza

A véletlenszerű ellenőrző algoritmusok garantálják, hogy egy véges mező feletti elliptikus görbe abszolút véletlenszerűen jött létre [O 2] .

Algoritmus kulcspár generálására

Nézzük az Alice és Bob közötti üzenetváltást . Korábban a fő paraméterek generálására szolgáló algoritmus segítségével Alice megkapta az elliptikus görbe fő paramétereit. A következő műveletsor segítségével Alice létrehoz egy nyilvános és privát kulcsot.

Bemenet : Az elliptikus görbe alapvető paraméterei . Következtetés : Nyilvános kulcs - , privát kulcs - . 1. lépés: Válasszon egy véletlenszerű vagy pszeudo-véletlen egész számot . 2. lépés Számítsa ki egy pont koordinátáit egy elliptikus görbén . 3. lépés: Vissza . Nyilvános kulcs ellenőrző algoritmus

A nyilvános kulcsok ellenőrzésének célja annak megerősítése, hogy egy nyilvános kulcs rendelkezik-e bizonyos aritmetikai tulajdonságokkal . Ennek az algoritmusnak a sikeres végrehajtása bizonyítja, hogy a hozzá tartozó privát kulcs matematikailag létezik, de nem garantálja, hogy valaki nem számította ki az adott privát kulcsot, vagy hogy az igényelt tulajdonos valóban rendelkezik vele.

Bemenet : Elliptikus görbe alapvető paraméterei , nyilvános kulcs- . Következtetés : Döntés a nyilvános kulcs érvényességének elfogadásáról vagy elutasításáról . 1. lépés Ellenőrizze, hogy . 2. lépés. Ellenőrizze, hogy mik a helyesen ábrázolt elemek , pl. -hez tartozó egész számok . 3. lépés Ellenőrizze, hogy mi felel meg a mező elemei által meghatározott elliptikus görbe egyenletnek . 4. lépés Ellenőrizze, hogy . 5. lépés: Ha valamelyik ellenőrzés sikertelen, akkor adja vissza az "Elutasítás"-t, ellenkező esetben az "Elfogadás"-t.

Digitális aláírás generálási algoritmus

Alice, aki rendelkezik a görbe és a privát kulcs fő paramétereivel, alá akarja írni az üzenetet , ehhez aláírást kell generálnia .

A következőkben olyan kriptográfiai hash függvényt jelöl, amelynek kimeneti értéke legfeljebb bithosszú (ha ez a feltétel nem teljesül, akkor a kimeneti érték csonkolható). Feltételezzük, hogy a függvény már egész számmá konvertált kimenetével dolgozunk.

Bemenet : Elliptikus görbe alapvető paraméterei , privát kulcs , üzenet . Következtetés : Aláírás . 1. lépés: Válasszon egy véletlenszerű vagy pszeudo-véletlen egész számot . 2. lépés Számítsa ki a pont koordinátáit 3. lépés. Számítsa ki . Ha , akkor folytassa az 1. lépéssel. 4. lépés: Számítsa ki . 5. lépés Számítsa ki . Ha , akkor folytassa az 1. lépéssel. 6. lépés : Visszatérés .

Digitális aláírás ellenőrzési algoritmus

Annak ellenőrzésére, hogy Alice aláírta- e az üzenetet , Bob megkapja az alapvető görbeparaméterek és a hozzájuk tartozó nyilvános kulcs hiteles másolatát .

Bemenet : Elliptikus görbe alapvető paraméterei , nyilvános kulcs , üzenet , aláírás . Következtetés : Döntés az aláírás elfogadásáról vagy elutasításáról. 1. lépés: Ellenőrizze, hogy a következőhöz tartozó egész számok-e . Ha valamelyik érvényesítés sikertelen, adja vissza az „Elutasítás” parancsot. 2. lépés Számítsa ki . 3. lépés Számítsa ki . 4. lépés Számítsa ki és . 5. lépés Számítsa ki a pont koordinátáit . 6. lépés : Ha , akkor adja vissza az "Elutasítás" parancsot. Ellenkező esetben számolj . 7. lépés : Ha , akkor adja vissza az "Elfogadás", ellenkező esetben az "Elutasítás" lehetőséget. A digitális aláírás ellenőrző algoritmus működésének igazolása

Az üzenet aláírását valóban Alice generálja, jelen esetben . A permutáció a következőket adja:

k ≡ s − egy ( e + d r ) mod n ≡ ( s − egy e + s − egy d r ) mod n ≡ ( w e + w d r ) mod n ≡ ( u egy + u 2 d ) mod n {\displaystyle k\equiv s^{-1}(e+dr){\bmod {n}}\equiv (s^{-1}e+s^{-1}dr){\bmod {n}} \equiv (we+wdr){\bmod {n}}\equiv (u_{1}+u_{2}d){\bmod {n}}}

Így megkapjuk tehát a , amit bizonyítani kellett.

ECDSA példa

Ebben a példában [O 1] csak az algoritmusok értelmes számítási lépéseit írjuk le, feltételezve, hogy minden ellenőrzés elvégezhető szöveges leírás nélkül.

1. A fő paraméterek generálására szolgáló algoritmus segítségével a következő értékeket kapjuk: , elliptikus görbe és bázispont sorrenddel .

2. Hozzon létre egy kulcspárt a kulcspár-generáló algoritmusnak megfelelően : válassza a lehetőséget , majd a lehetőséget .

1. lépés Válassza a lehetőséget . 2. lépés Számítsa ki a pont koordinátáit .

3. A digitális aláírás generáló algoritmus segítségével a szövegként megadott üzenetet a hash függvény értékével írjuk alá .

1. lépés Válassza a lehetőséget . 2. lépés Számítsa ki a pont koordinátáit . 3. lépés: Számítsa ki . 4. lépés: Számítsa ki .

4. Ellenőrizze az üzenet aláírásának hitelességét a digitális aláírás-ellenőrző algoritmus segítségével .

1. lépés: Számolja ki . 2. lépés Számítsa ki és . 3. lépés Számítsa ki a pont koordinátáit . 4. lépés: Számítsa ki . 5. lépés: Ellenőrzés . Az aláírást elfogadjuk.

Biztonság

D. Brown (Daniel RL Brown) bebizonyította, hogy az ECDSA algoritmus nem biztonságosabb, mint a DSA . Megfogalmazta az ECDSA biztonsági megszorítását, amely a következő következtetéshez vezetett: "Ha egy elliptikus görbe csoportot a főcsoport modellezhet, és a hash függvénye kielégít egy bizonyos megalapozott sejtést, akkor az ECDSA ellenáll a megfelelő szöveges támadásnak , ha létező hamisítás. " [Y 2] .

A titkosítási algoritmus erőssége egy elliptikus görbe pontcsoportjában a diszkrét logaritmus problémán alapul . Ellentétben az egyszerű diszkrét logaritmus problémával és az egész számok faktorizációs problémájával , az elliptikus görbe pontcsoportján nincs szubexponenciális algoritmus a diszkrét logaritmus feladatra. Emiatt a "kulcsbitenkénti teljesítmény" lényegesen magasabb egy elliptikus görbéket használó algoritmusban [E 3] .

Ez azt jelenti, hogy lényegesen kisebb paraméterek használhatók az elliptikus görbe kriptográfiában, mint más nyilvános kulcsú rendszerekben, mint például az RSA és a DSA , de ezzel egyenértékű biztonsági szint mellett. Például a kulcsok bitmérete : A 160 bites kulcs az RSA és DSA 1024 bites modulusú kulcsaival egyenértékű, hasonló biztonsági szinten (ismert támadások ellen).

A kisebb paraméterméretek (különösen a kulcsok) előnyei közé tartozik az algoritmus végrehajtási sebessége, a hatékony energiafelhasználás, a sávszélesség és a memória. Különösen fontosak a korlátozott képességű eszközökön, például intelligens kártyákon [O 2] történő alkalmazásoknál .

Gyakorlati megvalósítás

A véges mezők feletti elliptikus görbék számos szoftveres megvalósítása létezik. A legtöbb ilyen implementáció egyetlen alkalmazásra összpontosul, mint például az ECDSA gyors implementációjának fejlesztése egy adott célterületre [O 3] .

Jegyzetek

Fő források
  1. 1 2 Liao HZ, Shen YY Az elliptikus görbén digitális aláírási algoritmus . " Tunghai tudomány " (2006). Letöltve: 2022. szeptember 28. Az eredetiből archiválva : 2022. szeptember 28..
  2. 1 2 3 Hankerson D., Menezes AJ, Vanstone S. Guide to elliptic curve cryptography . " Springer Science & Business Media" (2006). Letöltve: 2022. szeptember 28. Az eredetiből archiválva : 2022. március 18.
  3. Lopez J., Dahab R. Az elliptikus görbe titkosításának áttekintése . Számítástechnikai Intézet. Campinas Állami Egyetem" (2000). Letöltve: 2022. szeptember 29. Az eredetiből archiválva : 2022. szeptember 29.
További források
  1. Mayer H. ECDSA biztonság a bitcoinban és az ethereumban: kutatási felmérés . " CoinFaabrik " (2016. június 28.). Letöltve: 2022. szeptember 28. Az eredetiből archiválva : 2022. január 22.
  2. D. Brown. Általános csoportok, ütközésállóság és ECDSA . " Kódok és kriptográfia " (2002. február 26.). Letöltve: 2008. november 27. Az eredetiből archiválva : 2012. február 27..
  3. Korzsev V. Digitális aláírás. Elliptikus görbék . " Open Systems " (2002. augusztus 8.). Letöltve: 2008. november 16. Az eredetiből archiválva : 2012. december 31..

Linkek