380 likes | 667 Views
Algoritmus ECC. KOMUNIKAČNÁ BEZPEČNOSŤ Marek Lančarič E30. OBSAH. Úvod Autori Matematický základ - Eliptické krivky nad reálnymi číslami - Eliptické krivky nad konečným bodom GF(p) - Eliptické krivky nad konečným binárnym poľom GF(2 n )
E N D
Algoritmus ECC KOMUNIKAČNÁ BEZPEČNOSŤ Marek Lančarič E30
OBSAH • Úvod • Autori • Matematický základ - Eliptické krivky nad reálnymi číslami - Eliptické krivky nad konečným bodom GF(p) - Eliptické krivky nad konečným binárnym poľom GF(2n) - Diskrétny logaritmus v eliptických krivkách • Výmena tajného kľúča na báze ECC • Šifrovanie na báze ECC • Dešifrovanie na báze ECC
ÚVOD • Kyptografia na báze eliptických kriviek ECC (EllipticCurveCryptography) je novým perspektívnym smerom v modernej kryptografii. Jej hlavnou prednosťou v porovnaní s existujúcimi kryptografickými systémami a algoritmami (napr. RSA) je to, že umožňuje dosiahnuť rovnakú kryptografickú bezpečnosť pri menšej dĺžke kľúča. • Použitie eliptických kriviek v kryptogafii navrhol nezávisle NealKoblitz a Victor S. Miller v roku 1985-6. • Systémy na báze ECC sa stali súčasťou viacerých kryptografických štandardov a predstavujú alternatívu k systémom na báze RSA aj DSA, pričom hlavnou výhodou systémov ECC je väčšia rýchlosť a menšie nároky na technické prostriedky
Neal I. koblitz • 1948 USA • Štúdium: Harvardská a Princentonská univerzita • Pôsobenie: profesor matematiky na Univerzite vo Woshingtone, profesor aplikovanej kryptografie na univerzite Waterloo (Kanada) • Publikoval použitie eliptických kriviek v roku 1985
Victor s. Miller • 1947 New York • Štúdium: Kolumbijská a Harvardská univerzita • Výskum komunikácie v Princetone • Pôsobenie: pôsobil ako profesor matematiky a zúčastnil sa aj na vývoji IBM 801 • Publikáciu o využití eliptických kriviek v kryptografii vydal až v roku 1986
Eliptické krivky nad reálnymi číslami • Eliptické krivky sú špeciálnou triedou kubických kriviek. Názov eliptické krivky sa zaužíval preto, lebo kubické rovinné funkcie sa v minulosti používali k výpočtu obvodu elipsy. • Eliptická krivka je opísaná rovnicou: y2=x3+ax+b • Definícia eliptickej krivky zahŕňa tiež špeciálny bod O, ktorý sa nazýva bod v nekonečne, alebo nulový bod.
y2=x3-x+1 • a=-1, b=1
Eliptické krivky nad reálnymi číslami Geometrická interpretácia sčítania • Musí platiť: 4a3+27b2≠0 • Geometrické sčítanie je formulované : ak sčítame tri body eliptickej krivky ležiace na jednej priamke, ich súčet je rovný O. Z definície vyplýva: • Bod O slúži ako neutrálny prvok a teda platí O=-O resp. P-O=Pak P≠O • Opačný bod k bodu P je bod –P ktorý má rovnakú súradnicu x ale opačnú hodnotu y tj. –y Potom platí že opačný bod k bodu P(x,y) je bod –P(x,-y). Body P a –P ležia na vertikálnej priamke a platí P+(-P)=O • Sčítanie dvoch rôznych bodov P a Q sa realizuje tak že bodmi P a Qpreložíme priamku, ktorej tretí priesečník s eliptickou krivkou bude –R. Sčítanie dvoch bodov je P+Q=R. Kde Rje symetrickým bodom k bodu –R podľa osi x. • Geometrickú interpretáciu pravidla možno aplikovať aj na symetrické body P+(-P)=O.Uvedené body možno spojiť vertikálnou krivkou ktorá pretne eliptickú krivku v nekonečne čiže v bode O.
Eliptické krivky nad reálnymi číslami Algebraická interpretácia sčítania • Ak platí že R=P+Q, potom súradnice bodu R=(xR,yR) možno určiť zo vzťahov • Kde s je smernica priamky spájajúcej body Q a P • Ak sa sčítavajú dva rovnaké body R=P+P potom pre smernicu s platí
príklad • Sčítajte dva body P(1,1) a Q(0,-1) ktoré ležia na eliptickej krivke zadanej parametrami a= -1, b=1.
riešenie P+Q=R(3,-5)
Eliptické krivky nad konečným poľom GF(p) • Prvočíselné eliptické krivky - GF(p) • Binárne eliptické krivky - GF(2n) • Prvočíselné eliptické krivky nad konečným poľom GF(p) sú opísané kubickou rovnicou, v ktorej premenné a koeficienty nadobúdajú hodnoty z množiny celých čísel v rozsahu od0 po (p-1). Operácie sa realizujú modulop,sú vhodnejšie pre softvérové aplikácie. y2mod p =(x3+ax+b) modp
Eliptické krivky nad konečným bodom GF(p) • Rovnica y2mod p =(x3+ax+b) modpje splnená napr. pre hodnoty a=1, b=1, x=6, y=4 a p=23 pretože platí y2mod p =(x3+ax+b) modp 42mod23 =(63+6+1) mod23 16mod23 = 223mod23 16 = 16 • Pre množinu E23(1,1) je potrebné uvažovať iba nezáporné celé čísla x,y z kvadrantu od (0,0) až (p-1, p-1), ktoré sú výsledkom operácie modp, teda x, y patrí {0,1,2,...,p-1}.
Eliptické krivky nad konečným bodom GF(p) • Zoznam bodov, ktoré tvoria množinu E23(1,1)
Eliptické krivky nad konečným bodom GF(p) • Pravidlá sčítania nad množinou Ep(a,b) zodpovedajú pravidlám, ktoré boli definované pre eliptické krivky nad reálnymi číslami. Pre všetky body P, Q patrí Ep (a,b) platí: • P+O=P • Ak P=(xP,yP) a -P=(xP,-yP) potom P+(-P)=Oa-P je opačný bod k bodu P • Ak P=(xP,yP) a Q=(xQ,yQ) pričom P≠-Q, potom P+Q=R=(xR,yR) a platí • Násobenie bodu eliptickej krivky skalárom je definované ako opakované sčítanie
príklad • Realizujte viacnásobné sčítanie rovnakého bodu P=(xP,yP)=(13,7) na eliptickej krivke Ep=(a,b)=(1,1), ktorá je daná rovnicou y2 =x3+x+1 nad GF(23). • Výpočet súčtu P+P=2P=R, pričom R=(xR,yR) sa realizuje podľa vzťahov pre výpočet xR, yRa s pre P=Q
príklad Výpočet súčtu P+P+P=3P=2P+P=(5,4)+(13,7)=R, sa realizuje podľa vzťahov pre výpočet xR, yRa s pre P≠Q, pričom Q=2P=(xQ,yQ)
Príklad • Opakovaným pripočítavaním bodov možno analogicky vypočítať súradnice bodov 4P, 5P, 6P a 7P ktoré sú uvedené v nasledujúcej tabuľke
Eliptické krivky nad konečným poľom GF(2n) • Konečné pole GF(2n) pozostáva z 2n prvkov spolu s operáciami sčítania a násobenia, ktoré môžu byť definované nad polynómami. Pre eliptické krivky nad poľom GF(2n) sa používajú kubické rovnice, v ktorých koeficienty a premenné majú hodnoty z konečného poľa GF(2n), a v ktorých sa realizujú podľa pravidiel aritmetiky v GF(2n) • Kubická rovnica eliptických kriviek nad poľom GF(2n) sa odlišuje od rovnice eliptických kriviek nad poľom GF(p) y2+xy =x3+ax+b • Kde premenné x,y a koeficienty a,b sú prvkami konečného poľa GF(2n) a operácie sú realizované v GF(2n).
Eliptické krivky nad konečným poľom GF(2n) • Nad množinou E2n(a,b) možno definovať abelovskú grupu, pričom všetky body P,Q patrí E2n(a,b) platia pre sčítanie tieto pravidlá • P+O=P • Ak P=(xP,yP), potom P+(xP,xP+yP)=O. Bod(xP,xP+yP) je opačný bod k bodu P a označuje sa ako -P • Ak P=(xP,yP) a Q=(xQ,yQ) pričom P≠-Q a P≠Q, potom pre súčet P+Q=R a R=(xR,yR) platí
Eliptické krivky nad konečným poľom GF(2n) • Ak P=(xP,yP), potom R=P+P=2P platí • Výber prvkov konečného poľa GF(2n) možno realizovať 3 spôsobmi • Štandardná resp. polynominálna báza (prvky sú určené binárnymi polynómami menšieho stupňa než n a operácie sú realizované moduloireducibilný polynóm stupňa n) • Optimálna nomálna báza (prvky sú reprezentované ako lineárne kombinácie prvkov množiny kde je vhodne zvolený prvok poľa) • Reprezentácia telesom typu „veža“ (v tejto reprezentácii sú rvky určené polynómami nadGF(2r), kde r je deliteľom n
Diskrétny logaritmus v eliptických krivkách • Využitie náročnosti výpočtu diskrétneho logaritmu je využívaná aj v tomto odvetví kryptografie. Ak pre určitý bod P na eliptickej krivke postupne vypočítame body 2P, 3P, 4P atd. dostaneme postupnosť rôznych bodov na tejto eliptickej krivke. Po určitom počte n krokov postupnosť dosiahne pod O. V ďalšom kroku sa realizuje výpočet nP+P=O +P=P a postupnosť sa opakuje. • Najmenšie číslo n pre ktoré platí nP=Osa nazýva rád bodu P • Rád eliptickej krivky: je počet bodov na krivke. Rád každého bodu P delí rád krivky. V uvedenom prípade je počet bodov krivky 28, takže aj rád eliptickej krivky je 28. • Šifrovanie a podpisovanie v kryptografii je založené na náročnosti výpočtu diskrétneho logaritmu. A to vypočítať tajné číslo n zo známych bodov P,Q tak aby Q=n.P. Pre malé n je to úloha triviálna avšak pre veľké n (2256 ) úloha obťažná.
Výmena tajného kľúča na báze ECC • Výmena tajného kľúča medzi účastníkom AaB: • Účastník A zvolí celé číslonA. Číslo nA<n. číslo nA je verejným kľúčom účastníka A, ktorý potom vygeneruje svoj verejný kľúč. Verejný kľúč je bod na krivke Eq(a,b) QA=nAP • Účastník B analogicky zvolí celé číslo nB<n. a vygeneruje svoj verejný kľúč. QB=nBP • Po vzájomnej výmene QAa QBúčastník A vypočíta tajný kľúč K použitím vzťahu K=nAQBa účastník B vypočíta rovnaký tajný kľúč K použitím vzťahu K=nBQA. Obaja účastníci získajú rovnaký tajný kľúč K, pretože platí: • nA.QB=nA.(nB.P)=nA.nB.P=nB.nA.P=nB.(nA.P)=nB.QA • Na získanie kľúča je potrebné zo známych hodnôt QAa QBurčiť nAa nB, čo je pre veľké hodnoty nAa nB obťažné.
príklad • Vypočítajte tajný kľúč K s použitím eliptickej krivky E23(1,1) a bodu P (0,1) ak je hodnota nA= 3 a nB=2. • bod P (0,1) má rád n=28 takže je splnená podmienka nA<n aj nB<n
riešenie QB=nBP=2P=P+P • Pozn. hodnota 1/2 je multiplikatívna inverzia je rovná 2-1mod23=11 xR=(s2-xP-xQ) mod p = (112 – 0 - 0 ) mod23 = 121 mod23 =6 yR=(s(xP-xR)-yP) mod p = (11(6) -1) mod23 = 65 mod23 = 19 QB(6,19)
riešenie QA=nAP=3P=P+2P P(0,1),QB(6,19) xR=(s2-xP-xQ) mod p = (9 - 0 – 6)mod23 = 3 yR=(s(xP-xR)-yP) mod p = (3( -0 – 3 ) – 1 )mod23= 13 QA(3,13) Výpočet tajného kľúča K: K=nAQB= 3QB =K(7,11) K=nBQA= 2QA =K(7,11)
Šifrovanie na báze ecc • Šifrovanie na báze ECC sa dá realizovať viacerými postupmi. Uvedený postup patrí medzi najjednoduchšie. Predpokladáme že otvorený text m je postupnosť symbolov otvoreného textu, ktorá sa interpretuje ako postupnosť súradníc x,y bodov Pm na zvolenej eliptickej krivke. Na priradenie symbolov k bodom Pm existuje viacero priamych algoritmov. • Ak účastník A posiela správu účastníkovi B, tak účastník A zvolí náhodné kladné číslo k a generuje symbol zašifrovaného textu Cm ,ktorý je reprezentovaný dvojicou bodov podľa vzorca Cm={k.P,Pm+kQB}
Dešifrovanie na báze ecc • Pri prijatí šifrovaného symbolu Cm účastníkom B, účastník B vynásobí prvý z dvojice bodov, teda k.P svojim súkromným kľúčom nB a túto hodnotu odčíta od druhého bodu Pm+kQB – nB(k.P)= Pm+k(nBP)– nB(k.P)=Pm
záver • Primárnou výhodou kryptosystému na báze eliptických kriviek je ich veľká kryptografická bezpečnosť vzhľadom k danej veľkosti kľúča. • Významne kratšia dĺžka kľúčov (napr. oproti RSA) vedie ku kratším certifikátom i menším parametrom systému a teda i k väčšej výpočtovej efektívnosti algoritmov. • Druhá výhoda je v tom, že fakticky všetky už známe použitie v systémoch na báze diskrétneho logaritmu (kryptografické protokoly, ElGamalovpodpis atd.) je možné previesť do systémov na báze eliptických kriviek.
literatúra • [1] Levický, D.: Kayptografia v informačnej a sieťovej bezpečnosti: Košice, 2010. ISBN 978-80-8086-163-6 • [2] Křivka, P.: Kryptografické systémy nad eliptickými křivkami: Brno 2009 • [3] Svoboda, P.: Systémy elektronických podpisú: Brno 2006 • [4]<http://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography>