4. Systemy algebraiczne i wielomiany nad ciałami zastosowania Rodzaje systemów algebraicznych ciała, grupy, pierścienie

Podobne dokumenty
WŁADYSŁAW MOCHNACKI KODY KOREKCYJNE I KRYPTOGRAFIA

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Ciała skończone. 1. Ciała: podstawy

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

0.1 Pierścienie wielomianów

Matematyka dyskretna

1.1 Definicja. 1.2 Przykład. 1.3 Definicja. Niech G oznacza dowolny, niepusty zbiór.

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Matematyka dyskretna

Podstawowe struktury algebraiczne

Pierścień wielomianów jednej zmiennej

Laboratorium ochrony danych

0 + 0 = 0, = 1, = 1, = 0.

Grupy, pierścienie i ciała

1. Wykład NWD, NWW i algorytm Euklidesa.

Macierze. Rozdział Działania na macierzach

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

1 Określenie pierścienia

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Zadania z algebry liniowej - sem. I Struktury algebraiczne

Algorytmy i struktury danych. Wykład 4

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

1. Określenie pierścienia

DB Algebra liniowa semestr zimowy 2018

Przestrzenie wektorowe

Przestrzenie liniowe

Matematyka dyskretna

W11 Kody nadmiarowe, zastosowania w transmisji danych

Przykładowe zadania z teorii liczb

Zadania z algebry liniowej - sem. I Przestrzenie liniowe, bazy, rząd macierzy

Algebra abstrakcyjna

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Matematyka dyskretna

Liczby zespolone. x + 2 = 0.

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Działania Definicja: Działaniem wewnętrznym w niepustym zbiorze G nazywamy funkcję działającą ze zbioru GxG w zbiór G.

3. FUNKCJA LINIOWA. gdzie ; ół,.

3 Przestrzenie liniowe

O MACIERZACH I UKŁADACH RÓWNAŃ

Pokazać, że wyżej zdefiniowana struktura algebraiczna jest przestrzenią wektorową nad ciałem

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Podstawowe struktury algebraiczne

Układy równań liniowych

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Analiza funkcjonalna 1.

1 Zbiory i działania na zbiorach.

Chcąc wyróżnić jedno z działań, piszemy np. (, ) i mówimy, że działanie wprowadza w STRUKTURĘ ALGEBRAICZNĄ lub, że (, ) jest SYSTEMEM ALGEBRAICZNYM.

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

13 Układy równań liniowych

Skończone rozszerzenia ciał

R n = {(x 1, x 2,..., x n ): x i R, i {1,2,...,n} },

Algebra liniowa. 1. Macierze.

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

1. Liczby zespolone i

020 Liczby rzeczywiste

WYRAŻENIA ALGEBRAICZNE

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

1. R jest grupą abelową względem działania + (tzn. działanie jest łączne, przemienne, istnieje element neutralny oraz element odwrotny)

1. Liczby zespolone. Jacek Jędrzejewski 2011/2012

Matematyka liczby zespolone. Wykład 1

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ. 1. Ciała

Paweł Gładki. Algebra. pgladki/

1 Elementy logiki i teorii mnogości

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

3. Wykład Układy równań liniowych.

Arytmetyka liczb binarnych

, A T = A + B = [a ij + b ij ].

cx cx 1,cx 2,cx 3,...,cx n. Przykład 4, 5

Technologie informacyjne. Laboratorium dodatkowe N2.2. Formatowanie tekstów naukowo-technicznych

Zadania egzaminacyjne

Technologie Informacyjne

Zadania z Algebry Studia Doktoranckie Instytutu Matematyki Uniwersytetu Śląskiego 1

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

= b i M i [x], gdy charf = p, to a i jest pierwiastkiem wielomianu x n i

Algebra. Jakub Maksymiuk. lato 2018/19

1 Macierze i wyznaczniki

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Maciej Grzesiak. Wielomiany

Wybrane zagadnienia teorii liczb

3. Macierze i Układy Równań Liniowych

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Wielomiany. dr Tadeusz Werbiński. Teoria

Procesy stochastyczne WYKŁAD 2-3. Łańcuchy Markowa. Łańcuchy Markowa to procesy "bez pamięci" w których czas i stany są zbiorami dyskretnymi.

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Kongruencje twierdzenie Wilsona

Detekcja i korekcja błędów w transmisji cyfrowej

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

Wektory i wartości własne

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Indukcja matematyczna. Zasada minimum. Zastosowania.

1. LICZBY DZIAŁ Z PODRĘCZNIKA L.P. NaCoBeZu kryteria sukcesu w języku ucznia

Transkrypt:

Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik Robert Ochrona i poufność danych Wykład 4. 4. Systemy algebraiczne i wielomiany nad ciałami zastosowania 4.1. Rodzaje systemów algebraicznych ciała, grupy, pierścienie 4.2. Wielomiany nad ciałami skończonymi 4.3. Przestrzeń wektorowa nad ciałem binarnym 4.4. Generowanie sekwencji okresowych 4.5. Sekwencje pseudolosowe i ich własności 4.6. Generatory sekwencji okresowych i pseudolosowych

