Přehled Katedra informatiky FEI VŠB TU Ostrava 11. února 2005
Přehled Část I: Matematický základ Část II: RSA Část III: Eliptické křivky Matematický základ 1 Základní pojmy a algoritmy Základní pojmy Složitost matematických operací Euklidův algoritmus
Přehled Část I: Matematický základ Část II: RSA Část III: Eliptické křivky RSA 2 Kryptosystém RSA Generování klíčů Příklad 3 Narušení systému RSA Trial Division Pollard ρ metoda
Přehled Část I: Matematický základ Část II: RSA Část III: Eliptické křivky RSA 2 Kryptosystém RSA Generování klíčů Příklad 3 Narušení systému RSA Trial Division Pollard ρ metoda
Přehled Část I: Matematický základ Část II: RSA Část III: Eliptické křivky Eliptické křivky 4 Kryptografické systémy na bázi eliptických křivek Eliptická křivka nad F q Sčítání Násobení Zakódování textu 5 Řešení diskrétního logaritmu nad eliptickou křivkou Pollard ρ metoda Porovnání eliptických křivek a RSA
Přehled Část I: Matematický základ Část II: RSA Část III: Eliptické křivky Eliptické křivky 4 Kryptografické systémy na bázi eliptických křivek Eliptická křivka nad F q Sčítání Násobení Zakódování textu 5 Řešení diskrétního logaritmu nad eliptickou křivkou Pollard ρ metoda Porovnání eliptických křivek a RSA
Matematický základ Část I Matematický základ
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Důležité pojmy použité v této prezentaci Kongruentní modulo a b mod m, a, b, m Z rozdíl a b je dělitelný číslem m Eulerova funkce ϕ(n) počet přirozených čísel nepřesahujících n nesoudělných s n ϕ(1) = 1 ϕ(p) = p 1 Značení velké O Pro libovolné funkce f, g : N N řekneme, že f (n) O(g(n)), právě tehdy, když platí ( k N )( n 0 N )( n n 0 ) : f (n) k g(n).
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Důležité pojmy použité v této prezentaci Kongruentní modulo a b mod m, a, b, m Z rozdíl a b je dělitelný číslem m Eulerova funkce ϕ(n) počet přirozených čísel nepřesahujících n nesoudělných s n ϕ(1) = 1 ϕ(p) = p 1 Značení velké O Pro libovolné funkce f, g : N N řekneme, že f (n) O(g(n)), právě tehdy, když platí ( k N )( n 0 N )( n n 0 ) : f (n) k g(n).
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Důležité pojmy použité v této prezentaci Kongruentní modulo a b mod m, a, b, m Z rozdíl a b je dělitelný číslem m Eulerova funkce ϕ(n) počet přirozených čísel nepřesahujících n nesoudělných s n ϕ(1) = 1 ϕ(p) = p 1 Značení velké O Pro libovolné funkce f, g : N N řekneme, že f (n) O(g(n)), právě tehdy, když platí ( k N )( n 0 N )( n n 0 ) : f (n) k g(n).
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Důležité pojmy použité v této prezentaci Grupa množina prvků, na které je definovaná binární operace uzavřená ( a, b)( 1 c)[a b = c] asociativní ( a, b, c)[(a b) c = a (b c)] jednotkový prvek ( e)( a)[a e = e a = a] inverzní prvek ( a)( b)[a b = b a = e] Pole množina F s operacemi násobení a sčítání asociativita a komutativita na obou operacích distributivnímu zákonu existence prvku 0 pro sčítání a prvku 1 pro násobení existence inverzního prvku pro sčítání a inverzního prvku pro násobení pro vše kromě 0
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Důležité pojmy použité v této prezentaci Grupa množina prvků, na které je definovaná binární operace uzavřená ( a, b)( 1 c)[a b = c] asociativní ( a, b, c)[(a b) c = a (b c)] jednotkový prvek ( e)( a)[a e = e a = a] inverzní prvek ( a)( b)[a b = b a = e] Pole množina F s operacemi násobení a sčítání asociativita a komutativita na obou operacích distributivnímu zákonu existence prvku 0 pro sčítání a prvku 1 pro násobení existence inverzního prvku pro sčítání a inverzního prvku pro násobení pro vše kromě 0
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Složitost bitových operací I. Sčítání Sečtení dvou k-bitových čísel vyžaduje k bitových operací. V desítkové soustavě O(log 2 k). 1 0 1 0 1 1 0 0 + 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 Násobení Při násobení k-místného dvojkového čísla l-místným vykonáme maximálně (l 1)(k + l 1) bitových operací. V desítkové soustavě O(log 2 n log 2 m). 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Složitost bitových operací I. Sčítání Sečtení dvou k-bitových čísel vyžaduje k bitových operací. V desítkové soustavě O(log 2 k). 1 0 1 0 1 1 0 0 + 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 Násobení Při násobení k-místného dvojkového čísla l-místným vykonáme maximálně (l 1)(k + l 1) bitových operací. V desítkové soustavě O(log 2 n log 2 m). 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Složitost bitových operací II. Dělení Při dělení k-místného dvojkového čísla l-místným dvojkovým číslem kde k l musíme vykonat v nejhorším případě (k l + 1) odčítání (l + 1) místných čísel. To je dohromady (k l + 1)(l + 1) bitových operací. 1 0 0 1 0 0 1 0 0 1 : 1 1 0 1 = 1 0 1 1 0 1-1 1 0 1 1 0 1 0 1-1 1 0 1 1 0 0 0 0-1 1 0 1 1 1 0 1-1 1 0 1 0
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Euklidův algoritmus Nejznámější algoritmus pro nalezení největšího společného dělitele Počet dělení nepřesáhne pětinásobek počtu cifer menšího čísla Bitová složitost algoritmu pro a > b je O(log 3 a). 81 = 1 57 + 24 57 = 2 24 + 9 24 = 2 9 + 6 9 = 1 6 + 3 6 = 2 3 + 0
Matematický základ Základní pojmy Složitost matematických operací Euklidův algoritmus Rozšířený Euklidův algoritmus Algoritmus může být rozšířen, aby našel také celá čísla x a y vyhovující rovnici ax + by = d Pro nesoudělná čísla můžeme najít inverzní prvek x z kongruence px 1 mod n Počítáme p i = p i 2 p i 1 q i 2 (mod n) krok 0: 26 = 1 15 + 11, p 0 = 0 krok 1: 15 = 1 11 + 4, p 1 = 1 krok 2: 11 = 2 4 + 3, p 2 = 0 1 1 mod 26 = 25 krok 3: 4 = 1 3, p 3 = 1 25 2 mod 26 = 24 mod 26 = 2 krok 4: 3 = 3 1 + 0, p 4 = 25 2 2 mod 26 = 21 p 5 = 2 21 1 mod 26 = 19 mod 26 = 7
Kryptosystém RSA Narušení RSA Část II RSA
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Základní informace o RSA Rivest, Shamir a Adleman Kryptosystém s veřejným klíčem Založen na obtížnosti faktorizace velkých čísel K vynásobení potřeba O(log 2 x log 2 y) bitových operací Opačná úloha je nepoměrně těžší
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Generování klíčů RSA Výběr náhodných prvočísel p a q Vypočtení součinu n = p q Náhodně vybereme e < ϕ(n) nesoudělné s ϕ(n) ϕ(n) = (p 1)(q 1) = n + 1 p q Veřejný klíč je dvojice (n, e) Vypočteme dešifrovací klíč d e d = 1 mod ϕ(n) Soukromý klíč je pak dvojice (n, d)
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Generování klíčů RSA Výběr náhodných prvočísel p a q Vypočtení součinu n = p q Náhodně vybereme e < ϕ(n) nesoudělné s ϕ(n) ϕ(n) = (p 1)(q 1) = n + 1 p q Veřejný klíč je dvojice (n, e) Vypočteme dešifrovací klíč d e d = 1 mod ϕ(n) Soukromý klíč je pak dvojice (n, d)
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Generování klíčů RSA Výběr náhodných prvočísel p a q Vypočtení součinu n = p q Náhodně vybereme e < ϕ(n) nesoudělné s ϕ(n) ϕ(n) = (p 1)(q 1) = n + 1 p q Veřejný klíč je dvojice (n, e) Vypočteme dešifrovací klíč d e d = 1 mod ϕ(n) Soukromý klíč je pak dvojice (n, d)
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Generování klíčů RSA Výběr náhodných prvočísel p a q Vypočtení součinu n = p q Náhodně vybereme e < ϕ(n) nesoudělné s ϕ(n) ϕ(n) = (p 1)(q 1) = n + 1 p q Veřejný klíč je dvojice (n, e) Vypočteme dešifrovací klíč d e d = 1 mod ϕ(n) Soukromý klíč je pak dvojice (n, d)
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Generování klíčů RSA Výběr náhodných prvočísel p a q Vypočtení součinu n = p q Náhodně vybereme e < ϕ(n) nesoudělné s ϕ(n) ϕ(n) = (p 1)(q 1) = n + 1 p q Veřejný klíč je dvojice (n, e) Vypočteme dešifrovací klíč d e d = 1 mod ϕ(n) Soukromý klíč je pak dvojice (n, d)
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Generování klíčů RSA Výběr náhodných prvočísel p a q Vypočtení součinu n = p q Náhodně vybereme e < ϕ(n) nesoudělné s ϕ(n) ϕ(n) = (p 1)(q 1) = n + 1 p q Veřejný klíč je dvojice (n, e) Vypočteme dešifrovací klíč d e d = 1 mod ϕ(n) Soukromý klíč je pak dvojice (n, d)
Kryptosystém RSA Narušení RSA Generování klíčů Příklad a dešifrování pomocí RSA Očíslování písmen abecedy zprávy (ASCII) Rozdělení na bloky jejichž číselné vyjádření označíme x 1 x n Šifra c bloku zprávy x se vypočítá vztahem c = x e mod n Dešifrování se provede vztahem x = c d mod n
Kryptosystém RSA Narušení RSA Generování klíčů Příklad a dešifrování pomocí RSA Očíslování písmen abecedy zprávy (ASCII) Rozdělení na bloky jejichž číselné vyjádření označíme x 1 x n Šifra c bloku zprávy x se vypočítá vztahem c = x e mod n Dešifrování se provede vztahem x = c d mod n
Kryptosystém RSA Narušení RSA Generování klíčů Příklad a dešifrování pomocí RSA Očíslování písmen abecedy zprávy (ASCII) Rozdělení na bloky jejichž číselné vyjádření označíme x 1 x n Šifra c bloku zprávy x se vypočítá vztahem c = x e mod n Dešifrování se provede vztahem x = c d mod n
Kryptosystém RSA Narušení RSA Generování klíčů Příklad a dešifrování pomocí RSA Očíslování písmen abecedy zprávy (ASCII) Rozdělení na bloky jejichž číselné vyjádření označíme x 1 x n Šifra c bloku zprávy x se vypočítá vztahem c = x e mod n Dešifrování se provede vztahem x = c d mod n
Kryptosystém RSA Narušení RSA Generování klíčů Příklad Příklad použití RSA při šifrování a dešifrování Zvolíme náhodná prvočísla p = 31 a q = 37 Spočítáme n = p q = 1147 a φ(n) = (p 1)(q 1) = 1080 Náhodně zvolíme e = 7, menší než ϕ(n) nesoudělné s ϕ(n) Vypočteme 7 d = 1 mod 1080 což dá d = 463 Rozdělíme zprávu do bloků menších než n, např. x = 920 Veřejným klíčem (1147, 7) šifrujeme: 920 7 mod 1147 = 352 Soukromým klíčem (1147, 463) dešifrujeme 352 463 mod 1147 = 920
Kryptosystém RSA Narušení RSA Trial Division Pollard rho 2 Kryptosystém RSA Generování klíčů Příklad 3 Narušení systému RSA Trial Division Pollard ρ metoda
Kryptosystém RSA Narušení RSA Trial Division Pollard rho Narušení bezpečnosti kryptografického systému RSA Bezpečnost spočívá ve složitosti faktorizace čísla n = p q Není vyloučené, že existuje algoritmus na faktorizaci, který má polynomiální složitost Nebylo dokázáno, že faktorizace šifrovacího modulu je ekvivalentní bezpečnosti systému Prozatimní pokusy o narušení založeny hlavně na faktorizaci
Kryptosystém RSA Narušení RSA Trial Division Pollard rho Faktorizace metodou pokusného dělení Nejjednodušší algoritmus pro faktorizaci Postupné dělení čísla n čísly 2, 3, 4,..., n Efektivnější dělit jen čísly 2, 3 a potom 6k 1, 6k + 1 pro k = 1, 2,... Vykonáme O( n) dělení prvočíly p < n, každé s binární složitostí O(log 2 p log 2 n)
Kryptosystém RSA Narušení RSA Trial Division Pollard rho Faktorizace metodou Pollard ρ Metoda Monte Carlo Výběrem libovolné nelineární funkce f s celočíselnými koeficienty (např. f (x) = x 2 + c, c 0, 2) Náhodně zvolíme počáteční hodnotu x 0 Spočítáme hodnoty posloupnosti x j+1 = f (x j ) mod n, j = 0, 1, 2,... Tato funkce bude pravděpodobně periodická Očekává se výskyt hodnot x j, x k x j x k mod n, n = p q, x j = x k mod p To znamená, že n.s.d.(x k x j, n) = p Urychlení porovnávání všech rozdílů pomocí redukovaného výběru k je h + 1 bitové číslo, j = 2 h 1 Binární složitost se odhaduje na O( 4 n log 3 2 n) bitových operací
Kryptosystém RSA Narušení RSA Trial Division Pollard rho Příklad metodoy Pollard ρ Faktorizujme číslo 8051 pomocí f (x) = x 2 + 1, x 0 = 1: Vypočítáme posloupnost x i : 1, 2, 5, 26, 677, 7474, 2839 k 1 2 3 4 5 6 h 0 1 1 2 2 2 j 0 1 1 3 3 3 Pak hledáme největší společný dělitel (x k x j, n): (2 1, 8051) = 1 (5 2, 8051) = 1 (26 2, 8051) = 1 (677 26, 8051) = 1 (7474 26, 8051) = 1 (2839 26, 8051) = 97
Kryptografický systém ECC faktorizace Část III Eliptické křivky
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu 4 Kryptografické systémy na bázi eliptických křivek Eliptická křivka nad F q Sčítání Násobení Zakódování textu 5 Řešení diskrétního logaritmu nad eliptickou křivkou Pollard ρ metoda Porovnání eliptických křivek a RSA
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Kryptografické systémy na bázi eliptických křivek Victor Miller a Neal Koblitz Analogie kryptosystémů s veřejným klíčem Systém založený na diskrétním logaritmu Problém diskrétního logaritmu nad eliptickou křivkou: ke dvěma bodům G a Y na eliptické křivce Y = kg nalézt celé číslo k Nevyčerpatelné množství konečných komutativních grup
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Definice eliptické křivky nad F q Algebraická struktura definová nad konečným polem F q q = p m kde p > 3 a x 3 + ax + b (kde a, b F q ) je kubický polynom bez vícenásobných kořenů y 2 = x 3 + ax + b q = 2 m q = 3 m y 2 + xy = x 3 + ax 2 + b y 2 = x 3 + ax 2 + bx + c Množina bodů (x, y), kde x, y F q vyhovují předcházejícím rovnicím spolu se samostatným prvkem označeným jako bod v nekonečnu O
Sčítání bodů I. Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Součet dvou bodů P a Q na eliptické křivce je definován takto: 1 Jestliže P je bod v nekonečnu O, pak P je O a P + Q je Q 2 Záporné P je bod se stejnou x-ovou souřadnicí, ale zápornou y-ovu souřadnicí P např. (x, y) = (x, y) 3 Jestliže body P a Q mají různé x-ové souřadnice přímka protínající tyto body protne křivku právě v jediném dalším bodě R. Součtem bodů P + Q je bod R. Body R a R se nazývají opačné 4 Jestliže Q = P (opačné body), pak definujeme P + Q = O. 5 Poslední možností je P = Q. Pak tečna ke křivce v bodě P protne křivku v jediném dalším bodě označeném jako R. Součet je pak definován jako P + Q = R
Kryptografický systém ECC faktorizace y 2 = x 3 + ax + b Eliptická křivka nad F q Sčítání Násobení Zakódování textu r with a single element denoted O called the ``point at infinity,'' which can be visualize t the Sčítání top andbodů bottomii. of every vertical line. The elliptic curve formula is slightly diffe ields. p 3 p 2 L p 1 p 4 = p 1 + p 2
Sčítání bodů III. Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Součet bodů P a Q se souřadnicemi (x 1, y 1 ) a (x 2, y 2 ) ( ) y2 y 2 1 x 3 = x 1 x 2 x 2 x 1 ( ) y2 y 1 y 3 = y 1 + (x 1 x 3 ) x 2 x 1 Pokud P = Q pak je α derivací dy/dx v bodě P ( ) 3x 2 2 x 3 = 1 + a 2x 1 2y 1 ( ) 3x 2 y 3 = y 1 + 1 + a (x 1 x 3 ) 2y 1
Násobení bodů Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Analogické ke sčítání dvou bodů na křivce k-tá mocnina v F q je analogií násobení bodu P E celým číslem k Metodou opakovaného zdvojování dosáhneme výsledku v O(log k log 3 q) bitových operacích Příklad: 100P = 2(2(P + 2(2(2(P + 2P))))
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Převedení textu na body eliptické křivky Neexistuje deterministický algoritmus, který by v polynomiálním čase (log q) zapsal velké množství bodů Řeší se pravděpodobnostním algoritmem, kde je pravděpodobnost selhání malá Vazba bodu na zprávu (x-ová souřadnice na celé číslo m) Pravděpodobnost chyby 1 z 2 k (používá se k = 30)
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Postup při převodu textu na body eliptické křivky Rozdělění zprávy na části m, kde 0 m M Pro konečné pole F q platí q > Mk Z daného m pro všechna j = 1, 2,..., k získáme prvek x z F q odpovídající mk + j Pro takové x spočítáme pravou stranu rovnice y 2 = f (x) = x 3 + ax + b Pokud jsme našli y takové, že y 2 = f (x) nastavíme bod P m = (x, y) Pokud ne, zvětšíme j o 1 a zkusíme znovu spočítat x Původní zprávu obnovíme vzorcem m = [( x 1)/k]
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Postup při převodu textu na body eliptické křivky Rozdělění zprávy na části m, kde 0 m M Pro konečné pole F q platí q > Mk Z daného m pro všechna j = 1, 2,..., k získáme prvek x z F q odpovídající mk + j Pro takové x spočítáme pravou stranu rovnice y 2 = f (x) = x 3 + ax + b Pokud jsme našli y takové, že y 2 = f (x) nastavíme bod P m = (x, y) Pokud ne, zvětšíme j o 1 a zkusíme znovu spočítat x Původní zprávu obnovíme vzorcem m = [( x 1)/k]
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Postup při převodu textu na body eliptické křivky Rozdělění zprávy na části m, kde 0 m M Pro konečné pole F q platí q > Mk Z daného m pro všechna j = 1, 2,..., k získáme prvek x z F q odpovídající mk + j Pro takové x spočítáme pravou stranu rovnice y 2 = f (x) = x 3 + ax + b Pokud jsme našli y takové, že y 2 = f (x) nastavíme bod P m = (x, y) Pokud ne, zvětšíme j o 1 a zkusíme znovu spočítat x Původní zprávu obnovíme vzorcem m = [( x 1)/k]
Kryptografický systém ECC faktorizace Eliptická křivka nad F q Sčítání Násobení Zakódování textu Postup při převodu textu na body eliptické křivky Rozdělění zprávy na části m, kde 0 m M Pro konečné pole F q platí q > Mk Z daného m pro všechna j = 1, 2,..., k získáme prvek x z F q odpovídající mk + j Pro takové x spočítáme pravou stranu rovnice y 2 = f (x) = x 3 + ax + b Pokud jsme našli y takové, že y 2 = f (x) nastavíme bod P m = (x, y) Pokud ne, zvětšíme j o 1 a zkusíme znovu spočítat x Původní zprávu obnovíme vzorcem m = [( x 1)/k]
Kryptografický systém ECC faktorizace Massey-Omura I. Eliptická křivka nad F q Sčítání Násobení Zakódování textu bodů P m pevně danné eliptické křivky E nad F q Počet bodů N na E byl spočítán a je veřejně znám Každý uživatel systému tajně zvolí náhodné číslo e mezi 1 a N, takové že n.s.d.(e, N) = 1 spočítá inverzní d = e 1 mod N takové, že de 1 mod N
Kryptografický systém ECC faktorizace Massey-Omura II. Eliptická křivka nad F q Sčítání Násobení Zakódování textu Alice chce poslat zprávu P m Bobovi: 1 Alice pošle Bobovi bod e A P m 2 Bob vynásobí bod svým e B a pošle e B e A P m zpět Alici 3 Alice rozluští část zprávy vynásobením bodu e B e A P m číslem d A 4 Protože d A e A 1 mod N, získá bod e B P m, který Alice vrátí Bobovi 5 Bob si může zprávu přečíst po vynásobení bodu e B P m číslem d B
Kryptografický systém ECC faktorizace Massey-Omura II. Eliptická křivka nad F q Sčítání Násobení Zakódování textu Alice chce poslat zprávu P m Bobovi: 1 Alice pošle Bobovi bod e A P m 2 Bob vynásobí bod svým e B a pošle e B e A P m zpět Alici 3 Alice rozluští část zprávy vynásobením bodu e B e A P m číslem d A 4 Protože d A e A 1 mod N, získá bod e B P m, který Alice vrátí Bobovi 5 Bob si může zprávu přečíst po vynásobení bodu e B P m číslem d B
Kryptografický systém ECC faktorizace Massey-Omura II. Eliptická křivka nad F q Sčítání Násobení Zakódování textu Alice chce poslat zprávu P m Bobovi: 1 Alice pošle Bobovi bod e A P m 2 Bob vynásobí bod svým e B a pošle e B e A P m zpět Alici 3 Alice rozluští část zprávy vynásobením bodu e B e A P m číslem d A 4 Protože d A e A 1 mod N, získá bod e B P m, který Alice vrátí Bobovi 5 Bob si může zprávu přečíst po vynásobení bodu e B P m číslem d B
Kryptografický systém ECC faktorizace Massey-Omura II. Eliptická křivka nad F q Sčítání Násobení Zakódování textu Alice chce poslat zprávu P m Bobovi: 1 Alice pošle Bobovi bod e A P m 2 Bob vynásobí bod svým e B a pošle e B e A P m zpět Alici 3 Alice rozluští část zprávy vynásobením bodu e B e A P m číslem d A 4 Protože d A e A 1 mod N, získá bod e B P m, který Alice vrátí Bobovi 5 Bob si může zprávu přečíst po vynásobení bodu e B P m číslem d B
Kryptografický systém ECC faktorizace Massey-Omura II. Eliptická křivka nad F q Sčítání Násobení Zakódování textu Alice chce poslat zprávu P m Bobovi: 1 Alice pošle Bobovi bod e A P m 2 Bob vynásobí bod svým e B a pošle e B e A P m zpět Alici 3 Alice rozluští část zprávy vynásobením bodu e B e A P m číslem d A 4 Protože d A e A 1 mod N, získá bod e B P m, který Alice vrátí Bobovi 5 Bob si může zprávu přečíst po vynásobení bodu e B P m číslem d B
Kryptografický systém ECC faktorizace Pollard rho Porovnání 4 Kryptografické systémy na bázi eliptických křivek Eliptická křivka nad F q Sčítání Násobení Zakódování textu 5 Řešení diskrétního logaritmu nad eliptickou křivkou Pollard ρ metoda Porovnání eliptických křivek a RSA
Kryptografický systém ECC faktorizace Pollard rho Porovnání Pollard ρ metoda pro diskrétní logaritmus I. Grupa G je rozdělena na tři množiny S 1, S 2, S 3 přibližně stejné velikosti. Dále definuje posloupnost x 1, x 2, jako: β x i, pro x i S 1 x i+1 = x 2 i, pro x i S 2 α x i, pro x i S 3 α je v tomto případě generátor a β číslo diskrétního logaritmu, které se snažíme zjistit. Tato posloupnost pak definuje dvě posloupnosti celých čísel a i a b i odpovídající x i = α a i β b i.
Kryptografický systém ECC faktorizace Pollard rho Porovnání Pollard ρ metoda pro diskrétní logaritmus II. a i+1 = b i+1 = Kde n je velikost grupy a a 0 = b 0 = 0 a i mod n, pro a i S 1 2a i mod n, pro a i S 2 a i + 1 mod n, pro a i S 3 b i + 1 mod n, pro b i S 1 2b i mod n, pro b i S 2 b i mod n, pro b i S 3
Kryptografický systém ECC faktorizace Pollard rho Porovnání Pollard ρ metoda pro diskrétní logaritmus III. Pomocí Floydova algoritmu k nalezení cyklu nalezneme dva prvky grupy x i a x 2i takové, že x i = x2i Platí α a i β b i = α a 2i β b 2i Z čehož dostáváme β b i b 2i = α a 2i a i Logaritmováním získáme (b i b 2i ) log α β (a 2i a i )(mod n) Z této rovnice rychle získáme diskrétní logaritmus log α β
Kryptografický systém ECC faktorizace Pollard rho Porovnání Bezpečnost eliptických křivek a systému RSA Počítání diskrétního logaritmu nad eliptickou křivkou je daleko méně efektivní než faktorizace nebo počítání klasických diskrétních logaritmů Kratší délka klíče může vést k nižším paměťovým nárokům a ke zvýšení výkonu ECC s délkou klíče 160 bitů poskytují stejnou bezpečnost jako RSA s 1024 bitovým klíčem Nelze jednoduše porovnat rychlost, protože na různé systémy se využívají odlišné typy optimalizací
Kryptografický systém ECC faktorizace Pollard rho Porovnání Rychlost RSA a eliptických křivek Kryptosystémy eliptických křivek jsou rychlejší než odpovídající systémy založené na diskrétním logaritmu. Kdy jsou rychlejší systémy eliptických křivek: podepisování dešifrování Kdy jsou rychlejší systémy RSA: ověřování podpisu zašifrovávání
Kryptografický systém ECC faktorizace Pollard rho Porovnání Porovnání rychlostí faktorizace Žádný algoritmus pro počítání diskrétního logaritmu nemůže být rychlejší než Pollard ρ metoda (tj. O( n)) Pollard ρ metoda pro faktorizaci čísla n má složitost O( 4 n log 3 2 n) Nejrychlejší metoda pro rozbití RSA pomocí General Number Field Sieve Method má složitost O(e c ln n 1 3 ln(ln n) 2 3 ) Symetrická šifra Eliptické křivky RSA 80 163 1024 128 283 3072 192 409 7680 256 571 15360 Tabulka: Délky klíčů RSA a ECC
Kryptografický systém ECC faktorizace Pollard rho Porovnání Literatura N. Koblitz, A Course in Number Theory and Cryptography, Springer, 1994. O. Grošek, Š. Porubský, Šifrovanie, Grada, 1992. IEEE Computer, 29, (2), (Feb), 1996. V. Gupta, S. Gupta, D. Stebila, Performance Analysis of Elliptic Curve Cryptography for SSL WiSE 02: Proceedings of the ACM workshop on Wireless security, ACM Press, 2002. E. Ochodková, Prínos teorie eliptických krivek k rešení moderních kryptografických systému, 2003. A. J. Menezes, P. C. van Oorschot, S. A. Vanstone, Handbook of Applied Cryptography, CRC Press, 2001, http://cacr.math.uwaterloo.ca/hac/. M. J. O. Saarinen, Cryptanalysis of public-key algorithms, 2004, http://www.tcs.hut.fi/studies/t-79.159/2004/ slides/l6.pdf.