Elliptikus kriptográfia

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

Az elliptikus kriptográfia a kriptográfia egyik ága , amely aszimmetrikus kriptorendszereket vizsgál véges mezők feletti elliptikus görbék alapján . Az elliptikus kriptográfia fő előnye, hogy a mai napig nem ismertek szubexponenciális diszkrét logaritmus - algoritmusok .

Az elliptikus görbék használatát kriptorendszerek létrehozására egymástól függetlenül Neil Koblitz és Victor Miller javasolta 1985 - ben [1] .

Bevezetés

1985-ben Neil Koblitz és Victor Miller egymástól függetlenül javasolták az elliptikus görbék algebrai tulajdonságainak használatát a kriptográfiában . Ettől a pillanattól kezdve a kriptográfia új irányának gyors fejlődése kezdődött, amelyre az "elliptikus görbék kriptográfiai" kifejezést használják. A fő kriptográfiai művelet szerepét egy elliptikus görbe pontjának egy adott egész számmal való skaláris szorzata látja el, amelyet az elliptikus görbe pontjainak összeadása és megkettőzésének műveletei határoznak meg. Ez utóbbiak pedig összeadási, szorzási és inverziós műveletek alapján valósulnak meg abban a véges mezőben, amelyen a görbét tekintjük. Az elliptikus görbe kriptográfia iránti érdeklődés különösen a vezeték nélküli kommunikációban nyújtott előnyeinek köszönhető – nagy sebesség és kis kulcshossz [2] . Az aszimmetrikus kriptográfia néhány matematikai probléma megoldásának összetettségén alapul. A korai nyilvános kulcsú kriptorendszerek, mint például az RSA algoritmus , biztonságosak, mivel nehéz az összetett számokat prímtényezőkbe beépíteni. Ha algoritmusokat használunk elliptikus görbéken, akkor azt feltételezzük, hogy nincsenek szubexponenciális algoritmusok a diszkrét logaritmus problémájának megoldására pontjaik csoportjaiban. Ebben az esetben az elliptikus görbe pontcsoportjainak sorrendje határozza meg a probléma összetettségét. Úgy gondolják, hogy az RSA-val azonos szintű kriptográfiai erősség eléréséhez kisebb megrendelésekből álló csoportokra van szükség, ami csökkenti az információ tárolásának és továbbításának költségeit. Például az RSA 2005 konferencián a Nemzetbiztonsági Ügynökség bejelentette a "Suite B" létrehozását, amely csak elliptikus kriptográfiai algoritmusokat használ, és csak 384 bites kulcsokat használnak a "szigorúan titkos" minősítésű információk védelmére.

Elliptikus görbék véges mezők felett

Az elliptikus görbe olyan pontok halmaza, amelyek kielégítik az egyenletet:

Ezt az egyenletet tetszőleges mezőkre, és különösen véges mezőkre tekinthetjük, amelyek különösen érdekesek a kriptográfia számára.

A kriptográfiában az elliptikus görbéket kétféle véges mezőn veszik figyelembe : a páratlan karakterisztikájú egyszerű mezőkön ( , ahol egy prímszám) és a 2 karakterisztikus mezőkön ( ).

Elliptikus görbék páratlan karakterisztikájú mezők felett

A karakterisztikus mező felett az E elliptikus görbe egyenlete a következő alakra redukálható:

ahol az állandók kielégítőek .

A mező feletti E elliptikus görbe pontjainak csoportja az E - n fekvő párok halmaza a nulla elemmel kombinálva :

Meg kell jegyezni, hogy minden nem nulla elemben vagy két négyzetgyök van, vagy nincs, így az elliptikus görbe pontjait a és alakpárokra osztjuk .

Példa

Tekintsünk egy elliptikus görbét egy mező felett . Ezen a görbén különösen a pont található , mivel . Könnyen ellenőrizhető, hogy a , , , pontok mind az adott görbe pontjai.

Hasse tétele

Hasse elliptikus görbe tétele kimondja, hogy az elliptikus görbe pontjainak száma közel van a véges mező méretéhez:

mit hoz:

Elliptikus görbék a 2. karakterisztika mezői felett

A 2. karakterisztika mezőjén kétféle elliptikus görbét veszünk figyelembe:

