Problem logarytmu dyskretnego i protokół Diffiego
Transkrypt
Problem logarytmu dyskretnego i protokół Diffiego
Problem logarytmu dyskretnego i protokół Diffiego-Hellmana Mateusz Paluch 1 Logarytm dyskretny Definicja 1. Niech (G, ·) będzie skończoną grupą cykliczną rzędu n ≥ 2. Niech ponadto b będzie generatorem tej grupy i niech a ∈ G. Logarytmem dyskretnym elementu a przy podstawie b (ozn.: logb a) nazywa się jedyną liczbę całkowitą x ∈ [0, n − 1] spełniająca równanie a = bx . Uwaga 1. Element b jest generatorem grupy (G, ·) wtedy i tylko wtedy, gdy ∀a∈G ∃m∈Z : a = bm . Uwaga 2. Jeśli (G, ·) jest skończoną grupą cykliczną rzędu n oraz b jest generatorem tej grupy, to odwzorowanie Zn 3 x 7−→ bx ∈ G jest izomorfizmem grup. Uwaga 3. Uogólnienia. • Załóżmy, że (G, ·) jest dowolną grupą i że a, b ∈ G. Wówczas równanie a = bx ma rozwiązanie x ∈ Z wtedy i tylko wtedy, gdy a ∈ hbi. • Załóżmy, że (G, ·) jest nieskończoną grupą cykliczną o generatorze b. Wówczas ∀a∈G ∃!x∈Z : a = bx . Założenie nieskończoności komplikuje nam problem z punktu widzenia obliczeniowego. Z punktu widzenia teorii natomiast nie ma to znaczenia. (Nie tracimy jedyności rozwiązania, ale operujemy na niewygodnych dużych liczbach). • Jeżeli spośród wymienionych w Definicji 1 założeń opuścimy x ∈ [0, n − 1], to równanie a = bx bedzie miało nieskończenie wiele rozwiązań, ponieważ bx = bx+kn dla każdego k ∈ Z. Twierdzenie 1. Jeżeli (G, ·) jest grupą cykliczną rzędu n generowaną przez element b, to bk generuje grupę (G, ·) wtedy i tylko wtedy, gdy N W D(k, n) = 1. W szczególności a jest generatorem grupy (Zn , +n ) wtedy i tylko wtedy, gdy N W D(a, n) = 1. Twierdzenie 2. Jeżeli (G, ·) jest nieskończoną grupą cykliczną generowaną przez element b, to jedynym różnym od b elementem grupy (G, ·), który ją generuje, jest b−1 . Twierdzenie 3. Jeżeli p jest liczbą pierwszą, to (Z∗p , ·), gdzie Z∗p = {1, 2, . . . , p − 1}, a mnożenie jest modulo p, jest grupą cykliczną. 1 Twierdzenie 4. Niech b będzie generatorem grupy cyklicznej (G, ·) rzędu n i niech x, y ∈ G. Niech ponadto s będzie liczbą całkowitą, e natomiast – elementem neutralnym grupy (G, ·). Wówczas 1. logb e = 0, 2. logb b = 1, 3. logb (xy) = (logb x + logb y) mod n, 4. logb (xs ) = (s logb x) mod n. Dowód. Ad 1. b0 = e ⇔ logb e = 0 Ad 2. b1 = b ⇔ logb b = 1 Ad 3. Zauważmy najpierw, że dla dowolnej liczby k ∈ Z istnieje takie q ∈ Z, że k = k mod n + qn. Niech u = logb x, v = logb y. Wówczas x = bu oraz y = bv , więc xy = bu bv = bu+v . Korzystając z poczynionej na wstępie uwagi otrzymujemy xy = b(u+v) mod n+qn = (bn )q b(u+v) mod n = eq b(u+v) mod n = b(u+v) mod n , skąd już logb (xy) = (u + v) mod n = (logb x + logb y) mod n (bowiem (u + v) mod n ∈ [0, n − 1]). Ad 4. Niech u = logb x. Wówczas x = bu , więc xs = (bu )s = bsu . Korzystając z uwagi z poprzedniej części dowodu otrzymujemy xs = b(su) mod n , skąd logb (xs ) = (su) mod n = (s logb x) mod n. 2 Rozszerzony algorytm Euklidesa Algorytm Euklidesa służy do znajdowania największego wspólnego dzielnika liczb a, b ∈ Z. Rozszerzony algorytm Euklidesa ponadto znajduje współczynniki s, t ∈ Z takie, że as + bt = N W D(a, b). Przykład 1. Ponieważ N W D(45, 103) = 1, to 45 jest generatorem grupy (Z103 , +103 ). Szukamy log45 56 w grupie (Z103 , +103 ), czyli jedynego takiego x ∈ [0, 102]∩Z, że 45x ≡103 56. Stosując rozszerzony algorytm Euklidesa do liczb 45 i 103 znajdujemy s, t ∈ Z takie, że 45s + 103t = 1. Okazuje się, że s = −16, t = 7. Następnie kongruencję 45x ≡103 56 mnożymy obustronnie przez −16 (co można zrobić, bo N W D(−16, 103) = 1), otrzymując −16 · 45x ≡103 −16 · 56 ⇔ (1 − 7 · 103) · 45x ≡103 −16 · 56 ⇔ x ≡103 −896. W takim razie log45 56 = 31. 2 3 Klasyczny problem logarytmu dyskretnego (Discrete Logarithm Problem – DLP ) Szczególnie ważna (także z kryptologicznego punktu widzenia) jest sytuacja, kiedy G = Z∗p dla pewnej liczby pierwszej p. Klasyczny problem logarytmu dyskretnego, polegający na tym, żeby mając generator g grupy (Z∗p , ·) znaleźć logg y dla danego y ∈ Z∗p , jest banalny z teoretycznego punktu widzenia, ale niebanalny obliczeniowo. Przykład 2. Znajdziemy log5 18 w grupie (Z∗23 , ·), czyli znajdziemy takie x ∈ [0, 21]∩Z, że 5x ≡23 18. W tym celu obliczamy kolejno 51 = 5, 52 = 2 (mod 23), 53 = 10 (mod 23), . . . , 512 = 18 (mod23), z czego otrzymujemy x = 12. Zastosowany powyżej algorytm nazywany jest algorytmem siłowym lub algorytmem brute force. Opiera się on na sukcesywnym sprawdzaniu wszystkich możliwych kombinacji w poszukiwaniu rozwiązania problemu, zamiast skupiać się na jego szczegółowej analizie. Jest to najprostsza do zaimplementowania metoda i teoretycznie pozwala ona złamać każde hasło – praktycznie może to potrwać tysiące lub miliony lat. Okazuje się, że jest tak dla dużej liczby p, ponieważ zwiększanie liczby p drastycznie wydłuża czas obliczeń. Powstałe trudności dostrzegalne są na poniższym wykresie. Wykres funkcji logarytmicznej (o podstawie a > 1) oraz wykres logarytmu dyskretnego w ciele reszt modulo 53. Który z nich łatwiej jest wyznaczyć dla danego argumentu? 3 4 Uogólniony problem logarytmu dyskretnego (Generalised Discrete Logarithm Problem – GDLP ) Mając daną skończoną grupę (G, ·) oraz elementy a, b ∈ G chcemy znaleźć liczbę x ∈ Z spełniającą równanie a = bx , pod warunkiem, że taka liczba istnieje. Uwaga 4. W tym zadaniu nie jest wymagane, aby grupa (G, ·) była cykliczna oraz, nawet jeśli jest, nie jest wymagane, aby b było generatorem tej grupy. Tak postawiony problem ogólnie może być trudniejszy do rozwiązania niż DLP. Jednakże w przypadku, gdy grupa (G, ·) jest cykliczna (np. jest grupą multiplikatywną ciała skończonego) oraz znany jest rząd elementu b, łatwo jest rozpoznać, czy istnieje liczba całkowita x spełniająca równanie a = bx . Wynika to z następującego faktu: jeżeli (G, ·) jest grupą cykliczną, b jest elementem rzędu n w tej grupie oraz a ∈ G, to (∃x∈Z : a = bx ) ⇒ an = e, gdzie e oznacza element neutralny grupy (G, ·). Stopień trudności uogólnionego problemu logarytmu dyskretnego zależy od grupy, do której należą elementy a oraz b. grupa (Zn , +n ) (Z∗p , ·) grupa punktów krzywej eliptycznej stopień trudności złożoność czasowa bardzo łatwe wielomianowy czas algorytmu trudne subwykładniczy czas algorytmu bardzo trudne wykładniczy czas algorytmu Podamy teraz przykłady algorytmów służących do rozwiązywania problemu logarytmu dyskretnego w niektórych grupach. Dla grupy (Zn , +n ) jest to • rozszerzony algorytm Euklidesa. Dla grupy (Z∗p , ·) są to • algorytm brute force (efektywny dla małej liczby p), • algorytm dużych i małych kroków (baby-step giant-step algorithm), • algorytm Silvera-Pohlinga-Hellmana (efektywny, gdy p − 1 rozkłada się na małe liczby pierwsze), • algorytm oparty na wyznaczaniu indeksu (index-calculus). 4 5 Protokół Diffiego-Hellmana Hellman Key Exchange) (Diffie- W 1976 Whitfield Diffie1 i Martin Hellman2 opublikowali pracę pt. New Directions in Cryptography, która zainicjowała rewolucję w kryptografii. Wymiana klucza wg protokołu Diffiego-Hellmana była pierwszym w historii kryptosystemem asymetrycznym. Jej autorzy postrzegani są jako założyciele nowoczesnej kryptografii. Bezpieczeństwo protokołu DH oparte jest na trudności obliczeniowej problemu logarytmu dyskretnego. Poniżej przedstawiamy schemat procesu wymiany klucza wg protokołu Diffiego-Hellmana w skończonej grupie cyklicznej (G, ·) rzędu r, której generatorem jest element g. (Symbol a ∈R A oznacza losowy wybór elementu a ze zbioru A). 1 Bailey Whitfield Diffie (ur. 5 czerwca 1944) - amerykański kryptograf, współtwórca kryptografii asymetrycznej. W 1976 wraz z Martinem Hellmanem opracował rewolucyjną pracę naukową New Directions in Cryptography przedstawiającą pomysł klucza publicznego. W swojej karierze był związany z Massachusetts Institute of Technology oraz Sun Microsystems. 2 Martin Hellman (ur. 2 października 1945) - amerykański kryptograf, współtwórca kryptografii asymetrycznej. Pracował dla firmy IBM, później jako profesor na Stanford University. Po przejściu na emeryturę (1996) skoncentrował się na prawdopodobieństwie i ryzyku związanym z bronią nuklearną. 5 Przykład 3. (Protokół Diffiego-Hellmana dla grupy (Zr , +r )). Rozważmy sytuację, w której Alicja dzwoni do Boba w celu wymiany tajnej informacji. Rozmowa jest podsłuchiwana. Ogólny sposób postępowania: 1. Razem wybierają dużą liczbę r ∈ N oraz liczbę g ∈ [1, . . . , r − 1] ∩ Z względnie pierwszą z r. 2. Alicja w sekrecie wybiera sobie liczbę całkowitą n ∈ [0, . . . , r − 1]. 3. Bob w sekrecie wybiera sobie liczbę całkowitą m ∈ [0, . . . , r − 1]. 4. Alicja oblicza (ng) mod r i przekazuje Bobowi rezultat. 5. Bob oblicza (mg) mod r i przekazuje Alicji rezultat. 6. Wspólny ukryty klucz, który mogą oboje obliczyć, to s = (nmg) mod r. Przypuśćmy teraz, że r = 103, g = 45, n = 31, m = 17. Wówczas (ng) mod r = 56, (mg) mod r = 44, a wartość wspólnego ukrytego klucza wynosi s = (m(ng)) mod r = (n(mg)) mod r = 25. Jest widoczne, że najdogodniej jest przyjąć za r liczbę pierwszą. Osoba podsłuchująca rozmowę otrzymuje informację o liczbach r, g, (ng) mod r oraz (mg) mod r. Na podstawie tych danych poszukuje klucza s := (nmg) mod r. Rozwiązanie postawionego problemu, jak już wspomnieliśmy, jest realne dzięki rozszerzonemu algorytmowi Euklidesa. W konsekwencji protokół Diffiego-Hellmana dla grupy (Zr , +r ) nie nadaje się do żadnych zastosowań. Przykład 4. (Protokół Diffiego-Hellmana dla grupy (Z∗p , ·)). Alicja dzwoni do Boba w celu wymienienia tajnej informacji. Telefon jest na podsłuchu. Wówczas: 1. Razem wybierają liczbę pierwszą p. 2. Razem wybierają liczbę g mniejszą od p i będącą generatorem grupy (Z∗p , ·). (Liczby g i p nie są tajne). 3. Alicja w sekrecie wybiera sobie liczbę całkowitą n ∈ [0, p − 2]. 4. Bob w sekrecie wybiera sobie liczbę całkowitą m ∈ [0, p − 2]. 5. Alicja oblicza a = (g n ) mod p i przekazuje Bobowi rezultat. 6. Bob oblicza b = (g m ) mod p i przekazuje Alicji rezultat. 6 7. Wspólny ukryty klucz, który mogą oboje obliczyć, ((g n )m ) mod p = ((g m )n ) mod p = (g nm ) mod p. to s = W algorytmie tym możemy dostrzec dwa klucze prywatne oraz dwa klucze publiczne, z których generowany jest jeden klucz sesji. Podsłuchiwacz ma dostęp do kluczy publicznych, z których każdy składa się z 3 znanych parametrów: g, p oraz reszty a (względnie b). Elementem nieznanym jest n (względnie m), a więc wartość logarytmu dyskretnego z a (względnie b) przy podstawie g, w grupie multiplikatywnej reszt modulo p. 6 Wady systemu Diffiego-Hellmana Wśród mankamentów procesu wymiany klucza według Diffiego-Hellmana jest fakt, że klucze sesji muszą być wymieniane parami. Jeśli zaszyfrowane wiadomości wymienia około stu osób, to metoda wymaga już sporych nakładów. Poza tym zarówno od Alicji jak i od Boba wymagana jest pewna aktywność, zanim będą się mogli ze sobą komunikować. Alicja nie może zostawić żadnej zaszyfrowanej wiadomości dla Boba, jeżeli ten jest np. na urlopie, po czym sama wyjechać w podróż. Ostatnią wadę można obejść poprzez stworzenie bazy danych. Bob przed wyjazdem na urlop wysyła swoją wartość reszty b do bazy. Alicja może wówczas wysyłać Bobowi informacje podczas jego nieobecności, wykorzystując wartość reszty b zamieszczoną przez niego w bazie oraz dobieranie dla każdej informacji innej tajnej liczby n. Nie jest to metoda doskonała, bowiem pojawia się zbiór kluczy prywatnych, którymi może zainteresować się podsłuchiwacz. Wobec powyższego metoda DiffiegoHellmana może wydawać się nieco uciążliwa, jednak jak wiele innych protokołów kryptograficznych została zautomatyzowana i programowo, i sprzętowo. Nie jest bardziej niebezpieczna niż RSA, natomiast przez 3 lata miała nad nim przewagę, bowiem w 1997 roku przestał obowiązywać jej patent, a patent RSA wygasł dopiero w 2000 roku. 7 Literatura [1] Marcin Karbowski, Podstawy kryptografii, Wyd. Helion, 2008. [2] Neal Koblitz, Algebraiczne aspekty kryptografii, Wyd. NaukowoTechniczne, Warszawa, 2000. [3] Neal Koblitz, Wykłady z teorii liczb i kryptografii, Wyd. NaukowoTechniczne, Warszawa, 2006. [4] Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, Handbook of applied cryptography, CRC Press, 1996. [5] Keneth A. Ross, Charles R. B. Wright, Matematyka dyskretna, PWN, Warszawa, 2003. [6] Reinhard Wobst, Kryptologia. Budowanie i łamanie zabezpieczeń, Wyd. RM, Warszawa, 2002. 8