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)?