• Nie Znaleziono Wyników

ALGEBRAICZNE ASPEKTY KRYPTOGRAFII LISTA 2: Kodowanie grupowe. Niech A = {a

N/A
N/A
Protected

Academic year: 2021

Share "ALGEBRAICZNE ASPEKTY KRYPTOGRAFII LISTA 2: Kodowanie grupowe. Niech A = {a"

Copied!
4
0
0

Pełen tekst

(1)

ALGEBRAICZNE ASPEKTY KRYPTOGRAFII LISTA 2: Kodowanie grupowe.

Niech A = {a1, ..., an} b¸edzie sko´nczonym alfabetem i LA b¸edzie j¸ezykiem nad A. Niech LB b¸edzie j¸ezykiem nad alfabetem B. Niech S ⊆ LA b¸edzie zbiorem komunikat´ow i 1-1-funkcja E : S → LB b¸edzie kodowaniem zbioru S w j¸ezyku LB. Funkcja D : LB → S (je´sli istnieje) jest odpowiednim dekodowaniem, je´sli D(E(¯a)) =

¯

a. Rozpatrzmy nast¸epuj¸acy schemat:

¯

a → E(¯a) → ...kana l...transmisyjny... → ¯b0 → D(¯b0)

¯b = E(¯a) := kod s lowa ¯a;

T : LB → LB:= funkcja b l¸edu;

¯b0 = T (E(¯a)) := kod komunikatu wyj´sciowego;

D(¯b0) := komunikat wyj´sciowy.

Kody blokowe. Niech A = {0, 1} = B. Niech Zn2 b¸edzie grup¸a wszystkich ci¸ag´ow (0,1)-warto´sciowych d lugo´sci n wzgl¸edem dodawania w Z2. (m, n)-Kodowaniem blokowym (r´ownomiernym) (m ≤ n) nazywamy funkcj¸e E : Zm2 → Zn2. Funkcja E ma rozsz- erzenie do funkcji kodowania zbioru wszystkich s l´ow o d lugo´sci postaci m · k w j¸ezyku L{0,1}.

Niech Γ b¸edzie zbiorem funkcji b l¸edu T : Zn2 → Zn2. Kodowanie E umo˙zliwia wykrycie b l¸ed´ow zbioru Γ, je´sli dla ka˙zdej funkcji T ∈ Γ, warunek T (E(¯a)) 6= E(¯a) implikuje T (E(¯a)) 6= E(¯b) dla wszystkich ¯b ∈ Zm2 .

Kodowanie E umo˙zliwia korygowanie b l¸ed´ow zbioru Γ, je´sli istnieje funkcja D : Zn2 → Zm2 taka, ˙ze dla ka˙zdej T ∈ Γ zachodzi D(T (E(¯a))) = ¯a, gdzie ¯a ∈ Zm2 . Okre´sla to funkcj¸e dekodowania na zbiorze wszystkich s l´ow 0-1-ynkowych 1. Dlatego dalej m´owimy, ˙ze D jest funkcj¸a dekodowania.

Dla ¯a ∈ Zn2 definiujemy wag¸e w(¯a) jako ilo´s´c jedynek w ¯a. Odleg lo´sci¸a mi¸edzy wektorami d(¯a, ¯b) nazywamy wag¸e w(¯a + ¯b).

Niech Γk b¸edzie zbiorem wszystkich funkcji b l¸edu T : Zn2 → Zn2 produkuj¸acych nie wi¸ecej ni˙z k b l¸ed´ow: d(¯a, T (¯a)) ≤ k.

Uwaga 2.1. Kodowanie E umo˙zliwia wykrycie b l¸ed´ow ka˙zdej funkcji T ∈ Γk (zbioru Γk) wtedy i tylko wtedy gdy dla dowolnych ¯a, ¯b ∈ Zm2 d(E(¯a), E(¯b)) ≥ k + 1.

Funkcja kodowania E umo˙zliwia korygowanie b l¸ed´ow ka˙zdej funkcji T ∈ Γk(zbioru Γk) wtedy i tylko wtedy gdy dla dowolnych ¯a, ¯b ∈ Zm2 , d(E(¯a), E(¯b)) ≥ 2k + 1. 2

1. Niech funkcja (m,m+1)-kodowania jest okre´slona w nast¸epuj¸acy spos´ob: E(a1...am)

= (a1, ..., am, am+1) gdzie am+1 = 0, je´sli Σi=1m ai jest parzysta i am+1 = 1, je´sli Σmi=1ai jest nieparzysta. Dla jakich k kodowanie E umo˙zliwia wykrycie b l¸ed´ow funkcji zbioru Γk?

1W spos´ob oczywisty rozszerzamy funkcj¸e D na wektory o d lugo´sci podzielnej przez n. Na pozosta le wektory D mo˙ze by´c rozszerzona w spos´ob trywialny, odwzorowuj¸ac je w wektor zerowy.

1

(2)

2. Niech funkcja (1,3)-kodowania jest okre´slona w nast¸epuj¸acy spos´ob: E(0) = (000) i E(1) = (111). Znale´z´c funkcj¸e dekodowania koryguj¸ac¸a wszystkie b l¸edy zbioru Γ1.

Kodowanie blokowe E nazywamy kodowaniem grupowym, je´sli E(Zm2 ), zbi´or s l´ow kodowych, tworzy podgrup¸e grupy Zn2 wzgl¸edem dodawania w Z2.

Uwaga 2.2. W kodowaniu grupowym minimalna odleg lo´s´c pomi¸edzy wektorami zbioru E(Zm2 ) jest r´owna minimalnej wadze nietrywialnego wektora tego zbioru. 2

3. Udowodni´c, ˙ze w kodowaniu grupowym minimalna odleg lo´s´c pomi¸edzy wek- torami zbioru H = E(Zm2 ) jest osi¸agalna dla ka˙zdego wektora tego zbioru:

∀¯b ∈ H∃¯c ∈ H(d(¯b, ¯c) jest minimalna).

Funkcja kodowania E jest kodowaniem macierzowym je´sli dla pewnej (m × n)- macierzy C (o wsp´o lczynnikach ze zbioru Z2) wiersz E(¯a) jest r´owny ¯a · C.

4. Pokaza´c, ˙ze kodowanie macierzowe jest kodowaniem grupowym.

5. Dla nast¸epuj¸acych macierzy wskaza´c dla jakich k odpowiednie kodowanie umo˙zliwia wykrycie b l¸ed´ow i korygowanie b l¸ed´ow.

1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1

,

"

1 0 1 0 1 0 1 1 1 0

#

6. M´owimy, ˙ze kodowania E i E0 : Zm2 → Zn2 s¸a r´ownowa˙zne, je´sli istnieje bijekcja E(Zm2 ) → E0(Zm2 ) zachowuj¸aca odleg lo´s´c mi¸edzy s lowami kodowymi. Wykaza´c, ˙ze w wyniku (a) dowolnej permutacji wierszy macierzy koduj¸acej C, (b) permutacji kolumn macierzy C, (c) dodania do pewnego wiersza innego pomno˙zonego przez sta l¸a - otrzymamy now¸a macierz generuj¸aca kodowanie r´ownowa˙zne z kodowaniem macierzy C.

Niech funkcja kodowania E : Zm2 → Zn2 jest okre´slona przez (m × n)-macierz C. Macierz C wymiaru n × (n − m) nazywa si¸e macierz¸a sprawdzania parzysto´sci (macierz¸a kontroln¸a), je´sli C · C = 0 i kolumny macierzy C s¸a liniowo niezale˙zne.

Uwaga 2.3. Dla ka˙zdej macierzy koduj¸acej C istnieje macierz sprawdzania parzysto´sci C. Wtedy dla ka˙zdego s lowa kodowego ¯w zachodzi ¯w · C = ¯0. Wtedy minimalna waga niezerowego s lowa kodowego jest r´owna najmniejszej liczbie wierszy macierzy C, kt´ore po dodaniu do siebie daj¸a ¯0. 2

7. Znale´z´c macierze sprawdzania parzysto´sci dla macierzy kodowych zadania 5.

Funkcja kodowania E : Zm2 → Zn2 nazywa si¸e kodowaniem wielomianowym, je´sli dla pewnego g(x) ∈ Z2[x] (nazywanego wielomianem generuj¸acym) je´sli E(¯a) = ¯b, to bnxn−1+ ... + b1 = g(x) · (amxm−1+ ... + a1). (zak ladamy, ˙ze je´sli g(x) = gkxk+ ... + g0, to g0 6= 0 6= gk).

Uwaga 2.4. Kodowanie wielomianowe jest kodowaniem macierzowym. Je´sli wielomian generuj¸acy ma posta´c g(x) = gkxk + ... + g0, to odpowiednia macierz (m × (m + k)) jest r´owna :

2

(3)

g0 g1 g2 .. .. gk 0 .. .. 0 0 g0 g1 .. .. .. gk 0 .. 0 .. .. .. .. .. .. .. .. .. ..

0 .. .. .. g0 .. .. .. .. gk

2

8. Znale´z´c macierze dla wielomian´ow generuj¸acych: 1 + x i 1 + x + x2.

Uwaga 2.5. Minimalny odst¸ep mi¸edzy dwoma s lowami kodowymi jest r´owny minimalnej wadze w(a(x) · g(x)) dla ¯a ∈ Zm2 \ {¯0} (przez a(x) oznaczamy wielomian amxm−1+ ... + a1)). 2