Zródła: Mochnacki W., Kody korekcyjne i kryptografia, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2000. Pojęcie ciała skończonego wprowadzone zostało do matematyki w XIX wieku przez matematyka francuskiego Evariste Galois (1811-1832), który zajmował się teorią równań algebraicznych. Systemy algebraiczne Zbiór z określonymi działaniami nazywamy systemem algebraicznym. Do najczęściej stosowanych klas systemów algebraicznych należą: grupy, pierścienie, ciała. Definicja ciała algebraicznego Ciałem nazywamy zbiór A, zawierający więcej niż jeden element, dla którego zdefiniowano operacje dodawania i mnożenia w określonym sensie, oraz spełniający następujące aksjomaty: A1. a,b A c A a + b = c zamkniętość dodawania, A2. a,b A a + b = b + a przemienność dodawania, A3. a,b,c A a + (b + c) = (a + b) + c łączność dodawania, A4. a A a + 0 = 0 + a = a istnienie zera, A5. a A b A a + b = b + a = 0 istnienie elementu przeciwnego b=-a, M1. a,b A c A a b = c zamkniętość mnożenia, M2. a,b A a b = b a przemienność mnożenia, M3. a,b,c A a (b c) = (a b) c łączność mnożenia, M4. a A a 1 = 1 a = a istnienie jedynki, M5. a A (a 0) b A a b = b a = 1 istnienie elementu odwrotnego b=a -1, D. a,b,c A a (b + c) = (b + c) a = a b + a c rozdzielność mnożenia względem dodawania. 2

Aksjomaty A1 A5 gwarantują, że zbiór A stanowi grupę przemienną względem dodawania - grupę addytywną ciała A. Aksjomaty M1 M5 orzekają, że zbiór elementów A różnych od zera stanowi grupę przemienną względem mnożenia - grupę multyplikatywną ciała A. Definicja pierścienia algebraicznego Pierścień jest systemem algebraicznym, który spełnia aksjomaty ciała, oprócz warunku elementu odwrotnego M5 (np. liczby całkowite mod m razem z operacjami dodawania i mnożenia tworzą pierścień przemienny). Definicje grupy przemiennej dodawania (aksjomaty A1 do A5) oraz grupy przemiennej mnożenia (aksjomaty M1 do M5) podano w ramach definicji ciała. W tabelce zebrano podsumowanie własności przedstawionych systemów algebraicznych wykorzystywanych w kryptografii i teorii kodów. Klasyfikacja ciał algebraicznych Ciało może być skończone (skończona liczba elementów) lub nieskończone (np. ciało liczb rzeczywistych) w zależności od zbioru elementów ciała. Ciała skończone zwane są też ciałami Galois i oznacza się je przez GF(q), co jest skrótem od Galois Field (np. można je utożsamiać ze skończonymi alfabetami z określonymi działaniami). Rozróżnia się ciała skończone proste (prime fields) i rozszerzenia ciał skończonych (extension fields). Tego typu ciała znajdują zastosowania w kryptografii i teorii kodów. 3

Podobnie można mówić o rozszerzeniach ciał nieskończonych, np. rozszerzeniem ciała liczb rzeczywistych jest ciało liczb zespolonych dodajemy wirtualny (zespolony) element i, będący pierwiastkiem równania kwadratowego x 2 + 1 = 0, które nie ma rozwiązań w ciele liczb rzeczywistych, tj. i 2 = -1). Rozszerzenia ciał skończonych w literaturze technicznej nazywane są ciałami rozszerzonymi. Ciała skończone proste Ciała skończone proste mają liczbę elementów równą liczbom pierwszym p, a oznaczamy je przez GF(p). Elementy takiego ciała są liczbami ze zbioru {0,1,2,, p 1}. Skończone ciało proste jest zatem skończonym zbiorem elementów z dwoma działaniami: dodawaniem i mnożeniem modulo p <{0,1,2,, p 1}, +, >. Ciało takie jest zbiorem reszt modulo p, gdzie p jest liczbą pierwszą. Zbiór wszystkich elementów GF( p) wraz z dodawaniem modulo p stanowi przemienną skończoną grupę addytywną postaci: <{0,1,2,, p 1}, +>. Podobnie, zbiór wszystkich niezerowych elementów GF(p) tworzy przemienną skończoną grupę multyplikatywną: Ciała skończone rozszerzone <{0,1,2,, p 1}, >. Ciała rozszerzone zawierają elementy, które można skonstruować w oparciu o różne modele matematyczne np. wektory, macierze, wielomiany. Ciało rozszerzone jest tworzone na bazie ciała prostego lub innego ciała rozszerzonego poprzez uzupełnienie o dodatkowe elementy. 4

Liczba elementów rozszerzonych ciał skończonych jest równa potędze liczby pierwszej p, gdzie p jest liczbą elementów ciała prostego, jeśli tworzymy rozszerzenie ciała prostego lub p jest liczbą elementów ciała rozszerzonego, jeśli generujemy rozszerzenie ciała rozszerzonego. Ciało rozszerzone oznaczamy przez GF(q), gdzie q = p m, a m jest liczbą naturalną (nazywaną stopniem rozszerzenia ciała). W ciałach rozszerzonych elementy ciała a, b i c nie są liczbami, a symbole działań + i nie mają nic wspólnego z dodawaniem i mnożeniem liczb znanym z arytmetyki. W szczególności, niezerowe elementy ciał rozszerzonych można wyrazić za pomocą potęg tzw. elementu pierwotnego (generatora ciała) oznaczanego jako α i definiowanego jako wektor, macierz lub wielomian. Wówczas elementy ciała rozszerzonego GF(q) = GF(p m ), gdzie q=p m, zapisujemy w postaci: { 0, 1, α, α 2,, α q 2 }. Zbiór ten zawiera q elementów. Konstrukcja ciała prostego Skończone ciała proste można skonstruować dla zbiorów liczbowych o liczbie elementów równej liczbie pierwszej p. Ciała takie oznaczamy symbolem GF(p). Elementami ciała prostego są liczby: 0, 1, 2,..., p 1. Działania w ciałach prostych są takie same jak działania arytmetyczne z operacją modulo p. Ciało proste jest więc ciałem reszt modulo p. Sumę S i iloczyn P dwóch elementów ciała prostego a i b określają zależności: S a + b (mod p) P a b (mod p). Konstrukcja ciała polega na utworzeniu zbioru elementów ciała i wyznaczeniu tabliczek dodawania i mnożenia. 5

W praktyce najczęściej nie korzystamy z tabliczek działań, lecz na bieżąco obliczamy sumy i iloczyny elementów ciała prostego. W szczególności tabliczka dodawania ciała skończonego jest kwadratem łacińskim. W kwadracie łacińskim we wszystkich kolumnach i wierszach każdy element ciała pojawia się tylko raz. Ta właściwość tabliczki dodawania wynika z aksjomatu zamkniętości dodawania A1. Podobną właściwość ma tabliczka mnożenia w części zawierającej elementy grupy multyplikatywnej. Przykłady ciał prostych Ciało GF(2) Najprostszym ciałem skończonym jest ciało binarne GF(2). Działania w ciele GF(2) i struktury tworzone nad tym ciałem są używane do opisu pracy komputerów i transmisji danych. Ciało GF(2) jest ciałem prostym, a jego elementami są 0 i 1. Operacje dodawania i mnożenia elementów wykonywane są modulo p=2. Tabliczki dodawania i mnożenia elementów w ciele GF(2) mają następującą postać. Dodawanie w ciele GF(2) nazywa się dodawaniem modulo dwa. Wówczas, 1+1=0, zatem 1= 1. Oznacza to, że w ciele GF(2) dodawanie jest równoważne odejmowaniu, a w wielomianach utworzonych nad ciałem GF(2) znak odejmowania można zastąpić znakiem dodawania. Operację dodawania modulo dwa można zastąpić znakiem dodawania. W układach cyfrowych operację dodawania modulo dwa realizuje się za pomocą bramki logicznej Ex-OR. Nad ciałem GF(2) można utworzyć wielomiany i skonstruować kody korekcyjne. Współczynnikami wielomianu utworzonego nad ciałem GF(2) są 6

elementy tego ciała, np. dla x 3 + x + 1 = 1x 3 + 0x 2 + 1x 1 + 1 są to współczynniki 1 0 1 1. Ciało GF(7) Jako przykład wieloelementowego skończonego ciała prostego rozpatrzmy ciało GF(7). Elementami ciała GF(7) są liczby: 0, 1, 2, 3, 4, 5, 6. Tabliczki działań ciała GF(7) pokazano poniżej. Element przeciwny ciała obliczamy za pomocą aksjomatu A5, np. 2+5 = 0, czyli 2 = 5. Element odwrotny ciała obliczamy za pomocą aksjomatu M5, np. 3 5 = 1, czyli 3 = 1/5. Rzędy multyplikatywne elementów ciała i elementy pierwotne Niezerowe elementy ciała charakteryzuje rząd multyplikatywny. Rzędem multyplikatywnym dowolnego elementu ciała a jest najmniejsza liczba naturalna e (e > 0) taka, że a e = 1. W przypadku ciał prostych GF(p), p liczba pierwsza, obliczenia wykonujemy modulo p. Na przykład rzędem multyplikatywnym elementu 5 ciała GF(7) jest 6, 7

ponieważ 5 6 = 1 (mod 7). Rząd mutyplikatywny elementu ciała GF(p) jest dzielnikiem p 1. Elementy ciała GF(7) mają następujące rzędy multyplikatywne: element 1 rząd multyplikatywny 1, elementy 2 i 4 rząd multyplikatywny 3, elementy 3 i 5 rząd multyplikatywny 6, element 6 rząd multyplikatywny 2. Np. 2 1 mod 7 = 2 2 2 mod 7 = 4 2 3 mod 7 = 1 (e = 3; najmniejsza potęga, dla której jest 1) 2 4 mod 7 = 2 2 5 mod 7 = 4 2 6 mod 7 = 1 Podobnie: 3 1 mod 7 = 3 3 2 mod 7 = 2 3 3 mod 7 = 6 3 4 mod 7 = 4 3 5 mod 7 = 5 3 6 mod 7 = 1 (e = 6; najmniejsza potęga, dla której jest 1) 3 7 mod 7 = 3 3 8 mod 7 = 2 Elementy ciała GF(p) mające rząd multyplikatywny równy p 1 nazywamy elementami pierwotnymi ciała lub inaczej generatorami ciała, tj. zbioru reszt mod p. Każdy niezerowy element ciała można wyrazić w postaci cyklicznej jako potęgę dowolnego elementu pierwotnego ciała. Np. w ciele GF(7) elementami pierwotnymi (generatorami) ciała są 8

liczby 3 i 5; wówczas, 1 = 3 6 mod 7 = 5 6 mod 7; 2 = 3 2 mod 7 = 5 4 mod 7; 3 = 3 1 mod 7 = 5 5 mod 7; 4 = 3 4 mod 7 = 5 2 mod 7; 5 = 3 5 mod 7 = 5 1 mod 7; 6 = 3 3 mod 7 = 5 3 mod 7; W ciele może być więcej niż jeden element pierwotny. Liczbę elementów pierwotnych n ciała GF(p) można określić z zależności: gdzie ϕ jest funkcją Eulera. n = ϕ (p 1), Każdy element niezerowy ciała generuje grupę cykliczną. Z kolei każdy element pierwotny ciała generuje grupę multyplikatywną ciała. W tak utworzonej grupie będą wszystkie niezerowe elementy ciała. Elementy grupy multyplikatywnej o rzędzie multyplikatywnym większym od 1 i mniejszym od p 1 generują podgrupy multyplikatywne. Taka podgrupa zachowuje działania grupy. Grupę cykliczną generowaną przez dowolny element ciała skończonego otrzymamy, biorąc kolejne potęgi tego elementu. Na przykład element 5 ciała GF(7) generuje grupę multyplikatywną: 5, 4, 6, 2, 3, 1, gdyż kolejne potęgi elementu 5 wynoszą: 5, 5 5=4, 4 5=6, 6 5=2, 2 5=3, 3 5=1. Podobnie element 2 generuje podgrupę trzyelementową: 2, 4, 1. Charakterystyka ciała Charakterystyką ciała skończonego jest najmniejsza liczba naturalna n, dla której suma n dowolnych, tych samych elementów ciała wynosi 0, tj. n i=1 x i = 0 gdzie x i jest dowolnym niezerowym elementem ciała. Ciało GF(2) ma charakterystykę 2, ponieważ 1+1 = 0. Ciało GF(7) ma charakterystykę 7, ponieważ np. 3+3+3+3+3+3+3=0. 9

Jeśli liczba n nie istnieje, to charakterystyka ciała jest z definicji równa zero, np. ciała liczb wymiernych, rzeczywistych i zespolonych mają charakterystykę zero. W przypadku ciał skończonych prostych charakterystyka ciała n = p jest liczbą pierwszą, a ciało rozszerzone zachowuje charakterystykę ciała prostego, nad którym zostało skonstruowane rozszerzenie. Wielomiany nad ciałami skończonymi W teorii kodowania są szeroko wykorzystywane wielomiany nad ciałami skończonymi. Wielomian stopnia m nad ciałem GF(q) może być w ogólnej postaci przedstawiony jako: Wielomian jest unormowany, gdy a m = 1. Wielomian można zapisać również w postaci ciągu współczynników: a m, a m 1, a m 2,, a 1, a 0. Wtedy potęga zmiennej określa miejsce współczynnika w ciągu. Pokazano to na poniższych przykładach. Wielomian nad GF(2): x 3 + x + 1, zapis w postaci 1 0 1 1. Wielomian nad GF(7): x 3 + 5x + 3, zapis w postaci 1 0 5 3. Wielomian nad GF(8): x 4 + α 6 x 2 + x + α 2, zapis w postaci 1 0 α 6 1 α 2. Operacje na wielomianach Na wielomianach nad ciałami skończonymi można wykonywać operacje algebraiczne (dodawanie, odejmowanie, mnożenie i dzielenie), stosując wielomiany lub ciągi ich współczynników. 10

W teorii informacji wykorzystywane są głównie wielomiany nad ciałami binarnymi, dla których odejmowanie można zastąpić dodawaniem współczynników wielomianów modulo 2. Dzięki temu dzielenie wielomianów nad GF(2) ma postać: Inny przykład: x 3 + x + 1 = (x+1)(x 2 + x) + 1, tj. 1011 = 11 * 110 + 1 110 ------------- 11 1011 + 11 ---------- =11 11 ------- =01 - reszta 0x 1 + 1 = 1 Wielomian odwrotny Każdy wielomian nad ciałem skończonym ma wielomian odwrotny. Dla wielomianu zapisanego w postaci ogólnej za pomocą sumy potęg wielomian odwrotny p*(x) oblicza się następująco: p (x) = xm a 0 p( 1 x ). 11

Dla wielomianów nad GF(2), podanych w postaci ciągu współczynników, wielomian odwrotny można uzyskać, zapisując ciąg współczynników w odwrotnej kolejności. Ponieważ wielomian x 6 + x + 1 możemy zapisać, jako 1000011, więc wielomianem odwrotnym będzie 1100001 = x 6 + x 5 + 1. W dowolnym ciele pierwiastki wielomianu odwrotnego p*(x) do wielomianu p(x) są odwrotnościami pierwiastków wielomianu p(x). Przykład obliczania wielomianu odwrotnego do wielomianu p(x) = x 6 + x + 1 w oparciu o wzór: p (x) = x 6 ( 1 x 6 + 1 x + 1) = x6 + x 5 + 1. Niektóre wielomiany odwrotne mają taką samą postać jak wielomiany oryginalne. Wielomiany takie nazywamy samo-odwrotnymi. Na przykład wielomianami samo-odwrotnymi są wielomiany: x 2 + x + 1 oraz x 6 + x 3 + 1. Wielomiany nierozkładalne i pierwotne Każdy wielomian stopnia dodatniego o współczynnikach z ciała skończonego GF(q) jest albo nierozkładalny, albo jest iloczynem wielomianów nierozkładalnych nad ciałem GF(q). Wielomian p(x) stopnia m jest nierozkładalny nad GF(q), jeśli nie dzieli się przez dowolny wielomian stopnia większego od zera i mniejszego od m (najmniejszym dzielnikiem wielomianu jest jednomian ax + b). W przeciwnym przypadku wielomian jest rozkładalny. 12

Rodzaje wielomianów pokazano na kolejnym rysunku. Przykłady wielomianów nierozkładalnych nad GF(2): x + 1, x 2 + x + 1, x 4 + x + 1. Przykłady wielomianów rozkładalnych nad GF(2): x 4 + x 3 + x 2 + 1 = (x 3 + x + 1)(x + 1), x 2 + 1 = (x+1)(x+1). Nie istnieją ogólne kryteria pozwalające w łatwy sposób odróżnić wielomiany rozkładalne od nierozkładalnych nad danym ciałem. Kryteria takie można podać tylko dla niektórych ciał, np. ciał liczb rzeczywistych, wymiernych i zespolonych. Wielomiany nierozkładalne nad ciałami skończonymi odgrywają ważną rolę w teorii ciał skończonych, kryptografii i teorii kodów korekcyjnych. Służą one, między innymi, do: - konstruowania ciał rozszerzonych; - wyznaczania sekwencji pseudolosowych; - konstruowania niektórych kodów korekcyjnych. 13

Metody znajdowania wielomianów nierozkładalnych Jedną z metod wyznaczania wielomianów nierozkładalnych jest metoda obliczania wielomianów minimalnych elementów ciała skończonego, tj. wielomianów minimalnego stopnia, których pierwiastkami są elementy ciała rozszerzonego. W tym celu należy skonstruować ciało rozszerzone w oparciu o wybrany wielomian pierwotny, przy czym jeden z wielomianów pierwotnych, potrzebny do konstrukcji tego ciała, znaleźć metodą prób i błędów. Inny sposób polega na wykorzystaniu tablic wielomianów nierozkładalnych, które są dołączane do podręczników dotyczących ciał skończonych lub kodów korekcyjnych. Wielomiany pierwotne i niepierwotne Wielomiany nierozkładalne dzielą się na pierwotne i niepierwotne. Wielomian nierozkładalny stopnia m jest wielomianem pierwotnym nad GF(q), jeśli wszystkie jego pierwiastki są elementami pierwotnymi ciała rozszerzonego stopnia m, tj. ciała GF(q m ), skonstruowanego w oparciu o ten wielomian. Znajdowanie pierwiastków wielomianów jest jednak operacją złożoną. Można łatwo sprawdzić, czy wielomian nierozkładalny jest pierwotny, czy też nie, korzystając z metody polegającej na wygenerowaniu sekwencji okresowej stowarzyszonej z wielomianem i wyznaczeniu okresu tej sekwencji. Jeśli okres T sekwencji okresowej, wygenerowanej za pomocą danego wielomianu stopnia m, osiąga wartość maksymalną, która wynosi: T = q m 1, to możemy stwierdzić, że wielomian jest pierwotny. 14

Wielomiany pierwotne stopnia m istnieją dla każdej dodatniej liczby całkowitej m. Liczbę wielomianów pierwotnych stopnia m nad ciałem GF(q) można obliczyć z zależności: gdzie ϕ(x) jest funkcją Eulera. Przykładowe liczby wielomianów pierwotnych stopnia m nad ciałem GF(2). W kolejnych tabelach podano wielomiany nierozkładalne nad ciałami prostymi GF(2), GF(3), GF(5) i GF(7). Tabele zawierają ciągi współczynników wielomianów: a m, a m 1, a m 2,, a 1, a 0 oraz okresy generowanych sekwencji. Wielomiany nierozkładalne, które generują sekwencje o okresie p m 1, są wielomianami pierwotnymi, a pozostałe wielomianami niepierwotnymi. W tabelach pominięto wielomiany odwrotne. 15

Wielomiany nierozkładalne nad GF(2) Wielomiany nierozkładalne nad GF(3) Wielomiany nierozkładalne nad GF(5) 16

Wielomiany nierozkładalne nad GF(7) Przestrzeń wektorowa nad ciałem binarnym Uporządkowany zbiór n elementów vi zapisanych w postaci wierszowej lub kolumnowej nazywamy wektorem n-wymiarowym. Jeśli współrzędnymi wektorów są elementy binarne, 1 lub 0, to możliwe jest wygenerowanie 2 n wektorów n-wymiarowych, które tworzą przestrzeń wektorową Vn nad GF(2). Przestrzeń taka odgrywa ważną rolę w teorii kodowania. W teorii kodowania stosuje się najczęściej dodawanie wektorów i mnożenie przez skalar. Sumę dwóch wektorów v i u oblicza się w następujący sposób: Iloczyn liczby a i wektora v jest wektorem o postaci: Podane działania na wektorach są działaniami przemiennymi i łącznymi. 17