A szuperszinguláris elliptikus görbék speciális kényelme, hogy könnyen kiszámítható a sorrendjük, míg a nem szuperszinguláris görbék sorrendjének kiszámítása nehézkes. A szuperszinguláris görbék különösen kényelmesek házi készítésű ECC (Elliptic-curve cryptographia) kriptorendszer létrehozásához. Használatuk nélkülözheti a megrendelés kiszámításának időigényes eljárását.

Projektív koordináták

Egy elliptikus görbén lévő pontpár összegének kiszámításához nemcsak több összeadási és szorzási műveletre van szükség , hanem egy inverziós műveletre is , vagyis egy adott eredményre , amely egy vagy két nagyságrend lassabb, mint a szorzás. Szerencsére az elliptikus görbék pontjai különböző koordinátarendszerekben ábrázolhatók, amelyekhez nincs szükség inverzióra a pontok összeadásakor:

Fontos megjegyezni, hogy lehetnek különböző nevek – például az IEEE P1363-2000 projektív koordinátákat hív, amelyeket általában Jacobi koordinátáknak neveznek.

Titkosítás/dekódolás elliptikus görbék segítségével

A vizsgált rendszerben az első feladat az üzenet sima szövegének titkosítása , amely értékként (Hogyan?) [3] kerül elküldésre a ponthoz . Itt a pont a belé kódolt szöveget képviseli, és ezt követően dekódolásra kerül. Vegye figyelembe, hogy nem lehet csak koordinátával vagy ponttal kódolni üzenetet, mivel nem minden ilyen koordináta érhető el a nyelvben . A kulcscsere-rendszerhez hasonlóan a titkosító és visszafejtő rendszerekben a pont és az elliptikus csoport is paraméternek számít . A felhasználó kiválaszt egy privát kulcsot , és létrehoz egy nyilvános kulcsot . Az üzenet titkosításához és a felhasználónak való elküldéséhez a felhasználó kiválaszt egy véletlenszerű pozitív egész számot , és kiszámít egy titkosított szöveget , amely egy pontpárból áll.

. Ebben az esetben egy-két pont.

Vegye figyelembe, hogy a fél a fél nyilvános kulcsát használja : . A titkosított szöveg visszafejtéséhez szorozza meg a pár első pontját a titkos kulccsal , és vonja ki az eredményt a második pontból:

A felhasználó elfedte az üzenetet a hozzáadásával . Ezen a felhasználón kívül senki sem ismeri a -t , így bár ez a nyilvános kulcs, senki sem tudja leleplezni . A felhasználó azonban egy "tippet" is tartalmaz az üzenetben, ami elég lesz ahhoz, hogy eltávolítsa a maszkot arról, aki rendelkezik a privát kulccsal . Az üzenet visszaállításához az ellenfélnek a és adatokból kell számolnia , ami nehéz feladatnak tűnik [4] .

Az elliptikus görbe pontjain végzett aritmetikai műveletek nem egyenértékűek ezekkel a koordinátáikon végzett aritmetikai műveletekkel.

Egy véges mező feletti elliptikus görbe pontjai egy csoportot képviselnek [5] . A szorzás ismételt duplázásra és összegzésre redukálódik.

Például G+G ≠ 2G ( ezek különböző műveletek ), 2G + 2^115G = 2^115G + 2G (az összegzés kommutatív);

2G=2*G; 4G=2*2G; 8G=2*4G; 16G = 2*8G stb. (két azonos pont esetén csak a duplázási művelet);

25*G; 25 = 11001 (binárisan); 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 (összegzési művelet).

24G/3 = 24G* (3^-1 mod P); ahol 3^(-1) mod P - moduláris multiplikatív inverz ,

5G - 3G = 5G + (-3G); ahol -3G = nG - 3G = O - 3G - additív inverz, szemközti pont .

Példa

Tekintsük a , esetet , amely megfelel a görbének

és .

Tegyük fel , hogy a felhasználó egy elliptikus ponttal kódolt üzenetet készül elküldeni a felhasználónak , és a felhasználó kiválaszt egy véletlen számot . A nyilvános kulcs a . Nekünk van:

.

Így a felhasználónak el kell küldenie a titkosított szöveget .

Titkosítás megvalósítása

Az alábbiakban az elliptikus görbe titkosítási algoritmusainak konkrét megvalósításait ismertetjük. Itt megvizsgáljuk az elliptikus kriptográfia általános elveit.

Paraméterkészlet

