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