Wektory liniowo niezależne i liniowo zależne Układ wektorów v1, v2,, vk, należących do przestrzeni wektorowej Vn, nazywamy liniowo zależnym, jeśli istnieją takie liczby a1, a2,, ak, nie wszystkie jednocześnie równe zeru, dla których zachodzi: a1v1 + a2v2 + + akvk = 0. Na to, aby układ wektorów v1, v2,, vk był liniowo zależny, potrzeba i wystarczy, aby jeden wektor tego układu był liniową kombinacją pozostałych wektorów. Układ wektorów v1, v2,, vk, gdzie vi Vn, nazywamy liniowo niezależnym, jeśli powyższa równość zachodzi tylko wówczas, gdy a1 = a2 = = ak = 0. Zbiór n-wymiarowych wektorów v1, v2,, vk, tworzy bazę n-wymiarowej przestrzeni, jeśli: Liczba wektorów vi w danym układzie wektorów jest identyczna z wymiarem przestrzeni, z której pochodzą te wektory. Układ wektorów jest liniowo niezależny. Wektory należące do przestrzeni wektorowej Vn można przedstawić, jako kombinację liniową wektorów bazy. Przykład przestrzeni wektorowej nad GF(2) Przestrzeń wektorowa. Niech n = 3. Przestrzeń wektorowa V3 zawiera następujące wektory: [0 0 0], [0 0 1], [0 1 0], [0 1 1], [1 0 0], [1 0 1], [1 1 0], [1 1 1]. Wektorami liniowo niezależnymi są np. wektory: [0 0 1], [0 1 0], [1 0 0 ]. Wektory te tworzą bazę przestrzeni wektorowej. Np. wektor [1 0 1] wyraża się jako kombinacja liniowa wektorów bazowych: 1*[0 0 1] + 0*[0 1 0] + 1*[1 0 0]. 18

Sekwencje okresowe nad ciałami skończonymi Każdy wielomian nad ciałem skończonym może być użyty do generowania nieskończonej sekwencji okresowej. Aby wygenerować sekwencję okresową, należy napisać zależność rekurencyjną stowarzyszoną z wybranym wielomianem. Rozważmy wielomian unormowany nad ciałem skończonym GF(q) zapisany w postaci ogólnej: p(x) = x m + a m-1 x m-1 + a m-2 x m-2 + + a 1 x + a 0, gdzie a i GF(q) Przyrównując ten wielomian do zera, otrzymamy: p(x) = 0, x m + am-1x m-1 + am-2x m-2 + + a1x + a0 = 0, tj. x m = - am-1x m-1 - am-2x m-2 - - a1x - a0, Zależność rekurencyjna stowarzyszona z tym wielomianem będzie postaci (za x m wstawiamy s j+m ): (*) sj+m = - am-1sj+m-1 - am-2sj+m-2 - - a1sj+1 - a0sj, gdzie j=0, 1, 2, 3,,. Działania należy tu wykonywać zgodnie z zasadami rachowania w ciele GF(q). W przypadku wielomianów nad ciałami prostymi można zastąpić współczynniki z minusami ai, wartościami (q - ai), co wynika z zależności modularnej: -ai = -ai (mod q), 0 = q (mod q), czyli dodając stronami: -ai = q - ai (mod q). 19

Jeśli założymy ciąg początkowy o długości m elementów, tj. s0, s1, s2,, sm-1, ( są to dowolne elementy ciała GF(q), ale nie same 0; najwygodniej, jeśli jest to ciąg postaci 1, 0, 0,, 0, gdyż w każdym ciele są te elementy). to wówczas dla kolejnych wartości j = 0, 1, 2,, można obliczyć z podanej zależności rekurencyjnej (*) elementy sekwencji okresowej: sm, sm+1, sm+2,, itd., gdzie: s0, s1, s2,, sm-1, są dane, np. dla j=0 zachodzi: sm = - am-1sm-1 - am-2sm-2 - - a1s1 - a0s0 ; dla j=1 zachodzi: sm+1 = - am-1sm - am-1sm-1 - - a1s2 - a0s1 ; dla j=2 zachodzi: sm+2 = - am-1sm+1 - am-1sm - - a1s3 - a0s2 ; itd. Okres sekwencji Okres wygenerowanej sekwencji okresowej zależy od typu wielomianu. W przypadku, gdy wielomian jest pierwotny wyznaczona sekwencja osiąga okres maksymalny z możliwych dla wielomianów stopnia m nad ciałem GF(q). Okres maksymalny T dla wielomianu stopnia m nad ciałem GF(q) wynosi T = q m 1. Okres taki posiadają tylko sekwencje okresowe skonstruowane w oparciu o wielomiany pierwotne. Sekwencje wygenerowane w oparciu o wielomiany niepierwotne mają okres mniejszy. 20

