Eliptické křivky a RSA

Podobné dokumenty
Šifrová ochrana informací věk počítačů PS5-2

Šifrová ochrana informací věk počítačů PS5-2

Pokročilá kryptologie

Karel Klouda c KTI, FIT, ČVUT v Praze 28. února, letní semestr 2010/2011

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

Problematika převodu zprávy na body eliptické křivky

Pokročilá kryptologie

Jak funguje asymetrické šifrování?

Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

Složitost a moderní kryptografie

Šifrová ochrana informací věk počítačů KS - 5

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

MPI - 5. přednáška. 1.1 Eliptické křivky

MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.

Čínská věta o zbytcích RSA

Miroslav Kureš. Aplikovaná matematika Ostravice workshop A-Math-Net Sít pro transfer znalostí v aplikované matematice

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Diskrétní logaritmus

RSA. Matematické algoritmy (11MA) Miroslav Vlček, Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. čtvrtek 21.

ElGamal, Diffie-Hellman

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky. 7.přednáška. Kryptosystémy veřejného klíče II

ALGEBRA. Téma 4: Grupy, okruhy a pole

RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01

příklad Steganografie Matematické základy šifrování šifrování pomocí křížů Hebrejské šifry

Informatika Ochrana dat

Kvantové algoritmy a bezpečnost. Václav Potoček

asymetrická kryptografie

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky Asymetrické kryptosystémy I

Matematika IV - 5. přednáška Polynomy

Modulární aritmetika, Malá Fermatova věta.

Věta o dělení polynomů se zbytkem

Šifrová ochrana informací věk počítačů PS5-1

C5 Bezpečnost dat v PC

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Charakteristika tělesa

Kryptografie založená na problému diskrétního logaritmu

Diffieho-Hellmanův protokol ustanovení klíče

Asymetrická kryptografie

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

MFF UK Praha, 22. duben 2008

Jihomoravske centrum mezina rodnı mobility. T-exkurze. Teorie c ı sel, aneb elektronicky podpis a s ifrova nı

1 Teorie čísel. Základní informace

Správa přístupu PS3-2

Modulární aritmetika, Malá Fermatova věta.

Úvod RSA Aplikace, související témata RSA. Ing. Štěpán Sem Festival Fantazie, Štěpán Sem

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.

Pomocný text. Polynomy

0.1 Úvod do lineární algebry

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

grupa těleso podgrupa konečné těleso polynomy komutativní generovaná prvkem, cyklická, řád prvku charakteristika tělesa

Matematika IV - 5. přednáška Polynomy

Počet kreditů: 5 Forma studia: kombinovaná. Anotace: Předmět seznamuje se základy dělitelnosti, vybranými partiemi algebry, šifrování a kódování.

SOFTWAROVÁ PODPORA VÝUKY KRYPTOSYSTÉMŮ ZALOŽENÝCH NA ELIPTICKÝCH KŘIVKÁCH

online prostředí, Operační program Praha Adaptabilita, registrační číslo CZ.2.17/3.1.00/31165.

Operace s maticemi. 19. února 2018

Matematické základy kryptografických algoritmů Eliška Ochodková

Komerční výrobky pro kvantovou kryptografii

Zavedení a vlastnosti reálných čísel

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

1 Mnohočleny a algebraické rovnice

Přínos teorie eliptických křivek k řešení moderních kryptografických systémů

4 Počítání modulo polynom

1 Mnohočleny a algebraické rovnice

Úvod do lineární algebry

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Poznámka. V některých literaturách se pro označení vektoru také používá symbolu u.

Operace s maticemi

Aritmetika s didaktikou I.

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra

Historie matematiky a informatiky Cvičení 2

Obsah. Protokol RSA. Protokol RSA Bezpečnost protokolu RSA. 5. a 6. přednáška z kryptografie

Matematika pro informatiku 2

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

Úvod. Karel Klouda c KTI, FIT, ČVUT v Praze 18. dubna, letní semestr 2010/2011

3. Aritmetika nad F p a F 2

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Nechť M je množina. Zobrazení z M M do M se nazývá (binární) operace

Generátory náhodných a

Diskrétní matematika 1. týden

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Základy elementární teorie čísel

Základy kryptologie. Kamil Malinka Fakulta informačních technologií

5. a 6. přednáška z kryptografie

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

1 Polynomiální interpolace

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

[1] x (y z) = (x y) z... (asociativní zákon), x y = y x... (komutativní zákon).

Testování prvočíselnosti

Základy elementární teorie čísel

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

6.1 Vektorový prostor

Struktura a architektura počítačů (BI-SAP) 5

Algebra 2 KMI/ALG2. Zpracováno podle přednášek prof. Jiřího Rachůnka a podle přednášek prof. Ivana Chajdy. slidy k přednáškám

Transkript:

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.