Az elliptikus kriptográfia használatához minden résztvevőnek meg kell egyeznie az elliptikus görbét meghatározó összes paraméterben, pl. kriptográfiai protokoll paraméterek halmaza. Az elliptikus görbét állandók és a (2) egyenlet határozza meg. A pontok Abel -alcsoportja ciklikus , és egy G generáló pont adja . Ebben az esetben a kofaktornak , ahol n a G pont sorrendje , kicsinek ( , lehetőleg párosnak ) kell lennie.

Tehát a 2. karakterisztika mezőjéhez a paraméterkészlet: , a végső mezőhöz pedig, ahol , a paraméterkészlet: .

Számos ajánlott paraméterkészlet létezik:

Saját paraméterkészlet létrehozásához tegye a következőket.

  1. Válasszon ki egy beállításkészletet.
  2. Keressen egy elliptikus görbét, amely kielégíti ezt a paraméterkészletet.

Egy adott paraméterkészlet görbéjének meghatározására két módszert használnak.

A kriptográfiailag "gyenge" görbéknek több osztálya van, amelyeket el kell kerülni:

Gyors redukció (NIST görbék)

A modulo p osztás (amely az összeadáshoz és szorzáshoz szükséges) gyorsabban végrehajtható, ha p -t 2 hatványához közeli prímnek választjuk. Különösen p lehet Mersenne-prím . Például, vagy jó választás . A National Institute of Standards and Technology (NIST) a p -hez hasonló prímszámok használatát javasolja .

A NIST által javasolt görbék másik előnye a választása , amely felgyorsítja az összeadás műveletét Jacobi koordinátákban.

A NIST által ajánlott elliptikus görbék

A NIST 15 elliptikus görbét ajánl, amelyek közül sokat Jerry Solinas (NSA) származtatott Neil Koblitz munkája alapján [10] . A FIPS 186-3 [11] 10 végmezőt javasol. Néhány közülük:

Ezenkívül minden véges mezőhöz egy elliptikus görbe ajánlott. Ezeket a véges mezőket és elliptikus görbéket gyakran hibásan választják ki a magas szintű biztonság miatt. A NIST szerint választásukat a szoftveres implementáció hatékonysága indokolta [13] . Közülük legalább néhányuk biztonságát illetően kétségek merülnek fel [14] [15] [16] .

Kulcsméret

A leggyorsabb algoritmus, amely megoldja a diszkrét logaritmus problémáját elliptikus görbéken, mint például a Shanks-algoritmus és a Pollard-féle ρ-módszer , műveleteket igényel. Ezért a mező méretének legalább kétszerese kell legyen a kulcs méretének. Például egy 128 bites kulcsnál ajánlatos elliptikus görbét használni egy mező felett , ahol p 256 bit hosszú.

Az eddig nyilvánosan feltört legbonyolultabb elliptikus görbe áramkörök egy 112 bites kulcsot tartalmaztak a véges prímmezőhöz és egy 109 bites kulcsot a 2. karakterisztika véges mezőjéhez. . 2009 júliusában egy több mint 200 Sony Playstation 3 -ból álló klaszter 3,5 hónap alatt 109 bites kulcsot talált. A 2. funkciómező kulcsát 2004 áprilisában találták meg 2600 számítógépen, 17 hónap alatt. .

A Diffie-Hellman kulcscsere analógja

Tegyük fel, hogy az A és B előfizetők meg akarnak állapodni egy olyan kulcsban, amelyet később valamilyen klasszikus kriptorendszerben fognak használni. Először is nyíltan választanak valamilyen véges mezőt és valami elliptikus görbét . Kulcsuk egy véletlenszerű pontból épül fel ezen az elliptikus görbén. Ha van egy véletlen pontjuk , akkor például a -koordinátája egy véletlenszerű elemet ad , amelyet aztán -bites egész számmá alakíthatunk át -számrendszerben (ahol ), és ez a szám kulcsként szolgálhat a klasszikus számrendszerükben. kriptorendszer. Ki kell választaniuk egy pontot úgy, hogy minden üzenetük nyílt legyen egymásnak, és rajtuk kívül senki ne tudjon róla semmit .

