Algebra. Matematyka dyskretna ()
Transkrypt
Algebra. Matematyka dyskretna ()
Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj 1 1 Macierze Iloczyn skalarny wektorów b1 b2 ... bn h~a, ~bi = h i a 1 , a 2 , . . . an · n X = ai ·bi , ~a ⊥ ~b (wektory są prostopadłe) ⇔ h~a, ~bi = 0 i=1 [1, 0, 0] ⊥ [0, 1, 0] ⊥ [0, 0, 1] (wersory w R3 ), [2, 3] ⊥ [−3, 2] (bo [2, 3] · [ −3 2 ] = 2 · (−3) + 3 · 2 = 0). Mnożenie macierzy m×r z }| r×n { z m×n }| { z }| { [aik ] i=1,...,m · [bkj ] k=1,...,r =[cij ] i=1,...,m k=1,...,r cij = j=1,...,n j=1,...,n r X aik · bkj = k=1 i-ty wiersz · jta kolum na Przykłady • [2 × 3] · [3 × 2] = [2 × 2] 1 1 1 2 " 1 2 3 4 5 6 # 1 3 6 14 15 32 • (nieprzemienność) 1 [4, 5, 6] · 2 = 4 · 1 + 5 · 2 + 6 · 3 = 32 3 " # " # 1 1 6 14 1 2 3 · 1 2 = 15 32 4 5 6 1 3 [ 01 10 ] · [ 01 00 ] = [ 10 00 ], "1 • (macierz identycznościowa) I = 0 0 .. 0 0 1 0 .. 0 0 0 1 .. 0 ... ... ... ... ... [ 01 00 ] · [ 01 10 ] = [ 00 01 ] 0# 0 0 . .. 1 Identyczność ma kolumny i wiersze będące wersorami, a zachowuje się względem mnożenia jak 1: I · A = A = A · I. (Formalnie: I stanowi element neutralny mnożenia). • (macierz odwrotna) A−1 · A = I = A · A−1 . Kryterium odwracalności: A posiada macierz odwrotną A−1 ⇔ det A 6= 0. Wyznacznik. a11 a12 . . . a1j . . . a1n a a . . . a2j . . . a2n A = 21 22 ........................... an1 " an2 # . . . anj . . . ann gdzie vj = a1j a2j ... anj = [v1 , v2 , . . . , vn ] – macierz kwadratowa n × n, – j-ta kolumna det Definicja. [v1 , . . . , vj , . . . , vn ] = A 7−→ det A = det(v1 , . . . , vj , . . . , vn ) ∈ R to jedyna funkcja kolumn spełniająca: "1 (i) (unormowanie) det 0 0 .. 0 0 1 0 .. 0 0 0 1 .. 0 ... ... ... ... ... 0 #! 0 0 .. 1 = 1; (ii) (wieloliniowość = tensor) det(v1 , v2 . . . , α uj + β wj , . . . vn ) = α · det(v1 , v2 . . . , uj , . . . vn ) + β · det(v1 , v2 . . . , wj , . . . vn ); słownie: liniowość ze względu na każdą kolumnę”; 2 Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj _ (iii) (antysymetria) det(v1 . . . vi . . .vj . . . vn ) = − det(v1 . . . vj . . .vi . . . vn ); słownie: „zamiana miejscami kolumn kosztuje znak”. Uwaga: Wyznacznik można zdefiniować tak samo jako funkcję wierszy; dzięki równości det(A) = det(AT ), gdzie AT – macierz transponowana do A zamieniająca kolumny na wiersze, wyznacznik „wierszowy” i „kolumnowy” są takie same. Przykłady 1. (zerowy wiersz lub kolumna daje 0) | 1 2 1 7 5 4 2 6 0 0 0 0 {z W 3 1 5 2 1 2 = 1 7 } 5 4 2 6 2·0 2·0 2·0 2·0 3 1 5 2 1 2 (ii) = 2· 1 7 | 5 4 2 6 0 0 0 0 3 1 5 2 {z W ⇒ 2W = W ⇒ W = 0 } 2. (dwie te same kolumny lub wiersze dają 0) y 5 3 5 (iii) 5 3 5 4 9 4 = − 4 9 4 ⇒ W = −W ⇒ W = 0 6 8 6 6 8 6 | | {z } {z } W W 3. (macierz dolnotrójkątna) 2 0 0 9 3 0 7 8 4 2 0 0 (ii) 2 0 0 2 2 · 0 0 (ii) 2 0 0 = 9 3 0 + 9 2·0 0 = 9 3 0 +2· 9 0 0 = 7 0 4 7 2·4 4 7 0 4 7 4 4 {z } | 0 2 0 0 (ii) = 0 3 0 0 0 4 0 0 0 + 9 3 0 0 0 4 0 0 0 + 0 3 0 7 0 4 1 0 0 (ii) = 2· 0 3 0 0 0 4 Rozwinięcie Laplace’a. a11 a12 . . . a1 (j−1) a21 a22 . . . a2 (j−1) A(ij) = a a . . . a (i+1) 2 (i+1) (j−1) (i+1) 1 ... ... ... ... an1 an2 . . . an (j−1) det A = det A = n P k=1 n P k=1 2 = 0 0 2 (ii) = 0 0 0 0 3 0 0 4 0 0 3 0 0 4 3·0 + 3·3 3·0 0 +3· 3 0 | 1 0 0 (ii) = 2·3· 0 1 0 0 0 4 ... a1n ... a1n . . . a(i+1) n ... ... ... ann 0 3 0 0 3 0 {z 0 0 0 + 4 0 7 0 + 4 4 } 7 4 7 4 7 4 0 0 0 · 0 3 0 = 4 0 4 | {z } 1 0 0 (ii) = 2·3·4· 0 1 0 0 0 1 (−1)i+k · det A(ik) (względem i-tego wiersza) (−1)k+j · det A(kj) (względem j-tej kolumny) · 0 0 0 · 0 3 0 = ·4 0 4 minor powstały przez wykreślenie i-tego wiersza i j-tej kolumny w macierzy A 0 (i) = 2·3·4 Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj 2 3 Układy równań liniowych Układ m równań o n niewiadomych x1 , x2 , . . . , xm a11 x1 + a12 x2 + . . . + a1n xn Postać macierzowa A · X = B, gdzie = b1 = b2 ... = bm a21 x1 + a22 x2 + . . . + a2n xn ............................. am1 x1 + am2 x2 + . . . + amn xn " x1 A = [aij ] i=1,...,m , X = j=1,...,n x2 ... xn ,B= b1 b2 ... bm # , A – macierz główna układu B – kolumna wyrazów wolnych Wzory Cramera. m = n, W = det A 6= 0 (wyznacznik główny układu) ⇒ x1 = W xj Wx1 , W x2 = a11 = a21 an1 Wx2 , W . . ., xn = Wxn W a12 . . . b1 . . . a1n a22 . . . b2 . . . a1n an2 . . . bn . . . ann 1 2 j n — rozwiązanie układu, gdzie wyznacznik zmiennej xj (w macierzy A wymienia się j-tą kolumnę na B). Rozwiązanie „macierzowe” układu: A · X = B ⇔ X = A−1 · B. 3 Wielomiany V (x) = n P ai xi = a0 + a1 · x + a2 · x2 + . . . + an · xn ; i=0 Definicje. (1) c – pierwiastek wielomianu V ⇔ V (c) = 0. (2) deg V = max{i : ai 6= 0} – stopień wielomianu. Twierdzenie Bezouta: V (c) = 0 ⇔ (x − c) | V . Rozkład wielomianu. Nad R: Każdy wielomian rzeczywisty (tj. o współczynnikach ai ∈ R) posiada rozkład na iloczyn wielomianów rzeczywistych kwadratowych (stopnia co najwyżej 2). Nad C: Każdy wielomian zespolony posiada rozkład na iloczyn wielomianów zespolonych liniowych (stopnia co najwyżej 1). Przykłady: 1. x2 + 1 = (x − i) (x + i) — nierozkładalny nad R. 2. x4 + 1 = rozkład nad R = (x2 + √ 2 x + 1) · (x2 − √ 2 x + 1) √ rozkład nad C √ = x − 22 (−1 + i) · x − 22 (−1 − √ √ · x − 22 (1 + i) · x − 22 (1 − i) i) · Zasadnicze twierdzenie algebry: Każdy wielomian ma pierwiastek zespolony. Uwaga: Fakt ten jest równoważny z rozkładalnością wielomianów nad C na czynniki liniowe. Równanie kwadratowe. √ a z 2 + b z + c = 0 ⇔ z1,2 = −b∓2a ∆ , wyróżnik trójmianu ∆ = b2 − 4ac. Możliwe pary pierwiastków równania kwadratowego różne rzeczywiste podwójny rzeczywisty zespolone sprzężone √ = 1 ∓ 3i. Przykład (zespolone sprzężone) z 2 − 2z + 10 = 0, ∆ = −36, ∆ = 6i, z1,2 = 2∓6i 2 4 Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj 4 Podzielność liczb Ogólnie pojęcie podzielności jest nietrywialne w pierścieniach takich jak Z, gdzie nie wszystkie elementy 6= 0 są odwracalne. W ciałach takich jak Q i R wszystkie elementy są odwracalne, więc dla a 6= 0 zawsze a|b (bo b = (b · a−1 ) · a); tym samym w ciałach pojęcie podzielności jest trywialne („wszystko dzieli wszystko”). Uwaga: i) Umawiamy się, że 0 ∈ N. ii) To co poniżej robimy dla N przepisuje się na Z. Definicje • (podzielność |) a|b (a dzieli b = a jest dzielnikiem b = b jest podzielne przez a) ⇔ ∃d∈N b = d · a • (kongruencja ≡) a ≡ b mod m (a i b są kongruentne modulo m = a i b przystają do siebie modulo m) ⇔ m|b − a ⇔ reszta(b : m) = reszta(a : m) • (gcd – greatest common divisor) d = NWD(a, b) (największy wspólny dzielnik a i b) ⇔ d|a ∧ d|b ∧ ∀c (c|a ∧ c|b ⇒ c|d) {z | } | wspólny dzielnik {z } największy Uwaga: Tak się składa, że d = max{c : c|a ∧ c|b}, tzn. d jest elementem maksymalnym w zbiorze dzielników {c : c|a ∧ c|b} zarówno względem relacji porządku „|” jak i „6”. • (lcm – least common multiply, najmniejsza wspólna wielokrotność) NWW(a, b) = min{k : a|k ∧ b|k} • (pierwszość) p – liczba pierwsza ⇔ p > 1 ∧ ∀k∈N ( k|p ⇒ (k = 1 ∨ k = p) ) Słownie: p ma dokładnie dwa dzielniki: 1 oraz p. Przykład (NWW). nownik. 3 14 + 5 21 Własności (podzielności). 1. a|a. 2. a|b ∧ b|c ⇒ a|c | = 9 42 + 10 42 = 19 , 42 NWW(14, 21) = 42 – najmniejszy wspólny mia- 3. a|b ∧ b|a ⇒ a = b {z 4. a|b ⇒ a|b · c relacja porządku Własności (kongruencji). 1. 2. a ≡ b ∧ b ≡ c ⇒ a{z≡ c mod m | a ≡ a mod m. relacja równoważności 4. m|a ⇔ a ≡ 0 mod m 5. a|b ∧ a|c ⇒ a|b ± c } 5. a ≡ a ± m mod m 3. a ≡ b ⇒ b ≡ a mod m} 6. a ≡ b ⇒ a·c≡b·c c·a≡c·b ak ≡ b k mod m + 7. a ≡ b ∧ c ≡ d ⇒ a + − · c ≡ b− · d mod m Przykład reszta ((22007 − 1) : 7) = 0 tzn. 7| 22007 − 1. 22007 ≈ (210 )200 ≈ (103 )200 = 10600 , więc nasza liczba ma ponad 600 cyfr. 23 = 8 ≡ 1 mod 7, 2007 : 3 = 669 ⇒ 2007 3 669 669 2 = (2 ) ≡ 1 = 1 mod 7 ⇒ 22007 − 1 ≡ 1 − 1 = 0 mod 7 Podstawowe twierdzenie arytmetyki: Każda liczba naturalna n > 1 posiada jednoznaczQ ny rozkład na czynniki pierwsze n = pi ki , pi – liczba pierwsza, ki – krotność. i Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj 5 (Jednoznaczność = nie istnieje drugi rozkład, w którym występują inne liczby pierwsze lub z różną krotnością). Algorytm Euklidesa. NWD(a, b) #bez dzielenia repeat if a>b then (a,b) := (b,a); (a,b) := (a,b-a) until a=b NWD := a #z dzieleniem repeat if a>b then (a,b) := (b,a); (a,b) := ( a,reszta(b:a) ) until b=0 NWD := a Przykłady • NWD(6, 33) = 3 bez dzielenia (6, 33) (6, 33 − 6) = (6, 27) (6, 27 − 6) = (6, 21) (6, 21 − 6) = (6, 15) (6, 15 − 6) = (6, 9) (6, 9 − 6) = (6, 3) → (3, 6) (3, 6 − 3) = ( 3 , 3) z dzieleniem (6, 33) 33 : 6 = 5 reszta 3 (6, 3) → (3, 6) 6 : 3 = 2 reszta 0 • (przewaga algorytmu z dzieleniem). NWD(231 , 2) = 2. Algorytm bez dzielenia wykona miliard „ jałowych” odejmowań, bo 230 = (210 )3 ≈ (103 )3 = 109 . Sito Eratostenesa. Chcemy wyznaczyć wszystkie liczby pierwsze wśród liczb 2–100000. 1. Wypisujemy liczby 2, 3, 4, 5, 6, 7, . . . , 100000. 2. Bierzemy liczbę 2 i wykreślamy z listy jej krotności: 2 · 2, 2 · 3, 2 · 4, 2 · 5, . . . 2 · 50000. 3. Bierzemy kolejną liczbę 3 i wykreślamy z listy jej krotności: 3 · 2, 3 · 4, 3 · 5, . . . , 3 · 33333. 4. Bierzemy kolejną liczbę 4. Ona i jej krotności zostały już wykreślone (jako krotności 2). 5. Bierzemy kolejną liczbę 5 i wykreślamy z listy jej krotności. 6. Postępujemy tak aż do ostatniej nieskreślonej liczby < 50000. √ (Dokładniej do k = 313 6 100000). 7. Ostatecznie pozostaną na liście tylko liczby pierwsze. 2 3 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - Poprawność: Liczby, które pozostały nie były krotnościami żadnej liczby mniejszej od siebie; nie√mają więc mniejszych od siebie √ dzielników 6= 1 tzn. są liczbami pierwszymi. Liczba √ złożona > 100000 musi mieć dzielnik 6 100000, bo inaczej iloczyn jej dzielników byłby > 100000 · √ √ 100000 = 100000; wystarczy więc wykreślać krotności liczb k 6 100000. 6 5 Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj Definicje i równania rekurencyjne Ciąg arytmetyczny xn+1 = xn + r ⇔ xn = x0 + n · r Ciąg geometryczny. Definicja potęgi ( xn+1 = xn · q ⇔ xn = q n · x0 , xn+1 = a · xn x0 = 1 ⇔ x n = an Silnia ( xn+1 = (n + 1) · xn x0 = 1 ⇔ xn = n! Dwusilnia xn+2 = (n + 2) · xn ( ⇔ xn = n!! = x =1 1 x2 = 2 1 · 3 · 5 · 7 · . . . · n, 26 | n 2 · 4 · 6 · 8 · . . . · n, 2 | n Liczby Fibonacciego xn+2 = xn+1 + xn x0 = 1 x1 = 1 Symbol Newtona x(n + 1, k + 1) = x(n, k) + x(n, k + 1) ⇔ x(n, k) = ( nk ) = x(n, 0) = 1 x(n, n) = 1 n! k! · (n − k)! Interpretacja powyższej zależności rekurencyjnej jako trójkąt Pascala: 0 1 2 3 4 5 6 1 1 1 2 1 1 1 3 4 1 3 6 1 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 .................................................................... n n n n ( n0 ) . . . . ( k−1 ) ( nk ) ( k+1 ) ( k+2 ) . . . . ( nn ) & ⊕ . n+1 n + 1 ............................. ............................ k+1 Przykłady • (Dwumian Newtona) (a + b)n = n P k=0 ( nk ) · ak · b(n−k) • (Hasła graficzne) Na obrazku wyróżniono 10 elementów. Zaznaczenie myszką 4 właściwych elementów stanowi hasło. Ile takich haseł można utworzyć? Odp: Kombinacje. 4 elementy spośród 10 można wybrać na ( 10 4 ) = 210 sposobów. Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj 7 • (Klucz anagramowy) Poprzestawiane litery w słowie ”KARTOFEL” stanowią klucz do szyfrogramu. Komputer sprawdza w ciągu każdej sekundy 100 możliwości (porównując dla każdego klucza początki odszyfrowanych wiadomości ze słownikiem). Po jakim czasie na pewno poznamy wiadomość? Odp. Permutacje. 8 znaków można ustawić w różnej kolejności na 8! = 40320 sposobów. Maksymalny czas dekryptażu ok. 6 min 40 s. • (PIN) Kod liczbowy do karty magnetycznej składa się z 4 cyfr. Jakie jest prawdopodobieństwo zgadnięcia kodu jeśli dopuszcza się 3 próby? Odp: Wariacje. Liczba potencjalnych kodów 104 = 10000. 1 10000 1− 1 10000 chybił 1− 1 9999 1 9999 chybił 1− trafił 1 9998 1 9998 chybił Pr(„trafił”) = 1 {z } |10000 trafił w I próbie = 1 10000 + 1 10000 + 1 10000 trafił trafił 1 1 1 1 1 + 1− + 1− · · 1− · 10000 9999} 10000 9998} | {z | {z 9999 trafił w II próbie trafił w III próbie = 0, 0003 = 0, 3 h. • (Iteracja a rekursja) F ib(n) — n-ta liczba Fibonacciego. #implementacja rekursywna Fib(0) := 1; Fib(1) := 1; Fib(n) := Fib(n-1) + Fib(n-2) #implementacja iteracyjna (a,b) := (1,1); for i := 2 to n (a,b) := (b,a+b); Fib := b Rekursja jest kosztowniejsza obliczeniowo i dlatego należy ją zastępować iteracją, gdzie tylko się uda. Powyższy algorytm iteracyjny działa wyraźnie szybciej już dla Fib(28) = 514229, a wyniku Fib(100) = 573147844013817084101 „raczej nie doczekamy” stosując rekursję. Niestety nie zawsze znamy postać iteracyjną algorytmu, ale nawet w postaci rekursyjnej wiele można usprawnić (np. sortowanie bąbelkowe a sortowanie przez wstawianie). • (RNG - generatory liczb losowych) (xn )∞ n=0 – ciąg liczb pseudolosowych (LCRNG) xn+1 = a · xn + b mod m , x0 – ziarno (liniowo-kongruencyjny) (LMCRNG) xn+2 = a · xn+1 + b · xn + c mod m, x0 , x1 – ziarno (QCRNG) xn+1 = a · xn 2 + b · xn + c mod m, x0 – ziarno („Fibonacciego”) (kwadratowo-kongruencyjny) 8 Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj (BBS) (Blum-Blum-Shub) ( yn+1 = yn 2 mod m xn+1 = „najniższy (jednostkowy) bit w zapisie dwójkowym liczby”yn+1 y0 – ziarno, NWD(y0 , m) = 1, m = p · q, p, q ≡ 3 mod 4, p, q – duże liczby pierwsze. Generatory: liniowy, kwadratowy i Fibonacciego zostały złamane, więc nadają się tylko do symulacji komputerowych, natomiast (BBS) uznaje się za kryptograficznie bezpieczny (podobnie jak RSA ze względu na trudności z rozkładem na czynniki pierwsze). Równanie rekurencyjne liniowe rzędu 2 jednorodne. (LJ-2) xn+2 = a · xn+1 + b · xn . Równanie charakterystyczne: (S) λ2 = a · λ + b. Wyróżnik (S) (i) ∆ > 0, λ1 6= λ2 (ii) ∆ = 0, λ1 = λ2 = λ (iii) ∆ < 0, λ1,2 = r · (cos α ± i sin α) Przykład (LJ-2) (S) Rozwiązanie 6 Rozwiązanie ogólne (LJ-2) xn = c · λn1 + d · λn2 , c, d ∈ R x n = c · λn + d · n · λn , c, d ∈ R n xn = r · (c · cos nα + d · sin nα), c, d ∈ R xn+2 = 6 xn+1 − 9 xn , λ2 = 6λ − 9 ⇔ λ1,2 = 3, xn = c · 3n + d · n · 3n = (c + d n) · 3n . Kryptografia z kluczem publicznym. System El Gamala Kryptografia z kluczem publicznym. Kryptografia symetryczna: szyfrowanie i deszyfrowanie za pomocą wspólnego klucza, którego ujawnienie pozwala na deszyfrowanie wiadomości. Kryptografia asymetryczna: oddzielny klucz do szyfrowania i oddzielny do deszyfrowania. Klucz do szyfrowania można ujawnić wszystkim (tzw. klucz publiczny). Klucz do deszyfrowania pozostaje utajniony (tzw. klucz prywatny). Realizacja techniczna wymaga aby klucze prywatny i publiczny wzajemnie się odtwarzały, ale odtworzenie klucza prywatnego na podstawie klucza publicznego było bardzo czasochłonne obliczeniowo. Najczęściej wykorzystuje się trudności z rozkładem na czynniki pierwsze (np. RSA), trudności z logarytmem dyskretnym (np. Diffie-Hellmann), bądź krzywe eliptyczne. System ElGamala. Oznaczenia: p – liczba pierwsza, Z∗p = {1, 2, . . . , p − 1} – grupa z mnożeniem mod p (formalnie: grupa multyplikatywna elementów odwracalnych w pierścieniu Zp ). α – generator Z∗p ↔ Z∗p = {αi : i = 1, 2, . . . , p − 1}. W szczególności: αp−1 = 1, αp = α. Słownie: mnożąc wielokrotnie α przez siebie tworzymy (= generujemy) całą grupę. Przykład 1 1 1 2 2 3 3 4 4 5 5 6 6 (grupy cyklicznej). p = 7, Z∗p = Z∗7 = {1, 2, 3, 4, 5, 6}. 2 3 4 5 6 3 · 5 = 1 mod 7, bo reszta(15 : 7) = 1; 2 3 4 5 6 2 nie jest generatorem Z∗7 , 4 6 1 3 5 bo {21 = 2 = 24 , 22 = 4, 23 = 1} = 6 Z∗7 6 2 5 1 4 ∗ (formalnie: element 2 ∈ Z7 ma rząd 3); 1 5 2 6 3 α = 3 stanowi generator Z∗7 , 3 1 6 4 2 bo {α1 = 3, α2 = 2, α3 = 6, α4 = 4, α5 = 5, α6 = 1} = Z∗7 . 5 4 3 2 1 Algebra. Mat.dyskretna v.1.3 – egzamin mgr inf niestacj 9 A. Tworzenie pary klucz prywatny - klucz publiczny dla Ali. 1. Wybrać dużą liczbę pierwszą p oraz generator α grupy Z∗p . 2. Wylosować liczbę naturalną k, 1 6 k 6 p − 2 oraz obliczyć potęgę β = αk mod p. 3. Klucz prywatny: k, klucz publiczny: (p, α, β). B. Szyfrowanie za pomocą klucza publicznego. Bartek przesyła tajną wiadomość do Ali. 1. Zamienić informację na liczbę całkowitą m ∈ Z∗p . 2. Wylosować liczbę naturalną n, 1 6 n 6 p − 2. 3. Obliczyć γ = αn mod p oraz δ = β n ·m mod p, gdzie p, α, β – dane jako klucz publiczny. 4. Szyfrogram: c = (γ, δ). C. Deszyfrowanie za pomocą klucza prywatnego. Ala czyta wiadomość. 1. Za pomocą klucza prywatnego k i modułu p danego w kluczu publicznym wyznaczyć liczbę m = γ p−1−k · δ mod p. 2. Odtworzyć wiadomość zamieniając liczbę m z powrotem na informację. Poprawność. p−1 n γ p−1−k ·δ = (αn )p−1−k ·β n ·m = (αn )p−1−k ·(αk )n ·m = (αn )(p−1−k)+k ·m = (α | {z } ) ·m = m mod p. =1 Przykład (komunikacji opartej na niebezpiecznie małej grupie). • Klucz publiczny: (p, α, β) = (1234777777777, 2, 323961293736). • Wiadomość m = 2718281828. Liczba losowa n = 314159265358. • Szyfrogram c = (γ, δ), γ = 724419877101, δ = 507864391565. • Klucz prywatny k = 6603663145. Zastosowany do c odtwarza m. Dyskusja. • Wada: Podwaja dlugość szyfrogramu w stosunku do wiadomości odkrytej. • Zaleta: Nawet ten sam klucz i ta sama wiadomość prowadzą do wielu różnych szyfrogramów w zależności od wylosowanej liczby pomocniczej n. • Problem: Nie jest jasne na czym opiera się trudność złamania tego systemu. Jeśli zagadnienie logarytmu dyskretnego można „łatwo” rozwiązać, to i system El Gamala również. Ale czy na odwrót? Za bezpieczne uważa się liczby pierwsze czterokrotnie dłuższe niż w przypadku RSA. Zagadnienie logarytmu dyskretnego. Dla danych β ∈ Z∗p , α – generator Z∗p rozwiązać αk = β; k = logα β. Z definicji generatora logarytm dyskretny k zawsze istnieje. Ale jak znaleźć k nie wypisując wszystkich potęg αi (i = 2, . . . , p − 2)?