Test sprawdzający czy wielomian jest pierwotny W celu sprawdzenia czy dany wielomian stopnia m nad GF(q) jest pierwotny wystarczy wygenerować dla tego wielomianu sekwencję okresową i wyznaczyć jej okres. Jeśli jest on równy T = q m 1, to wielomian jest pierwotny. Przykład. Generowanie sekwencji okresowej dla wielomianu nad ciałem binarnym GF(2). Niech wielomianem generującym sekwencję okresową będzie wielomian stopnia trzeciego (m=3) nad ciałem GF(2) postaci: p(x) = x 3 + x +1. Z zależności x 3 + x +1 = 0 otrzymujemy: x 3 = - x - 1 = 1x + 1 (w ciele GF(2) zachodzi -1 = 1 (mod 2) ). Zależność rekurencyjna (*) stowarzyszona z tym wielomianem ma postać: Sj+3 = Sj+1 + Sj, gdzie j=0, 1, 2, 3,. W zależności rekurencyjnej operacje dodawania i mnożenia są wykonywane zgodne z zasadami obowiązującymi w ciele GF(2). Przyjmując trzy, dowolne (ale nie same 0) elementy początkowe: s0, s1 i s2 należące do ciała GF(2), za pomocą powyższej zależności można wygenerować nieskończoną sekwencję okresową. Pierwszymi elementami takiej sekwencji będą elementy ciągu początkowego, s0, s1 i s2, a dalsze elementy sekwencji oblicza się z zależności rekurencyjnej, podstawiając kolejne wartości j = 0, 1, 2, 3,, itd. Proces generowania sekwencji pokazano w tabeli. 21

W pierwszym wierszu tabeli podano wartości parametru j. Drugi wiersz zawiera symbole elementów ciągu si, a ostatni wiersz wygenerowaną sekwencję. Okres wygenerowanej sekwencji, pokazanej w tabeli, wynosi T = 7. Okres ten spełnia zależność T = q m 1 = 2 3 1 = 7. Jest to, więc okres maksymalny dla wielomianów stopnia 3 nad GF(2). Zatem możemy wnioskować, że zastosowany wielomian jest wielomianem pierwotnym. Inne wielomiany pierwotne stopnia m= 4 i m=5 nad GF(2) i stowarzyszone z nimi sekwencje: x 4 + x + 1, 000100110101111, 0001... (m=4); T = 2 4 1 =15 x 5 + x 2 + 1, 0000100101100111110001101110101, 00001... (m=5); T = 2 5 1 = 31. Wielomiany niepierwotne nie generują sekwencji o maksymalnym okresie. Przykładem takiego wielomianu jest wielomian stopnia czwartego nad GF(2) x 4 + x 3 + x 2 + x + 1. Wielomian ten, dla ciągu początkowego 1 0 0 0, generuje sekwencję o okresie pięć: 1 0 0 0 1, 1 0 0 0... 22

Sekwencje pseudolosowe Sekwencje okresowe, generowane przez wielomiany pierwotne stopnia m nad GF(q), mają maksymalny okres definiowany wzorem T = q m 1 i nazywają się sekwencjami pseudolosowymi. Sekwencje pseudolosowe mają właściwości zbliżone do ciągów losowych, chociaż nie są w pełni ciągami losowymi. Mogą one jednak być generowane w komputerach i znajdują liczne zastosowania w kryptografii i kodach korekcyjnych. Własności sekwencji pseudolosowych Ciąg początkowy generowanej sekwencji pseudolosowej może być dowolny. Każda z 2 m 1 możliwych kombinacji początkowych, bez kombinacji złożonej z samych zer, umożliwia wygenerowanie sekwencji okresowej o tym samym okresie i kolejności elementów. Będą one tylko przesunięte względem siebie. Jeżeli ciąg początkowy będzie zawierał same zera, to zostanie wygenerowana sekwencja zawierająca same zera. Zakładamy, że wielomian pierwotny p(x) stopnia m generuje zbiór δ(m) sekwencji okresowych, zawierający 2 m 1 sekwencji o okresie 2 m 1 oraz sekwencję zerową. Będziemy się posługiwać przykładami sekwencji generowanymi przez wielomiany pierwotne czwartego (m=4) i piątego (m=5) stopnia nad GF(2): x 4 + x + 1, 000100110101111, 0001... T = 2 4 1 =15 x 5 + x 2 + 1, 0000100101100111110001101110101, 00001... T = 2 5 1 = 32. 23

Na przykład wielomian x 4 + x + 1 generuje następujący zbiór sekwencji okresowych (okres T = 15) liczba sekwencji 16. Definicje własności sekwencji pseudolosowych 24

Na kolejnym rysunku pokazano funkcję autokorelacji sekwencji pseudolosowej o okresie T =15. 25

Ponadto najdłuższy ciąg zer ma długość m 1 znaków, a najdłuższy ciąg jedynek ma długość m znaków. W każdym przypadku liczba ciągów zer jest równa liczbie ciągów jedynek. Liczbę ciągów zer lub jedynek można obliczyć z zależności: 2 m k 2, gdzie k jest długością sekwencji i spełnia zależność: 0 < k < m 2. Rozkład ciągów jednakowych znaków dla podanej sekwencji pseudolosowej o okresie T = 31 pokazano w kolejnej tabeli: 26

