Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych

Podobne dokumenty
Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Przykładowe zadania z teorii liczb

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Praca domowa - seria 6

Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku

Matematyka dyskretna

Matematyka dyskretna

Wybrane zagadnienia teorii liczb

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Spis treści. Przedmowa... 9

Parametry systemów klucza publicznego

Bezpieczeństwo systemów komputerowych

Matematyka dyskretna

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Matematyka dyskretna

Algorytm faktoryzacji Petera Shora dla komputera kwantowego

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Algorytmy i struktury danych. Wykład 4

Algebra i jej zastosowania - konspekt wykładu

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Wykład IV. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Sumy kwadratów kolejnych liczb naturalnych

VI. Równania różniczkowe liniowe wyższych rzędów

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Kongruencje twierdzenie Wilsona

MADE IN CHINA czyli SYSTEM RESZTOWY

Dwa równania kwadratowe z częścią całkowitą

Pierścień wielomianów jednej zmiennej

Uwaga 1.2. Niech (G, ) będzie grupą, H 1, H 2 < G. Następujące warunki są równoważne:

i=0 a ib k i, k {0,..., n+m}. Przypuśćmy, że wielomian

1.1 Definicja. 1.2 Przykład. 1.3 Definicja. Niech G oznacza dowolny, niepusty zbiór.

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

Algebra i jej zastosowania - konspekt wykładu

Algorytmy w teorii liczb

1. Określenie pierścienia

Ciała skończone. 1. Ciała: podstawy

Ataki na algorytm RSA

Algorytm Euklidesa. ZADANIE 1. Oblicz korzystając z algorytmu Euklidesa: (a) NWD(120, 195), (b) NWD(80, 208), (c) NWD(36, 60, 90),

1 Określenie pierścienia

Liczby pierwsze na straży tajemnic

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Całki nieoznaczone. 1 Własności. 2 Wzory podstawowe. Adam Gregosiewicz 27 maja a) Jeżeli F (x) = f(x), to f(x)dx = F (x) + C,

Grzegorz Bobiński. Matematyka Dyskretna

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

ALGEBRA Z GEOMETRIĄ CIAŁO FUNKCJI WYMIERNYCH

Grzegorz Bobiński. Matematyka Dyskretna

Rozwiązania, seria 5.

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Rozdział 1. Zadania. 1.1 Liczby pierwsze. 1. Wykorzystując sito Eratostenesa wyznaczyć wszystkie liczby pierwsze mniejsze niż 200.

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

ALGEBRA Z GEOMETRIĄ PIERŚCIEŃ WIELOMIANÓW

Wstęp do Rachunku Prawdopodobieństwa, IIr. WMS

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

= b i M i [x], gdy charf = p, to a i jest pierwiastkiem wielomianu x n i

Matematyka dyskretna

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 13

Zadania do samodzielnego rozwiązania

0.1 Pierścienie wielomianów

Algorytmy asymetryczne

Informatyka Stosowana. a b c d a a b c d b b d a c c c a d b d d c b a

Zarys algorytmów kryptograficznych