Az A és B előfizetők (felhasználók) először nyíltan választanak egy ∈ pontot "bázisnak"; ugyanazt a szerepet tölti be, mint a véges mezők generátora a Diffie-Hellman rendszerben. Nem követeljük meg azonban, hogy generáló elem legyen a görbe pontjainak csoportjában . Ez a csoport nem feltétlenül ciklikus. Még ha ciklikus is, ne vesztegessük az időt azzal, hogy megvizsgáljuk, mi a generáló elem (vagy akár az összes N pont megkeresésére, amire a következőkben nem lesz szükségünk). Szeretnénk, ha a B által generált alcsoport nagy lenne, lehetőleg önmagával azonos nagyságrendű . Egyelőre azt feltételezzük, hogy ez egy nyíltan vett pont egy nagyon nagy sorrendben (egyenlő vagy -val, vagy egy nagy osztóval ).

Kulcs létrehozásához először véletlenszerűen választunk ki egy egész számot , amely nagyságrendileg összehasonlítható a következővel: (amely közel áll a -hoz ); ezt a számot titkolja. Kiszámítja ∈ -t, és nyíltan átadja ezt a pontot. B előfizető ugyanezt teszi: véletlenszerűen választ , és nyilvánosan továbbítja ∈ . Ekkor az általuk használt titkos kulcs ∈ . Mindkét felhasználó ki tudja számítani ezt a kulcsot. Például tudja (a pontot nyíltan átadták) és a saját titkát . Azonban bármely harmadik fél csak és . Eltekintve a diszkrét logaritmus problémájának megoldásától - egy innen és (vagy innen és -ből ) találni, úgy tűnik, nincs mód megtalálni , csak ismerve és [17] .

Példa a Diffie-Hellman kulcscserére

Példaként vegyük

. _

amely megfelel a görbének

és .

Kiszámolható, hogy . A felhasználó privát kulcsa , tehát A nyilvános kulcsa

.

B felhasználó privát kulcsa , tehát B nyilvános kulcsa

.

A közös titok az

.

A titkosítás biztonsága elliptikus görbék használatával

Az elliptikus görbe kriptográfiai megközelítés által nyújtott biztonság attól függ, hogy mennyire nehéz megoldani az adatokból és az adatokból történő meghatározás problémáját . Ezt a problémát általában diszkrét logaritmus feladatnak nevezik elliptikus görbén. A ma ismert leggyorsabb módszer a logaritmusok elliptikus görbére történő felvételére az úgynevezett Pollard-módszer. A táblázat (lásd alább) összehasonlítja ennek a módszernek a hatékonyságát a szitaprímtényezős módszerrel az általános számmezőben. Látható belőle, hogy az RSA-hoz képest az elliptikus görbékre vonatkozó kriptográfiai módszerek alkalmazása esetén lényegesen kisebb kulcshosszúság mellett megközelítőleg azonos szintű védelem érhető el.

Ugyanazokat a kulcshosszakat tekintve az RSA és az elliptikus görbe kriptográfia által igényelt számítási erőfeszítés sem sokban különbözik. Így az azonos szintű védelem melletti RSA-hoz képest egyértelmű számítási előnyt jelent a rövidebb kulcshosszúságú elliptikus görbékre épülő kriptográfia [18] .

Táblázat: Az elliptikus görbék és az RSA használatával végzett kriptoanalízishez szükséges számítási erőfeszítés

Kulcsméret MIPS év
150 3,8*10^10
205 7,1*10^18
234 1,6*10^28
Kulcsméret MIPS év
512 3*10^4
768 3*10^7
1024 3*10^11
1280 3*10^14
1536 3*10^16
2048 3*10^20

Elektronikus digitális aláírás felépítése elliptikus görbék segítségével

Az ECDSA (Elliptic Curve Digital Signature Algorithm) algoritmust ANSI X9F1 és IEEE P1363 szabványként fogadták el .

Kulcsok létrehozása

  1. Elliptikus görbe van kiválasztva . A rajta lévő pontok számának oszthatónak kell lennie egy nagy n prímszámmal.
  2. A megrendelés alappontja kerül kiválasztásra .
  3. Egy véletlen szám kerül kiválasztásra .
  4. Kiszámolva .
  5. A privát kulcs a d, a nyilvános kulcs az <a, b, G, n, Q> sor.

Aláírás létrehozása

  1. Egy véletlen szám kerül kiválasztásra .
  2. és kiszámítják .
  3. A feltétel be van jelölve , mert különben az aláírás nem függ a privát kulcstól. Ha r = 0, akkor másik k véletlenszámot választunk.
  4. Kiszámolva .
  5. Kiszámolva .
  6. A feltétel ellenőrzésre kerül , mivel ebben az esetben az aláírás ellenőrzéséhez szükséges szám nem létezik. Ha s = 0, akkor egy másik k véletlenszámot választunk.