Generatory sekwencji okresowych i pseudolosowych Generowanie sekwencji okresowych oraz realizacja różnych algorytmów z zakresu kodów korekcyjnych i kryptografii może się odbywać programowo lub sprzętowo. W realizacji sprzętowej stosujemy standardowe układy logiczne, jak: bramki, przerzutniki i rejestry. W realizacji programowej wykorzystujemy odpowiednie podprogramy realizujące określone operacje. Działanie generatorów sekwencji okresowych można przedstawić a pomocą schematów blokowych, opisujących połączenia odpowiednich bloków funkcjonalnych. Na schematach blokowych przyjęto następujące oznaczenia bloków funkcjonalnych, które mogą być realizowane sprzętowo lub programowo. Oznaczenia te są uniwersalne i mogą być stosowane w generatorach, realizujących algorytmy zarówno nad ciałami binarnymi, jak i ciałami rozszerzonymi. Jeśli urządzenie realizuje algorytm nad ciałem binarnym, to sumator odpowiada bramce Ex-OR, a element pamięciowy jest przerzutnikiem bistabilnym. 27

Generator liniowy LFSR Do generowania sekwencji okresowej nad ciałem skończonym, w oparciu o zależność rekurencyjną, może być wykorzystany rejestr przesuwny ze sprzężeniem zwrotnym (Linear Feedback Shift Register LFSR) pokazany na kolejnym rysunku lub jego wariant programowy. Otrzymujemy w ten sposób generator linowy ze sprzężeniem zwrotnym LFSR. Konfiguracja sprzężenia zwrotnego będzie określona zależnością rekurencyjną wykorzystywaną do generowania sekwencji. Ciąg początkowy jest wpisywany do przerzutników rejestru w chwili startu układu. W takt impulsów zegarowych jest generowana sekwencja okresowa, której kolejne elementy będą pojawiły się na wyjściu generatora. W kolejnym przykładzie pokazano generator LFSR umożliwiający generowanie sekwencji okresowej za pomocą zależności rekurencyjnej otrzymanej z wielomianu x 3 + x + 1 nad GF(2). http://zon8.physd.amu.edu.pl/ tanas 28

Własności generatora LFSR: Generator LFSR ma słabą wartość kryptograficzną gdyż znajomość 2n kolejnych bitów ciągu pozwala na znalezienie wartości generowanych od tego miejsca. LFSR działa jednak bardzo szybko zwłaszcza, jeśli jest to układ sprzętowy, i stąd jest on bardzo atrakcyjny w praktycznych zastosowaniach. Można konstruować bardziej skomplikowane układy zawierające kilka LFSR i nieliniową funkcję f przekształcającą bity generowane przez poszczególne LFSR. W ten sposób otrzymamy generatory nieliniowe. 29

Generator Geffe Jako przykład generatora tej klasy można podać generator Geffe, w którym realizowana funkcja ma postać: f(x1, x2, x3) = (x1 x2) ( x2 x3) Generator Geffe ma słabe własności kryptograficzne ze względu na korelacje pomiędzy generowanymi bitami i bitami LFSR 1 lub LFSR 2. 30

Generatory sterowane zegarem Generator o zmiennym kroku Rejestr LFSR 1 jest przesuwany w każdym takcie zegara. Jeśli na wyjściu LFSR1 jest 1, to LFSR2 jest przesuwany, natomiast LFSR3 nie jest przesuwany (poprzedni bit jest powtarzany). Jeśli na wyjściu LFSR1 jest 0, to LFSR3 jest przesuwany, natomiast LFSR2 nie jest przesuwany (poprzedni bit jest powtarzany). Wyjściowe bity LFSR2 i LFSR3 są dodawane modulo 2 ( ), dając kolejny bit generowanego ciągu. Shrinking generator W zależności od wartości bitu ai wysyłamy lub pomijamy bit bi. 31

Generatory oparte o algorytmy trudne obliczeniowo Generator Blum-Micali W generatorze tym wykorzystuje się trudność w obliczaniu logarytmu dyskretnego. Wybieramy dwie liczby pierwsze a i p oraz liczbę x0 (zarodek), a następnie obliczamy: dla i = 0, 1, 2, 3,. x i+1 = a x i mod p Pseudolosowy ciąg bitów tworzymy w następujący sposób: Generator RSA k i = { 1 jeżeli x i < (p 1)/2 0 w przeciwnym przypadku Generator oparty na trudności problemu faktoryzacji liczb. Wybieramy dwie liczby pierwsze p i q (N = pq) oraz liczbę e względnie pierwszą z (p 1)(q 1). Wybieramy losową liczbę (zarodek) x0 mniejszą od N, a następnie obliczamy x i+1 = x i e mod N. Generowanym bitem jest najmłodszy bit liczby xi+1. Generator Blum-Blum-Shub BBS Znajdujemy dwie duże liczby pierwsze p i q, takie, że p 3 (mod 4) oraz q 3 (mod 4); N = pq. Wybieramy losową liczbę x względnie pierwszą z N, a następnie obliczamy: x 0 = x 2 mod N. Liczba x0 stanowi zarodek dla generatora. Teraz liczymy: x i+1 = x i 2 mod N. Generowanym bitem jest najmłodszy bit liczby xi+1. 32