Pierwiastki pierwotne, logarytmy dyskretne

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność. (c.d.

Algebra i jej zastosowania - konspekt wykładu

Krzywe Freya i Wielkie Twierdzenie Fermata

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

jest ciągiem elementów z przestrzeni B(R, R)

14. Wykład 14: Grupa Galois wielomianu. Zasadnicze twierdzenia teorii Galois. Rozszerzenia rozwiązalne, cykliczne i abelowe

Copyright by K. Trybicka-Francik 1

Zasada indukcji matematycznej

Weryfikacja hipotez statystycznych

B jest liniowo niezależny V = lin (B) 1. Układ pusty jest bazą przestrzeni trywialnej {θ}. a i v i = i I. b i v i, (a i b i ) v i = θ.

Baza i stopień rozszerzenia.

Paweł Gładki. Algebra. pgladki/

Twierdzenie o liczbach pierwszych i hipoteza Riemanna

Ćwiczenia z teoria liczb, ciąg dalszy (pt 15 maja) Matematyka Dyskretna

Generowanie liczb o zadanym rozkładzie. ln(1 F (y) λ

Wyk lad 10 Przestrzeń przekszta lceń liniowych

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Elementy teorii liczb. Matematyka dyskretna

Przestrzeń unitarna. Jacek Kłopotowski. 23 października Katedra Matematyki i Ekonomii Matematycznej SGH

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

1. Wykład NWD, NWW i algorytm Euklidesa.

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Funkcje. Oznaczenia i pojęcia wstępne. Elementy Logiki i Teorii Mnogości 2015/2016

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Matematyka dyskretna

Wykład 10. Stwierdzenie 1. X spełnia warunek Borela wtedy i tylko wtedy, gdy każda scentrowana rodzina zbiorów domkniętych ma niepusty przekrój.

Transkrypt:

Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych Tomasz Stroiński 23.06.2014 Po co faktoryzować tak duże liczby? System RSA Działanie systemu RSA Każdy użytkownik wybiera duże liczby pierwsze p, q. Użytkownik wykonuje proste mnożenie n = pq Znając rozkład n na czynniki użytkownik wylicza ϕ(n) = (p 1)(q 1) = n + 1 p q Użytkownik wybiera losowo liczbę całkowitą e z przedziału (1, ϕ(n)), względnie pierwszą z ϕ(n) Użytkownik wylicza d := e 1 mod ϕ(n) Klucz szyfrujący (n, e) publikuje się, natomiast klucz deszyfrujący (n, d) pozostawia w tajemnicy. Wiadomość M szyfrujemy do postaci szyfrogramu C := M e (mod n) Odzyskanie wiadomości M z szyfrogramu C polega na policzeniu M = C d (mod n) Uwagi: Losowość wyboru liczby e jest osobnym zagadnieniem kryptograficznym Podobnie jak wybór przekształcenia wiadomości stworzonej na podstawie alfabetu na system liczbowy Bezpieczeństwo tego systemu opiera się na trudności w faktoryzacji liczby n Liczby n i e podawane są do publicznej wiadomości, więc obliczenie d i odszyfrowanie wiadomości przy znajomości faktoryzacji liczby n nie jest problemem. Bezpieczeństwo RSA RSA Security ogłasza RSA Factoring Challenge (1991) i publikuje listę liczb RSA Kolejne osiągnięcia (sfaktoryzowane liczby) wpływają na długość używanych kluczy RSA Security zamyka konkurs (2007) uznając, że istnieją lepsze metody sprawdzania bezpieczeństwa algo- 1

rytmów, których podstawą jest trudność faktoryzacji dużych liczb pierwszych. W 2009 roku następuje faktoryzacja liczby RSA-768 za pomocą algorytmu opartego na metodzie sita ciała liczbowego Jest to największa liczba RSA sfaktoryzowana do tej pory (publikacja - eprint.iacr.org/2010/006.pdf) Jak wykonać taką faktoryzację? Idea Szukamy x ±y (mod n), aby x 2 y 2 (mod n) Wtedy nwd(x y, n) jest nietrywialnym dzielnikiem n Metoda ułamków łańcuchowych Wybieramy redukty xi y i z ułamka łańcuchowego n Tworzymy Q i = x i 2 ny i 2, wtedy Q i < 2 n Wybieramy gładkie Q i Wybieramy zbiór indeksów I tak, aby Π i I Q i był kwadratem pewnej liczby Niech y 2 = Π i I Q i Wtedy (Π i I x i ) 2 y 2 (mod n) jest poszukiwaną kongruencją Metoda sita kwadratowego Wybieramy wielomian Q(X) = X 2 n Wybieramy x spełniające dla pewnego M > 0 warunek x n < M Mamy wtedy, że Q(x) jest niewiele większa od 2M n Wartości Q(x) mogą być większe niż Q i dla metody ułamków łańcuchowych, lecz gładkość można sprawdzać korzystając z sita. Dla gładkich Q(x) konstruujemy taki podzbiór argumentów S, aby produkt Π x S Q(x) był kwadratem Oznaczmy y 2 = Π x S Q(x) Wtedy (Π x S x) 2 y 2 (mod n) jest poszukiwaną kongruencją 2

Wydobycie rozkładu n Konstruujemy przekształcenie φ : Z Z Z/nZ Z/nZ dla metody ułamka łańcuchowego (x 2 i, x2 i ny2 i ) φ (x 2 i, x2 i ) dla metody sita kwadratowego (x 2, x 2 n) φ (x 2, x 2 ) Przy odrobinie szczęścia φ(x, y) / D := {(x, ±x) : x Z/nZ} Metoda sita ciała liczbowego Powyższe metody potrzebują wielu wartości Q(x), bądź Q i aby uzyskać odpowiednią liczbę gładkich wartości Metoda sita ciała liczbowego potrzebuje do tego znacznie mniej wartości Idea Tworzymy analogiczne przekształcenie φ : Z Z[α] Z/nZ Z/nZ Działamy teraz na (x 2, β 2 ) Z Z[α] Otrzymujemy kongruencję x 2 φ(β) 2 (mod n) Rozwinięcie metody Wykorzystamy normę N : Q(α) Q, spełniającą dla x Z[α] warunek N(x) = #(Z[α]/xZ[α]) Natomiast dla elementu x = a bα Q(α), przy f(x) = d i=0 c ix i N(a bα) = b d f( a b ) = d i=0 c ia i b d i Tworzymy homomorfizm φ : Z[α] Z/nZ, aby φ(1) = 1 (mod n) oraz φ(α) = m (mod n), gdzie m jest pierwiastkiem wielomianu (f mod n) Jeżeli wybierzemy f i będziemy poszukiwać odpowiedniego m, będzie to zdecydowanie trudniejsze niż obranie m Wybieramy m = n 1 d i zapisujemy n w bazie (1, m,..., m d ), czyli n = d i=0 c im i Wtedy f(x) = d i=0 c ix i jest odpowiednim wielomianem, który spełnia f(m) = n, co daje f(m) 0 (mod n) Określamy φ : Z Z[α] Z/nZ Z/nZ zachowujące własności jak wyżej Wtedy φ(a bm, a bα) jest postaci (x, x) Poszukujemy teraz zbioru S zawierającego takie pary (a, b), aby nwd(a, b) = 1 oraz by 3

(*) Π (a,b) S (a bm) był kwadratem w Z oraz (**) Π (a,b) S (a bα) był kwadratem w Z[α] Niech zatem Π (a,b) S (a bm) = y 2, a Π (a,b) S (a bα) = β 2 oraz x = φ(β) Wtedy x 2 = φ(β)φ(β) = φ(β 2 ) = φ(π (a,b) S (a bα)) = Π (a,b) S φ(a bα) Π (a,b) S φ(a bm) = y 2. Stąd mamy kongruencję x 2 y 2 (mod n) Chcemy teraz tak dobrać (a, b), aby element (a bm, a bα) Z Z[α] był y-gładki Niech U := {(a, b) : a u, 0 < b u, nwd(a, b) = 1} Niech B 1 := {p : p - liczba pierwsza, p y} { 1} Używając B 1 można poprzez odsiewanie wyznaczyć podzbiór S takich par (a, b) U, dla których (a bm) jest y-gładkie Tak wyznaczony zbiór S spełnia warunek (*) Znamy wzór na normę, stąd możemy znaleźć te pary (a, b) dla których N(a bα) jest y-gładka Należy zauważyć, że tak uzyskany zbiór nie implikuje (**) Będziemy oznaczać p (p, r p ) - ideał pierwszy, gdzie p = ker(π), dla π : Z[α] F p, natomiast r p = π(α) jest pierwiastkiem wielomianu (f mod p) Definiujemy zbiór B 2 := {p : p (p, r p ), p B 1 \ { 1}, r p F p } Używając B 2 można poprzez odsiewanie wyznaczyć podzbiór S takich par (a, b) U, dla których (a bα) jest y-gładkie Wyznaczony obszar U = S S zawiera takie pary (a, b), że element (a bm, a bα) jest y-gładki Tworzymy macierz złożoną z wektorów wykładników (a bm) rozłożonego nad B 1 i (a bα) nad B 2 Zależności pomiędzy elementami w powyższej macierzy związane są z podzbiorem S U, dla którego spełnione są dwa warunki: (+) Π (a,b) S (a bm) ma tylko parzyste wykładniki dla wszystkich p Z (++) Π (a,b) S (a bα) ma parzyste wykładniki dla wszystkich ideałów pierwszych p Z[α] Oczywiście z (+) wynika (*). Jednakże istnieją pewne problemy aby z (++) wynikało (**): - O Q(α) Z[α], wtedy z (++) nie musi wynikać, że βo jest kwadratem jakiegoś ideału - βo = c 2, nie oznacza, że c jest ideałem głównym - βo = γo oznacza tylko, że β = γ 2 z dokładnością do jedności w O - β = γ 2 w O nie musi oznaczać, że γ Z[α], a jeżeli to nie zachodzi, to γ nie jest argumentem φ Będziemy starać się wyeliminować powyższe problemy poprzez ograniczenie indeksu [V : (V Q(α) 2 )] pod- 4

grupy składającej się z właściwych kwadratów w grupie V Q(α) generowanej przez elementy spełniające (++). Niech O := O Q(α) Q(α) będzie pierścieniem liczb całkowitych. Wiemy, że dla x O mamy f (α)x Z[α] Wystarczy dla rozwiązania ostatniego problemu aby przypuszczalny kwadrat w Z Z[α] pomnożyć przez (f (m) 2, f (α) 2 ) Warunkiem, dla którego powyższy sposób jest skuteczny jest gdy f (m) jest względnie pierwsze z n. Jeżeli tak nie jest - znaleźliśmy nietrywialny dzielnik n Q(α) jest generowane przez elementy a bα Z[α], takie że nwd(a, b) = 1 Mamy V Q(α) zawierający elementy mające parzyste wykładniki dla wszystkich ideałów pierwszych p w Z[α] Rozpatrzmy V 1 V złożony z elementów x V, które mają parzyste wykładniki dla ideałów pierwszych q w O, np. w V 1 są te x V, dla których xo jest kwadratem pewnego ideału z O Budując odpowiednie zanurzenie oraz korzystając z faktu, że [O : Z[α]] (f) 1 2 możemy oszacować dim(v/v 1 ) d 2 log (f) Jest to pierwszy krok do sukcesywnego ograniczania wymiaru, gdyż V V 1 V 2 V 3 = V Q(α) 2 V 2 jest podgrupą tych x V, dla których xo jest kwadratem ideału głównego w O Możemy oszacować liczbę klas h (f) 1 2 d 1+log (f) d 1 (d 1)! Dla takiego oszacowania mamy, że dim(v 1 /V 2 ) log h log 2 oraz dim(v 2/V 3 ) d Ostatecznie otrzymujemy, że dla 1 < d 2d2 < n mamy następujące oszacowanie dim(v/v 3 ) (log n) 3 2 Przedstawiony wcześniej algorytm pozwala nam działać na elementach z Z Z[α] takich, że drugi element należy do V, jednak nie mamy pewności, że należy do V 3 Należenie elementu x V do V 3 jest tożsame z tym, że wszystkie charaktery χ : V/V 3 F 2 znikają na x. Nie musimy jednak sprawdzać wszystkich charakterów, gdyż najwyżej k = dim(v/v 3 ) jest potrzebnych do rozpięcia przestrzeni wszystkich homomorfizmów z V/V 3 do F 2 Jeżeli dla x V każdy z tych najwyżej k charakterów przyjmuje wartość 1 to x jest kwadratem Nie jest łatwo wybrać taki zbiór charakterów, dlatego przyjmiemy losowy zbiór charakterów kwadratowych Jeżeli wybierzemy losowo k + e charakterów to szansa, że znajdziemy wśród nich odpowiednie k charakterów wynosi 1 2 e Dla x Z możemy zastosować symbol Legendre a - jeżeli dla t losowo wybranych liczb pierwszych p zachodzi 5

( x p ) = 1, to x jest kwadratem z prawdopodobieństwem 1 2 t. Chcielibyśmy przeprowadzić podobne rozumowanie dla x Z[α] Dla każdego ideału pierwszego q (q, r q ) konstruujemy symbol Legendre a następująco: ( q ) : Z[α] π ( q F ) q {±1} {0} Jeżeli x jest y-gładkie, to unikamy wartości 0 dla q > y Jeżeli ( x q ) = 1 dla więcej niż połowy przypadków, stwierdzamy że x nie jest kwadratem w Z[α] Do B 1 oprócz liczb pierwszych włączyliśmy { 1}, analogicznie do B 2 dołączamy zbiór charakterów χ q : V F 2 związanych z ( q ) Stworzyliśmy probabilistyczny algorytm wybierania y-gładkich x V, które nie tylko spełniają (++), ale także są właściwymi kwadratami. Przy tak przesianych wartościach (a,b) mamy, że jest z dużym prawdopodobieństwem kwadratem (x 2, β 2 ) w Z Z[α] ( ) f (m) 2 Π (a,b) S (a bm), f (α) 2 Π (a,b) S (a bα) Mając (x 2, β 2 ) chcielibyśmy uzyskać (x mod n) oraz φ(β), gdyż ich różnica jest nietrywialnym dzielnikiem n. Możliwe jest szybkie obliczenie (x mod n) nawet dla dużych wartości x 2 = f (m) 2 Π (a,b) S (a bm), o ile znamy rozkład na czynniki każdego z elementów (a bm). Dlatego najpierw dla elementów (a bm) stosujemy odpowiednie metody faktoryzacji (zależne od postaci tych elementów) Jeżeli Q(α) nie jest odpowiednie, to ciężkim zadaniem stanie się policzenie grupy jedności O Jedynie dla pierścienia liczb całkowitych, dla którego mamy małą grupę jedności i trywialną grupę klas jesteśmy w stanie w rozsądnym czasie wyliczyć pierwiastek z β 2 Ogólnie możemy policzyć pierwiastki X 2 β 2 w Q(α) korzystając z lematu Hensela, bądź metody Montgomery ego Po uzyskaniu wartości (x mod n) oraz φ(β) liczymy ich różnicę i otrzymujemy nietrywialny pierwiastek n. Bibliografia [1] A. Lenstra and H.W.J.(eds) Lenstra, The develompemnt of the number field sieve, Lecture Notes in Mathematics, vol. 1554, Springer - Verlag, 1993. [2] P.W. Shor, Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer, Journal on Scienrific Computing 26 (1997). [3] P. Stevenhagen, The number field sieve, Algorithmic Number Theory: Lattices, Number Fields, Curves and Cryptography, 2005. 6