Twierdzenie 2.6. Je´sli wielomian g(x) nie jest dzielnikiem ˙zadnego wielomianu postaci xk− 1, gdzie k < n, to dla (m,n)-kodowania generowanego przez wielomian g(x) minimalny odst¸ep mi¸edzy s lowami kodowymi jest r´owny 3. 2

Wielomian g(x) stopnia k nad Zp nazywamy pierwotnym, je´sli g(x)|(xm− 1) dla m = pk−1 i dla ˙zadnego innego mniejszego m. Wtedy pk−1 nazywamy wyk ladnikiem wielomianu g(x).

9. Pokaza´c, ˙ze x3 + x2 + 1 (wielomian generuj¸acy (4,7)-kod Hamminga) jest wielomianem pierwotnym.

Twierdzenie 2.7. Je´sli wielomian g(x) = (1 + x)h(x) nad Z2 generuje (m,n)- kodowanie E(¯z), i h(x) ma wyk ladnik > n, to dowolna kombinacja dw´och b l¸ed´ow pojedy´nczych lub podw´ojnych (s¸asiaduj¸acych) mo˙ze by´c wykryta. 2

W ka˙zdej warstwie podgrupy H = E(Zm2 ) ≤ Zn2 wybieramy element o najmniejszej wadze ¯c, g l´owny reprezentant warstwy (zak ladamy, ˙ze ¯0 reprezentuje H). Wtedy ka˙zdy wektor ¯z zbioru Zn2 ma jednoznaczne przedstawienie w postaci ¯cz+ ¯h, gdzie ¯h ∈ H i