Az M üzenet aláírása egy számpár (r, s).

Aláírás ellenőrzése

  1. Ellenőrizzük, hogy az r és az s számok az (1, n) számtartományba tartoznak-e. Ellenkező esetben az ellenőrzés eredménye negatív, és az aláírás elutasításra kerül.
  2. Számítsa ki és H(M).
  3. Számítsa ki és .
  4. Számolja ki .
  5. Az aláírás akkor és csak akkor igaz, ha v = r [19] .

Alkalmazások

A modern kriptográfia legtöbb kriptorendszere természetesen „átvihető” elliptikus görbékre. Az alapötlet az, hogy az ismert véges csoportokhoz használt algoritmust átírják az elliptikus görbék racionális pontjainak csoportjaira:

Meg kell jegyezni, hogy az ilyen digitális aláírási rendszerek biztonsága nemcsak a titkosítási algoritmusok kriptográfiai erősségén múlik, hanem a kriptográfiai hash függvények és a használt véletlenszám-generátorok kriptográfiai erősségén is .

Egy 2013-as áttekintés szerint a leggyakrabban használt görbék a nistp256, nistp384, nistp521, secp256k1, secp384r1, secp521r1 [20] .

Jegyzetek

  1. Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. Bevezetés a matematikai kriptográfiába . - Springer, 2008. - 524 p. - (Matematika alapképzési szövegei). — ISBN 9780387779942 .
  2. Bolotov A. A., Gashkov S. B., Frolov A. B., Chasovskikh A. A. . Elemi bevezetés az elliptikus kriptográfiába. 11 p.
  3. Számok kódolása pontokba egy elliptikus görbén egy véges mezőben és ezek titkosítása-dekódolása. . Letöltve: 2019. október 29.
  4. Zsdanov O.N., Zolotarev V.V. Az információk kriptográfiai védelmének módszerei és eszközei. 167 p.
  5. Elliptikus kriptográfia: elmélet . Letöltve: 2016. október 13.
  6. Kormányzati használatra javasolt elliptikus görbék
  7. SEC 2: Ajánlott elliptikus görbe tartományparaméterek
  8. Schoof algoritmusa  (lefelé irányuló kapcsolat)
  9. Schoof–Elkies–Atkin algoritmus
  10. Neal Koblitz. Véletlenszerű görbék: Egy matematikus utazásai . - Springer, 2009. - S. 312-313. — 402 p. — ISBN 9783540740780 .
  11. FIPS 186-3 Archiválva : 2013. október 7. // NIST, 2009; 2013-ban megszűnt a FIPS 186-4 kiadásával
  12. Ez a sorrend hibának tűnhet. Az utolsó érték azonban pontosan 521, nem pedig 512 bit.
  13. Daniel J. Bernstein , Tanja Lange, A NIST görbék biztonsági veszélyei // 2013.09.16: "Miért választotta a NIST ezeket a görbéket? * A legtöbben megkérdeztük: biztonság * Aktuális NIST tervezési dokumentum: hatékonyság" ( [1] )
  14. Daniel J. Bernstein és Tanja Lange. Biztonságos görbék: biztonságos görbék kiválasztása elliptikus görbületű titkosításhoz.  (angol) . safecurves.cr.yp.to (2013. november 18.). Letöltve: 2013. december 20.
  15. Jevgenyij Zolotov . Snowden és elliptikus kriptokártya: A Bitcoin és a TOR gyanún felül áll, de mi a helyzet más projektekkel? , Computerra (2013. szeptember 16.). Letöltve: 2013. december 20.
  16. Dr Michael Scott, Backdoors in NIST elliptic curves Archiválva : 2013. december 20., a Wayback Machine , 2013. október 24.: "Maguk a görbéket Jerry Solinas javasolta, aki az NSA-nál dolgozott."
  17. Chalkin T.A. Zsdanov O.N. Elliptikus görbék alkalmazása a kriptográfiában.
  18. Zsdanov O.N., Zolotarev V.V. Az információk kriptográfiai védelmének módszerei és eszközei. 186 p.
  19. Ishmukhametov Sh.T. Faktorizációs módszerek természetes számokra.99 p.
  20. Bos et al, Elliptic Curve Cryptography in Practice // MSR-TR-2013-119, 2013. november

Linkek