Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Odsjek za matematiku
ALGEBARSKE OSNOVE
KOMPJUTERSKE NAUKE
-SKRIPTA-
n
broja a definisan sa a a a a a , to u
i 1
na a a a a .
i 1
a(bc)=(ab)c za sve a, b, c G .
Postoji element e G takav da ea=a za sve a G
.
Za svako a G postoji element a G takav da aa=e.
Neka je
Posmatrajmo skup
G {a1, a2 ,, an
H {aa1, aa2 ,, aan
slian, te je G grupa.
Direktni proizvod grupa
Neka je G1 , G 2 , , Gn familija grupa. Tada je kartezijev proizvod G1 G2 Gn
grupa sa binarnom operacijom po koordinatama tj
( g 1 , , g n )(d 1 , , d n ) ( g 1 d 1 , , g n d n )
ponekad se oznaava sa
i 1
Homomorfizmi
Definicija: Neka su G,H grupe. Preslikavanje : G H se naziva
homomorfizam ako za sve x, y G
( xy ) ( x) ( y ) .
Ako je bijektivan tada se naziva izomorfizam sa G na H, i tada
piemo G H. Ako je injektivno tada ga nazivamo
monomorfizam ( ili izomorfizam sa G u H). Ako je sirjektivno,
tada se naziva epimorfizam. Homomorfizam grupe G u samu sebe
se naziva endomorfizam od G. Ako je bijektivni endomorzizam
tada se naziva automorfizam od G.
Teorema: Neka su G i H grupe sa jedinicama e i e respektivno, i neka je
: G H homomorfizam. Tada
(i) (e) e
(ii) ( x 1 ) ( x) 1 za svako x G .
Dokaz:
(i)
Poto
je
homomorfizam
imamo
da
je
(e) (e) (ee) (e) e (e).
Skraivanjem
slijedi
(e) e .
5
xy 1 Ker xy
e x y . Dakle je injektivno.
Podgrupe
Definicija: Neka je (G,) grupa, i H podskup od G. H se naziva podgrupa
grupe G, to se oznaava sa H<G, ako je H grupa u odnosu na
binarnu operaciju iz G.
Za svaku grupu skupovi {e} i G su podgrupe grupe G, koje nazivamo trivijalne
podgrupe od G. Podgrupa H se naziva netrivijalna podgrupa ako H G, H e .
Jedinini element grupe i podgrupe moraju biti jednaki.
Teorema : Neka je G grupa. Neprazan podskup H od G je podgrupa od G ako i
samo ako vrijedi jedno od
(i)
Za sve a, b H , imamo ab H , i a 1 H .
(ii)
Za sve a, b H , imamo ab 1 H .
Dokaz: Ako je H podgrupa, (i) i (ii) su oigledno tani. Predpostavimo da vrijedi
(i). Za a H , a 1 H , pa je i e aa 1 H , te je H podgrupa. Predpostavimo da
vrijedi (ii). Za a H , e aa 1 H , i a 1 ea 1 H , te je H podgrupa.
Mnogo je lake provjeriti da je neto podgrupa generalnije grupe koristei
prethodni teorem nego pokazati da je grupa. Npr. asocijativnost se nasljeuje.
a a 1 .
a,
1, a, , a a . Sa druge strane, za
proizvoljni cio broj l postoje brojevi q i r takvi da je l=qk+r, gdje
. Sada je
. Dakle 1, a, , a a , tj . k=m.
k 1
0rk
a l a qk r (a k ) q a r 1q a r a r 1, a, , a k 1
k 1
im f h H : a G, h f (a )
ab ker f i
a 1 ker f.
f (a 1 ) ( f ( a )) 1 11 1 te
h, k im f tada postoje
a, b G
a, b ker f, tada je i
hk im f, a h
( f (a)) 1 f ( a 1 ) pa i
h 1
im f.
Teorema : Presjek bilo koje familije podgrupa grupe G je takoer podgrupa od
G.
Dokaz. Neka je S i : i I familija podgrupa grupe G. Sada 1 S i , i I pa i
1 S i
iI
S i , tada
. Takoer, ako a, b
iI
a, b S i , i I ab S i , i I ab S i
iI
. Dakle
iI
H K oznaava sa H K .
Lagrangeov teorem
i 1
i 1
Posljedica : Ako je G konana grupa i a G tada red elementa a dijeli red grupe
G.
Dokaz. Kako je red elementa a, |<a>| rezultat slijedi iz Lagrangeove teoreme.
Definicija : Eksponent grupe G je (najmanji) broj n takav da x n 1, x G .
Iz Lagrangeovog teorema slijedi da ako je red grupe G n tada je n i eksponent od G.
Posljedica : Ako je p prost broj i |G|=p, tada je G ciklika grupa.
Dokaz. Neka je a G , a 1 . Tada
10
( n) k : 1 k n, g .c.d .(n, k ) 1 .
Moe se pokazati da je za
n p n , (n) p n p n 1 .
n rs,
g .c.d .(r , s ) 1,
(n) (r ) ( s )
a za
11
Ciklike grupe
Lema : Neka je G=<a> ciklika grupa reda n. Tada je
a a k
za svako k<n
a l a l (a n ) tl a l n(tl ) (a k ) ml a k
odakle je
a a k .
Oigledno je
a k a a a k .
a m S a k tada je m=kq+r,
a a a
ciklika grupa. Ako S ima red d i S=<b>, tada b 1 . Postoji broj m takav da je
b a m . Ali a md 1 a nk za neko k tj, md=nk, pa je m=k(n/d) to implicira da i
n
n
d . Kako je red grupa isti to dobivamo da je
d . Dakle postoji
d
b a
S a
( n) .
Teorema : Neka je n pozitivan cio broj. Tada n
d n
Dokaz. Neka je G ciklika grupa reda n. Neka je C ciklika podgrupa grupe G i neka
je gen(C) skup svih generatora od C. Tada je G gen(C ) gdje je unija po svim
ciklikim podgrupama od G. Jasno je da su ovi podskupovi meusobno disjunktni.
Dalje po La Grangeovom teoremu red podgrupe dijeli n. Po prethodnoj lemi ako d|
n tada postoji jedinstvena podgrupa C d reda d.
Zbog toga je sada
n G gen(C d )
d n
teorema.
Teorema : Grupa G reda n je ciklika ako i samo ako, za svaki djeljitelj d od n,
postoji najvie jedna podgrupa G koja ima red d.
12
Normalne podgrupe
Definicija : Ako su S i T neprazni podskupovi od grupe G, tada definiemo
ST st : s S , t T .
Kada je K normalna podgrupa od G, tada je svaka lijeva klasa ujedno i desna klasa.
Naime za klasu Ka imamo Ka (aKa 1 )a aK . to se tie elemenata ovo znai da
imamo parcijalnu komutaciju tj. za svako g i k postoji elemenat k u K, takav da
je gk=kg. To ne znai da g komutira sa svakim elementom podgrupe K. Normalne
podgrupe su takoe vezane za konjugaciju a : G G , gdje a ( x ) axa 1 .
13
Kvocijentne grupe
Teorema:
a, b aba 1b 1 .
14
(1 K ) ( H K ).
Teorema : Svaka konana abelova grupa je direktni proizvod ciklikih grupa, ie.
G Z pa Z pb Z p s .
1
2
n
Primjer Z 6 Z 3 Z 2.
Teorema
Ako
su
A H
B K,
( H K ) /( A B ) ( H / A) ( K / B ).
tada
( A B) ( H K )
Primjer:
Posmatrajmo ahovsku tablu na kojoj se figura moe kretati naprijed, nazad, lijevo i
desno. Kada doe do kraja table, pokret naprijed znai da se vratimo na poetak
datog reda ili kolone.
2
15
(1,0)+(0,-1)+(1,0)+(0,1)+(1,0)+(-1,0)=(2,0)
grupe
na neprazan
skup X
je preslikavanje
:G X X,
(a, x) a x , za koje vrijede sljedea dva uvjeta:
a
(
b
x) (ab) x , a, b G, x X ;
i)
ii) 1 x x , x X .
Ako grupa G djeluje na skup X, onda kaemo da je X, G-skup. Djelovanje grupe na
skup X je isto to i permutiranje elemenata skupa X.
Za svaki x X orbita elementa x u odnosu na G definira se izrazom
O x x G X ,
a
stabilizator
elementa
x
definira
se
sa
G x g G g x x G . Skup svih orbita u X ini particiju skupa X i vrijedi
X G : G x , gdje je C podsup od X koji sadri tano po jedan elemenat iz
xC
1
G
( ) ,
Gx
, pa dobijamo
16
x X
( )
Dakle vrijedi
x X
x X
x X
Oa , odakle dobijamo
Orbite ine particiju skupa X tako da je X a
C
1
x X
O
aC
yOa
1
a
O
aC
yOa
Dakle vrijedi
( ) G N , to implicira N 1
G
G
aC
1
Oa
Oa
C N.
aC
( ) .
c1
c 2 c n 1
cn
cn
c n 1 c 2
c1
Napomenimo da je zastava
ista kao i prethodna, jer je samo okrenuta za 180 . Dakle, zastavama odgovaraju
razliiti redoslijedi boja, odnosno ureene n-torke c (c1 , c 2 , , c n ). Neka je data
permutacija
n
1 2
.
n n 1 1
i (c) daju istu
Ova permutacija predstavlja okretanje zastave za 180 , te c
2
zastavu. Kako je 1 , grupa koja djeluje na skup ureenih n-torki je G : 1,
. Broj razliitih zastava je upravo broj orbita N, u odnosu na grupu G.
Identitet 1 fiksira sve ureene n-torke c, pa je (1) q n .
Permutacija ima razliitu formu u odnosu na parnost broja n i fiksira one
ureene n-torke za koje vrijedi c1 c n , c 2 c n 1, itd.
Ako je n=2k tada je (1, n)(2, n 1) (k , k 1) i broj elemenata fiksiranih
sa
je ( ) q
( ) q
jednak
1
n1
N (q n q 2 ) .
2
17
Prsten
a, b, c R
mnoenje piemo krae ab=ab. Neutralni elemenat aditivne grupe nazivamo nula
elemenat i oznaavamo sa 0, a inverzni elemenat elementa a oznaavamo sa -a.
Takoer a+(-b) piemo a-b .
Ako je polugrupa (R,) komutativna kaemo da je prsten R komutativan.
Ako multiplikativna polugrupa prstena ima neutralni element on se obino
oznaava sa e ili 1 i naziva jedinini elemenat i tada kaemo da je R prsten sa
jedininim elementom.
Primjeri prstena su (Z,+,), (R,+,), (C([0,1]),+,), ( Z n ,+,).
Za a 0 definiemo a 0 e .
(a n ) m a nm
m(na) (mn)a,
(ma)(nb) (mn)ab .
18
R i xy 0 x 0 ili
Ri podprsten od R.
Tada je i
iI
Za
sve
elemente
a
i
b
iz
imamo
a, b Ri a, b Ri , i a b, ab Ri , i a b, ab Ri
iI
iI
da
.
19
iI
komponentama.
Ako je S podskup prstena R takav da (ai ) S ako i samo ako su sve komponente ai
jednake nuli izuzev konano mnogo njih tada je S takoer prsten koji se naziva
direktna suma familije Ri i oznaava se sa i Ri . Ako svaki od Ri ima jedinicu ipak S
nema jedinicu. U sluaju konane familije direktni proizvod i suma su jednaki.
Ideali
Definicija : Neka je R prsten. Neprazan podskup U prstena R zove se lijevi
(desni) ideal prstena R ako i samo ako za svako a i b iz U i svako r iz
R vrijedi a-bU, raU(arU).
Ako je U i lijevi i desni ideal tada kaemo da je U ideal prstena R.
Ako je prsten komutativan nema razlike izmeu lijevih i desnih ideala. Ako je U
ideal tada je U i podprsten prstena R. Svako prsten R ima trivijalne ideale {0} i R.
Lako se dokazuje sljedee:
Teorema : Neka je (U i ) iI familija lijevih (desnih ) ideala u R tada je i
iI
Neka je SR, S, i neka je A={ U|U je desni (lijevi) ideal koji sadri S}. Tada RA,
pa A. Za ideal
U A
20
sa (S)r (desni), (S) l (lijevi), (S) ideal. Ako je ideal generisan samo sa jednim
elementom a, tada ga nazivamo glavnim idealom i obiljeavamo sa (a). Vrijedi
(a)
r as
ra as na r , s, ri , si R, n Z
( a ) r ar na r R, n Z
( a ) l ra na r R, n Z .
ri asi ri , si R
i
( a ) r ar r R
(a)
( a ) l ra r R.
21
U
i 1
UB
a b
i
i
konaon suma
ai U , bi B . .
22
Obratno, neka je R/M polje. Ni jedno polje nema netrivijalnih ideala. Naime ako je
F polje i U ideal u F takav da je U{0}, tada postoji element xU, x0. Ali po
definiciji ideala i x 1 x e U y F , y ye U U F .
Ako je sada B ideal prstena R takav da je MB, tada je i B/M ideal polja R/M pa je
B/M={0} ili B/M=R tj. B=M ili B=R, pa je M maksimalan.
Primjer: Neka je Z prsten cijelih brojeva. Pokazaemo da je Z prsten glavih ideala i
da je ideal (n) maksimalan u Z ako i samo ako je n prost broj. Neka je U ideal u Z i x
najmanji nenegativan cio broj sadran u U. Tada (x)U. Ako postoji yU-(x) (y
uzmimo pozitivan broj) tada postoje nenegativni cijeli brojevi m i r takvi da je
y=mx+r gdje je r<x. Ali mxU i r=y-mxU. Kako je x najmanji pozitivan broj iz U
to r=0 i yU to je kontradikcija. Dakle U=(x) pa je Z prsten glanvih ideala.
Neka je sada ideal (n) maksimalan u R. Predpostavimo da je n=pq. Tada (n)(p) i
(n)(q) odakle je (p)=Z ili (q)=Z, odakle je p=1 ili q=1 a q=n ili p=n. Dakle n mora
biti prost broj.
Ako je p prost, i (p)B. Tada postoji prirodan broj n takav da je B=(n). Ali (p)(n)
implicira da je p=nk. Kako je p prost to je n=p ili n=1. U prvom sljuaju (n)=(p) a u
drugom (n)=Z. Dakle (p) je maksimalan ideal.
Definicija: Ideal B prstena R zove se prost ideal ako za svaka dva ideala U i V
prstena R vrijedi UV B U B V B.
Ideal (p) u prstenu cijelih brojeva je prost ako i samo ako je p prost broj. Vrijedi
sljedee:
Teorema : Ako je R prsten sa jedinicom e, tada je svaki maksimalan ideal prost.
Obratno ne mora da vrijedi.
Teorema: Ako je R komutativan prsten, tada je ideal B prstena R prost ako i
ab B a B b B,
a, b R.
samo ako
Teorema : Ako je R oblast cijelih i ujedno prsten glavnih ideala, tada je ideal B
prost ako i samo ako je maksimalan.
Kodiranje
Kodiranje je nain zapisa podataka koji je najprikladniji datoj aplikaciji.
Posmatrajmo primjer
23
satelit
Signali sa setelita na
zemlju se alju
elektromagnetnim
talasima. Kada je oblano
vrijeme, usljed smanjene
propusnosti atmosfere svi
signali nee stii na
zemlju ili e stii
promjenjeni.
Zemlja
jednak nuli tada modem dobiveni podatak alje u kompjuter a ako je ostatak pri
dijeljenju nije nula tada alje zahtjev da se blok h(x) poalje ponovo. Ovi kodovi se
nazivaju CRC kodovi. Aritmetika koja se koristi je aritmetika nad poljem Z2. U
praksi koristimo generatorske polinome :
CRC-12= x12 x11 x 3 x 2 x 1,
CRC-16= x 16 x 15 x 2 1, i
CRC-CCITT= x16 x12 x 5 1 .
Na alost broj greki koji prolaze neopaeno i nije toliko zanemariv, a sa druge
strane upravo dijeljenje tj. provjera podataka koja se obavlja u modemu je razlog
sporosti mree. Pokazana upotreba polinoma nam daje motivaciju za izuavanje
prestena polinoma nad poljima (prestenima).
Prsten polinoma
Neka je R prsten. Prsten polinoma je skup R[x] svih polinoma iji su koeficijenti iz
R.
2
m
Dakle R[x]={ a 0 a1 x a 2 x a m x m N , a0 , a1 , , a m R }.
Nula polinom ima sve koeficijente jednake 0, inverzni polinom polinoma
f ( x ) a0 a1 x a m x m je polinom f ( x ) a 0 a1 x a m x m . Sabiranje
polinoma se definie po komponentama tj. za dva polinoma imamo
f ( x) a 0 a1 x a n x n ,
g ( x ) b0 b1 x bn x n ,
f ( x) g ( x ) (a 0 b0 ) (a1 b1 ) x (a n bn ) x n
Ako stepeni polinoma nisu jednaki u ovom formalnom zapisu na kraju polinoma sa
manjim stepenom dodamo dovoljan broj nula koeficijenata. Lako se pokazuje da je
(R[x],+) komutativna grupa. Mnoenje polinoma je definisano na uobiajen nain.
Naime k-ti koeficijent proizvoda f(x)g(x) je dat sa
ck
a b
i j k
Ako je R komutativan prsten tada je i r[x] komutativan prsten. Ako R ima jedinicu e
tada i R[x] ima jedinicu f(x)=e. Asocijativnost i distributivnost se lako pokau.
Napomenimo da se polinomi mogu identifikovati sa nizovima (a 0 , a1 , , a m ,0,0,) .
Stepen polinoma je najvei prirodan broj n takav da je n-ti koeficijent razliit od
nula. Stepen nula polinoma se oznaava sa -.
Ako je R oblast cijelih tada je R[x] oblast cijelih. Polinomi u R[x] nemaju
invertibilne elemente izuzev polinoma nultog stepena tj. R*[x]=R*.
Teorema : Neka je R prsten sa jedinicom e i R[x] prsten polinoma nad R. Neka je
f ( x) a 0 a1 x a m x m R x ,
g ( x) b0 b1 x bn x R x ,
n
am 0
bn R * .
25
Gausove podgrupe
Neka je G komutativna polugrupa sa jedinicom u kojoj vrijedi zakon skraivanja.
Neka je G* skup jedinica (invertibilnih elemenata) polugrupe G.
26
27
b vp1f1 p 2f 2 p rf r ,
najvei zajedniki djelilac elemenata a i b, tj. ako c|a i c|b tada c|d.
Najvei zajedniki djelilac obiljeavamo sa <a,b,> ili NZD(a,b).
Svaki konaan broj elemenata iz G ima najvei zajedniki djelilac, za svako
a, b, c G vrijedi <a,<b,c,>>=<<a,b>,c>,
c<a,b>=<ca,cb>, i
<a,b>~e, <a,c>~e<a,bc>~e.
Gaussovi prsteni
Neka je R komutativna oblast sa jedinicom. Tada je G=R=R-{0} multiplikativna
polugrupa. Smatramo da je 0 djeljiva sa svakim elementom prstena R.
Definicija: Komutativna oblast R sa jedininim elementom se zove prsten sa
jednoznanom faktorizacijom ili Gaussov prsten ako i samo ako je R
Gaussova polugrupa.
Tada vrijedi
Teorema : Neka je R Gaussov prsten i neka su a,b, p i u proizvoljni elementi iz R.
Tada vrijedi:
(a) a|b (a) (b).
(b) a~b (a)=(b).
(c) uR* (u)=R.
(d) p je prost element ako i samo ako je ideal (p) netrivijalan prost
ideal u R.
(e) p je nsvodljiv element ako i samo ako je ideal (p) maksimalan
nenulti glavni ideal prstena R.
Dokaz. 1) Ako a|b, onda postoji cR takav da je b=ca. To znai da b(a), pa je
(b)(a). Obrnuto, neka je (b) (a). Tada b(a), pa postoji cR takav da je b=ca tj. a|
b.
2) Kako a~b to a|b i b|a to je iz 1) ekvivalntno sa (b)(a) i (a)(b)tj. (a)=(b).
3) Ako uR* to postoji u 1 R , pa je e= u 1u R . Tada za svako xR ,x=xe(u), pa
je R(u). Kako je trivijalno i (u)R to je R=(u).
28
29
Eisensteinov
kriterij:
Gaussov
prsten
i
f ( x ) a n x a n 1 x a1 x a0 R x . Ako postoji prost
p a1 , , p n 1 ali p a n i
element p prstena R takav da p a 0 ,
2
p a 0 , tada ne postoje polinomi u R[x] stepena veeg od nula
takvi da je f(x)=g(x)h(x)h.
Dokaz: Predpostavimo da je f(x)=g(x)h(x) i da su uslovi kriterija zadovoljeni. Neka
n
su g ( x ) bi x ,
i 0
Neka
je
n 1
nm
dijeli samo jedan od koeficijenata b0 i c0. Neka p|b0 i pco. Sa druge strane p
a n bm c n m p bm . Odavde postoji takvo i, 0im-1 da p|bj za 0j<i i pbi . Za
koeficijent ai (b0 ci bi 1c1 ) b1c0 prvi sabirak je djeljiv sa p a drugi nije to je
kontradikcija jer je ovaj koeficijent po pretpostavci djeljiv sa p. Dakle polinom f(x)
je nesvodljiv.
Slino se pokazuje
Poopetni
Eisensteinov
kriterij:
Neka
je
Gaussov
prsten
f ( x ) a n x n a n 1 x n 1 a1 x a0 R x . . Predpostavimo da za
f ( x) ( x a1 ) v1 ( x a 2 ) v2 ( x a m ) vm g ( x)
pri emu je v1 v 2 v m n i polinom g(x) nema nula u polju K.
Teorema : Redukcioni kriterij. Neka je f(x) polinom sa cjelobrojnim
koeficijentima i p prost prirodan broj koji ne dijeli a n . Ako je polinom f ( x)
nesvodljiv u Z p x , tada je f(x) nesvodljiv u Z[x].
30
31
iI
R-
M Rxi .
i 1
N .
x x
se sa
Teorema :
N
iI
iI
xi N i
Ako familija I nije konana, tada na desnoj strani uzimamo samo konane sume.
Definicija : Neka je f preslikavanje R-modula M na R-modul N takvo da vrijedi
(i)
f(x+y)=f(x)+f(y)
(ii)
f(rx)=rf(x)
za sve x,yM, rR. Tada se f naziva R-linearno preslikavanje ( ili
jednostavno linearno preslikavanje) ili R-homomorfizam sa M u N.
32
Uvod u kriptografiju
Istorijski gledano kriptografija se pojavljuje jo u Starom Egiptu kada je tokom
ratova bilo potrebno prenositi poruke sa jednog mjesta na drugo a da ih neprijatelj
ne sazna. Jedan od prvih naina prenosa tih poruka bio je da se rob oia na elavo,
te da mu se poruka istetovira na glavi. Nakon to mu kosa naraste, pusti se da ode
do mjesta gdje treba isporuiti poruku. U staroj Grkoj se koristio tap tano
odreene debljine. Kada se traka namota na tap, poruka se ispie na traci. Zatim se
traka odmota i preostala mjesta se ispune proizvoljnim slovima ukoliko je potrebno
(moe se koristiti i vie redova za poruku). Prenosi se traka sa slovima na njoj. Da bi
se poruka proitala bilo je potrebno imati tap iste irine na koji bi se obmotala
traka i slova bi se poredala kao u poruci. Dalje su se koristile supstitucijske ifre. U
supstitucijskim iframa zamjenimo slova npr. umjesto A piemo K, umjesto B
piemo F i td. Dakle svakom slovu dodjelimo jednoznano slovo koje piemo
umjesto originalnog slova.
33
A
K
B
F
C
R
D
A
D
E
E
P
F....
...
B
12%
C
7%
0.5%
0.2%
D
3%
2%
D
0.6%
E
26%
F...
4%...
34
KLJU
Otvoreni
tekst
POILJALAC
KLJU
Otvoreni
tekst
ifrat
IFRIRANJE
DEIFRIRANJEE
PRIMALAC
PROTIVNIK
2n
. Zbog
2n
Neka je sada dat niz 0 i 1 duine n. Za klju uzmemo proizvoljnu ureenu n-torku i
nakon toga vrimo operaciju XOR po komponentama.
Primjer neka je klju K=(1,1, 0,1, 0,0, 1,0) i niz koji ifriramo N=(0,0,1,1,1,1,0,0) kao
rezultat dobijamo
K XOR N=(1,1,1,0,1,1,1,0).
Poto je klju nepoznat za svako mjesto imamo dvije mogunosti 0 i 1 tako da je
vjerovatnoa pogaanja originalne n-torke upravo 1
2n
35
a u Z 2 operacija sabiranja sa
Dakle ove operacije su identine. Sada moemo posmatrati direktni proizvod grupa
Z 2 Z 2 Z 2 Z 2n sa nasljeenom operacijom sabiranja. XOR ifriranje se svodi
na sljedee: Uzmemo proizvoljan element K Z 2n da bude klju. Element N
ifriramo tako da izvrimo sabiranje N+K a deifrovanje je N=(N+K)+K.
Nedostatak XOR ifriranja je taj to duina kljua mora biti jednaka duini
otvorenog teksta da bi zadrali najmanju vjerovatnou pogaanja teksta. Ukoliko
isti klju, duine n, primjenjujemo na blokove duine n, tada je vjerovatnoa
pogaanja teksta opet 1
2n
a mnoenje u Z 2
je definisano sa
0 0
36
Ekstenzije polja
Neka je F polje i f[x] polje polinoma u x nad F. Znamo da je F[x] oblast cijelih sa
jedininim elementom 1 koja sadri F kao potpolje. Polinom f(x) iz F[x] se naziva
nesvodljiv ako je deg(f)1 i kad god f(x)=g(x)h(x) za neke polinome g(x), h(x)F[x]
tada g(x)F ili h(x)F. Ako polinom nije nesvodljiv, tada se naziva svodljiv
polinom.
Osobina svodljivosti zavisi od polja. Tako je npr. polinom x 2 1 nesvodljiv nad R,
ali je svodljiv nad C i Z 2 .
Osobine od F[x]
Podsjetimo se osnovnih osobina od F[x]:
1.) Algoritam za dijeljenje vrijedi u F[x], tj. za svaka dva polinoma f(x) i g(x) iz
F[x] postoje polinomi h(x) i r(x) iz F[x] takvi da je f(x)=g(x)h(x)+r(x) pri
emu je deg(r)<deg(g).
2.) F[x] je prsten glanih ideala
3.) F[x] je domen sa jednoznanom faktorizacijom
4.) Invertibilni elementi u F[x] su nenulti elementi polja F[x].
5.) Ako je p(x) nesvodljiv u F[x], tada je F[x]/(p(x)) polje i obratno.
Vrijedi.
Propozicija : Ako je f(x) F[x] polinom stepena >1. Ako je f(a)=0 za neko a F,
tada je f(x) svodljiv nad F[x].
Dokaz. Ako je f(a)=0 tada (x-a)|f(x) pa je f(x)=(x-a) g(x) za neko g(x) F[x] i
oigledno 0<deg(g)<deg(f) pa je f(x) svodljiv.
Propozicija : Neka je f(x)F[x] polinom stepena 2 ili 3. Tada je f(x) svodljiv ako i
samo ako f(x) ima korijen u F.
Dokaz. Neka je f(x) svodljiv tj. f(x)=g(x)h(x) gdje su oba polinoma g(x) i h(x)
stepena >0. Tada bar jedna od njih ima stepen 1 tj. bar jedan od njih je linearan.
y a 1b
Neka
je
to
g(x)=ax+b,
a,bF.
Sada
za
vrijedi
1
ay b a ( a b) b b b 0 pa je f(y)=0. Obratno slijedi iz prole propozicije.
Primjer:
Formirati sve polinome stepena 4 nad Z 2 i odrediti koji su nesvodljivi.
Koeficijenti polinoma nad Z 2 su elementi iz Z 2 te mogu biti samo nula i jedan.
Dakle polinomi stepena 4 su
f 1 ( x) x 4 ,
f 2 ( x) x 4 x 3 ,
f 6 ( x) x 4 x 3 x 2 ,
g1 ( x) x 4 1,
f 3 ( x) x 4 x 2 ,
f 7 ( x ) x 4 x 2 x,
g 2 ( x) x 4 x 3 1,
g 5 ( x) x 4 x 3 x 1,
f 4 ( x ) x 4 x,
f 5 ( x) x 4 x 3 x
f 8 ( x) x 4 x 3 x 2 x
g 3 ( x) x 4 x 2 1,
g 6 ( x) x 4 x 3 x 2 1,
g 4 ( x) x 4 x 1,
g 7 ( x) x 4 x 2 x 1,
g 8 ( x ) x 4 x 3 x 2 x 1.
37
c f 1,
e b 1,
be 0,
b e 0,
a d 1, c f 1, e b 0, be 1, b e 0
pa je polinom svodljiv.
b e 1
g 4 ( x ) x 4 x 1 (ax 2 bx c )(dx 2 ex f )
adx 4 (ae bd ) x 3 (af be cd ) x 2 (bf ce) x cf
a d 1, c f 1, e b 0, be 0, b e 1,
a d 1, c f 1, e b 1, be 1, b e 1
Sada je npr.
( x 3 x 1) ( x 2 x) x 3 x 2 ( x x) 1 x 3 x 2 2 x 1 x 3 x 2 1 .
pa
je
( x 3 x 1) x 2 x) x 3 x 2 x .
38
an
a
n 1
a
0
0
bn
b
n 1
a n 0 0
. Koeficijente polinoma g(x) sada stavimo u vektor kolonu
a1 a n
0 a 0
. Mnoenjem ove matrice sa vektor kolonom daje koeficijente proizvoda
b0
polinoma f(x) i g(x). Napomenimo da matrica ima dimenzije 2n+1 (n+1) .
1 0 1 0
1 1 0 1 pa klasino mnoenje sa polinomom x 2 x realizujemo sa
0 1 1 0
0 0 1 1
0 0 0 1
1 0 0 0
0 1 0 0
1 0 1 0
1 1 0 1
0 1 1 0
0 0 1 1
0 0 0 1
0
1
1
1 to odgovara polinomu x 5 x 4 x 3 x .
1
0
1
0
0
1
39
1 1 0 0 0 0 0 0 0 0 0
0
1 0 1 0 0 0 0 0 0 0
0 1 0 0
0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0
1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1
1
1 0 1 1 0 0 0 0 1 0 0 0 1 0
0 1 1 0
0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1
0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0 1 0 0
pa dobivamo polinom ( x 3 x 2 x) . Zaista,
1
1 0 1 1
0 1 1 1
0
3
4
( x x 1)( x 1) x x 3 x 2 x x 1 ( x 4 x 1) x 3 x 2 x x 3 x 2 x(mod x 4 x 1)
0
F
Ako je E ekstenzija nad F tada je trivijalno E vektorski prostor nad F. Dimenzija tog
vektorskog prostora se naziva stepen od E nad F i obiljeava sa [E:F]. Ako je
[E:F]<, kaemo da je E konana ekstenzija nad F a u suprotnom kaemo da je
beskonana.
40
p ( x) a i x i
i 0
polinom
p ( x) ai x i
=0 pa je element x x ( p ( x )) nula
i 0
polinoma p(x).
Kao posljedicu imamo: Za svaki nekonstantan polinom iz F[x] postoji ekstenzija
polja F u kojoj taj polinom ima nulu.
Neka je p(x) nesvodljiv polinom u F[x] koji ima korijen koji oznaavamo sa u
u ekstenziji E polja F. Sa F(u) oznaimo potpolje od E generisano sa F i u tj., F(u) je
najmanje potpolje od E koje sadri polje F i elemenat u. Posmatrajmo preslikavanje
:F[x] E definisano sa
(b0 b1 x bm x m ) b0 b1u bm u m ,
42
Viestruki korijeni
n
i
Neka je f ( x) ai x polinom nad poljem F. Definiimo derivativ od f(x) sa
i 0
43
44
Teorema: Za svki prost broj p i pozitivni cio broj n korijeni polinoma f(x)=
x p x Z p x
n
Dokaz:
Neka je E polje razlaganja polinoma f(x). Kako je f'(x)= p n x p 1 1 1 0 polinom
f(x) ima samo jednostruke nule pa su svi njegovi korijeni meusobno razliiti i ima
ih upravo p n . Neka su sada a i b korijeni ovog polinoma. Kako je
a 1b
(a b) p a p b p a b, (a 1b) p (a p ) 1 b p a 1b to su i elementi a b,
korijeni polinoma f(x) pa skup svih korijena ovog polinoma ini polje sa p n
elemenata.
n
pn
0 mod p za i 0, p n .
Napomenimo da je svaki binomni koeficijent oblika
i
Teorema: Neka je F konano polje sa p n elemenata i m prirodan broj. Tada
postoji proirenje E polja F takvo da je [E:F]=m, i sva ova proirenja
su izomorfna.
Dokaz: Posmatrajmo polinom f ( x) x mn x F x . Za elemenat 0 u F slijedi da
je u p 1 1 . Poto n|nm to i p n 1 p nm 1 te odavde u p 1 1 u p u . Dakle
elementi iz F su korijeni od f(x). Iz prethodnog teorema postoji polje E sa p nm
elemenata koji su korijeni polinoma f(x) pa sada imamo da je F potpolje polja E i
[E:F]=m.
n
nm
nm
Za dva polinoma f(x),g(x) F[x] kaemo da induciraju isto preslikavanje nad F ako
je f(a)=g(a) za svaki element a iz F.
Ako je stepen polinoma f(x)F[x], n=deg(f) manji od q tada polinom f(x) ima
najvie n nula u F. Polinomi f(x) i g(x) induciraju isto preslikavanje na F ako i samo
ako vrijedi
f ( x ) g ( x)(mod x q x) . Zaista, ako su kongurentni tada f(x)-g(x)=(x q-x)m(x) .
Uvrtavanjem bilo kojeg elementa a iz F imamo da je f(a)=g(a). Obratno, ako je
f(a)=g(a) za svaki element polja F tada x q x f ( x ) g ( x) .
Dakle, da bi smo posmatrali preslikavanja nad konanim poljem F treba da
posmatramo samo polinome stepena manjeg od q.
45
f ( x)
( x w)
wF , w s
sF
(s)
( s w)
wF , w s
h(x)
01
11
46
10
11
00
10
Booleova algebra
Definicija: Booleova algebra je skup B={x,y,...,0,1,...} sa tri operacije,
sabiranjem x, yx+y, mnoenjem x, yxy i komplementom xx'
koje zadovoljavaju sljedee osobine
(i)
Sabiranje je komutativno i asocijativno i x+0=x, 1+x=1 za sve
x.
(ii)
Mnoenje je komutativno i asocijativno i 1x=x, x0=0 za sve x.
(iii) Distributivni zakon: x(y+z)=xy+xz vrijedi za sve x,y, i z.
(iv) Svako x ima komplement za koje x+x'=1, i xx'=0.
Primjer: Neka je X neprazan skup oznaen sa 1, prazan skup sa 0, a x,y,... su
podskupovi skupa X. Tada skup P(X) sa operacijama unije, presjeka i komplementa
ini Booleovu algebru.
Zadatak: Dokazati da su 0,1 i x' jedinstveno odreeni svojim osobinama, Pokazati
da je x''=x i 1'=0. (Uputstvo: Ako je yx=0 i x+y=1, piite y=y(x+x').)
47
49
xy
a suma x+y sa
x
x+y
50
dobijamo isto kolo. Takoer ako pojedine prekidae iz pozicije ukljueno prebacimo
u poziciju iskljueno opet nita ne mijenjamo. Dakle imamo akcije grupe na skup
date sa permutacijama (Tx(i)=x(T-1(i)) i operacijom zamijene varijabli: x(i) sa x(i)'.
Pronalaenje ciklikih indeksa je dosta komplikovano te emo ih ovdje preskoiti.
JEZIK
Jezik je sredstvo za komunikaciju izmedju dva ili vise korisnika i mora da
bude prihvatljiv za sve korisnike. Ako su svi korisnici jezika ljudi, onda je jezik
komunikacije obicno prirodni jezik (engleski, francuski, i tako dalje.). Prirodni
jezici su ekspresivni (univerzalni), i njima se moze izraziti svaka informacija, ali su
nejednoznacni i neprecizni u predstavljanju specificnih informacija kao sto su
matematicke. Zato se izgrauju vjestacki jezici u specificnim oblastima, npr. jezik
matematickih formula u matematici, jezik hemijskih formula u hemiji, jezik
saobracajnih znakova u saobracaju, i tako dalje.
Posebna klasa vjestackih jezika, u slucaju da je jedan od korisnika jezika
racunar, jesu programski jezici. Osnovni motiv za uvodjenje programskih jezika je
potreba da se premosti razlika u nivou apstrakcije covjeka i racunara. Dok covjek
ima potrebu i mogucnost da razmislja na razlicitim, ponekad visokim nivoima
apstrakcije, racunar je ogranicen mogucnostima koje su definisane u trenutku
njegove izgradnje i izgradnje njogovog operativnog sistema. Programski jezici
omogucuju covjeku da formulise poruku na nacin koji je za njega relativno
prirodan i jednostavan. S druge strane precizna definicija dopustenih oblika i
njihovog znacenja omogucuje izgradnju jezickih procesora (prevodilaca i
interpretera)- programa pomocu kojih se covjekova poruka prevodi na jezik
"razumljiv" masini masinski jezik.
Postoje razne definicije programskog jezika. Jedna od njih je definicija
Americkog instituta za nacionalne standarde (ANSI) koja glasi : "Programski jezik
je jezik koji se koristi za pripremanje racunarskih programa.". Ova definicija, pored
toga sto je veoma opsta, ne odrzava tekucu upotrebu jezika, tj. ne pravi razliku
izmedju raznih programskih jezika. Ta razlika u filozofiji, strukturi i upotrebi
raznih programskih jezika najbolje se sagledava kroz klasifikaciju programskih
jezika.
Programski jezici kao nacin komunikacije izmedju covjeka i racunara
primjenjuju se od druge polovine pedesetih godina proslog vijeka, kada je
definisana prva verzija programskog jezika FORTRAN i napravljen prevodilac za
njega. Od tada pa do danas razvijeno je vise stotina programskih jezika.
Jezik. Sintaksa i semantika
Svaki jezik pa i programski jezik definise se sintaksom i semantikom jezika.
Sintaksa je nauka o jeziku koja izucava korektne - dopustene konstrukcije
jezika.
Semantika je nauka o jeziku koja izucava znacenje dopustenih konstrukcija
jezika.
Azbuka, rijec
51
52
Meta jezici
Programski jezici ine jedan pravi podskup skupa formalnih jezika.
Njihova sintaksa se zbog toga moe opisati sredstvima koja su pogodnija (od
formalnih gramatika) za predstavljanje i jednostavnija za razumijevanje. Ta
sredstva su tzv. meta jezici. To su jezici kojima se opisuje jezik koji se
izuava. Sam jezik koji se izuava, npr. programski jezik, zove se objekt
jezik.
Kada je rije o prirodnom jeziku, onda se njegova sintaksa i
semantika opisuju takodje prirodnim jezikom, tj. i objekt jezik i meta jezik u
sluaju prirodnog jezika je taj prirodni jezik.
Za formalno opisivanje sintakse programskog jezika koriste se najee dva
meta jezika : Bekusova notacija i sintaksni dijagrami.
Bekusova notacija
Bekusova notacija je jedan meta jezik za formalno opisivanje sintakse
programskih jezika.
53
55
pravilo
vai:
,
gde je * Klinijeva zvezdica.
Dakle, svako izvoenje preslikava jedan niz znakova u drugi, pri emu prvi
niz znakova sadri barem jedan nezavrni simbol. U sluaju da je drugi niz prazan
niz, onda se oznaava sa .
Gramtika se formalno definie kao ureena etvorka (N, , P, S). Jezik
formalne gramatike G = (N, , P, S) oznaen sa L(G) je definisan kao skup svih
onih niski zavrnih simbola koje mogu biti generisane od startnog nezavrnog
simbola S primjenom pravila P gramatike G.
Izvoenja su usmjerene relacije izmeu stringova sainjenih od terminalnih
i neterminalnih simbola, gdje su terminalni simboli obino rijei, a neterminalni
apstraktne gramatike oznake.
Startni simbol je neterminal koji predstavlja itav jezik generisan
gramatikom. Od njega polazi analiza. Ako neka reenica moe da se redukuje u
ovaj neterminal primjenom produkcija gramatike, onda se kae da gramatika
prihvata ovu reenicu, da je napisana pravilno po datoj gramatici, ili da pripada
jeziku kojeg generie gramatika.
Primjer2:
Posmatrajmo gramatiku G gdje je
poetni simbol, i P je skup sljedeih pravila:
1.
2.
3.
4.
Neki prijmeri generisanih niski u
, S je
su:
56
(napomena:
brojem i" )
Hijerarhija Chomsky-og
Kada je Noam Chomsky iznio formalizam fomalnih gramatika 1956.godine,
klasifikovao ih je u tipove danas poznate kao hijerarhija Chomsky-og0. Postoji
sljedea podjela:
Desno linearna (regularna) gramatika
Konteksno slobodna gramatika
Konteksno osetljiva gramatika
Gramatika bez ogranienja - opta
Razlika izmeu ovih tipova je u tome to neki tipovi gramatika imaju
stroija pravila pa mogu izraziti i manje formalne jezike. Dva vana tipa su
konteksno slobodne gramatike i regularne gramatike. Jezici koji se mogu opisati
ovakvim gramatikama se zovu konteksno slobodni jezici i regularni jezici. Iako
neto manje mone od gramatika bez ogranienja, koje mogu izraziti bilo koji jezik
koji prihvata Tjuringova maina, ova dva ograniena tipa gramatika su najee
koritena jer se parser za njih moe vrlo uspeno implementirati. Na primer, sve
regularne jezike moe prepoznati konani automat, a za korisne podskupove
konteksno slobodnih gramatika postoje dobro poznati algoritmi za generisanje
uinkovitih LL analizatora i LR analizatora koji prepoznavaju odgovarajue jezike
koje gramatika generie.
Praktina primjena
U programskim jezicima obino se koristi kontekstno slobodna gramatika
(engl. Context free grammar - CFG) koja kreira odgovarajue kontekstno
nezavisne jezike. Na primjer, programski jezik C, neterminal koji predstavlja itav
jezik generisan gramatikom, je kontekstno zavisan, ali se predstavlja kao
kontekstno nezavisan s tim da se kontekstna zavisnost rjeava u pristupu izradi
skenera. Skener je dio prevodioca koji program napisan u programskom jeziku
razbija na terminalne simbole, i sastavni je dio front-end prevodioca. Skener
emituje terminalne simbole parseru kao tok (engl. stream) vezujui za svaki
semantiku vrednost.
57
i piemo: M = (I, O, S, f, g, ).
Primjer 1
Neka je dato:
o skup ulaznih simbola I = {a, b}
o skup izlaznih simbola O = {0,1}
o skup stanja S = { 0, 1}
Funkcije f i g, su date u tabeli:
f
58
I
S
Primjer 2
Za mainu iz primjera 1, graf bi izgledao ovako:
59
60
poetno stanja,
Primjer 6
Neka je dato:
o skup ulaznih simbola I = { a, b }
o skup stanja S = { , C, F }
o skup zavrnih stanja A = { F }
o poetno stanje je
o funkcija f je data u tabeli:
f
I
{C}
{}
{}
{ C, F }
{}
{}
62
63
Bitovi u LFSR stanju koji utiu na input koje zovemo tapovi oznaeni
su bijelim na dijagramu.
Maksimalan LFSR ciklira kroz svih 2 n-1 moguih stanja unutar shift
registra osim onog gdje su sve nule (ako su sve nule, onda se stanje
nee nikada promijeniti).
Kao alternativa XOR zasnovanom feedbacku u standardnom LFSRu,
moe se koristiti i XNOR. U tom sluaju stanje sa svim jedinicama je
zabranjeno, jednako kao to je i stanje sa svim nulama zabranjeno
kad koristimo XOR. Ovo stanje se smatra zabranjenim zato to bi
broja ostao zakljuan u tom stanju.
65
LFSR e biti maksimalan samo ako je broj tapova paran. Samo dva ili
etiri tapa mogu biti dovoljna za jako velike sekvence.
Skup tapova mora biti relativno prost.
Moe postojati vie od jedne maksimalne tap sekvence za datu
duinu LFSR-a.
Jednom kada je jedna maksimalna sekvenca tapova pronaena druga
automatski slijedi. Ako je tap sekvenca u n-bitnom LFSR-u data sa
[n, A, B, C, 0] gdje je 0 odgovara lanu x0=1, onda obrnuta
odgovarajua sekvenca je [n, n-C,n-B,n-A,0]. Tako da tap sekvenci
[32,3,2,0] odgovara [32,30,29,0]. Obje daju maksimalnu sekvencu.
Galoisov LFSR
Nazvan po francuskom
matematiaru
Evariste
Galoisu, Galoisov LFSR, ili
LFSR
u
Galoisovoj
konfiguraciji je struktura koja
moe generirati isti izlazni tok
16-bitni Galoisov LFSR
kao i konvencionalni LFSR. U
Galoisovoj konfiguraciji, na
otkucaj clocka, bitovi koji nisu tapovi shiftuju se jednu poziciju udesno
nepromijenjeni. S druge strane, tapovi su upleteni u XOR sa izlazeim bitom prije
nego su prebaeni na sljedeu poziciju. Novi izlazni bit je sljedei ulazni bit. Efekat
ovoga je da kada je izlazni bit nula svi bitovi u registru se pomjeraju udesno
nepromijenjeni, i ulazni bit postaje nula. Kada je izlazni bit jedan, svi bitovi na tap
pozicijama promijene svoju vrijednost (sa jedan na nula, ili sa nula na jedan) i
cijeli registar se pomjera udesno i ulaz postaje jedan.
Da bi generisali isti izlazni tok, redosljed tapova mora biti obrnuti
odgovarajui (vidi ranije) od redoslijeda konvencionalnog LFSR-a, u suprotnom
e tok biti izvrnut. Vano je primjetiti da unutranje stanje LFSR-a nije nuno
jednako. Galoisov registar koji je pokazan ima isti izlaz kao i Fibonaccijev registar
u prethodnom dijelu.
Galoisovi LFSR-ovi ne povezuju sve tapove da proizvedu novi ulaz, tako da
je mogue svaki tap ponaosob da bude izraunat paralelno poveavajui brzinu
izvravanja. U softverskoj implementaciji LFSR-a Galoisova forma je vie efikasna
66
kako XOR operacije mogu biti implementirane rije po rije: samo izlazni bit mora
biti tretiran individualno.
Osobine izlaznog toka
Pojavljivanje jedinica i nula je statistiki jednako broju pojavljivanja u
istinski sluajnom nizu. LFSR-ov izlazni tok je deterministiki, tako da ako znate
trenutno stanje moete predvidjeti sljedee stanje. Ovo nije mogue sa istinskim
sluajnim dogaajima kao to je nuklearna razgradnja atoma. Izlazni tok je
mogue obrnuti, LFSR sa obrnutim odgovarajuim tapovima e proi kroz cijeli
ciklus stanja u obrnutom poretku.
Primjena u kriptografiji
LFSR-ovi se ve dugo koriste kao generatori pseudo-sluajnih brojeva za
upotrebu u stream cyphers, posebno u vojnoj kriptografiji, s obzirom na lakou
konstruisanja od jednostavnih elektromehanikih ili elektronikih kola, s obzirom
na duge periode i vrlo uniformno distribuirane izlaze. Kako bilo, LFSR je linearan
sistem, to ima za posljedicu vrlo jednostavnu kriptoanalizu. Upotreba nesvodljivih
polinoma obezbjeuje da niz pseudo-sluajnih brojeva ima statistike osobine niza
sluajnih brojeva npr. Ekvidistributivnost ( broj nula i jedinica) u nizu je priblino
jednak islino.
Neki polinomi za maksimalan LFSR
Bits
Feedback polynomial
Period
2n 1
n
4
x4 + x3 + 1
15
x5 + x3 + 1
31
x6 + x5 + 1
63
x7 + x6 + 1
127
x8 + x6 + x5 + x4 + 1
255
x9 + x5 + 1
511
10
x10 + x7 + 1
1023
11
x11 + x9 + 1
2047
12
4095
13
8191
14
16383
15
x15 + x14 + 1
32767
16
65535
17
x17 + x14 + 1
131071
67
18
x18 + x11 + 1
262143
19
524287
AES
AES (engl. Advanced encryption Standard) je jedan od kriptografskih
algoritama za zatitu digitalnih podataka. AES standard temelji se na simetrinom
Rijndael algoritmu, a kao standard razvijen je da bi postupno zamijenio DES, ija
sigurnost u dananje vrijeme nije dovoljna (DES je hardverski mogue razbiti).
Slino kao i DES, AES je razvijen u privatnom sektoru, no u saradnji s
amerikom vladom. AES je definiran i prihvaen od strane NIST-a (National
Institute of Standards and Technology) u FIPS 197 dokumentu, te se kao takav
koristi u amerikim dravnim ili drugim institucijama zvanino od 2000. godine.
Danas, to se tie upotrebe na internetu, DES, pa i drugi simterini
algoritmi jo uvijek su zastupljeni u veoj mjeri, no vremenom e i AES pronai
svoje mjesto pogotovo zato to DES kao takav ne predstavlja rjeenje u sistemima
koji zahtjevaju najvie razine sigurnosti.
2. Nain rada
Za razliku od na primjer, DES i IDEA algoritama koji podatke ifriraju u 64
bitnim blokovima, AES odnosno Rijndael algoritam ifrira 128 bitne blokove
podataka. Duina kljua moe biti 128, 192, ili 256 bita. Sam Rijndael algoritam je
oblikovan tako da je mogue ifriranje podataka u blokovima razliitih duina i sa
razliitim veliinama kljueva, no to nije definirano kroz standard. Obzirom na
kljueve, uobiajeno je algoritme nazivati AES-128, AES-192 i AES-256.
Matrica stanja
Interno sve operacije AES algoritma provode se na dvodimenzionalnom
nizu bajtova odnosno matrici stanja (state). Matrica stanja se sastoji od etiri reda
koji sadri odreeni broj bajta. Taj broj bajta predstavlja ukupnu duinu bloka u
bitovima podijeljenu sa 32. U konkretnom sluaju, kod AES algoritma to znai 4
bajta (Rijndael algoritam doputa i druge vrijednosti).
ifriranje, odnosno deifriranje, se provodi tako da se ulazni blok podataka
kopira u matricu stanja nad kojom se zatim provode razne operacije.
68
podataka.
Ulazni blok podataka kopira se u matricu stanja po sljedeoj formuli
stanje[r,s]=ulaz[r+4s], za 0 r 4,0 s 4
Takoer na slian nain se izlazni podaci kopiraju iz matrice stanja.
izlaz[r+4s]=stanje[r,s], za 0 r 4,0 s 4
Kljuevi
Kao to je ranije spomenuto, ulazni i izlazni blokovi AES algoritma su
duine 128 bita, dok duina kljua moe biti 128, 192, ili 256 bita. Klju se
prikazuje kao odreeni broj 32 bitnih rijei koji, ovisno o duini varira pa moe biti
predstavljen sa 4, 6 ili 8 rijei. Takoer, broj koraka od kojih se algoritam sastoji
ovisi o duini kljua. Tabela 1 daje prikaz ovisnosti broja koraka algoritma o duini
kljua, odnosno o implementaciji algoritma (broj koraka i duina ulaznih/izlaznih
blokova dati su u 32 bitnim rijeima). N k i Nw redom oznaavaju veliinu kljua i
duinu bloka podataka u rijeima dok Nr oznaava broj koraka algoritma.
2.3 Algoritam
Svaki od koraka algoritma predstavlja funkciju koja se sastoji od etiri
transformacije, koje se provode nad bajtovima.
1. Zamjena bajta na temelju supstitucijske tablice (S-blok).
2. Pomak redova u matrici stanja
3. Mijeanje podataka unutar svake kolone matrice stanja
4. Dodavanje podkljua u matricu stanja
ifriranje se provodi tako da se ulazni blok kopira u matricu stanja kako je
ranije opisano, te se zatim provodi inicijalno dodavanje podkljua u matricu.
Nakon toga, matrica stanja se transformira 10, 12, ili 14 puta, zavisno o veliini
kljua, s time da je posljednji korak donekle razliit od prethodih. Konano matrica
stanja se kopira u izlazni blok, na nain koji je opisan prethodno.
69
70
2.3.4
2.4
Ekspanzija kljua
71
73