¯

cz jest reprezentantem g l´ownym warstwy ¯z + H.

Dekodowanie D(¯z) = E−1(¯z − ¯cz) nazywamy dekodowaniem poprzez g l´ownych reprezentant´ow warstw.

Uwaga 2.8. W dekodowaniu poprzez g l´ownych reprezentant´ow warstw mini- malna odleg lo´s´c od ¯z do elementu zbioru H jest r´owna w(¯cz). 2

10. Niech C b¸edzie macierz¸a sprawdzania parzysto´sci. Iloczyn ¯w · C nazywa si¸e syndromem s lowa ¯w ∈ Zn2.

(a) Pokaza´c, ˙ze istnieje naturalna bijekcja mi¸edzy zbiorem syndrom´ow a g l´ownymi reprezentantami warstw.

(b) Wykaza´c, ˙ze warstwa, kt´orej syndromem jest ¯v, zawiera wektor o wadze r wtedy i tylko wtedy gdy pewna kombinacja r wierszy macierzy C jest r´owna ¯v.

(m, n)-Kodowanie E koryguj¸ace b l¸edy o wadze k, nazywa si¸e doskona lym, je´sli istnieje funkcja dekodowania D : Zn2 → Zm2 taka, ˙ze dla ka˙zdego ¯a ∈ Zm2 zachodzi

D−1(¯a) = {¯b : d(¯b, E(¯a)) ≤ k}.

Wtedy minimalna odleg lo´s´c od ka˙zdego ¯z ∈ Zn2 do elementu zbioru H jest ≤ k.

3

(4)

11. Pokaza´c, ˙ze parametry kodowania doskona lego spe lniaj¸a r´owno´s´c 1 + n + ... + (nk) = 2n−m.

12. W przypadku k = 1 kodowanie jest doskona le wtedy i tylko wtedy gdy g l´owni reprezentanci warstw maj¸a wag¸e 1.

Kod Hamminga (kodowanie doskona le dla k = 1). Niech r b¸edzie dowoln¸a liczb¸a naturaln¸a i niech m := 2r − 1 − r i n := 2r − 1. Wtedy zachodzi r´owno´s´c zadania 11: 1 + n = 2r = 2n−m.

