Laboratorum ochrony danych Ćwczene nr Temat ćwczena: Cała skończone rozszerzone Cel dydaktyczny: Opanowane programowej metody konstruowana cał skończonych rozszerzonych GF(pm), poznane ch własnośc oraz technk wykonywana dzałań na elementach tych systemów algebracznych Wprowadzene teoretyczne W algebrze cał skończonych cała rozszerzone GF(q) można konstruować nad całam prostym GF( p) lub całam rozszerzonym nższego stopna Lczba elementów q cała rozszerzonego GF(q) nad całem prostym GF( p) wynos q = p m, gdze m jest stopnem rozszerzena Cała rozszerzone ne są całam lczbowym, a ch elementy oznaczamy zwykle za pomocą symbol nelczbowych W przypadku cał skończonych do konstrukcj cał rozszerzonych stosuje sę welomany perwotne Wtedy perwastek welomanu perwotnego α jest elementem perwotnym cała, a nezerowe elementy cała rozszerzonego w postac multyplkatywnej możemy zapsać jako potęg elementu perwotnego Na przykład elementam cała rozszerzonego GF(q) będą: q 0,, α, a, K, α Konstrukcja cała rozszerzonego ma na celu wyznaczene tablczek dodawana mnożena cała rozszerzonego Postać multyplkatywna elementów cała skończonego pozwala wyznaczyć loczyn j dwóch dowolnych elementów cała Iloczyn dwóch elementów cała skończonego α α wynos j + j(mod ( q )) α α = α Oblczając loczyny dla kolejnych elementów cała, można wyznaczyć całą tablczkę mnożena Aby wyznaczyć tablczkę dodawana, należy zapsać elementy cała skończonego w postac addytywnej Może to być postać macerzowa, wektorowa lub welomanowa Sposób oblczana elementów cała rozszerzonego tablczek dzałań pokażemy na przykładze cała GF( ) generowanego przez weloman perwotny p() trzecego stopna nad GF() p( ) = + + Weloman ten umożlwa konstrukcję cała rozszerzonego GF( ) zawerającego osem elementów Nżej pokazano sposoby wyznaczana elementów cała rozszerzonego GF( ) w postac addytywnej za pomocą wektorów Wektorowa postać elementów cała rozszerzonego jest wygodna, gdy konstruujemy cało metodam programowym W celu wyznaczena wektorowej postac elementów cała skończonego GF(8) wykorzystujemy sekwencję pseudolosową generowaną przez weloman perwotny służący do konstrukcj cała rozszerzonego Aby wygenerować sekwencję okresową, pszemy zależność rekurencyjną stowarzyszoną z welomanem
s j+ = s j + s j+, j = 0,,,, Zakładając cąg początkowy 00, otrzymamy następującą sekwencję pseudolosową 0 0 0 0 0 Zastosowany weloman daje rozszerzene trzecego stopna, dlatego też wektory odpowadające elementom cała rozszerzonego będą zawerały po trzy współrzędne Borąc kolejne grupy trzyelementowe, z powyższej sekwencj pseudolosowej otrzymamy elementy cała rozszerzonego w postac wektorowej: 0 = [000], = [00], α = [00], α = [00], α = [0], α = [0], α 5 = [], α 6 = [0] Zbór wektorów jest uzupełnany wektorem zerowym Posługując sę elementam cała w postac wektorowej, można wyznaczyć sumę dowolnych elementów cała oraz całą tablczkę dodawana Na przykład suma dwóch elementów cała α α wynos [ 00] [ 0] [ ] 5 α + α = + = = α Tablczk mnożena dodawana cała GF(8) 0 α α α α α 5 α 6 + 0 α α α α α 5 α 6 0 0 0 0 0 0 0 0 0 0 0 α α α α α 5 α 6 0 α α α α α 5 α 6 0 α α 6 α α 5 α α α 0 α α α α α 5 α 6 α α α 0 α α α 6 α 5 α 0 α α α α 5 α 6 α α α α 6 α 0 α 5 α α α 0 α α α 5 α 6 α α α α α α 5 0 α 6 α α α 0 α α 5 α 6 α α α α α α 5 α α α 6 0 α α 5 0 α 5 α 6 α α α α α 5 α 5 α α 6 α α 0 α α 6 0 α 6 α α α α α 5 α 6 α 6 α α 5 α α α 0 Dla każdego elementu cała można wyznaczyć weloman mnmalny Welomanem mnmalnym m jest weloman najnższego stopna tak, że α jest perwastkem tego welomanu m ( α ) = 0 Generalne weloman mnmalny stopna k nad GF(q) ma następujące perwastk: p p α, α, α, K, α p k ( mod( q ) ) Elementy tego cągu są nazywane elementam sprzężonym mają tak sam rząd multyplkatywny Posługując sę powyższym cągem, można rozbć na warstwy cyklotomczne nezerowe elementy każdego cała rozszerzonego Aby utworzyć te warstwy, berzemy kolejne elementy cała, które ne występują w warstwach poprzednch Perwszą warstwę tworzy element Dla cała GF( ) otrzymamy następujące warstwy cyklotomczne: ; 8 α, α, α, α ; 6 9 α, α, α, α ; 5 0 α, α ; 7 α, α, α, α
Każda z tych warstw odpowada jednemu welomanow mnmalnemu, którego perwastkam będą elementy warstwy W powyższym przykładze warstwa druga, trzeca pąta utworzą welomany czwartego stopna, warstwa czwarta weloman drugego stopna, a jedynka, znajdująca sę w warstwe perwszej, utworzy weloman perwszego stopna Znajomość rozkładu perwastków na warstwy cyklotomczne pozwala oblczyć welomany mnmalne Jeśl znamy perwastk welomanu,, K, n, to weloman można oblczyć ze znanego w algebrze wzoru ( ) = ( )( ) ( ) p K n W całach charakterystyk odejmowane zastępuje sę dodawanem Dla przykładu weloman mnmalny elementu α cała GF( ) 6 9 ( ) = ( + )( + )( + )( + ) m α α α α Oblczene powyższego loczynu wymaga znajomośc elementów cała w postac addytywnej lub tablczk dodawana Programową realzację dodawana w całach skończonych ułatwają Logarytmy Zecha Przyjmujemy, że elementy cała skończonego GF(q) charakterystyk p wyrażamy za pomocą potęg elementu perwotnego α : 0,, α, α, K, α q Wykładnk potęg są lczbam całkowtym lczonym modulo ( q ) Element zerowy w postac potęgowej można zapsać za pomocą symbolu α = 0 Logarytm Zecha oznaczamy przez Z( ) defnujemy za pomocą równana α ( ) = α + Z Dla cał charakterystyk : Z( 0 ) =, a Z( ) = 0 Dla cał charakterystyk p>: Z(( q ) / ) =, a Z( ) = 0 Dodawane z wykorzystanem logarytmu Zecha wykonuje sę następująco (y > ) y ( y + Z ( ) ) y + α = α + α = α α Dla ( > zamena sę zmenne, y Wynk dodawana ne zmena sę Implementacja tej metody dodawana wymaga, aby utworzyć tablce logarytmów Zecha albo na beżąco oblczać wartośc logarytmów Zecha Logarytmy Zecha dla danego cała można oblczać z welomanu generującego cało, np dla ( GF ) z p ( ) = + +, oraz zależnośc: Z ( q ) p mod ( q ) ) = ( Z( ) ) p mod ( q ), Z ( p mod ( q ) ) = Z( ) p mod ( q ) Logarytmy Zecha dla cał charakterystyk dwa Q Logarytmy Zecha dla =,,, q 8 6 5 6 8 0 9 7 5 6 0 9 6 8 8 9 5 6 7 7 5 0 0 6 8 5 7 9 6 6 6 6 8 5 6 5 5 5 7 7 56 59 50 5 7 8 60 6 6 5 9 55 8 9 7 9 0 7 8 8 5 5 6 0 9 58 57 0 9 0 5
Aby było możlwe zastosowane komputerowych technk oblczenowych w tej dzedzne, należy przedstawć elementy cała w postac lczbowej określć dzałana na tych lczbach W tym celu można przyjąć odwzorowane zboru elementów cała GF(q) na q- elementowy zbór całkowtych lczb dodatnch: Odwzorowane to określa funkcja: q { 0 K } { 0 K q } σ :,, α, α,, α,,,,, + dla α 0, σ ( α ) 0 dla α = 0 Tak węc zerowy element cał odwzorowuje sę na zero, a elementy nezerowe α odwzorowują sę na lczby równe + Odwzorowane to jest wzajemne jednoznaczne zomorfczne Dla odwzorowana σ stneje odwzorowane odwrotne σ przy czym q { 0 K q } { 0 K } σ :,,,,,,, α, α,, α, σ ( ) α dla > 0, dla = 0 Dla wększośc zastosowań wystarczy zdefnować cztery funkcje (dla >y; w przecwnym wypadku zamena sę zmenne): Sumę S (, Element przecwny OE ( ) Iloczyn P (, Element odwrotny IE ( ) Po uwzględnenu powyższych odwzorowań można oblczyć te cztery funkcje: S (, OE P ( ) (, IE ( ) ( ( y + Z ) mod ( q ) + dla, y 0 + y dla = 0 lub y = 0, dla 0 y = OE( ), ( + ( q ) ) mod ( q ) dla 0 dla 0 p =, dla = 0, ( + y ) p >, + mod ( q ) dla > 0 y > 0, dla = 0 lub y = 0, q + dla >, dla = > y, Do oblczena sumy S(, wykorzystuje sę logarytmy Zecha Za pomocą powyższych wzorów można w dowolnym języku programowana napsać procedury realzujące algorytmy dzałań w rozszerzonych całach skończonych
Przebeg ćwczena Napsać podprogram do wykonywana mnożena w cele GF(p m ) Zastosować wzór j + j(mod ( q )) α α = α Wydrukować tablczk mnożena dla przypadku cał GF( ) GF( ) Na wydrukach zastąpć symbol α tekstem a Napsać podprogram do wykonywana dodawana mnożena w cele GF(p m ) oraz sprawdzć jego dzałane dla przypadku cał GF( ), GF( ) GF( ) Zastosować logarytmy Zecha Wartośc logarytmów (dla q =, 8, 6; =,,, q-) zdefnować jako stałe w programe Do oblczena sumy (+, gdze elementy y są podawane z klawatury, wykorzystać wzór S(,, a do oblczena ch loczynu wzór P(, Wydrukować tablczk mnożena dodawana w całach GF( ), GF( ) GF( ) w oparcu o podprogramy zrealzowane w zadanu drugm Oblczyć weloman czwartego stopna elementów cała GF( ) + Na przykład, dla m ( ) = ( + )( + )( + )( + ) = [( + ) + ( + )] + [( + )( + ) + + ] [( + ) + ( + ) ] + = α, = α 8 = α, = α otrzymamy weloman mnmalny m ( ) = + Wykorzystać wzory na sumę oraz loczyn dwóch elementów cała + 8 Wartośc elementów: = α =, = α =, = α = 5 = α = 9 są podawane przez użytkownka Zadana rozwązać w dowolnym języku programowana + 5