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] .
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.
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 ( ).
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 .
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 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:
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.
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.
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.
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 .
Tekintsük a , esetet , amely megfelel a görbének
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 .
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.
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.
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:
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 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] .
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. .
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é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
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 |
Az ECDSA (Elliptic Curve Digital Signature Algorithm) algoritmust ANSI X9F1 és IEEE P1363 szabványként fogadták el .
Az M üzenet aláírása egy számpár (r, s).
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] .