Dodatni¸a liczb¸e i ≤ n przedstawiamy w systemie dw´ojkowym jako wektor αi1αi2...αir

(zak ladaj¸ac i = αi1+ αi22 + ... + αir2r−1). Niech macierz C (kt´ora b¸edzie pe lni´c rol¸e macierzy sprawdzania parzysto´sci) b¸edzie okre´slona w nast¸epuj¸acy spos´ob:

α11 α12 .. .. .. α1r α21 α22 .. .. .. α2r .. .. .. .. .. ..

αn1 αnr .. .. .. αnr

Wycinaj¸ac w C wszystkie wiersze o numerach 2i (tzn. zawieraj¸ace dok ladnie jedn¸a jedynk¸e) otrzymujemy macierz pomocnicz¸a M . Niech ν(i) b¸edzie numerem i-go wier- sza macierzy M w macierzy C.

Macierz kodowania C definiujemy w nast¸epuj¸acy spos´ob: jako 2i−1-t¸a kolumn¸e macierzy C bierzemy i-t¸a kolumn¸e macierzy M . W pozosta lych m (= n − r) kolum- nach macierzy C umieszczamy po kolei m-wektory postaci ¯ei = (0, ..., 0, 1, 0, ..., 0) (gwarantuje to, ˙ze wiersze macierzy C s¸a liniowo niezale˙zne). Latwo wida´c, ˙ze wektor

¯

ei b¸edzie znajdowa l si¸e w C na miejscu ν(i).

Dla sprawdzenia r´owno´sci C · C = 0, rozwa˙zmy iloczyn i-go wiersza ¯c macierzy C i k-ej kolumny ¯c macierzy C. Poniewa˙z pierwszy niezerowy element w ¯c znajduje si¸e na miejscu 2k−1 (tzn. = α2k−1,k) a pozosta le elementy o numerach postaci 2j s¸a r´owne 0, otrzymujemy

¯

c¯c = αν(i),k · 1 + 1 · αν(i),k = 0.

Funkcja dekodowania powy˙zszego kodu jest okre´slona w nast¸epuj¸acy spos´ob. Dla

¯b ∈ Zn2 obliczamy syndrom ¯b · C, kt´ory b¸ed¸ac ci¸agiem z Zr2, jest postaci¸a dw´ojkow¸a pewnej liczby j ∈ {1, 2, ..., n}. Wtedy wektor (b1, ..., bj + 1, bj+1, ..., bn) ma trywialny syndrom (tzn. jest wektorem kodowym). Ci¸ag wsp´o lrz¸ednych, numery kt´orych nie s¸a pot¸egami dw´ojki, definiuje wektor - wynik dekodowania.

Opisany spos´ob dekodowania pokazuje, ˙ze kodowanie Hamminga jest doskona le.

13. Stosuj¸ac (4,7)-kod Hamminga otrzymali´smy s lowo 0111110. Zak ladaj¸ac wyst¸apienie nie wi¸ecej ni˙z jednego b l¸edu, znale´z´c s lowo transmitowane.

14. Zbudowa´c (11,15)-kod Hamminga.

4

Cytaty

Powiązane dokumenty

Niech ka˙zdy kod elementarny schematu Σ b¸edzie nierozk ladalny w iloczyn s l´

ALGEBRAICZNE ASPEKTY KRYPTOGRAFII LISTA 3: Cia la

w  kodach 2.1 i  2.2, znajdu- ją się rozwiązania uczniów, którzy poko- nali zasadniczą trudność zadania, czyli po- prawnie zastosowali twierdzenie Pitagorasa do

Jeśli przyjmiemy, że B jest kodem losowej permutacji, a każda permutacja jest jed- nakowo prawdopodobna (czyli pojawia się z prawdopodobieństwem 1 /n!), to można pokazać,

Turbo-kodowanie dla transmisji ciągłej (ang. Stream-oriented Turbo Coding) charakteryzuje się mniejszym opóźnieniem przesyłania danych oraz poprawą jakości

Algorytm uczenia polega na wykonywaniu modyfikacji wag dla wszystkich wzorów w zbiorze uczącym, albo do momentu w którym błąd sieci będzie się wystarczająco mały, albo

[r]

Zasadniczo chodzi tylko o dodawanie, bo pozostałe działania sprowadzają się do dodawania (odejmowanie to dodawanie liczb różnych znaków np.. W przypadku liczb rzeczywistych