You are on page 1of 253

Kdolstechnika - 2006 - crysys web vltozat - 6.

Kdolstechnika

Buttyn Levente Gyrfi Lszl Gyori Sndor Vajda Istvn

2006. december 18.

Jelen dokumentum szerzi jogvdelem trgya.


A dokumentum mindennem felhasznlst a
szerzk engedlyezhetik.
Kdolstechnika - 2006 - crysys web vltozat - 6.

Tartalomjegyzk

Elosz 5

1. Bevezets 7

2. Hibajavt kdols 9
2.1. Kdolsi alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . 9
2.2. Lineris kdok . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3. Vges test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Nembinris lineris kd . . . . . . . . . . . . . . . . . . . . . . . 28
2.5. Ciklikus kdok . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.6. Dekdolsi algoritmus . . . . . . . . . . . . . . . . . . . . . . . 35
2.7. Kdkombincik . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.8. Hibajavts s hibajelzs hibavalsznusge . . . . . . . . . . . . 42
2.9. Alkalmazsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.10. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.11. Megoldsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.12. sszefoglals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3. Kriptogrfia 74
3.1. Rejtjelezsi technikk . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2. Blokkrejtjelezsi mdok . . . . . . . . . . . . . . . . . . . . . . 105
3.3. Hitelestsi feladatok . . . . . . . . . . . . . . . . . . . . . . . . 115
3.4. Kulcscsere protokollok . . . . . . . . . . . . . . . . . . . . . . . 131
3.5. Alkalmazsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.6. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.7. Megoldsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3.8. sszefoglals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

4. Adattmrts 152
4.1. Prefix kdok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
4.2. tlagos kdszhossz, entrpia . . . . . . . . . . . . . . . . . . . 155
4.3. ShannonFano-kd . . . . . . . . . . . . . . . . . . . . . . . . . 156
4.4. Optimlis kdok, binris Huffman-kd . . . . . . . . . . . . . . . 162
4.5. Aritmetikai kdols . . . . . . . . . . . . . . . . . . . . . . . . . 165
Kdolstechnika - 2006 - crysys web vltozat - 6.

TARTALOMJEGYZK 4

4.6. Adaptv tmrts . . . . . . . . . . . . . . . . . . . . . . . . . . 171


4.7. Adaptv Huffman-kd . . . . . . . . . . . . . . . . . . . . . . . . 173
4.8. Univerzlis forrskdols: LempelZiv-tpus mdszerek . . . . . 176
4.9. BurrowsWheeler-transzformci . . . . . . . . . . . . . . . . . 182
4.10. Alkalmazsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
4.11. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
4.12. Megoldsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
4.13. sszefoglals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

5. Vesztesges forrskdols 200


5.1. Kvantls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
5.2. Transzformcis kdols . . . . . . . . . . . . . . . . . . . . . . 212
5.3. Prediktv kdols . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.4. Alkalmazsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
5.5. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
5.6. Megoldsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
5.7. sszefoglals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

Trgymutat 251
Kdolstechnika - 2006 - crysys web vltozat - 6.

Elosz

A digitlis kommunikci, adattrols, -vdelem s -feldolgozs tudomnyos ala-


possg vizsglata Claude Shannon 1948-as, A kommunikci matematikai elm-
lete cmu cikkvel vette kezdett, gy az informci- s kdelmlet tudomnyga
alig fl vszzados mltra tekint vissza. Napjainkban azonban szinte szrevtle-
nl, m mgis kikerlhetetlenl jelen van az let s az infokommunikcis ipar
tmegszolgltatsainak szmos terletn. Lehet ov teszi a filmek s zenemuvek
korbban elkpzelhetetlenl j min osgu s gazdasgos trolst DVD-n illetve
CD-n, s az alkotsok tetszoleges szm lejtszst minosgromls nlkl. Ki l-
modott volna a mlt szzad derekn arrl, hogy egy egsz ests mozifilm elfrhet
egy korongon, akr tbbfle szinkronnal egytt? Gondolhatunk az utbbi vekben
rohamosan elterjedt msodik s harmadik genercis mobiltelefonokra, vagy a k-
zeljvoben hasonl karriert befut intelligens chipkrtykra. Emlthetnnk ezeken
kvl szmos ms szmtstechnikai s tvkzlsi alkalmazst.
Ahhoz, hogy ezekben az informcitovbbt illetve -trol berendezsekben
az informcikezels egyszerre legyen gazdasgos s biztonsgos, szksg van
olyan informatikusokra, akik a klnbz o kdolsi technikkat s algoritmusokat
kszsgszinten tudjk hasznlni.
Az informatikusok s villamosmrnkk oktatsban ppen ezrt rgta lnye-
ges szerepet kap ez a terlet. A Budapesti Muszaki s Gazdasgtudomnyi Egye-
tem Villamosmrnki s Informatikai Karn, a mrnk-informatikus egyetemi sza-
kon a kezdetektol a tanterv rszei az Informcielmlet s a Kdelmlet trgyak,
t ve pedig az Adatbiztonsg trgy is. Ezek a trgyak a ktciklus kpzsben az
eredeti clkituzssel az MSc szintre kerlnek.
A ktszintu mrnkkpzs bevezetsvel fel kell kszlnnk ezen ismeret-
anyag alapjainak az eddigiektol clkituzsben s mdszertanban eltr o tad-
sra. A BSc, vagyis az alapkpzs jl hasznlhat gyakorlati ismeretek elsajt-
tsra pt, mg az MSc, vagyis a mesterkpzs feladata az elmleti httr rsz-
letes bemutatsa, amely alapjn a mrnk kpes az informcitechnolgia terle-
tn fejlesztsi, tervezsi illetve kutatsi problmk megoldsra. A BME mrnk-
informatikus BSc kpzsben nll alaptrgyknt jelenik meg a Kdolstechnika,
melyet a hallgatk egy flvben, heti ngy rban tanulnak. Jegyzetnk ehhez a
trgyhoz kszlt, de trekedtnk arra, hogy az elkszlt mu ms fels ooktatsi in-
tzmnyek informatikus alapkpzseibe is knnyuszerrel beilleszthet o legyen. A
jegyzetnek a mrnk-informatikus alapkpzsen kvl jval szlesebb a potenci-
Kdolstechnika - 2006 - crysys web vltozat - 6.

E L OSZ 6

lis olvaskznsge. Az egyetemi s f oiskolai oktatsban haszonnal forgathatjk


ms mrnkszakos vagy matematikus, alkalmazott matematikus szakos hallgatk
is, de nem szabad megfeledkeznnk a vgzett mrnkk szakmai nkpzsr ol
vagy szervezett tanfolyamok keretben folyatott tovbbkpzsr ol sem.
A korltozott terjedelem s az oktatsra fordthat korltos id o miatt nem le-
het clunk a bevezeto matematikai ismeretek ismtelt elmondsa, hiszen ezzel
a hallgatk ms alapoz trgyak keretben ismerkednek meg (a BME mrnk-
informatikus szakn ilyen trgy pldul a Bevezets a szmtselmletbe vagy a
Valsznusgszmts). Ugyanakkor csak az elemi lineris algebrai s a bevezet o
valsznusgszmtsi tudsra ptnk.
Clkituzsnk, hogy ismertessk az informci tvitelnek illetve trolsnak
alapveto kdolsi algoritmusait s ezek tulajdonsgait. A szba jv o informci-
technolgiai feladatokat ngy csoportba szoks sorolni:
hibajavt kdols,
adatbiztonsg,
adattmrts s
vesztesges forrskdols.

Ehhez igazodnak a kvetkezo fejezetek, amelyekben a legfontosabbb technikk


utn alkalmazsi pldkat adunk (pl. CD, GSM, Internet, videotmrts), majd
gyakorl feladatok s azok megoldsai kvetkeznek. Vgl a legfontosabb isme-
retek sszefoglalsa s irodalomjegyzk zrja a fejezeteket.
Ez a jegyzet a Korszeru Mrnkrt Alaptvny Tanknyv, szakknyv, jegy-
zet projektjnek keretben kszlt. Ezton is szeretnnk ksznetet mondani az
Alaptvny tmogatsrt.

Budapest, 2006. december 18.

Buttyn Levente
Gyrfi Lszl
Gyori Sndor
Vajda Istvn
Kdolstechnika - 2006 - crysys web vltozat - 6.

1. fejezet

Bevezets

A kvetkezo fejezetekben a hrkzlsi rendszerek mukdst egzakt matematikai


eszkzkkel fogjuk vizsglni. Persze sokfle matematikai modellt llthatunk hr-
kzlsi feladatokra, de kezdetben az egyik legegyszerubbet vlasztva jl kifejez-
hetjk a problma lnyegt. A hrkzls alapfeladata az, hogy valamely jelsoro-
zatot (informcit) el kell juttatni egyik helyr ol a msikra (vagy trolni kell). A
tvolsgot (vagy idot) thidal hrkzlsi eszkz a csatorna azonban csak
meghatrozott tpus jeleket kpes tvinni. Az informciforrs ltal el olltott
jelfolyamot kdolssal meg kell feleltetni egy, a csatorna ltal hasznlt jelekb ol
ll jelfolyamnak. A felhasznl (vev o, nyelo) a csatorna kimenetn pontosan,
vagy megkzeltoleg visszalltja, dekdolja az zenetet. Az 1.1. brn egy ilyen
rendszer blokkdiagrammja lthat.
A kdol ltalnos esetben hrom rszb ol ll (1.2. bra). Az elso a forrsk-
dol vagy tmrto, amelynek clja a forrs kimenetn jelenlv o felesleges ismt-
lodsek, fggosgek, vagyis az n. redundancia eltvoltsa. Ez a tmrts akkor
lehetsges, ha vagy az egyes betuk nem egyformn valsznuek, vagy az egyms
utn kvetkezo betuk nem fggetlenek. Megkvetelhetjk, hogy a forrsdekdol
(kitmrto) pontosan helyrellthassa az adatokat, de megelgedhetnk rszleges
helyrellthatsggal is. A forrskdol teht a forrs zeneteit gazdasgosan, t-
mren reprezentlja. Ezzel foglalkozik a 4. s 5. fejezet. A kdol msodik rsze
a titkost (3. fejezet), amely egyrszt az adatvdelmet garantlja, vagyis azt, hogy
illetktelenek ne frhessenek hozz az zenet tartalmhoz, msrszt pedig a hite-
lestst oldja meg, vagyis annak bizonytst, hogy az zenet valban a feladtl
szrmazik. A harmadik rsz a csatornakdol vagy hibajavt kdol (2. fejezet),
amelynek feladata a tmrtovel ppen ellenttes. Irnytott mdon visz be re-

forrs - kdol - csatorna - dekdol - nyelo

1.1. bra. Hrkzlsi rendszer blokkdiagramja


Kdolstechnika - 2006 - crysys web vltozat - 6.

- kdol - - tmrto - titkost - hibajavt -


kdol

- dekdol - - kitmrto - vissza- - hibajavt -


fejto dekdol

1.2. bra. A kdol s a dekdol felptse

dundancit az adatokba gy, hogy a csatorna tviteli hibi javthatk legyenek.


Ezeknek megfeleloen az 1.2. brn lthat dekdol is hrom rszb ol ll: csator-
nadekdol (hibajavt dekdol), visszafejt o s forrsdekdol (kitmrto).
A msodik s a harmadik rsz feladatnak rzkeltetsre tegyk fel, hogy egy
gyfl az interneten akar egy banki tranzakcit lebonyoltani. Ekkor nyilvn el-
vrja, hogy a megadott adatok pontosan legyenek tovbbtva (hibajavt kdols),
ms szemly ne tudja meg ezeket az adatokat mg akkor sem, ha az informcito-
vbbts nyilvnos hlzaton, pldul mobil eszkzn trtnik (titkosts), a bank
szmra pedig bizonytott legyen, hogy valban o kezdemnyezte a tranzakcit
(hitelests, digitlis alrs).
A forrskdol s -dekdol egyttese foglalja magba a forrskdot, a csator-
nakdol s -dekdol egyttese pedig a csatornakdot. A csatorna a kommuni-
kcis rendszer tervezoje szmra adott, meg nem vltoztathat tulajdonsgokkal
rendelkezo modell, amely lerja, hogyan zajlik az adatok tvitele vagy trolsa. A
tervezo ennek figyelembe vtelvel azonban szabadon megvlaszthatja a forrsk-
dot s a csatornakdot gy, hogy ez minl jobb adattovbbtst eredmnyezzen.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2. fejezet

Hibajavt kdols

A hibakorltoz kdols clja informci hibz kommunikcis csatornkon tr-


tno megbzhat tvitele illetve hibz adattrolkon trtn o megbzhat trolsa.
E clbl az informcit kisebb egysgekre bontjuk, majd redundns informcival
bovtve kdszavakba kpezzk, kdoljuk. A redundancia hozzadsa teszi lehe-
tov az informci vdelmt hibzs esetn. A hibakorltoz kdols kt f o tech-
nikja a hibajelzs illetve a hibajavts. Hibajelzs esetn a cl annak eldntse,
hogy trtnt-e meghibsods az informci tovbbtsa illetve trolsa sorn. Hi-
bajavts esetn ezen tlmenoen a hibk kijavtsa is feladat. Tbb kapcsolatos
krds merl fel: hogy trtnjen a kdszavakba kpezs, azaz a kdols, ha clunk
a minl erosebb hibakorltoz kpessg, azon felttel mellett, hogy a rekonstrukci
(dekdols) a szmtsignyt tekintve hatkony maradjon.
Az albbiakban a hibakorltoz kdok konstrukcis s dekdolsi alapelveit
tekintjk t, a hangslyt a kapcsolatos fogalmakra s alapvet o algoritmusokra he-
lyezve.

2.1. Kdolsi alapfogalmak


A hibajavt kdols alapveto mdszereit a 2.1. brn lthat egyszeru hrkzlsi
struktra kapcsn vizsgljuk.
Az u s u0 vektorok koordinti egy F halmazbl veszik rtkeiket, mely hal-
mazt forrsbcnek nevezzk. A kdol a k hossz u vektort (az zenetet) egy n
hossz c vektorba (a kdszba) kpezi le. A c koordinti egy Q halmazbl veszik
rtkeiket. A Q-t kdbcnek vagy csatorna bemeneti bcnek fogjuk hvni.

forrs kdol csatorna dekdol nyelo


u c v u0

2.1. bra. Hrkzlsi rendszer blokkdiagramja


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.1. KDOLSI ALAPFOGALMAK 10

A csatorna kimenete v, szintn egy n hossz vektor, melynek koordinti szintn


Q-beliek.
Egy
c = (c1 , . . . , cn )
bemeneti s
v = (v1 , . . . , vn )
kimeneti sorozat esetn azt mondjuk, hogy az m-edik id opontban a csatorna hib-
zott, ha cm 6= vm . Jellje d(c, v) azon i pozcik szmt, ahol c i 6= vi .
d(c, v) neve a c, v sorozatok Hamming-tvolsga, s azt mondjuk, hogy a c
sorozat kldsekor s a v sorozat vtelekor a hibk szma t = d(c, v). Ezt az esetet
nevezzk egyszeru hibzsnak, amikor a hiba helye s rtke egyarnt ismeretlen.
d(c, v) valban tvolsg, hiszen

d(c, v) 0,

d(c, v) = d(v, c),


s igaz a hromszg-egyenlotlensg:

d(c, v) d(c, w) + d(w, v).

Kd (blokk-kd) alatt a Qn halmaz egy C rszhalmazt rtjk, azaz C minden


eleme egy n hossz vektor, melynek koordinti Q-beliek. C elemeit kdszavak-
nak nevezzk. A tovbbiakban a C(n, k, d), illetve rvidtettebb formban C(n, k)
jellst alkalmazzuk, kiemelve a kd paramtereit. A kdols egy invertlhat
fggvny, mely k hossz F-beli sorozatot zenetet kpez le egy kdszba,
formalizlva:
f : F k C,
s minden klnbzo u, u0 -re f (u), f (u0 ) is klnbzo.
Dekdols alatt kt fggvny egymsutnjt rtjk. Az egyik a csatorna ki-
menetnek n hossz szegmenst kpezi le C-be, azaz igyekszik eltallni a kldtt
kdszt, a msik pedig az f fggvny inverze, teht

g : Qn C, f 1 : C F k .

Mivel f egyrtelmuen meghatrozza f 1 -et, ezrt dekdols alatt a ksobbiek-


ben csak a g fggvnyt rtjk. A g dekdol fggvnyknt az algebrai hibajavt
kdok elmletben specilis fggvnyt vlasztunk, nevezetesen a v vektorhoz meg-
keressk azt a c0 C kdszt, mely Hamming-tvolsg szerint hozz a legkzelebb
van, vagy ha tbb ilyen van, akkor az egyiket, teht teljesl, hogy ha c 0 = g(v), ak-
kor
d(c0 , v) = min d(c, v).
cC
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.1. KDOLSI ALAPFOGALMAK 11

A dekdols feladata ezek utn arra a messze nem trivilis feladatra szukl,
hogy egy v vett szhoz hogyan keressk meg a hozz legkzelebbi c 0 kdszt anl-
kl, hogy minden d(c, v)-t kiszmtannk. Ha mgis kiszmtjuk ezeket a tvols-
gokat, s minden v-hez megkeressk a hozz legkzelebbi c kdszt, majd a neki
megfelelo zenetet, akkor elvben azt eltrolhatjuk, s gy egy tblzathoz jutunk,
melynek cmt v adja, tartalma pedig a v-nek megfelel o dekdolt zenet. Ez a tb-
lzatos dekdolsnak a legegyszerubb, de legpazarlbb esete, hiszen a tblzat q n
darab zenetbol ll, ahol q a Q kdbc elemszma.

2.1. plda (ismtlses kd). Tekintsk azt a nagyon egyszeru kdolst, amikor bi-
nris forrsunk egyes bitjeit tekintjk zenetnek, s hromszor megismtelve kld-
jk a kommunikcis csatornba a kvetkez o lekpezs szerint:

u c 1 c2 c3
0 0 0 0 c1
1 1 1 1 c2

A kd egy hibt kpes javtani, mivel 1 hiba esetn a vett sz az tkldtt kdsztl
egy, mg a msik kdsztl ketto Hamming-tvolsgra van. A kd egy illetve
ketto hibt kpes jelezni, mivel ezen esetekben a vett sz nem lehet kdsz. A
konstrukci ltalnosthat: legyen az ismtlsek szma n, n 3 pratlan szm.
Knnyen lthat, hogy a kd (n 1)/2 hibt kpes javtani, valamint n 1 hibt
jelezni.

2.2. plda (egyszeru paritskd). Tekintsk azt a feladatot, amikor a forrs a k-


vetkezo ngy lehetsges zenetet bocstja ki, a 00, 01, 10, 11 zeneteket, amelyek-
hez a kdol a kvetkezo, 3 hossz kdszavakat rendeli hozz:

u1 u2 c1 c2 c3
0 0 0 0 0 c1
0 1 0 1 1 c2
1 0 1 0 1 c3
1 1 1 1 0 c4

azaz az u1 u2 bitet kiegsztjk egy paritsbittel. A kd egy hibt kpes jelezni. A


kd nem kpes hibt javtani: pl. ha c 1 kd tovbbtsakor a msodik bit meg-
hibsodik, akkor a v = (0, 1, 0) vett sz azonos, egy tvolsgra lesz a c 1 s c2
kdszavakhoz.

2.3. plda. A 2.2 pldban szereplo zenetekhez rendeljnk 5 hossz kdszava-


kat:
u1 u2 c1 c2 c3 c4 c5
0 0 0 0 0 0 0 c1
0 1 0 1 1 0 1 c2
1 0 1 0 1 1 0 c3
1 1 1 1 0 1 1 c4
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.1. KDOLSI ALAPFOGALMAK 12

A g s az f 1 fggvnyt a kvetkezo tblzat foglalja ssze:


v1 v2 v3 v4 v5 c01 c02 c03 c04 c05 u01 u02
0 0 0 0 0
1 0 0 0 0



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

0 0 0 1 0


0 0 0 0 1

0 1 1 0 1
1 1 1 0 1



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

0 1 1 1 1


0 1 1 0 0

1 0 1 1 0
0 0 1 1 0



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

1 0 1 0 0


1 0 1 1 1

1 1 0 1 1
0 1 0 1 1



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

1 1 0 0 1


1 1 0 1 0

0 0 0 1 1

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

1 1 0 0 0

0 0 1 1 1

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

1 1 1 0 0
Az elso 24 kimeneti sz dekdolsakor nincs problma, hiszen minden 6 sz-
bl ll csoport minden szava olyan, hogy vagy kdsz (az els o helyen ll), vagy a
kdsz egy bitjnek megvltoztatsval (egy hibval) kpz odtt. A 2528. szavak
mindegyike c1 -tol s c4 -tol 2, mg c2 -tol s c3 -tl 3 tvolsgra van. Itt nknyesen
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.1. KDOLSI ALAPFOGALMAK 13

a dekdols eredmnye c1 (jobb rvnk nincs, mint az, hogy jobban szeretjk az
almt, mint a cseresznyt). A 2932. szavak mindegyike c 1 -tol s c4 -tol 3, mg
c2 -tol s c3 -tl 2 tvolsgra van. Itt (szintn nknyesen) a dekdols eredmnye
c2 .

A ksobbiekben kiderl, hogy a kdol f fggvny leglnyegesebb tulajdon-


sga a C kd egy paramtere, amit kdtvolsgnak neveznk, s d min -nel jellnk:

dmin = min0 d(c, c0 ).


c6=c
c,c0 C

A 2.1. s a 2.3. pldkban dmin = 3, mg a 2.2. pldban dmin = 2.


A hibajelzs a hibakorltoz kdols azon feladata, amikor a vev oben csupn
detektlni akarjuk a hibzs tnyt, azaz azt krdezzk, hogy van-e hiba. Nyilvn
egy v vett sz esetn akkor tudjuk a hibzst szrevenni, ha v nem kdsz, amire
garancia, hogy ha c kldtt kdsz esetn

dmin > d(v, c),

azaz a hibk szmra


dmin > t,
teht egy dmin kdtvolsg kd minden, legfeljebb d min 1 szm hibt jelezni
tud.
Mivel a 2.1. s a 2.3. pldkban dmin = 3, ezrt ez a kd 2 hibt tud jelezni, mg
a 2.2. plda kdja dmin = 2 miatt 1-et.
Hibajavts esetn azt krdezzk, hogy ha t a hibk szma, akkor mi biztostja,
hogy a v vett szbl a c kldtt kdsz egyrtelmuen visszallthat legyen, azaz
minden ms c0 kdszra
d(v, c0 ) > d(v, c) (2.1)
legyen. Mivel a Hamming-tvolsg valban tvolsg, ezrt teljesti a hromszg-
egyenlotlensget, azaz

d(v, c0 ) d(c, c0 ) d(v, c), (2.2)

teht (2.1) gy biztosthat, hogy

d(c, c0 ) d(v, c) > d(v, c),

ugyanis, ha ez utbbi teljesl, akkor (2.1) is teljesl, azaz minden c 0 6= c-re

d(c, c0 ) > 2d(v, c),

vagyis
dmin
> d(v, c).
2
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.1. KDOLSI ALAPFOGALMAK 14


j k
d 1
sszefoglalva: egyszeru hibzs esetn min2 hiba javthat.
A 2.1. s a 2.3. plda kdja 1 hibt tud javtani, mg a 2.2. plda kdjnak
hibajavt kpessge 0.
Gyakran fordul elo olyan hibzs, amikor tudjuk, hogy egy pozciban hiba
lehet, vagyis tudjuk, hogy ms pozcikban nincs hiba, teht a hiba helyt ismer-
jk, csak a hiba rtkt nem. Az ilyen hibt trlses hibnak nevezzk. Egysze-
ruen belthat, hogy minden dmin 1 trlses hiba javthat, ugyanis a legrosszabb
esetben sem fordulhat elo, hogy kt c, c0 kdsz ugyanazon, de legfeljebb dmin 1
pozcijnak trlsvel ugyanazt a szt kapnnk.
A 2.1. s a 2.3. plda kdja 2 trlses hibt tud javtani, mg a 2.2. plda kdja
1-et.
Nyilvn adott n kdszhosszsg s d min kdtvolsg esetn nem lehet akr-
milyen nagy mretu kdot konstrulni:

2.1. ttel (Singleton-korlt). Egy M kdszbl ll, n hossz s d min kdtvol-


sg kdra
M qndmin +1 .

B IZONYTS : Legyen k egy termszetes szm, melyre

qk1 < M qk .

Mivel a k 1 hossz klnbzo sorozatok szma qk1 , ezrt qk1 < M miatt ltezik
kt kdsz c s c0 , melyek az elso k 1 koordintban megegyeznek. Ezekre

d(c, c0 ) n k + 1,

kvetkezskppen
dmin n k + 1,
azaz
M qk qndmin +1 .

Jellegzetes esetben M = qk , vagyis a kdol k hossz forrsszegmensekhez ren-


del n hossz vektorokat. Azt mondjuk ilyenkor, hogy a kdunk (n, k) paramteru.
Ebben az esetben a Singleton-korlt alakja

dmin n k + 1.

2.1. definci. Azon kdot, melyre a Singleton-korltban egyenl osg ll, maxim-
lis tvolsg vagy MDS (maximum distance separable) kdnak nevezzk.

A 2.1. pldban k = 1, n = 3, dmin = 3, teht ez a kd MDS kd. Ugyanakkor


a 2.3. pldban k = 2, n = 5, dmin = 3, gy ez a kd nem MDS.
A 2.1. s a 2.3. pldk kdjai egy hibt kpesek javtani. Ehhez a kvetkez o
szemlletes geometriai kpet rendelhetjk. A kdszavak mint kzppontok k-
rl kpzeljnk el 1 Hamming-sugar gmbket, azaz a gmb felletn olyan
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.1. KDOLSI ALAPFOGALMAK 15

kdszhossz hosszsg binris szavak tallhatk, amelyeknek a kzppontban


levo sztl val Hamming-tvolsga 1. Ha egy hiba keletkezik, akkor a vett sz a
leadott kdsz krli gmbn helyezkedik el. Ms szavakkal ezen gmbk a dek-
dolsi tartomnyok. Tekintsk eloszr a 2.1. plda kdjt. A kt gmb a kvetkez o
szavakat tartalmazza:

(0, 0, 0) : (1, 0, 0), (0, 1, 0), (0, 0, 1)

(1, 1, 1) : (0, 1, 1), (1, 0, 1), (1, 1, 0)


A kt gmb tartalmazza az sszes 3 bit hosszsg binris szt, teljesen kitlti 3
bit hosszsg binris szavak tert. A 2.3. pldk kdja esetn a ngy 1 Hamming-
sugar gmb nem tlti ki az 5 bit hosszsg binris szavak tert. Ugyanakkor nem
is tudjuk nvelni 2 Hamming-sugrra a gmbk mrett anlkl, hogy azok tlapo-
ldnnak. Abban az esetben, ha gmbi dekdolsi tartomnyokkal hzagmentesen
kpesek vagyunk lefedni a teret perfekt kdokrl beszlnk. Ennek megfelel oen
a 2.1. plda kdja perfekt, mg a 2.3. plda kdja nem az. Nagyon egyszeru ssze-
fggs addik az 1 hibt javt binris perfekt kdok paramterei kztti sszefg-
gsre. A tr elemeinek szma 2n , a kdszavak szma 2k , gy egy gmb elemeinek
szma ezek hnyadosa, azaz 2nk . Msfelol, egy 1 Hamming sugar gmbben
1 + n elem van, gy addik, hogy 1 hibt javt binris perfekt kdok esetn

1 + n = 2nk . (2.3)

A kvetkezo szakaszban mutatunk egy az ismtlses kdnl hatkonyabb perfekt


kdot, a binris Hamming-kdot. A (2.3) sszefggs knnyen ltalnosthat tet-
szoleges t 1 hiba javts esetre: a kplet bal oldaln a gmb elemeinek szma, a
kzppontl 0, 1, 2, . . . ,t Hamming-tvolsgra lev o szavak szmnak sszege, azaz
   
n n
V (n,t) = 1 + n + + +
2 t

ll. A fenti gondolatmenet alapjn add Hamming-korlt binris esetben az albbi

V (n,t) 2nk .

A Hamming-korlt nembinris esetben a kvetkez o alakot lti:


t  
n
i (q 1)i qnk
i=0
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.2. L INERIS KDOK 16

2.2. Lineris kdok

Binris lineris kdok

Ebben a szakaszban eloszr binris kdok egy fontos csoportjval ismerkednk


meg. A tovbbiakban a kdjainkban szerepl o kdszavakat alkot szimblumok
legyenek 0 vagy 1 rtkuek, az sszeads s a szorzs pedig a binris sszeads s
a binris szorzs, azaz a modulo 2 sszeads s a modulo 2 szorzs.
Vezessk be a lineris kd fogalmt:
2.2. definci. Egy binris C kd lineris, ha a C halmaza lineris tr, azaz ha
minden c, c0 C-re c + c0 C.
A lineris kd defincijbl kvetkezik, hogy a 0 vektor eleme minden lineris
kdnak, vagyis minden lineris kd esetn a 0 kdsz. Egyszeruen belthat, hogy
a 2.3. s 2.2. plda kdja lineris.
A lineris kdok jelentosgt az adja, hogy az egyes zenetekhez tartoz kd-
szavak viszonylag egyszeruen generlhatk, s ugyancsak egyszeru mdszer tall-
hat a vett kdszavak hibamentessgnek vizsglatra, vagyis a hibadetektlsra,
s a hibk javtsa sem bonyolult. A kvetkez okben e mdszereket fogjuk bemu-
tatni.
Jelentsen C tovbbra is egy lineris kdot, a kdszhossz legyen n. Ekkor C
az n hosszsg binris koordintj vektorok ternek egy altere; kdsz helyett
gyakran vektor-t fogunk mondani.
A vals vektortrben megszokott lineris fggetlensg s bzis fogalmak itt is
teljesen hasonlan rtelmezhetok, vagyis
2.3. definci. A g1 , g2 , . . . , gk C vektorok linerisan fggetlenek, ha i {0, 1}
mellett
k
i gi = 0
i=1
csak gy llhat elo, ha i = 0 minden i = 1, 2, . . . , k-ra.
2.4. definci. A g1 , g2 , . . . , gk C vektorok a C lineris tr egy bzist alkotjk,
ha linerisan fggetlenek, tovbb igaz az, hogy minden c C vektor el ollthat
k
c = ui gi (2.4)
i=1

alakban, ahol ui {0, 1} minden i = 1, 2, . . . , k-ra.


Az utbbi definciban a bzist alkot vektorok lineris fggetlensgb ol k-
vetkezik, hogy a kdszavak fenti tpus el olltsa egyrtelmu is, ha ugyanis l-
tezne kt klnbzo elollts valamely c C-re, teht
k
c = ui gi
i=1
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.2. L INERIS KDOK 17

s
k
c = yi gi ,
i=1
ahol nem ll fenn ui = yi minden i-re, akkor a kt egyenletet kivonva egymsbl
a nullvektornak egy nem trivilis el olltst kapnnk a bzisvektorokkal, ami el-
lentmondana azok lineris fggetlensgnek.
A (2.4) egyenlosg felrhat mtrixalakban:

c = uG, (2.5)

ahol u = (u1 , u2 , . . . , uk ), G pedig a bzisvektorokbl mint sorvektorokbl ll mt-


rix. A (2.5) egyenlettel teht egy k-dimenzis s egy n-dimenzis vektort rendelnk
ssze lineris transzformcival, mgpedig klcsnsen egyrtelmu mdon. Azt
fogjuk mondani, hogy az u zenethez a c kdsz tartozik.
A k-dimenzis u vektorokkal 2k -fle zenetet fejezhetnk ki, s ezeket kdoljuk
a C kddal. C elemei azonban n-dimenzis vektorok, s n nem kisebb k-nl, hiszen
k az n-dimenzis vektorok C alternek dimenziszma. A k = n esetnek nincs most
jelentosge, ha k kisebb, mint n, akkor viszont vilgos, hogy nem minden vektort
kell felhasznlni kdsznak, vagyis kdunk redundns lesz, s ezt a redundancit
tudjuk hibajavtsra felhasznlni.
Az zenetekhez a kdszavakat a G mtrix segtsgvel rendeljk hozz, vagyis
a G mtrix jelli ki az n-dimenzis vektortrnek a kdot jelent o C altert, a kdot
G generlja.

2.5. definci. A fenti tulajdonsg G mtrixot a C kd genertormtrixnak ne-


vezzk.

Vegyk szre, hogy ha nem trodnk azzal, hogy melyik kdsz melyik ze-
nethez tartozik, csak a kdszavak halmazt tekintjk, akkor G nem egyrtelmu,
vagyis tbb mtrix is generlhatja ugyanazt a C kdszhalmazt. A kvetkez o defi-
nci egy megfeleltetst definil az zenetek s a kdszavak kztt.

2.6. definci. Egy (n, k) paramteru lineris kd szisztematikus, ha minden kd-


szavra igaz, hogy annak utols n k szimblumt elhagyva ppen a neki megfe-
lelo k hosszsg zenetet kapjuk, ms szavakkal a k hossz zenetet egsztjk ki
n k karakterrel.

A 2.1. szakaszban mr leszgeztk, hogy dekdols alatt csak az esetleges hi-


bk kijavtst rtjk, aminek eredmnyekpp egy kdszt kapunk. Az zenet-
vektor visszanyershez mg el kell ugyan vgezni a kdols inverz muvelett, ez
azonban rendszerint trivilis lps, szisztematikus kd esetn pldul csak el kell
hagyni a kdsz egy rszt (a vgt).
Szisztematikus kd esetn a genertormtrix is egyrtelmu, mgpedig

G = (Ik , B) (2.6)
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.2. L INERIS KDOK 18

alak, ahol Ik a k k mretu egysgmtrix, B pedig k (n k) mretu mtrix. Az


u zenethez tartoz c kdsz szerkezete teht:

c = (u1 , u2 , . . . , uk , ck+1 , ck+2 , . . . , cn ).

A c elso k koordintjbl ll szegmenst zenetszegmensnek, az utols nk


koordintjbl llt paritsszegmensnek nevezzk.
A lineris kdok tovbbi tulajdonsgai elvezetnek az grt egyszeru hibadetek-
tlshoz illetve hibajavtshoz.

2.7. definci. Ha egy n k sorbl s n oszlopbl ll H mtrixra

HcT = 0

akkor s csak akkor, ha c C (cT a c transzponltja), akkor H-t a C kd paritsel-


lenorzo mtrixnak nevezzk. (Rviden paritsmtrixot fogunk mondani.)

H segtsgvel teht meg tudjuk llaptani, hogy egy vett sz valban kdsz-e.

2.2. ttel. Ha G s H ugyanazon C lineris kd genertormtrixa illetve parits-


mtrixa, akkor
HGT = 0.

B IZONYTS : Jellje Qk a k hossz binris sorozatok halmazt. Ekkor minden


u Qk -hoz ltezik c C, amire c = uG. Ugyanakkor c C miatt Hc T = 0, azaz

HcT = H(uG)T = HGT uT = 0.

Az utols egyenlosg pedig csak gy llhat fnn minden u Q k -ra, ha HGT = 0,


amint lltottuk.
A 2.2. ttel alapjn szisztematikus genertormtrix felhasznlsval knnyen
elollthatjuk a kd egy paritsellen orzo mtrixt. Keressk H-t

H = (A, Ink )

alakban. A 2.2. ttel alapjn

HGT = (A, Ink )(Ik , B)T = A + BT = 0.

Azaz
A = BT
kell teljesljn. (Binris esetben B T = BT .)
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.2. L INERIS KDOK 19

2.4. plda. Adjuk meg a 2.3. plda kdjnak szisztematikus genertormtrixt, ha


van, s a paritsmtrixot! Ezt gy kapjuk meg, ha G els o sora c3 , mg a msodik
c2 , mivel ekkor az elso 2 2-es rszmtrix egysgmtrix:
 
10110
G= .
01101

A fentiek alapjn a paritsmtrix:



11100
H = 1 0 0 1 0 .
01001

Ugyangy kapjuk a 2.2. plda szisztematikus genertormtrixt s paritsmtrixt:


 
101
G= ,
011

H= 111 .
A kvetkezokben a sly fogalmt definiljuk, majd megmutatjuk, hogy lineris
kdoknl a minimlis sly a kdtvolsggal egyenl o. (Emlkeztetnk, hogy kt
kdsz tvolsga azon koordintik szma, ahol a kt kdsz klnbzik.)

2.8. definci. Egy c vektor slya a koordinti kztt lev o nem nulla elemek
szma, jellse w(c).

2.9. definci. Egy C kd minimlis slyn a

wmin = min w(c)


cC
c6=0

szmot rtjk.

2.3. ttel. Ha C lineris kd, akkor a kdtvolsga megegyezik a minimlis sly-


val, azaz
dmin = wmin .

B IZONYTS :

dmin = min0 d(c, c0 ) = min0 w(c c0 ) = min


00
w(c00 ) = wmin ,
c6=c c6=c c 6=0

ahol az utols elotti egyenlosg felrsakor a C kd linearitst hasznltuk ki, ebb ol


kvetkezik ugyanis, hogy c00 = c c0 is kdsz, tovbb, az is, hogy minden kd-
sz eloll ilyen klnbsg alakjban. (Utbbi ahhoz szksges, hogy a minimum
kpzsekor valban minden c00 C-t figyelembe vehessnk.)
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.2. L INERIS KDOK 20

A 2.3. ttel jelentosge abban ll, hogy segtsgvel a d min definci alapjn
trtno kiszmtshoz szksges |C| (|C|1)
2 muveletet a wmin kiszmtshoz szk-
sges |C| 1 muveletre reduklhatjuk. (|C|-vel a C elemszmt jelltk.)
A 2.1. s a 2.3. pldk nemzrus kdszavaira tekintve lthat, hogy a minimlis
sly 3, mg a 2.3. plda esetn a minimlis sly 2.

Szindrma dekdols

A H mtrix hasznosnak bizonyul dekdols sorn.

2.10. definci. Az s = eHT mennyisget szindrmnak nevezzk.

Legyen az adott kdsz c, a vett sz v. Az e = v c vektort hibavektornak


nevezzk. Vegyk szre, hogy

HvT = H(c + e)T = HcT + HeT = HeT ,

vagyis HvT rtke csak a hibavektortl fgg, az adott kdsztl nem. A szindrma
teht a hibavektor egy lineris lekpezse.
A dekdols leggyakoribb mdja a szindrma dekdols. A fentiek alapjn
a dekdols a kvetkezokppen mehet vgbe: a vett v szbl kiszmtjuk az s T =
HvT = HeT szindrmt, ennek alapjn megbecsljk a hibavektort, s ezt v-b ol
levonva megkapjuk a kdszra vonatkoz becslsnket.
A szindrmnak hibamintra trtn o lekpezsi mdjt tblzatba szoks fog-
lalni, az n. standard elrendezsi tblzatba.
Valamely e hibaminta ltal generlt halmaz (szoksos nevn mellkosztly) az
e + c, c C(n, k) vektorok halmaza. Adott mellkosztly elemeihez azonos szind-
rma tartozik. Az e = 0 zrus hibavektorhoz tartoz mellkosztly a C(n, k) kddal
azonos. Ha egy e hibaminta e = e0 + c alakban rhat fel, akkor a kt hibaminta (e
s e0 ) azonos mellkosztlyt generl. Azonos mellkosztlyba tartoz hibamin-
tk kzl vlasszuk ki a legkisebb slyt, s azt mellkosztly-vezet onek nevezzk.
Ennek megfeleloen a standard elrendezsi tblzat az albbi struktrj:

szindrma mellkosztly-
vezeto
k 1)
s(0) e(0) = 0 c(1) c(2
k 1)
s(1) e(1) c(1) + e(1) c(2 + e(1)
.. .. .. .. ..
. . . . .
nk 1) nk 1) nk 1) k 1) nk 1)
s(2 e(2 c(1) + e(2 c(2 + e(2

| {z }
mellkosztly elemek
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.2. L INERIS KDOK 21

A w(e(i+1) ) w(e(i) ), e(0) = 0, i = 0, 1, . . . , 2nk 2 a szoksos sorrend. Kny-


nyen lthat, hogy a tblzat elemei klnbz oek. Egy soron bell ez nyilvnval.
Klnbzo sorokat tekintve tegyk fel, hogy e (i) + c( j) = e(k) + c(m) , ahol i > k.
Mivel ebbol e(i) = e(k) + c(m) c( j) = e(k) + c(n) kvetkezik, ahol c( j) , c(m) , c(n)
C(n, k), ezrt e(i) -nek is az e(k) mellkosztly-vezetoju sorban kell lennie, ami el-
lenttes kiindulsi felttelnkkel.
Az e(i) , i = 1, 2, . . . , 2nk 1 mellkosztly-vezetoket javthat hibamintk-
nak nevezzk, ugyanis ha a v vett sz szindrmja s (i) , akkor a bc = ve(i) kdszra
dntnk. A szindrma dekdolsnak ezt az els osorban elvi mdjt tblza-
tos dekdolsnak nevezzk. (Megjegyezzk, hogy a fenti dekdolsi mdszer
nembinris bc esetre trtno kiterjesztsekor 2nk helyett qnk ll.)
A szindrmt hasznl tblzatos dekdol trja a vizsglt binris esetben 2 nk
darab hibavektort tartalmaz, s a tblzat elemeit a szindrma segtsgvel cmez-
zk. Kvetkezskpp a tblzatos mdszer gyakorlatban addig hasznlhat, amg
gyorselrsu trunk mrete lehet ov teszi a javthat hibamintk trolst.

2.5. plda. Adjuk meg a javthat hibamintkat a



00111
H = 0 1 0 1 0
10011

mtrixszal adott kd esetre.


A dekdolsi tblzat a kvetkezo:
javthat
szindrma hibamintk
000 00000
001 10000
010 01000
011 00110
100 00100
101 00001
110 01100
111 00010

Teht a standard elrendezs fenti tblzata alapjn trtn o szindrma dekdolssal


az egyszeres hibk s a 00110, 01100 kt hibt tartalmaz hibamintk javthatk.

Illusztrciknt egy klasszikusnak szmt kdot mutatunk be, mely binris


Hamming-kd nven ismeretes. Konstrukcinkat az albbi ttelre alapozzuk:

2.4. ttel. C lineris kd kdtvolsga legalbb d akkor s csak akkor, ha a pari-


tsellenorzo mtrixa tetszolegesen vlasztott d 1 oszlopa linerisan fggetlen.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.3. V GES TEST 22

A 2.4. ttel alapjn 1 hibt javit binris kdot kapunk, ha H tetsz oleges kt oszlopa
linerisan fggtelen, azaz oszlopai klnbz ok. Mivel a klnbzo, nemzrus,
n k hossz binris vektorok szma 2nk 1, ezrt ezen vektorokat hasznlva a H
mtrix klnbzo oszlopaiknt, az

n = 2nk 1

sszefggsre jutunk, ami azt is jelenti, hogy a kapott kd perfekt tulajdonsg.


Ennek alapjn binris Hamming-kd paramterei az albbi szmprok (d min = 3):

n= 3 k= 1
7 4
15 11
31 26
63 57
127 120

2.6. plda. A (7, 4) paramteru Hamming-kd paritsmtrixa



1101100
H = 1 0 1 1 0 1 0 .
0111001

A genertormtrixa ebbol knnyen kiszmthat a mr szerepelt A = B T sz-


szefggs alapjn:
1000110
0 1 0 0 1 0 1
G=
0 0 1 0 0 1 1 .
0001111

2.3. Vges test


Hatkony hibajavt kdok konstrukcijhoz szksges, hogy a nembinris Q kd-
bc struktrlt legyen, mely pldul gy lehetsges, hogy muveleteket vezetnk
be Q-n.

2.11. definci. Egy Q halmazt testnek neveznk, ha rtelmezve van tetsz oleges
kt eleme kztt kt muvelet, amelyeket sszeadsnak illetve szorzsnak neve-
znk, + illetve szimblumokkal jelljk, s Q rendelkezik a kvetkez o tulajdon-
sgokkal:

1. Q az sszeadsra nzve kommutatv csoport, azaz

a) Minden , Q esetn + Q, teht Q az sszeadsra nzve zrt.


b) Minden , , Q esetn + ( + ) = ( + ) + (asszociativits).
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.3. V GES TEST 23

c) Ltezik egy 0-val jellt eleme Q-nek gy, hogy minden Q-re 0 +
= + 0 = . 0-t nullelemnek nevezzk.
d) Minden Q-hez ltezik Q gy, hogy + = 0. -t az additv
inverznek nevezzk s -val jelljk.
e) Minden , Q-re + = + (kommutativits).

2. Q \ {0} a szorzsra nzve kommutatv csoport, azaz

a) Minden , Q \ {0} esetn Q \ {0} (zrtsg).


b) Minden , , Q \ {0} esetn ( ) = ( ) (asszociativits).
c) Ltezik egy 1-gyel jellt eleme Q \ {0}-nak gy, hogy 1 = 1 = .
1-et egysgelemnek nevezzk.
d) Minden Q \ {0} esetn ltezik Q \ {0} gy, hogy = =
1. -t az multiplikatv inverznek nevezzk, s 1 -gyel jelljk.
e) Minden , Q \ {0}-ra = (kommutativits).

3. Minden , , Q-re 0 = 0 = 0 s ( + ) = ( ) + ( ) (diszt-


ributivits).

Egyszeru konvencikkal egy Q testben definilhat a kivons s az oszts a


kvetkezo mdon: alatt az -nak s a additv inverznek sszegt rtjk,
azaz + ()-t. / alatt az -nak s a multiplikatv inverznek a szorzatt
rtjk, azaz 1 -et, amennyiben nem 0.

Pldk testre:

Vals szmok halmaza a vals sszeadssal s szorzssal.


Racionlis szmok halmaza a vals sszeadssal s szorzssal.
Komplex szmok halmaza a komplex sszeadssal s szorzssal.
{0, 1} a binris sszeadssal s szorzssal.

Egy q elemszm Q testet vges testnek neveznk s GF(q)-val jelljk.


Mielott a vges testek aritmetikjt trgyalnnk, nhny a tovbbiakban fel-
hasznlt fontos tulajdonsgukat ismertetjk.
Egy GF(q) esetn q nem lehet brmilyen:

2.5. ttel. Egy GF(q) esetn q = pm alak, ahol p prmszm, teht q vagy prm-
szm, vagy prmhatvny.

2.1. lemma. Minden 0 6= a GF(q)-ra

aq1 = 1.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.3. V GES TEST 24

2.2. lemma. Minden 0 6= a GF(q)-ra ltezik egy legkisebb m termszetes szm,


amit az a elem rendjnek neveznk, melyre

am = 1,

s az a, a2 , . . . , am elemek mind klnbzok. m osztja q 1-nek.

2.12. definci. Egy GF(q)-t a GF(q) primitv elemnek neveznk, ha rend-


je q 1.

2.6. ttel. Minden GF(q)-ban ltezik primitv elem.

Aritmetika GF(p)-ben

2.7. ttel. A G = {0, 1, . . . , p 1} halmaz a modulo p aritmetikval egy p prm-


szm esetn vges test, azaz a testmuveletek

a + b = a + b mod p,

a b = a b mod p,
ahol + illetve jelli a vals sszeadst illetve szorzst.

2.7. plda. GF(3)


A GF(3) testben a muveletek modulo 3 sszeads s szorzs. A kapcsolatos muve-
leti tblkat lthatjuk albb:

+012 012
0 012 0000
1 120 1012
2 201 2021

2.8. plda. GF(7)

elem (6= 0) hatvnyai rendje


1 1 1
2 2, 4, 1 3
3 3, 2, 6, 4, 5, 1 6 (primitv elem)
4 4, 2, 1 3
5 5, 4, 6, 2, 3, 1 6 (primitv elem)
6 6, 1 2
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.3. V GES TEST 25

A prmitv elem egyrszt igen fontos hatkony kdok konstrukcijakor, ms-


rszt GF(q)-beli szorzsok s osztsok elvgzsekor. Ha a GF(q) egy primitv
eleme, akkor bevezethetjk egy a GF(q) testelem alap logaritmust az

log a = a

egyenlet (egyrtelmu) megoldsval, ahol a 6= 0. Ha a, b a GF(q) nem 0 elemei,


akkor
a b = log a log b = log a+log b ,
teht egy alap logaritmustbla s egy inverzlogaritmus-tbla segtsgvel a szor-
zs (illetve az oszts) visszavezethet o vals sszeadsra (illetve kivonsra).

A kvetkezokben nagyon hasznosnak bizonyulnak a GF(q) feletti polinomok, gy


tbbek kztt egy fontos kdcsald (a ciklikus kdok) lersban, illetve a prm-
hatvny mretu vges testek aritmetikja generlsakor fogjuk hasznlni oket.

Vges test feletti polinomok

GF(q) feletti vektorok reprezentlsra, s vektorok kztti szorzs knyelmes


bevezetsre egy clszeru eszkz a polinomreprezentci:

2.13. definci. a(x) = a0 + a1 x + . . . + am xm GF(q) feletti m-edfok polinom, ha

ai GF(q), i = 0, . . . , m, am 6= 0,

x GF(q).
A polinom m fokszmt deg a(x) jelli. (Az a(x) 0 polinom fokszma definci
szerint legyen .)

2.14. definci. a(x) = b(x), ha ai = bi minden i-re.

Muveletek polinomok kztt:


1. Polinomok sszeadsa: c(x) = a(x) + b(x) tagonknt trtnik GF(q) feletti
muveletekkel: ci = ai + bi . Nyilvnvalan

deg c(x) max{deg a(x), deg b(x)}.

2. Polinomok szorzsa: c(x) = a(x)b(x) minden tagot minden taggal szorzunk,


majd az azonos fok tagokat csoportostjuk (az sszeadsok s szorzsok
GF(q) felettiek):
min{i,deg a(x)}
ci = a j bi j .
j=0

Nyilvn
deg c(x) = deg a(x) + deg b(x)
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.3. V GES TEST 26

2.9. plda. Ha GF(2) felett a(x) = 1+x s b(x) = 1+x+x 3 , akkor a(x)+b(x) = x3
s a(x)b(x) = 1 + x2 + x3 + x4 .

2.8. ttel (Euklidszi oszts polinomokra). Adott a(x) s d(x) 6= 0 esetn egyr-
telmuen ltezik olyan q(x), r(x), hogy
a(x) = q(x)d(x) + r(x),
s deg r(x) < deg d(x).

2.15. definci. r(x)-et az a(x)-nek d(x)-re vonatkoz maradknak nevezzk. Je-


lls: r(x) = a(x) mod d(x).

2.16. definci. d(x) osztja a(x)-et, ha a(x) mod d(x) = 0. Ezt a tovbbiakban
d(x) | a(x) formban fogjuk jellni.

2.17. definci. b GF(q) gyke az a(x) polinomnak, ha a(b) = 0.

2.9. ttel. Ha c az a(x) polinom gyke, akkor az el oll


a(x) = b(x)(x c)
alakban.

2.10. ttel. Egy k-adfok polinomnak legfeljebb k gyke lehet.

Aritmetika GF(pm )-ben

Lnyeges klnbsg van a prm illetve prmhatvny mretu testek aritmetikja


kztt. Prm mretu testben a modulo aritmetika megfelelt. Prmhatvny mret
esetn sajnos a modulo aritmetika nem teljesti a testaximkat, pldul egy 4
elemu halmazban 2 2 mod 4 = 0, teht kt nem 0 elem szorzata 0 lenne, ami
srti a 2. a) aximt. A GF(pm ) feletti aritmetika konstrukcija azrt alapvet o
fontossg, mert manapsg a hibajavt kdokat tmegesen alkalmazzuk szm-
tstechnikai krnyezetben, ahol a termszetes bc a GF(2 8 ), vagyis a bjt.
A GF(pm )-beli elemek legyenek a 0, 1, . . . , p m 1 szmok, melyeknek m hosz-
sz vektorokat feleltetnk meg, ahol a koordintk GF(p)-beliek. Ezt megfogal-
mazhatjuk pldul gy is, hogy a 0, 1, . . . , p m 1 szmokat p-s szmrendszerben
rjuk fel. Ezek utn a GF(pm )-beli aritmetikt m hossz vektorok kztti muve-
letekkel definiljuk. A kt muvelet kzl az sszeads az egyszerubb: kt vektor
sszegn a koordintnknti GF(p)-beli sszeget rtjk, vagyis a koordintnknti
mod p sszeget. A szorzs egy kicsit bonyolultabb. A kt m hossz vektort leg-
feljebb (m 1)-edfok polinom formjban reprezentljuk, s sszeszorozzuk. Az
eredmny fokszma meghaladhatja (m 1)-et, ezrt itt egy specilis polinom sze-
rinti maradkot kpeznk. Ezt a specilis polinomot irreducbilis polinomnak ne-
vezzk, s ez a polinom ugyanolyan szerepet jtszik, mint a prmszm a GF(p)-beli
aritmetikban.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.3. V GES TEST 27

2.18. definci. A GF( p) feletti, nem nulladfok P(x) polinomot irreducbilis po-
linomnak nevezzk, ha nem bonthat fel kt, nla alacsonyabb fok GF( p) feletti
polinom szorzatra, azaz nincs GF( p) feletti a 1 (x), a2 (x) polinom, melyekre

P(x) = a1 (x) a2 (x)

s
0 < deg(ai (x)) < deg(P(x)), i = 1, 2.

Bizonyts nlkl megjegyezzk, minden vges testben tallhat tetsz oleges


fokszm irreducbilis polinom. Pldt mutatunk viszont arra, hogy hogyan lehet
GF(2) feletti irreducbilis polinomokat generlni. A defincibl kvetkezik, hogy
minden elsofok polinom (x s x + 1) irreducbilis. Ha tallunk olyan msodfok
polinomot, mely klnbzik az x2 , az x(x + 1) s az (x + 1)2 mindegyiktol, akkor
talltunk irreducbilis msodfok polinomot. Egy ilyen van: x 2 + x + 1. Ms test-
ben s nagyobb fokszm esetn ennl hatkonyabb konstrukcikat rdemes hasz-
nlni, de binris esetben gy is tallhatk irreducbilis polinomok, amelyeket tb-
lzatban foglalunk ssze:

fokszm irreducbilis polinom


2 x2 + x + 1
3 x3 + x + 1
4 x4 + x + 1
5 x5 + x2 + 1
6 x6 + x + 1
7 x7 + x3 + 1
8 x8 + x4 + x3 + x2 + 1
9 x9 + x4 + 1

2.11. ttel. Legyen p egy prm, m egy termszetes szm, P(x) egy GF( p) feletti
m-edfok irreducbilis polinom s Q = {0, 1, . . . , p m 1}. Egy a Q-nak s b
Q-nak klcsnsen egyrtelmuen feleltessnk meg GF( p) feletti, legfeljebb (m
1)-edfok a(x) s b(x) polinomot. a + b definci szerint az a c Q, melynek
megfelelo c(x) polinomra
c(x) = a(x) + b(x).
a b az a d Q, melynek megfelelo d(x) polinomra

d(x) = {a(x) b(x)} mod P(x).

Ezzel az aritmetikval Q egy GF( pm ).

2.10. plda. Ksztsk el a GF(22 )-beli aritmetikt! Tudjuk, hogy a P(x) = x 2 +


x + 1 egy msodfok irreducbilis polinom. A klcsnsen egyrtelmu megfelelte-
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.4. N EMBINRIS LINERIS KD 28

tseket egy tblzatban foglaljuk ssze:

testelemek m = 2 hossz vektorok polinomok


0 00 0
1 01 1
2 10 x
3 11 x+1

Az sszeadst egyszeruen a 2 hossz vektorok koordintnknti binris sz-


szegvel kapjuk. Nzznk a szorzsra pldt! 2 3-at gy szmoljuk ki, hogy a
2-nek s a 3-nak megfelelo polinomot sszeszorozzuk, s vesszk a P(x) szerinti
maradkot:
x(x + 1) = 1 (mod x2 + x + 1),
amely megfelel az 1 testelemnek. Az sszead s a szorz tbla ennek megfelel oen
a binris vektorokra:
+ 00 01 10 11 00 01 10 11
00 00 01 10 11 00 00 00 00 00
01 01 00 11 10 01 00 01 10 11
10 10 11 00 01 10 00 10 11 01
11 11 10 01 00 11 00 11 01 10

majd testelemekre
+0123 0123
0 0123 00000
1 1032 10123
2 2301 20231
3 3210 30312

2.4. Nembinris lineris kd


Ebben a szakaszban kdok egy fontos csoportjval ismerkednk meg, melyek a 2.2.
szakaszban megismert binris lineris kdok kiterjesztsei nembinris esetre.
A tovbbiakban a kdjainkban szerepl o kdszavakat alkot szimblumokat ve-
gyk GF(q)-bl, a lehetsges szimblumok teht a 0, 1, 2, . . . , q 1 szmoknak fe-
leltethetok meg.

2.19. definci. Egy C kd lineris, ha a C halmaz lineris tr GF(q) fltt, azaz


ha minden c, c0 C-re
c + c0 C
illetve GF(q) esetn
c C.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.4. N EMBINRIS LINERIS KD 29

A 2.2. szakaszhoz hasonl mdon belthat, hogy tetsz oleges C lineris kd-
hoz ltezik egy k linerisan fggetlen sorbl s n oszlopbl ll G mtrix, melyre

c = uG, (2.7)

ahol a k hossz u zenethez a c kdsz tartozik, s a G mtrixot a C kd gener-


tormtrixnak nevezzk.
A binris esethez hasonlan a C lineris kdhoz egy n k sorbl s n oszlopbl
ll H mtrixot paritsmtrixnak neveznk, amennyiben

HcT = 0

akkor s csak akkor teljesl, ha c C.


A binris eset msolataknt kaphatjuk, hogy

2.12. ttel. Minden C lineris kdnak van paritsellen orzo mtrixa.

Pldaknt bemutatjuk a nembinris Hamming-kdot. Ismt 1 hibt javt k-


dot akarunk konstrulni. A binris esetben a hiba javtshoz elg volt ismerni a
hiba helyt, amihez elgsges volt, ha a H paritsmtrix minden oszlopa kln-
bzo. Nembinris esetben nemcsak a hiba helyt, hanem a hiba rtkt is meg kell
llaptani, ezrt a H mtrix oszlopait gy vlasztjuk, hogy azok nem 0-k, mind
klnbzok legyenek, s az elso nem 0 elem minden oszlopban 1 rtku legyen.
Ekkor, ha egy hiba esetn az az i-edik helyen fordul el o s rtke ei , akkor a szind-
rma s = ei ai , ahol aTi a H i-edik oszlopa. Teht a hiba rtke, e i ppen a szindrma
elso nem 0 rtke, mg ai = esi , amibol az i visszakeresheto.
Ha H tartalmazza az sszes lehetsges, a fenti mdon megengedett oszlopvek-
tort, akkor
qnk 1
n= ,
q1
azaz
1 + n(q 1) = qnk ,
msrszt a Hamming-korlt miatt

1 + n(q 1) qnk ,

teht

2.13. ttel. A maximlis hosszsg nembinris Hamming-kd perfekt kd.

A nembinris Hamming-kdok kzl klnsen rdekes az az eset, amikor a


kd szisztematikus s a paritsszegmens hossza 2, azaz n k = 2. Legyen a
GF(q) egy nem 0 eleme, melynek rendje m 2. Vlasszunk n (m + 2)-t s
k = (n 2)-t. Ekkor a paritsmtrix:
 
1 1 1 1 1 0
H= .
1 2 n3 0 1
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.4. N EMBINRIS LINERIS KD 30

Ez egy (n, n 2) paramteru nembinris Hamming-kd paritsmtrixa.


A 2.2. ttel alkalmazsval nyerjk a kd genertormtrixt:

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

2
G = 0 0 1 0 0 1 .
.. .. ..
. . .
0 0 0 0 1 1 n3

Mivel ez a kd 1 hibt tud javtani, ezrt d min 3, de a Singleton-korlt miatt


dmin n k + 1 = 3, ezrt

2.14. ttel. Az (n, n 2) paramteru nembinris Hamming-kd MDS kd.

2.11. plda. rjuk fel a GF(7) feletti, (8, 6) paramteru Hamming-kd genertor-
mtrixt s paritsmtrixt! GF(7)-ben a 3 primitv elem (lsd a 2.8. pldt), teht
 
11111110
H=
13264501

1 0 0 0 0 0 1 1 10000066
0 1 0 0 0 0 1 3 0 1 0 0 0 0 6 4

0 0 1 0 0 0 1 2 0 0 1 0 0 0 6 5

G=
0 0 0 1 0 0 1 6 = 0 0 0 1 0 0 6 1 .

0 0 0 0 1 0 1 4 0 0 0 0 1 0 6 3
0 0 0 0 0 1 1 5 00000162

ReedSolomon-kd

Ebben a szakaszban a lineris kdok egyik leggyakrabban hasznlt osztlyval,


a ReedSolomon-kdokkal, azok klnbz o konstrukciival ismerkednk meg.

2.1. konstrukci. Legyenek 0 , 1 , . . . , n1 a GF(q) klnbzo elemei (n q),


s u = (u0 , u1 , . . . , uk1 ) (ui GF(q)) a k hosszsg zenetszegmens, amelyhez
az
u(x) = u0 + u1 x + . . . + uk1 xk1
zenetpolinomot rendeljk. Ekkor a ReedSolomon-kdnak az u zenethez tar-
toz n hossz c kdszavt a kvetkezo mdon lltjuk elo:

c0 = u(0 )
c1 = u(1 )
c2 = u(2 )
.
..
cn1 = u(n1 ).
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.4. N EMBINRIS LINERIS KD 31

Egyszeruen belthat, hogy a ReedSolomon-kd lineris, s a genertormt-


rixa
1 1 1 1
0 1 2 n1

G = .. .. . .
.
. . .
k1
0 k1
1 k1
2 k1
n1

2.15. ttel. Az (n, k) paramteru ReedSolomon-kd kdtvolsga

dmin = n k + 1,

vagyis a ReedSolomon-kd maximlis tvolsg.

B IZONYTS :

w(c) = |{c nem 0 koordinti}| =


= n |{c 0 koordinti}|
n |{u(x) gykei}|
n (k 1),

teht
wmin n k + 1.
Ugyanakkor a 2.1. ttel s a 2.3. ttel miatt

n k + 1 dmin = wmin ,

kvetkezskpp az lltst bebizonytottuk.


 
Az (n, k) paramteru ReedSolomon-kd teht n k hibt tud jelezni, nk 2
egyszeru hibt javtani s n k trlses hibt javtani. Ez utbbi azt is jelenti, hogy
az u ismeretlenre vonatkoz
uG = c
n darab egyenletbol brmelyik n k egyenlet elhagysval egy egyrtelmuen meg-
oldhat egyenletrendszer marad, teht a G mtrix minden k k-s ngyzetes rsz-
mtrixa invertlhat.

2.2. konstrukci. Legyen a GF(q) egy nem 0 eleme, melynek rendje m, m n


s a 2.1. konstrukciban legyen 0 = 1, 1 = , . . . , n1 = n1 . Ekkor a gener-
tormtrix:
11 1 1
1 2 n1

1 2 4 2(n1)
G=
.. . . ..
. ..
1 k1 2(k1) (k1)(n1)
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.5. C IKLIKUS KDOK 32

2.5. Ciklikus kdok


2.20. definci. Egy
c = (c0 , c1 , . . . , cn1 )
vektor ciklikus eltoltja az

Sc = (cn1 , c0 , . . . , cn2 ).

S-et a ciklikus eltols opertornak nevezzk.

2.21. definci. A C kdot ciklikusnak nevezzk, ha brmely kdsz ciklikus el-


toltja is kdsz.

2.12. plda. Legyen C a


000
101
110
011
111
vektorok halmaza. Egyszeruen belthat, hogy C ciklikus. Megjegyezzk, hogy
a ciklikussgbl nem kvetkezik a linearits, pldul a 2. s az 5. kdsz sszege
010, amely nem eleme a kdnak.

A ciklikus eltols opertort knyelmesebben tudjuk kezelni, ha a kdszavakat


mint vektorokat a mr megszokott polinomos formban reprezentljuk.

2.22. definci. Rendeljnk polinomot az egyes kdszavakhoz a kvetkez o m-


don:
c = (c0 , c1 , . . . , cn1 ) 7 c(x) = c0 + c1 x + + cn1 xn1 ,
ekkor a c kdsznak megfeleltetett c(x) polinomot kdszpolinomnak vagy rvi-
den kdpolinomnak nevezzk. A kdszpolinomok halmazt C(x)-szel jelljk.

2.3. lemma. Legyen c0 (x) a c kdsz Sc eltoltjhoz rendelt kdszpolinom, ekkor

c0 (x) = [xc(x)] mod (xn 1).

2.16. ttel. Minden (n, k) paramteru, ciklikus, lineris C kdban a nem azonosan
nulla kdszpolinomok kztt egyrtelmuen ltezik egy minimlis fokszm g(x)
polinom, amelynek legmagasabb fok tagja egytthatja 1. g(x) fokszma n k,
s egy c C akkor s csak akkor, ha g(x) | c(x), azaz ltezik egy u(x) polinom gy,
hogy c(x) = g(x)u(x).

2.23. definci. g(x)-et a kd genertorpolinomjnak nevezzk.


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.5. C IKLIKUS KDOK 33

2.17. ttel. Minden ciklikus, lineris kd g(x) genertorpolinomjra

g(x) | xn 1.

Msrszrol, ha egy g(x) fopolinomra g(x) | xn 1, akkor ltezik egy lineris cikli-
kus kd, melynek g(x) a genertorpolinomja.

A paritsmtrixnak is van polinomos megfelel oje:

2.24. definci. Egy g(x) genertorpolinom lineris, ciklikus kd esetn a

xn 1
h(x) =
g(x)

polinomot paritsellenorzo polinomnak nevezzk.

2.18. ttel. Egy lineris, ciklikus kdra c(x) akkor s csak akkor kdszpolinom,
ha
c(x)h(x) = 0 mod (xn 1)
s
deg (c(x)) n 1.

Ciklikus kdok szisztematikus generlsa

A ciklikus kdok elonys tulajdonsgai egyrszt a generlsi lehet osgek sok-


flesgben, msrszt egyszeru dekdolsi eljrsokban jelentkeznek. Egy lineris
ciklikus kdot lehet pldul a genertorpolinom s az zenetpolinom szorzsval
generlni. Ez a mdszer megfogalmazhat egy olyan G genertormtrix segtsg-
vel is, amelyhez legegyszerubben gy juthatunk el, ha G sorai a g(x)-nek megfelel o
vektor eltoltjai:

g0 g1 g2 gnk1 1 0 0
0 g0 g1 gnk2 gnk1 1 0

.. .. .. .
.. .
.. .
.. .
.. .. ,
G= . . . .

0 0 0 g0 g1 g2 1 0
0 0 0 0 g0 g1 gnk1 1

kihasznlva, hogy g(x) fopolinom, gy gnk = 1.


Egy msik generlsi mdszer kapcsn azt is megmutatjuk, hogy

2.19. ttel. Minden lineris ciklikus kd generlhat szisztematikusan.


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.5. C IKLIKUS KDOK 34

B IZONYTS : Vegyk szre, hogy g0 6= 0, mert ha 0 lenne, akkor a g-t balra


eltolva g-nl 1-gyel kisebb fokszm kdszpolinomot kapnnk, ami lehetetlen.
g0 6= 0 miatt viszont a Gauss-elimincit balrl jobbra vgrehajtva szisztematikus
genertormtrixot kapunk.

A szisztematikus generls egy praktikus mdszere a kvetkez o:


Legyen u(x) egy legfeljebb (k 1)-edfok zenetpolinom s
c(x) = u(x)xnk [u(x)xnk ] mod g(x),
akkor c(x) kdszpolinom, mivel c(x) = 0 mod g(x). Ezen generls szisztema-
tikus: a c(x)-et definil egyenlosg jobb oldalnak elso tagja adja az zenetszeg-
menst, mg a msodik tagja a paritsszegmenst.

2.13. plda. Tekintsk a GF(2) feletti g(x) = 1 + x + x 3 polinomot! Mivel


x7 1 = (1 + x)(1 + x + x3 )(1 + x2 + x3 ),
ezrt g(x) osztja (x7 1)-et, teht g(x) egy (7, 4) paramteru binris, lineris, cik-
likus kd genertorpolinomja. Egy genertormtrixhoz jutunk a g(x) eltoltjaival:

0001011
0 0 1 0 1 1 0
G=
0 1 0 1 1 0 0 .
1011000
A msodik mdszer szerinti szisztematikus genertormtrixhoz gy jutunk el, ha
kiszmtjuk az [x3+i ] mod (1 + x + x3 ) maradkokat i = 0, 1, 2, 3-ra, melyek
x3 = 1 + x mod (1 + x + x3 )
x4 = x(1 + x + x3 ) x(1 + x) =
= x(1 + x) =
= x + x2 mod (1 + x + x3 )
x5 = x2 (1 + x + x3 ) x2 (1 + x) =
= x2 (1 + x) =
= 1 + x + x2 mod (1 + x + x3 )
x6 = x3 (1 + x + x3 ) x3 (1 + x) =
= x3 + x4 =
= 1 + x + x + x2 =
= 1 + x2 mod (1 + x + x3 )
Ezek alapjn
1000101
0 1 0 0 1 1 1
G=
0 0 1 0 1 1 0 ,
0001011
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.6. D EKDOLSI ALGORITMUS 35

amely a mr jl ismert (7, 4) paramteru Hamming-kd szisztematikus genertor-


mtrixa.

Ciklikus ReedSolomon-kd

A ReedSolomon-kdok legfontosabb gyakorlati el olltsi mdja az albbi


ttelen alapszik:

2.20. ttel. A ReedSolomon-kdok esetn legyen az n kdszhossz egyenlo az


ott szereplo elem m rendjvel. Ekkor a kd ciklikus, s genertorpolinomja
nk
g(x) = (x i ),
i=1

tovbb paritsellenorzo polinomja


n
h(x) = (x i ),
i=nk+1

teht a nem rvidtett ReedSolomon-kd ciklikus.

2.21. ttel. A 2.20. ttel ReedSolomon-kdjnak paritsellenorzo mtrixa



1 2 n1
1 2 4 2(n1)

H = . . .
.. . ...
1 nk 2(nk) (n1)(nk)

2.6. Dekdolsi algoritmus


A 2.2. szakaszban lineris kdok tblzatos dekdolst mutattuk be. A tblzat
sorainak szma qnk , azaz a mdszer gyakorlati alkalmazhatsgt a paritsszeg-
mens hossza s a kdbc mrete hatrozza meg. Ha a tblzat mrete megha-
ladja a trkapacitsunkat, nem tudjuk el ore trolni az egyes szindrma rtkek-
hez tartoz javthat hibamintkat, ehelyett a hibamintt a vett sz szindrmjnak
meghatrozsa utn mindig jra kiszmtjuk. Az ltalnos hibajavt algoritmusok
bemutatsa meghaladja ezen jegyzet kereteit, ugyanakkor mdunk van arra, hogy
egyszerubb esetekben bemutassuk az ltalnos algoritmusok alapvet o lpseit. Az
albbiakban ReedSolomon-kd esetn egy hiba javtsnak, illetve a t 1 trls
javtsnak algoritmust mutatjuk be.

Egy hibt javt ciklikus ReedSolomon-kd genertorpolinomja

g(x) = (x )(x 2 ),
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.6. D EKDOLSI ALGORITMUS 36

kvetkezskpp tetszoleges c(x) kdsz esetn c() = c( 2 ) = 0. A vett sz v =


c + e felbontsa polinomos alakban v(x) = c(x) + e(x). Az egy hiba javts esett
tekintve e(x) = exi , e GF(q), i {0, 1, . . . , n 1}, ahol e a hiba rtke, s i a hiba
helye. A 2.21. ttelbeli paritsellen orzo-mtrix alapjn lthatjuk, hogy s = (s 1 , s2 ),
si GF(q), i = 1, 2 szindrma vektor komponenseit ekvivalensen kiszmthatjuk
a kvetkezo mdon: s1 = v(), s2 = v(2 ). Innen
s1 = v() = c() + e() = 0 + e() = e() = e i
s2 = v(2 ) = c(2 ) + e(2 ) = 0 + e(2 ) = e(2 ) = e 2i ,
ahonnan
e i = s1
e 2i = s2 ,
egyenletrendszer addik e, i ismeretlenekben. gy s 2 /s1 = i , amibol az i hibahe-
lyet kapjuk, majd ezutn meghatrozzuk az e = s 1 i hibartket.

Trlses hiba esetn ismerjk a hibahelyeket, de tovbbra sem ismerjk a hiba


rtkeit. A dekdolsi algoritmus alapja ismt a szindrmkra vonatkoz lineris
egyenletrendszer
s1 = v() = e1 i1 + + et it
s2 = v(2 ) = e1 2i1 + + et 2it
..
.
st = v(t ) = e1 ti1 + + et tit
ahol e(x) = e1 xi1 + + et xit , tovbb t n k.

2.14. plda. Egy GF(11) feletti g(x) = (x 2)(x 4) genertorpolinom Reed


Solomon-kd dekderhez rkezett vett szbl 2 karakter trl odtt:
0. 1. 2. 3. 4. 5. 6. 7. 8. 9.
(8 2 0 0 2 0 0 ? 0 ?)
Hatrozzuk meg a trlodtt karaktereket!

u, v GF(11) ismeretleneket bevezetve az ismeretlen rtkekre, a kdsz polinom


alakban a kvetkezo:
c(x) = ux9 + vx7 + 2x4 + 2x + 8.
A c(2) = 0, c(4) = 0 egyenletek alapjn:
u 29 + v 27 + 2 24 + 2 2 + 8 = 0,
u 49 + v 47 + 2 44 + 2 4 + 8 = 0,
GF(11) feletti egyenletrendszer addik, amelynek megoldsa u = 0, v = 0.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.7. KDKOMBINCIK 37

2.7. Kdkombincik
A standard kdkonstrukcik sorn kapott kdok paramterei nem mindig illesz-
kednek kzvetlenl az adott alkalmazsban megkvetelt rtkekhez. Hatkony,
ugyanakkor egyszeru mdszerek lteznek arra, hogy vltoztassuk a kdszhossz,
zenethossz, kdtvolsg paramterek rtkt az eredeti konstrukcihoz kpest.
Az albbiakban ezen mdszereket tekintjk t rviden.

Kdtf uzs s a csoms hibk javtsa

Adott C(n, k) kd m-szeres tfuzsvel egy C m = C(mn, mk) kdot kapunk,


olyan mdon, hogy a C kd c(i) , i = 1, . . . , m m darab kdszavt egy m n di-
menzis mtrixba rendezzk soronknt, s a C m tfuzses kd c kdszavt ezen
mtrix oszlapainak sorrendben val kiolvassval kpezzk. Azaz a kdszavakat
(komponens szavakat) fsu mdon egymsba toljuk:
 
(1) (2) (m) (1) (2) (m) (1) (2) (m)
c = c0 , c0 , . . . , c0 , c1 , c1 , . . . , c1 , . . . , cn1 , cn1 , . . . , cn1 (2.8)

Lineris kdot tfuzve nyilvn lineris kdot kapunk. Az is knnyen lthat,


hogy ha d a C kd kdtvolsga, akkor a C m tfuzses kd tvolsga is d marad.
Lineris C kdot tekintve legyen c(i) , i = 1, . . . , m sorozat egyik kdszavnak slya
d, mg a tbbi kdsz legyen a zrus kdsz. ltalnos esetben tekintsk a C
kdbeli kdszavak c(1,i) , i = 1, . . . , m, c(2,i) , i = 1, . . . , m kt sorozatt, ahol c(1,1)
s c(2,1) tvolsga d, mg c(1,i) = c(2,i) , i = 2, . . . , m. (A ksobb bemutatott CD
pldjban m = 2, n = 28, k = 24.)
Ciklikus kdot tfuzve ciklikus kdot kapunk. Legyen S az egyszeri ciklikus
jobbra lptets opertora. Knnyen ellen orizheto, hogy a (2.8) szerinti c kdsz Sc
ciklikus eltoltja az Sc(m) , c(1) , c(2) , . . . , c(m1) sorozat tfuzsnek felel meg, s mivel
Sc(m) C, ezrt Sc C m is fennll.

Mint lttuk, a kdtvolsg nem vltozik tfuzs sorn, ami azt jelenti, hogy
a Cm tfuzses kd szoksos kpessgei (vletlen hibk javtsa, trlsjavts, de-
tekcis kpessg) romlanak az tfuzssel, hiszen ezen kpessgek m-szeres kd-
szhosszon rvnyesek. Ha valaki itt arra gondolna, hogy pldul az egyes kompo-
nensszavak javtkpessge nem vltozott, s gy a teljes javt kpessg a kompo-
nensek m-szeresnek tunik, az ott hibzik, hogy t javtkpessg azt jelenti, hogy
tetszoleges t pozciban eshet hiba, nem pedig azt, hogy az a komponens sza-
vaknak megfeleloen kerl sztosztsra. Ezen a ponton felmerl a termszetes
krds: egyltaln mire j akkor az tfuzs? A vlasz: hibacsomk javtsra.
A hibavektor egy l hosszsg szegmense hibacsom l hosszal, ha a szegmens
elso s utols karaktere nem zrus. Egy kd l hosszsg hibacsomt javt, ha
minden legfeljebb l hosszsg hibacsom javthat.

2.22. ttel. A C m tfuzses kd m t hosszsg hibacsomt javt, ahol t a C kd


javtkpessge.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.7. KDKOMBINCIK 38

1. kdsz
2. kdsz

..
.

m. kdsz

2.2. bra. Kdtfuzs t = 2 esetn

B IZONYTS : A (2.8) szerinti c kdszban egy legfeljebb m t hosszsg hi-


bacsomnak megfelelo hibzs a komponens szavakban legfeljebb t szm hibt
okozhat, amit azok javtani kpesek. (A t = 2 esetet szemllteti a 2.2. bra.)

Egy tetszoleges lineris C(n, k) kd n, k paramtere alapjn a kd l hibacso-


mjavt kpessgre az albbi egyszeru korlt adhat:

 Egy C(n, k) lineris kd l hibacsomjavt kpessgre fennll, hogy


2.23. ttel.
l nk 2 .

A ttelbeli korlt Reiger-korlt nven ismert. Azokat a hibacsom javt kdo-


kat, amelyre l = b nk
2 c fennll, Reiger-optimlisnak hvjuk.
M EGJEGYZS : Egy MDS tulajdonsg lineris kd Reiger-optimlis.

Szorzatkd

Egy C1 (n1 , k1 , d1 ) s egy C2 (n2 , k2 , d2 ) lineris kd (komponenskdok) felhasz-


nlsval C1 C2 (n1 n2 , k1 k2 , d1 d2 ) szorzatkdot kszthetnk, amelynek kd-
szavai n1 n2 dimenzis mtrixok, ahol a mtrix sorai C1 kdbeli, oszlopai C2 kd-
beli kdszavak. Szisztematikus komponenskdok esetn a szorzatkdbeli mtrix-
kdsz bal felso k1 k2 dimenzis minorja tartalmazza az zenetet. A mtrix-
kdszavakat soronknt kiolvasva kapjuk a szorzatkd soros kdszavt. A
kapott C1 C2 (n1 n2 , k1 k2 ) kd lineris.
A mtrix-kdsz kpzse a kvetkezokpp trtnik. Az elso k1 oszlopot a
C2 (n2 , k2 ) kd alapjn szisztematikus kdolssal kapjuk, kiegsztve a k 2 hossz
zenetszegmenst n2 k2 hossz paritsszegmenssel (2.3. bra). Az els o k2 sort a
C1 (n1 , k1 ) kd alapjn szisztematikus kdolssal kapjuk, kiegsztve a k 1 hossz
zenetszegmenst n1 k1 hossz paritsszegmenssel. A mtrix jobb als sarkba
kerl a paritsok paritsa, amit mint azt hamarosan beltjuk kpezhetjk
akr az elso k1 oszlop, akr az elso k2 sor paritsai alapjn szisztematikus kdo-
lssal a C2 illetve C1 kdbeli szavakkal. A fenti mdon kpezett szorzatkdot
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.7. KDKOMBINCIK 39

(0) (0) (0) (0) (0)


c0 c1 ck1 1 c k1 cn1 1
(1) (1) (1) (1) (1)
c0 c1 ck1 1 ck1 cn1 1
. ..
.
. .
(k2 1) (k2 1) (k 1) (k 1) (k 1)
c c1 ck121 ck12 cn121
0

.. ..
. .
(n2 1) (n2 1) (n2 1) (n2 1) (n2 1)
c0 c1 ck1 1 ck1 cn1 1

2.3. bra. A szorzat-kdsz kpzse


i1 - m m m m







m m m m

i2 -




-
m m m m

i3
6 6 6 6

j1 j2 j3 j4

2.4. bra. A paritsok paritsainak kpzse

amelynek sorai illetve oszlopai az alapkdok kdszavai kanonikus elrendezsu-


nek nevezzk.
A paritsok paritsai kpzsvel kapcsolatos albbi gondolatmenetnket il-
lusztrlja a 2.4. bra.
Kpezzk azt a C1 C2 kdbeli kdszt, amelynek zenetmtrixa csak az
(i1 , j1 ) koordintj helyen tartalmaz nulltl klnbz o elemet. Ehhez az ze-
nethez kpezzk a C2 illetve C1 kdols szerint a C1 C2 kdbeli kdsz i1 -edik
sort s j1 -edik oszlopt. A ktdimenzis paritsszegmens jobb fels o illetve bal
als rszmtrixa az i1 -edik sor illetve a j1 -edik oszlop kivtelvel csak 0 elemeket
tartalmaz. Innen mr egyszeruen ltszik, hogy a jobb als rszmtrixot megkaphat-
juk, akr az (i2 , j1 ) illetve (i3 , j1 ) elemekbol C2 kd szerinti, akr (i1 , j2 ), (i1 , j3 )
illetve (i1 , j4 ) elemekbol C1 kd szerinti kdolssal. S miutn a C1 C2 kd line-
ris, ezrt tetszoleges zenetmtrix szorzatkd kdszt a 2.4. brn is illusztrlt
elem-kdszavakbl koordintnknt vett sszeadssal kpezhetjk.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.7. KDKOMBINCIK 40

C2 C1 C1 C2

-
adat klso - belso - csatorna - belso - klso -adat
be kdol kdol dekdol dekdol ki
kdol dekdol

2.5. bra. Kaszkd kdol

Annak igazolsa, hogy a szorzatkd kdtvolsga a komponenskdok tvols-


gainak szorzata, a minimlis nemzrus sly, azaz d 1 d2 sly kdsz elollts-
val trtnhet. Vlasszunk ehhez egy-egy minimlis sly kdszt a C 1 illetve C2
kdbl, amelyeket jelljn c0 illetve c00 , ekkor egy minimlis sly mtrix-kdsz
az i-edik sorban a c00 kdszt tartalmazza, ha c0 i-edik komponense 1, egybknt
a csupa zrus kdsz kerl a sorba. Az, hogy a kapott kdsz minimlis sly,
onnan lthat, hogy ha nem minimlis sly c 00 kdszt helyeznnk el valamelyik
sorba, akkor tbb nemzrus oszlopot kellene elhelyezni a mtrixban a C 1 kdszavai
kzl s viszont.

2.15. plda. Az egyik legismertebb s egyben legegyszerubb konstrukcij hiba-


javt kd a ktdimenzis paritskd. Ez egy C C szorzatkd, ahol a C kom-
ponenskd (n, n 1, 2) paramteru egy paritsbittel rendelkez o, egy hibt jelzo
binris kd. A kapott szorzatkd kdtvolsga 4, azaz egyszeru paritsbites konst-
rukcival 1 hiba javtsra vagy 3 hiba jelzsre alkalmas kdot kaptunk.

Kaszkd kdok

Vegynk egy C1 (n1 , k1 , d1 ) GF(q) feletti s egy C2 (N2 , K2 , D2 ) GF(qk1 )


feletti lineris kdot, amelybol az albbi mdon generlhatjuk a szisztematikus,
C(n1 N2 , k1 K2 , d) paramteru GF(q) feletti kaszkd kd kdszavait. A k 1 K2 hossz
zenetet osszuk fel K2 , egyenknt k1 hossz szegmensre. A C2 kd egy k1 hossz
zenetszegmenst egy zenetkarakternek vesz, s K2 ilyen karakter alkot szmra
egy zenetszegmenst, amelybol N2 karakter hosszsg kdszt kpez N2 K2 pa-
ritskarakternek az zenethez val illesztsvel. A C2 -beli kdsz elkszlte utn
a kdsz mindegyik koordintjt a C1 kd kdolja jra k1 hosszsg zenetknt
rtelmezi, s n1 k1 paritskarakterrel kiegszti. gy kapjuk az n 1 N2 hossz kd-
szt, ami a kaszkd kd adott k1 K2 hossz zenethez tartoz kdszava. A kaszkd
kd kdtvolsga d d1 D2 .
A C1 kdot belso, a C2 kdot klso kdnak is nevezik. A kd az elnevezst
onnan kapta, hogy a klso kd kdoljnak s a belso kd kdoljnak a kaszkdba
ktse kpezi a generlt kd kdoljt (2.5. bra).
A dekdols sorn eloszr a C1 kdszavakat dekdoljuk, majd rtelemszeruen,
a C1 kdszavai paritsszegmensnek trlse utn a C2 kdsz dekdolst vgez-
zk el.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.7. KDKOMBINCIK 41

A kaszkd kdok igen alkalmasak az egyttes csoms s vletlen hibk javt-


sra, ahol a csoms hibkat a C2 kd, a vletlen hibkat a C1 kd javtja elsosorban.
A C2 kd egy karakternek tetszoleges meghibsodsa legfeljebb k1 mretu q-ris
hibaszmnak felel meg. Ugyanakkor ritka egyedi hibk javtsa C 1 -beli kdszavak-
ban knnyen elvgezheto, mg ezen egyedi hibk C2 -beli karakterszintu javtsa
pazarls lenne.

Rvidtett kd

Egy C(n, k) kd rvidtsvel egy C(n i, k i), 1 i < k kdot kapunk olyan
mdon, hogy a C(n, k) szisztematikus kd kdszavai kzl csak azokat hagyjuk
meg, amelyek az elso i karaktern zrust tartalmaz zenetekhez rendeltek. Ek-
kor a C(n, k) kd i karakterrel trtn o rvidtsrol beszlnk. Mivel a rvidtett
kd kdszavai a C(n, k) kd kdszavai is egyben, ezrt a rvidtett kd minimlis
tvolsga legalbb akkora, mint az eredeti kd volt. Praktikusan termszetesen
a kdol s a dekdol gy van kikpezve, hogy az els o i zrus karaktert nem is
tovbbtjuk, s a dekder zrusnak tekinti azokat. A kdrvidts els odleges clja a
kdhossznak az alkalmazsbeli paramterekhez val igaztsa.

2.16. plda. Konstruljunk kdszrvidts mdszervel 5 bit hosszon 1 bit hiba


javtsra binris kdot. Ehhez rvidtsk a g(x) = x 3 + x + 1 genertorpolinom
Hamming-kdot. A rvidtett kd az alapkd altere, amelynek szavai az eredeti
kd rvidtsnek megfelelo szm 0 bittel kezdodo kdszavai. Az alapkd sziszte-
matikus genertormtrixa
1000101
0100111
G= 0010110

0001011
amelynek alapjn a keresett alteret a
 
10110
G=
01011

mtrix generlja, ahonnan a keresett kd szavai:

(00000), (10110), (01011), (11101).

Paritsbittel bovts

A paritskarakterrel trtno kiegszts utn a C(n, k) binris lineris alapkd-


b + 1, k) lineris kdot kapunk, amelynek a minimlis tvolsga az alap-
bl egy C(n
kd d minimlis tvolsgval azonos, ha d pros, illetve d + 1 lesz, ha d pratlan.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.8. H IBAJAVTS S HIBAJELZS HIBAVALSZN USGE 42

A HCb paritsmtrix HC ismeretben az albbi alak:



1 1 1 1
0

.
.
HCb = HC . (2.9)

0
0

2.17. plda. Adjuk meg a C(7, 4) Hamming-kd C(8,b 4) paritsbittel bovtett kd-
3
jnak paritsmtrixt. Az x + x + 1 genertorpolinom Hamming-kd b ovtsvel
a (2.9) kplet alapjn
11111111
0 0 1 0 1 1 1 0
HCb =
0 1 0 1 1 1 0 0 .
10010110
b 4) kd nyilvn nem ciklikus, pldul a (10001101) a Cb kdszava,
A kapott C(8,
de (11000110) mr nem az. A bovtett kd minimlis tvolsga 4, ezrt 3 vletlen
hiba detektlsra alkalmas.

2.8. Hibajavts s hibajelzs hibavalszn usge


A binris kommunikcis csatorna egyik modellje az emlkezetnlkli binris szim-
metrikus csatorna p hibzsi valsznusggel (rviden emlkezetnlkli BSC(p)).
Ekkor az egyes bitek tvitele sorn fggetlenl addnak a meghibsodsok, to-
vbb annak az esemnynek valsznusge, hogy 0 (1) bit tvitele esetn hibsan
1 (0) bit jelenik meg a csatorna kimenetn, p valsznusgu.
A kdszavak krli dntsi tartomnyok t sugar gmbk, ezrt a kvetkez o
felso becslst kapjuk a hibajavt dekdols kdsz-hibavalsznusgre:
t  
n i
Pe 1 p (1 p)ni . (2.10)
i=0 i

Ha a kd perfekt, akkor a t sugar gmbk hzagmentesen kitltik az n bit hossz


szavak tert, ezrt egy t-nl nagyobb Hamming-sly hiba mindig tves dekdo-
lsra vezet. gy (2.10) jobb oldali formulja a hibavalsznusg pontos rtkt adja.
Pldul Hamming-kd esetn a

Pe,corr = 1 ((1 p)n + np(1 p)n1 ) (2.11)

formult kapjuk. Tblzatos szindrma dekdols esetn tetsz oleges kdra ugyan-
csak pontosan meg tudjuk adni a hibajavts hibavalsznusgt a tekintett eml-
kezetnlkli BSC(p) csatorna esetn. A javthat hibavektorok halmazt jellje
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.8. H IBAJAVTS S HIBAJELZS HIBAVALSZN USGE 43

B, amely perfekt kd esetn a zr vektor krli t sugar gmb, egyb esetekben


ennl bovebb (lsd az albbi pldt). A hibavalsznusg formulja az albbi:

Pe,det = pw(c) (1 p)nw(c) . (2.12)


cB\{0}

Tekintsk most a hibajelzs esett. Ezesetben pontosan akkor keletkezik hiba, ha


a vett sz egy nemzrus kdszval egyezik meg, amely klnbzik a tovbbtott
kdsztl. Lineris kd esetn ez az esemny ekvivalens azzal az esemnnyel,
hogy a hibavektor valamely nemzrus kdszval egyenl o. gy kapjuk egy C lineris
hibajelzo blokk kd s emlkezetnlkli BSC(p) csatorna esetn az albbi ltalnos
formult a hibajelzs hibavalsznusgre:

Pe,det = pw(c) (1 p)nw(c) . (2.13)


cC\{0}

2.18. plda. Tekintsk a kvetkezo genertormtrixszal definilt kdot:


 
11001
G= .
01110

A kdot emlkezetnlkli BSC(p) csatornn hibajelzsre illetve hibajavtsra hasz-


nljuk. Adjuk meg mindkt alkalmazs esetn a hibzs valsznusgt!

1. Hibajelzs esete:
Hibajelzs hibja akkor kvetkezik be, ha a hibavektor pontosan egy nem-
zrus kdsznak felel meg. A (2.13) kpletet alkalmazva, tekintettel hogy
a kdnak 3 nemzrus kdszava lzl kett o kdsz 3 sly, egy 4 sly, a
kvetkezo eredmny addik: Pe,det = 2p3 (1 p)2 + p4 (1 p).

2. Hibajavts esete:
A standard elrendezsi tblzat az albbi:

00000 11001 01110 10111


00001 11000 01111 10110
00010 11011 01100 10101
00100 11101 01010 10011
01000 10001 00110 11111
10000 01001 11110 00111
00011 11010 01101 10100
10001 01000 11111 00110
Ezen tblzatban minden lehetsges vett sz fel van sorolva, s oszloponknt
lthat az egyes kdszavak dntsi tartomnya. Az utols kt sorban vannak
olyan szavak, amelyek azonos tvolsgban vannak tbb kdsztl is, s ezek
dntsi tartomnyba helyezse nknyes (szerencsre az adott statisztikai
csatornamodell erre rzketlen). Ennek megfelel oen dekdolsi hiba akkor
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.9. A LKALMAZSOK 44

keletkezik, ha egy kdsz gy hibsodik meg, hogy a vett sz mr kvl esik


a kdsz krli dntsi tartomnyon. Az egyes kdszavak tkldst azonos
valsznusgunek vve

Pe = 1 ((1 p)5 + 5p(1 p)4 + 2p2 (1 p)3 ).

2.9. Alkalmazsok
Teletext kd. A (7, 4)-es Hamming-kdot egy pratlan paritsra kiegszt o pa-
ritsbittel kapunk egy (8, 4) paramteru, tovbbra is egy hibt javt kdot, amelyet
a Teletextben hasznlnak.

CRC. A ciklikus kdok gyakorlata a leghosszabb mlttal a hibajelzs terletn


rendelkezik, amikor a kd binris, a kdokat a szabvnyok genertorpolinomjuk
segtsgvel adjk meg s generlsuk a 2.19. ttel bizonytsban lert mdon,
a genertorpolinom szerinti maradkos osztssal, szisztematikusan trtnik. Eze-
ket a kdokat CRC kdoknak hvjk (Cyclic Redundancy Check). A hibajelzst
legtbbszr zajos, visszacsatolsos csatornknl hasznljk, amikor a vev o hiba
detektlsa esetn rtesti az adt, amely ezutn az adst ugyanazzal a kddal
vagy egy jobbal megismtli. Ezt az eljrst ARQ-nak nevezzk (Automatic Repeat
reQuest).
A CCITT 16 paritsbitet tartalmaz szabvnyban a CRC genertorpolinomja

g1 (x) = x16 + x12 + x5 + 1.

Ezt a genertorpolinomot alkalmazzk pl. az SNC 2653 (Polinomial Generator


Checker), Intel 82586 (Local Communication Controller), Intel 8274 (Multi-Pro-
tocol Serial Controller), Signetics 2652 (Multi-Protocol Communications Circuit)
integrlt ramkrkben. A kt utbbiban mg vlaszthatjuk a

g2 (x) = x16 + x15 + x2 + 1

polinomot is. Az Intel 82586-os Ethernet chip tartalmaz egy 32 bites genertorpo-
linomot is:

g3 (x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1.

A 2.17. ttel rtelmben ezek a polinomok akkor genertorpolinomjai cikli-


kus kdoknak, ha osztjk az xn 1 polinomot, teht csak bizonyos kdszhosz-
szakra ciklikus kdok. Ugyanakkor erre nem figyelmeztetik a felhasznlt. Ez
azrt nem okoz problmt, mert tetsz oleges zenethossz esetn azrt j kdot ka-
punk, ugyanis az vagy eleve ciklikus, vagy egy ciklikus kd rvidtse. Legyen C
egy (n, k) paramteru szisztematikus lineris kd s k 0 < k. Egy

u0 = (u00 , u01 , . . . , u0k0 )


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.9. A LKALMAZSOK 45

zenethez rendeljk a k hossz


u = (0, 0, . . . , 0, u00 , u01 , . . . , u0k0 )

zenetet, ahhoz a

c = (0, 0, . . . , 0, u00 , u01 , . . . , u0k0 , ck+1 , ck+2 , . . . , cn )


kdszt s ahhoz a rvidtett kdszt:

c0 = (u00 , u01 , . . . , u0k0 , ck+1 , ck+2 , . . . , cn ).

Az ilyen c0 kdszavak C 0 halmazt nevezzk a C kd rvidtett kdjnak. Nyilvn


n n0 = k k 0

s C0 kdtvolsga legalbb akkora, mint a C kd.


Ez utbbi miatt elg sszefoglalni a CRC kdok alapvet o tulajdonsgait akkor,
amikor az ciklikus kd, azaz az n kdszhosszra a genertorpolinom osztja x n 1-
et.
Ezek utn legyen n az a legkisebb termszetes szm, melyre g 1 (x) | xn 1, s
jellje C az (n, n 16) paramteru, ciklikus, lineris kdot, melynek a genertor-
polinomja g1 (x), ekkor
1. tulajdonsg: n = 215 1 = 32767.
2. tulajdonsg: C jelez minden legfeljebb 3 sly hibt.
3. tulajdonsg: C jelez minden pratlan sly hibt.
4. tulajdonsg: C jelez minden olyan hibt, ahol a hibahelyek maximumnak s
minimumnak a tvolsga kisebb, mint 16. (Ez utbbit gy szoks mondani,
hogy a kd jelez minden legfeljebb 16 hossz hibacsomt.)

Kzvetlen muholdas musorszrs. A kzvetlen muholdas musorszrs (Direct


Broadcasting Satellite, DBS) digitalizlt hangjt is hibajavt kddal vdik. gy a
D2-MAC/PACKET szabvnya szerint az egyik vltozatban a 14 bites hangminta
felso 11 bitjt egy (16, 11) paramteru kddal kdoljk, ami a (15, 11) param-
teru Hamming-kd kiegsztse egy pratlan paritsbittel. A msik vltozatban a
10 bites hangminta felso 6 bitjt kdoljk egy (11, 6)-os kddal. Megjegyezzk
mg, hogy a csomagolt, kdolt beszdmintkat egy olyan csomagfejjel ltjk el,
melyet 2 hibt javt (71, 57) ill. (94, 80) paramteru gynevezett BCH-kddal
vdenek, mg a legfontosabb adatokat, az gynevezett szolgltatsazonostst egy
hrom hibt javt (23, 12) paramteru Golay-kddal kdoljk. Ennek a kdnak
a kdtvolsga 7, ezrt 3 hibt tud javtani. Knnyen ellen orizheto, hogy a kd
paramtereire a Hamming-korltban az egyenl osg teljesl:
3  
23
i = 211 ,
i=0
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.9. A LKALMAZSOK 46

teht ez a kd perfekt. Eredetileg Golay a kdot szisztematikus genertormtrix-


val adta meg:

10000000000011011100010
0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1

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

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

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


0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1
G=
0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1

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

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

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

0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1
00000000000111111111111

Kiderlt, hogy ez a kd ciklikus is, s a genertorpolinomja

g(x) = x11 + x10 + x6 + x5 + x4 + x2 + 1.

Ugyanilyen paramteru kdot kapunk a

g0 (x) = x11 + x9 + x7 + x6 + x5 + x + 1

genertorpolinommal. Ezek valban 23 hossz ciklikus kdok genertorpolinom-


jai, ugyanis
(x 1)g(x)g0 (x) = x23 1.
Mivel a g(x) egytthati kzl 7 darab 1, ezrt a minimlis sly nem lehet 7-nl
nagyobb. Megmutathat, hogy pontosan 7:

2.24. ttel. A (23, 12) paramteru Golay-kd egy 3 hibt javt perfekt, lineris,
ciklikus kd.

Compact Disc hibavdelme. A digitlis hangrgztsben (CD s DAT) alkalma-


zott hibavdelem ReedSolomon-kdra pl. A kdolsi eljrs lnyegt kzel-
toleg a kvetkezo mdon lehet sszefoglalni: a 44.1 kHz-cel mintavtelezett s 16
bitre kvantlt mintkat kt bjtban brzoljuk, s egy mtrixba rjuk be oszlopfoly-
tonosan.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.9. A LKALMAZSOK 47

rgzts irnya
-
x1,1 x7,1 x13,1 x139,1 r1,1 r1,2 r1,3 r1,4
x1,2 x7,2 x13,2 x139,2 r2,1 r2,2 r2,3 r2,4
mintavtel irnya y1,1 y7,1 y13,1 y139,1 r3,1 r3,2 r3,3 r3,4
y1,2 y7,2 y13,2 y139,2 r4,1 r4,2 r4,3 r4,4
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
x6,1 x12,1 x18,1 x144,1 r21,1 r21,2 r21,3 r21,4
x6,2 x12,2 x18,2 x144,2 r22,1 r22,2 r22,3 r22,4
y6,1 y12,1 y18,1 y144,1 r23,1 r23,2 r23,3 r23,4
y6,2 y12,2 y18,2 y144,2 r24,1 r24,2 r24,3 r24,4
q1,1 q1,2 q1,3 q1,24 q1,25 q1,26 q1,27 q1,28
q2,1 q2,2 q2,3 q2,24 q2,25 q2,26 q2,27 q2,28
q3,1 q3,2 q3,3 q3,24 q3,25 q3,26 q3,27 q3,28
?q4,1 q4,2 q4,3 q4,24 q4,25 q4,26 q4,27 q4,28

Nevezetesen egy 24 24-es mtrix oszlopai egyms utn kvetkez o 6 mintavteli


idopontban vett kt minta (bal s jobb hangcsatorna) 2 2 = 4 bjtjt tartalmaz-
zk. Ha xi,1 , xi,2 jelli a jobb csatorna mintjt az i-edik id opillanatban, s yi,1 , yi,2
a bal csatornt, akkor a fenti bra mutatja a mintk berst a tblzatba. A kapott
24 24-es mtrix minden oszlopt kdoljuk egy (28, 24) paramteru, GF(2 8 ) fe-
letti szisztematikus ReedSolomon-kddal. A j-edik oszlop paritsbjtjait jelltk
q1, j , q2, j , q3, j , q4, j -vel. Ennek a kdnak a kdtvolsga 5, teht 4 hibt tud jelezni,
2 egyszeru hibt tud javtani s 4 trlses hibt tud javtani. A digitlis lemezen
elofordul hibk jl modellezhetok egy ktllapot csatornval. Az egyik llapo-
tot nevezzk J llapotnak, melyben tlagosan 1000020000 bitideig tartzkodik,
s ekkor a hibk elofordulsa fggetlen egymstl s valsznusge kb. 10 4 . A
msik llapotot nevezzk ROSSZ llapotnak, amiben 3040 bitideig tartzkodik,
s ekkor gyakorlatilag hasznlhatatlan a vtel. Ekkor azt mondjuk, hogy a hibzs
csoms (burst-s). Az ilyen csatornk kdolsra talltk ki a kdtfuzs (inter-
leaving) technikt, amikor az elobbi mtrixot sorfolytonosan olvassk ki, de el otte
minden sort kdolnak ugyanazzal a (28, 24) paramteru ReedSolomon-kddal. A
j-edik sor paritsbjtjait jelli r j,1 , r j,2 , r j,3 , r j,4 . Ennek elonye az, hogy a fizikailag
sszefggo, csoms hiba hatst tbb kdszra osztja szt.
A Sony s a Philips megegyezett a fentihez hasonl (kicsit bonyolultabb) k-
dolsban azrt, hogy a tmeges digitlis hanglemezgyrts elindulhasson. A ver-
seny nyitott viszont a lejtsz kszlkben, vagyis a dekdols tern. A klnbz o
dekdolsok igazibl a kvetkezo egyszeru eljrs finomtsai: szmtsuk ki so-
ronknt a szindrmt! Ha a szindrma 0, akkor azzal a sorral kszen vagyunk.
Ha 1 hiba volt, akkor azt kijavtjuk. Ha 2 hiba volt, akkor azt kijavtjuk, s az
oszloponknti javtshoz ezeket a hibahelyeket megjegyezzk, azaz mestersgesen
trlses hibkat generlunk. Minden egyb esetben az egsz sort trlses hiba-
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 48

knt regisztrljuk. Ezek utn oszloponknt javtunk, ha ott legfeljebb kt trlses


hiba volt (emlkeztetnk, hogy 4 trlses hibt kpes a rendszer javtani). Ha a
hibk szma nagyobb, mint 2, akkor a krnyez o hibtlan mintkbl interpollunk.
Lthat, hogy a hibajavts nem hasznlja ki a ReedSolomon-kd hibajavtsi
lehetosgeit, aminek elsosorban technolgiai okai vannak, mivel a dekdols bo-
nyolultsga a javtand hibk szmnak ngyzetvel arnyos, s itt igen gyorsan
kell dekdolni (a forrs sebessge 2 44100 16 = 1.4112 Mbit/sec)

2.10. Feladatok

Lineris blokk-kdok

2.1. feladat. Egy {0, 1, 2} kdbcju GF(3) feletti lineris kd genertormtrixa:


 
1021
G=
0122

Adja meg a kdszavakat, valamint a d minimlis tvolsgot!

2.2. feladat. Egylineris binris kd paritsellen orzo mtrixa


H = 1 1 1 1 1 1 . Adja meg a kd kvetkezo paramtereit: n, k, d, kdszavak
szma!

2.3. feladat. Egy lineris binris blokk-kd genertormtrixa:


 
10110
G=
01101

Adja meg
a) a kd paramtereit: n, k, d,
b) standard elrendezsi tblzatt,
c) szindrma dekdolsi tblzatt,
d) a kdsz dekdolsi hibavalsznusget emlkezetnlkli BSC(p) esetre!

2.4. feladat. Egy lineris binris kd paritsellen orzo mtrixa:



11100
H = 10010
11001

Adja meg a szindrma dekdolsi tblzatot!


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 49

2.5. feladat. Egy lineris binris kd genertormtrixa az albbi:



101011
G = 011101
011010

Adja meg:
a) egy ekvivalens szisztematikus kd genertor- s paritsellen orzo mtrixt,
b) a dulis kd kdszavait (dulis kd = a paritsellen orzo mtrix mint genertor-
mtrix ltal generlt kd).

2.6. feladat. Adja meg a GF(4) feletti C(4, 2) paramteru,


 
1022
G=
0112

genertormtrix kd szindrma dekdolsi tblzatt! (0 0, 1 1, 2 x,


3 x + 1)

2.7. feladat. Definiljon egy (5, 3) paramteru GF(4) feletti kdot a genertormt-
rixa, amely
10011
G = 01012 .
00113

a) Mennyi a kd minimlis tvolsga?


b) Perfekt-e a kd?

c) Mi lehetett az tkldtt kdsz, ha a vett sz 1 ? 1 3 ? ?
A kd tisztn 0, 1 elemeket tartalmaz kdszavakat is tartalmaz.
d) Adja meg a binris kdszavakat!
e) Igazolja, hogy ezen binris kdszavak lineris rszkdot alkotnak az eredeti
kdban!
f) Adja meg ezen rszkd (n, k, d) paramterhrmast!
g) Adja meg a rszkd genertormtrixt!

2.8. feladat. Egy GF(5) feletti (5, 3) paramteru lineris kd kdszavai kztt van-
nak a (0, 1, 0, 1, 2), (1, 0, 0, 1, 4), (0, 0, 1, 1, 3) szavak is. Adja meg a kd hibajavt
kpessgt!

2.9. feladat. Adja meg egy (21, 18) paramteru GF(4) feletti, egy hibt javt kd
paritsmtrixt s genertormtrixt.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 50

2.10. feladat. Adja meg a legkisebb kdszhossz GF(3) feletti, 1 hibt javt,
k = 2 zenethossz szisztematikus kdot paritsellen orzo mtrixval!

2.11. feladat. Ltezik-e C(n, k), n k = 2, GF(3) feletti 1 hibt javt kd? Ha
igen, adja meg szisztematikus mtrixaival!

2.12. feladat. Adja meg a C(n, 1, d = n) paramteru binris kd C 0 dulis kdjt


(dulis kd = paritsellenorzo mtrix mint genertormtrix ltal generlt kd), s
annak paramterhrmast! Adja meg C 0 szavait n = 4 esetn!

2.13. feladat. Ltezhet-e olyan GF(q) feletti lineris blokk-kd, amelynek gene-
rtormtrixa egyben a kd paritsellen orzo mtrixa is? Ha vlasza igen, mutasson
pldt r, mind q = 2, mind pedig q > 2 esetben.

2.14. feladat. Valaki azt lltja, hogy ha egy C(n = 2m 1, k) lineris binris kd-
nak a csupa 1 kdsz eleme, akkor pontosan eggyel kevesebb pros parits nem-
zrus kdszava van, mint pratlan parits. Igaza van-e?

2.15. feladat. Legyen C(n, k) egy lineris binris blokk-kd, amelynek genertor-
mtrixban nincsen csupa zrus oszlop. Igaz-e, hogy az sszes kdsz egyeseinek
sszestett darabszma n 2k1 ?

2.16. feladat. Egy GF(q) feletti lineris blokk-kd paritsellen orzo mtrixa
 
1 1 1 1
H= ,
1 2 q2

ahol a test primitv eleme. Adja meg a kdtvolsgot!

2.17. feladat. A legegyszerubb konstrukcij hibajavtsra mr alkalmas nemtri-


vilis kd a ktdimenzis binris paritskd. (Az zenetet mtrixba rendezzk,
soronknt s oszloponknt paritsbittel egsztjk ki, majd a jobb als sarokba r-
juk a paritsok paritst.) Mennyi a minimlis tvolsg?

2.18. feladat. Igazolja, hogy a ktdimenzis binris paritskd jobb als parits-
elemt (azaz a paritsok paritst) kpezhetjk akr a sorparitsok paritsaknt,
akr az oszlopparitsok paritsaknt, azaz mindkt esetben azonos eredmnyre ju-
tunk.

2.19. feladat. Konstruljon egy GF(q), q = 2 m feletti (q + 1, q 1) paramteru 1


hibt javt lineris blokk-kdot.
a) Adja meg a szisztematikus paritsellen orzo mtrixot!
b) Perfekt-e a kd?
c) Adja meg q = 4 esetre a genertormtrixot! (0 0, 1 1, 2 x, 3 x + 1)
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 51

2.20. feladat. Igaz-e, hogy tetszoleges C(n, k, d = 3) paramteru lineris kdot egy
paritsszimblummal kiegsztve C 0 (n + 1, k, d = 4) paramteru kdot kapunk?

Kalkulus

2.21. feladat. Tekintse az S = {0, 1, 2, 3} halmazt az albbi muveleti tblk sze-


rinti + s muveletekkel:

+0123 0123
0 0123 00000
1 1230 10123
2 2301 20231
3 3012 30312

Testet kapunk-e?

2.22. feladat. Konstrulja meg GF(4) muveleti tblit!

2.23. feladat. Konstrulja meg GF(8) muveleti tblit:


a) Az x3 + x + 1 binris irreducbilis polinom felhasznlsval!
b) Ismtelje meg a konstrukcit az x3 + x2 + 1 binris irreducbilis polinom fel-
hasznlsval, s mutassa meg hogy a kt test izomorf (az elemek tnevezsvel
azonos muveleti tblkhoz jutunk)!

2.24. feladat. Legyen adva GF(4) a kvetkez o muveleti tblkkal:

+0123 0123
0 0123 00000
1 1032 10123
2 2301 20231
3 3210 30312

a) Oldja meg az albbi GF(4) feletti egyenletrendszert:

2x + y = 3
x + 2y = 3

b) Szmtsa ki az albbi GF(4) feletti mtrix determinnst!



212
det 1 1 2 = ?
101
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 52

2.25. feladat. Adja meg az x + 1 GF(8) polinom alakban megadott testelem in-
verzt, ha x3 + x2 + 1 az aritmetika generl polinom!

2.26. feladat.
a) Mutassa meg, hogy a p(x) = x3 + x2 + 2 GF(3) feletti polinom irreducbilis!
b) Adja meg GF(27) elemeinek rendjt!
c) Mi az x polinom ltal reprezentlt elem rendje GF(27)-ben, ha p(x) az aritme-
tika generl polinom?

2.27. feladat. Konstrulja meg GF(9) muveleti tblit!


Segtsg: f (x) = x2 + x + 1 GF(3) feletti irreducbilis (primitv) polinomot hasz-
nlhatja aritmetika generlsra.

2.28. feladat. A GF(16) test sszead- s szorztbljt tbbflekppen is meg-


konstrulhatjuk:
a) GF(2) feletti 4-edfok irreducbilis polinommal,
b) GF(4) feletti msodfok irreducbilis polinommal.
Kvessk a b) utat!
Segtsg: A polinomegytthatk aritmetikja GF(4), amelyhez a muveleti tblk
pldul a 2.24. feladatnl tallhatk. Az aritmetika generl polinomot szita md-
szerrel kaphatjuk. Ezzel az albbi msodfok GF(4) feletti irreducbilis polinomo-
kat kapjuk: x2 + x + 2, x2 + x + 2, x2 + 2x + 1, x2 + 2x + 2, x2 + 3x + 1, x2 + 3x + 3.

Ciklikus kdok

2.29. feladat. Valaki azt lltja, hogy egy 1 hibt javt binris ciklikus kd egyik
szava 0001111. Lehetsges ez?

2.30. feladat. Tekintsk a g(x) = x3 + x2 + 1 genertorpolinom, n = 7 kdsz-


hossz binris Hamming-kdot.
a) Adja meg a kd h(x) paritsellenorzo polinomjt s szisztematikus alak gene-
rtormtrixt!
b) Tekintsk a kd nem pros sly szavainak halmazt. Adja meg ezen rszkd
mrett, valamint minimlis tvolsgt!
c) Tekintsk a nem pratlan sly szavainak halmazt. Lineris, illetve ciklikus-e
ez a halmaz, s mik a paramterei?

2.31. feladat. A g(x) = x3 + x + 1 binris polinom egy 7 kdszhossz Hamming-


kd genertorpolinomja. Adja meg
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 53

a) a kdszavak halmazt,
b) a minimlis tvolsgot,
c) a paritsellenorzo polinomot!

2.32. feladat. Egy n = 7 kdszhossz binris ciklikus blokk-kd genertorpoli-


nomja g(x) = x 1. Adja meg a
a) lehetsges kdszslyokat, s a k, d paramtereket,
b) paritsellenorzo polinomot,
c) szisztematikus paritsmtrixot!

2.33. feladat. Egy n = 7 hossz binris ciklikus kd genertorpolinomja g(x) =


x6 + x5 + x4 + x3 + x2 + x + 1. Adja meg a kdszavak halmazt!

2.34. feladat.
a) Hny klnbzo 7 kdszhossz binris ciklikus kd van?
b) Adja meg (n, k, d) paramtereivel s g(x) genertorpolinomjval az sszes le-
hetsges binris n = 7 kdszhossz ciklikus kdot!

2.35. feladat. Egy C 0 kdot gy szrmaztatunk, hogy egy g(x) genertorpolinom


C(n, k), GF(q) feletti ReedSolomon-kd kdszavait tkrzzk, azaz elemeit for-
dtott sorrendben tekintjk (c0i = cn1i , i = 0, 1, . . . , n 1).
a) Ciklikus-e C 0 ?
b) Ha az a) krdsre a vlasz igen, akkor adja meg a C 0 kd g0 (x) genertorpoli-
nomjt g(x) alapjn, tovbb annak gykeit, ha g(x) gykei 1 , 2 , . . . , nk .

2.36. feladat. Egy C(n, k), n = 2m 1 binris ciklikus kd g(x) genertorpolinom-


jt osztja az x + 1 polinom. Eleme-e a kdnak a csupa 1 sz?

2.37. feladat. Egy C1 (n, k1 , d1 ) illetve egy C2 (n, k2 , d2 ) ciklikus kd h1 (x) illetve
h2 (x) paritsellenorzo polinomja kztti kapcsolat h1 (x) | h2 (x). Mi a kapcso-
lat:
a) C1 s C2 kztt,
b) d1 s d2 kztt?

2.38. feladat. Egy C1 (n1 , k1 ) ciklikus kd egy C2 (n2 , k2 ) ciklikus kd rszkdja.


Mi az algebrai kapcsolat a megfelel o
a) h1 (x), h2 (x) paritsellenorzo polinomok kztt,
b) g1 (x), g2 (x) genertorpolinomok kztt?
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 54

2.39. feladat. Igazolja, hogy egy h(x) paritsellen orzo polinom ciklikus kd pa-
ritsellenorzo mtrixnak sorait a (0, 0, . . . , hk , hk1 , . . . , h0 ) vektor ciklikus eltol-
saival nyerhetjk.
Segtsg:
Ellenorizze, hogy az gy kapott H sorai linerisan fggetlenek s ortogonlisak a
kdszavakra.

2.40. feladat. Kpezzk a CRC-t a g(x) = x 5 + x3 + x2 + 1 genertorpolinommal.


Jelez-e hibt a detektor, ha a vett sz v = (0000000100111011), ahol a jobb oldali
bit a zr helyirtku?

2.41. feladat. A kvetkezoket lltja valaki:


a) Egy C(n, k) ciklikus lineris kd h(x) paritsellen orzo polinomjt hasznlhatom
egy n kdszhossz C 0 kd genertorpolinomjaknt.
b) A C0 kd minimlis kdtvolsga elrheti a k + 2 rtket is.
Igazak-e az lltsok?

Kdkorltok

2.42. feladat. Konstrulhat-e n = 11, k = 5 paramteru t = 2 hibt javt binris


kd?

2.43. feladat. Valaki azt lltja, hogy olyan kdot tervezett, amely 7 redundancia-
karakterrel meghosszabbtja az zenetblokkot, s 4 vletlen hibt kpes javtani a
kdszban. Lehetsges ez?

2.44. feladat. Ltezik-e C(n, k), n k = 2, GF(3) feletti egy hibt javt kd? Ha
igen adjon pldt, megadva a szisztematikus paritsellen orzo mtrixt s a kdsza-
vait!
  
2.45. feladat. Perfekt-e a 1 1 1 1 1 1 1 , 0 0 0 0 0 0 0 kdszavakat tartal-
maz kd?

2.46. feladat. Perfekt-e egy C(11, 6) paramteru GF(3) feletti 2 hibt javt kd?

RS-kdok

2.47. feladat. Tekintsnk egy GF(11) feletti ReedSolomon-kdot g(x) =


(x 2)(x 4)(x 8)(x 5) genertorpolinommal. Adja meg a kd kvetkez o jel-
lemzoit: minimlis tvolsg (d), hibajavt kpessg (t c ), hibadetektl kpessg
(td ), trlsjavt kpessg (te )!
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 55

2.48. feladat. Adja meg egy GF(11) feletti hrom hibt javt, n = 10 szhossz
ReedSolomon-kd paramtereit, genertorpolinomjt, paritsellen orzo polinom-
jt!

2.49. feladat. Eleme-e az (1, 1, . . . , 1) csupa 1 vektor egy GF(q) feletti C(n, k),
n = q 1 ReedSolomon-kdnak, ahol a genertorpolinom gykei az primitv
elem 0, 1, 2, . . . , n k 1 hatvnyai?

2.50. feladat. Egy t hibt javt GF(q) feletti ReedSolomon-kd genertorpoli-


nomjnak gyke az primitv elem 2, . . . , 2t-edik hatvnya. Lehetsges-e, hogy a
kdszavak elemeinek (koordintinak) sszege a test zr eleme legyen?

2.51. feladat. Legyen (r) = 1, r , 2r , . . . , (n1)r , r = 0, 1, . . . , n 1, ahol
GF(q) egy n-edrendu elem. Igaz-e, hogy ha egy C(n, k) kd G genertormtrixnak
sorai rendre (r) , r = 0, 1, . . . , k 1, akkor H mtrixnak sorai lehetnek rendre az
(r) , r = 1, . . . , n k vektorok?

2.52. feladat. Legyen (r) = 1, r , 2r , . . . , (n1)r , r = 0, 1, . . . , n1, ahol GF(q)
egy n-edrendu elem. Van-e olyan C(n, k) kd, amelyre a G s H mtrixainak sorai
rendre ugyanazok az (r) alak vektorok?

2.53. feladat. Legyen g(x) = x3 + x + 1 egy C(7, 4) binris Hamming-kd gener-


torpolinomja. Mutassuk meg, hogy C lineris rszkdja egy C 0 (7, 5) GF(8) feletti
ReedSolomon-kdnak!

2.54. feladat. Igaz-e a kvetkezo llts? Egy C(n, k, d) GF(q) feletti ReedSo-
lomon-kd kdszavaibl kiemelve brmely, rgztett k mretu koordintahalmaz
ltal meghatrozott rszvektorokat, azok klnbz ok a klnbzo kdszavakra.

Kdkombincik, kdmdostsok

2.55. feladat. Adja meg a g(x) = x3 + x + 1 genertorpolinom C(7, 4) kd nem


pratlan sly szavai C 0 rszkdjnak halmazt, s ezen rszkd paramtereit!

2.56. feladat. Perfekt marad-e a C(n, k) binris Hamming-kd, ha kdrvidtst


hajtunk vgre, amelynek mrtke
a) 1 bit,
b) 2 bit?

2.57. feladat. A C(7, 4) binris Hamming-kd kdszavait paritskarakterrel b ovt-


jk pros paritsra egsztve ki a kdszavakat. Adja meg a kapott kd paramte-
reit!
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 56

2.58. feladat. A (7, 4) binris Hamming-kdbl kiindulva konstruljon binris k-


dot, amelynek 8 kdszava van, 7 a szhossza s alkalmas 3 hiba detektlsra.

2.59. feladat. A g(x) = x3 + x2 + 1 genertorpolinom szisztematikus Hamming-


kdon 3 bites kdrvidtst hajtunk vgre.
a) Adja meg a rvidtett kd (n, k) paramtereit!
b) Adja meg a kdszavakat s a kd d paramtert!

2.60. feladat. Adja meg a 8 bitnyi kdrvidtssel kaphat kd paramtereit s


kdszavait, ha a g(x) = x4 + x + 1 genertorpolinom binris Hamming-kdot r-
vidtettk.

2.61. feladat. Egy binris lineris C(n, k, d) kd nem tartalmazza a csupa egye-
sekbol (1) ll kdszt. Mit mondhatunk a C 0 = C 1 kdrl, ahol a koordin-
tnknti mod 2 sszeads?
a) Lineris-e?
b) Mik a paramterei: n0 , k0 , d 0 ?
Mit mondhatunk a C 00 = C C0 kdrl, ahol a halmazegyests:
a) Lineris-e?
b) Mik a paramterei: n00 , k00 , d 00 ?

2.62. feladat. Egy GF(q) feletti n = q 1 szhossz C ReedSolomon-kd ge-


nertorpolinomjnak gykei , 2 , . . . , d1 , GF(q). A kdot egy parits
karakterrel bovtjk, olyan mdon, hogy a kdsz karaktereinek testbeli aritmetika
szerinti sszege lesz az n + 1-edik karakter. MDS tulajdonsg marad-e a kapott q
szhossz kd?

2.63. feladat. Egy kommunikcis csatornn nagyon ritkn maximum 8 bit hosz-
sz hibacsomk keletkeznek. A kvetkez o bellthat paramteru kdolsi ele-
mekben gondolkozunk:
a) binris Hamming-kdol,
b) bjt karakter alap ReedSolomon-kdol,
valamint alkalmazhatjuk a kdtfuzs technikt is. A cl minimlis redundancia
mellett elvgezni a javtst. Milyen konstrukcit alkalmazzunk?

2.64. feladat. Mutassuk meg, hogy egy C s a m-szeres tfuzse, C m kd gene-


rtorpolinomja kztt a kvetkezo egyszeru kapcsolat ll fenn: Ha g(x) a C kd
genertorpolinomja, akkor g(xm ) a Cm kd genertorpolinomja.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 57

Hibajavt dekdols

2.65. feladat. Egy GF(11) feletti lineris blokk-kd paritsellen orzo mtrixa
 
1 1 1 1
H= ,
1 2 9

ahol = 2 a test primitv eleme.


a) Adja meg a kd paramtereit!
b) Adja meg a dekdols menett az e(x) = 5x 3 hibapolinom esetre!

2.66. feladat. Valaki azt lltja, hogy nem felttlenl kell egy GF(2 m ) feletti C(n =
2m 1, k) binris kd genertorpolinomjban 4 ciklikusan egyms utni gyknek
lennie ahhoz, hogy a kd t = 2 hibt javthasson. Szerinte az is megfelel o, ha a
g(x) genertorpolinom olyan, hogy g() = g( 1 ) = 0, ahol a GF(2m ) primitv
eleme. Igaza van-e?
Segtsg:
A szindrmaegyenletek megoldhatsgnak kzvetlen vizsglatval ellen orizze az
lltst.

2.67. feladat. Valaki a kvetkezo gondolatmenetet mondja a trsnak:


n gy tudom, hogy egy C(n, k) lineris binris blokk-kd szindrma dekdolsi
tblzata mindig 2(nk) javthat hibamintt tartalmaz, teht vglis a minimlis t-
volsgnak nincs jelentosge, s mindegyik (n, k) paramteru kd egyformn hasznos
(hasznos = emlkezetnlkli BSC csatornn hasznlva azonos kdsz-dekdolsi
hibavalsznusget kapunk). Tmr rvelssel tegyen igazsgot! Mutasson egy
egyszeru pldt is!

2.68. feladat. Egy C(n, k) blokk-kd dekdolst szindrma dekdolsi tblzat


alapjn vgezzk. Az albbi kt llts kzl melyik az igaz s mirt?
a) A dekder kimenetn az aktulis hibzstl fggetlenl mindig valamilyen
esetleg hibs kdsz jelenik meg.
b) A dekder a tblzat alapjn egyszeruen levon a vett szbl egy hibamintt,
gy slyosabb hibzs esetn elofordulhat, hogy nem egy kdsz jelenik meg a
kimeneten.

2.69. feladat. Van GF(256) aritmetikban gyorsan szmol egysgnk. A csa-


torna hibzsa olyan, hogy ritkn, legfeljebb 16 bit hossz hibacsomk keletkez-
hetnek. Milyen kdot javasol a javtsra, ha maximalizlni szeretnnk a kdolsi
sebessget?

2.70. feladat. Egy zenetforrs kimenetn 8 klnbz o karakter jelenhet meg. Ha


ezeket a karaktereket az tviteli csatornn tovbbtjuk, akkor alkalmanknt egy
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 58

karakter meghibsodik, de kt hibs karakter kzti tvolsg legalbb 10 karakter.


Blokk-kdos hibajavtst szeretnnk alkalmazni azzal a megktssel, hogy a relatv
redundancia nem haladhatja meg a 30 %-ot. Javasoljon megoldst a hibajavtsra,
adja meg az alkalmazand kdot!

Hibadetekci

2.71. feladat. Valaki azt lltja, hogy tetsz oleges m fokszm, binris f (x) po-
linom, amelynek konstans tagja 1, alkalmas arra, hogy CRC genertorpolinom-
knt detektljunk vele tetszoleges, legfeljebb m bit hosszsg hibacsomagot. (Pl.
1xxx1 egy 5 hossz hibacsomag.) Igaza van-e?

2.72. feladat. Egy hibadetekcis protokollban a 000 . . . 0011 (kt utols bitjn 1-et
tartalmaz) zenetcsomaghoz a g(x) = x 16 + x12 + x5 + 1 szabvnyos genertorpo-
linommal ciklikus redundancia ellen orzo sszeget (CRC) alkalmazunk. Adja meg
az ellenorzosszeggel elltott blokkot!

Hibavalszn usg

2.73. feladat. Emlkezetnlkli q-ris (0, 1, . . . , q bemeneti bc, 0, 1, . . . , q ki-


meneti bc) csatornn kommuniklunk, ahol a hibzs valsznusge p
(P(i | j) = p, i 6= j). Egy (n, k) paramteru GF(q) feletti t hibt javt perfekt
kdot hasznlunk csatornakdknt. Adja meg egy kdsz tves dekdolsnak
valsznusgt!

2.74. feladat. Tekintsk a g(x) = x4 + x + 1 genertorpolinom binris Hamming-


kdot. A kdot hibajavtsra hasznljuk. Adja meg egy kdsz tves dekdols-
nak valsznusgt!

2.75. feladat. A (8, 4) paramteru paritsbittel b ovtett binris Hamming-kdot


hibadetekcira hasznljuk p hibzsi valsznusgu emlkezetnlkli binris szim-
metrikus csatornn. Adja meg a detekci mulaszts valsznusgt!

2.76. feladat. A C(n, k = 1) paramteru binris ismtlses kdot


a) tisztn trlses csatornn
b) vletlen bithibzsos csatornn
hasznljuk, ahol a trls illetve hibzs valsznusge p. Adja meg mindkt eset-
ben egy kdsz tves dekdolsnak valsznusgt!
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.10. F ELADATOK 59

2.77. feladat. 1 bitnyi zenetet gy visznk t a csatornn, hogy ismteljk azt,


azaz a (00 . . . 0) illetve az (11 . . . 1) szavak valamelyikt kldjk t. Legyen p =
0.01 a bithibzs valsznusge az emlkeznlkli binris csatornban. Mennyivel
javul a tves dekdols valsznusge, ha n = 3 hossz szavak helyett n = 5 hosz-
szakat hasznlunk?

2.78. feladat. Az albbi mretu ktdimenzis paritskdot paritsellen orzsre hasz-


nljuk (u: zenetbit, p: paritsbit)

uup
u u p .
ppp
Adja meg a hibadetekci elmulasztsnak valsznusgt emlkezetnlkli BSC(p)
csatorna esetn!

2.79. feladat. Egy binris, tisztn trlses emlkezetnlkli csatornn p = 0.05 a


trls s 1 p = 0.95 a hibtlan tovbbts valsznusge. Flbjtos (4 bit) egy-
sgekben tovbbtjuk a forrs informcijt, amelyet 4 bit redundancival kieg-
sztnk kdszv. Hasonltsuk ssze az albbi kt kdolsi eljrst a kdolsi
hatkonysg szempontjbl:
a) a redundancia nem ms mint az zenet flbjt megismtlse,
b) a (8, 4) paramteru, paritsbittel kiegsztett Hamming-kdot hasznljuk.

2.80. feladat. Tisztn trlses hibt okoz emlkezetnlkli binris csatornn p =


0.05 a trls valsznusge. 4 bites zeneteinket paritsbittel b ovtett (7, 4) Ham-
ming-kddal tovbbtjuk. Elfogadhatan vlasztottuk-e a kdot, ha zeneteinket
legalbb 0.999 valsznusggel szeretnnk a vev oben helyesen rekonstrulni?

2.81. feladat. 18 bjt mretu zenetcsomagjainkat 2 bjt mretu CRC-vel vdjk


egy p = 0.001 bithibzs valsznusgu emlkezetnlkli BSC csatornn.
a) Tegyk fel, hogy zajmentes nyugtzcsatorna ll rendelkezsre, s a hibadetek-
ci tkletes! Mennyi a csomagismtlsek tlagos szma?
b) Mekkora ugyanez a szm, ha a nyugtz csatorna is ugyanilyen mrtkben hi-
bzhat, ahol az 1 bjt mretu nyugta szintn 2 bjt mretu CRC-vel vdett. Az
ad csak akkor nem ismtel, ha hibtlan nyugta rkezik. Mennyi a csomagis-
mtlsek tlagos szma?

2.82. feladat. p hibzsi valsznusgu emlkezetnlkli csatornn N bjt mretu,


T idotartam csomagokat tovbbtunk. A hibakontroll CRC alap hibadetekci.
Az ad addig nem kldi el a kvetkezo csomagot, amg az utoljra elkldtt cso-
mag sikeresen t nem jutott a csatornn, s err ol a visszairny csatornn nyugtt
nem kapott. Tegyk fel, hogy a nyugtzs szintn T id ot vesz ignybe. Mekkora a
csomagksleltets vrhat rtke, ha a visszairny csatorna hibamentes?
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 60

2.11. Megoldsok
2.1. megolds. A kdszavak halmaza {0000, 1021, 0122, 2012, 0211, 1110, 1202,
2101, 2220}, d = 3

2.2. megolds. A H mtrix dimenzija (n k) n, ezrt n = 6, k = 5. Mivel azok


s csak azok a kdszavak, amelyek ortogonlisak H soraira, azaz Hc T = 0, ezrt
adott esetben a nemzrus kdszavak nyilvn a pros sly 6 bites szavak. gy
d = 2. A kdszavak szma 2k = 32.

2.3. megolds.
a) A G mtrix dimenzija k n, ezrt n = 5, k = 2.
A ngy kdsz: 00000, 10110, 01101, 11011, ahonnan d = 3.

b)

00000 10110 01101 11011


00001 10111 01100 11010
00010 10100 01111 11001
00100 10010 01001 11111
01000 11110 00101 10011
10000 00110 11101 01011
00011 10101 01110 11000
10001 00111 11100 01010

amelynek alapjn a kd javtani kpes minden 1 sly hibt, tovbb kt rgz-


tett 2 sly hibt.

c)

szindrma hibavektor
000 00000
001 00001
010 00010
011 00011
100 00100
101 01000
110 10000
111 10001

d) A szindrma dekdolsi tblzatot kiegsztettk a 2 sly hibkkal. Ennek


alapjn lthatjuk, hogy a 10 darab 2 sly hibaminta esetn 6 esetben a fenti
tblzatban az azonos sorban levo 1 sly hibamintval prbl javtani a de-
kder. A fennmarad 4 esetbol kettot helyesen javt, kettot hibsan 2 slyval.
Teht a dekdol ktsly hibk esetn 0.2 valsznusggel javt helyesen, s
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 61

0.8 valsznusggel hibzik. A krdezett kdsz-dekdolsi hibavalsznusg:


Pe = 1 ((1 p)5 + 5p(1 p)4 + 2p2 (1 p)3 ))
2.5. megolds.
a) A G mtrix 2. s 4. valamint a 3. s 5. oszlopt felcserljk,

101011
G0 = 010111
001110
majd a 3. sort az 1. sorbl kivonjuk:

100101
G00 = 010111
001110
szisztematikus alak ekvivalens genertor mtrixot kapunk. Innen a keresett
ekvivalens szisztematikus paritsellen orzo mtrix:

111100
H = 011010
110001

b) A H mtrix sortere:
000000, 111100, 011010, 110001, 100110, 001101, 101011, 010111
2.6. megolds.
 
2110
H=
2201
GF(4) muveleti tblk:
+0123 0123
0 0123 00000
1 1032 10123
2 2301 20231
3 3210 30312
szindrma hibavektor szindrma hibavektor
00 0000 20 0020
01 0001 21 0021
02 0002 22 1000
03 0003 23 0200
10 0010 30 0030
11 3000 31 0300
12 0100 32 0032
13 0013 33 2000
A kd teht minden egy sly hibt javt, tovbb 3 kett o slyt.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 62

2.7. megolds.
a)
 
12310
H=
11101
d = 3, mivel van 3 sly kdsz, s a H mtrix oszlopai linerisan fggetlenek.
b) Igen. 43 (1 + 3 5) = 45
c) Kt trlst tud javtani a kd: a kdsz (1, 3, 1, 3, 3). Ilyen kismretu iskola-
pldnl egyszeru kombinlssal is lthat ez az eredmny a genertormtrix
alapjn. Egy megoldsi technika x, y ismeretlenek bevezetse a trlsek helyn,
majd HcT = 0 egyenlet alapjn egy ktismeretlenes GF(4) feletti egyenletrend-
szer felrsa:
11+2x+31+13+0y = 0
11+1x+11+03+1y = 0
ahonnan
2x = 1
y=x
s innen az elso egyenlet mindkt oldalt 21 = 3-mal szorozva az x =
3, y = 3 megoldst kapjuk.
d) A G mtrix alapjn egyszeru kombinlssal az albbi binris kdszavakat
kapjuk:
{(00000), (10011), (01101), (11110)}
e) A binris szavak halmaza nyilvn zrt a binris kombincikra, gy egy rszk-
dot kpez.
f) A kdszavak halmaza alapjn: n = 5, k = 2, d = 3.
g) A G0 genertormtrix a kvetkezo

0 10011
G = .
01101
2.8. megolds. A megadott kdszavak linerisan fggetlenek, tovbb a kd di-
menzija k = 3, ezrt a hrom megadott kdsz kifeszti a kdszavak tert:

10014
G = 01012 ,
00113
ahonnan  
42310
H= .
11101
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 63

H oszlopai linerisan fggetlenek, tovbb a Singleton-korlt alapjn d = 3, teht


t = 1.
2.9. megolds.

111111111111111000 100
H = 000111122223333111 010
123012301230123123 001
A H mtrix elemekkel val kitltsnek technikja jl kvethet o a fenti mtri-
xon (az 100 oszlop logikusan az elso lenne, ezt azonban a szisztematikus ge-
nerls kedvrt a mtrix vgn levo egysgmtrixhoz hasznltuk fel, s hason-
lan a 010 oszlop a fenti mtrix 15. s 16. sora kz illeszkedik). Ez a tech-
nika egyrszt biztostja, hogy linerisan fggtelenek legyenek az oszlopok, ms-
rszt ezzel a mdszerrel maximlis szm pronknt linerisan fggetlen oszlo-
pokat tartalmaz H mtrixot kapunk: a kitlts logikja szerint ez a kdszhossz
q3 + q + 1 = (q3 1)/(q 1) = 63/3 = 21. GF(q) feletti m soros H mtrix ltal-
nos esetben a kdszhossz: qm + qm1 + + q + 1 = (qm 1)/(q 1).

2.10. megolds. A Singleton-korlt szerint n 2 + 1 3, azaz n 4, teht a leg-


rvidebb hossz legalbb 4. A  
1110
H=
2301
mtrix knnyen lthatan megfelel a kvnsgnak.

2.11. megolds. A Singleton-korlt szerint nk+1 3, azaz ez a korlt nem zrja


ki a ltezst. Az egyszeru ismtlses kd megfelel o, azaz a kdszavak halmaza:
{(000), (111), (222)}. A mtrixok:

G = 111 ,
 
210
H= .
201

2.12. megolds. A C(n, 1, n) paramteru binris kd az n. binris ismtlses kd,


amelynek kt kdszava van: {(00...000), (11...111)}. A kd genertormtrixa G =
(11...111)
gy
1000 . . . 0001
0100 . . . 0001


H = 0010 . . . 0001 .
.. . . ..
. . .
1000 . . . 0011
n0 = n, k0 = n k, d 0 = 2. C0 szavai H sorainak lineris kombincii (pros sly
4 hossz binris vektorok):
{(0000), (1100), (1010), (1001), (0110), (0101), (0011), (1111)}.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 64

2.13. megolds. q = 2-re a H = (P | I) szisztematikus alakot tekintve, ndualits


esetn GHT = 0 miatt PPT = I fenn kell lljon, azaz P csak ngyzetes mtrix
lehet. Ekkor k = n k, azaz k = n/2. Binris esetre plda

1110 1000
1101 0100
H= 1011 0010 .

0111 0001

q > 2, 2|n: Nembinris esetben az (n, n/2) paramteru ReedSolomon-kd stan-


dard H mtrixa alapjn kaphatunk ndulis kdot, ahol

1 2 . . . n1
1 2 4 . . . 2(n1)

H=. . ..
. . . . .
1 n/2 n . . . n/2(n1)

2.14. megolds. Igen. Binris linris kdok esetn igaz, hogy egy kdnak vagy
minden szava pros sly (a 0 slyt is idertve), vagy a szavaknak pontosan fele
pros, fele pratlan sly. Ez abbl kvetkezik, hogy pros sly szavak binris
sszege pros sly, pratlan slyak sszege pratlan sly, mg pros s pratlan
slyak sszege pratlan sly. Ha teht van egy pratlan sly sz, akkor ezt
a szt a pros slyakhoz adva a pratlan sly szavak szma legalbb akkora
lesz mint a prosak. Ugyanakkor ha egy pratlan sly szt adunk a pratlan
slyakhoz nmaghoz is akkor lthatan legalbb annyi pros sly sznak
kell lennie a kdban, mint pratlannak. Teht a szmuk egyforma.

2.15. megolds. Igen. rjuk gondolatban a kdszavakat egyms al, tblzatsze-


ruen. A G mtrix sorainak kombincii a kdszavak. Tekintsk G els o oszlopt.
Ezen oszlop bitjei kztt van legalbb egy egyes. Ha tekintjk az sszes binris
kombincit a G elso oszlopban (azaz skalrszorzs a klnbz o binris, osz-
lophossz vektorokkal), akkor knnyen lthatan pontosan az esetek felben 1,
msik felben pedig 0 bit addik. Ennek megfelel oen a kdszavak tblzatnak
elso oszlopban pontosan 2k1 darab 1 bit s ugyanennyi 0 bit ll. Ugyanez a
gondolatmenet igaz a tbbi n 1 oszlop vonatkozsban is.

2.16. megolds. Brmely kt oszlop linrisan fggetlen, ezrt d 3. A Singleton-


korlt szerint d 3, gy d = 3.

2.17. megolds. d = 4.

2.18. megolds. A krdses sarok-bit, az zenet bitjeinek paritsa, amit szmol-


hatunk soronknti, vagy oszloponknti paritsok paritsaknt is (ms szavakkal, az
zenet bitjeinek modulo 2 sszegt szmtjuk ki ktfle sorrendben).
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 65

2.19. megolds.
a) Legyen a GF(q) primitv eleme:
 
1 1 1 ... 1 1 0
H=
1 2 . . . q2 0 1

b) Igen. qq1 (1 + (q + 1)(q 1)) = qq+1

c)

1001 1
G = 0 1 0 1
0 0 1 1 2

2.20. megolds. Nem igaz. Azt kell szrevenni, hogy egy nembinris pratlan s-
ly kdsz elemeinek sszege lehet 0. Pldul C(4, 2) GF(3) feletti kdot tekintve
az albbi mtrixokkal:  
1110
H=
0201
 
1022
G=
0121
Pldul az (1, 1) zenethez tartoz (1, 1, 1, 0) kdszhoz 0 paritskarakter tartozik,
azaz a minimlis kdszsly 3 marad.

2.21. megolds. Nem. A disztributivits nem teljesl: (1 + 1) 2 = 3 6= 1 2 + 1


2 = 0.

2.22. megolds. Mivel 4 = 22 , ezrt binris msodfok irreducbilis polinomot


vlasztunk a modulo polinom aritmetika generlshoz. Ez a polinom f (x) =
x2 + x + 1. A testelemek elnevezse 0,1,2,3, ahol a kvetkez o megfeleltetst v-
lasztjuk: 0 0, 1 1, 2 x, 3 x + 1.
Pldul: 2 3 = x(x + 1) = x2 + x = 1 mod f (x).

2.24. megolds.
a) x = 1, y = 1.
b) A harmadik sor szerint kifejtve a determinnst: D = 0 + 3 = 3.

2.25. megolds. (x + 1)x2 = 1 mod x3 + x2 + 1, ezrt (x + 1)1 = x2 .


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 66

2.26. megolds.
a) Ha p(x) GF(3) feletti kisebb fokszm faktorokra lenne bonthat, akkor lenne
azok kztt elsofok, teht 0,1,2 GF(3)-beli elemek kzl kellene, hogy legyen
gyke. De
p(0) = 0 + 0 + 2 6= 0 (mod 3)
p(1) = 1 + 1 + 2 6= 0 (mod 3)
p(2) = 8 + 4 + 2 6= 0 (mod 3)
b) d|26 = 1, 2, 13, 26
c) (2x + 1)(x2 + 2) = 2x3 + 4x + x2 + 2 = 2x2 + x + 1

2.29. megolds. Nem, mivel ezen kdsz s egylpses balra forgatottja kztti
Hamming-tvolsg csak 2 lenne.

2.30. megolds.
a) A rszkd mrete 8, mivel ha egy lineris kdban van pratlan sly kdsz,
akkor a kdszavak fele pratlan sly
b) d = 4, mivel a csupa 1 sz eleme a kdnak, ugyanis (x 7 1)/(x 1) = (x3 +
x2 + 1)(x3 + x + 1), gy a rszkdnak is , s az alapkdban emiatt nem lehet 6
sly sz, kvetkezskpp a rszkdnak csak 7 darab 4 sly s 1 darab 0 sly
eleme van, s kt 4 sly sz klnbsge esetnkben csak 4 lehet.

2.31. megolds.
a) a szisztematikus kdszgenerls technikja alapjn

1000 101
0100 111
G= 0010 110

0001 011
a szisztematikus genertormtrix, s ennek alapjn a 16 kdsz

0000000 1000101
0001011 1001110
0010110 1010011
0011101 1011000
0100111 1100010
0101100 1101001
0110001 1110100
0111010 1111111

b) a kdszavak halmaza alapjn a minimlis nemzrus kdszsly 3


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 67

c) x7 1 = (x 1)(x3 + x2 + 1)(x3 + x + 1), ezrt h(x) = (x7 1)/g(x) =


(x 1)(x3 + x2 + 1) = x4 + x2 + x + 1

2.32. megolds.
a) slyok = 0, 2, 4, 6, k = 6, d = 2
b) h(x) = (x7 1)/(x 1) = x6 + x5 + x4 + x3 + x2 + x + 1
c) H = (111111)

2.33. megolds. A kdszavak szma: |C| = 2 k = 2.


A kt kdsz {(0000000), (1111111)}.

2.34. megolds.
a) A vlaszt az x7 1 polinom valdi, nemzrus fokszm binris osztinak szma
adja, s mivel x7 1 = (x 1)(x3 + x2 + 1)(x3 + x + 1), ezrt a vlasz 6.
b) C1 (7, 1, 6): g1 (x) = (x7 1)/(x 1) = x6 + x5 + x4 + x3 + x2 + x + 1
C2 (7, 4, 3): g2 (x) = x3 + x + 1 (Hamming-kd)
C3 (7, 4, 3): g3 (x) = x3 + x2 + 1 (Hamming-kd)
C4 (7, 3, 4): g4 (x) = (x 1)(x3 + x2 + 1) (pros sly rszkd)
C5 (7, 3, 4): g5 (x) = (x 1)(x3 + x + 1) (pros sly rszkd)
C6 (7, 6, 2): g6 (x) = (x 1)

2.37. megolds.
a) C1 C2
b) d1 d2

2.38. megolds.
a) h1 (x) | h2 (x)
b) g2 (x) | g1 (x)

2.40. megolds. Igen, v(x) = x3 + 1 mod g(x).

2.41. megolds.
a) Igen, mivel h(x) | xn 1.
b) Nem, mivel a Singleton-korlt miatt C 0 minimlis tvolsga legfeljebb k + 1.

2.42. megolds. Nem, ezt lthatjuk, ha ellen orizzk a gmbi kitltst:


25 (1 + 11 + 11 10/2) > 211 .

2.43. megolds. Nem, az llts ellentmond a Singleton-korltnak.


Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 68

2.44. megolds. Igen. Tekintsk a (000), (111), (222) szavakbl ll ismtlses


kdot. A minimlis tvolsg nyilvn 3. A szisztematikus paritsellen orzo mtrix:
H = (111).

2.45. megolds. Igen, mivel teljesl a Hamming-korlt szerinti egyenl osg:


2(1 + 7 + 21 + 35) = 27 .

2.46. megolds. Igen, mivel teljesl a Hamming-korlt szerinti egyenl osg:


36 (1 + 11 2 + (11 10/2) 22 ) = 311

2.47. megolds. A genertorpolinom gykhalmaza alapjn: d = 5, t c = 2, td = 4,


te = 4.

2.49. megolds. Nem, mivel g(1) = 0, de a (x q1 1)/(x 1) = xn1 + xn2 +


+ x + 1 polinomnak az 1 testelem nem gyke.

2.50. megolds. Nem lehetsges. A kdszavak elemeinek sszege zrus, ekviva-


lens azzal, hogy c(1) = 0, tetszoleges c kdszra. Mivel a kd t hibt javt, ezrt az
primitv elemnek vagy 1, 2, . . . , 2t vagy a 2, 3, . . . , 2t, 2t + 1 hatvnyai azaz 2t
egymst kveto kitevoju hatvny a genertorpolinom gykei. Mindkt esetben
igaz, hogy g(1) 6= 0, azaz primitv elem 0 kitev oju hatvnya nem gyke a ge-
nertorpolinomnak, kvetkezskpp nem lehetsges, hogy c(1) = 0 fenllhasson,
hiszen egy kdsz a genertorpolinom tbbszrse.
 
2.51. megolds. Igaz. Az a = 1, i , 2i , . . . , (n1)i s b = 1, j , 2 j , . . . , (n1) j
vektorok ortogonlisak, azaz
n1
ab = (i+ j)k = 0
k=0

ha i + j 6= 0 mod n, ami esetnkben teljesl.



2.52. megolds. Van. Ha n pratlan szm, akkor (r) = 1, r , 2r , . . . , (n1)r ,
r = 0, 1, . . . , n 2 vektorok lehetnek mind G s H mtrix sorai az el ozo feladat
megoldsa rtelmben. Ha pldul q = 2 m alak, akkor az elemek rendje mindig
pratlan szm.

2.53. megolds. A C 0 ReedSolomon-kd g0 (x) genertorpolinomjnak gykei ,


2 ahol GF(8) primitv eleme. A C Hamming-kd g(x) genertorpolinomj-
nak gykei pedig , 2 , 4 . gy c(x) = (x 4 )g0 (x) = g(x) egyben a C 0 kd egy
kdszava, azaz C minden kdszava eleme a C 0 kdnak.

2.54. megolds. Igaz. Ugyanis a ReedSolomon-kd MDS tulajdonsg, s gy ha


valamely k elemu koordintahalmazon kt kdsz azonos elemeket tartalmazna,
akkor a klnbsgk slya legfeljebb n k lehetne, ami ellentmodana annak, hogy
a minimlis tvolsg n k + 1.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 69

2.55. megolds. Mivel egy binris kdban vagy minden sz pros sly vagy pon-
tosan a szavak fele az, s a Hamming-kdban van pratlan sly kdsz, ezrt C 0
dimenzija k 0 = 3. A szisztematikus kdszgenerls technikja alapjn

1000 101
0100 111
G= 0010 110

0001 011
a szisztematikus genertormtrix, amelynek 2. sora, a 3. s 4. sor sszege, valamint
az 1. s 3. sor sszege pros sly. Ezen vektorok kifesztik a keresett rszkdot,
gy a rszkd egy genertormtrixa

0100 111
G0 = 0010 110 ,
0001 011
C0 kdszavai: 0000000, 1001110, 1010011, 0011101, 1011111, 0100111, 1110100,
0111010. C 0 paramterei: n0 = 7, k0 = 3, d 0 = 4.

2.56. megolds.
a) Nem: 23 (1 + 6) < 26 .
b) Nem: 22 (1 + 5) < 25 .

2.57. megolds. n = 8, k = 4, d = 4

2.59. megolds.
a) n = 4, k = 1
b) A rvidtett kdot a genertorpolinomnak megfelel o (0001101) sz generlja,
azaz a kdszavak (0000000), (0001101), gy d = 3.

2.61. megolds.
a) Nem, mivel a C 0 kdnak nem eleme a csupa zrus kdsz.
b) n0 = n, k0 = k, d 0 = d, mivel C 0 kt klnbzo nemzrus szavnak klnbsge
C szava, s C minden nemzrus szava gy el ollthat.
c) Igen. Brmely kt kdsz sszege is kdsz, azaz vagy C vagy C 0 eleme.
d) A C s C0 diszjunkt halmazok, hiszen ha C 0 egy c 1 eleme C eleme lenne,
ahol c C, akkor nyilvn 1 C is fennnllna, ugyanis (c 1) c = 1, ami
ellentmonds. gy n0 = n, k0 = k + 1, d 0 =min{d, n d}.

2.62. megolds. Azon szavak rszhalmazt tekintve, ahol az n + 1-edik karakter 0,


a szavak polinom alakjnak az 1(= 0 ) testelem is gyke, teht ezen rszhalmaz-
beli szavak minimlis slya legalbb d + 1. Azon szavak slya pedig, ahol ahol az
n + 1-edik karakter nem 0 nyilvn szintn legalbb d + 1.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 70

2.64. megolds. Mivel g(x) mint genertorpolinom a C kd egyben leg-


kisebb fokszm nemzrus fopolinom kdszava, ezrt a c(1) (x) = g(x), c(2) (x) =
0, . . . , c(m) (x) = 0 sorozat tfuzsvel kaphat kdsz polinom alakban g(x m ), a Cm
kd legkisebb fokszm nemzrus fopolinom kdszava, azaz genertorpolinomja.
2.65. megolds.
a) n = 10, k = 9, d = 3
b) Alkalmazzuk a 2.6. pontban megadott mdszert.
2.66. megolds. Igaza van. Kzvetlenl megadhatjuk a dekdols menett kt
hiba javtsa esetre. A hibapolinom e(x) = x i1 + xi2 , ahol 0 i1 < i2 n 1
a hibapozcik. Felrva a szindrmkra vonatkoz kt egyenletb ol ll egyenlet-
rendszert:
S1 = e() = X1 + X2 ,
S1 = e(1 ) = X11 + X21,
ahol X1 = i1 , X2 = i2 az gynevezett hibahelycmkk. A msodik egyenletet
X1 X2 -vel beszorozva:
X1 + X2 = S1 ,
X1 X2 = S1 /S1 ,
egyenletrendszert kapjuk X1 s X2 ismeretlenekben. Az
(x X1 )(x X2 ) = x2 + (X1 + X2 )x + X1 X2 = x2 + S1 x + S1 /S1
msodfok egyenletre jutunk, amelynek a gykei a keresett hibahelycmkk.
2.67. megolds. Nincs igaza. Az ugyan igaz, hogy 2 nk javthat hibamintt tu-
dunk felmutatni, de a dekdolsi hibavalsznusg gy minimlizlhat, ha a ja-
vthat hibamintk slyai az 1 slyoktl kezdve sly szerint folyamatosan lefedik
a hibamintkat, azaz az egy slyakat, majd a kt slyakat, s..t.
2.68. megolds. Az a) vlasz az igaz, mivel a vett szhoz tartoz szindrma alap-
jn vlasztjuk a javt hibamintt, azaz mindig zrusra korrigljuk a szindrmt,
teht mindig kdsz az eredmny.
2.69. megolds. Bjt karakteres ReedSolomon-kdot vlasztva hrom, egyen-
knt egy bjt hibt javt kdot tfuznk, mivel 16 bites hibacsom legrosszabb
esetben 3 egymst kveto bjt hibjt okozza. A komponenskdok paramtere
C(255, 253), s ezzel a krdses optimlis sebessg R = 253/255 = 0.992.
2.71. megolds. Igen. Ugyanis egy m bites hibacsom, amely az r, r + 1, . . . , r +
m1 bitpozcikat foglalja el, nyilvn felrhat b(x)x r alakban, ahol b(x) egy m1
fokszm binris polinom. De b(x)xr polinom modulo f (x) maradka nem lehet
zrus, mivel f (x) tetszoleges polinomszorosa legalbb m + 1 bites hibacsomag-
nak felel meg.
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.11. M EGOLDSOK 71

2.72. megolds. x17 + x16 mod g(x) maradkot kell meghatrozni. gy a keresett
16 bites CRC: 00110000|01100011.

2.73. megolds. Hasznljuk a (2.10) formult: Pe (n,t, (q 1)p).

2.74. megolds. A kd perfekt, ezrt a (2.10) formula felhasznlsval egyszeruen


szmthat a dekdolsi hibavalsznusg: Pe = 1 ((1 p)15 + 15p(1 p)14 ).

2.75. megolds. A g(x) = x3 + x + 1 binris genertorpolinom Hamming-kd


kdszavai
0000000 1000101
0001011 1001110
0010110 1010011
0011101 1011000
0100111 1100010
0101100 1101001
0110001 1110100
0111010 1111111
Ennek alapjn a paritsbittel kibovtett kd slyeloszlsa:
sly darab
4 14
8 1

gy Pe = 14p4 (1 p)4 + p8 .

2.76. megolds.
a) Nyilvn, ha egy pozci is marad, trls nlkl felismerhet o a kdsz, lvn
hogy a kt kdsz a csupa 0 illetve a csupa 1. Ez megfelel a d 1 = n 1
trlsjavt kpessgnek. gy Pe = 1/2 qn .
b) A javtkpessg t = b(n 1)/2c. Ha n pratlan, akkor a (2.10) kplet alapjn
szmolhatjuk a hibavalsznusget. Ha n pros, akkor t 0 = bn/2c behelyettes-
svel a (2.10) kpletbe felso becslst kapunk, mivel ekkor n/2 sly hiba esetn
egyenlo tvolsgra vagyunk a kt kdsztl.

2.77. megolds. A (2.10) kpletet hasznlva a javuls:

Pe (5, 2, 0.01) Pe (3, 1, 0.01).

2.78. megolds.
a)
sly darab
0 1
4 9
6 6
Kdolstechnika - 2006 - crysys web vltozat - 6.

2.12. SSZEFOGLALS 72

b) Pe = 9p4 (1 p)5 + 6p6 (1 p)3


2.80. megolds. Mivel d = 4, ezrt ha a trlses hibk szma legfeljebb 3, azt
biztosan javtani tudjuk. Ezrt a (2.10) kplet t = 3 helyettestssel fels o becslst ad
a dekdolsi hibavalsznusgre. Innen Pe 0.000372 addik, azaz elfogadhatan
vlasztottuk a kdot.
2.81. megolds.
a) q = P{20 bjt hibtlan vtele} = (1 p) 160 ,
Pism (q) = 0 q + 1 (1 q)q + 2 (1 q)2 q + . . . = (1 q)/q ' 0.174.
b) q0 = q qACK , qACK = P{3 bjt hibtlan vtele} = (1 p)24 = 0.976,
Pism (q0 ) = 0.202.
2.82. megolds. q = P{N bjt hibtlan vtele} = (1 p) 8N , a ksleltets vrhat
rtke:
2T q + 4T (1 q)q + 6T (1 q)2 q + . . . = 2T /q.

2.12. sszefoglals
Ebben a fejezetben a hibakontroll kdols alapelveit, alapvet o konstrukciit s al-
kalmazsi terleteit tekintettk t. [2, 5, 6, 7, 9, 12, 13, 15, 17] Ezen kdols clja
az, hogy hibz csatornn keresztl is megbzhatan tudjunk zeneteket kldeni.
A clok s alapfogalmak tisztzsa utn el oszr a hibakontroll blokk-kdok
legfontosabb osztlyt, a lineris kdokat vezettk be, amelynl a kdszavak hal-
maza egy egyszeru algebrai struktrba, egy lineris trbe rendez odik. Ezzel mind
a kd generlsa, mind a dekdols feladata lnyegesen egyszerusdik az ltalnos
nemlineris kdokhoz kpest. A binris kd ltalnostsa a tetsz oleges vges test
feletti kd, amelynek felhasznlst el oszr egy egyszeru linris kdkonstukcin,
a tovbbiakban a ReedSolomon-kdokon szemlltettk. A ciklikus kdok beve-
zetse polinomalgebrai eszkztr felhasznlsval mg hatkonyabb kdok konst-
rukcijt teszi lehetov. Egy kd hibakontroll kpessgei vonatkozsban fontos
a kdtvolsg minl nagyobb rtke, de egy kd csak akkor lesz felhasznlhat a
gyakorlatban, ha hatkony dekdolsi algoritmust is tudunk adni hozz. Az alap-
veto dekdolsi mdszerekbe betekintst nyjtottunk, ahol a legfontosabb mdsze-
rnk a szindrma-dekdols tblzatos illetve algoritmikus mdja volt. Ismert k-
dokbl mint ptoelemekbol jabb, adott feladatra jobb kdot kszthetnk: ilyen
technikkat mutattunk a kdkombincik alfejezetben. Szmos fontos gyakorlati
alkalmazs [6, 8, 12] s nagy szm kidolgozott feladat zrta a fejezetet.

Irodalomjegyzk
[1] Bahl, L.R., Cocke, J., Jelinek, F., Raviv, J. Optimal decoding of linear codes
for minimizing symbol error rate. IEEE Transactions on Information Theory,
IT-20:248287, 1974.
Kdolstechnika - 2006 - crysys web vltozat - 6.

I RODALOMJEGYZK 73

[2] Berlekamp, E.R. Algebraic Coding Theory. McGraw Hill, 1968.

[3] Berlekamp, E.R. The technology of error-correcting codes. Proceedings of


the IEEE, 68, May, 1980.

[4] Berlekamp, E.R., Peile, R.E., Pope, S.P. The application of error control to
communications. IEEE Communications Magazine, 25, Apr, 1987.

[5] Blahut, R.E. Theory and Practice of Error Control Codes. Addison-Wesley,
1983.

[6] Csibi S. (szerk.) Informci kzlse s feldolgozsa. Tanknyvkiad, Buda-


pest, 1986.

[7] Csiszr I., Krner J. Information Theory: Coding Theorems for Discrete
Memoryless Systems. Akadmiai Kiad, Budapest, 1981.

[8] Doi, T. Error Correction for Digital Audio Recordings, No. 1991 AES 73.
Convention. Eindhoven, 1983.

[9] Gallager, R.G. Information Theory and Reliable Communication. Wiley,


1968.

[10] Gher K. (szerk.) Hradstechnika. Muszaki Knyvkiad, Budapest, 1993.

[11] Gyrfi L., Vajda I. A hibajavt kdols s a nyilvnos kulcs titkosts ele-
mei. Muegyetemi Kiad, Budapest, 1990.

[12] Gyrfi L., Gyori S., Vajda I. Informci- s kdelmlet. TypoTEX Kiad,
Budapest, 2002.

[13] MacWilliams, F.J., Sloane, N.J.A. The Theory of Error-Correcting Codes.


North-Holland, 1977.

[14] Massey, J.L. Applied Digital Information Theory. Course Notes, ETH Zrich,
1984.

[15] McEliece, R.J. The Theory of Information and Coding. Addison-Wesley,


1977.

[16] Niven, I., Zuckerman, H.S. Bevezets a szmelmletbe. Muszaki Knyvkia-


d, Budapest, 1978.

[17] Peterson, W.W. Error Correcting Codes. MIT Press Wiley, Cambridge,
1961.

[18] Vajda I. Hibajavt kdols s muszaki alkalmazsai. BME Mrnki To-


vbbkpzo Intzet, Budapest, 1982.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3. fejezet

Kriptogrfia

A kriptogrfia azon algoritmikus mdszerekkel foglalkozik, amelyek biztostjk a


kommunikci biztonsgt. Itt biztonsg alatt a szndkos tmadsokkal szem-
beni ellenllkpessget rtjk. A tmadsok lehetnek passzvak vagy aktvak.
Passzv tmads esetn a tmad nem avatkozik be szrevehet o mdon a rendszer
mukdsbe. Ennek tipikus pldja a kommunikci lehallgatsa, s ily mdon az
tvitt zenetek tartalmhoz trtn o illetktelen hozzfrs. Ezzel szemben, aktv
tmads esetn a tmad szrevehet o mdostsokat vgez a rendszerben, pldul
az tvitt zeneteket mdostja, esetleg trli, vagy csalrd mdon zeneteket fabri-
kl ms nevben. Jellegknl fogva, a passzv tmadsokat nehz detektlni, mg
az aktv tmadsokat nehz megakadlyozni. Ezrt a kriptogrfiai mdszerek a
passzv tmadsok megelozsre s az aktv tmadsok detektlsra trekszenek.
A kriptogrfia segtsgvel megvalsthat f obb biztonsgi szolgltatsok a k-
vetkezok:

Titkosts: A titkosts sorn az zeneteket oly mdon kdoljuk (rejtjelez-


zk), hogy az zenet megrtshez szksges dekdolst csak az arra illet-
kes felek tudjk elvgezni. gy az zenet tartalmhoz egy tmad nem tud
hozzfrni.

Integritsvdelem: Az integritsvdelem feladata az, hogy detektlhatv


tegye az zenetek szndkos mdostst. Ezt tipikusan gy rjk el, hogy
az zenetet egy kriptogrfiai ellen orzosszeggel egsztjk ki. Ez hasonlt a
hibadetektl kdols sorn alkalmazott ellen orzosszeghez (pl. CRC), m
azzal ellenttben a kriptogrfiai ellen orzosszeget csak az arra illetkes felek
tudjk kiszmolni. gy az zenet tartalmt egy tmad nem tudja szrevtle-
nl mdostani.

Hitelests: A hitelests lehet ov teszi egy zenet kldojnek megbzhat


azonostst. Ezen szolgltats segtsgvel teht detektlhat ha egy t-
mad ms nevben prbl zenetet kldeni.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 75

Y = EK(X)
X E D X = DK' (Y)

K K'

3.1. bra. A rejtjelezs klasszikus modellje

Letagadhatatlansg: A letagadhatatlansg szolgltats segtsgvel elr-


heto, hogy egy zenet kldoje ksobb ne tudja letagadni, hogy o kldte az
zenetet.

A tovbbiakban a fenti biztonsgi szolgltatsok megvalstshoz szksges


kriptogrfiai technikkat mutatjuk be, majd ezek gyakorlati alkalmazsait szemll-
tetjk a vals letbol vett pldkon.

3.1. Rejtjelezsi technikk

Alapfogalmak

A rejtjelezs egy olyan kdolsi transzformci, melynek segtsgvel az ze-


net kldoje az zenet tartalmt rthetetlenn teszi egy illetktelen lehallgat sz-
mra. A rejtjelezs klasszikus modelljt a 3.1. bra szemllteti. Ennek segtsgvel
vezetjk be a rejtjelezssel kapcsolatos alapfogalmakat.
Az elkldendo X zenetet nylt szvegnek nevezzk. A kld o a nylt szvegen
alkalmazza a rejtjelezs EK (.) kdol transzformcijt, melynek eredmnyeknt
eloll az Y = EK (X) rejtjeles szveg. A kldo tovbbtja a rejtjeles szvegetet a
nem biztonsgos csatornn. A vevo a DK 0 (.) dekodl transzformcit hasznlja
az eredeti nylt szveg visszalltsra: X = D K 0 (Y ). Mind a kdol, mind a dek-
dol transzformcinak kt bemente van: az X nylt illetve az Y rejtjeles szveg,
valamint a K kdol illetve a K 0 dekdol kulcs, melyeket a transzformcik inde-
xben szoks feltntetni. Fontos, hogy a dekdol kulcs rtke titkos, azt illetk-
telenek nem ismerik. Mivel a csatorna nem biztonsgos, ezrt egy tmad le tudja
hallgatni az Y rejtjeles szveget, m a K 0 dekdol kulcs ismeretnek hinyban
nem tudja abbl elolltani a nylt szveget.
A rejtjelezsnek tbb fajtja ltezik. Ha a kdol s a dekdol kulcsok meg-
egyeznek (azaz K 0 = K), vagy az egyik a msikbl knnyen szmthat, akkor
szimmetrikus kulcs rejtjelezsrol beszlnk. Ha a kdol s a dekdol kulcs
nem azonos (azaz K 0 6= K), s egymsbl nehezen szmolhatk, akkor aszimmet-
rikus kulcs rejtjelezsrol beszlnk.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 76

Szimmetrikus kulcs rejtjelezs esetn a kld onek s a vevonek meg kell egyez-
nie a K kdol/dekdol kulcsban. Ehhez valamilyen biztonsgos csatornt kell
hasznlniuk, hiszen ellenkezo esetben egy tmad is hozzjuthat a kulcshoz, s az-
zal dekdolni tudja a rejtjeles zeneteket. A gyakorlatban, a kulcsot vagy egy
fizikai tallkoz sorn hozzk ltre s teleptik a felek, vagy egy mr korbban
teleptett kulcs segtsgvel, rejtjelezett formban kzlik egymssal a kulcs rt-
kt. Ezek a mdszerek azonban nem minden alkalmazsban hasznlhatk. Ezzel
szemben, az aszimmetrikus kulcs rejtjelezs el onye, hogy a kldonek s a vevo-
nek nem kell egy kzs titokban megegyeznie a kommunikci el ott; elegendo,
ha a vevo nyilvnossgra hozza a kdol kulcst. A K kdol kulcs segtsgvel
brki kpes rejtjeles zeneteket el olltani a vevo szmra, m azokat csak a vevo
kpes dekdolni a K 0 titkos dekdol kulcsval. Ez a mukdsi elv megknnyti
a kulcscsere problma megoldst. Mivel az aszimmetrikus kulcs rejtjelezs ese-
tben a kdol kulcs nyilvnos, ezt a fajta rejtjelezst szoks nyilvnos kulcs
rejtjelezsnek is nevezni.
A szimmetrikus kulcs rejtjelezoket szoks tovbb osztlyozni kulcsfolyam
rejtjelezokre s blokkrejtjelezokre. A kulcsfolyam rejtjelezok a nylt szveget
karakterenknt dolgozzk fel. A karakterhossz vltoz, tipikus rtke 8 bit vagy
1 bit. A kulcsfolyam rejtjelezo lelke a kulcsfolyam genertor, mely egy valdi
vletlen vagy egy vletlennek tun o, n. lvletlen karaktersorozatot llt el o. Ezt
a sorozatot kulcsfolyamnak nevezzk. A kdols gy trtnik, hogy a kld o a
kulcsfolyam karaktereit bitenknt XOR-olja a nylt szveg karaktereivel, s gy
nyeri a rejtjeles szveg karaktereit. A dekdols hasonlkppen trtnik: a vev o
elolltja ugyanazt a kulcsfolyamot amit a kld o hasznlt a kdols sorn, majd ezt
bitenknt a rejtjeles szveghez XOR-olja. Az XOR muvelet tulajdonsgai miatt gy
pont a nylt szveget kapja vissza. Valdi vletlen kulcsfolyam hasznlata esetn,
a kulcs maga a kdolshoz s a dekdolshoz hasznlt kulcsfolyam. lvletlen
kulcsfolyam hasznlata esetn, a kulcs egy kis mretu (tipikusan 128 bites) titok,
melybol egy lvletlen genertor mind a kld o, mind a vevo oldaln ugyanazt az
lvletlen kulcsfolyamot lltja el o.
A blokkrejtjelezok ezzel szemben hosszabb blokkokban dolgozzk fel a nylt
szveget. Tipikus blokkmret a 64 bit vagy a 128 bit. A kld o kdols elott a nylt
szveget blokkokra osztja, majd a blokkokat kdolja a blokkrejtjelez o segtsgvel,
gy kapja a rejtjeles szveg blokkjait. A rejtjeles blokkok hossza megegyezik a nylt
blokkok hosszval. A dekdols sorn a vev o a blokkrejtjelezo inverzt hasznlja
a nylt blokkok rejtjeles blokkokbl trtn o visszalltshoz. A blokkrejtjelez o
s annak inverze bemenetknt kapja a kdol illetve a dekdol kulcsot, melynek
tipikus mrete 128 bit.
A rejtjelezok biztonsgt klnbzo tmadmodellekben szoktk vizsglni.
Ezek a kvetkezok:

Kizrlag rejtjeles szvegekre pl o tmads (ciphertext only attack):


Ebben a modellben a tmadnak csak rejtjeles szvegek llnak a rendelke-
zsre, melyek mind ugyanazzal a kulccsal lettek el olltva. Tipikusan ez
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 77

a helyzet, mikor a tmad csak lehallgatni kpes a kld o s a vevo kztti


csatornt.
Ismert nylt szveg rejtjeles szveg prokra pl o tmads (known
plaintext attack): Ebben a modellben azt felttelezzk, hogy a tmad
hozz tud jutni egymshoz tartoz nylt szveg rejtett szveg prokhoz,
ahol minden pr esetben ugyanazt a kulcsot hasznlta a kld o a rejtett sz-
veg elolltshoz. Bizonyos esetekben, ilyen prokhoz egyszeru lehallga-
tssal is hozzjuthat a tmad (pl. egy kihvsvlasz tpus partnerhitelest o
protokoll hasznlata esetn).
Vlasztott nylt szvegekre pl o tmads (chosen plaintext attack): Ez
mr egy erosebb tmad modell abban az rtelemben, hogy ebben a mo-
dellben felttelezzk, hogy a tmad nemcsak lehallgatni kpes a csatornt,
hanem valamilyen mdon r tudja venni a kld ot, hogy brmely a tmad l-
tal vlasztott nylt szveget rejtjelezze. Azt szoktk mondani, hogy a tmad
rejtjelezo orkulumknt hasznlja a kldot. Ezen modell egyszeru vltozata
az, mikor a tmad csak egyszer hvhatja meg az orkulumot, s ezzel a h-
vssal az sszes kdoltatni kvnt nylt szveget egyszerre tadja, majd az
sszes rejtett szveget egyszerre megkapja. Ennek a modellnek ltezik egy
adaptv vltozata is, amikor a tmad tbbszr hvhatja meg az orkulomot,
s minden hvsnl adaptvan vlaszthatja a kdoltatni kvnt nylt szveget
az elozo hvsok eredmnyeit is figyelembe vve. A gyakorlatban, rejtjele-
zst vgzo reaktv eszkzk hasznlhatk rejtjelez o orkulumknt. Tipikus
plda egy partnerhitelestst vgz o szerver vagy intelligens chip-krtya.
Vlasztott rejtjeles szvegekre pl o tmads (chosen ciphertext attack):
Ez a modell nagyban hasonlt az elozohz azzal a klnbsggel, hogy itt a
tmad egy dekdol orkulumot hasznl, s ennek ad t dekdoltatni kvnt
rejtjeles szvegeket. Ennek a modellnek is ltezik egyszeru s adaptv vl-
tozata is. A gyakorlatban, dekdolst vgz o reaktv eszkzk hasznlhatk
dekdol orkulumknt.
sszefggo kulcsokra plo tmads (related keys attack): Ez a modell
abban klnbzik az elozoektol, hogy itt a tmad olyan rejtett szvegeket,
vagy nylt szveg rejtett szveg prokat hasznl a tmadsban, melyek
mind klnbzo kulccsal lettek elolltva, m felttelezzk, hogy ezen kul-
csok kztt ltezik valamilyen kapcsolat, s ez a tmad szmra is ismert.
Tipikus plda mikor a tmad ismeri a kulcsok XOR klnbsgt.
Minden fent emltett modellben a tmad clja a kulcs (sszefgg o kulcsokra
plo tmads esetn a kulcsok) megfejtse. Minden modell felttelezi tovbb,
hogy a kdol s a dekdol transzformci mukdse (maga az algoritmus) ismert
a tmad szmra. Ez utbbi felttelezst Kerckhoff-elvnek 1 nevezik.
1 Auguste Kerckhoff francia kriptogrfus utn, aki ezen feltevs gyakorlati fontossgt mr 1883-

ban hangslyozta La cryptographie militaire cmu tanulmnyban.


Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 78

Egy rejtjelezo biztonsgos egy adott tmadmodellben, ha az adott modell l-


tal megengedett kpessgekkel rendelkez o tmad nem kpes a rejtjelezot feltrni,
azaz hatkony mdszert tallni a kulcs szisztematikus megfejtsre. Attl fgg oen,
hogy hogyan rtelmezzk a nem kpes kifejezst, ktfle biztonsg-fogalmat k-
lnbztethetnk meg: a felttel nlkli s a feltteles, vagy algoritmikus bizton-
sgot. A felttel nlkli biztonsg azt jelenti, hogy a tmad tetsz oleges nagysg
eroforrs mellett sem kpes feltrni a rejtjelez ot. Ezzel szemben, algoritmikus biz-
tonsg esetn a rejtjelezo csak addig nem trheto fel, amg a tmad eroforrsa
egy megadott korlt al esik. Eroforrs alatt itt a trkapacitst, a futsi id ot, vagy a
tmadshoz szksges adatok mennyisgt (pl. nylt szveg rejtett szveg prok
szmt), illetve ezek egyttest rtjk.
Taln meglepo, de lteznek felttel nlkl biztonsgos rejtjelez ok. Ilyen pl-
dul a one-time pad (OTP), melyet ks obb rszletesen trgyalunk. A legtbb
gyakorlatban hasznlt rejtjelezo azonban nem felttel nlkl biztonsgos. Ezen
rejtjelezok biztonsgt gy szoktk jellemezni, hogy a jelenleg ismert tmadsi
mdszerekkel s a ma tipikusan felttelezhet o eroforsokkal nem trhetok fel. Elo-
fordulhat azonban, hogy felfedeznek egy j tmadsi mdszert, vagy drasztikus
vltozs kvetkezik be a szmtgp-technolgiban (pl. megptik a gyakorlatban
is hasznlhat kvantumszmtgpet), s egy korbban felttelesen biztonsgosnak
tartott rejtjelezo az j krlmnyek kztt feltrhet ov vlik.
Vgl megjegyezzk, hogy minden algoritmikusan biztonsgos rejtjelez o ki
van tve a kimerto kulcskeress tmadsnak. Ez a tmads abbl ll, hogy a
tmad az sszes lehetsges kulcsot kiprblja mindaddig amg az ppen hasznlt
kulcsot meg nem tallja. A csak rejtjeles szvegek ismerett felttelez o tmadmo-
dellben ez azt jelenti, hogy a tmad addig prblkozik, mg meg nem tallja azt
a kulcsot, mely minden rendelkezsre ll rejtett szveget rtelmes nylt szvegbe
dekdol. Hasonlkppen, az ismert nylt szveg rejtett szveg prokat felttelez o
modellben, a tmad addig prblkozik, mg meg nem tallja azt a kulcsot, amelyik
minden pr nylt szvegt az adott pr rejtjeles szvegbe kdolja. Ahhoz, hogy a
kimerto kulcskeress tmads hatstalan legyen (azaz a rejtjelez o algoritmikusan
biztonsgos maradjon) a lehetsges kulcsok szmnak, ms szavakkal, a kulcstr
mretnek elegendoen nagynak kell lennie. Ezrt van az, hogy a mai tipikus kulcs-
mret (szimmetrikus kulcs rejtjelez ok esetn) 128 bit, azaz a kulcstr mrete 2 128 .
sszehasonltsul, az univerzum becslt letkora 2 59 msodperc, a Fldn tall-
hat atomok becslt szma pedig 2170 . Fontos azonban megrteni, hogy a kulcstr
nagy mrete csak szksges felttele az algoritmikus biztonsgnak. Elkpzelhet o
ugyanis, hogy a rejtjelezo valamely algebrai tulajdonsgt kihasznlva a rejtjelez o
sikeresen feltrheto annak ellenre, hogy kulcstere megfelel oen nagy. Erre ksobb
mutatunk majd pldt.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 79

Trtnelmi pldk

Ebben a szakaszban nhny egyszeru rejtjelez ot mutatunk be melyek kzl


prat a trtnelem valamely korbbi szakaszban a gyakorlatban is hasznltak a
diplomciai vagy a taktikai kommunikci vdelmre.

A shift rejtjelezo. A shift rejtjelezo esetn a nylt s a rejtett zenetek tert az


bc betui alkotjk. Az egyszerusg kedvrt tegyk fel, hogy ez a 26 elemu
angol bc. Ezen bc betuivel muveleteket szeretnnk vgezni, s ennek rdek-
ben minden betuhz egy szmrtket rendelnk, mghozz az bcben elfoglalt
helynek sorszmt, ahol a szmozst a 0-tl kezdjk. gy pldul az A betu rtke
0, a B betu rtke 1, stb. Az bct alkot betuk halmazt ennek megfelel oen a Z26
halmazzal, azaz a modulo 26 egsz szmok halmazval reprezentljuk.
A shift rejtjelezo k kdol kulcsa a Z26 halmaz valamely eleme. A rejtjelezs
abbl ll, hogy k-t modulo 26 hozzadjuk az x nylt zenethez. Vagyis a rejtjeles
zenet y = (x + k) mod 26 formban ll el o. A dekdols ennek megfeleloen a
kvetkezo: x = (y k) mod 26. Mivel a k = 0 kulcs az identits transzformcira
vezet, ezrt azt kizrjuk a lehetsges kulcsok halmazbl. gy a shift rejtjelez o
kulcsternek mrete |Z26 | 1 = 25.
A shift rejtejelezovel hosszabb szvegeket is rejtjelezhetnk gy, hogy a sz-
veg betuit kln-kln kdoljuk a k kulcs hozzadsval. lltlag ezt a md-
szert hasznlta Julius Caesar hadvezreinek sznt zenetei titkostsra (k = 3 fix
kulccsal).

3.1. plda. Rejtjelezzk a VENIVIDIVICI zenetet a k = 3 kukccsal! Ellen oriz-


zk, hogy a rejtjeles szveg a kvetez o lesz: YHQLYLGLYLFL.

Lthat, hogy a shift rejtjelezot ily mdon hosszabb szvegek rejtjelezsre


hasznlni nem biztonsgos, mert a kulcstr kis mrete miatt, az sszes lehetsges
dekdol kulcs gyorsan kiprblhat. A helyes dekdol kulcsot akkor talltuk
meg, mikor az adott kulccsal vgrehajtott dekdols eredmnye rtelmes nylt sz-
veg.

Monoalfabetikus helyettests. A monoalfabetikus rejtjelez o nylt s rejtett ze-


neteinek tere szintn a Z26 halmaz. Most azonban a kdol kulcs a Z 26 elemeinek
valamely P permutcija. A kdols gy trtnik, hogy az x nylt betut a P(x)
betuvel helyettestjk, azaz y = P(x), ahol P(x) az a betu amit a permutci x-hez
rendel. A dekdolshoz szksgnk van a P permutci P 1 inverzre. A dekdo-
lst az x = P1 (y) kifejezs definilja.
A shift rejtjelezohz hasonlan, a monoalfabetikus rejtjelezs is hasznlhat
hosszabb szvegek rejtjelezsre a szveg betuinek kln-kln trtn o helyette-
stsvel.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 80

3.2. plda. Tekintsk a Z26 albbi P permutcijt:

{T, Q, L, R, B, W, J, G, F, Y, N, C, P, E, K, S, D, U, V, I, X, M, Z, A, H, O}

Ekkor pldul P(A) = T, P(B) = Q, P(C) = L, stb. A VENIVIDIVICI zenethez


tartoz rejtjeles szveg pedig MBEFMFRFMFLF lesz.

A kulcstr mrete most 26!, ami risi szm, ezrt a kimert o kulcskeress nem
hasznlhat. Vegyk szre azonban, hogy a monoalfabetikus helyettests meg-
tartja az eredeti szveg betustatisztikjt, s ezt sikerrel hasznlhatjuk ki a rejtjeles
zenetek megfejtsnl.
Minden nyelvnek van egy jellegzetes betustatisztikja, azaz egy tlagos sz-
vegben minden betu az adott nyelvre jellemz o valsznusggel fordul elo. Pldul
az angol nyelvben a leggyakoribb betu az E (12.7%), majd a T (9.1%). A leg-
ritkbban elofordul betuk a Z (0.1%) s a J (0.2%). Ezrt ha egy tlagos angol
szveget rejtjeleznk egy monoalfabetikus rejtjelez ovel, akkor a kdolt szvegben
leggyakrabban elofordul betu nagy valsznusggel az E betu kdoltja, a kvet-
kezo leggyakoribb betu valsznuleg a T kdoltja, stb. Ez a betustatisztikra pl o
fejtsi mdszer az esetek tbbsgben sikerre vezet a monoalfabetikus rejtjelez o
esetben.
A monoalfabetikus rejtjelezo fontos tanulsga, hogy a kulcstr mretnek nagy-
sga mg nem garancia a rejtjelezo erossgre vonatkozan. Azaz, ahogy ezt ko-
rbban mr emltettk, a kulcstr nagy mrete csak a biztonsg szksges felttele.

Polialfabetikus helyettests. A polialfabetikus rejtjelez o hasonlt a monoalfa-


betikus rejtjelezohz, a klnbsg az, hogy a polialfabetikus rejtjelez o a nylt sz-
veg minden betujt ms permutcit hasznlva helyettesti. Ennek egyszeru pldja
a Vigenre-rejtjelezo2 . A Vigenre-rejtjelezo mukdsnek megrtshez tekint-
sk a 3.2. bra tblzatt.
A tblzat minden sora az bc klnbz o mrtku eltolsbl ll, tovbb a
tblzat sorai s oszlopai az bc betuivel vannak indexelve. Minden nylt betu
helyettestsnl ms sort hasznlunk, melyet a kulcs hatroz meg. A kulcs ltal
kijellt sorbl a nylt betunek megfelel o oszlopban tallhat betut hasznljuk a
nylt betu helyettestsre.

3.3. plda. Legyen a kulcs a CAESAR sz. Ekkor a VENIVIDIVICI szveget a k-


vetkezo mdon rejtjelezzk. Eloszr a kulcsszt megismteljk annyiszor, hogy
az zenet hosszval megegyezo betusorozatot kapjunk. Esetnkben ez a sorozat a
CAESARCAESAR lesz. Tekintsk a fenti tblzatban az els o kulcsbetu ltal megcm-
zett sort, s az elso nylt betu ltal megcmzett oszlopot. Jelen esteben ez a tblzat
(C, V) eleme, melynek rtke X. Teht az els o rejtjeles betu az X lesz. Ezutn te-
kintsk a tblzatban a msodik kulcsbetu ltal megcmzett sort, s a msodik nylt
2 Blaise de Vigenre utn, aki a mdszert 1586-ban publiklta Traict des Chiffres cmu rtekez-
sben.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 81

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

3.2. bra. A Vigenre-rejtjelezo

betu ltal megcmzett oszlopot. Jelen esteben ez a tblzat (A, E) eleme, melynek
rtke E. Teht a msodik rejtjeles betu az E lesz, stb. A VENIVIDIVICI szveghez
tartoz rejtjeles szveg a XERAVZFIZACZ.

Figyeljk meg, hogy a fenti pldban a nylt szveg azonos betuit klnbz o
rejtjeles betukkel helyettestettk. Pldul a V betuket rendre X, V, s Z betukkel
helyettestettk. Ez annak ksznhet o, hogy polialfabetikus rejtjelezs esetn min-
den nylt betut ms permutci segtsgvel helyettestnk, amit a kulcs hatroz
meg. Emiatt az egyszeru betustatisztikra pl o feltrsi mdszernk most nem
hasznlhat kzvetlenl.
A Vigenre-rejtjelezot a kzpkorban hasznltk s sokig feltrhetetlennek
gondoltk, mg vgl Friedrich Kasiski porosz katonatiszt 1863-ban publiklt egy
trsi mdszert3 . A mdszer lnyege, hogy eloszr azonostja a kulcssz hosszt
3 lltlag Charles Babbage ennl korbban feltrte a Vigenre-rejtjelezot, de nem publiklta

mdszert.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 82

a rejtjeles szveg jellemzoi periodicitsnak megllaptsval. Ha a kulcshossz k,


akkor minden k. nylt betu ugyanazon permutci segtsgvel van helyettestve.
gy ha minden k. betut tekintnk, akkor lnyegben monoalfabetikus helyettestst
kapunk, s erre mr a korbban bemutatott fejtsi mdszer alkalmazhat.

Az affin rejtjelezo. Az affin rejtjelezo nylt zeneteinek s rejtett zeneteinek


tere a Z26 halmaz. A kdolsi transzformcit az y = (a x + b) mod 26 kifejezs
definilja, ahol az (a, b) Z26 Z26 pr a kdol kulcs.
A dekdolshoz szksgnk van a inverzre, azaz arra az a 1 Z26 elemre,
melyre (a a1 ) mod 26 = 1. Ismert, hogy Z26 felett csak azoknak az a elemknek
ltezik inverze, melyek relatv prmek a 26-hoz, azaz melyekre (a, 26) = 1. Ezen
elemek szma (26) = 12. A kulcstr teht az {(a, b) Z 26 Z26 : (a, 26) = 1}
prok halmaza, s a kulcstr mrete 12 26 = 312.
Tegyk fel teht, hogy a-nak ltezik a 1 inverze. Ekkor a dekdol transzfor-
mci a kvetkezo: x = (a1 (y b)) mod 26.
Az affin rejtjelezo knnyen feltrheto. Ha a tmadnak lehetosge van vlasz-
tott nylt szveges tmadsra, akkor kdoltatja az x 1 = 0 (= A) s az x2 = 1 (= B) be-
tuket. Ezzel hozzjut az y1 = (a 0 + b) mod 26 = b s az y2 = (a 1 + b) mod 26 =
(a + b) mod 26 rtkekhez. Ezekbol b = y1 s a = (y2 y1 ) mod 26.
Tegyk most fel, hogy a tmad hozzjutott kt ismert nylt szveg rejtett
szveg prhoz, (x1 , y1 )-hez s (x2 , y2 )-hz. Ekkor y1 = (a x1 + b) mod 26 s y2 =
(a x2 + b) mod 26. Ebbol

y1 y2 a(x1 x2 ) (mod 26)

azaz
a = (y1 y2 ) (x1 x2 )1 mod 26
s
b = (y1 a x1 ) mod 26 = (y1 (y1 y2 ) (x1 x2 )1 x1 ) mod 26
feltve, hogy (x1 x2 )1 ltezik.

3.4. plda. Tegyk fel, hogy a tmad megszerzi a kvetkez o kt prt: (x1 , y1 ) =
(F, E) = (5, 4) s (x2 , y2 ) = (C, U) = (2, 21). Ekkor

a = (4 21) (5 2)1 mod 26 = 9 31 mod 26 = 9 9 mod 26 = 3

s
b = (4 3 5) mod 26 = 11 mod 26 = 15
A kdol kulcs teht (a, b) = (3, 15).
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 83

n tr,
A Hill-rejtjelezo. A Hill-rejtjelezo nylt s rejtjeles zeneteinek tere a Z 26
ahol n egy rgztett pozitv egsz. A kulcstr a Z 26 feletti n n-es invertlhat
mtrixok halmaza. A kdolst az y = x A kifejezs definilja, ahol A a kulcsmt-
rix, s a muveleteket modulo 26 vgezzk. A dekdolst az x = y A 1 kifejezs
adja meg, ahol A1 az A mtrix inverze modulo 26.

3.5. plda. Legyen n = 2. Rejtjelezzk a JULY szveget a kvetkez o kulccsal:


 
11 8
A=
3 7

Mivel n = 2, ezrt a nylt szveget 2 hossz vektorokra kell bontanunk:

JULY (9, 20); (11, 24)

Ezutn elvgezzk a szorzsokat (modulo 26):


 
11 8
(9, 20) = (99 + 60 mod 26, 72 + 140 mod 26) = (3, 4)
3 7

s
 
11 8
(11, 24) = (121 + 72 mod 26, 88 + 168 mod 26) = (11, 22)
3 7

Az erednyl kapott rejtjeles szveg teht:

(3, 4); (11, 22) DELW

Bizonyts nlkl kzljk a kvetkez o kt ttelt, melyek a Hill rejtjelez o de-


kdol kulcsnak kiszmtshoz nyjtanak segtsget:

3.1. ttel. Egy A mtrix akkor s csak akkor invertlhat Z k felett, ha (k, det A) =
1.

3.2. ttel. Az A mtrix Zk feletti inverze a kvetkezokppen szmolhat:

A1 = (det A)1 A (3.1)

ahol az A az A adjunglt mtrixa, azaz


 
ai j = (1)i+ j det A ji (3.2)

ahol A ji az a mtrix amelyet A-bl nyernk a j. sor s az i. oszlop trlsvel.


Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 84

Alkalmazzuk a fenti ttelt az n = 2 esetre, azaz amikor A a kvetkez o alak:


 
a11 a12
A=
a21 a22

Ekkor  
a22 a12
A = (3.3)
a21 a11
s  
1 1 a22 a12
A = (det A) (3.4)
a21 a11

3.6. plda. Szmoljuk ki az elozo pldban hasznlt A mtrix inverzt!


 
11 8
A=
3 7

det A = (11 7 3 8) mod 26 = 1

(det A)1 = 1

   
1 7 8 7 18
A = =
3 11 23 11

Kulcsfolyam rejtjelezok

A kulcsfolyam rejtjelezok a nylt szveget karakterenknt kdoljk, mgpedig


gy, hogy a nylt szveg karaktereit kombinljk a kulcsfolyam karaktereivel. Ez
a kombinci tipikusan a (bitenknti) XOR muveletet jelenti. A kulcsfolyamot a
kulcsfolyam genertor lltja elo egy belso llapotbl. A genertor minden kulcs-
karakter elolltsa utn frissti a belso llapott, gy a kvetkezo kulcskaraktert
mr ebbol a friss llapotbl szmolja. A kezd o llapotot egy kzs titokbl lltja
elo a kldo s a vevo.
A belso llapot frisstsnek mdjtl fgg oen megklnbztetnk szinkron
s nszinkronizl kulcsfolyam rejtjelez oket. Szinkron rejtjelezok esetben, a
kvetkezo llapot csak az elozo llapottl vagy llapotoktl fgg, mg nszinkro-
nizl rejtjelezo esetn a kvetkezo llapot fgg a rejtjeles karakterekt ol (s azon
keresztl a nylt szvegtol). A szinkron s az nszinkronizl kulcsfolyam rejtje-
lezok mukdsi vzlatt a 3.3. bra szemllteti.
Szinkron kulcsfolyam rejtjelezok esetben gyelni kell arra, hogy a kld o s a
vevo llapota szinkronban legyen. Ellenkez o esetben a vevo nem a megfelelo lla-
potbl generlja a vett rejtjeles karakter dekdolshoz szksges kulcskaraktert,
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 85

bels llapot frissts bels llapot frissts

kulcskarakter kulcskarakter
generls generls

kulcskarakter kulcskarakter
nylt karakter rejtjeles karakter nylt karakter rejtjeles karakter

3.3. bra. A szinkron (bal oldali bra) s az nszinkronizl (jobb oldali bra)
kulcsfolyam rejtjelezok mukdsi vzlata.

s a dekdols eredmnytelen lesz. nszinkronizl kulcsfolyam rejtjelez ok eset-


ben megfelelo szm helyesen vett rejtjeles karakter automatikusan szinkronizlja
a kldo s a vevo llapott. Ezekbol a tulajdonsgokbl szrmazik a szinkron s
az nszinkronizl elnevezs.
Szoftver megvalsts esetn a rejtjelez o llapott egy belso vltozban trol-
juk. Pldul a szoftver megvalstsra tervezett RC4 rejtjelez o esetben a belso
llapot az sszes lehetsges bjt egy permutcija, melyet egy 256 elemu bjt-
tmbben trolunk, s kt egybjtos index vltoz. gy a bels o llapot trolsra
258 bjtra van szksg, s a rejtjelez o llapotternek mrete 216 256!.
Hardver megvalsts esetn a bels o llapotot regiszterekben troljuk. En-
nek tipikus pldja a linerisan visszacsatolt shift-regiszter (Linear Feedback Shift
Register LFSR) hasznlata. Mivel az LFSR-re pl o rejtjelezok a gyakorlatban
igen elterjedtek, ezrt ezeket a kvetkez o szakaszban kicsit rszletesebben trgyal-
juk.

LFSR alap kulcsfolyam rejtjelezok


A linerisan visszacsatolt shift-regiszter mukdst a 3.4. brn vzoltuk. A shift-
regiszter rekeszeiben trolt bitek reprezentljk az aktulis bels o llapotot. A shift-
regisztert indulskor egy kezdortkkel tltjk fel. Ezutn, minden temben, ki-
szmtjuk a rekeszek tartalmnak egy linerkombincijt, s az eredmnyt balrl
belptetjk a shift-regiszterbe. Ennek hatsra minden rekesz tartalma a t ole jobbra
tallhat rekeszbe msoldik, a jobb szls o rekesz tartalma pedig az LFSR kime-
netre kerl. Ily mdon az LFSR minden temben egy bit kimenetet generl, s a
visszacsatolson keresztl frissti bels o llapott.
Ha az LFSR-t kulcsfolyam genertorknt szeretnnk hasznlni, akkor a vissza-
csatols mdjt titokban tartjuk, azaz azt csak a kld o s a vevo ismeri. Azonos
kezdollapotbl indulva gy a kldo s a vevo LFSR-e ugyanazt a bitsorozatot ge-
nerlja, mely kulcsfolyamknt hasznlhat. Azt remljk tovbb, hogy a vissza-
csatols ismeretnek hinyban egy tmad nem tudja el olltani az LFSR kime-
netn megjeleno kulcsfolyamot.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 86

...

a0 & a1 & a2 & aL-2 & aL-1 &

x0 x1 x2 ... xL-2 xL-1 kimenet

3.4. bra. A linerisan visszacsatolt shift-regiszter mukdsi vzlata.

Sajnos a fent vzolt, egyetlen LFSR-re pl o kulcsfolyam rejtjelezo nem biz-


tonsgos. Ennek elmagyarzshoz be kell vezetnnk egy bitsorozat lineris komp-
lexitsnak fogalmt, s egy kapcsold ttelt:

3.1. definci. Egy bitsorozat lineris komplexitsa alatt a sorozatot el ollt leg-
rvidebb LFSR hosszt rtjk.

3.3. ttel. Tekintsnk egy s binris sorozatot, melynek lineris komplexitsa L.


Ekkor s egy legalbb 2L hosszsg rszsoroztbl megkonstrulhat az az LFSR,
mely elolltja az s sorozatot.

Legyen a rejtjelezshez hasznlt LFSR hossza L 0 . Ezen LFSR ltal elolltott


binris sorozat L lineris komplexitsra nyilvn teljesl, hogy L L 0 . A fenti ttel
rtelmben teht, ha a tmad megfigyel az LFSR kimenetn 2L 0 egymsutni bitet,
akkor meg tudja konstrulni az LFSR-t, azaz meg tudja fejteni a visszacsatols
mdjt, ami jelen esetben maga a titkos kulcs. Vegyk szre tovbb, hogy az
LFSR kimenete egy nylt szveg rejtett szveg prokat hasznl tmads esetn
egyszeruen a nylt s a rejtett szvegek XOR sszegeknt szmolhat.
A fenti gyengesg miatt, a gyakorlatban hasznlt LFSR alap rejtjelez ok nem
egyetlen LFSR-t hasznlnak, hanem tbb LFSR kimenett kombinljk egy nem-
lineris fggvny segtsgvel.

A one-time pad
A one-time pad (OTP) egy olyan kulcsfolyam rejtjelez o, ahol a K kulcsfolyam egy
igazi vletlen bitsorozat. Rejtjelezsnl ezt XOR-oljuk az X nylt szveg bitjeihez,
s gy kapjuk az Y rejtjeles szveg bitjeit. Azaz Y = X K. Dekdolsnl ha-
sonlkppen jrunk el, s az XOR muvelet tulajdonsgai miatt visszakapjuk a nylt
szveget: Y K = X K K = X.
A one-time pad segtsgvel tkletes titkostst valsthatunk meg, ahol a
tkletes titkostst a kvetkezokppen definiljuk:

3.2. definci. Tkletes titkostsrl akkor beszlnk, ha a tmad a rejtett sz-


veg megfigyelsvel nem jut tbb informcihoz a nylt szveget illetoen, mint
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 87

amennyi informci birtokban a rejtett szveg megfigyelse elott volt. Formli-


san, tkletes titkosts esetn, a nylt szveget s a rejtett szveget reprezentl
valsznusgi vltozk fggetlenek.

Pldul, ha minden nylt szveg egyforma valsznusggel fodul el o, akkor t-


kletes rejtjelezs esetn, a tmad megfigyeli a rejtett szveget, s tovbbra is min-
den nylt szveg egyforma valsznusgu szmra. Azaz a megfigyelssel nem jut
tbb informcihoz, s tovbbra sem tudja eldnteni, hogy melyik nylt szveget
rejtjeleztk.
Sajnos a one-time pad esetn minden egyes zenet rejtjelezshez vletlenl
sorsolt j kulcs szksges, melynek mrete lnyegben megegyezik az zenet m-
retvel. Ezt az lltst pontostja a kvetkez o ttel:

3.4. ttel. A tkletes titkosts szksges felttele, hogy a kulcs hossza legalbb
akkora legyen, mint a tmrtett nylt szveg hossza.

A fenti ttel alapjn, a tkletes titkostshoz egy az zenet mretvel meg-


egyezo hosszsg titkos kulcsot kell biztonsgosan eljuttatni a kld otol a vevo-
hz. Ha erre a clra ltezne titkostott csatorna a kld o s a vevo kztt, akkor
azon maga a rejtjelezni kvnt zenet is tovbbthat lenne. Csak arrl lehet teht
sz, hogy a kldo s a vevo a kommunikci elott elore megllapodik a ksobbi
kommunikcihoz szksges mennyisgu vletlen kulcsbitben. Pldul, szem-
lyesen tallkoznak, s a kldo valamilyen adathordozn tadja a ks obb hasznlni
kvnt kulcsbiteket. Ez nyilvnvalan nagy mrtkben szukti a tkletes titkosts
gyakorlati alkalmazhatsgnak krt.

Szimmetrikus kulcs blokkrejtjelezok

A blokkrejtjelezo egy E : {0, 1}n {0, 1}k {0, 1}n transzformci, amely az
n bites nylt blokkot s a k bites kulcsot az n bites rejtett blokkba transzformlja.
Rgztett kulcs mellett az E transzformcinak termszetesen invertlhatnak kell
lennie, klnben a rejtjeles blokkbl nem tudnnk egyrtelmuen visszalltani a
nylt blokkot. A fent definilt blokkrejtjelez ot teht gy is tekinthetjk, mint az
EK : {0, 1}n {0, 1}n invertlhat lekpezsek egy csaldjt, ahol a csald egyes
elemeit a K {0, 1}k kulcs vlasztja ki. Az EK transzformci invertlhatsgbl,
valamint a bemenet s a kimenet mretnek azonossgbl kvetkezik, hogy E K
egy permutcit hatroz meg az n bites binris vektorok halmazn.
A blokkrejtjelezovel szemben tmasztott minimlis tervezsi kvetelmnyek a
kvetkezok:

Statisztikai fggetlensg: Ne legyen egyrtelmu statisztikai kapcsolat a


nylt blokkok s a rejtjeles blokkok kztt.

Teljessg: A kimenet minden bitje minden bementi bitt ol s minden kulcs-


bittol fggjn.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 88

Lavinahats: Ha a bemeneten egy bitet megvltoztatunk, akkor a kimene-


ten minden bit kzel 12 valsznusggel vltozzon meg. Ez a kvetelmny
azt biztostja, hogy a blokkrejtjelez o majdnem azonos nylt szvegeket is
teljesen eltro rejtett szvegekbe kdol. gy pldul eltr o sorszmmal ren-
delkezo, de azonos tartalm zenetek a rejtett szvegek megfigyelse alap-
jn nem csoportosthatk. Hasonlkppen, szeretnnk, ha egy kimeneti bit
megvltoztatsa nem prediklhat vltozsokat eredmnyezne a bemeneten.

A legtbb gyakorlatban hasznlt blokkrejtjelez o szorzat rejtjelezo. A szorzat


rejtjelezok nmagukban egyszeru transzformcik egymsutn tbbszri alkalma-
zsval prbljk meg elrni, hogy az eredmnyl kapott transzformci (az egy-
szeru transzformcik szorzata) kielgtse a fenti kritriumokat. A szorzat rejtjele-
zoben hasznlt egyszeru transzformcik lehetnek egyszeru logikai s aritmetikai
muveletek, kis mretu helyettestsek, vagy bitpermutcik. Nyilvnval azonban,
hogy ezek tetszoleges kombincija nem fog biztonsgos blokkrejtjelez ot eredm-
nyezni. A blokkrejtjelezo tervezse nagy szakrtelmet ignyel, s nem tancsos azt
hozz nem rtore bzni.
A szorzat rejtjelezok egyik gyakori tpusa a helyettestses-permutcis rejt-
jelezo (substitution-permutation, vagy rviden SP rejtjelez o), mely kis mretu he-
lyettestsek s nagy mretu bitpermutcik sorozatbl ll. Ennek jellegzetes
pldja a DES, amelyet ksobb rszletesen ismertetnk. A klasszikus SP rejtje-
lezo felptse a 3.5. brn lthat. A bemenetre kerl o nylt blokk permutcis
s kulcsvezrelt helyettesto rtegeken keresztl jut el a kimenetre. A permut-
cis rteg egyetlen P bitpermutcibl (n. P-dobozbl) ll. A helyettest o rteg
tbb kis mretu Si helyettesto transzformcibl (n. S-dobozbl) pl fel, melyek
mindegyike tbb helyettesto tblt tartalmaz. Az S-dobozba bevezetett kulcsbitek
hatrozzk meg, hogy melyik tblt kell hasznlni a kdols sorn.
A permutcik s helyettestsek egymsutni hasznlatnak clja a lavinaha-
ts elrse. Ha pldul az S-dobozok olyanok, hogy tetsz oleges bemenet esetn
a bemeneten egy bit megvltoztatsa a kimeneten legalbb kt bit megvltozst
okozza, akkor az elso rteg bemenetn fellpo egy bit vltozs az elso helyette-
sto rteg kimenetn legalbb 2 bit vltozst eredmnyezi, amit a bit permutci
sztszr a teljes blokkon, gy azok tipikusan a kvetkez o rteg kt klnbzo S-
doboznak bemenetre kerlnek. A msodik rteg kimenetn gy mr legalbb 4
bit vltozik meg, s gy tovbb. Az eredmny az lesz, hogy egymshoz Hamming-
tvolsgban kzeli nylt szveg blokkok lvletlen mdon tipikusan tvolra kerl-
nek egymstl.
Fontos tovbb, hogy az S-dobozok nemlineris lekpezst valstsanak meg,
azaz a rejtett szveg vektor a nylt szveg vektorbl egy binris mtrixszal tr-
tno szorzssal ne legyen elollthat. Ellenkezo esetben a teljes rejtjelezo lineris
transzformcit valstana meg, hiszen a bitpermutcik lineris lekpezsek. A
klasszikus trtnelmi pldk trgyalsa sorn azonban lttuk, hogy a lineris rejt-
jelezok knnyen feltrhetoek.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 89

nylt blokk kulcs


... ... ...

S1 S2 Sq
... ... ...

P
... ... ...

k u l cs t e m e z
S1 S2 Sq
... ... ...

P
...

... ... ...

S1 S2 Sq
... ... ...

P
... ... ...
rejtjeles blokk

3.5. bra. A klasszikus helyettestses-permutcis rejtjelez o felptse.

A DES blokkrejtjelezo
A DES (Data Encrytpion Standard) a legismertebb helyettestses-permutcis
blokkrejtjelezo, melyet az IBM szakemberei fejlesztettek ki a hetvenes vekben.
Ksobb a vilg tbb orszgban szabvnyknt fogadtk el, s azta is hasznl-
jk. A DES egy jl megtervezett blokkrejtjelez o, legalbbis nem ismert ellene
olyan igazn hatkony tmads mely valamilyen tervezsi gyengesget hasznlna
ki. Ugyanakkor, a DES 56 bites kulcsmrete miatt ma mr nem zrhat ki a kime-
rto kulcskeress mint hatkony tmads a DES ellen. Ezen problma megoldsra
2001-ben j blokkrejtjelezo szabvnyt fogadtak el, melynek kulcsmrete legalbb
128 bit. Ez az j blokkrejtjelezo, melyet AES-nek (Advanced Encryption Stan-
dard) hvnak, fokozatosan felvltja a DES-t a klnbz o alkalmazsokban. Az
AES-t a DES utn trgyaljuk majd.
A DES struktrja a 3.6. brn lthat. A bemenet s a kimenet mrete 64 bit, a
kulcs 56 bites. A rejtjelezo 16 rtegbol ll, ahol a rtegek felptse egy kicsit eltr
a 3.5. bra rtegeinek klasszikus felptst ol. Itt az egyes rtegek bemenete kt
rszbol ll, jelljk ezeket Li -vel s Ri -vel, ahol Li s Ri mrete 32 bit. A jobb oldali
blokk, Ri thalad egy kulcsvezrelt, S-dobozokbl s egy P-dobozbl felpl o F
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 90

nylt blokk kulcs


(64) (56)

IP

(48) K1
L1
(32) (32)
F R1

k u l cs t e m e z
(48) K2
L2
(32) (32)
F R2

...

(48) K16
L16
(32) (32)
F R16

FP
(64)

rejtett blokk

3.6. bra. A DES szerkezete.

transzformcin. Az i. rteg kulcst jelljk Ki -vel. Ki 48 bites, s a kulcstemezo


lltja elo az eredeti 56 bites kulcsbl. Az F transzformci kimenett XOR-oljuk
a bal oldali blokkal, Li -vel, majd a kt oldal blokkjait felcserljk (kivve az utols
rtegben). gy kapjuk a kvetkezo rteg bemenetnek kt blokkjt. Formlisan:
Li+1 = Ri (3.5)
Ri+1 = Li F(Ri , Ki )
Ezt a struktrt Feistel-struktrnak 4 nevezik. Az az elonye, hogy az gy fel-
plo rejtjelezo mindenkppen invertlhat, fggetlenl attl, hogy F invertlhat,
vagy sem. Vegyk szre ugyanis, hogy L i s Ri elollthat Li+1 -bol s Ri+1 -bol
anlkl, hogy F inverzt hasznlnnk, hiszen (3.5)-b ol:
Li = Ri+1 F(Li+1 , Ki )
Ri = Li+1
A Feistel-struktra egy msik elonye, hogy a dekdol eljrs megegyezik a
kdol eljrssal, csupn a kulcstemez ot kell fordtva mukdtetni (pl. a kdols-
nl az elso rtegben alkalmazott 48 bites kulcsot a dekdolsnl az utols rtegben
4 Horst Feistel, az IBM kriptugrfusa utn, aki ezt a struktrt kitallta.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 91

kell hasznlni). Ez klnsen hasznos tulajdonsg, ha a DES-t hardverben sze-


retnnk implementlni, mert ugyanaz az ramkr hasznlhat a kdolshoz s a
dekdolshoz, s gy kevesebb kapura van szksg.
A tovbbiakban a DES ptoelemeit vizsgljuk meg rszletesebben:

A kezdeti s a vgso permutci (IP s FP). E kt 64 bit bemenetu s 64 bit ki-


menetu bitpermutcinak nincs klnsebb szerepe, a DES biztonsgra nincsenek
hatssal. Mivel szoftverben viszonylag nehezen implementlhatk, ezrt gyakran
el is hagyjk oket, eltrve az eredeti szabvnytl.

A kulcstemezo. A kulcstemezo feladata, hogy az egyes rtegek szmra el o-


lltsa a megfelelo mretu kulcsot. Ezt a kvetkezokppen teszi. Eloszr is az 56
bites kulcsot kt 28 bites rszre vgja. Mindkt felet balra rotlja egyszer vagy kt-
szer, attl fggoen, hogy melyik rteg kulcsrl van ppen sz. A rotlsok szma
termszetsen a DES szabvnyban rgztett. A rotls utn egy PC permutci sze-
rint kivlaszt az 56 bitbol 48-at. A rotlsok kvetkeztben minden rtegben ms
48 bit kerl kivlasztsra, annak ellenre, hogy a vlaszt PC permutci minden
rtegben azonos. Minden bit kb. 14 rtegbe lp be. Az sszes rotlsok szma
pontosan 28, gy egy blokk rejtjelezse utn az 56 bites kulcs az eredeti llapotba
ll vissza, s kezdodhet a kvetkezo blokk kdolsa. Ennek elsosorban hardver
megvalstsoknl van szerepe.

Az F fggvny. Az F fggvny felptst a 3.7. bra szemllteti. A bemenet


eloszr egy expanzis transzformcin halad keresztl, mely a 32 bites vektorbl
egy 48 bites vektort llt elo. Ezt XOR-oljuk a 48 bites rtegkulccsal. A kvetkez o
elem egy S-doboz rteg, melyben 8 darab 6 bitet 4 bitbe kpz o S-doboz tallhat.
Az S-doboz rteg kimenete gy 32 bites. Az F fggvny kiemenett vgl egy 32
bites P-doboz lltja elo.

Az S-dobozok (Si ). Minden S-doboz 4 darab 4 bitet 4 bitbe helyettest o tblzat-


bl ll. Ezen tblzatok kzl az S-doboz bemenetnek kt szls o bitje vlasztja ki
az aktulisan alkalmazandt. gy is elkpzelhetjk, hogy az S-dobozok 4 sorbl
s 16 oszlopbl ll tblzatok, s a bemenet kt szls o (teht az 1. s a 6.) bitje
cmzi meg a sort, a kzpso 4 (teht a 25.) bit pedig az oszlopot.

A P-doboz (P). A P-doboz egy egyszeru bitpermutci. A P-doboz feladata a


bitek sszekeverse oly mdon, hogy egy S-doboz kimeneti bitjei a kvetkez o r-
tegben ms S-dobozok bemeneti bitjei legyenek.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 92

Xi
(32)

expanzi
(48)
(48)
Ki
(48)

S1 S2 S3 S4 S5 S6 S7 S8

(32)

P
(32)

Yi

3.7. bra. A DES F rtegfggvnynek felptse.

Tbbszrs rejtjelezs s a 3DES


Tbb klnbzo kdolsi eljrs kombinlstl azt remljk, hogy egy er osebb
rejtjelezore jutunk. Az egyik legkzvetlenebb ezen irnyba tett lps a ktszeres
kdols: Y = EK2 (EK1 (X))
A kulcshossz a ktszeres kdolssal formailag ktszeresre n o, hiszen kt kul-
csot hasznlunk. Formailag, mert tnylegesen csak akkor van gy, ha a ktszeres
kdolssal a ktszeres kulcshossznak megfelel o szm klnbzo transzformcit
lltunk elo. Ha a kdolnk csoport tulajdonsg, akkor ez biztosan nincs gy, hi-
szen ezesetben EK2 (EK1 (X)) = EK3 (X), valamely EK3 E esetn, ahol E = {EKi }
a kdol transzformcik halmaza. Ekkor teht egyltaln nem vltozott a kln-
bzo transzformcik szma, azaz ktszeres kdolssal csak ugyanazon transzfor-
mcikat tudjuk elolltani, mint egyszeres kdolssal.
Mivel a DES esetn a csoport tulajdonsg nem ll fenn, ezrt van rtelme a
DES-sel tbbszrsen rejtjelezni klnbz o kulcsokkal. Ugyanakkor a ktszeres
kdolsnak van egy nagy htrnya. Nevezetesen az, hogy a kimert o kulcskere-
ss tmadsnl lnyegesen egyszerubb tmads knlkozik ellene, melyet kzpen
tallkozs tmadsnak neveznek.
A kzpen tallkozs tmads lnyege a kvetkez o: Tegyk fel, hogy a t-
mad birtokban van egy sszetartoz nylt blokk rejtjeles blokk pr, amit je-
lljnk (X,Y )-nal. Tudjuk, hogy a keresett kdol transzformci kt egylpses
kdol transzformci szorzata. A tmad az X nylt blokkot kdolja egylp-
seses kdolssal az sszes lehetsges kulccsal, s hasonlan, az Y rejtett blokkot
dekdolja egylpseses dekdolssal az sszes lehetsges kulccsal. Ezutn a t-
mad a kdols s dekdols eredmnyei halmaznak metszett vizsglja. Ha egy
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 93

X E D E Y = EK3(DK2(EK1(X)))

K1 K2 K3

3.8. bra. A 3DES EDE konfigurciban.

EKi (X) kdolsi lps eredmnye egybeesik egy D K j (Y ) dekdolsi lps eredm-
nyvel, akkor a keresett ismeretlen ktlpses transzformcira a tmad sejtse
EK j (EKi (.)), amit tovbbi birtokban levo nylt blokk rejtett blokk prokon el-
lenorizhet. Jelljk az egylpses kdols kulcshosszt k-val. Ekkor, a tmads
komplexitsa 2 2k = 2k+1 , ami sokkal kisebb, mint a ktszeres kulcshosszhoz tar-
toz kimerto kulcskeress 22k komplexitsa.
Ktszeres DES rejtjelezssel teht nem rnk el jelent os javulst. A kvetkezo
lehetosg a hromszoros kdols. Az gy nyert rejtjelez ot 3DES-nek nevezik, s a
gyakorlatban igen elterjedten hasznljk. A 3DES-t EDE s DED konfigurciban
lehet hasznlni, ahol az E betu a kdol, a D betu pedig a dekdol transzformci-
ra utal. A 3DES-EDE vzlatt mutatja a 3.8. bra.
Ha K1 = K3 , ekkor kt kulcsos 3DES-rol beszlnk, melynek effektv kulcs-
hossza 112 bit. Ha a K1 , K2 , s K3 kulcsok mind klnbzok, akkor hrom kulcsos
3DES-rol beszlnk, melynek effektv kulcshossza 168 bit.

Az AES blokkrejtjelezo
Az AES-t (Advanced Encryption Standard) egy tbb vig tart eljrs sorn v-
lasztottk a DES utdjnak tbb tucat jellt kzl. A DES lecserlse azrt vlt
idoszeruv, mert 56 bites kulcsmrete a mai technolgia mellett tlsgosan r-
vidnek szmt. Az AES kulcsmrete vltoz: 128, 192, vagy 256 bit (a rtegek
szmtl fggoen). Az AES blokkmrete 128 bit (azaz 16 bjt).
Az AES is rteges szerkezetu, azaz szorzat-rejtjelez o. A rtegek szma vltoz:
10, 12 vagy 14. Tovbb a DES-hez hasonlan az AES is hasznl S-dobozt, azaz
helyettestses-permutcis rejtjelez o. A DES-sel ellenttben azonban az AES nem
Feistel-struktrj. gy az AES kdol s dekdol algoritmusa nem azonos, a de-
kdol algoritmus a kdols sorn alkalmazott transzformcik inverzt hasznlja.
Az AES gy van tervezve, hogy a kdol algoritmus hatkonyabb, mint a dek-
dol. Ez azrt van gy, mert tbb blokkrejtelezsi md (lsd ks obb a 3.2. szakaszt)
a kdol transzformcit hasznlja a dekdolshoz is.
Az AES kdol minden rtegben a kvetkez o ngy muvelet kerl vgrehaj-
tsra:
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 94

s 1 s 5 s 9 s 13 s 1 s 5 s 9 s 13
s 2 s 6 s 10 s 14 LROT1 s 6 s 10 s 14 s 2
s 3 s 7 s 11 s 15 LROT2 s 11 s 15 s 3 s 7
s 4 s 8 s 12 s 16 LROT3 s 16 s 4 s 8 s 12

3.9. bra. Az AES sor-eltols muvelete.

2311
1231
1123 x =
3112

a szorzs s az oszts
s 00 s 01 s 02 s 03 a GF(28) test felett trtnik
s'
00
s'
01
s'
02
s'
03

s 10 s 11 s 12 s 13 s'
10
s'
11
s'
12
s'
13

s 20 s 21 s 22 s 23 s'
20
s'
21
s'
22
s'
23

s 30 s 31 s 32 s 33 s'
30
s'
31
s'
32
s'
33

3.10. bra. Az AES oszlop-kevers muvelete.

Bjt-helyettests: Az AES-nek egyetlen 8 bitet 8 bitbe kpz o S-doboza


van. A bjt-helyettests sorn ezt az S-dobozt hasznljuk az adott rteg 16
bjtos bemenete minden egyes bjtjnak helyettestsre.

Sor-eltols: A sor-eltolshoz a bjt-helyettests eredmnyeknt kapott 16


bjtos vektort egy 44-es mtrixba rendezzk, majd a mtrix i. sort (i1)-
gyel balra rotljuk. Ezt a 3.9. bra szemllteti.

Oszlop-kevers: Az oszlop-kevers abbl ll, hogy a sor-eltols eredm-


nyeknt kapott 4 4-es mtrixot megszorozzuk egy, az AES specifikciban
megadott konstans mtrixszal. A muveleteket GF(2 8 ) felett vgezzk. Ezt
a 3.10. bra szemllteti. Vgl az eredmnyl kapott mtrix elemeit jra
sorba rendezzk.

Kulcs-injekci: A kulcs-injekci sorn a 16 bjtos rtegkulcsot (melyet


egy kulcstemezo llt elo minden rteg szmra) bitenknt XOR-oljuk az
oszlop-kevers eredmnyeknt kapott 16 bjtos vektorral.

Az AES blokkrejtjelezo, szabvnyknt val elfogadsa ta, a kriptanalzis szak-


rtok egyik kedvelt clpontja, ugyangy, ahogy kzel harminc vvel ezel ott a DES
blokkrejtjelezo. Az AES eddig sikeresen ellenllt minden feltrsi ksrletnek.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 95

S-doboz tervezsi kritriumok


A helyettestses-permutcis rejtjelez ok legfontosabb ptoelemei az S-dobozok.
A rejtjelezo ereje nagy mrtkben fgg S-dobozainak tulajdonsgaitl, ezrt ezek
tervezse igen nagy krltekintst s tapasztalatot ignyel. Ebben a szakaszban
sszefoglaljuk az S-doboz tervezs f obb kritriumait.
Elsoknt formlisan is definiljuk, hogy mit rtnk S-doboz alatt:

3.3. definci. Egy f : {0, 1}m {0, 1}n lekpzst S-doboznak neveznk, ha 1 <
n m. f -et gyakran tekintjk gy, mint n darab Boole-fggvny egyttest:

f (x) = ( f1 (x), f2 (x), . . . , f n (x)) (3.6)

ahol az fi : {0, 1}m {0, 1}1 fggvnyeket komponens Boole-fggvnyeknek ne-


vezzk.

Balansz tulajdonsg. A balansz tulajdonsg azt jelenti, hogy az S-doboz nem


torztja el egy egyenletes eloszls bemenet gyakorisg-statisztikjt.

3.4. definci. Egy f : {0, 1}m {0, 1}n S-doboz akkor balansz, ha tetszoleges
y {0, 1}n esetn
|{x {0, 1}m : f (x) = y}| = 2mn (3.7)

Teljessg. Egy f : {0, 1}m {0, 1}n S-doboz teljes, ha minden kimeneti bitje
minden bemeneti bittol fgg. Ms szavakkal ez azt jelenti, hogy az f (x) f (x
(i)
em ) fggvny j. komponens Boole-fggvnynek igazsgtbljban legalbb egy
darab 1 tallhat, s ez minden 1 i m s 1 j n esetn igaz. Formlisan:

3.5. definci. Egy f : {0, 1}m {0, 1}n S-doboz teljes, ha minden 1 i m s
1 j n esetn teljesl a kvetkezo:
( j) ( j) (i)
|{x {0, 1}m : en f (x) 6= en f (x em )}| > 0 (3.8)
(i)
ahol em az m dimenzis egysgvektor, mely egyetlen egyest tartalmaz az i. pozci-
ban.

Linearits s affinits. A linerits s az affinits defincija a kvetkez o:

3.6. definci. Egy f : {0, 1}m {0, 1}n S-doboz lineris, ha felrhat f (x) = A
x alakban, s affin, ha felrhat f (x) = A x b alakban, ahol A egy n m-es
binris mtrix, b {0, 1}n , s a binris skalrszorzatot jelli, azaz A x egy
olyan binris vektor, melynek komponensei az A mtrix sorainak s az x vektornak
a binris skalrszorzataknt llnak el o.

Mivel a lineris (affin) S-dobozokbl felpl o rejtjelezo knnyen analizlhat,


ezrt a lineris (affin) S-dobozok kerlend ok.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 96

Lineris struktrk, lineris dimenzi. El ofordulhat, hogy egy S-doboz nem


lineris (affin), mgis rendelkezik bizonyos parcilis linearitssal, azaz kimenete
nhny bemeneti bittel lineris (affin) kapcsolatban ll. Ezen parcilis linearits
mroszma a lineris dimenzi.
A lineris dimenzi formlis defincijhoz el oszr a lineris struktra defin-
cijt vezetjk be:

3.7. definci. Az a {0, 1}m binris vektor lineris struktrja az f : {0, 1} m


{0, 1}n S-doboznak, ha f (x) f (x a) minden x {0, 1} m esetn konstans.

Knnyen belthat, hogy egy f : {0, 1} m {0, 1}n fggvny lineris struk-
tri alteret alkotnak a {0, 1}m trben. Ezen altr dimenzijt nevezzk f linris
dimenzijnak:

3.8. definci. Egy f : {0, 1}m {0, 1}n S-doboz lineris dimenzija az f lineris
struktri ltal alkotott altr dimenzija.

Nemlinearits. Mivel egy helyettestses-permutcis rejtjelez o egyetlen nemli-


neris eleme a helyettesto rteg, ezrt ez a kritrium kzponti szerepet jtszik az
S-dobozok tervezse sorn.

3.9. definci. Egy f : {0, 1}m {0, 1}1 Boole-fggvny N( f ) nemlinearitsn az


affin Boole-fggvnyek halmaztl vett tvolsgt rtjk:
N( f ) = min d( f , Lu,v ) (3.9)
u{0,1}m ,v{0,1}1

ahol az Lu,v (x) affin fggvny u x v alak, tovbb kt Boole-fggvny t-


volsga alatt azon bemenetek szmt rtjk, melyekre a kt fggvny kimenete
klnbzik egymstl.
Egy S-doboz nemlinearitst komponens Boole-fggvnyeinek segtsgvel
definiljuk a kvetkezokppen:

3.10. definci. Kpezzk egy S-doboz komponens Boole-fggvnyeinek lehets-


ges linerkombinciit. Az gy kapott Boole-fggvnyek kzl vlasszuk ki azt,
amelyiknek nemlinearitsa minimlis. Ez a minimlis nemlinearits az S-doboz
nemlinearitsa:
N( f ) = minn N( f ) (3.10)
{0,1} ,6=0

Differencilis egyenletessg. A differencilis egyenletessg a nemlinearits egy


msik mroszma, mely a lineris struktrktl val tvolsggal van sszefggs-
ben. Ez a kritrium a differencilis kriptanalzissel kapcsolatban jelent meg. A
differencilis kriptanalzis egy olyan tmadsi mdszer, mely az S-dobozok azon
tulajdonsgt hasznlja ki, hogy adott bemeneti differencia esetn a kimeneten nem
minden differencia jelenik meg azonos valsznusggel. A differencilis egyenle-
tessg ennek az egyenetlensgnek a mr oszma.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 97

3.11. definci. Egy f : {0, 1}m {0, 1}n S-doboz D( f ) differencilis egyenletes-
sgt a kvetkezokppen definiljuk:
D( f ) = 2m max |{x {0, 1}m : f (x) f (x a) = b}|. (3.11)
a{0,1}m ,b{0,1}n ,a6=0

Terjedsi kritriumok, szigor lavinahats kritrium. Szintn a nemlineari-


tssal fggenek ssze a terjedsi kritriumok:
3.12. definci. Egy f : {0, 1}m {0, 1}1 Boole-fggvny kielgti a k-adfok ter-
jedsi kritriumot, ha autokorrelcis fggvnyre igaz, hogy r f (a) = 0 minden
k-nl nem nagyobb sly a {0, 1}m esetn, ahol a 6= 0.
3.13. definci. Egy f : {0, 1}m {0, 1}n S-doboz kielgti a k-adfok terjedsi
kritriumot, ha minden komponens Boole-fggvnye kielgti azt.
Az elso fok terjedsi kritriumot szoks szigor lavinahats kritriumnak
(Strict Avalanche Criterion SAC)is nevezni. Egy SAC tulajdonsgot kielgt o
S-doboz tetszoleges bemeneti bitjt megvltoztatva a kimenet minden egyes bitje
1
2 valsznusggel vltozik meg.
S-dobozok esetn, a SAC tulajdonsg teljeslsnek ellen orzsre a diffzis
mtrix szolgl:
3.14. definci. Egy f : {0, 1}m {0, 1}n S-doboz diffzis mtrixa alatt azt az
m n mretu W f mtrixot rtjk, melyre
(i, j) 1 ( j) ( j) (i)
Wf = |{x {0, 1}m : en f (x) 6= en f (x em )}| (3.12)
2m
(i, j)
A diffzis mtrix W f eleme teht azt mondja meg, hogy megvltoztatva az
f fggvny i. bemeneti bitjt a kimenet j. bitje milyen valsznusggel vltozik
meg. Ha a diffzis mtrix minden eleme 12 , akkor az S-doboz kielgti a szigor
lavinahats kritriumot.

A kritriumok kztti kapcsolatok. Bizonyts nlkl kzljk a kvetkez o t-


telt, mely nhny kritrium kztti fontos kapcsolatra vilgt r:
3.5. ttel. Az f : {0, 1}m {0, 1}n S-dobozra az albbi lltsok ekvivalensek:
m
f nemlinearitsa maximlis, N( f ) = 2 m1 2 2 1 ;
f differencilisan egyenletes, D( f ) = 2 m1 2mn ;
Tovbb a fenti lltsok brmelyikb ol kvetkezik, hogy f kielgti az m-edfok
terjedsi kritriumot.
A 3.5. ttel szerint lteznek olyan S-dobozok, melyek a nemlinearits, a dif-
ferencilis egyenletessg s a terjedsi kritriumok szempontjbl is optimlisak.
Ezeket az S-dobozokat tkletes S-dobozoknak nevezzk. Ugyanakkor belthat,
hogy a tkletes S-dobozok nem teljestik a szintn fontos balansz tulajdonsgot.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 98

S-doboz tervezs. A fenti krittiumokat kielgt o S-dobozok tervezse nem kny-


nyu feladat. Alapvetoen kt mdszer ltezik: a vletlen generls s a konstrukci.
A vletlen generls esetn vletlen mdon vlasztunk S-dobozokat, majd ezek
kzl kivlasztjuk azokat, melyek kielgtik a kvnt kritriumokat. Ez csak ak-
kor lehet hatkony mdszer, ha a kvnt kritriumokat kielgt o S-dobozok szma
nagy, ellenkezo esetben ugyanis nincsen arra remny, hogy vletlen vlasztssal
pont megfelelo S-dobozokat tallunk. Az ily mdon kielgthet o kritriumok kz
tartozik a balansz tulajdonsg s a teljessg. A tkletes S-dobozok szma azonban
nagyon kicsi, gy ilyen S-dobozokat vletlen vlasztassl keresni remnytelen. Ek-
kor folyamodhatunk a konstrukcira pl o tervezsi hozzllshoz, melynek segt-
sgvel kzvetlenl a kvnt kritriumokat kielgt o S-dobozokat generlhatunk.
Ltezik pldul olyan konstrukcis eljrs, mellyel el oszr generlunk egy tk-
letes (maximlis nemlinearitssal rendelkez o) S-dobozt, majd ezt mdostjuk oly
mdon, hogy az eredmyl kapott S-doboz kielgtse a balansz tulajdonsgot s
nemlinearitsa ne cskkenjen jelent os mrtkben.

Aszimmetrikus kulcs rejtjelezs

Az aszimmetrikus kulcs kriptogrfia alapja, hogy a kdol s a dekdol


transzformcit paramterezo kdol s dekdol kulcsok nem azonosak, s ot egyi-
ket a msikbl kiszmtani nagy komplexits feladat, azaz praktikusan lehetetlen.
Ezrt a kt kulcs kzl az egyiket, ltalban a kdol kulcsot, nyilvnossgra lehet
hozni. Ez azrt hasznos, mert a titkos kommunikci megvalstshoz nincsen
szksg egy kzs titkos kulcs ltrehozsra a kld o s a vevo kztt; elegendo
a rejteni kvnt zenetet a vevo nyilvnos kdol kulcsval rejtjelezni. Megje-
gyezzk azonban, hogy gondoskodni kell a nyilvnos kulcsok hitelessgr ol. Ms
szavakkal, a kldonek meg kell tudnia gyozodni arrl, hogy a hasznlni kvnt nyil-
vnos kulcs valban a vevo nyilvnos kulcsa, s nem egy harmadik, feltehet oen
rossz-szndk fl. A nyilvnos kulcs kriptogrfia teht oly mdon egyszerusti
a kulcscsere problmt, hogy titkos csatorna helyett, hiteles csatorna ltezst k-
veteli meg a vevo s a kldo kztt, melyen a vevo eljuttathatja nyilvnos kulcst
a kldonek.
Az albbiakban ismertetjk az egyik leggyakrabban hasznlt nyilvnos kulcs
rejtjelezo mdszert, az RSA algoritmust, s ttekintjk annak ismert gyengesgeit.
Mint ltni fogjuk, az RSA kulcsok generlshoz nagy prmszmokra van szksg.
Ezrt rviden sszefoglaljuk a prmtesztels mdszereit is.

Az RSA algoritmus
Az RSA rejtjelezo rendszer hrom algoritmusbl ll: kulcsgenerls, kdols (rejt-
jelezs) s dekdols.
A kulcsgenerls a kvetkezokppen trtnik: Vletlenszeruen vlasztunk kt
nagy prmszmot, p-t s q-t, ahol p 6= q. Jelenleg nagy prmszmnak a legalbb
500 bites prmszmokat tekintjk. Kiszmtjuk az n = pq modulust s a (n) =
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 99

(p 1)(q 1) szorzatot, melyek teht legalbb 1000 bites szmok. Vlasztunk to-
vbb egy 1 < e < (n) szmot, amelyik (n)-hez relatv prm (azaz mind (p 1)-
hez, mind (q 1)-hez relatv prm). Kiszmtjuk az e inverzt modulo (n), azaz
megkeressk azt a 1 < d < (n) szmot, melyre ed mod (n) = 1. A nyilvnos
kulcs az (e, n) pr, a titkos privt kulcs pedig d.
A fenti szmtsok hatkonyan vgrehajthatk. Egyedl d kiszmtsa tu-
nik nehznek, de ez is knnyen megoldhat a kiterjesztett euklidszi algorit-
mussal. A kiterjesztett euklidszi algoritmus meghatrozza kt szm, mondjuk a
s b, legnagyobb kzs osztjt, r-et, valamint azt a legkisebb t szmot, melyre
t b r ( mod a) fennll. A kiterjesztett euklidszi algoritmus pszeudokdja a k-
vetkezo:
INPUT: a (egyik szm)
b (msik szm)

OUTPUT: r (a s b legnagyobb kzs osztja)


t (az a legkisebb szm melyre t*b mod a = r)

// feltesszk, hogy a > b


// (ellenkezo esetben felcserljk a bementeket)

x = a
y = b
t0 = 0
t1 = 1
r = b
t = 1
WHILE (x mod y) != 0
q = x div y // maradkos oszts eredmnye
r = x mod y // s maradka
t = (t0 - q*t1) mod a
x = y
y = r
t0 = t1
t1 = t
ENDWHILE
RETURN r, t

Az RSA esetn (n) s e legnagyobb kzs osztja 1, ezrt ha a kiterjesztett


euklidszi algoritmust a = (n)-nel s b = e-vel hvjuk meg, akkor megkapjuk
azt a t szmot, melyre t e 1 ( mod (n)). Azaz a keresett d rtk pontosan a t
szm. Az euklidszi algoritmus legfeljebb ktszer annyi lpst ignyel, mint az n
modulus logaritmusa.

3.7. plda. Legyen p = 73, q = 151, gy n = 73 151 = 11023, (n) = (73


1)(1511) = 10800. Az e paramtert e = 11-re vlaszthatjuk, mivel (10800, 11) =
1, hiszen 10800 = 24 3 52 9. Az e inverzt modulo (n) az kiterjesztett eukli-
dszi algoritmussal hatrozzuk meg. Az algoritmusban szerepl o vltozk rtkt
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 100

az egyes itercis lpsekben (a WHILE ciklus vgrehajtsa sorn) a kvetkez o


tblzat tartalmazza:

iterci q r t x y t0 t1 x mod y
WHILE elott 10800 11 0 1 9
1. 981 9 9819 11 9 1 9819 2
2. 1 2 982 9 2 9819 982 1
3. 4 1 5891 2 1 982 5891 0

A tblzatbl lthat, hogy mikor a WHILE ciklus befejez odik, t rtke 5891,
azaz d = 5891. A nyilvnos kulcs teht az (e, n) = (11, 11023) pr, s a titkos
privt kulcs d = 5891.

A kdols menete a kvetkezo: A kldo megszerzi a vevo (e, n) nyilvnos


kulcst. A kldo elokdolja az elkldendo zenetet, ami azt jelenti, hogy egy n-
nl kisebb x egsz szmm konvertlja azt. Ha az zenet tl nagy akkor a kld o
az zenetet blokkokra osztja, s a blokkokat egyenknt konvertlja n-nl kisebb
egssz. Vgl a kldo kiszmolja az y = xe mod n rejtjeles zenetet.
A dekdols abbl ll, hogy a vevo kiszmolja az x0 = yd mod n szmot, majd
azt visszakonvertlja zenett az el okdols inverz transzformcijt hasznlva.
A kvetkezo ttel azt mondja ki, hogy a dekdols helyesen mukdik, azaz
0
x = x:

3.6. ttel. Brmely x egsz szmra fennll, hogy

(xe )d x (mod n)

B IZONYTS : Mivel d az e inverze modulo (n), ezrt valamely v egsz szmra


ed = v(n) + 1, s gy a ttel bizonytshoz az

x xv(n)+1 (mod n)

modulo egyenlosget kell beltni.


Eloszr tetszoleges r prmre beltjuk, hogy tetsz oleges x s s egsz esetn fenn-
ll a kvetkezo:
x xs(r1)+1 (mod r) (3.13)
Ha r prm nem osztja x-nek, akkor a Fermat-ttel (lsd 2.1 Lemma) szerint
s
xr1 1s 1 (mod r)

Ebbol azonnal kvetkezik, hogy ebben az esetben (3.13) fennll. Ha r prm osztja
x-nek, azaz x 0 ( mod r), akkor nyilvn

xs(r1)+1 0 (mod r)

azaz (3.13) ekkor is fennll.


Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 101

Visszatrve az ltalnos esetre, mivel p 1 | (n) s q 1 | (n), ezrt (3.13)


felhasznlsval

x xv(n)+1 (mod p)
x xv(n)+1 (mod q)

fennllnak. Innen p | (xv(n)+1 x) s q | (xv(n)+1 x) teljeslnek, amelybol


pq | (xv(n)+1 x) is kvetkezik, s ezzel az lltst belttuk.

A kdols s a dekdol kulcs ismeretben a dekdols is hatkonyan


vgrehajthat muveletek, ugyanis a modulris hatvnyozsra ltezik hatkony al-
goritmus, amit ismtelt ngyzetreemels s szorzs algorimusnak neveznek. Ezt
az algoritmust hasznlva az e-edik hatvny kiszmtsa legfeljebb 2 log 2 e szm
modulo n szorzssal megoldhat. Az ismtelt ngyzetreemels s szorzs algorit-
mus pszeudokdja a kvetkezo:

INPUT: x (hatvnyozand szm)


e (k bites kitevo)
n (modulus)

OUTPUT: x^e mod n

// az e kitevo i. legkisebb helyirtku


// bitje e[i]

c = 1
FOR i = k-1 TO 0
c = c^2 mod n
IF e[i] = 1 THEN c = c*x mod n
ENDFOR
RETURN c

3.8. plda. Rejtjelezzk az x = 17 zenetet az el ozo pldban generlt nyilvnos


kulcs segtsgvel. Az e = 11 kitevo binris felbontsa 1011. Az ismtelt ngy-
zetreemels s szorzs algoritmust hasznljuk:

c=1
e[3] = 1 c = c2 x mod n = 17
e[2] = 0 c = c2 mod n = 289
e[1] = 1 c = c2 x mod n = 1419857 mod 11023 = 8913
e[0] = 1 c = c2 x mod n = 1350506673 mod 11023 = 1782

azaz a rejtjelezett zenet az y = 1782.


Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 102

Az RSA biztonsga
Az RSA algoritmus biztonsga szorosan sszefgg az egsz szmok faktorizci-
jnak nehzsgvel. Pontosabban a d dekdol kulcs kiszmtsa a nyilvnos (e, n)
kdol kulcsbl ekvivalens feladat n faktorizcijval, amir ol azt sejtik, hogy nem
oldhat meg hatkonyan. Az egyik irnyt knnyu bizonytani: Ha egy tmad
hatkonyan tudn faktorizlni n-t, akkor p s q ismeretben o is hatkonyan vgre
tudn hajtani a kulcsgenerls algoritmust, azaz ki tudn szmolni e inverzt mod
(p 1)(q 1). Az is igaz, hogy ha ltezne hatkony algoritmus d kiszmolsra
e-bol s n-bol, akkor ezen algoritmus segtsgvel hatkonyan tudnnk faktorizlni
n-et. Ezt azonban nehezebb bizonytani, ezrt a bizonytst itt nem ismertetjk.
Vegyk szre, hogy az RSA feltrse nem jelenti felttlenl a d dekdol kulcs
megfejtst. A tmad clja valjban az, hogy az y = x e mod n rejtjeles zenet s
az (e, n) pr ismeretben kiszmolja az x nylt zenetet, azaz e-edik gykt vonjon
y-bl modulo n. Ezt nevezik RSA problmnak. Nem tudjuk biztosan, hogy az
RSA problma s a faktorizci problmja ekvivalensek-e. Mindenesetre a sejts
az, hogy az RSA problma is nehz feladat.
Az RSA implementcija s konkrt felhasznlsa sorn sok rszleten mlhat
a biztonsg. Szmos hatkony tmads ismert az zenethalmaz, a prmpr, a k-
dol s dekdol kulcs specilis vlasztsa, valamint nem biztonsgos protokollok
kapcsn. Mindezt az albbiakban hrom problmval illusztrljuk.

Fermat-faktorizci: p s q kzeli prmek. Sikeres tmadsra van lehet os-


gnk, ha a p s q prmek tvolsga nem elgg nagy, ekkor ugyanis egyszeru
faktorizcis lehetosg addik az n modulusra: Tegyk fel, hogy p > q. Le-
gyen t = (p + q)/2 s s = (p q)/2, azaz p = t + s, q = t s. Innen n = pq =
(t + s)(t s) = t 2 s2 addik. Ha p q klnbsg kicsi, akkor s is kicsi, azaz

t n. Tallgassuk t rtkt a kvetkez okppen: Szmtsuk ki a t1 = n + 1,

t2 = n + 2, . . . rtkeket, s ellenorizzk hogy ti2 n klnbsg ngyzetszmot ad-
e. Ha igen, akkor a klnbsg egyenl o s2 -tel. A megkapott t s s alapjn mr
knnyen kiszmthat p s q.

3.9. plda. Faktorizljuk n = 200819-et. n lefel kerektett ngyzetgyke 448.


t1 = 449, m 4492 200819 = 782 nem ngyzetszm. t2 = 450, s 4502 200819 =
1681 = 412 mr ngyzetszm, ahonnan 200819 = 450 2 412 = (450 + 41)(450
41) = 491 409.

Kicsi kdol kulcsok problmja. Tegyk fel, hogy egy kzpont r tvoli gy-
nknek azonos x zenetet kld RSA rejtjelezssel, ahol az gynkk e nyilv-
nos RSA kitevojt azonosra vlasztottk, azon az alapon, hogy az RSA rejtjelezs
biztonsga nem mlik ezen kitevo vlasztsn. Az gynkk modulusai rendre
n1 , n2 , . . . , nr . A csatornkat lehallgat tmad az albbi rejtjeles zeneteket szerzi
meg.
y1 = xe mod n1
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 103

y2 = xe mod n2
..
.
yr = xe mod nr
Tegyk fel, hogy e kicsi, s ezrt fennll az e r egyenl otlensg. Ekkor a
tmad a knai maradkttelt hasznlhatja az x zenet megfejtsre, mely a k-
vetkezokppen szl:
3.7. ttel. Tekintsk az albbi kongruencia-rendszert, ahol az n 1 , n2 , . . . nr pozitv
egsz szmok pronknt relatv prmek:
X y1 (mod n1 )
X y2 (mod n2 )
.
..
X yr (mod nr )
Ennek a kongruencia-rendszernek ltezik egyrtlemu megoldsa modulo N = n 1
n2 . . . nr , s ez a kvetkezo alak X = (y1 N1 M1 + y2 N2 M2 + . . . + yr Nr
Mr ) mod N , ahol Ni = N/ni s Mi = Ni1 ( mod ni ) (i = 1, 2, . . . , r).
Jelen esetben feltehetjk, hogy az n 1 , n2 , . . . , nr modulusok pronknt relatv
prmek, ugyanis gynknknt vletlenszeruen vlasztottuk a prmprt, gy ezen
feltevs teljeslse gyakorlatilag biztos. A knai maradkttelt alkalmazva, a t-
mad hatkonyan ki tudja szmtani az X = x e mod n1 n2 . . . nr maradkot. Ve-
gyk szre, hogy x < ni (i = 1, 2, . . . , r) valamint e r miatt x e < n1 n2 . . . nr ,
azaz az X megolds e-edik gykt kiszmtva a tmad magt a keresett x nylt
szveget kapja.

Kzs modulus problmja. Tudjuk, hogy az RSA kdols igen szmtsig-


nyes, ezrt arra a gondolatra juthatunk, hogy clhardverben legyrtatjuk egy v-
lasztott n modulus (egy adott (p, q) prmpr) esetre a modulo n hatvnyoz arit-
metikt. Mivel azonban tbb felhasznls a rendszer, a kzpont gy klnbzteti
meg az egyes felhasznlkat, hogy az adott n modulus mellett klnbz o nyilvnos
kitevoket vlaszt szmukra, amelyekbol klnbzo dekdol kulcsok addnak. A
kzpont ezek utn egy x titkos zenetet kld kt felhasznlnak, A-nak s B-nek.
A tmad lehallgatja a csatornkat, s ezzel megismeri az y A = xeA mod n s az
yB = xeB mod n rejtett szvegeket. Tegyk fel, hogy e A s eB relatv prmek. gy
ltezik t s s egsz, hogy t eA + s eB = 1, ahol t s < 0, mivel eA > 0 s eB > 0.
Az ltalnossg korltozsa nlkl tegyk fel, hogy t < 0, azaz t = 1 |t|. To-
vbb felteheto, hogy yA s n is relatv prmek, ezrt ltezik az y 1 A inverz modulo
n. Innen
|t|
y1
A (yB )s (xeA )t (xeB )s xteA +seB x (mod n)
alapjn a tmad, kizrlag nyilvnos informcik s a lehallgatott rejtett szveg-
pr felhasznlsval, dekdolni kpes a titkos zenetet.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.1. R EJTJELEZSI TECHNIKK 104

Prmszmok keresse
Az RSA kapcsn szeretnnk egy hatkony (azaz polinomilis ideju) algoritmust an-
nak eldntsre, hogy egy vletlenl kisorsolt egsz szm prm-e vagy sem. Meg-
nyugtat, hogy a prmek elg surun tallhatk az egsz szmok kztt, s gy, ha
vletlenszeruen vlasztunk a pratlan egsz szmok kzl, az alkalmazsok szem-
pontjbl elegendoen nagy valsznusggel prmszmot vlasztunk.
A prmek surusgvel kapcsolatban bizonyts nlkl utalunk a szmelmlet
ismert ttelre, amely kimondja, hogy az n pozitv egsznl kisebb prmek (n)
szmra:
n
(n)
= .
ln n

3.10. plda. Szmpldaknt tekintsnk egy 10 200 nagysgrendu modulust, azaz


10100 = 2332 nagysgrendu prmeket vlasztunk. Annak a valsznusge, hogy egy
vletlenszeruen vlasztott 332 bites s szm prm, a fenti kifejezs alapjn becsl-
heto:
(2332 ) (2331 ) 2331 331ln
1
2 1
332 331 = 331 =
2 2 2 230
Tovbb, mivel az adott szmtartomny fele pros szm, elg csak a pratlanok
kzl vlogatnunk, s ezzel 1/115-re duplzzuk meg a tallati valsznusget. gy
teht tlagosan 115 prblkozsonknt jutunk prmszmhoz a 10 100 nagysgrendu
szmok kztt.

Ezek utn mr csak az a krds, hogy hogyan vesszk szre, hogy prmet sor-
soltunk ki. Ez utbbi feladatra szolglnak a prmtesztel o algoritmusok. Tbb ilyen
algortimus is ltezik. Az alapelveket a Fermat prmtesztel o algoritmus kapcsn
mutatjuk be.

A Fermat-prmteszt. Elsoknt bevezetjk a Fermat-lprm fogalmt:

3.15. definci. Egy n sszetett szm Fermat-lprm egy b bzisra nzve, ha

bn1 1 (mod n) (3.14)

ahol b Wn , Wn = {z : 1 < z < n s (z, n) = 1}.

A 3.15. definci a Fermat-ttelen alapul, amely szerint, ha n prmszm, akkor


(3.14) teljesl (lsd 2.1 Lemma). Ha n sszetett szm, de mgis teljesti (3.14)
egyenletet, akkor lprm.
A Fermat-prmteszt teht a kvetkez o: Ha egy vletlenszeruen sorsolt n egsz
szm egy b bzissal nem teljesti a (3.14) egyenletet, akkor biztosan nem prm, mg
ha teljesti, akkor prmgyans s tovbb vizsgland egy kvetkez o bzissal. Ha a
tesztelt szm k egyms utni vizsglat sorn prmgyansnak bizonyult, akkor nagy
valsznusggel prmszm.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 105

A krds az, hogy van-e olyan sszetett szm, amely tetsz oleges szbajvo
bzisra tmegy a Fermat-prbn? Sajnos van, s ezen szmokat Carmichael-sz-
moknak nevezzk. Bizonysgul a legkisebb ilyen szm az 561.
Felmerl tovbb az a krds is, hogy mekkora a valsznusge annak az ese-
mnynek, hogy egy n sszetett szm, amely nem Carmichael-szm, egy vletlen-
szeruen vlasztott b Wn bzissal kielgti (3.14) egyenletet. Erre vonatkozik a
kvetkezo ttel:
n
3.8. ttel. Ha egy n sszetett szm nem Carmichael-szm, akkor legfeljebb 2 k-
lnbzo b Wn bzissal elgti ki (3.14) egyenletet.

A 3.8. ttel kvetkezmnye, hogy ha egy n sszetett szm nem Carmichael-


szm, akkor annak valsznusge, hogy k alkalommal tmegy a Fermat-prbn,
kisebb, mint 2k .

3.2. Blokkrejtjelezsi mdok


Egy blokkrejtjelezo n bit hossz nylt szveg blokkokat kdol n bit hossz rejt-
jeles blokkokba. n tipikus rtke 64 vagy 128. Sok alkalmazsban ennl jval
hosszabb (vagy rvidebb) zeneteket szeretnnk rejtjelezni. Ezrt szksgnk van
olyan eljrsokra, melyek lehetov teszik tetszoleges hosszsg zenetek kdol-
st egy n bites blokkrejtjelezo segtsgvel. Ezeket az eljrsokat blokkrejtjelezsi
mdoknak nevezzk.
Az t leggyakrabban hasznlt blokkrejtjelezsi md a kvetkez o: ECB (Elec-
tronic Code Book), CBC (Cipher Block Chaining), CFB (Cipher Feedback), OFB
(Output Feedback) s CTR (Counter). Ezek mukdst mutatjuk be az albbiak-
ban.

Az ECB md

ECB mdban az X nylt zentet n bites blokkokra osztjuk. Jellje X 1 , X2 , . . . , XN


az gy nyert nylt blokkokat. Az i. rejtjeles blokkot, Yi -t, a kvetkezokppen kap-
juk:
Yi = EK (Xi ) i = 1, 2, . . . , N, (3.15)
ahol EK jelli a blokkrejtjelezo kdol fggvnyt a K kulccsal paramterezve. A
dekdols hasonlan egyszeru:

Xi = DK (Yi ) i = 1, 2, . . . , N, (3.16)

ahol DK jelli a blokkrejtjelezo dekdol fggvnyt a K kulccsal paramterezve


(azaz az EK fggvny inverzt).
Elofordulhat, hogy a rejtjelezni kvnt nylt zenet bitekben mrt hossza nem
tbbszrse a rejtjelezo n blokkhossznak. Ekkor az zenetet ki kell tlteni nhny
tovbbi bit hozzadsval oly mdon, hogy a kitltssel egytt az zenet hossza n
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 106

tbbszrese legyen. Ez sok esetben csak az utols, csonka blokk kitltst jelenti,
de nha egy teljes blokk hozzadsval is jrhat. S ot, vannak olyan kitltsi smk
is, melyek tbb, vletlenszm blokkot is hozzadnak az zenethez kitltsknt,
ezzel prblva az zenet valdi hosszt elrejteni egy forgalmat analizl tmad
elol.
Akrmennyi bitet is alkalmazunk kitltsknt, egy dolgot minden esetben biz-
tostani kell: a vevonek kpesnek kell lennie a kitltsknt alkalmazott bitek azo-
nostsra, majd azok eltvoltsval az eredeti nylt zenet visszalltsra. Ennek
elrse rdekben sok kitlto smban a kitlts utols bjtja a kitlts hosszra
vonatkoz informcit tartalmaz. Ezen smk hasznlata esetn minden zenet-
nek tartalmaznia kell kitltst, mg azoknak is, amelyek hossza n tbbszrse. Ha
ugyanis megengednnk olyan zeneteket, melyek nem tartalmaznak kitltst, ak-
kor egy adott zenet vtele esetn a vev o nem tudn egyrtelmuen megllaptani,
hogy az zenet tartalmaz-e kitltst vagy sem. Ha viszont megkveteljk, hogy
minden zenet tartalmazzon kitltst, akkor ilyen problma nem lp fel.

Biztonsg. ECB md hasznlata esetn, azonos nylt blokkokhoz mindig azo-


nos rejtjeles blokkok tartoznak (feltve persze, hogy minden blokk ugyanazzal a
K kulccsal lett kdolva). Ez azt jelenti, hogy ha adott kt klnbz o X s X 0 nylt
szveghez tartz Y s Y 0 rejtjeles szveg, akkor egy tmad a K kulcs ismerete
nlkl is azonostani tudja X s X 0 egyforma blokkjait Y s Y 0 egyforma blokkjai-
nak azonostsval.
Ha a tmad valamilyen mdon nagy szm nylt blokk rejtjeles blokk prhoz
jut, akkor ezekbol egy sztrat (vagy kdknyvet) pthet. Ezt a sztrat aztn k-
sobb megfigyelt rejtjeles szvegek rszleges dekdolshoz hasznlhatja a K kulcs
ismerete nlkl.
Tovbbi problma, hogy egy rejtjeles zenet blokkjai egymssal tetsz oleges
mdon felcserlhetok, trlhetok, vagy ms rejtjeles zenetekbol kimsolt blok-
kokkal helyettesthetok. Az ECB md nem teszi lehetov az ilyen jellegu blokkcse-
rk, trlsek s helyettestsek megbzhat detektlst, mivel a rejtjeles blokkok
nem fggnek a szomszdos blokkoktl.
Br a fent emltett problmk a nylt zenet rejtjelezs el otti tmrtsvel s
integritsvdelmi mechanizmusok (pl. kriptogrfiai ellen orzosszeg) alkalmazs-
val enyhthetok, az ECB md mgsem javasolt egynl tbb blokkbl ll nylt
zenet rejtjelezsre. Helyette a ks obb ismertetett CBC md hasznlata ajnlott.

Hatkonysg. Az ECB md elonye, hogy a kdols s dekdols sebessge


megegyezik a blokkrejtjelezo sebessgvel, valamint az, hogy a kdols s a de-
kdols is prhuzamosthat. Tovbb, az ECB md lehet ov teszi a nylt blok-
kokhoz trtno vletlen hozzfrst a rejtjeles szvegben. Ez azt jelenti, hogy a
rejtjeles szveg tetszoleges sorszm blokkjt dekdolni tudjuk a tbbi blokk de-
kdolsa nlkl, sot a dekdolt blokk mdostsa majd jrakdolsa sem rinti a
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 107

X1 X2 XN

IV YN-1

EK EK ... EK

Y1 Y2 YN

3.11. bra. Kdols CBC mdban.

tbbi blokkot. Ez igen elonys tulajdonsg pldul adatbzisfjlok rejtjelezsnl,


ami a rekordok hatkony lekrdezst s mdostst teszi lehet ov.

Hibaterjedsi tulajdonsgok. A biztonsggal s hatkonysggal kapcsolatos tu-


lajdonsgok mellett meg szoktk mg emlteni egy adott blokkrejtjelezsi md n.
hibaterjedsi tulajdonsgait. Egszen pontosan arra vagyunk kvncsiak, hogy a
rejtjeles zenet tvitele sorn keletkezett egy bites hibnak milyen hatsa van a
dekdolt nylt zenetre. Az egy bites hiba lehet egy bit rtknek vltozsa, vala-
mint egy bit trlse vagy beszrsa a rejtjeles zenetbe. Az utbbit kerethibnak
(framing error) nevezzk.
ECB md esetn a rejtjeles szveg egy bitjnek megvltozsa csak a bitet tar-
talmaz rejtjeles blokkhoz tartoz nylt blokkra van hatssal, mgpedig oly mdon,
hogy az adott nylt blokk teljes egszben hasznlhatatlan pnzfeldobs sorozatt
vlik (a blokk minden bitje 1/2 valsznusggel lesz helyes dekdols utn). Ezzel
szemben egy bit beszrsa vagy trlse a hiba helye utn tallhat blokkhatrok
elcsszst eredmnyezi (innen a kerethiba elnevezs), s ily mdon hatssal van
a beszrst illetve trlst tartalmaz rejtjeles blokkhoz tartoz nylt blokkra s az
sszes azt kveto nylt blokkra is. Ezek a blokkok hasznlhatatlan pnzfeldobs
sorozatt vlnak.

A CBC md

A CBC md mukdst a 3.11. bra szemllteti. Az ECB mdhoz hason-


lan a nylt zenetet eloszr kitltjk, majd a kitlttt nylt zenetet n bit hossz-
sg blokkokra osztjuk. Ezutn az i. rejtjeles blokkot gy lltjuk el o, hogy az i.
nylt blokkot XOR-oljuk az (i 1). rejtjeles blokkal, majd az eredmnyt kdoljuk
a blokkrejtjelezovel. A dekdolsnl az i. rejtjeles blokkot dekdoljuk, majd az
eredmnyt XOR-oljuk az (i 1). rejtjeles blokkal s gy kapjuk az i. nylt blokkot.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 108

Jellje ismt X1 , X2 , . . . , XN a nylt blokkokat s Y1 ,Y2 , . . . ,YN a rejtjeles blok-


kokat. A kdolst teht a kvetkezokppen rhatjuk le formlisan:

Y1 = EK (X1 IV) (3.17)


Yi = EK (Xi Yi1 ) i = 2, 3, . . . , N (3.18)

ahol EK jelli a blokkrejtjelezo K kulccsal paramterezett kdol fggvnyt,


a bitenknti XOR muvelet, s IV egy kezdeti vltoz (Initial Vector IV). Az
IV az elozo rejtjeles blokk szerept tlti be az els o nylt blokk kdolsnl, ahol
mg nem ll rendelkezsre egy valdi el ozo rejtjeles blokk. A dekdols kplete a
kvetkezo:

X1 = DK (Y1 ) IV (3.19)
Xi = DK (Yi ) Yi1 i = 2, 3, . . . , N (3.20)

ahol DK jelli a blokkrejtjelezo K kulccsal paramterezett dekdol fggvnyt.


Mint lthat, az elso blokk dekdolsnl szksg van az IV-re, gy gondos-
kodni kell ennek a vevohz trtno eljuttatsrl. Ez megoldhat gy, hogy az
IV-t ECB mdban rejtjelezzk, majd a kdolt IV-t az tkldtt rejtjeles zenet el
csatoljuk. Az IV rejtjelezshez ugyanazt a kulcsot hasznljuk, mint az zenet rejt-
jelezshez. A vevo eloszr az IV-t dekdolja, majd ennek ismeretben a rejtjeles
zenetbol (3.19) s (3.20) szerint visszalltja a nylt zenetet.
Valjban az IV titkossga nem kvetelmny, gyelni kell azonban az IV in-
tegritsnak vdelmre. Erre azrt van szksg, mert (3.19) szerint az IV rtke
kzvetlen hatssal van az elso visszalltott nylt blokkra. Az IV bitjeinek mdo-
stsval teht egy tmad az elso nylt blokk adott bitjeit manipullni (invertlni)
tudja. A rejtjelezs alkalmazsa ezt megakadlyozza, mert a rejtjelezett IV mdo-
stsa a tmad ltal nem prediklhat vltozsokat eredmnyez a dekdolt IV-ben
s gy a visszalltott elso nylt blokkban is.

Biztonsg. A CBC md egyik legfontosabb tulajdonsga, hogy az Yi rejtjeles


blokk rtke nemcsak az Xi nylt blokktl fgg, hanem az azt megel ozo blokkoktl
s az IV-tol is5 . Ennek a tuljadonsgnak tbb kedvez o hatsa is van. Egyrszt
azonos nylt blokkokhoz nagy valsznusggel klnbz o rejtjeles blokkok tartoz-
nak. Ez akkor is igaz, ha az azonos nylt blokkok egy nylt zenet rszei s akkor
is, ha kt klnbzo nylt zenethez tartoznak. Pontosabban, ha kt klnbz o X
s X 0 nylt zenetben valamely Xi s X j0 blokkok azonosak, akkor az ezen blok-
kokhoz tartoz Yi s Y j0 rejtjeles blokkok nagy valsznusggel csak akkor lesznek
azonosak, ha i = j s minden k = 1, 2, . . . , i 1 esetn Xk = Xk0 , valamint IV = IV 0
(azaz X s X 0 minden i-nl kisebb sorszm blokkja, valamint a kt kezdeti vltoz
rtke is megegyezik). Ebbol az is ltszik, hogy ha teljesen azonos nylt zeneteket
5 Meg kell azonban jegyezni, hogy ez a fggs csak az elozo rejtjeles blokkon, Y
i1 -en keresztl
valsul meg.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 109

klnbzo IV-t alkalmazva rejtjeleznk, akkor klnbz o rejtjeles zenetekhez ju-


tunk. Az IV zenetenknti vltoztatsa megoldhat az IV vletlen mdon trtn o
generlsval, vagy egy sorozatszm IV-knt trtn o hasznlatval.
Az ECB mddal ellenttben, a CBC md korltozott mrtkben lehet osget
nyjt a rejtjeles blokkok felcserlsnek, trlsnek s beszrsnak detektlsra.
Ez azrt van, mert egy Yi rejtjeles blokkot csak akkor lehet helyesen dekdolni, ha
azt a helyes Yi1 blokk elozi meg. Kt blokk, Yi s Y j tvitel sorn trtno felcse-
rlsekor azonban Yi dekdolsnl Y j1 -et hasznlja a vevo. Az gy eredmnyl
kapott DK (Yi ) Y j1 egy pnzfeldobs sorozat lesz, amit a vev o knnyen kiszurhet
mint egy vrt struktrtl val durva eltrst. Meg kell azonban jegyezni, hogy
a nylt zenet maga is tartalmazhat vletlen blokkokat (pl. egy vletlen mdon
generlt tranzakci azonostt), ezrt a vletlen blokkok detektlsra alapozott
integritsvdelem nem mindig megbzhat. ltalban is igaz, hogy ha az alkalma-
zs megkvnja az zenetek integritsnak vdelmt, akkor erre a clra specilis
integritsvdo mechanizmusokat (lsd ksobb) ajnlott hasznlni s nem tancsos
kizrlag a CBC md ltal nyjtott lehet osgekre hagyatkozni.
A CBC md egy ismert gyengesge a kvetkez o: Ha kt rejtjeles blokk, Yi s
Y j0 megegyezik, akkor (3.18) hasznlatval kapjuk, hogy
0
Yi1 Y j1 = Xi X j0 . (3.21)
0 -et ismeri, ezrt (3.21) alapjn kt nylt blokk XOR
Mivel a tmad Yi1 -et s Y j1
sszegre vonatkozan jut informcihoz. Innen a nylt zenetek redundancijt
felhasznlva, a tmad sikerrel ksrelheti meg Xi s X j0 megfejtst. A gyakor-
latban ennek a tmadsnak az szab korltot, hogy a rejtjeles blokkok egyenletes
eloszlsak, ezrt annak a valsznusge, hogy kett o megegyezik a szletsnapi
paradoxon alapjn becslheto. A tmads akkor hatkony, ha a megfigyelt rejtjeles
n
blokkok szma 2 2 nagysgrendjbe esik. A tipikus n = 64 esetben ez tbb gigabjt
adat megfigyelst ignyli.

Hatkonysg. A CBC mdban trtno kdols s dekdols sebessge lnyeg-


ben megegyezik a blokkrejtjelezo sebessgvel, mert a blokkonknt vgrehajtott
XOR muvelet ltal okozott ksleltets elhanyagolhat a blokkrejtjelezshez szk-
sges idohz kpest. A CBC md htrnya, hogy a kdols nem prhuzamosthat.
Egy msik htrny, hogy egy nylt blokk mdostsa az sszes ot kveto blokk
jrakdolst ignyli. Ezzel szemben a dekdols prhuzamosthat s egy nylt
blokkhoz trtno mdosts nlkli hozzfrs (olvass) nem rinti a tbbi blokkot.
Az ECB mddal ellenttben teht a nylt blokkokhoz trtn o vletlen hozzfrs a
rejtjeles szvegben csak olvass esetn hatkony.

Hibaterjedsi tulajdonsgok. Ha a rejtjeles zenet tvitele sorn az i. rejtjeles


blokk j. bitje megvltozik, akkor ez hatssal lesz az i. s az (i + 1). nylt blokk
visszalltsra. Egszen pontosan az i. visszalltott nylt blokk pnzfeldobs so-
rozat lesz, mg az (i + 1). visszalltott nylt blokkban csak a j. bit lesz hibs. Az
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 110

(i + 2). nylt blokkra a hiba hatsa mr nem terjed ki. Az egy bithibbl val fel-
pls kpessgt nszinkronizcinak is nevezzk. A CBC md teht ebben az
rtelemben nszinkronizl.
A CBC md azon tulajdonsgt, hogy az i. rejtjeles blokk j. bitjnek megvl-
toztatsa az (i + 1). visszalltott nylt blokkban csak a j. bit megvltozst ered-
mnyezi, egy tmad bizonyos esetekben sikerrel hasznlhatja ki egy adott nylt
blokk bitjeinek manipullsra. Ezrt mgegyszer hangslyozzuk a kriptogrfiai
integritsvdo mechanizmusok alkalmazsnak szksgessgt.
Az ECB mdhoz hasonlan egy bit elvesztse vagy beszrsa a rejtjeles ze-
netbol illetve zenetbe a blokkhatrok elcsszst eredmnyezi, s a hiba helyt ol
kezdve minden visszalltott nylt blokk hasznlhatatlann vlik. Bitvesztsb ol s
-beszrsbl teht nem ll helyre a rendszer.

A CFB md

Vannak olyan alkalmazsok, melyekben a rejtjelez o blokkhossznl rvidebb


zeneteket (pl. karaktereket vagy akr biteket) kell rejtjelezni. Radsul az alkal-
mazs ksleltetsre vontakoz kvetelmnyei olyanok lehetnek, hogy a kld onek
nincs ideje megvrni, mg e rvid zenetekb ol sszegyulik egy blokkra val. R-
vid zenetenknt egy blokkot elkldeni viszont pazarl lenne, gy a CBC md nem
jhet szba. A megolds a CFB md alkalmazsa lehet, mely a blokkrejtjelez ot
egy nszinkronizl kulcsfolyam rejtjelez ov alaktja.
A CFB md mukdst a 3.12. bra szemllteti. Tegyk fel, hogy s bites ka-
raktereket szeretnnk rejtjelezni. Ekkor az i. karakter, x i rejtjelezshez egy n bites
belso shift-regiszter tartalmt rejtjelezzk a blokkrejtjelez ovel, majd az eredmny
elso s bitjt XOR-oljuk xi bitjeivel s gy kapjuk az i. rejtjeles karaktert, y i -t. Ezt
egyfelol elkldjk a vevonek, msfelol jobbrl belptetjk a shift-regiszterbe. A
kvetkezo karakter rejtjelezsekor teht mr a shift-regiszter j tartalmt fogjuk
rejtjelezni. A dekdols hasonlan trtnik. A shift-regiszter aktulis tartalmt
rejtjelezzk, majd az eredmny els o s bitjt XOR-oljuk az yi rejtjeles karakter bit-
jeivel s gy kapjuk vissza az xi nylt karaktert. Ezutn yi -t jobbrl belptetjk a
shift-regiszterbe. Figyeljk meg, hogy a kdolsnl s a dekdolsnl is a blokk-
rejtjelezo EK kdol fggvnyt hasznljuk.
Mielott az elso karaktert kdolnnk, a shift-regisztert fel kell tlteni egy kezdeti
rtkkel, amit a CBC mdhoz hasonlan itt is IV-nek neveznk. Az els o nhny
rejtjeles karakter dekdolshoz a vev onek is szksge van a kldo ltal hasznlt
IV-re, gy azt valamilyen mdon el kell juttatni a vev ohz. Mivel CFB mdban
az IV a rejtjelezo fggvnyen keresztl lp be a folyamatba, ezrt az IV nyltan
is elkldheto a vevonek. Egyrszt, az IV ismerete nem segti a tmadt, mert a
blokkrejtjelezo ltal hasznlt K kulcs nlkl gysem tudja megfejteni az zenetet.
Vegyk szre, hogy a shift-regiszter tartalma gyis ismertt vlik a tmad sz-
mra az elso n/s karakter feldolgozsa utn, hiszen a tmad ltal is megfigyelhet o
rejtjeles karaktereket lptetjk be a shift-regiszterbe. A rendszer biztonsga teht
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 111

shift-regiszter (n) shift-regiszter (n)


(n) (n)

EK EK
(s) (s)
(n) (n)
s bit kivlasztsa s bit kivlasztsa
(s) yi (s)
(s) (s) (s) (s)
xi xi

3.12. bra. Kdols s dekdols CFB mdban.

nem a shift-regiszter llapotnak titokban tartsra pl, s ez a kezdeti llapotra


ppen gy igaz, mint a ksobbi llapotokra. Msrszt, a blokkrejtjelez o tulajdons-
gai miatt, az IV bitjeinek mdostsa a tmad ltal nem prediklhat vltozsokat
eredmnyez az elso (s esetleg nhny tovbbi) visszalltott nylt karakterben. A
tmad teht az IV manipullsval nem tudja a nylt szveg kivlasztott bitjeit
manipullni.
Az IV vevohz trtno eljuttatsnak legegyszerubb mdja az, amikor a kld o
az zenet karakterei elott, nyltan kldi el az IV-t a vevonek. A vevo nem alkalmaz
kln eljrst az IV feldolgozsra, hanem ugyanazt a dekdol algoritmust fut-
tatja, mint a rejtjeles karakterek vtelnl. gy a vev o karakterenknt lpteti be az
IV-t a shift-regiszterbe. A dekdol kimenetn ekzben generld karaktereket
a vevo eldobja. Mire az elso rejtjeles karakter megrkezik, a vev o shift-regisztere
mr helyes llapotban van, s gy a rejtjeles karakter dekdolsa sikeres lesz. Ez az
eljrs a CFB md nszinkronizl tulajdonsgt hasznlja ki, azaz azt, hogy n/s
rejtjeles karakter helyes vtele utn a dekdol helyes llapotba kerl, fggetlenl
attl, hogy milyen llapotban volt a karakterek vtele el ott.
Megjegyezzk, hogy br a CFB md bevezetst a rvid zenetek rejtjelez-
snek kpessge motivlta, semmi nem szl az ellen, hogy teljes blokkok rejtjele-
zsre is hasznljuk. Ms szval, lehetsges az s = n eset. Ekkor az ECB s CBC
mdok mintjra, a CFB kdol mukdst a kvetkez o mdon rhatjuk le:

Y1 = X1 EK (IV) (3.22)
Yi = Xi EK (Yi1 ) i = 2, 3, . . . (3.23)

A dekdol mukdst pedig a kvetkez o egyenletek definiljk:

X1 = Y1 EK (IV) (3.24)
Xi = Yi EK (Yi1 ) i = 2, 3, . . . (3.25)

Biztonsg. A CFB md hasonl lncolsi tulajdonsgokkal rendelkezik, mint a


CBC md: az i. rejtjeles karakter rtke nemcsak az i. nylt karaktert ol fgg, hanem
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 112

az sszes azt megelozo nylt karaktertol s az IV-tol is. Ez a fggs azonban csak
az elozo n/s rejtjeles karakteren keresztl valsul meg. Ez teht azt jelenti, hogy
egy adott rejtjeles karakter helyes dekdolshoz elegend o a megelozo n/s rejtje-
les karakter helyes rtknek ismerete. Mindenesetre, ha kt azonos nylt szveget
klnbzo IV-ket alkalmazva rejtjeleznk, akkor a rejtjeles szvegek klnbz ok
lesznek. Tovbb, rejtjeles karakterek mdostsa, trlse, beszrsa, s felcse-
rlse a hiba helye utn (mindaddig amg a hibs karakterek a shift-regiszterben
jelen vannak) pnzfeldobs sorozatokl ll nylt karakterek visszalltst ered-
mnyezi, teht sok esetben detektlhat.

Hatkonysg. CFB mdban a kdols s a dekdols sebessge a blokkrejtje-


lezo sebessgnek s/n-szerese. Ez s = n esetn egyenl osget jelent, s < n esetn
viszont a CFB md kdols sebessge kisebb, mint a blokkrejtjelez o sebessge,
ami egyszeruen abbl addik, hogy a blokkrejtjelez o kimenetnek csak tredk
rszt hasznljuk. A CBC mdhoz hasonlan a dekdols CFB mdban is prhu-
zamosthat, a kdols viszont nem. Tetsz oleges rejtjeles karaktert dekdolni lehet
a tbbi karakter dekdolsa nlkl, ha viszont a dekdolt karaktert mdostani is
akarjuk, akkor az sszes ot kveto karaktert jra kell rejtjelezni. A nylt karak-
terekhez val vletlen hozzfrs a rejtjeles szvegben teht csak olvass esetn
hatkony.

Hibaterjedsi tulajdonsgok. Tegyk fel, hogy egy rejtjeles karakter egy bitje
megvltozik. Mivel a hibs rejtjeles karakter bekerl a shift-regiszterbe, a hiba ha-
tsa kiterjed s mindaddig rezhet o lesz, amg a hibs karakter a shift-regiszterben
van. Egszen pontosan, a j. bit hibja egy rejtjeles karakterben a j. bit hibjt
okozza az adott rejtjeles karakterb ol visszalltott nylt karakterben, az azt kvet o
n/s visszalltott nylt karakter pedig hasznlhatatlan pnzfeldobs sorozat lesz.
Egy tmad teht egy adott nylt karakter bitjeit manipullni tudja, br az adott
karaktert kvetoen megjeleno vletlen karakterek azonostsa a tmads detektl-
shoz vezethet. A vletlen karakterek azonban lehet, hogy tl ks on rkeznek, s
addigra a tmad mr elrte a cljt. Tovbb, az utols tkldtt karakter mindig
tmadhat, mert azt nem kveti semmi, amib ol a tmadsra kvetkeztetni lehetne.
CFB md hasznlata esetn bitvesztsb ol s -beszrsbl szrmaz hibkbl
is felpl a rendszer, mert a hiba utn rkez o helyes karakterek kitoljk a hibt a
shift-regiszterbol s n/s lps utn visszall a helyes llapot.

Az OFB md

A CFB md htrnya, hogy egy egy bites hiba a rejtjeles szvegben tbb de-
kdolt karaktert tesz hasznlhatatlann. El ofordulhat, hogy az alkalmazs jellege
nem teszi lehetov ezen hibk dekdols elotti javtst (pl. a vett karaktereket
azonnal fel kell dolgozni, de nem hatkony minden tkldtt rejtjeles karakterhez
hibajavtst lehetov tevo redundns biteket csatolni). Ezrt ebben az esetben, ha
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 113

shift-regiszter (n)
(n)

EK

(n)

s bit kivlasztsa
(s)
(s) (s)
xi yi

3.13. bra. Kdols OFB mdban. A dekdols ugyanilyen sma szerint trtnik,
csak a rejtjeles karakterek lpnek be, s a nylt karakterek lpnek ki.

a bithiba valsznusge nagy (azaz a csatorna zajos), akkor a CFB md nem hasz-
nlhat. Ilyenkor OFB vagy CTR mdot hasznlhatunk. Ezen mdok egyik kzs
jellemezoje, hogy a blokkrejtjelezot egy szinkron kulcsfolyam rejtjelz ov alakt-
jk, melyben a rejtjelezo belso llapota (a shift-regiszter tartalma) nem fgg sem
a nylt sem a rejtjeles karakterekt ol, s gy egy rejtjeles karakterben bekvetkez o
bithiba hatsa nem terjed ki ms karakterekre.
Az OFB md mukdst a 3.13. bra szemllteti. Az brn a kdols vz-
lata lthat. Mivel szinkron kulcsfolyam rejtjelez ok esetben a dekdols smja
megegyezik a kdolssal (csupn annyi a klnbsg, hogy a bemeneten rejtjeles
karakterek lpnek be s a kimeneten nylt karakterek jnnek ki), ezrt a dekdol
mukdst sem OFB sem CTR md esetn nem illusztrljuk kln brn.
Az OFB kdol vzlata feltuno hasonlsgot mutat a CFB kdol vzlatval.
A kt rendszer kztt annyi a klnbsg, hogy OFB esetn nem a rejtjeles ka-
rakter van visszacsatolva, hanem a blokkrejtjelez o kimenete. Az i. nylt karakter,
xi rejtjelezse teht a CFB mdhoz hasonlan trtnik: a shift-regiszter aktulis
tartalmt rejtjelezzk, majd az eredmny els o s bitjt XOR-oljuk xi -vel (melyrol
feltesszk, hogy szintn s bites) s gy kapjuk az i. rejtjeles karaktert, y i -t. Ezutn
a blokkrejtjelezo kimenett belptetjk a shift-regiszterbe. Dekdolsnl ugyanez
trtnik: a shift-regiszter aktulis tartalmt rejtjelezzk, majd az eredmny els o s
bitjt XOR-oljuk yi -vel s gy kapjuk vissza xi -t. Ezutn a blokkrejtjelezo kimene-
tt belptetjk a shift-regiszterbe.
A CFB mdhoz hasonlan, az elso karakter kdolsa s dekdolsa el ott a
shift-regisztereket egy IV kezdeti rtkkel kell feltlteni.

Biztonsg. Az IV titkossgt nem kell biztostani. gyelni kell azonban arra,


hogy minden nylt zenet (ahol zenet alatt most egy karaktersorozatot rtnk) k-
dolshoz klnbzo IV-t hasznljunk. Ellenkezo esetben mindkt nylt zenetet
pontosan ugyanazzal a kulcsfolyammal fogjuk kdolni, s egy tmad a kt rejtje-
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.2. B LOKKREJTJELEZSI MDOK 114

les zenetet egymssal XOR-olva a nylt zenetek XOR sszegt kapja, melyb ol az
zenetek redundancijt ismerve sikerrel ksrleheti meg az zenetek megfejtst.
Az IV-k klnbzosgt pldul gy lehet biztostani, hogy az zenetek sorszmt
hasznjuk IV-nek.
A CFB mddal ellenttben, az OFB md esetn az i. rejtjeles karakter rtke
csak az i. nylt karaktertol (s a shift-regiszter tartalmtl) fgg. Ennek ellenre, a
CFB mdhoz hasonlan, a rejtjeles karakterek trlst, beszrst, s sorrendjnek
megvltoztatst korltozott mrtkben mgis detektlni lehet. Ez azrt van, mert
egy karakter helyes visszalltshoz a shift-regiszter tartalmnak meg kell egyez-
nie a karakter kdolsnl hasznlt shift-regiszter-tartalommal. Ha azonban y i -t
felcserljk y j -vel, akkor yi dekdolsnl a shift-regiszter tartalma az y j elollt-
snl hasznlt tartalom lesz. Ebbol kifolylag az yi -bol visszalltott nylt karakter
bitjei pnzfeldobs sorozatot alkotnak.

Hatkonysg. A CFB mdhoz hasonlan, a kdols s dekdols sebessge a


blokkrejtjelezo sebessgnek s/n-szerese. Mg CFB mdban az y i rejtjeles ka-
rakter dekdolshoz elegendo az yin/s , yin/s+1 , . . . , yi1 rejtjeles karaktereket
belptetni a shift-regiszterbe, addig OFB md esetn az IV-b ol indulva elo kell
lltani az yi kdolsnl hasznlt shift-regiszter-tartalmat. Ezt nem lehet prhu-
zamostnai, ezrt a CFB mddal ellenttben, sem a kdols sem a dekdols nem
prhuzamosthat. Ugyanakkor, mivel a generlt kulcsfolyam nem fgg a nylt
szvegtol, ezrt az off-line mdon elore kiszmthat mg mielott a nylt szveg
rendelkezsre llna. Ez nagy mrtkben gyorsthatja a kdols s dekdols muve-
lett. A megfelelo shift-regiszter-llapot elrse utn tetsz oleges rejtjeles karakter
dekdolhat, mdosthat s jrakdolhat a tbbi karakter vltoztatsa nlkl. Az
OFB md teht tmogatja a nylt karakterekhez val vletlen hozzfrst a rejtjeles
szvegben, mind olvass, mind rs esetn.

Hibaterjedsi tulajdonsgok. Mint azt mr emltettk, a CFB mddal ellentt-


ben, az OFB md nem terjeszti ki a rejtjeles szvegben keletkezett bithibt tbb
visszalltott nylt karakterre. Egy rejtjeles karaker j. bitjnek vltozsa csak a
visszalltott nylt karakter j. bitjre van hatssal. Ez egyfel ol elony, mert az OFB
mdot zajos tviteli csatorna esetn is hasznlhatv teszi. Msrszt viszont ht-
rny, mert egy tmad a visszalltott nylt szveg bitjeit manipulalni tudja a meg-
felelo rejtjeles bitek mdostsval.
Bitvesztsbol s -beszrsbl szrmaz hibbl nem pl fel a rendszer, mert
a hiba helyt kvetoen a karakterhatrok elcssznak s minden tovbbi karakter
hibsan ll vissza. Ezrt OFB md hasznlata esetn specilis jraszinkronizl
pontokat (markereket) kell beiktatni a karakterfolyamba, melyek lehet ov teszik a
szinkronbl trtnt esetleges kiessekb ol val felplst.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 115

szmll
(n)

EK
(n)
s bit kivlasztsa
(s)
(s) (s)
xi yi

3.14. bra. Kdols CTR mdban. A dekdols ugyanilyen sma szerint trtnik,
csak a rejtjeles karakterek lpnek be, s a nylt karakterek lpnek ki.

A CTR md

A CTR md mukdse nagyon hasonlt az OFB mdhoz. A klnbsg annyi,


hogy nincs visszacsatols, helyette a shift-regiszter ltal trolt rtket minden l-
psben eggyel nveljk. Ezt gy is felfoghatjuk, mintha egy szmll aktulis
rtkt rejtjeleznnk a blokkrejtjelez ovel. A CTR md mukdst a 3.14. brn
szemlltetjk.
A mukds hasonlsgbl fakadan a CTR md tulajdonsgai nagyban ha-
sonltanak az OFB md tulajdonsgaihoz. Ezrt itt most csak a lnyeges klnbs-
gekre trnk ki.

Biztonsg. CTR md esetn a genertor peridust knnyu megllaptani, hiszen


azt a szmll mrete hatrozza meg. n bites szmll esetben a peridushossz
2n . A biztonsggal kapcsolatos tbbi tulajdonsg megegyezik az OFB md tulaj-
donsgaival.

Hatkonysg. Az OFB mddal ellenttben, CTR mdban mind a kdols, mind


a dekdols prhuzamosthat, hiszen az i. karakter feldolgozshoz szksges
shift-regiszter-tartalmat a szmll rtknek megfelel o belltsval azonnal elo
tudjuk lltani. A hatkonysggal kapcsolatos tbbi tulajdonsg megegyezik az
OFB md tulajdonsgaival.

3.3. Hitelestsi feladatok


A titkostson kvl fontos biztonsgi szolgltats mg az integritsvdelem, a hi-
telests, s a letagadhatatlansg. Ezekkel a szolgltatsokkal foglalkozunk ebben
a szakaszban. Eloszr bevezetnk egy jabb kriptogrfiai primitvet, a hash fgg-
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 116

vnyt, mely gyakran alkalmazott pt oelem az integritsvdelmi s a hitelestlsi


feladatok megoldsban. Ezutn bemutatjuk a szimmetrikus kulcs zenethiteles-
tsi technikkat, majd az aszimmetrikus kulcs digitlis alrst. Utbbi mr leta-
gadhatatlansg szolgltatst is biztost. Vgl rviden sszefoglaljuk a nyilvnos
kulcsok hitelestsnek alapjait, valamint a kihvs-vlasz alap partnerhitelests
mdszereit.

Hash fggvnyek

A kriptogrfiai hash fggvnyeket leggyakrabban arra hasznljuk, hogy segt-


sgkkel a hossz zeneteket kompakt mdon reprezentljuk. Ez azrt hasznos,
mert gy szmos alkalmazsban nagy mretu zenetek helyett azok kompakt rep-
rezentcijn kell csak muveleteket vgeznnk. Az egyik legtipikusabb ilyen al-
kalmazs az, amikor nem magra az zenetre ksztnk digitlis alrst, hanem
annak kompakt reprezentcijt rjuk csak al (lsd ks obb a 3.3. szakaszt).
Formlisan, egy h : {0, 1} {0, 1}n hash fggvny tetszoleges hosszsg bi-
nris sorozatot rgztett n hosszsg binris sorozatba kpez le. A hash fggvny
kimenett szoks hash rtknek vagy lenyomatnak is nevezni.
Mivel a hash fggvny oskptere definci szerint nagyobb, mint a kptere,
ezrt az tkzsek elkerlhetetlenek. Itt tkzs alatt kt klnbz o x 6= x0 beme-
netet rtnk, melyeknek hash rtke megegyezik, azaz h(x) = h(x 0 ). Kriptogrfiai
hash fggvnyek esetben azonban azt kveteljk meg, hogy ilyen tkzseket ne-
hz legyen tallni. Pontosabban, a kriptogrfiai hash fggvnyekkel kapcsolatban
a kvetkezo hrom tulajdonsgot szoks megkvetelni:

(Eros) tkzs-ellenllsg: Egy h hash fggvny (er osen) tkzs-ellen-


ll, ha nehz feladat kt olyan klnbz o oskptrbeli x 6= x0 elemet tallni,
melyeknek megegyezik a hash rtke, azaz h(x) = h(x 0 ).

Gyenge tkzs-ellenllsg: Egy h hash fggvny gyengn tkzs-ellen-


ll, ha brmely adott oskptrbeli x elemhez nehz olyan msik oskptr-
beli x0 6= x elemet tallni, melynek hash rtke megegyezik x hash rtkvel,
azaz h(x0 ) = h(x).

Egyirnysg:Egy h hash fggvny egyirny, ha brmely y kptrbeli elem-


hez, melynek oskpe a priori nem ismert, nehz feladat olyan oskptrbeli x
elemet tallni, melynek hash rtke pontosan y, azaz h(x) = y.

Figyeljk meg a klnbsget a gyenge s az er os tkzs-ellenllsg tulajdon-


sg kztt. Gyenge tkzs-ellenllsg esetn azt kveteljk meg, hogy egy adott
x-hez nehz legyen tallni egy x0 -t, melynek hash rtke megegyezik x hash rtk-
vel. Ezzel szemben, tkzs-ellenllsg esetn nem rgztjk egyik oskptrbeli
elemet sem, hanem azt kveteljk meg, hogy nehz legyen tetsz oleges tkzst
tallni.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 117

A fenti tulajdonsgok bizonyos mrtkben sszefggnek egymssal. Knnyen


igazolhat pldul, hogy az tkzs-ellenllsgbl kvetkezik a gyenge tkzs-
ellenllsg. Tegyk fel ugyanis, hogy ltezik olyan h hash fggvny amely t-
kzs-ellenll, de nem gyengn tkzs-ellenll. Ekkor egy adott x bemenethez
knnyen tudunk tallni egy olyan x0 6= x bemenetet, melyre h(x0 ) = h(x). Ez azon-
ban azt jelenti, hogy knnyen talltunk egy tkzst, mgpedig az (x, x 0 ) prt, ami
ellentmond azon feltevsnknek, hogy h tkzs-ellenll.
Kicsit bonyolultabban bizonythat, hogy az tkzs-ellenllsgbl kvetke-
zik az egyirnysg is. A bizonytst itt nem rszletezzk. Ltjuk teht, hogy az
tkzs-ellenllsg a legerosebb tulajdonsg, ezrt rdemes az tkzs-ellenll
hash fggvnyek tervezsre koncentrlni.

A szletsnapi paradoxon
Az tkzs-ellenllsggal szoros kapcsolatban ll a hash fggvny kimenetnek
mrete, amelyet korbban n-nel jelltnk. Ahhoz, hogy ezt a kapcsolatot megrt-
sk, eloszr a szletsnapi paradoxonnal kell megismerkednnk. Ezt a kvet-
kezokppen vezethetjk be: Adott egy N elemu halmaz, melyb ol vletlenszeruen
vlasztunk k elemet visszatevssel (azaz egy elemet tbbszr is vlaszthatunk).
Krds, hogy mekkora valsznusggel lesz a vlasztott elemek kztt legalbb
kt azonos?
Eloszr annak a valsznusgt szmoljuk ki, hogy minden vlasztott elem k-
lnbzo. Ehhez vegyk szre, hogy N elembol k klnbzot N alatt a k flekppen
vlaszthatunk, s ezen k klnbzo elem lehetsges sorrendjeinek szma k!. To-
vbb, ha ismtlst is megengednk, akkor N elemb ol k-t pontosan N k flekppen
vlaszthatunk. Ebbol a keresett P valsznusg:
 
N
k!
k
P= k
N
(N k + 1) (N k + 2) . . . (N 1) N
= k
  N  
1 2 k1
= 1 1 ... 1
N N N

Ha N nagy, akkor alkalmazhatjuk a kvetkez o kzeltst:


 
1 1
1 e N .
N

Ennek segtsgvel P-re az albbi kzeltst kapjuk:


1 2 k1
P e N e N . . . e N
k(k1)
= e 2N
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 118

A fentiek alapjn annak valsznusge, hogy k elem visszatevses vlasztsa


esetn legalbb kt vlasztott elem azonos a kvetkez o:
k(k1)
1 e 2N (3.26)

A (3.26) kifejezst felhasznlva kiszmolhatjuk, hogy hny hzst kell vgezni


ahhoz, hogy valamilyen elore adott valsznusggel legyen a vlasztott elemek
kztt legalbb kt azonos elem:
r
1
k 2N ln (3.27)
1

ahol a k(k1) k 2 kzeltst alkalmaztuk. Ha pldul = 0.5, akkor k 1.177 N
addik, mg = 0.9 esetn azt kapjuk, hogy k 2.146 N.
Ha a fenti eredmnyeket arra az esetre alkalmazzuk, amikor a halmaz elemei
szletsnapok (azaz N = 365), akkor azt kapjuk, hogy 1.177 365 23 vletlen
vlasztott ember kztt 0.5 valsznusggel lesz legalbb kett o akiknek egybe esik
a szletsnapja, mg 2.146 365 41 vletlen vlasztott ember esetn egy kzs
szletsnapi party lehetosgnek valsznusge mr 0.9. Ez els ore megleponek
tunik, mert intuitve nem vrnnk, hogy ilyen kis szm ember esetn ilyen nagy
valsznusgeket kapunk. Ebbol szrmazik a szletsnapi paradoxon elnevezs.
A szletsnapi paradoxonnak mlyrehat hatsa van a hash fggvnyek bizton-n
sgra vonatkozan. A szletsnapi paradoxon rtelmben ugyanis kb. 2n = 2 2
vletlen vlasztott oskptrbeli elem kztt nagy valsznusggel lesz legalbb egy
tkzo pr. Azaz, ha n2 tlsgosan kicsi, akkor egyszeru vletlen vlasztssal hat-
konyan lehet tkzseket generlni. A mai technolgia mellett ezrt a hash fgg-
vny kimenetnek mrett legalbb n = 128 bitre rdemes vlasztani.
A vletlen vlasztson alapul tkzs-generls hash fggvnyek ellen ha-
sonlt a rejtjelezoknl trgyalt kimereto kulcskeress tmadshoz. A rejtjelez oknl
lttuk, hogy a megfelelo kulcsmret vlasztsa szksges felttele a rejtjelez o biz-
tonsgnak. Hasonlkppen, a hash fggvny kimenetnek megfelel o mretezse
szksges felttele az tkzs-ellenllsgnak. Ugyanakkor elkpzelhet o, hogy
a hash fggvny algebrai struktrjban rejl o gyengesgek miatt, a hash fgg-
vny nem tkzs-ellenll, annak ellenre, hogy kimenetnek mrete megfelel oen
nagy.

Iteratv hash fggvnyek


A gyakorlatban hasznlt hash fggvnyek iteratv mdon lltjk el o a bemenet
hash rtkt. Az itertv hash fggvnyek mukdsnek vzlata a 3.15. brn lt-
hat. Az iteratv hash fggvny lelke az f tmrt o fggvny. Az f tmrto
fggvnynek kt bemente van, ahol az egyik bemenet mrete b bit, a msik beme-
net mrete pedig n bit, azaz megegyezik a hash fggvny kimenetnek mretvel.
Az f fggvny kimenetnek mrete n bit.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 119

x zenet kitlts

...
x1 x2 xL
(b) (b) (b)
h
f (n) f (n) f (n)
CV0 ... h(x)
(n) CV1 CV2 CVL-1

3.15. bra. Az iteratv hash fggvny mukdsnek vzlata.

A bemeneti zenet feldolgozsa b bites blokkokban trtnik. Az i. itercis


lps sorn, az f fggvny egyik bementre az i. bemeneti blokk, a msik beme-
netre pedig az elozo itercis lps kimenete kerl, s az f fggvny kimenete
adja az i. itercis lps kimenett, amelyet i. lncolsi rtknek (chaining value)
neveznk, s CVi -vel jellnk. Az elso itercis lpsnl egy CV0 kezdo lncolsi
rtket hasznlunk, ami a hash fggvny specifikcijban rgztett konstans. Az
utols itercis lps kimenete adja a hash fggvny kimenett, azaz a hash rtket.
Ha a bemenet mrete nem egsz szm tbbszrse b-nek, akkor a bemeneti
zenetet a feldolgozs elott ki kell tlteni. A clnak megfelel o az egyszeru, 0 bitek-
kel trtno kitlts. Ennl azonban biztonsgosabb, ha olyan kitltst alkalmazunk
amely tartalmazza az zenet hossznak binris reprezentcijt. Erre vonatkozik a
kvetkezo ttel, amit bizonyts nll kzlnk:

3.9. ttel (MerkleDamgard- (MD) kiegszts). Tegyk fel, hogy a h iteratv


hash fggvnynk f kompresszis fggvnye tkzs-ellenll tulajdonsggal ren-
delkezik. Ha a h bementre kerlo zenetet kiegsztjk egy blokkal, amely tartal-
mazza az zenet bithosszt, akkor a h hash fggvny is tkzsmentes lesz.

Szmos iteratv hash fggvny konstrukci ltezik, amely blokkrejtjelz ot hasz-


nl tmrto fggvnyknt. Ilyen pldul a DaviesMeyer-sma, melynek tmrt o
fggvnyt a 3.16. bra szemllteti. A DaviesMeyer tmrt o fggvny esetn
a hash fggvny belso lncolsi rtke a blokkrejtjelez o bemenetre, a feldolgo-
zand zenet aktulis blokkja pedig a blokkrejtjelez o kulcsbementre kerl. A
blokkrejtjelezo kimenete s a bemenetknt hasznlt lncolsi rtk XOR sszeg
adja a kvetkezo lncolsi rtket.
A Davies-Meyer sma elonyt a kvetkezo ttel foglalja ssze:

3.10. ttel. A DaviesMeyer-sma egyirny hash fggvnyre vezet, ha az E transz-


formci vletlen lekpezssel modellezhet o.

A DaviesMeyer-sma kapcsn megjegyezzk azonban, hogy kis blokkmretu


(pl. 64 bites) blokkrejtjelezo esetn az gy nyert hash fggvny nem lesz tkzs-
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 120

xi

CVi-1 E CVi

3.16. bra. A Davies-Meyer tmrt o fggvny.

ellenll a szletsnapi paradoxon miatt. Ezrt tancsos egy legalbb 128 bites
blokkrejtjelezo hasznlata.
A blokkrejtjelezore plo hash fggvnyek htrnya, hogy nem felttlenl gyor-
sak, hiszen a blokkrejtjelezo nem az adott feladatra lett tervezve s optimalizlva.
Ezrt a gyakorlatban elterjedten hasznlt iteratv hash fggvnyek mind dediklt
hash fggvnyek, melyeket kifejezetten hash fggvnynek terveztek. A kt leg-
elterjedtebben hasznlt dediklt iteratv hash fggvny az MD5 s a SHA-1 nevet
viseli. Az MD5 128 bites, a SHA-1 pedig 160 bites hash rtket generl. A beme-
neti zenetet mindkt hash fggvny 512 bites blokkokban dolgozza fel.

zenethitelesto kdok

Az zenethitelestst s integritsvdelmet leggyakrabban zenethitelest o k-


dok (Message Authentication Code MAC) alkalmazsval valstjuk meg. Egy
zenethitelesto kdra gondolhatunk gy, mint egy kriptogrfiai ellen orzosszegre,
amelyet a kldo az zenet elkldse elott kiszmt s az zenethez csatol. A csator-
nn tvitelre kerl az zenet s az zenet ellen orzo sszege is. A vevo mindkettot
veszi, majd ellenorzi az ellenorzo sszeget. Ha az ellenorzs sikerrel jr, akkor
a vevo meg lehet gyozodve arrl, hogy az zenet srtetlen s valban a vlt (pl.
az zenetben megjellt) felad kldte. Ellenkez o esetben, az zenet integritsa az
tvitel sorn megsrlt, s mivel ez lehet rosszindulat mdosts kvetkezmnye
is, ezrt a vevo nem fogadja el az zenetet.
Formjt s funkcijt tekintve teht egy zenethitelest o kd egy hibadetek-
tl kdhoz (pl. CRC) hasonlthat. Van azonban egy nagyon fontos klnbsg
az zenethitelesto s a hibadetektl kdok kztt. Nevezetesen az, hogy a hiba-
detektl kdok csak a zajos csatornn bekvetkezett vletlen hibk detektlsra
alkalmasak, s nem kpesek egy rosszindulat tmad ltal vgrehajtott szndkos
mdostsok detektlsra. Ez egyszeruen azrt van, mert a tmad az zenet m-
dostsa utn a mdostott zenethez ki tudja szmolni az j hibadetektl kdot.
A vevo teht a mdostott zenetet s a hozz tartoz helyes hibadetektl kdot
kapja meg s gy nem veszi szre a mdostst.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 121

Ezzel szemben az zenethitelesto kdok nemcsak a vletlen hibkat, hanem a


rosszindulat mdostsokat is kpesek detektlni. Ezen kpessgk abbl addik,
hogy a hibadetektl kddal ellenttben, az zenethitelest o kd rtke nemcsak
magtl az zenettol fgg, hanem egy a kldo s a vevo ltal megosztott titkos in-
formcitl, egy kulcstl is. A tmad ezen titok hinyban nem tudja kiszmtani
a mdostott zenethez tartoz helyes zenethitelest o kdot, s gy a mdosts
nem maradhat szrevtlen. Ezen tlmen oen a vevo tudja, hogy helyes zenethi-
telesto kd kiszmtsra csak a kldo (s termszetesen maga a vevo) alkalmas.
Ezrt meg lehet gyozodve arrl, hogy minden helyes zenethitelest o kddal vett
(s nem sajt magtl szrmaz) zenet csakis a kld otol szrmazhat.
A fenti gondolatok az zenethitelests kvetkez o modelljhez vezetnek: Az A
kldo s a B vevo rendelkezik egy kzs KAB kulccsal. KAB-t rajtuk kvl ms nem
ismeri. Az m zenet elkldse elott A kiszmolja az m-hez tartoz = MAC KAB (m)
zenethitelesto kdot, ahol MACKAB a KAB kulccsal paramterezett zenethitele-
sto fggvny. A tovbbiakban a zenethitelest o kdot rviden MAC rtknek,
a MACKAB zenethitelesto fggvnyt pedig rviden MAC fggvnynek fogjuk ne-
vezni. A elkldi, B pedig megkapja a MAC rtkkel kiegsztett m| zenetet. K AB
ismeretben B kiszmolja MAC KAB (m)-et, s az eredmnyt sszehasonltja -vel.
Egyenlosg esetn B elfogadja az zenetet, ellenkez o esetben eldobja azt.
A MAC fgvnnyel szemben az albbi kvetelmnyeket tmasztjuk:
a) A MACK fggvny olyan szukto transzformci legyen, mely tetsz oleges hosz-
szsg zeneteket fix hosszsg, n bites MAC rtkbe kpez.
b) A K kulcs ismeretben tetszoleges m zenethez knnyu legyen kiszmolni
MACK (m)-et.
c) A K kulcs ismeretnek hinyban viszont legyen MAC K (m) kiszmtsa nehz
feladat, mg akkor is, ha nagy szm (m i , MACK (mi )) pr ll rendelkezsre,
ahol termszetesen m / {mi }.
d) A K kulcs meghatrozsa legyen nehz feladat mg nagy szm (m i , MACK (mi ))
pr ismerete esetn is.
Megjegyezzk, hogy ha egy MAC fggvny eleget tesz a 3) kvetelmnynek,
akkor kielgti a 4) kvetelmnyt is. Ha ugyanis a 4) kvetelmnyt nem elg-
ten ki, akkor egy tmad meg tudn hatrozni a K kulcsot s annak ismeretben
tetszoleges zenethez tudna MAC rtket generlni, azaz a MAC fggvny nem
elgthetn ki a 3) kvetelmnyt sem. Fordtva azonban nem ll fenn az impli-
kci, ugyanis elmletileg elkpzelhet o, hogy a K kulcs ismerete nem szksges
ahhoz, hogy egy zenethez helyes MAC rtket generljon a tmad.

A CBC-MAC
A CBC-MAC fggvny mukdsnek gyors megrtshez kpzeljk el, hogy az
zenetet CBC mdban rejtjelezzk egy blokkrejtjelez ovel, azzal a mdostssal,
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 122

hogy a rejtjeles blokkokat az utols kivtelvel mind eldobjuk. A MAC fggvny


kimenete az utols rejtjeles blokk lesz.
Formlisan, a CBC-MAC mukdst a kvetkez okppen rhatjuk le: Adott
egy m zenet s egy K kulcs, ahol K mrete megegyezik a hasznlni kvnt blokk-
rejtjelezo kulcsmretvel. Az m zenetet eloszr kitltjk, hogy mrete a blokk-
rejtjelezo n blokkmretnek tbbszrse legyen. Mivel magt az m-et is el fog-
juk kldeni a vevonek, ezrt a kitlts lehet nagyon egyszeru, pldul az zenet
megfelelo szm 0 bittel trtno kiegsztse. Jelljk a kiegsztett zenetet X-
szel. X-et n bites blokkokra osztjuk, melyeket X1 , X2 , . . . , XN -nel jellnk. Legyen
IV = 0 (azaz a csupa 0 bitbol ll blokk). A CBC md mukdst definil (3.17)
s (3.18) kifejezsek, valamint a megadott IV s K felhasznlsval szmtsuk ki
az utols rejtjeles blokkot, CN -t. Ez lesz a CBC-MAC fggvny kimenete, azaz
MACK (m) = CN . Ha rendelkezsre ll egy K 0 6= K msik kulcs is, akkor a MAC
fggvny kimenetre opcionlisan nem CN -et vezetjk, hanem EK (DK 0 (CN ))-et,
ahol E jelli a blokkrejtjelezo kdolt, D pedig a dekdol fggvnyt.
Tekintsk most t a MAC fggvnnyel szemben tmasztott kvetelmnyek lis-
tjt. A CBC-MAC fggvny tetszoleges mretu zenethez egy n bites MAC r-
tket generl, ahol n az alkalmazott blokkrejtjelez o blokkmrete. A K kulcs is-
meretben a MAC szmtsa egyszeru, a CBC kdolssal megegyez o mdon tr-
tnik. A K kulcs meghatrozsa megfigyelt zenet MAC prokbl lnyegben
a blokkrejtjelezo feltrst jelenti, teht megfelel o erossgu blokkrejtjelezo esetn
ez biztosan nehz feladat. Hasonlkppen nehznek tunik a MAC meghatrozsa
egy adott zenethez, ha a kulcs nem ismert.

Hash fggvnyre plo MAC fggvnyek


A legegyszerubben gy kovcsolhatunk egy hash fggvnyb ol MAC fggvnyt,
hogy a kulcsot hozzfuzzk az zenethez, majd a kulccsal megtoldott zenetnek
kiszmtjuk a hash rtkt s az eredmnyt tekintjk az eredeti zenet MAC rt-
knek. Attl fggoen, hogy a kulcsot az zenet el vagy mg fuzzk, alapvet oen
kt mdszert klnbztethetnk meg, melyeket titok prefix s titok szuffix md-
szereknek hvunk.

Titok prefix mdszer. Nevbol addan a titok prefix mdszer az zenet el fuzi
a kulcsot. Az m zenet MAC rtkt teht a kvetkez o mdon szmoljuk:

MACK (m) = h(K|m) (3.28)

ahol h jelli a hash fggvnyt, melyre a MAC konstrukci pl.


Az gy nyert MAC fggvny h tulajdonsgaibl addan szukt o transzform-
ci s a teljes input ismeretben (azaz a K kulcsot is ismerve) a MAC rtk knnyen
szmolhat. A hash fggvny egyirnysga miatt abban remnykednk, hogy egy
adott MAC rtk ismeretben a K kulcs megfejtse nehz feladat. Vegyk azonban
szre, hogy a hash fggvny egyirnysga azt jelenti, hogy egy adott MAC rtk
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 123

K m m'

f ... f f ... f
CV0 ' = MAC
K(m|m'
)
CV1 = MACK(m)

3.17. bra. A titok prefix mdszer elleni tmads.

ismeretben a teljes input (kulcs s zenet) megfejtse nehz feladat. A mi ese-


tnkben azonban az input egy rsze, az zenet ismert. Krdses teht, hogy ez a
konstrukci milyen garancit biztost a kulcs megfejtse ellen. Tovbbi problma,
hogy ha h egy iteratv hash fggvny, akkor a tmad egy m zenet MAC r-
tknek ismeretben brmely m|m0 zenet 0 MAC rtkt ki tudja szmolni mint
0 = h (m0 ), ahol h ugyanaz a hash fggvny mint h, csak a kezdeti lncvltoz-
jnak rtke . Ezt a 3.17. bra szemllteti.

Titok szuffix mdszer. Egy msik lehet osg hash fggvny alap MAC fgg-
vny konstrulsra a titok szuffix mdszer. Ekkor a kulcsot az zenet mg fuz-
zk, majd a kulccsal gy kiegsztett zenetnek kiszmoljuk a hash rtkt s az
eredmnyt tekintjk az zenet MAC rtknek:

MACK (m) = h(m|K) (3.29)

A titok szuffix mdszer tulajdonsgai hasonltanak a titok prefix mdszer tulaj-


donsgaihoz azzal a klnbsggel, hogy a titok prefix mdszernl emltett tmads
ebben az esetben nem kivitelezheto. A mdszer egy gyengesge, hogy ha h egy
iteratv hash fggvny, akkor a kulcsot csak a MAC rtk kiszmtsnak utols
lpsben hasznljuk fel. Ez problmhoz vezethet, ha a hash fggvny nem tk-
zsmentes (pl. az alkalmazs jellegb ol addan a MAC rtk hosszra vonatko-
zan korltozsaink vannak). Tegyk fel ugyanis, hogy a tmad (a szletsnapi
paradoxont hasznlva) tallt egy m s egy m 0 zenetet, melyekre h(m) = h(m0 ).
Knnyen ltszik, hogy ekkor MAC K (m) = h(m|K) = h(m0 |K) = MACK (m0 ), hi-
szen m s m0 feldolgozsa utn a hash fggvny bels o lncvltozjnak rtke a
kt esetben megegyezik. Ms szval, ha a tmad megszerzi az egyik zenet MAC
rtkt, akkor azt fel tudja hasznlni a msik zenet MAC rtkeknt is.

HMAC. A HMAC a gyakorlatban igen elterjedten hasznlt, hash fggvnyre


plo MAC fggvny. A HMAC fggvnyt a kvetkez o kifejezs definilja:

MACK (m) = h(K + opad | h(K + ipad | m)) (3.30)

ahol
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 124

h egy iteratv hash fggvny, ami az zenetet B bjtos blokkokban dolgozza


fel,
ipad (inner pad) egy B bjt hossz konstans blokk, melyben minden bjt
rtke 36,
opad (outer pad) egy B bjt hossz konstans blokk, melyben minden bjt
rtke 5C, s
K + a K kulcs csupa 0 bittel kiegsztve, hogy hossza elrje a B bjtot.

A K kulcs tetszoleges hosszsg lehet. B rtke tipikusan 64, gy K ltalban


rvidebb, mint B bjt. Ha mgis hosszabb lenne, akkor el oszr kiszmoljuk h(K)-t
s ezt hasznljuk kulcsknt. A HMAC ltal definilt MAC rtk mrete az alkal-
mazott h hash fggvny kimenetnek mrett ol fgg. Ha pldul h az MD5 hash
fggvny (HMAC-MD5), akkor a kiszmtott MAC mrete 128 bit (16 bjt), mg
a SHA-1 hash fggvny hasznlata esetn (HMAC-SHA1) a MAC mrete 160 bit
(20 bjt).

Digitlis alrs

Az elozoekben trgyalt zenethitelesto kdok hasznos szolgltatsokat nyjta-


nak: lehetov teszik a csatornn tkldtt zenetek (vletlen s szndkos) mdo-
stsnak detektlst s az zenetek kld ojnek hitelestst. Az zenethitelest o
kdok htrnya azonban az, hogy ezeket a szolgltatsokat csak a vev o szmra
biztostjk. A vevo egy kvlll harmadik felet mr nem tud meggy ozni arrl,
hogy egy vett zenet srtetlen s a kld otol szrmazik. Ez azrt van, mert az ze-
nethitelesto kd rtke egy olyan titkos kulcstl fgg, melyet a vev o is ismer. A
harmadik fl teht nem tudja biztosan eldnteni, hogy az adott zenethitelest o
kdot a kldo vagy a vevo generlta. Ez azt jelenti, hogy a kld o brmikor leta-
gadhatja, hogy egy zenetet kldtt a vev onek, s a vevo nem tudja bebizonytani,
hogy a kldo hazudik. Ms szval, az zenethitelest o kdok nem biztostanak
letagadhatatlansg szolgltatst.
A letagadhatatlansg szolgltats megvalstsra olyan aszimmetrikus mecha-
nizmusra van szksg, melynek segtsgvel csakis az zenet kld oje llthatja elo
az zenet eredetre vonatkoz bizonytkot (gy azt hamistani nem lehet), de a
rendszer brmely rsztvevoje (kztk a vevo is) ellenorizni tudja azt. Ezt a mecha-
nizmust digitlis alrsnak nevezzk, mivel tulajdonsgai nagy mrtkben hason-
ltanak a hagyomnyos alrs tulajdonsgaihoz. Egy fontos klnbsg a digitlis
s a hagyomnyos alrs kztt az, hogy a digitlis alrs nem az zenet anyagi
hordozjhoz (pl. papr) ktodik, hanem maghoz az zenethez. gy nemcsak az
zenet eredetre vonatkozan nyjt garancit, hanem segtsgvel az zenet tartal-
mban az alrs generlsa utn bekvetkezett mdostsokat is detektlni lehet.
sszefoglalva teht a digitlis alrs egy olyan mechanizmus, mely biztostja az
zenetek integritst s hitelessgt, valamint az zenetek eredetnek letagadhatat-
lansgt.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 125

A digitlis alrs fent emltett aszimmetrikus tulajdonsga miatt, a jl ismert


digitlis alrs smk mind nyilvnos kulcs kriptogrfira plnek. Egy digitlis
alrs sma kt komponensbol ll: egy S alrs-generl algoritmusbl s egy V
alrs-ellenorzo algoritmusbl. Az alrs-generl algoritmus az alr fl privt
kulcsval van paramterezve, mg az ellen orzo algoritmus az alr fl nyilvnos
kulcst hasznlja paramterknt. Jellsben ezt gy rzkeltetjk, hogy az alr
fl azonostjt als indexbe rjuk, azaz az A privt kulcsval paramterezett alr
algoritmust SA -val, az A nyilvnos kulcsval paramterezett ellen orzo algoritmust
pedig VA -val jelljk. Az SA algoritmus bemenete az alrni kvnt m zenet, ki-
menete pedig a = SA (m) digitlis alrs. A VA ellenorzo algoritmus bemenete
egy m zenet s egy alrs, kimenete pedig true ha A rvnyes alrsa m-en,
s false egybknt: 
true ha = SA (m)
VA (m, ) = (3.31)
false egybknt
rtelemszeruen, az ellenorzst vgzo fl akkor fogadja el az alrst hitelesnek, ha
az ellenorzo algoritmus kimenete true.
Termszetesen az ellenorzs vgrehajtshoz az ellenorzo flnek ismenie kell
az alr fl nyilvnos kulcst, mert ez szksges az ellen orzo algoritmus helyes
paramterezshez (azaz VA hasznlathoz). Az alr fl hiteles nyilvnos kulcs-
nak megszerzse kln feladat, amit a gyakorlatban legtbbszr valamilyen nyil-
vnos kulcs infrastruktra (Public Key Infrastructure PKI) segtsgvel oldanak
meg. Ezekkel a krdsekkel ksobb foglalkozunk rszletesebben.
Tekintsnk egy nyilvnos kulcs rejtjelez o rendszert. Az A rsztvevo kdol
transzformcijt (melyet A nyilvnos kulcsa hatroz meg) jelljk E A -val, az eh-
hez tartoz dekdol transzformcit (melyet A privt kulcsa hatroz meg) pedig
DA -val. Ha minden m zenetre teljesl az E A (DA (m)) = m egyenlosg, akkor az
adott nyilvnos kulcs rendszerbol a kvetkezokppen kszthetnk digitlis al-
rs smt. Az alrs-generl SA algoritmus legyen a titkost rendszer D A dek-
dol transzformcija (SA (m) = DA (m)), az alrs-ellenorzo VA algoritmust pedig
definilja a kvetkezo kifejezs:

true ha EA () = m
VA (m, ) = (3.32)
false egybknt
Ms szavakkal, az alrst gy generljuk, hogy az m zeneten a titkost rend-
szer dekdol transzformcijt alkalmazzuk, az alrst pedig gy ellen orizzk,
hogy a alrson a kdol transzformcit alkalmazzuk, s az eredmnyt ssze-
hasonltjuk az eredeti m zenettel. Ha az alrs hiteles, azaz = D A (m), akkor
a titkost rendszer fenti tulajdonsga miatt E A () = m egyenlosgnek teljeslnie
kell.
Hangslyozzuk, hogy a fenti digitlis alrs konstrukci csak abban az esetben
mukdik, ha a nyilvnos kulcs titkost rendszer rendelkezik azzal a tulajdonsg-
gal, hogy EA (DA (m)) = m minden m-re teljesl. Ilyen pldul az RSA rendszer,
melyre EA (DA (m)) = (md )e mod n = (me )d mod n = DA (EA (m)) = m. Ez azonban
nem minden nyilvnos kulcs titkost rendszernl van gy.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 126

Lenyomat alrsa
A fent bevezetett digitlis alrs sma htrnya, hogy az alrs mrete fgg az
zenet mrettol. Gyakorlati okokbl azonban clszeru ezt a fggst megszn-
tetni. Ezt gy tehetjk meg, hogy egy alkalmas nyilvnos tkzsellenll hash
fggvny felhasznlsval, nem az eredeti zeneten, hanem annak hash rtkn
alkalmazzuk az alrs-generl algoritmust. Ekkor az alrt zenet m | S A (h(m))
alak lesz. A hash rtk alrsa azrt el onys mert gy az alrs-generlsnak
ideje lnyegben fggetlenn vlik az zenet mrett ol6 . Ez azt jelenti, hogy nagy
mretu zeneteket is hatkonyan tudunk alrni.
gyelnnk kell azonban arra, hogy ha egy tmad megfigyel egy m | S A (h(m))
alrt zenetet, s tall egy olyan m 0 zenetet melyre h(m0 ) = h(m), akkor az
SA (h(m)) alrst felhasznlhatja az m 0 zenet hiteles alrsaknt, hiszen ekkor
nyilvn SA (h(m0 )) = SA (h(m)) is teljesl. Csakhogy ha h tkzsellenll hash
fggvny, akkor a tmad gyakorlatilag nem tallhat azonos hash rtkre vezet o
m0 zenetet. Megjegyezzk, hogy a gyakorlatban, a tmad feladatt tovbb nehe-
zti, hogy nemcsak a h(m0 ) = h(m) egyenlosgnek kell teljeslnie, hanem m0 -nek
rtelmes, a tmad cljainak megfelel o csal tartalm zenetnek kell lennie.

Nyilvnos kulcs hitelests

Aszimmetrikus kulcs rejtjelezs vagy digitlis alrs hasznlata esetn szk-


sges, hogy a kommunikl felek ismerjk egyms hiteles nyilvnos kulcst. Most
azt vizsgljuk, hogy hogyan lehet a hiteles nyilvnos kulcsokhoz hozzjutni. Ve-
gyk szre, hogy ha A szeretn megszerzni B nyilvnos kulcst, K B -t, akkor nem
j megolds az, ha B mindenfle vdelem nlkl elkldi KB -t A-nak. Igaz ugyan,
hogy KB nem titkos, ezrt egy hallgatz tmadtl nem kell tartani. Azonban ha
az X tmad aktv tmadst is kpes vgrehajtani, akkor KB -t az tvitel sorn sajt
nyilvnos kulcsval, KX -szel helyettestheti. Ekkor A B-nek sznt zeneteit KX -
szel fogja rejtjelezni, s gy azokat X dekdolni tudja. S ot, a dekdolt zeneteket
KB -vel rejtjelezve s tovbbtva B fel, X a tmadst szrevtlenl tudja vgrehaj-
tani. Ezrt nagyon fontos, hogy A meg tudjon gy ozodni a kulcs hitelessgrol, azaz
arrl, hogy a kulcs amit B nyilvnos kulcsnak hisz, valban B nyilvnos kulcsa.
Ezen problma megoldsra a gyakorlatban a nyilvnos kulcs tanstvnyok
hasznlata terjedt el. A nyilvnos kulcs tanstvny egy adatstruktra, mely mini-
mlisan a kvetkezo adatokat tartalmazza:

a nyilvnos kulcsot,
a nyilvnos kulcs tulajdonosnak azonostjt, s
egy alrst, mely az elozo kt mezot elvlaszthatatlanul sszekti.
6 Azzenet hash rtknek kiszmtsa tovbbra is fgg az zenet mrettol, de a hash szm-
tsa mg gy is tbb nagysgrenddel gyorsabb, mint az alrs generlsa, ezrt az alrs-generl
algoritmus futsi ideje dominl.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 127

Az alrst ltalban egy megbzhat fl, a hitelests szolgltat (Certification


Authority CA) generlja, aki kompetens annak meghatrozsban, hogy a tan-
stvny ltal tartalmazott kulcs s azonost valban sszetartoznak-e. A tanst-
vny lnyegben ezen megbzhat fl lltsa, miszerint az adott kulcs az adott tu-
lajdonoshoz tartozik. Kibocsjtsa utn a tanstvny bekerl egy nyilvnos adat-
bzisba, ahonnan igny szerint letlthet o.
A gyakorlatban a tanstvny tovbbi adatokat is tartalmaz, mint pldul a ta-
nstvny alrjnak az azonostjt, a kibocsjts dtumt, a tanstvny rv-
nyessgi idejt, s a tanstvny hasznlatra vonatkoz informcit.
A legegyszerubb esetben a rendszerben csak egy hitelests szolgltat van,
s az bocsjtja ki minden felhasznl tanstvnyt. Ekkor minden felhasznl
minden tanstvnyt ellenorizni tud, feltve hogy ismeri a hitelests szolgltat
nyilvnos kulcst. Ehhez tipikusan akkor juthat hozz biztonsgosan mikor a sa-
jt tanstvnyt ignyli a hitelests szolgltatnl, s szemlyazonossgnak iga-
zolsa rdekben szemlyesen megjelenik. Az egyetlen hitelests szolgltatra
plo rendszer htrnya, hogy nem sklzhat, azaz a felhasznlk szmnak n-
vekedsvel a rendszer hasznlata egyre nehzkesebb vlik, a megbzhat muk-
ds esetleg nem is garantlhat.
Nagy rendszerekben tbb hitelests szolgltat tallhat, melyek valamilyen
struktra szerint szervezodnek. A sklzhatsggal kapcsolatos problmk megol-
dsra ltalban clszeru a hitelests szolgltatkat hierarchiba szervezni. Tiszta
hierarchia esetn a hierarchia cscsn egyetlen szolgltat ll, amit gykr szol-
gltatnak (root CA) hvunk. Ez alatt helyezkednek el az els o szintu szolgltatk,
majd alattuk a msodik szintuek, s gy tovbb. Tipikusan minden szolgltat a
kzvetlenl alatta elhelyezkedo szolgltatk szmra bocsjt ki tanstvnyokat,
azaz minden alatta elhelyezkedo szolgltat azonostjt s nyilvnos kulcst al-
rja. A felhasznlk tanstvnyt a legals szinten elhelyezked o szolgltatk bo-
csjtjk ki. Ezt a fajta szervezodst a 3.18. bra szemllteti.
Csakgy mint az egyetlen hitelests szolgltatt tartalmaz rendszerben, itt is
feltesszk, hogy minden felhasznl ismeri a gykr szolgltat hiteles nyilvnos
kulcst. Ez azonban mg nem elg egy adott felhasznl tanstvnynak ellen-
orzshez, hiszen a felhasznlk tanstvnyait nem a gykr szolgltat rja al.
Amire szksg van az egy tanstvny-lnc, mely a kvetkez o tulajdonsgokkal
rendelkezik:

A lnc elso eleme egy olyan tanstvny, amit a gykr szolgltat adott ki,
s gy a benne tallhat nyilvnos kulcs hitelessge brki ltal ellen orizheto.
A lnc minden tovbbi tanstvnyra igaz, hogy ellen orizheto a lncban ot
kzvetlenl megelozo tanstvnyban tallhat nyilvnos kulccsal.
A lnc utols tanstvnya tartalmazza a krdses, hitelesteni kvnt fel-
hasznli nyilvnos kulcsot.

Knnyen lthat, hogy egy ilyen tanstvny-lnc birtokban s a gykr szolgl-


tat nyilvnos kulcsnak ismeretben brmely felhasznl brmely msik felhasz-
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 128

gykr hitelests
szolgltat kulcsa

kiadott tanstvny

... ... ... ...


felhasznlk kulcsai

3.18. bra. Hitelests szolgltatk tiszta hierarchikus szervez odsnek illusztr-


cija. Minden nyl egy kibocsjtott tanstvnyt reprezentl, ahol a nyl irnya a
kibocsjts irnyra utal.

nl tanstvnyt ellenorizni tudja. Ehhez a lnc tanstvnyait kell sorrendben


ellenorizni.
Fontos megjegyezni, hogy tanstvny-lncok hasznlata esetn, a lnc min-
den egyes tanstvnynak kibocsjtjban meg kell bznunk. Ha egy hitelests
szolgltat nem felttlenl megbzhat, akkor a lnc ellen orzse az ezen szolgl-
tat ltal kibocsjtott tanstvnynl megakad, hiszen az abban tallhat nyilvnos
kulcs hitelessgben nem lehetnk biztosak.
Elofordulhat, hogy egy tanstvnyt mg a lejrati dtuma el ott vissza kell
vonni. Ennek tipikus oka az lehet, hogy a tanstvnyban trolt adatok megvl-
toztak vagy a tanstvny ltal hitelestett nyilvnos kulcshoz tartoz privt kulcs
kompromittldott (azaz azt a jogos tulajdonosn kvl valaki ms is megszerez-
hette). A visszavons gy trtnik, hogy a hitelests szolglatat a tanstvnyt
(annak azonostjt) elhelyezi a tanstvny visszavonsi listn (Certificate Re-
vocation List CRL). Ez egy rendszeres id okznknt (pl. naponta) frisstett, nyil-
vnos lista, amit a szolgltat alrsval hitelest.
Vizsgljuk meg ezek utn, hogy hogyan trtnik egy egyszeru digitlis alrs
ellenorzse. Eloszr is meg kell szerezni az alrs ellen orzshez szksges nyil-
vnos kulcsot tartalmaz tanstvnyt, illetve a gykr hitelest o kulcstl az adott
tanstvnyig vezeto tanstvny-lncot. Minden gy megszerzett tanstvnyt le
kell ellenorizni, ami egyrszt abbl ll, hogy ellen orizzk a tanstvnyban tall-
hat digitlis alrst, msrszt ellen orizzk, hogy a tanstvny nincs-e vissza-
vonva. Utbbi ellenorzshez meg kell szerezni a tanstvny kibocsjtjnak leg-
frissebb tanstvny visszavonsi listjt, ellen orizni kell annak alrst, s meg
kell gyozodni arrl, hogy a krdses tanstvny nem szerepel a listn. Mivel eze-
ket az ellenorzseket a tanstvny-lnc minden elemre vgre kell hajtani, ezrt a
digitlis alrs ellenorzse nagy komplexits feladat, s az is lthat, hogy komoly
infrastruktrt ignyel.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 129

Partnerhitelests

A partnerhitelesto protokollok feladata, hogy lehet ov tegyk a kommunikl


felek szmra egyms identitsnak megbzhat ellen orzst. A megbzhat jelzo
itt arra utal, hogy a felek valamilyen mdon bebizonytjk lltott identitsukat. Az
identits bizonytsa tbbfle mdszerrel is trtnhet, melyek alapvet oen hrom
osztlyba sorolhatk:
Biometriai mdszerek: Ezen mdszerek els osorban szemlyek identits-
nak bizonytsra hasznlatosak. A bizonyts alapjt valamilyen szemlyes
biolgiai jellemzo (pl. hang, ujjlenyomat, risz mintzat, stb.) kpezi.
Hardver alap mdszerek: Ezen mdszereknl a bizonyts alapja valami-
lyen hardver token (badge, chip-krtya, stb.) birtoklsa.
Algoritmikus mdszerek: Ezeknl a mdszereknl a bizonyts alapja va-
lamilyen szmts elvgzsnek kpessge.
Az algoritmikus partnerhitelestsi mdszerek maguk is tbbflk lehetnek. Ti-
pikus pldk a kvetkezok:
Jelszavak: Egy gyakran hasznlt algoritmikus mdszer valamilyen titok is-
meretnek bizonytsa magnak a titoknak a felfedsvel. Ezt jelsz alap
partnerhitelestsnek nevezzk.
Kriptogrfiai kihvsvlasz protokollok: Ha a felek kpesek bonyolul-
tabb szmtsok elvgzsre, akkor kriptogrfiai alap mdszereket is hasz-
nlhatnak. Ebben az esetben egy titkos kulcs hasznlata (pl. egy vletlen
kihvs digitlis alrsa) kpezi az identits bizonytsnak alapjt, azzal a
felttelezssel, hogy a titkos kulcs valamilyen mdon a bizonytst vgz o
flhez ktodik.
Zero-knowledge (ZK) protokollok: Lteznek olyan kriptogrfiai techni-
kk, melyek garantljk, hogy az identits bizonytsa sorn, a bizonyts
alapjt kpezo titokrl semmilyen informci nem szivrog ki azon kvl,
hogy a bizonytst vgzo fl ismeri a titkot. Ezeket zero-knowledge proto-
kolloknak nevezzk.
Az albbiakban kizrlag a kriptogrfiai kihvsvlasz protokollokkal foglalko-
zunk.
Egy kihvsvlasz protokollban A gy hitelesti magt B fel, hogy bebizo-
nytja, birtokban van egy olyan kriptogrfiai kulcsnak, amely valamilyen mdon
A-hoz van rendelve (azaz B tudja, hogy csak A ismerheti). A bizonytshoz A
hasznlja a kulcsot, azaz rejtjelez, dekdol, vagy alr valamit. A visszajtszsos
tmadsok megakadlyozsa rdekben, A egy B ltal frissen generlt elemen (ki-
hvson) alkalmazza a kulcsot, gy A vlasza nemcsak a kulcstl fgg, hanem a
kihvstl is.
Tekintsk a kvetkezo, ptoelemknt szolgl protokoll-rszleteket:
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.3. H ITELESTSI FELADATOK 130

Partnerhitelests szimmetrikus kulcs rejtjelezssel:

(1) B A: NB
(2) A B: EKAB (NB )

B generl egy NB friss vletlenszmot, s nyltan elkldi azt A-nak. A a KAB


kulccsal rejtjelezi NB -t, ahol KAB egy csak A s B szmra ismert szimmetri-
kus kulcs. B dekdolja A vlaszt, s ha visszakapta a korbban elkldtt N B
szmot, akkor A hitelestette magt. A hitelests alapja, hogy (B-n kvl)
csak A tud rejtjelezni KAB -vel.

Partnerhitelests szimmetrikus kulcs dekdolssal:

(1) B A: EKAB (NB )


(2) A B: NB

B generl egy NB friss vletlenszmot, rejtjelezi azt a KAB kulccsal, ahol KAB
egy csak A s B szmra ismert szimmetrikus kulcs, s az eredmnyt elkldi
A-nak. A dekdolja B zenett, majd visszakldi a dekdols eredmnyt
B-nek. B ellenorzi A vlaszt, s ha az megegyezik az NB szmmal, akkor A
hitelestette magt. A hitelests alapja, hogy (B-n kvl) csak A tud dek-
dolni KAB-vel.

Partnerhitelests digitlis alrssal:

(1) B A: NB
(2) A B: SA (NB )

B generl egy NB friss vletlenszmot, s nyltan elkldi azt A-nak. A digi-


tlisan alrja NB -t. B ellenorzi A alrst, s ha az alrs hiteles, akkor A
hitelestette magt. A hitelests alapja, hogy csak A tud rvnyes digitlis
alrst generlni A nevben NB -n.

Partnerhitelests nyilvnos kulcs rejtjelezssel:

(1) B A: EA (NB )
(2) A B: NB

B generl egy NB friss vletlenszmot, rejtjelezi azt A nyilvnos kulcsval,


s az eredmnyt elkldi A-nak. A dekdolja B zenett sajt privt kulcsval,
majd visszakldi a dekdols eredmnyt B-nek. B ellen orzi A vlaszt, s
ha az megegyezik az NB szmmal, akkor A hitelestette magt. A hitelests
alapja, hogy csak A tud dekdolni A privt kulcsval.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.4. K ULCSCSERE PROTOKOLLOK 131

Az alkalmazs jellegtol fgg, hogy a fenti ptoelemeket hogyan lehet fel-


hasznlni a gyakorlatban. Ha csak egyirny partnerhitelestsre van szksg, ak-
kor a fenti protokollok nmagukban is meglljk a helyket. Ezzel ellenttben,
egy olyan alkalmazsban, ahol klcsns partnerhitelestsre van szksg a fenti
protokollokat esetleg tovbbi elemekkel kell kiegszteni s krltekint oen kell
kombinlni. Pldaknt prbljunk meg a fenti, szimmetrikus kulcs rejtjelezsre
plo egyirny protokoll-rszletb ol klcsns partnerhitelestst vgz o protokollt
konstrulni. Naivan gy gondolhatnnk, hogy a protokollrszletet mindkt irnyba
lejtszva a feladatot megoldottuk:

(1) A B: NA
(2) B A: EKAB (NA ) | NB
(3) A B: EKAB (NB )

Vegyk szre azonban, hogy a fenti protokoll hibs. Egy tmad A zeneteit
visszajtszva, meg tudja szemlyesteni B-t A fel. A tmads menete a kvetkez o:

A XB : NA
XB A: NA
A XB : EKAB (NA ) | NA0
XB A: EKAB (NA ) | NX
A XB : EKAB (NX )

A fenti tmadsban az XB tmad rejtjelezo orkulumknt hasznlja A-t. Ezt


gy ri el, hogy visszajtsza A NA kihvst A-nak B nevben. Ekkor A el olltja
EKAB (NA )-t. X-nek pontosan erre van szksge az els o protokoll pldny befejez-
shez. Hasonl mdon A is megszemlyesthet o B fel.
A protokollt a kvetkezo mdon javthatjuk ki:

(1) A B: NA
(2) B A: EKAB (A | NA )| NB
(3) A B: EKAB (B | NB )

A javts lnyege, hogy a rejtjelezett zenetekben jelljk, hogy azok kinek


szlnak. gy A zenete nem jtszhat vissza B nevben, s a fenti tmads nem
mukdik.

3.4. Kulcscsere protokollok


Szimmetrikus kulcs rejtjelezs vagy zenethitelest o kdok hasznlata esetn szk-
sges, hogy a kommunikl felek rendelkezzenek egy titkos kulccsal, amit rajtuk
kvl ms nem ismer. Ebben a szakaszban azt vizsgljuk, hogyan lehet ezt a kzs
titkos kulcsot a kommunikl felek birtokba juttatni.
A kulcscsere problma koncepcionlisan legegyszerubb megoldsa az, mikor
a kommunikl felek fizikailag (pl. szemlyesen) tallkoznak s megegyeznek egy
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.4. K ULCSCSERE PROTOKOLLOK 132

kzs kulcsban. Ez a megolds amelyet manulis kulcscsernek is hvnak


azonban csak korltozott mrtkben hasznlhat a gyakorlatban, mert drga s id o-
ignyes, tovbb sokszor az alkalmazs jellegnl fogva egyszeruen nem is hasz-
nlhat.
A kulcscsere problma gyakorlatban is jl hasznlhat megoldst a kulcscsere
protokollok jelentik. Egy kulcscsere protokoll lehet ov teszi kt (vagy tbb) fl
szmra egy kzs titok ltrehozst anlkl, hogy a kt fl fizikailag tallkozna.
A kulcscsere protkolloknak alapvet oen kt fajtja ltezik: kulcsszllt s
kulcsmegegyezs protokollok. Kulcsszllt protokollok esetben a kulcsot a pro-
tokoll valamelyik rsztvevoje (az egyik fl vagy egy megbzhat harmadik fl)
generlja, majd azt biztonsgosan eljuttatja a tbbi rsztvev onek. A kulcs rtke
teht egy rsztvevotol fgg. Ezzel szemben, kulcsmegegyezs protokollok eset-
ben a kulcs rtkhez minden rsztvev o hozzjrul. A rsztvevok az ltaluk gene-
rlt hozzjrulsokat kicserlik, majd minden rsztvev o loklisan generlja a kzs
kulcsot a msik rsztvevotol kapott hozzjrulst is felhasznlva.
A kulcsmegegyezs protokollok elonye, hogy a kulcs rtkt egyik fl sem
tudja befolysolni, hiszen az a msik fl hozzjrulstl is fgg. Kulcsszllt pro-
tokollok esetben az a rsztvevo, amelyik a kulcsot generlja, szndkosan vlaszt-
hat egy specilis tulajdonsgokkal rendelkez o (pl. valamilyen rtelemben gyenge)
kulcsot. A kulcsmegegyezs protokollok htrnya, hogy megvalstsuk ltalban
nyilvnos kulcs kriptogrfira pl, gy vgrehajtsuk nagyobb szmtsi kapaci-
tst ignyel a rsztvevoktol. Ennek ellenre, a fent emltett kedvez o tulajdonsguk
miatt, gyakorlati alkalmazsokban gyakran hasznlnak kulcsmegegyezs protokol-
lokat.
A kulcscsere protokollok ltal nyjtott fontosabb szolgltatsok a kvetkez ok:

Implicit kulcshitelests: Egy kulcscsere protokoll akkor nyjt implicit


kulcshitelests szolgltatst valamely A fl szmra, ha a protokoll sikeres
lefutsa utn A meg lehet gyozodve arrl, hogy rajta kvl csak a felttelezett
msik fl, mondjuk B, s esetleg egy megbzhat harmadik fl (pl. a kulcs-
szerver) frhet hozz a protokoll sorn ltrehozott kulcshoz. Ez egy olyan
alapveto szolgltats, amit minden kulcscsere protokolltl elvrunk. Fontos
megjegyezni azt, hogy implicit kulcshitelests esetn A nem felttlenl biz-
tos abban, hogy B ismeri a kulcsot. Csupn annyit kvetelnk meg, hogy A
biztos legyen abban, hogy csak B-nek (s esetleg egy megbzhat harmadik
flnek) van meg a lehetosge arra, hogy a kulcshoz hozzfrjen.

Kulcskonfirmci: Ez az a szolgltats, melynek segtsgvel az egyik


rsztvevo, mondjuk A, meggyozodhet arrl, hogy a msik rsztvevo, mond-
juk B, valban birtokban van a protokoll futsa sorn ltrehozott kulcsnak.
Ezen szolgltats megvalstsra tbb lehet osg is van: B elkldheti pl-
dul A-nak a kulcs hash rtkt, vagy egy, a kulccsal rejtjelezett publikus
nylt szveget. Lenyomat kldse esetn, a hash fggvny egyirnysga
miatt, egy tmad nem tudja megfejteni a kulcsot a megfigyelt hash rtk-
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.4. K ULCSCSERE PROTOKOLLOK 133

bol. Ismert nylt szveg rejtjelezse esetn pedig a rejtjelez o fggvny ismert
nylt szvegu tmads elleni ellenllkpessge biztostja ugyanezt.

Explicit kulcshitelests: Explicit kulcshitelestsr ol akkor beszlnk, ha a


protokoll egyszerre biztostja az implicit kulcshitelests s a kulcskonfirm-
ci szolgltatsokat ugyanazon fl szmra.

Kulcsfrissessg: Ha a protokoll kulcsfrissessg szolgltatst nyjt az A rszt-


vevo szmra, akkor a protokoll sikeres futsa utn A meg van gy ozodve
arrl, hogy a ltrehozott kulcs j, s nem egy korbban mr hasznlt s fel-
tehetoen azta feltrt kulcs.

A tovbbiakban kulcsszllt s kulcsmegegyezs protokollokra mutatunk pld-


kat.

A mdostott OtwayRees-protokoll

Elso pldnk az OtwayRees-protokoll egy mdostott vltozata. A protokoll a


kulcsszllt protokollok csaldjba tartozik. Hrom rsztvev oje van, akiket A-val,
B-vel s S-sel jellnk. A s B szeretne a protokoll segtsgvel egy kzs titkos
kulcsot ltrehozni; S egy megbzhat kulcsszerver, aki a kulcsot generlja s eljut-
tatja A-hoz s B-hez. Feltesszk, hogy A s S, illetve B s S mr rendelkezik egy
kzs kulccsal, amit KAS -sel, illetve KBS -sel jellnk. Ezeket a kulcsokat hasznlja
a protokoll a frissen generlt kulcs vdelmre.

Mdostott Otway-Rees protokoll


(1) A B : A | NA
(2) B S : A | B | NA | NB
(3) S B : EKAS (NA | A | B | K) | EKBS (NB | A | B | K)
(4) B A : EKAS (NA | A | B | K)

A protokoll mukdse a kvetkezo: A kezdemnyezi a protokoll futtatst az-


zal, hogy generl egy friss vletlen szmot, NA -t, s elkldi azt sajt A azonost-
jval egytt B-nek. B hasonlan generl egy friss vletlenszmot, N B -t, s elkldi
azt NA -val valamint az A s a B azonostkkal egytt az S szervernek. S generl
egy friss K kulcsot, majd elollt kt rejtjeles zenetrszt, az egyiket KAS -sel k-
dolva A szmra, a msikat pedig KBS -sel kdolva B szmra. Mindkt rejtjeles
zenetrsz tartalmazza a K kulcsot, valamint A s B azonostjt. Az A-nak szl
rsz tartalmazza ezen kvl az NA szmot, mg a B-nek szl rsz tartalmazza az
NB szmot. S mindkt zenetrszt B-nek kldi el, majd B tovbbtja az A-nak szl
rszt A-nak. Ezutn mindkt fl dekdolja a neki szl rszt, s ellen orzi az azo-
nostkat, valamint azt, hogy visszakapta-e a korbban elkldtt vletlenszmot.
Amennyiben az ellenorzsek sikeresek, a felek elfogadjk a K kulcsot.
A protokoll implicit kulcshitelestst biztost mindkt fl szmra. Ez azrt van
gy, mert a felek a K kulcsot rejtjelezve kapjk, tovbb megbznak a szerverben,
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.4. K ULCSCSERE PROTOKOLLOK 134

hogy az csak az zenetben megjellt feleknek (azaz A-nak s B-nek) kldte el a


kulcsot. Nem lehetnek azonban biztosak abban, hogy a msik fl valban a kulcs
birtokba jutott, ezrt a kulcshitelests nem explicit. A kulcsfrissessget az N A s
NB vletlenszmok megjsolhatatlansga biztostja. Pontosabban, A tudja, hogy a
szerver csak azutn kldhette zenett, hogy megkapta NA -t, hiszen korbban nem
sejthette NA rtkt. Azaz a kulcs nem lehet rgebbi, mint NA . Hasonlkppen, B
tudja, hogy a kulcs nem rgebbi, mint NB .

Rejtjelezett kulcs alrsa

Az elozo protokoll a kulcsfrissessget nem-prediklhat vletlenszmok segt-


sgvel biztostotta s szimmetrikus kulcs rejtjelezst hasznlt a kulcs bizalmas
tvitelre. Most egy olyan kulcsszllt protokollt mutatunk be, amely id opecstet
hasznl a frissessg biztostsra, s nyilvnos kulcs rejtjelezst alkalmaz a bi-
zalmassg megorzse rdekben. Megjegyezzk, hogy az id opecst alkalmazsa
felttelezi, hogy a rsztvevok ri szinkronizlva vannak.
Rejtjelezett kulcs alrsa
(1) A B : A | EB (k) | TA | SA (B | EB (k) | TA )
A protokollnak kt (on-line) rsztvev oje van, A s B, akik egy kulcsot szeretn-
nek ltrehozni egyms kztt. Felttelezzk, hogy mindkt fl ismeri a msik fl
nyilvnos kulcst. A generl egy friss K kulcsot, rejtjelezi azt B nyilvnos kulcs-
val, majd alrja a rejtjelezett kulcsot, B azonostjt, s egy TA idopecstet. Vgl,
A elkldi B-nek a rejtjelezett kulcsot, az id opecstet, s az alrst. B eloszr ellen-
orzi az idopecstet s az alrst (utbbihoz hasznlja A nyilvnos kulcst), majd
dekdolja a rejtjelezett kulcsot sajt privt kulcsval.
A protokoll mindkt fl szmra biztostja a kulcsfrissessget. Ezen kvl, a
protokoll mindkt fl szmra implicit kulcshitelestst biztost. Ugyanis A tudja,
hogy a rejtjelezett kulcsot csak B tudja dekdolni, de nem tudja biztosan, hogy
B megkapta-e az zenetet. B az alrsbl tudja, hogy az zenetet A kldte, de
mivel az alrs csak a rejtjelezett kulcsot tartalmazza, ezrt B nem lehet biztos
abban, hogy A ismeri a kulcs rtkt. Lehetsges, hogy A lehallgatott egy protokoll
pldnyt, amit valamikor C futtatott B-vel, s szert tett E B (K)-ra, de nem ismeri K-
t. A ksobb brmikor alrhatja EB (K)-t egy friss idopecsttel egytt.
A fenti protokollt egyszeruen mdosthatjuk gy, hogy explicit kulcshitelestst
biztostson B szmra:
Rejtjelezett s alrt kulcs
(1) A B : A | EB (K) | TA | SA (B | K | TA )
Ebben a protokollban mr nyilvnval B szmra, hogy A a K kulcs birtokban
van, hiszen az alrsban szerepel K. Ekkor termszetesen felttelezzk, hogy az
alrsbl a K kulcs nem fejtheto meg. Ez praktikusan azt jelenti, hogy a hash-s-
alr mdszert alkalmazzuk. A protokoll tulajdonsgainak vizsglatt az olvasra
bzzuk.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.4. K ULCSCSERE PROTOKOLLOK 135

A DiffieHellman-protokoll

A DiffieHellman-protokoll egy kulcsmegegyezs protokoll. Kt rsztvev oje


van, akiket A-val s B-vel jellnk. A s B szerepe teljesen szimmetrikus. Fel-
tesszk, hogy mindkt fl szmra ismert egy nagy p prmszm, s a Z p vges cso-
port egy g primitv eleme (a primitv elem defincijt lsd a 2.3 szakaszban), ahol
Z p a p ltal definilt vges multiplikatv csoportot jelli, azaz az {1, 2, . . . , p 1}
halmazt a mod p szorzssal mint muvelettel. A generl egy x vletlen szmot,
melyre 1 x p 2, majd kiszmolja gx mod p rtkt, s az eredmnyt elkldi
B-nek. Hasonlan, B generl egy y vletlen szmot, melyre 1 y p 2, majd ki-
szmolja gy mod p rtkt, s az eredmnyt elkldi A-nak. Ezek utn a B-t ol kapott
gy mod p rtket s sajt titkos x szmt felhasznlva, A kiszmolja (g y )x mod p
rtkt. B hasonlan kiszmolja (gx )y mod p rtkt. A hatvnyozs kommutativi-
tsa miatt azonban mindkt fl ugyanazt a k = g xy mod p szmot kapja, s ez lesz
(vagy tovbbi szmtssal ebbol kaphat) a kzs kulcs.

DiffieHellman-protokoll
(1) A B : gx mod p
(2) B A : gy mod p
(3a) A : K = (gy )x mod p = gxy mod p
(3b) B : K = (gx )y mod p = gxy mod p

A DiffieHellman-protokoll biztonsga a DiffieHellman-problma s a diszk-


rt logaritmus problma nehzsgn alapszik. A DiffieHellman-problma a k-
vetkezo: adott egy p prm, a Z p csoport egy g genertor eleme, valamint a g x mod p
s gy mod p szmok; szmoljuk ki gxy mod p rtkt. Ehhez szorosan kapcsol-
dik a diszkrt logaritmus problma, mely a kvetkez okppen szl: adott egy p
prm, a Z p csoport egy g genertor eleme, s egy X Z p szm; adjuk meg azt
az x Z p szmot, melyre gx mod p = X. A kt problma kztti kapcsolatrl
annyit tudunk, hogy ha tudnnk hatkonyan diszkrt logaritmust szmolni, akkor a
DiffieHellman-problmra is hatkony megoldst kapnnk: el oszr gx mod p-bol
meghatrozzuk x-et, majd kiszmtjuk (g y )x mod p rtkt. A fordtott irny nem
bizonytott, ezrt nem tudjuk, hogy a kt problma ekvivalens-e. Mindenesetre,
gy sejtik, hogy mindkt problma nehz, abban az rtelemben, hogy nem lehet
polinom idoben megoldani oket. A pontos komplexitsa azonban egyik problm-
nak sem ismert.
A DiffieHellman-protokoll egyszeru s elegns. Sajnos azonban a protokoll
nem biztost kulcshitelestst, ezrt csak passzv tmadval szemben biztonsgos.
Ha az aktv tmads lehetosgt nem lehet kizrni, akkor A s B nem lehetnek
biztosak abban, hogy egymssal hoztk ltre a kzs K kulcsot, mert egy tmad
kettojk kz kelodve (man-in-the-middle), mindkt fllel futtatni tudja a proto-
kollt. A DiffieHellman-protokollt tbbflekppen is ki lehet egszteni kulcshite-
lestssel. A protokoll ezen kiegsztett vltozatai igen szleskrben hasznltak a
gyakorlatban (pl. az SSH, az SSL s az IPSec protokollokban).
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.5. A LKALMAZSOK 136

3.5. Alkalmazsok

GSM

A mobil kommunikcis rendszerek adatbiztonsgi tervezs szempontjbl spe-


cilisak a kvetkezo okok miatt:
fizikailag hozzfrheto rdis csatornn is folyik kommunikci,
a mobil kszlk ltalban kis szmtsi s trolsi kapacitssal rendelkezik,
a mobil kszlk idoben vltoztatja helyt.
Ennek megfeleloen a GSM rendszerben lehetosg van a rdis csatornn ke-
resztl zajl kommunikci rejtjelezsre, valamint a rdis interfszen keresztl
elrheto szolgltatsokhoz (pl. hvskezdemnyezs) trtn o hozzfrs korltoz-
sra. A tervezok figyelembe vettk a mobil kszlkek kis szmtsi kapacitst
is, ezrt a vdelem teljes egszben szimmetrikus kulcs kriptogrfira pl, ami
ltalban nagysgrendekkel kisebb szmtsi kapacitst ignyel, mint a nyilvnos
kulcs algoritmusok. A mobilits tmogatst gy oldottk meg, hogy az el ofize-
tok idegen hlzatok fel (azaz roaming kzben) is hitelesteni tudjk magukat.
A GSM rendszer biztonsgi architektrjban fontos szerepet jtszik a mobil
kszlkekben tallhat SIM krtya (Subscriber Identity Module). A SIM krtya
egy intelligens chip-krtya, mely kpes adatokat trolni s azokon szmtsokat v-
gezni. A SIM krtyra gy is gondolhatunk, mint egy, a mobil kszlk belsejben
elhelyezett mini-szmtgpre.
A SIM krtya lnyegben az elofizetot kpviseli a GSM rendszerben (azaz az
elofizeto helyett vgez kriptogrfiai muveleteket). A SIM krtya trolja tbbek
kztt az U elofizeto s a HN hazai hlzat (home network) kztti, hossz let-
tartam KU szimmetrikus kulcsot. A SIM krtya ezen kulcs segtsgvel hitelesti
az elofizetot a hlzat fel, mikor az elofizeto egy hvst kezdemnyez. Tovbb, a
SIM krtya a KU kulcs felhasznlsval szmolja ki a kommunikci rejtjelezsre
hasznlt kapcsolatkulcsot is. Mivel minden biztonsgi algoritmus a SIM krtyn
van implementlva, ezrt a KU kulcs soha nem hagyja el a SIM krtyt.
A GSM rendszer a kvetkezo kihvsvlasz alap partnerhitelest o protokollt
hasznlja az elofizeto hitelestsre:

GSM elofizeto-hitelests (egyszerustett)


(1) SIMU V N: IMSI
(2) V N HN: IMSI
(3) HN V N: RAND | SRES | KC
(4) V N SIMU : RAND
(5) SIMU V N: SRES0

A fenti protokollban V N az idegen hlzatot (visited network) jelli, melyben


az U elofizeto roaming kzben szeretne hvst kezdemnyezni. U SIM krtyja,
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.5. A LKALMAZSOK 137

SIMU , elkldi U nemzetkzi IMSI azonostjt (International Mobile Subscriber


Identity) V N-nek. V N nem tudja kzvetlenl hitelesteni U-t, mert nem ismeri
a KU kulcsot. Ezrt tovbb kldi az IMSI azonostt az el ofizeto hazai hlza-
tnak, HN-nek. Ezzel lnyegben U hitelestshez szksges informcikat kr
HN-tol. HN generl egy RAND vletlenszmot, melyet kihvsnak szn U fel,
kiszmtja a kihvsra adand helyes SRES = f KU (RAND) vlaszt, s generl egy
friss KC = gKU (RAND) kapcsolatkulcsot, ahol f s g kt alkalmas fggvny, melyet
a hazai szolgltat akr maga vlaszthat. Ezek utn HN elkldi a RAND| SRES | KC
hrmast V N-nek.
V N elkldi a RAND vletlenszmot SIM U -nak, amely KU ismeretben kisz-
mtja az SRES0 = fKU (RAND) vlaszt s a KC kapcsolatkulcsot. Vgl, SIM U el-
kldi az SRES0 vlaszt V N-nek, amely sszehasonltja azt a HN-t ol kapott SRES
rtkkel. Egyezs esetn U hitelestse sikeres, s V N engedlyezi a szolgltats-
hoz trtno hozzfrst. A tovbbiakban U s V N a KC kulcsot hasznljk a mobil
kszlk s a bzislloms kztti forgalom rejtjelezsre. A rejtjelezs egy, a
GSM szabvnyban specifiklt kulcsfolyam rejtjelez o segtsgvel trtnik.

SSL

Az SSL (Secure Socket Layer) protokoll lehet ov teszi biztonsgos TCP kap-
csolatok kiptst tetszoleges, amgy TCP-t hasznl alkalmazsok (pl. HTTP,
FTP, SMTP, stb.) kztt. Kifejlesztsnek f o motivcija a Web-bngszo s a
Web-szerver kztti kommunikci biztonsgoss ttele volt, ezrt szoktk a Web
biztonsgi protokolljnak is nevezni.
Az SSL protokoll tbb alprotokollbl ll, melyek kzl a kt legfontosabb al-
protokoll a kvetkezo:
Record protokoll: A Record protokoll feladata a kliens s a szerver (pl. egy
Web-bngszo s egy Web-szerver) kztti kommunikci vdelme, mely
titkostst, integritsvdelmet s zenetvisszajtszs elleni vdelemet jelent.

Handshake protokoll: A kliens s a szerver a Handshake protokoll segt-


sgvel egyezteti a Record protokollban hasznlt kriptogrfiai algoritmuso-
kat s az algoritmusok paramtereit, belertve a kulcsokat is. A Handshake
protokoll tovbbi feladata a felek hitelestse. Tipikusan a szerver mindig
hitelesti magt, a kliens hitelestse azonban csak opcionlis.
A tovbbiakban tmren ismertetjk a Record s a Handshake protokoll mukd-
st.

Az SSL Record protokoll


Az SSL Record protokoll a felsobb protokoll rtegektol rkezo zeneteket a kvet-
kezo lpseken keresztl dolgozza fel:
a hossz zeneteket fragmentlja,
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.5. A LKALMAZSOK 138

tpus verzi hossz

(tmrtett) fragmens

MAC

kitlts

3.19. bra. Az SSL Record protokoll zenetformtuma.

a fragmenseket tmrti,
minden tmrtett fragmenst fejlccel lt el,
a fejlccel elltott tmrtett fragmensre zenethitelest o kdot (MAC) sz-
mol s azt a fragmenshez csatolja,
majd az zenethitelesto kddal elltott tmrtett fragmenst rejtjelezi.

A vevo a feldolgozst rtelemszeruen ellenttes sorrendben vgzi. A feldolgo-


zs sorn hasznlt tmrto, zenethitelesto, s rejtjelezsi algoritmusokban, pa-
ramterekben, illetve kulcsokban az SSL Handshake protokoll vgrehajtsa sorn
egyeznek meg a felek. A fenti lpsek eredmnyeknt el oll Record zenet for-
mtumt a 3.19. bra mutatja.
Az zenethitelesto kd generlsa a HMAC egy korai verzijval trtnik az
albbiak szerint:
MAC MAC
MAC = H(Kwrite | pad 2 | H(Kwrite | pad 1 | seqnum | type | length | payload))

ahol:

H az MD5 vagy a SHA-1 hash fggvny, attl fgg oen, hogy a Handshake
sorn miben egyeztek meg a felek.
MAC a MAC rtk generlshoz hasznlt titkos kulcs, melyet csak a kli-
Kwrite
ens s a szerver ismer. Az SSL klnbz o irnyokban klnbzo kulcsot
MAC
hasznl, azaz a klienstol a szerver fel tart zenetek integritst egy KCS
MAC
kulccsal, a szervtol a kliens fel tart zenetek integritst pedig egy KSC
MAC MAC
kulccsal vdi. A kliens a KCS kulcsra Kwrite nven hivatkozik (kldsre
hasznlt MAC kulcs), a KSC MAC kulcsra pedig a K MAC nven (vtelre hasznlt
read
MAC kulcs). A szerver oldalon az egyes kulcsok szerepe nyilvn fordtott.

pad 1 s pad 2 kt konstans bjtsorozat.


Kdolstechnika - 2006 - crysys web vltozat - 6.

3.5. A LKALMAZSOK 139

seqnum az zenet sorszma. Az SSL implicit zenetsorszmot hasznl, ami


azt jelenti, hogy a sorszm nem jelenik meg explicit mez oknt az zenetben
(lsd 3.19. bra), de a MAC szmtsban felhasznljk aktulis rtkt, me-
lyet mindkt fl loklisan szmontart. Ezt azrt lehet gy megtenni, mert az
SSL Record protokoll a TCP protkoll felett helyezkedik el, s a TCP norm-
lis krlmnyek kztt biztostja az zenetek sorrendhelyes vtelt. Ezrt
ltalban igaz az, hogy mindig a vrt sorszm zenetet veszik a felek. Ha
valamilyen tmads vagy hiba folytn nem a vrt sorszm zenet rkezik
meg (ami teht abnormlis jelensg), akkor a MAC ellen orzs sikertelen lesz
s a vevo bontja a kapcsolatot.

type s length az zenet fejlcben tallhat tpus s hossz mez ok rtke.

payload az zenetben tallhat (tmrtett) fragmens.

A 3.19. brn a Record zenet rejtjelezett rszt szrke sznnel jelltk. Mint
lthat, a fejlc kivtelvel az egsz zenet rejtjelezve van. Az SSL alaprtelme-
zett rejtjelezo algoritmusa az RC4 kulcsfolyam rejtjelez o, de a Handshake proto-
koll vgrehajtsa sorn a felek ms algoritmusban is megegyezhetnek. Az SSL
tmogatja mg az RC2, a DES, a hrom kulcsos 3DES, az IDEA, s a Fortezza
blokkrejtjelezok CBC mdban trtno hasznlatt. Amennyiben a felek valame-
lyik blokkrejtjelezo hasznlatban egyeznek meg, gy a rejtjelezs el ott minden
Record zenetet ki kell tlteni, hogy hossza a rejtjelez o blokkmretnek egsz
szm tbbszrse legyen. A kitlts bjtjai a MAC utn kerlnek az zenetbe.
A MAC szmtshoz hasonlan, a felek klnbz o irnyokban klnbzo kulcso-
kat hasznlnak a rejtjelezshez is. Ennek megfele oen a kliens egy KCS kulccsal
rejtjelezi zeneteit, a szerver pedig egy KSC kulcsot hasznl. A kliens a KCS
kulcsra Kwrite nven, a KSC kulcsra pedig Kread nven hivatkozik. A szerver olda-
lon az egyes kulcsok szerepe nyilvn fordtott.
Blokkrejtjelezo hasznlata esetn, a CBC md miatt, szksg van IV-re is.
Az elso zenet rejtjelezshez hasznlt IV-t a Handshake sorn generljk a felek
(a kulcsokkal egytt). Minden tovbbi zenetnl az el ozo zenet utols rejtjeles
blokkjt hasznljk IV-nek.

Az SSL Handshake protokoll


Az SSL Handshake protokoll egy komplex protokoll. A komplexits legf obb oka
az, hogy a Handshake protokoll tbbfle kulcscsere mdszer hasznlatt is tmo-
gatja, s a Handshake zenetek rtelmezse az egyes mdszerek esetn ms s
ms. Ezrt itt most nem is vllalkozunk az SSL Handshake protokoll rszletes
ismertetsre, csupn nagy vonalakban sszefoglaljuk a f obb lpseit.
Az SSL Handshake protokoll ngy fzisra tagoldik. Az els o fzisban trt-
nik meg a Record protokollban hasznland algoritmusok egyeztetse, valamint
a Handshake htralevo rszben hasznlt kulcscsere mdszer kivlasztsa. Ezen
kvl a felek az elso fzisban kicserlnek kt frissen generlt vletlen szmot is,
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.5. A LKALMAZSOK 140

melyet a tovbbi szmtsoknl (pl. a kulcsok generlsban) hasznlnak majd.


A msodik fzisban a szerver a kivlasztott mdszernek megfelel oen vgrehajtja
a kulcscsere reso rszt, mg a kliens a harmadik fzisban teszi meg ugyanezt.
A harmadik fzis utn, az addig kicserlt informcit felhasznlva, mindkt fl
elolltja a kzs mestertitkot, majd abbl generlja az j kapcsolatkulcsokat. A
negyedik fzisban a felek ttrnek az j algoritmusok s kulcsok hasznlatra.
Tovbb a mestertitok felhasznlsval kiszmolnak egy kriptogrfiai ellen orzo-
sszeget az sszes addig a pontig kldtt s vett Handshake zenet egyttesre,
s elkldik egymsnak ezeket az ellen orzosszegeket. Ily mdon igyekeznek de-
tektlni a Handshake sorn egy harmadik fl ltal esetlegesen vgrehajtott aktv
tmadsokat.
Mint emltettk, az SSL tbb kulcscsere mdszert is tmogat. Ezek kzl a
fontosabbak a kvetkezok:

RSA alap kulcscsere: RSA alap kulcscsere esetn a kliens generl egy
48 bjt mretu vletlen blokkot, amelyet a szerver nyilvnos RSA kulcsval
kdolva elkld a szervernek. Ebbol a vletlen blokkbl aztn mind a kliens,
mind a szerver elolltja a kzs mestertitkot.

Fix DiffieHellman-kulcscsere: Fix DiffieHellman-kulcscsere esetn a fe-


lek a DiffieHellman-algoritmust hasznljk, s az ennek eredmnyeknt ki-
alakult kzs rtkbol generljk a mestertitkot. A fix jelz o arra utal, hogy
a szerver DiffieHellman-paramterei (p, g, g x mod p) fixek, azokat egy hi-
telests szolgltat alrta, s az err ol szl tanstvnyt a kliens ellen orizni
tudja.

Egyszeri DiffieHellman-kulcscsere: Az el ozo mdszerhez hasonlan Dif-


fieHellman-algoritmust hasznlnak a felek, de a szervernek nincsenek fix,
alrt DiffieHellman-paramterei. Helyette a szerver egyszer hasznlatos
paramtereket generl, s azokat RSA vagy DSS alr kulcsval alrva jut-
tatja el a kliensnek. A kliens szintn egyszer hasznlatos DiffieHellman
nyilvnos rtket generl a szerver p s g paramtereit hasznlva.

Anonim DiffieHellman-kulcscsere: Ezen mdszer hasznlata esetn a fe-


lek az eredeti, hitelests nlkli DiffieHellman-algoritmust hajtjk vgre.
Ezen mdszer hasznlata nem tancsos, ha az aktv tmadsok veszlyt nem
lehet kizrni.

A kulcscsere vgrehajtsa utn a kliens s a szerver el ollt egy kzs K mes-


tertitkot. Ez a kvetkezo mdon trtnik. Jljk K 0 -vel a kliens ltal generlt 48
bjtos vletlen blokkot, melyet RSA alap kulcscsere esetn a kliens a szerver nyil-
vnos RSA kulcsval rejtjelezve juttat el a szervernek. Fix, egyszer hasznlatos,
vagy anonim DiffieHellman-kulcscsere esetn pedig K 0 jellje a DiffieHellman-
algoritmus gxy mod p vgeredmnyt. Ekkor

K = MD5(K 0 | SHA1(A | K 0 | NC | NS )) |
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.5. A LKALMAZSOK 141

MD5(K 0 | SHA1(BB | K 0 | NC | NS )) |
MD5(K 0 | SHA1(CCC | K 0 | NC | NS ))

ahol NC s NS a Handshake elso fzisban kicserlt vletlen szmok, A, BB s


CCC pedig az A, a B, illetve a C ASCII karakterekb ol alkotott egy, ketto,
illetve hrom hossz karakterlncok. Mivel az MD5 hash fggvny kimenetnek
mrete 16 bjt, ezrt a hrom hash rtk sszefuzsb ol nyert K mestertitok 48
bjt hossz. Ebbol a mestertitokbl generlja mindkt fl a Record protokollban
hasznlt MAC kulcsokat, rejtjelez o kulcsokat s IV-ket.
Mint korbban emltettk, a Handshake sorn megtrtnik a szerver, s opci-
onlisan a kliens hitelestse is. A szerver hitelestse tipikusan a szerver tanst-
vny ellenorzsvel trtnik. A kliens hitelestshez a kliensnek is szksge van
tanstvnyra. Mivel azonban a gyakorlatban a legtbb kliensnek (felhasznlnak)
nincsen tanstvnya, ezrt a kliens ltalban nem hitelesti magt az SSL protokoll
szintjn. Ha az alkalmazs jellege mgis szksgess teszi a klienshitelestst (pl.
home banking), akkor azt maga az alkalmazs vgzi el (pl. jelsz alap hitelests).

DigiCash

A DigiCash egy elektronikus fizetsi rendszer, mely a hagyomnyos kszpnz


modellje szerint mukdik. Ebben a rendszerben, az elektronikus kszpnz (e-cash)
egy binris sorozat, melynek egyik szmtgpr ol a msikra trtno kldsvel
trtnik meg a fizets. A DigiCash tervezsnl fontos szempont volt, hogy a ha-
gyomnyos kszpnzhez hasonlan lehet ov tegye a nyomonkvethetetlen on-line
vsrlst. Ez azt jelenti, hogy mg az elektronikus rmket kibocsjt bank sem
kpes nyomonkvetni, hogy hol, mit, s mennyirt vsrolnak az gyfelei. A Di-
giCash ezen tulajdonsga lesen megklnbzteti ezt a rendszert a hitelkrtys v-
srlstl, ahol a bank pontosan ismeri gyfelei vsrlsi tranzakciinak rszleteit.
A DigiCash rendszer rsztvevoi a C vsrl, az M kereskedo, valamint a B
on-line bank. Feltesszk, hogy a vsrlnak s a keresked onek szmlja van a
bankban. Feltesszk tovbb, hogy a bank rendelkezik (e i , di ) RSA kulcsprok
egy sorozatval, ahol az egyes prok klnbz o pnzcmletekhez tartoznak (pl. i
{1, 2, 5, 10, 20, 50, 100, . . .}). Mikor a vsrl pnzt szeretne kivenni a szmljrl,
hitelesti magt a bank fel. Hasonlkppen, mikor a keresked o be akarja vltani
a vsrl ltal elklttt rmket a banknl, akkor hitelesti magt a bank fel. A
vsrl s a kereskedo bank fel trtno hitelestse brmilyen parnerhitelestsi
mdszerrel trtnhet. Az albbi DigiCash protokoll az egyszerusg kedvrt ezeket
a hitelestsi lpseket nem tartalmazza, csak azt szemllteti, hogyan trtnik az
elektronikus rme ltrehozsa, elkltse, s bevltsa.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.5. A LKALMAZSOK 142

DigiCash protokoll (egyszerustett)


(1) C B: v, b = s r ev mod nv
(2) B C: bdv mod nv
(3) C M: c = (v, s, sdv mod nv )
(4) M B: c
(5) B M: valid / invalid

A vsrl generl egy s (rszben) vletlen sorozatszmot, amelyre teljesl,


hogy az s-et reprezentl bitsorozat bal oldali fele egyrtelmu determinisztikus
kapcsolatban van a jobb oldali felvel. A vsrl kivlasztja a kvnt v cmlethez
tartoz ev nyilvnos kulcsot (s nv modulust) a bank kulcsai kzl, s vlaszt egy
csak ltala ismert, titkos r vletlen szmot, majd elkldi az (1) zenetet a banknak.
A bank levonja a vlasztott cmletnek megfelel o sszeget a vsrl szmlj-
rl, majd az (1) zenetben kapott b zenetrszt alrja az adott cmletnek meg-
felelo dv titkos kulcsval, s az eredmnyt a (2) zenetben visszakldi a vsr-
lnak. A vsrl a bdv mod nv = sdv r mod nv s az r ismeretben egy oszts-
sal elolltja az sdv mod nv rtket, azaz a bank alrst az s sorozatszmon. A
c = (v, s, sdv mod nv ) hrmas az elektronikus rme. Ennek megfelel oen leolvas-
hat az rtke, a sorozatszma, valamit hordozza a bank digitlis alrst.
A fizets sorn a vsrl elkldi a megfelel o cmletu elektronikus pnzek egy
sorozatt a kereskedonek. Az egyszerusg kedvrt tegyk fel, hogy a vsrl a
(3) zenetet kldi, mely csak egyetlen rmt tartalmaz. A keresked o az rmt a (4)
zenteben elkldi a banknak, egyrszt ellen orzsre, msrszt, hogy a bank a pnzt
jvrja a kereskedo szmljn.
A bank eloszr azt ellenorzi, hogy az s sorozatszm nem szerepelt-e mr egy
korbbi ellenorzsnl, azaz nincs-e sz pnzdupliklsrl. Ha a bank dupliklst
szlel, azaz a pnzt egyszer mr elkltttk s bevltottk, akkor jelezi a kereske-
donek, hogy az ltala ellenorzsre bemutatott rme msolat (invalid zenet). Ellen-
kezo esetben, a bank ellenorzi, hogy az s s sdv mod nv sszetartoz pr-e, azaz az
rme a bank hiteles alrst hordozza-e. Ezt a v cmlethez tartoz nyilvnos kulcs
felhasznlsval vgzi. Ha az alrs hiteles, akkor a bank trolja az s sorozat-
szmot (ksobbi ellenorzsek cljra), s azt ettol kezdve a forgalombl kivontnak
tekinti. Ezutn a bank jvrja a megfelel o sszeget a kereskedo szmljn, s
tjkoztatja a kereskedot, hogy az rme bevltsa sikeres volt (valid zenet).
Figyeljk meg, hogy amikor a bank alrst adja a b zenetre, akkor b felp-
tse miatt nem tudja megllaptani a vsrl ltal ppen vlasztott s sororozatszm
rtkt, hiszen az ismeretlen r vletlennel val modulris szorzs elfedi azt. Te-
ht gy ad alrst a b zenet alrsra sznt s rszre, hogy nem lthatja annak
valdi rtkt. Az ilyen mdon trtn o alrst vak alrsnak nevezzk. A vak
alrs technika alkalmazsa biztostja, hogy a bank nem tudja nyomonkvetni a
pnz mozgst, azaz mikor a keresked o bevltja az s sorozatszm rmt, akkor a
bank nem tudja, hogy melyik vsrl szmra rta al ezt a sorozatszmot.
Lttuk, hogy a DigiCash rendszerben a pnzdupliklsi ksrletek a banki el-
lenorzsen fennakadnak. Ravaszabb csalsi ksrlet lehet a banki alrs hamis-
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.6. F ELADATOK 143

tsa. Ehhez a hamistnak olyan rtket kellene tallnia, amelyet a cmletnek meg-
felelo banki nyilvnos kitevore emelve egy rvnyes sorozatszmra jutna. Mivel
azonban a sorozatszmoknak rgztett struktrja van, megfelel o mretek mellett
gyakorlatilag kizrhat ezen tmads sikere.

3.6. Feladatok
3.1. feladat. Egy egyszeru lineris rejtjelez ot konstrulunk az

y = (a x + b) mod n

lineris transzformcival, ahol a s b a kulcs rszei, x a nylt szveg, y a rejtett


szveg, tovbb n az bc mrete.
a) Adja meg a kulcstr mrett, ha n = 256 .
b) A kulcsot szeretnnk megfejteni. Tegyk fel, hogy a forrs idelisan tmrtett,
s gy vletlen forrsknt modellezhet o. Rejtett szvegu tmadsban is gondol-
kodhatunk?
c) Milyen informcit kellene birtokolnunk egy vletlen forrs esetn a sikeres
tmadshoz?
d) Mit mondhatunk az esetben, ha a forrs rott szveg, s ismerjk a karakterek
gyakorisgt?

3.2. feladat. rott szvegek rejtjelezst betuprokra alkalmazott lineris rejtjele-


zssel vgezzk: y = (ax+b) mod n2 , ahol a s b a kdol kulcs elemei, (a, n 2 ) =
1, tovbb n az bc mrete. Az bc elemeit a {0, 1, . . . , n 1} halmaz eleme-
inek feleltetjk meg. A nylt s rejtett szveg, azaz x illetve y a {0, 1, . . . , n 2 1},
halmazbl veszi rtkt, olyan mdon, hogy egy (u, v) forrs-betuprt az u n + v
egszbe kpezve ll elo egy x nylt szveg. Az y rejtett szveget tovbbts el ott
visszakpezzk betuprba. A betuprok sszefogstl azt vrjuk, hogy a rejtett
szvegben az egyenletesebb betupr gyakorisg rvnyesl a gyakran nagyon in-
homogn betugyakorisg esetn is, ezltal cskkentve egy statisztikai alap tma-
ds eslyt. Helyes-e ezen vrakozsunk?

3.3. feladat. 8 bites karaktereket szeretnnk rejtjelezni Hill-rejtjelez ovel. Defini-


ljon alkalmas kripto-rendszert a feladat megoldsra! Adja meg a nyilt szvegek
tert, a rejtett szvegek tert, s a kulcsteret. Vlasszon egy alkalmas kulcsmtri-
xot, s szmolja ki a dekdolshoz szksges inverz-kulcsot!

3.4. feladat. Tekintsk a kvetkez o rejtjel-rendszert: nylt zenetek tere P = {a, b},
rejtett zenetek tere: C = {, , , , }, kulcstr: K = {1, 2, 3, 4, 5}. A kdolst a
kvetkezo tblzat rja le:
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.6. F ELADATOK 144

1 2 3 4 5
a
b

Legyen a kulcs eloszlsa PK = { 25 , 15 , 15 , 10


1 1
, 10 } s a nylt szvegek eloszlsa PP =
1 2
{ 3 , 3 }. Tkletes-e a fenti rejtjelezo? Mirt?

3.5. feladat. Tekintsnk egy lineris binris blokk rejtjelez ot. Adja meg az ismert
nylt-rejtett prokon alapul tmadst a rejtjelez o ellen! Van-e megkts a prokra?

3.6. feladat. Legyen x az x binris blokk bitenknti komplemense. E K (x) jellje


x DES kdolst K kulcs mellett. Igazoljuk, ha y = E K (x), akkor y = EK (x), azaz
egyszerre komplementlva az zenet, rejtett szveg s kulcs blokkokat, kztk a
rejtjelezo kdolsi lekpezs kapcsolat vltozatlanul fennll!

3.7. feladat. Tegyk fel, hogy DES rejtjelezst hasznltunk 64 bites zenet blok-
kok rejtjelezsre, amelyek 8 bites karakterekb ol llnak, s a 8. bit paritsbit. Elv-
ben vgrehajthat-e a kimerto kulcskeress tmads csak rejtett szvegek megfi-
gyelsre alapozva (azaz vrhatan sikerl-e kivlasztani a keresett kulcsot)? Hny
rejtjeles blokkot kellene megfigyelni ehhez? (A DES kdolst s dekdolst vlet-
len fggvnyknt modellezheti.)

3.8. feladat. Fermat-lprm-e


a) n = 87 a b = 5 bzisra nzve?
b) n = 33 a b = 32 bzisra nzve?

3.9. feladat. Egy jtk RSA algoritmus esetn: p = 5, q = 11 prmeket vlasztot-


tuk. Adja meg a legkisebb kdol kulcsot, s az ehhez tartoz dekdol kulcsot!

3.10. feladat. Alice publikus RSA kulcsa a kvetkez o: (n = 11413, e = 9). Rejt-
jelezze az m = 9726 zenetet Alice szmra!

3.11. feladat. Tmadjon egy RSA rejtjelez ot, amelyrol a nyilvnos n = 4003997
modulus valamint az e = 379 kulcs mellett megtudja a (n) = 3999996 rtket
is.
a) Szmtsa ki a d dekdol kulcsot!
b) Adja meg az n prmfaktorait!

3.12. feladat. Ha kt, RSA rejtjelezssel kommunikl pr kztti klnbz o le-


hetsges zenetek szma kicsi halmaz, az tmadsra ad lehet osget. Tegyk fel,
hogy a tmad ismeri az zenethalmazt, de nem ismeri az RSA dekdol kulcsot,
s tmadsra sznja el magt. Adja meg a tmads menett!
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.6. F ELADATOK 145

3.13. feladat. Ha gyors RSA kdolst kvnunk megvalstani, mirt el onys az


e = 3, illetve ltalban az e = 2t + 1 alak vlaszts? Adja meg a szmtsignyt a
szksges szorzsok szmban.

3.14. feladat. Legyen x1 s x2 kt zenet, tovbb y1 s y2 a megfelelo kt rejtje-


les blokk, amelyet RSA kdolssal kaptunk. rvnyes a kvetkez o multiplikatv
tulajdonsg:
y1 y2 (x1 x2 )e (mod n)
Azaz, az zenetek szorzatnak rejtjeles kpe a rejtjeles kpek mod n szorzata. Egy
tmad dekdolni szeretne egy xe mod n = y rejtett szveget. Tegyk fel, hogy
a megtmadott dekdol tetszoleges neki kldtt, szmra nem bizalmas tartalm
zenetet. Hogyan hajthat vgre a tmad sikeres tmadst az y dekdolsra?

3.15. feladat. Egy n bites hash rtket kpez o iteratv hash fggvnybol n0 = 2n
bites lenyomatot kpzot szeretnnk elolltani olyan mdon, hogy a kt utols ite-
rci eredmnyt konkatenljuk, azaz CVL1 |CVL 2n bites lenyomatot hasznlunk
az n bites CVL helyett. Hatsos-e ezen dimenzinvel o megerostsi tlet a szle-
tsnapi tmads sikernek cskkentsre?

3.16. feladat. Legyen H1 s H2 kt tkzs-ellenll hash fggvny. Bizonytsa


be, hogy a konkatenci muvelettel kapott H(x) = H1 (x)|H2 (x) hash fggvny is
tkzs-ellenll. Teht ez a dimenzinvels hatsos.

3.17. feladat. Rejtjelezett zeneteinket egy 10 4 bit hiba arny csatornn tovb-
btjuk. Mekkora bit hiba arnyt figyelhetnk meg a dekdol kimenetn ha
a) AES-t hasznlunk CBC mdban?
b) AES-t hasznlunk CFB mdban, s 8 bites karaktereket rejtjeleznk?
c) AES-t hasznlunk CTR mdban, s teljes blokkokat rejtjeleznk?

3.18. feladat. Tekintsk az albbi integritsvdelmi kdolst, ahol rejtjelezs s


MAC kombincijt hasznljuk:

EK (m|MACK 0 (m))

Legyen CBC md mind a rejtjelezs, mind a MAC szmts, ahol az egyik funk-
cira (IV, K), mg a msikra (IV 0 , K 0 ) (inicializl vektor, kulcs) pros kerl al-
kalmazsra. Van-e veszlye annak, ha IV = IV 0 , K = K 0 egyszerusto vlasztssal
lnk? Mi a tanulsg?

3.19. feladat. A WooLam-protokollban A hitelesti magt B-nek egy S megbz-


hat harmadik fl segtsgvel. S-re azrt van szksg, mert felttelezzk, hogy A
s B nem rendelkezik kzs kulccsal. Ezzel szemben feltesszk, hogy A s S vala-
mint B s S rendelkezik egy kzs KAS illetve KBS kulccsal. A protokoll lpsei a
kvetkezok:
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.7. M EGOLDSOK 146

WooLam-protokoll
(1) A B: A
(2) B A: NB
(3) A B: {NB }KAS
(4) B S: {A | {NB }KAS }KBS
(5) S B: {NB }KBS
Az elso zenetben A elkldi sajt azonostjt B-nek, aki egy frissen generlt
NB kihvssal vlaszol. A rejtjelezi NB -t a KAS kulccsal, s az eredmnyt visszakldi
B-nek. B nem tudja dekdolni A vlaszt, ezrt tovbbkldi azt S-nek, melltve
A azonostjt, s az egsz zenetet a KBS kulccsal rejtjelezve. S dekdolja az
zenetet, sorban mindkt kulccsal, majd NB -t rejtjelezi KBS -sel, s az eredmnyt
visszakldi B-nek. Mostmr B is dekdolni tudja az zenetet, s ellen orzi, hogy
visszakapta-e NB -t. Ha igen, akkor B gy gondolja, hogy A hitelestette magt.
a) Mutassuk meg, hogy egy leglis, de rosszindulat X rszvev o meg tudja szem-
lyesteni A-t! (Segtsg: Mivel X leglis rsztvev o, ezrt rendelkezik egy KXS
kulccsal, s kezdemnyezni tudja a protokollt B-vel.)
b) Javtsuk ki a protokollt!

3.7. Megoldsok
3.1. megolds.
a) Az a kulcselem multiplikatv inverznek lteznie kell mod n, aminek felttele
(a, n) = 1. n = 256 = 28 esetn 28 27 = 27 ilyen szm van az [1, 255] tar-
tomnyban. b kulcselem 28 flekppen vlaszthat. Az a = 1, b = 0 esetet
kizrva (identits transzformci), a kulcstr mrete 2 7 28 1 = 32767.
b) Nem. Ha a forrs vletlenszeruen sorsol az bc elemei kzl, akkor az a
x szorzat is ilyen, kvetkezskpp az y rejtett szveg s b kulcselem kztti
klcsns informci zrus.
c) Kt olyan (x, y), (x0 , y0 ) ismert nylt-rejtett pr elegend o, amelyre (x x0 )1
mod 256 ltezik.
d) A betunknti rejtjelezs miatt a karaktergyakorisgok az bc felett permut-
ldnak, de az rtkek nem vltoznak. Ezrt, ha van kt szignifiknsan kiemel-
kedo gyakorisg karakter az bcben, akkor ezen gyakorisgok a rejtjelezs
utn is ugyangy lteznek. Ekkor statisztikai alap tmadssal rejtett szveg
elegendo mennyisgben trtno megfigyelse utn vgrehajthat a tmads: a
legnagyobb gyakorisg rejtett szveg karakterekhez tartoz nylt szveg ka-
rakterekre sejtst tesznk, s minden ilyen sejts egy jabb egyenletet ad az
ismeretlen kulcselemekre. Kt ilyen, linerisan fggetlen egyenlet alapjn ka-
punk sejtst a kt kulcselemre, amelyek helyessgt ismert szvegpron tesz-
teljk.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.7. M EGOLDSOK 147

3.2. megolds. Nem. Ugyanis x = un+v esetn, y = (a(un+v)+b) mod n 2 =


((a u) n + (a v + b)) mod n2 = w n + z, azaz a rejtett szveg betupr msodik
karaktere (z) csak a nylt szveg betupr msodik karaktert ol (v) fgg.

3.3. megolds. Egy lehetsges megolds, hogy a 8 bites karaktereket kt 4 bites


flre bontjuk, s az gy nyert kt elemu vektort szorozzuk egy 2 2-es kulcsmtrix-
szal. A muveleteket Z24 felett vgezzk. Ekkor:
A nylt szvegek tere: P = Z16
2

A rejtett szvegek tere: C = Z16


2

A kulcstr: a Z16 feletti invertlhat 2 2-es mtrixok halmaza.


Minden invertlhat mtrix alkalmas kulcsnak. Egy K mtrix akkor inver-
tlhat Z16 felett, ha (det(K), 16) = 1. Pldul a
 
74
K=
53
mtrix megfelel, mert det(K) = 7 3 4 5 = 1.
Az inverz-kulcs:
     
1 1 k22 k12 3 4 3 12
K = det(K) = 1 =
k21 k11 5 7 11 7

3.4. megolds. A rejtjelezo nem tkletes, mert pl. P{Y = | X = a} = PK (1) = 2


5
s P{Y = | X = b} = PK (3) = 15 , azaz X s Y nem fggetlenek.

3.5. megolds. y = A x + b, ahol y, x, b n bites binris vektorok, A egy n n


bites binris mtrix, x a nylt blokk, y a rejtett blokk, K = (A, b) a kulcs. Lineris
egyenletrendszer megoldssal trtnik a tmads. n + 1 prra van minimlisan
szksg, amelybol n darab, linerisan fggetlen nylt szveghez tartozik.

3.6. megolds. A DES egy rtegnek struktrjra tekintve az igazols nyilvn-


val: A DES S-dobozok bemenete nem vltozik, mivel az itercis kulcs is s az
adat input flblokk is komplementlva van, s XOR sszegk kerl a bemenetekre,
azaz a b = a b. Tovbb, a kimeneten ehhez a msik adat input flblokk komp-
lementltja addik.

3.7. megolds. Igen, vgrehajthat, mivel ismerjk a rejtjeles szveg redundns


struktrjt, amit adott esetben az egy blokkbeli 8 paritsbit jelent. Annak a val-
sznusge, hogy egy tves kulccsal helyes paritsra dekdolunk egy rejtett szveg
blokkot, 28 . Annak a valsznusge, hogy pldul 7 rejtjeles blokk mindegyikt
helyes paritsra dekdoljuk tves kulcs mellett 2 56 , teht ez esetben a ki nem
szurt tves kulcsok tlagos szma a kulcstr teljes vgigkeresse utn 2 56 256 = 1
lenne. Ezrt, pldul, 10 rejtjeles blokk megfigyelse elegend o lenne a gyakorlati-
lag egyrtelmu kulcsazonostshoz.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.7. M EGOLDSOK 148

3.8. megolds.
a) Nem, 586 25 (mod 87)
b) Igen, 3232 (1)32 1 (mod 33).

3.9. megolds. e szmtsa: n = 55 (n) = 4 10 = 40 = 2 2 2 5 e = 3. d


szmtsa: 40 = 13 3 + 1 1 40 + (13) 3 = 1 d = 13 = 27 mod 40.

3.10. megolds. A c = me mod n = 97269 mod 11413 kifejezst kell kiszmol-


nunk. Az ismtelt ngyzetre emels s szorzs mdszert hasznljuk. Ehhez fel-
hasznljuk, hogy a 9 binris alakja 1001.

i bi ci = mbi c2i+1 mod n


c4 = 1
3 1 c3 = 9726 12 mod 11413 = 9726
2 0 c2 = 97262 mod 11413 = 4132
1 0 c1 = 41322 mod 11413 = 10989
0 1 c0 = 9726 109892 = 9726 36632 32 = 6950

A rejtett szveg teht c = 6950.

3.11. megolds.
a) 1 = (3999996, 379) = a 3999996 + b 379. Az euklidszi algoritmus felhasz-
nlsval: 1 = (139) 3999996 + (1467017) 379, ahonnan d = 1467017 =
2532979.
b) (n) = (p1)(q1) = pq(p+q)+1 = n(p+n/p)+1 alapjn msodfok
egyenletre jutunk p-ben, ahonnan p = 2003, q = 1999.

3.12. megolds. A tmad elkszti a lehetsges zenetek kdolt megfelel ojt a


nyilvnos kdol kulcs birtokban, s trolja a {nylt zenet, rejtett zenet} prok
halmazt. Megfigyelve a csatornban az aktulis rejtett zenetet a trolt prok
halmaza alapjn rekonstrulni kpes az zenetet.

3.13. megolds. Az ismtelt ngyzetre emels s szorzs algoritmust hasznljuk a


hatvnyozshoz, ahol a szorzsok szma a kitev oben tallhat egyesek szmval
egyezik meg. Az e = 2t + 1 kitevoben minimlis szm, azaz ketto egyes tallhat.

3.14. megolds. A tmad elfedi az eredeti x tartalmat azltal, hogy beszorozza


y rejtjeles szveget az zenetek terb ol vlasztott r vletlen elem r e mod n rejtje-
lezettjvel, s az y r e mod n szorzatot nyjtja be dekdolsra. A dekdols ered-
mnye z = r x mod n lesz. Amennyiben r invertlhat mod n (ez gyakorlatilag
biztos esemny), akkor a tmad knnyen kiszmtja az x zenetet. Ezen tmads
ugyanakkor knnyen kivdheto, ha a tmadott csak olyan dekdolt zeneteket ad
ki, amelyek elore rgztett formtumnak megfelel ok.
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.7. M EGOLDSOK 149

0
3.15. megolds. Nem, mivel a kapott hash fggvny ellen O(2 n /2 ) -nl kisebb
szmtsignyu szletsnapi tkzses tmads tovbbra is vgrehajthat. Ugyanis
elegendo csak magra az n bites CVL1 -re vgrehajtani ezt a tmadst, mert ha az
m = m1 |m2 | . . . |mL1 s m0 = m01 |m02 | . . . |m0L1 ] zenetprra tkzs ll elo CVL1 -
re, akkor mL blokkal meghosszabbtva m s m0 zeneteket, eloll az tkzs CVL -re
0
is, s gy CVL1 |CVL -re is. Ezrt a tmads O(2n /4 ) szmtsignyu maradt.

3.16. megolds. A bizonyts indirekt. Ha lenne (m, m 0 ) zenetpr, amelyre tk-


zs llna elo a H hash fggvny kimenetn, akkor az nyilvn tkzst jelentene
a komponens H1 s H2 hash fggvnyek vonatkozsban is, ami ellentmondana a
feltevsnknek.

3.17. megolds.
a) CBC mdban egy bit hiba az i. rejtjeles blokkban elrontja az i. nylt blokk
bitjeinek felt (tlagosan) s a kvetkez o nylt blokk egy bitjt. Mivel az AES
blokk mrete 128 bit, ezrt a dekdol kimenetn megfigyelt bit hiba arny:
(64 + 1) 104 = 65 104 .
b) CFB mdban egy bit hiba az i. rejtjeles karakterben elrontja az i. nylt karakter
egy bitjt majd az azt kveto n/s nylt karakter bitjeinek tlagosan felt, ahol n
a rejtjelezo blokkmrete s s a karakterek mrete bitben mrve. Jelen esetben
n = 128, s = 8, ezrt a megfigyelt bit hiba arny: (1 + 128 4 = 65 104 .
8 4) 10

c) CTR mdban nincs hibaterjeds, ezrt a megfigyelt bit hiba arny a dekdol
kimenetn 104 .

3.18. megolds. A CBC md lpseit vgiggondolva kzvetlenl lthat, hogy a


feladatban adott kdols eredmnye E K (m)|EK (0) az zenettol fggetlenl, azaz
semmifle integritsvdelmet nem kapunk. A tanulsg az, hogy mindenkppen
eltro kulcsot kell alkalmazni. Pldul DES alkalmazsa esetre K 0 kulcsra egy
szoksos vlaszts a K kulcs minden msodik flbjtjnak komplementlsa.

3.19. megolds.
a) A tmads menete a kvetkezo:

X B: X
XA B: A
B X: NBX
B XA : NBA
X B: {NBA }KX S
XA B: {NBA }KX S
B S: {X | {NBA }KX S }KBS
B S: {A | {NBA }KX S }KBS
S B: {NBA }KBS
S B: {}KBS
Kdolstechnika - 2006 - crysys web vltozat - 6.

3.8. SSZEFOGLALS 150

ahol jelli azt a pnzfeldobs sorozatot, amit S kap, amikor {N BA }KX S -et dek-
dolja a KAS kulccsal. B a szervertol kapott vlaszokat helytelenl rendeli hozz
az ppen fut protokoll pldnyokhoz. Ez azrt van, mert csak a szervert ol
visszakapott kihvs elem rtkt tudja ellen orizni, s mivel az megegyezik az-
zal az NBA -val, amelyet B A-nak kldtt, ezrt azt hiszi, a protokoll A-val futott
le sikeresen s valaki megprblta megszemlyesteni X-et. Valjban azonban
A egyltaln nincs jelen a tmads alatt.
b) Egy lehetsges javts a kvetkez o:

Javtott WooLam-protokoll
(1) A B : A
(2) B A : NB
(3) A B : {B, NB }KAS
(4) B S : A, {B, NB }KAS
(5) S B : {A, B, NB }KBS

Figyeljk meg az azonostk explicit hasznlatt az zenetekben!

3.8. sszefoglals
Ebben a fejezetben bemutattuk a kommunikcis rendszerekben alkalmazott f obb
biztonsgi szolgltatsok azaz a titkosts, az integritsvdelem, a hitelests s
a letagadhatatlansg megvalstshoz szksges kriptogrfiai eszkzket.
Megismerkedtnk kt fontos kriptogrfiai primitvvel, a rejtjelezssel s a krip-
togrfiai hash fggvnyekkel. A rejtjelezsnek kt fajtja ltezik, a szimmetrikus
kulcs s az aszimmetrikus kulcs, vagy ms nven nyilvnos kulcs rejtjelezs.
A szimmetrikus kulcs rejtjelezoket tovbb osztlyoztuk kulcsfolyam rejtjelez okre
s blokkrejtjelezokre. Megvizsgltuk a primitvek konstrukcijnak elvi krdseit
s bemutattuk az ismertebb algoritmusok mukdst, gy mint a DES, a 3DES, az
AES s az RSA.
Bemutattuk tovbb, hogy a primitvek mint pt oelemek segtsgvel hogyan
konstrulhatk kriptogrfiai protokollok. Rszletesen trgyaltuk a blokkrejtjele-
zok hasznlatnak mdjait (ECB, CBC, CFB, OFB, CTR). Megismerkedtnk a
hitelestsi feladatok megoldsnak lehet osgeivel: az zenethitelesto kdokkal, a
digitlis alrssal, s a partnerhitelest o protokollokkal. Rviden sszefoglaltuk a
nyilvnos kulcsok hitelestsnek mdszert, azaz a nyilvnos kulcs infrastruktra
(PKI) alapjait is. Foglalkoztuk tovbb a kulcscsere problmval, s a megolds-
knt hasznlhat kulcscsere protokollokkal.
Vgl a bemutatott mdszerek gyakorlati alkalmazsait a vals letb ol vett
pldkon, a GSM s a Web biztonsgi mechanizmusainak ismertetsn keresztl
szemlltettk. Bemutattunk tovbb egy elektronikus kereskedelmi alkalmazst, a
DigiCash elektronikus kszpnz protokollt, mely szintn kriptogrfiai pt oeleme-
ket hasznl.
Kdolstechnika - 2006 - crysys web vltozat - 6.

I RODALOMJEGYZK 151

Az rdeklodo olvas a kriptogrfia itt bemutatott fejezeteinek rszletesebb tr-


gyalst tallja [3]-ban. Az angol nyelvu szakirodalombl ajnljuk Stinson tan-
knyvt [6], Schneier knyvt [5], mely szmos kriptogrfiai algoritmus ler-
st s C forrskdjt tartalmazza olvasmnyos formban, valamint Menezes, van
Oorschot s Vanstone kziknyvt [4], mely kimert o jelleggel s matematikai ala-
posggal trgyalja a mrnki gyakorlatban hasznlatos kriptogrfiai mdszereket.
A partnerhitelesto s a kulcscsere protokollok rszletes trgyalst tartalmazza
Boyd s Mathuria knyve [2], tovbb ezen protokollok tervezsvel kapcsolatos
hasznos tancsokat tallhatunk Abadi s Needham cikkben [1].

Irodalomjegyzk
[1] Abadi, M., Needham, R., Prudent engineering practice for cryptographic pro-
tocols. IEEE Transactions on Software Engineering, 22(1), 1996.

[2] Boyd, C., Mathuria, A., Protocols for Authentication and Key Establishment.
Springer, 2003.

[3] Buttyn L., Vajda I., Kriptogrfia s alkalmazsai. TypoTEX Kiad, Budapest,
2004.

[4] Menezes, A., van Oorschot, P., Vanstone, S., Handbook of Applied Cryptogra-
phy. CRC Press, 1996.

[5] Schneier, B., Applied Cryptography. Wiley, 1996.

[6] Stinson, D., Cryptography: Theory and Practice. CRC Press, 1995.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4. fejezet

Adattmrts

A 4. s 5. fejezetben a forrskdolsra fogunk koncentrlni. Felttelezzk, hogy


a csatorna idelis, vagy mskpp, a csatornakd olyan j, hogy a forrskdolbl
kilpo adatsorozat pontosan megegyezik a forrsdekdolba belp o adatsorozattal.
A forrskdols lehet vesztesgmentes s vesztesges. Vesztesgmentes for-
rskdols, vagyis az n. adattmrts esetben megkveteljk, hogy az eredeti
forrsadatok pontosan helyrellthatk legyenek. Vesztesges forrskdols esetn
csak annyit vrunk el, hogy a dekdol ltal visszalltott adatok valamilyen rte-
lemben elgg kzel legyenek az eredetihez. Az adott alkalmazstl fgg, hogy a
ketto kzl melyik mdszert hasznljuk. Pldul egy szveg tmrtsekor azt sze-
retnnk, hogy a visszalltott szveg ne tartalmazzon hibt. Egy kp tmrtsekor
viszont megelgsznk azzal, ha a visszalltott kp ltvnya az eredetihez hasonl
minosgu.
Ebben a fejezetben bevezetjk a vesztesgmentes adattmrts fogalmt. En-
nek clja az, hogy egy zenetet, amely egy vges halmaz (forrsbc) elemeib ol
ll vges sorozat, egy msik vges halmaz (kdbc) elemeib ol ll sorozattal
reprezentljunk gy, hogy ez a sorozat a lehet o legrvidebb (s belole az zenet
visszallthat) legyen. A legismertebb plda erre az, amikor a kdbc a {0, 1}
halmaz, s egy zenetet (pl. rott szveg, fjl) binris sorozatok formjban kdo-
lunk trols, illetve tvitel cljbl.
Az elso tmrto eljrs a 19. szzad kzepn Samuel F. B. Morse (17911872)
ltal kidolgozott Morse-kd volt. A tvrn tkldtt betuket tit (rvidhossz,
mai szhasznlattal binris) sorozatokkal kdolta. Morse szrevette, hogy mivel
az bc egyes betui gyakrabban fordulnak el o, mint msok, ha ezekhez rvidebb
sorozatokat rendel, akkor ezzel lervidtheti az zenetek tkldshez szksges
idot.
A tmrts minosgt a tmrtsi arnnyal jellemezhetjk, ami a tmrtett
hossznak s az eredeti adatsorozat hossznak az arnya. Mindenki szmra vilgos,
hogy a tmrtsi arnynak, a tmrthet osgnek van als hatra. Az adattmr-
ts termszettrvnyt Claude E. Shannon (19162001) fedezte fel, amikor kisz-
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.1. P REFIX KDOK 153

mtotta a tmrtsi arny elvi als hatrt, a forrsentrpit, s megadott olyan


kdolsi eljrsokat, amelyek ezt az elvi als hatrt elrik.
A kvetkezo szakaszokban megismerkednk az zenetek egy termszetesen
add kritrium szerinti kdolsval az egyrtelmuen dekdolhat kdolssal
, mely ksobb vizsglataink kzppontjban ll majd. Bevezetjk a diszkrt va-
lsznusgi vltoz entrpijt, s megmutatjuk, hogy az entrpia milyen alapvet o
szerepet jtszik a kdolssal kapcsolatban. Az elkvetkez okben mindig azt tartjuk
szem elott, hogy az zenetek kdja minl rvidebb legyen, ezrt a kdok ltalunk
vizsglt fo tulajdonsga az tlagos kdszhossz lesz. A fejezetet az univerzlis
forrskdolssal s annak gyakorlati alkalmazsaival zrjuk.

4.1. Prefix kdok


Jelljn X egy diszkrt valsznusgi vltozt, amely az X = {x 1 , x2 , . . . , xn } vges
halmazbl veszi rtkeit. Az X-et a tovbbiakban vletlen betunek, az X halmazt
forrsbcnek, elemeit pedig betuknek nevezzk.
Y jelljn egy s elemu {y1 , y2 , . . . , ys } halmazt. Ezt kdbcnek nevezzk. Y
jellje az Y elemeibol ll vges sorozatok halmazt. Y elemeit kdszavaknak
nevezzk. Egy
f : X Y
fggvnyt, amely megfeleltetst ltest a forrsbc s a kdszavak kztt, kd-
nak neveznk. Az X elemeibol alkotott vges sorozatok az zenetek vagy kzle-
mnyek (rtkeiket az X halmazbl veszik). Amennyiben az f kd rtkkszlete
klnbzo hossz kdszavakbl ll, gy vltoz szhosszsg kdolsrl besz-
lnk.

4.1. definci. Az f : X Y kd egyrtelm uen dekdolhat, ha minden v-


ges kdbetusorozat legfeljebb egy kzlemny kdolsval llhat el o, azaz ha u
X , v X , u = u1 u2 . . . uk , v = v1 v2 . . . vm , u 6= v, akkor f (u1 ) f (u2 ) . . . f (uk ) 6=
f (v1 ) f (v2 ) . . . f (vm ). (Itt az f (u) f (u0 ) a kt kdsz egyms utn rst [konkate-
nci] jelenti.)

M EGJEGYZS :
a) Az egyrtelmu dekdolhatsg tbb, mint az invertlhatsg. Ugyanis legyen
X = {a, b, c}, Y = {0, 1} s f (a) = 0, f (b) = 1, f (c) = 01. Ekkor az f : X
Y lekpezs invertlhat, viszont a 01 kdszt dekdolhatjuk f (a) f (b) = 01
szerint ab-nek, vagy f (c) = 01 szerint c-nek is.
b) Az elobbi definciban szereplo kdolsi eljrst, amikor egy kzlemny kd-
jt az egyes forrsbetukhz rendelt kdszavak sorrendben egyms utn rsval
kapjuk, betunknti kdolsnak nevezzk. Termszetesen a kdolst teljesen l-
talnosan egy g : X Y fggvnnyel is definilhatnnk, de belthat, hogy
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.1. P REFIX KDOK 154

0 1

0 1 0 1

00 01 10 0 1

110 111

4.1. bra. Egy prefix kd kdfja

a betunknti kdols s annak termszetes kiterjesztse, a blokk-kdols ele-


gendo szmunkra, azaz a tmrtsi arny minimuma elrhet o blokkonknti
kdolssal.
c) Az egyrtelmu dekdolhatsg vgtelen sok eset ellen orzst ignyli, ezrt a
gyakorlatban hasznlhatatlan kvetelmny.

4.2. definci. Az f kd prefix, ha a lehetsges kdszavak kzl egyik sem foly-


tatsa a msiknak, vagyis brmely kdsz vgb ol brmekkora szegmenst levgva
nem kapunk egy msik kdszt.

Egy prefix kd brzolhat az n. kdfval (4.1. bra), amelynek levelei je-


lentik az zeneteket. A gykrtol a levelekig vezeto leken szereplo kdbetuket
sszeolvasva kaphatk meg a kdszavak. A prefix kdok egyben egyrtelmuen
dekdolhatak is, mivel egy adott kdsz karakterei a kdfa gykert ol indulva
egyrtelmu utat jellnek ki egy levlig, s ez lesz a dekdolt zenet.
Az eddig bevezetett fogalmak illusztrlsra nzzk a kvetkez o pldkat:

4.1. plda. X = {a, b, c}; Y = {0, 1} A kd legyen a kvetkez o: f (a) = 0, f (b) =


10, f (c) = 11. Knnyen ellenorizheto, hogy a kd prefix.
Ha az abccab zenetet kdoljuk, akkor a 0101111010 kdbetusorozatot kap-
juk. A kdbl az zenet visszafejtse nagyon egyszeru a prefix tulajdonsg miatt;
tbbek kztt ez a gyors dekdolsi lehet osg teszi vonzv a prefix kdokat.

4.2. plda. X = {a, b, c, d}; Y = {0, 1}; f (a) = 0, f (b) = 01, f (c) = 011, f (d) =
0111. Jl lthat, hogy a kd nem prefix, de egyrtelmuen dekdolhat, hiszen a 0
karakter egy j kdsz kezdett jelzi.

Bebizonythat, hogy minden egyrtelmuen dekdolhat kdhoz ltezik vele


ekvivalens (azonos kdszhossz) prefix kd, teht nem vesztnk semmit, ha az
egyrtelmu dekdolhatsg helyett a specilisabb, s ezrt knnyebben kezelhet o
prefix tulajdonsgot kveteljk meg.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.2. TLAGOS KDSZHOSSZ , ENTRPIA 155

4.2. tlagos kdszhossz, entrpia


Legyen X egy X rtku valsznusgi vltoz, amit kdolni akarunk. Vezessk be
a kvetkezo p : X [0, 1] fggvnyt:

p(x) = P{X = x}, x X.

A p(x) fggvny teht az x forrsbetuhz annak valsznusgt rendeli.

4.3. definci. Az X valsznusgi vltoz entrpijt, H(X)-et, a


n
H(X) = E( log p(X)) = p(xi ) log p(xi ).
i=1

sszeggel definiljuk.

M EGJEGYZS : A log z jells a z pozitv szm kettes alap logaritmust jelenti.


Mivel a 4.3. definci megkvnja, a logaritmusfggvnnyel kapcsolatban a kvet-
kezo szmolsi szablyokat vezetjk be (a 0, b > 0):
0 a b 0
0 log = 0 log = 0; b log = +; b log = .
a 0 0 b
(E szablyok az adott pontban nem rtelmezett fggvnyek folytonos kiterjeszt-
sei.) A defincibl kzvetlenl ltszik, hogy az entrpia nemnegatv. Vegyk
szre, hogy az entrpia rtke valjban nem fgg az X valsznusgi vltoz r-
tkeitol, csak az eloszlstl.

4.4. definci. Egy f kd tlagos kdszhosszn az


n
E| f (X)| = p(xi )| f (xi )|
i=1

vrhat rtket rtjk.

4.3. plda. A 4.1. plda kdja esetn legyen p(a) = 0.5, p(b) = 0.3, p(c) = 0.2,
ekkor az entrpia

H(X) = 0.5 log 0.5 0.3 log 0.3 0.2 log 0.2 1.485,

az tlagos kdszhossz pedig

E| f (X)| = 0.5 1 + 0.3 2 + 0.2 2 = 1.5.

Bebizonythat, hogy az entrpival als korlt adhat az tlagos kdszhosszra:

4.1. ttel. Tetszoleges egyrtelmuen dekdolhat f : X Y kdra


H(X)
E| f (X)| . (4.1)
log s
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.3. S HANNON FANO - KD 156

Az entrpia nhny tulajdonsga: Legyenek X s Y valsznusgi vltozk,


amelyek a vges X illetve Y halmazbl veszik rtkeiket.

4.2. ttel.
a) Ha az X valsznusgi vltoz n klnbz o rtket vehet fel pozitv valsznu-
sggel, akkor
0 H(X) log n,
s a bal oldalon egyenlosg akkor s csak akkor ll fenn, ha X 1-valsznu-
sggel konstans, a jobb oldalon pedig akkor s csak akkor, ha X egyenletes
eloszls, azaz p(xi ) = 1n , i = 1, . . . , n.
b) X s Y diszkrt valsznusgi vltozkra

H(X,Y ) H(X) + H(Y),

s az egyenlosg szksges s elgsges felttele X s Y fggetlensge. (H(X,Y )


az (X,Y ) valsznusgi vltozpr egyttes eloszlshoz rendelt entrpit je-
lli.)
c) Az X tetszoleges g(X) fggvnyre

H(g(X)) H(X),

s itt az egyenlosg szksges s elgsges felttele az, hogy g invertlhat


legyen.

4.3. ShannonFano-kd
Miutn lttuk, hogy egy X valsznusgi vltoz egyrtelmuen dekdolhat kdj-
nak tlagos kdszhosszra a H(X)
log s mennyisg als korltot ad, most megmutatjuk,
hogy prefix kddal ezt a korltot jl meg lehet kzelteni.
A ShannonFano-kd kostrukcijhoz feltehetjk, hogy

p(x1 ) p(x2 ) p(xn1 ) p(xn ) > 0,

mert klnben az X elemeinek tindexelsvel elrhetjk ezt. A konstrukci tech-


nikja miatt felhasznljuk az yi 7 i 1, i = 1, . . . , s megfeleltetst. Legyenek a w i
szmok a kvetkezok:
i1
w1 = 0, wi = p(xl ), i = 2, . . . , n.
l=1

Kezdjk a w j szmokat felrni s-alap szmrendszerbeli trt alakban. A w j -hez


tartoz trtet olyan pontossgig rjuk le, ahol az el oszr klnbzik az sszes tbbi
wi , i 6= j szm hasonl alakbeli felrstl. Miutn ily mdon n darab vges hossz
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.3. S HANNON FANO - KD 157

x1 , x2 , x3 , x4 , x5
0 1
x1 , x2 x3 , x4 , x5
0 1 0 1
x1 x2 x3 x4 , x5
00 01 10 0 1
x4 x5
110 111

4.2. bra. A 4.4. plda ShannonFano-kdjnak el olltsa

trtet kapunk, az f (x j ) legyen a w j -hez tartoz trt az egszeket reprezentl nulla


nlkl.
A ShannonFano-kdot elollthatjuk egy msik algoritmussal is. Osszuk fel
a szimblumok valsznusgeinek cskken o sorozatt kt rszre gy, hogy a so-
rozat elso felben lvo valsznusgek sszege s a sorozat msodik felben lv o
valsznusgek sszege a leheto legkevsb trjen el egymstl. Legyen az els o
rszben lvo szimblumok kdszavnak elso bitje 0, a msodik rszben lvok pe-
dig 1. Ezutn alkalmazzuk ezt az eljrst rekurzvan az els o s a msodik rszben
lvo szimblumokra, s gy megkapjuk a kdszavak tovbbi bitjeit. Az algoritmus
akkor r vget, ha mr minden rszben csak egyetlen szimblum szerepel.

4.4. plda. Legyen n = 5 s p(x1 ) = 0.35, p(x2 ) = 0.2, p(x3 ) = 0.2, p(x4 ) =
0.15, p(x5 ) = 0.1 s Y = {0, 1}. Keressk meg az ehhez tartoz ShannonFano-
kdot. Hasznljuk a msodik algoritmust. A valsznusgek kt rszre osztsa utn
az elso rszben az x1 s x2 szimblumok lesznek (p(x1 ) + p(x2 ) = 0.55), a msodik
rszben pedig az x3 , x4 s x5 szimblumok (p(x3 ) + p(x4 ) + p(x5 ) = 0.45). gy az
x1 s x2 szimblumok kdszavnak elso bitje 0, mg az x3 , x4 s x5 szimblumok
1 lesz. Az x1 s x2 rszt kettosztva elkszltnk ezek kdszavaival: az x 1 - 00,
az x2 - pedig 01 lesz. A msodik rszt ismt kettosztva az x 3 egyedl marad, gy
ennek kdszava 10, az x4 s x5 kdszavt pedig egy jabb kettoszts utn kapjuk:
x4 kdszava 110, mg x5 - 111 lesz.

Knnyedn belthat, hogy az gy kapott kd prefix, mivel kdfval brzol-


hat.

4.3. ttel. Ltezik olyan f : X Y prefix kd, mgpedig a ShannonFano-kd,


amelyre
H(X)
E| f (X)| < + 1.
log s
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.3. S HANNON FANO - KD 158

Blokk-kdols

A betunknti kdolsnak van egy termszetes ltalnostsa, a blokk-kdols.


Ezt formlisan egy f : Xm Y lekpezssel definilhatjuk, ahol teht a forrsb-
c betuibol alkotott rendezett m-eseket tekintjk forrsszimblumoknak s ezeknek
feleltetnk meg kdszavakat. A helyzet tulajdonkppen nem vltozik a betunknti
kdols esethez kpest, hiszen egy j X b forrsbct definilhatunk az X b = Xm
jellssel, s az eddig elmondottak mind rvnyben maradnak. Az egyrtelmu de-
kdolhatsg defincija ugyanaz marad, mint a betunknti kdols esetben, az
elobbieket szem elott tartva. Legyen X = (X1 , . . . , Xm ) egy valsznusgi vektor-
vltoz, melynek koordinti az X-b ol veszik rtkeiket. Az entrpia 4.3. defin-
cijbl jl ltszik, hogy az csakis az eloszlstl fgg. Mivel X is csak vges sok
klnbzo rtket vehet fel, a 4.3. defincit kzvetlenl alkalmazhatjuk. Az X
entrpija teht a

p(x) = p(x1 , . . . , xm ) = P{X1 = x1 , . . . , Xm = xm }, x1 , . . . , xm X,

jellst bevezetve a kvetkezo:

H(X) = p(x) log p(x) =


xXm
= p(x1 , . . . , xm ) log p(x1 , . . . , xm ).
x1 X xm X

Az X = (X1 , . . . , Xm ) entrpijra a H(X) jells mellett, ahol ez a clszerubb,


gyakran a H(X1, . . . , Xm ) jellst fogjuk hasznlni.
A betunknti tlagos kdszhossz defincija rtelemszeruen mdosul a blokk-
kdols esetben: a kdszhossz vrhat rtkt el kell osztani az egy blokkot al-
kot forrsbetuk szmval, vagyis a betunknti tlagos kdszhosszon a kvetkez o
mennyisget rtjk:
1 1
m
E| f (X)| = m p(x)| f (x)|
m xX

rtelemszeruen a 4.1. ttel lltsa blokk-kdols esetn is igaz:


1
1 H(X)
E| f (X)| m .
m log s
Msrszrol a 4.3. ttelbol kvetkezik, hogy a ShannonFano-kdra
1
1 H(X) 1
E| f (X)| m + .
m log s m
Az m blokkhossz nvelsvel ltalban javul az adattmrts hatkonysga,
azaz cskken az egy beture jut tlagos kdszhossz. Pldaknt tekintsk az iro-
dalmi angol szveg tmrtsnek problmjt. Csak a kis betuket s a legfonto-
sabb rsjeleket megtartva kaphatunk egy 32 elemu bct, vagyis tmrts nlkl
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.3. S HANNON FANO - KD 159

egy betut 5 bittel tudunk reprezentlni. Ha becsljk az X1 eloszlst, akkor a


H(X1 )-re krlbell 4.03 addik, teht m = 1 esetn a ShannonFano-kdra a

4.03 E| f (X1 )| 4.03 + 1 = 5.03

addik, ami mg nem elorelps a tmrtetlen 5 bithez kpest. m = 2 esetn


H(X1 , X2 )/2 3.32, teht

1 1
3.32 E| f (X1 , X2 )| 3.32 + = 3.82,
2 2
m = 3 esetn
1
3.1 E| f (X1 , X2 , X3 )| 3.43,
3
s m = 4 esetn
1
2.8 E| f (X1 , X2 , X3 , X4 )| 3.05.
4
4.5. definci. Az X informciforrst az X1 , X2 , . . . valsznusgi vltozk vg-
telen sorozatval modellezzk, azaz a forrs az i-edik id opillanatban az Xi je-
let bocstja ki. Az Xi valsznusgi vltozk mindegyike ugyanabbl a vges
X = {x1 , . . . , xn } halmazbl, a forrsbcbol veszi az rtkt. Az X forrst sta-
tisztikai tulajdonsgaival jellemezzk, vagyis adottnak vesszk, ha minden vges
dimenzis eloszlst ismerjk.

Informciforrsok egy tg osztlyra megmutathat, hogy az m1 H(X1 , . . . , Xm )


betunknti entrpia monoton cskken, teht az m nvelsvel az als hatr csk-
ken.

Markov-lncok

A kvetkezokben egy olyan struktrt, az n. Markov-lncot ismerjk meg,


amellyel hatkonyan lerhatk egyes redundns karaktersorozatok, s szemlltet-
heto a blokkonknti kdols hatkonysga.
Az X1 , X2 , . . . valsznusgi vltozk Markov-lncot alkotnak, ha

P{Xk = xk | X1 = x1 , X2 = x2 , . . . , Xk1 = xk1 } = P{Xk = xk | Xk1 = xk1 } (4.2)

minden k 2-re s minden lehetsges x 1 , x2 , . . . , xk sorozatra. A Xi rtkeit a


Markov-lnc llapotainak, az llapotok X halmazt pedig a Markov-lnc llapot-
ternek nevezzk. Feltesszk, hogy |X| < , vagyis az llapottr vges. Az
X1 , X2 , . . . Markov-lnc homogn, ha az n. egylpses tmenetvalsznusgek nem
fggenek a vltozk indextol, vagyis

P{Xk = x2 | Xk1 = x1 } = P{X2 = x2 | X1 = x1 }

minden x1 , x2 X-re s minden k 2-re.


Kdolstechnika - 2006 - crysys web vltozat - 6.

4.3. S HANNON FANO - KD 160

p(s | v)

#
R #
j
p(v | v) v s p(s | s)
"!
Y "!
I

p(v | s)

4.3. bra. Egy fekete-fehr kp Markov-lnc modellje

Egy Markov-lnc eloszlsa az albbi lncszably alapjn megadhat a kezdeti


eloszls s az egylpses tmenetvalsznusgek segtsgvel:

P{Xm = xm , . . . , X1 = x1 } =
= P{Xm = xm | Xm1 = xm1 , . . . , X1 = x1 } P{X2 = x2 | X1 = x1 }P{X1 = x1 } =
= P{Xm = xm | Xm1 = xm1 } P{X2 = x2 | X1 = x1 }P{X1 = x1 } =
m
= p(xi | xi1 )p(x1 ).
i=2

A P{Xk = x2 | Xk1 = x1 } tmenetvalsznusgek ismeretben a Markov-mo-


dell jl hasznlhat szvegek s kpek tmrtsre. Angol nyelvu szvegek entr-
pijnak meghatrozsra elsoknt Shannon vgzett ksrleteket. A nyelvi redun-
dancit modellezte Markov-lncokkal. A 26 betus angol bct hasznl szve-
gek esetn msodrendu Markov-lnc modell hasznlatval 3.1 bit/betu tmrtsi
arnyt rt el. Ez 2.4 bit/betu-re szorthat le, ha betuk helyett szavak szerepelnek
a modellben. Az angol nyelv entrpijnak becslsre Shannon ksrleti szem-
lyeket is alkalmazott a statisztikai modellek helyett. A rsztvev oknek a szveg
aktulis betujt kellett kitallniuk a megel ozo 100 betus krnyezet alapjn. gy
als hatrnak 0.6 bit/betu, mg fels onek 1.3 bit/betu addott. Minl hosszabb kr-
nyezetet vizsglunk, annl jobb a jsls eredmnye, azonban a krnyezet hosszval
exponencilisan nvekszik a lehetsges megel ozo llapotok szma.

4.5. plda. Egy fekete-fehr kp sorait modellezzk egy {Xi } homogn Markov-
lnccal a 4.3. brn lthat mdon. A v llapot jelli azt, hogy az aktulis kppont
vilgos, mg az s, hogy stt. p(v) a vilgos, p(s) a stt kppont kezdeti val-
sznusge. Az tmenetvalsznusgek kzl pldul p(v | s) jelenti annak az ese-
mnynek a valsznusgt, amikor egy stt kppont utn egy vilgos kvetkezik.

Szmtsuk ki egy tetszoleges Markov-lnc entrpijt:

H(X1 , . . . , Xm ) = p(x1 , . . . , xm ) log p(x1 , . . . , xm ) =


x1 ,...,xm
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.3. S HANNON FANO - KD 161

m
= p(x1 , . . . , xm ) log p(xi | xi1 )p(x1 ) =
x1 ,...,xm i=2
m
= p(x1 , . . . , xm ) log p(xi | xi1 )
i=2 x1 ,...,xm
p(x1 , . . . , xm ) log p(x1 ) =
x1 ,...,xm
m
= p(xi1 , xi ) log p(xi | xi1 ) p(x1 ) log p(x1 ) =
i=2 xi1 ,xi x1

= (m 1) p(x1 , x2 ) log p(x2 | x1 ) p(x1 ) log p(x1 ) =


x1 ,x2 x1
= (m 1)H(X2 | X1 ) + H(X1).

A p(x1 , x2 ) log p(x2 | x1 ) mennyisget feltteles entrpinak nevezzk, s


x1 ,x2
H(X2 | X1 )-gyel jelljk. A betunknti entrpia ekkor gy alakul:
1 1 m1
H(X1 , . . . , Xm ) = H(X1) + H(X2 | X1 ).
m m m
Nagy m blokkhossz esetn az elso tag elhanyagolhat, ezrt a betunknti entrpia
kzeltoleg megegyezik a H(X2 | X1 ) feltteles entrpival.

4.6. plda. Legyenek a 4.5. plda valsznusgei a kvetkez oek:

p(s | s) = 0.77, p(v | s) = 0.23, p(s | v) = 0.02, p(v | v) = 0.98

Megmutathat, hogy ha

p(s) = 0.08, p(v) = 0.92,

akkor a Markov-lnc azonos eloszls. Ennek az eloszlsnak az entrpija:

H(X1 ) = 0.92 log 0.92 0.08 log 0.08 = 0.402

Ugyanez a modellnk szerint:

H(X2 | X1 ) = p(x2 | x1 )p(x1 ) log p(x2 | x1 ) =


x1 x2
= p(s | s)p(s) log p(s | s) p(v | s)p(s) log p(v | s)
p(s | v)p(v) log p(s | v) p(v | v)p(v) log p(v | v) =
= 0.77 0.08 log 0.77 0.23 0.08 log 0.23
0.02 0.92 log 0.02 0.98 0.92 log 0.98 =
= 0.192

Lthat, hogy kevesebb, mint a felre cskkent az entrpia az tmenetvalsznus-


gek ismerete miatt.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.4. O PTIMLIS KDOK , BINRIS H UFFMAN - KD 162

4.4. Optimlis kdok, binris Huffman-kd


A 4.1. ttel als korltot ad az egyrtelmuen dekdolhat kdok tlagos kdszhosz-
szra, a 4.3. ttel pedig mutat egy olyan kdkonstrukcit, ahol ezt a korltot jl
megkzelthetjk. A j kd konstrukcijnak problmjt persze ennl ltalno-
sabban is felvethetjk: konstruljuk meg az optimlis, azaz legkisebb tlagos kd-
szhossz kdot, ha adott az X valsznusgi vltoz eloszlsa. El oszr is gon-
doljuk t, hogy optimlis kd valban ltezik. Ugyan vges kdbc esetn is
az egyrtelmuen dekdolhat vagy prefix kdok halmaza vgtelen, de a bizonyos
tlagos kdszhossznl (pl. H(X)log s + 1) jobb kdok halmaza vges. Msodszor, ve-
gyk szre, hogy az optimlis kd nem felttlenl egyrtelmu; egyenl o valsz-
nusgekhez tartoz kdszavakat felcserlhetnk, csakgy, mint az egyenl o hossz
kdszavakat, anlkl, hogy az tlagos kdszhosszat ezzel megvltoztatnnk.
Egy optimlis egyrtelmuen dekdolhat kd konstrulst egy optimlis pre-
fix kd konstrulsra lehet visszavezetni. Ezrt a kvetkez okben kimondjuk az
optimlis prefix kdok nhny tulajdonsgt. A tovbbiakban az egyszerusg ked-
vrt a binris, s = 2 esettel foglalkozunk; feltesszk, hogy Y = {0, 1}. Az ltal-
nos, s > 2 eset bonyolultabb, s a dolog lnyege gy is jl lthat.

4.4. ttel. Ha az f : X {0, 1} prefix kd optimlis, s X elemei gy vannak


indexelve, hogy p(x1 ) p(x2 ) p(xn1 ) p(xn ) > 0, akkor felteheto, hogy
f -re a kvetkezo hrom tulajdonsg teljesl:
a) | f (x1 )| | f (x2 )| | f (xn1 )| | f (xn )|, vagyis nagyobb valsznusgek-
hez kisebb kdszhosszak tartoznak.
b) | f (xn1 )| = | f (xn )|, vagyis a kt legkisebb valsznusgu forrsbetuhz tartoz
kdsz egyenlo hossz.
c) Az f (xn1 ) s az f (xn ) kdszavak csak az utols bitben klnbznek.

4.5. ttel. Tegyk most fel, hogy a 4.4. ttel felttelei teljeslnek, s hogy a {p(x 1 ),
p(x2 ), . . . , p(xn1 ) + p(xn )} valsznusgeloszlshoz ismernk egy g optimlis bi-
nris prefix kdot. (Az xn1 s xn forrsbetuket sszevonjuk egy xn1 szimb-
lumba; p(xn1 ) = p(xn1 ) + p(xn ) ). Ekkor az eredeti {p(x1 ), p(x2 ), . . . , p(xn1 ),
p(xn )} eloszls egy optimlis f prefix kdjt kapjuk, ha a g(xn1 ) kdszt egy nul-
lval, illetve egy egyessel kiegsztjk (a tbbi kdszt pedig vltozatlanul hagy-
juk).
Az elozo ttel alapjn mr megadhatjuk az optimlis prefix kd Huffman-fle
konstrukcijt: A kt legkisebb valsznusg sszevonsval addig redukljuk a
problmt, amg az trivilis nem lesz, vagyis amg sszesen kt valsznusgnk
marad. Ezt n 2 lpsben rhetjk el. Ezutn az sszevonsok megfordtsval,
mindig a megfelelo kdsz ktfle kiegsztsvel jabb n 2 lpsben felpt-
jk az optimlis kdot, a Huffman-kdot. Vegyk szre, hogy ez egy n. moh
algoritmus, azaz az egyes lpsekben mindig loklisan optimlis dntst hoz.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.4. O PTIMLIS KDOK , BINRIS H UFFMAN - KD 163

1 1
4. 1
4. 0.6 0 0.6
3. 1
0.4 3. 0.25 0.4 0 0.25
2. 2. 1. 1. 0 1 0 1
0.2 0.2 0.35 0.15 0.1 0.2 0.2 0.35 0.15 0.1
00 01 10 110 111

4.4. bra. A 4.7. plda Huffman-kdjnak el olltsa

A Huffman-kd prefix, ezrt azt binris faknt is brzolhatjuk. A leveleket


a forrsszimblumokkal cmkzzk, az leken pedig a kdbc ({0, 1}) elemei
szerepelnek. A cscsokban a szimblumok valsznusgei llnak. Egy forrs-
szimblumhoz tartoz kdszt gy kapunk meg, hogy a fa gykert ol a megfelelo
levlig hzd t lein szereplo kdbetuket sorban sszeolvassuk (konkatenljuk).
A Huffman-kdols szemlletesen gy trtnik, hogy kiindulsknt felvesszk a
forrsszimblumokhoz tartoz leveleket, a cscsokba a forrsszimblumok val-
sznusgeit rjuk, majd lpsenknt mindig a kt legkisebb rtket tartalmaz cscs
fl tesznk egy j cscsot (szlot), s ebbe a kt rgi rtk sszegt rjuk. Az el-
jrs vgn kialakul az sszefggo fa, melynek a legutols lpsben megkapott
cscsa lesz a gykr.

INPUT: lista={az n fle szimblumnak megfelelo


izollt cscsok}

FOR i=1 to n-1


cscs=Cscsot_Felvesz()
cscs.bal=Legkisebb_rtku_Cscsot_Kivesz(lista)
cscs.jobb=Legkisebb_rtku_Cscsot_Kivesz(lista)
cscs.valsznusg=
(cscs.bal).valsznusg+(cscs.jobb).valsznusg
Beilleszt(lista,cscs)
ENDFOR
RETURN Legkisebb_rtku_Cscsot_Kivesz(lista)

A kvetkezo pldban nyomon kvethetjk az algoritmus egyes lpseit.

4.7. plda. Legyen n = 5 s p(x1 ) = 0.35, p(x2 ) = 0.2, p(x3 ) = 0.2, p(x4 ) =
0.15, p(x5 ) = 0.1, s keressk meg az ehhez tartoz Huffman-kdot. A 4.4. bra
bal oldaln az egyes lpseket az sszevonsokat jell o nyilak melletti sorszmo-
zssal szemlltettk. A 0.4 s 0.6 valsznusgek optimlis prefix kdja nyilvn
a 0 s az 1 (vagy fordtva). Az sszevonsok megfordtsval elvgezhetjk a
Huffman-kd felptst. A 4.4. bra jobb oldaln a lefel mutat nyilakon feltn-
tettk, hogy az adott lpsben hogyan klnbztettk meg a kdszavakat a 0 vagy
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.4. O PTIMLIS KDOK , BINRIS H UFFMAN - KD 164

az 1 bit hozzrendelsvel. Vgl a binris fa gykert ol indulva s a levelekig


szintenknt lefel haladva kiolvashatjuk az gy kapott kdszavakat, amelyeket a
levelek alatt is feltntettnk. Teht f (x 1 ) = 10, f (x2 ) = 00, f (x3 ) = 01, f (x4 ) =
110, f (x5 ) = 111.

A bemenet nhny specilis eloszlsa esetn azonnal meg tudjuk adni a Huff-
man-kdot, az algoritmus tnyleges lefuttatsa nlkl is.

4.8. plda. A bemenet n. diadikus eloszlsa esetn, vagyis amikor az egyes szim-
blumok valsznusgei a 2 negatv egsz kitev os hatvnyaiknt rhatk fel

p(xi ) = 2i , Z,

az egyes kdszavak i hosszak, gy az tlagos kdszhossz


n n n
E| f (X)| = p(xi )| f (xi )| = p(xi ) ( log p(xi )) = 2i i .
i=1 i=1 i=1

4.9. plda. A bemenet egyenletes eloszlsa, azaz


1
p(xi ) =
n
esetn a kdszavak hossza k vagy k1, ahol k = dlog ne. A Huffman-algoritmus a k
hossz kdszavak szmt a leheto legkisebbre vlasztja meg. Ezt legegyszerubben
gy kaphatjuk meg, ha kiindulunk egy k 1 mlysgu teljes binris fbl, s ennek
nhny levelhez tovbbi 2-2 cscsot kapcsolunk a k-adik szinten. Egy levl ily
mdon val kettgaztatsa eggyel nveli a levelek, s ezzel egytt a kdszavak
szmt. Ennek eredmnyeknt 2n 2k darab k hossz s 2k n darab k 1 hossz
kdszt kapunk.

Mivel a Huffman-kd optimlis, azaz a legkisebb tlagos kdszhossz pre-


fix kd, ezrt a 4.3. ttel miatt az tlagos kdszhossza az entrpinl legfeljebb
1 bittel nagyobb. Valjban ennl er osebb llts is igaz: a Huffman-kd tlagos
kdszhossza az entrpinl legfeljebb p max + 0.086 rtkkel nagyobb, ahol pmax
a leggyakoribb szimblum valsznusge. A gyakorlatban, nagy bemeneti bc
esetn pmax rtke kicsi, gy a Huffman-kd tlagos kdszhossznak eltrse az
entrpitl szintn kicsi, klnsen ha az eltrst az entrpia arnyban nzzk.
Ugyanakkor kis bcmret s nagyon eltr o valsznusgek esetn pmax , s gy
az tlagos kdszhossz entrpitl val eltrse is meglehet osen nagy lehet. Ezen
rszben segthetnk a blokk-kdolssal, de sajnos ez jabb problmk forrsa le-
het.

4.10. plda. Tegyk fel, hogy a bemeneten kapott tmrtend o adatsorozat karak-
terei egy hromelemu bcbol veszik fel az rtkeiket, s az egyes szimblumok
egymstl fggetlenl a kvetkezo eloszls szerintiek:

p(x1 ) = 0.95, p(x2 ) = 0.03, p(x3 ) = 0.02.


Kdolstechnika - 2006 - crysys web vltozat - 6.

4.5. A RITMETIKAI KDOLS 165

Ekkor a bemenet entrpija 0.335 bit/szimblum, mg a betunknti Huffman-kd


tlagos kdszhossza 1.05 bit/szimblum, amely az entrpia 213%-a. Ha kt-kt
szimblum alkotta blokkra vgezzk el a Huffman-kdolst, akkor 0.611 bit/szim-
blum tlagos kdszhosszat kapunk. Ezt folytatva egszen 8 szimblum mretu
blokkokig kell elmennnk ahhoz, hogy az tlagos kdszhossz s az entrpia k-
lnbsge elfogadhat rtkre cskkenjen. Vegyk szre, hogy ehhez 3 8 = 6561
elemu bc tartozik. Ilyen nagy mretu kdok alkalmazsa tbb szempontbl is
elonytelen. Egyrszt mr a kd trolsa (illetve a vev ohz val tkldse) is sok
helyet foglal. Msrszt sok idot s eroforrst ignyel a dekdols. Harmadrszt,
ha egy kicsit is megvltozik a szimblumok valsznusge, az jelent osen ronthatja
a kd hatkonysgt.

Lthatjuk, hogy sokkal hatkonyabb, ha blokkokat kdolunk egyes szimblu-


mok helyett. Minl nagyobb blokkmretet vlasztunk, annl kisebb lesz a veszte-
sg. Ugyanakkor a Huffman-kd nagy blokkmret esetn a gyakorlatban kevsb
alkalmazhat. Egyrszt a kdsz elkldse csak a teljes m hossz blokk beolvassa
utn lehetsges, s emiatt nagy m esetn jelent os ksleltets keletkezhet. Msrszt
m hossz blokkok Huffman-kdolshoz az sszes lehetsges m-hossz sorozathoz
tartoz kdszt elo kell lltanunk, ami a kd mretnek exponencilis nvekedst
jelenti, s ez praktikus szempontbl is korltot llt m nvelse el. Olyan eljrsra
van szksgnk, amely az egyes blokkokhoz gy rendel kdszavakat, hogy kzben
nem kell meghatroznunk az sszes tbbi ugyanolyan hossz blokk kdszavt. Ezt
a kvetelmnyt teljesti a 4.5. szakaszban ismertetett aritmetikai kdols, amelyet
kifejezetten blokkonknti kdolshoz alkalmaznak. Jellegzetessge, hogy vals
idoben trtnik a kdsz elolltsa s visszafejtse, teht nem lp fel jelent os ks-
leltets, akrmilyen hossz blokkokat is kdolunk.

4.5. Aritmetikai kdols


Az aritmetikai kdols a ShannonFano-kd termszetes kiterjesztse. Alapt-
lete, hogy a valsznusgeket intervallumokkal brzolja, amihez a valsznusgek
pontos kiszmtsa szksges. Egyetlen kdszt rendel a bemeneti adathalmaz egy
blokkjhoz, vagyis blokkonknti kd. Egy kdsz a [0, 1) intervallum egy jobbrl
nylt rszintervallumnak felel meg, s megadsa annyi bittel trtnik, amennyi
mr egyrtelmuen megklnbztethet ov teszi brmely ms rszintervallumtl. A
rvidebb kdszavak hosszabb intervallumokat, vagyis nagyobb valsznusgu be-
meneti blokkokat kdolnak. A gyakorlatban a rszintervallumokat fokozatosan
finomtjuk a blokk szimblumainak valsznusgei szerint, s mihelyt eld ol a ki-
menet egy bitje (elegendoen kicsi lesz az intervallum aktulis hossza), tovbbtjuk
azt.
Az aritmetikai kdolst idelis, azaz vgtelen pontossg lebeg opontos aritme-
tikval mutatjuk be. A gyakorlatban termszetesen csak vges pontossg aritme-
tikk lteznek, de a mdszer ezeken is implementlhat.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.5. A RITMETIKAI KDOLS 166

A kdol mukdse a kvetkezo. Indulskor az aktulis [E0 ,V0 ) intervallum-


nak a [0, 1) intervallumot vesszk. Ezutn minden egyes bemeneti szimblumot kt
lpsben kdolunk. Eloszr tovbb osztjuk az aktulis [Ek ,Vk ) intervallumot disz-
junkt rszintervallumokra gy, hogy ezek kzl egy-egy a szimblum lehetsges
rtkeinek feleljen meg. A rszintervallumok hosszt a szimblumrtkek felt-
teles valsznusgvel arnyosnak vlasztjuk meg. Az ily mdon partcit alkot
rszintervallumok kzl azt vlasztjuk, amelyik a szimblum tnylegesen el ofor-
dul rtknek felel meg, s ezutn ez lesz az j aktulis [E k+1 ,Vk+1 ) intervallum.
Valjban nem szksges egy-egy szimblum esetn az sszes rszinterval-
lumot meghatroznunk, elegendo a szimblum tnyleges rtknek megfelel ore
szortkoznunk. Ehhez kumulatv valsznusgeket vezetnk be, a k-adik bemeneti
szimblum feldolgozshoz annak i-edik lehetsges rtke esetn a

0,
ha i = 0,
wki := i1
p(x j | x1 , . . . , xk1 ), ha 1 i n

j=1

valsznusget, ahol x1 , . . . , xk1 az eddig mr feldolgozott k 1 bemeneti szim-


blumot jelli. Az [Ek1 ,Vk1 ) aktulis intervallum esetn, ha a bemeneten az
i-edik lehetsges szimblumrtk rkezik, akkor az j [E k ,Vk ) intervallum a kvet-
kezo:

Ek = Ek1 + wki (Vk1 Ek1 ), Vk = Ek1 + (wki + p(xi ))(Vk1 Ek1 ).

Lthat, hogy a vgl gy kialakul intervallum egyrtelmuen meghatrozza a tel-


jes egymsba skatulyzott intervallumsorozatot, s emiatt bel ole a teljes blokk
visszafejtheto. Az intervallum hossza a bemeneten rkezett szimblumok felt-
teles valsznusgeinek szorzata, azaz a blokk valsznusge. Az utols interval-
lumot kdoljuk teht, de a gyakorlatban nem az intervallum als s fels o hatra,
hanem annak egy tetszolegesen vlasztott eleme adja a kdszt. Ebb ol is visz-
szallthat ugyanis az zenet. Clszeru az intervallumbl a lehet o legkevesebb
bittel lerhat elemet kivlasztanunk. Belthat, hogy az x zenetblokkhoz
l m tartoz
1
intervallumbl alkalmasan kivlasztott elem lershoz elegend o log p(x) + 1 bit.
Ebbol megkaphat, hogy egy m hossz blokkhoz tartoz kdsz hossznak vrhat
rtkre, azaz az tlagos kdszhosszra igaz a kvetkez o:
  
1
E| f (X)| E log +1 =
p(X)
 
1
= p(x) log +1 <
p(x)
 
1
< p(x) log +1 +1 =
p(x)
= p(x) log p(x) + p(x) + 1 =
= H(X) + 2.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.5. A RITMETIKAI KDOLS 167

Az aritmerikai kd tlagos kdszhosszra teht rosszabb korltunk van, mint


a ShannonFano-kd esetn. Ennek az az oka, hogy nem rendezzk sorba minden
lpsben a szimblumokat a feltteles valsznusgeik szerint cskken o mdon.
Ha az X zenetvektor komponensei fggetlen azonos eloszlsak, akkor a w ki
valsznusgek nem fggenek k-tl, s a kiszmtsukhoz sem kell feltteles val-
sznusgeket hasznlnunk:

0,
ha i = 0,
wi := i1
p(x j ), ha 1 i n

j=1

Ekkor H(X) = mH(X1 ), teht a betunknti tlagos kdszhosszra


1 2
E| f (X)| H(X1 ) + ,
m m
azaz az m blokkhossz nvelsvel tetsz olegesen megkzelti H(X1 )-et. Fontos,
hogy ellenttben a blokkonknti Huffman-kdolssal itt a bonyolultsg nem n o a
blokkok hossznak nvelsvel.
Az albbiakban az aritmetikai kdol fggetlen azonos eloszls bemeneti
szimblumokra mukdo pszeudokdjt adjuk meg. Annyiban egyszerustjk a
megoldst, hogy az algoritmus a vgs o intervallumbl nem felttlenl a lehet o leg-
kevesebb bittel brzolhat elemet vlasztja ki.

INPUT: x[ ]={tmrtendo blokk}


n={tmrtendo blokk hossza}
p[ ]={szimblumok valsznusgei}
w[ ]={szimblumok kumullt valsznusgei}

OUTPUT: c={kdsz}

E=0
hossz=1
FOR i=0 to n-1
E=E+hossz*w[x[i]]
hossz=hossz*p[x[i]]
ENDFOR
mret=FelsoEgszRsz(-log(hossz))+1
c=FelsoEgszRsz(E*Hatvny(2,mret))
RETURN c

A dekdol pszeudokdja pedig a kvetkez o:

INPUT: c={kdsz}
n={dekdoland blokk hossza}
p[ ]={szimblumok valsznusgei}
w[ ]={szimblumok kumullt valsznusgei}
F[ ]={forrsbc}
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.5. A RITMETIKAI KDOLS 168

1 5
0 2 6 1

1 2 7 5
2 3 9 6

1 7 23 2
2 12 36 3

4.5. bra. Az intervallum felosztsa aritmetikai kdols sorn

OUTPUT: x[ ]={dekdolt blokk}

FOR i=0 to n-1


j=1
WHILE c<w[F[j]]
j++
ENDWHILE
x[i]=F[j-1]
c=(c-w[x[i]])/p[x[i]]
ENDFOR
RETURN x

4.11. plda. Tegyk fel, hogy a bemeneti szimblumok fggetlen azonos eloszl-
sak, s hromfle rtket vehetnek fel. Eloszlsuk s az ehhez tartoz kumulatv
valsznusgek a kvetkezok:
p(x1 ) = 12 , w1 = 0,
p(x2 ) = 13 , w2 = 21 ,
p(x3 ) = 16 , w3 = 65 .
Kdoljuk aritmetikai kdolval az x 2 , x1 , x3 sorozatot. A kezdeti intervallum az
[E0 ,V0 ) = [0, 1)
(als indexszel az eddig mr feldolgozott szimblumok szmt jelljk). Az els o,
vagyis az x2 szimblum utn hrom rszre vgjuk az intervallumot, s a kzps o
rszt vlasztjuk ki (4.5. bra), teht
    
[E1 ,V1 ) = 0 + 12 (1 0), 0 + 12 + 31 (1 0) = 12 , 56 .
Ismt hrom rszre osztjuk az aktulis intervallumot, s mivel a msodik szimblum
az x1 , gy az elso rszintervallumot vlasztjuk:
     
[E2 ,V2 ) = 21 + 0 56 12 , 12 + 0 + 12 56 12 = 12 , 32 .
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.5. A RITMETIKAI KDOLS 169

Vgl a harmadik rszintervallumokra bonts utn az x 3 szimblumot a hrom


kzl az utols intervallummal kdoljuk, teht
     2 
[E3 ,V3 ) = 12 + 56 23 12 , 12 + 65 + 16 32 12 = 23
36 , 3 .

Lthatjuk, hogy az [E3 ,V3 ) intervallum hossza valban megegyezik a szimblumok


1
valsznusgeinek szorzatval, azaz a p(x 2 )p(x1)p(x3 ) = 36 rtkkel. Ebbol rgtn
1
felso becslst is adhatunk a kimenet hosszra: log 36 + 2 = 7 bit. A kimenet
elolltshoz rjuk fel az utols intervallumot binris alakban:

[E3 ,V3 ) = [0.101000111 . . . 2 , 0.101010101 . . . 2 ).

Mivel az sszes, 0.101001 . . . 2 szmjegyekkel kezdodo binris szm benne van


ebben az intervallumban, s ez a legrvidebb ilyen tulajdonsg prefix, gy a ki-
menetre az 101001 sorozatot kldhetjk.

Az aritmetikai kdols elozoekben ismertetett legegyszerubb megvalstsa kt


problmt vet fel. Az egyre cskken o mretu intervallumok kezelse igen nagy
pontossg aritmetikt tesz szksgess, msrszt a teljes bemenet vagy bemeneti
blokk beolvassig egyetlen bit sem jelenik meg a kimeneten. Mindkt probl-
mra megoldst jelent, hogy a kdsz elejn lv o bitek (teht a legutols interval-
lum alkalmasan kivlasztott elemnek binris trt brzolsban vett els o nhny
bitje) mr az elso nhny forrskarakterbol meghatrozhatk. Ennlfogva a kd-
sz bitjeit, amint ismertt vlnak, rgtn elkldhetjk a kimenetre. Ezzel egytt
felsklzzuk az aktulis intervallum hosszt, amely gy mr csak a vgs o interval-
lum eddig mg ismeretlen rszt fogja reprezentlni. Abban az esetben, amikor az
aktulis intervallum teljes egszben az 12 bal vagy jobb oldalra esik, a megolds
viszonylag egyszeru. A bemutatott eljrs igazi tlete annak kezelse, amikor az
aktulis intervallum kzrefogja az 12 -et. Ehhez egy szmllt fogunk bevezetni.
A korbban ismertett algoritmusba az j aktulis [E k ,Vk ) intervallum kivlasz-
tsa utn be kell szrnunk az albbi lpseket:
 
Ha az aktulis intervallum a 0, 12 szakaszra esik, akkor egy 0-t, majd a
szmll rtknek megfelelo darab 1-est runk  a kimenetre.
 Ezutn meg-
duplzzuk az intervallum hosszt gy, hogy a 0, 12 szakaszt linerisan ki-
terjesztjk a [0, 1) szakaszra.
 
Ha az aktulis intervallum az 12 , 1 szakaszra esik, akkor egy 1-est, majd a
szmll rtknek megfelelo darab 0-t runk a kimenetre.
 Ezutn megdup-
lzzuk az intervallum hosszt gy, hogy az 12 , 1 szakaszt linerisan kiter-
jesztjk a [0, 1) szakaszra.
 
Ha az aktulis intervallum az 14 , 43 szakaszra esik, akkor nem runk semmit
a kimenetre, de megnveljk a szmll
  rtkt. Ezutn megduplzzuk az
intervallum hosszt gy, hogy az 14 , 43 szakaszt linerisan kiterjesztjk a
[0, 1) szakaszra.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.5. A RITMETIKAI KDOLS 170

Ezeket a lpseket mindaddig ismteljk, ameddig mr egyik felttel sem teljesl


az aktulis intervallumra.

INPUT: x[ ]={tmrtendo blokk}


n={tmrtendo blokk hossza}
p[ ]={szimblumok valsznusgei}
w[ ]={szimblumok kumullt valsznusgei}

OUTPUT: c={kdsz}

E=0
V=1
hossz=1
szmll=0

FOR i=0 to n-1


E=E+w(x[i])*hossz
hossz=hossz*p(x[i])
V=E+hossz
WHILE V-E<0.5 && !(E<0.25 && V>=0.75)
IF V<0.5 THEN
c=c,0,szmll db 1
szmll=0
E=E*2
V=V*2
ELSE IF E>=0.5 THEN
c=c,1,szmll db 0
szmll=0
E=E*2-1
V=V*2-1
ELSE IF E>=0.25 && V<0.75 THEN
szmll=szmll+1
E=E*2-0.5
V=V*2-0.5
ENDIF
ENDWHILE
ENDFOR
IF szmll>0 THEN
c=c,0,szmll db 1
ENDIF
RETURN c

Vgezetl mg egy dologra szeretnnk rmutatni. Az aktulis intervallum a


mr feldolgozott bemenetrol hordoz olyan informcit, amely eddig mg nem je-
lent meg a kimeneten, ezrt a kdol llapotnak is tekinthetjk. Egy h hossz
intervallum log h bites llapotot jelent. A szakasz elejn bemutatott legegysze-
rubb aritmetikai kdol esetn az llapot az sszes informcit tartalmazza, hiszen
a kimeneten egyetlen bit sem jelenik meg a bemenet teljes feldolgozsig. A m-
dostott algoritmus esetn az llapot mindig kett onl keveseb bit informcit tar-
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.6. A DAPTV TMRTS 171

talmaz, ugyanis a szably szerint az aktulis intervallum hossza mindig legalbb


1
4.

4.6. Adaptv tmrts


A vesztesgmentes tmrts alapkrdse, hogy hogyan bontsuk a bemeneti adat-
halmazt elemi sszetevokre, n. szimblumokra, majd hogyan kdoljuk ezeket a
leheto legkevesebb bittel. Az alaptlet az, hogy rvid kdszavakat rendelnk a
gyakran elofordul szimblumokhoz, s hosszabb kdszavakat a ritkbbakhoz. Az
adatok akkor tmrthetok, ha a szimblumok egy rsze gyakrabban fordul el o,
mint a tbbi (vagy az egyms utni szimblumok sszefgg oek). Az alapjn, hogy
ezt milyen mdon valstjk meg a forrskdolk, kt csoportot klnbztethe-
tnk meg. A statisztikus kdolk megprblnak j becslst adni a szimblumok
valsznusgi eloszlsra. Ezt a lpst a bemeneti adatok (forrs) modellezsnek
nevezzk. Ide tartozik pldul a Huffman-kdol is. A sztr alap algoritmu-
sok vagy ms nven univerzlis forrskdolk viszont olyan mintkat gyujtenek
egy sztrba, amelyek korbban elofordultak a bemeneten, s egy minta kvetkez o
elofordulst a sztrban elfoglalt helyvel kdoljk. A mdszer legelterjedtebb
kpviseloi a LempelZiv-algoritmusok (4.8. szakasz). Meg kell emltennk egy
harmadik tpus mdszert, amelyik igazbl egyik el ozo csoportba sem esik, ez az
n. BurrowsWheeler-transzformcin alapul tmrtsi eljrs (4.9. szakasz).
A statisztikus kdolnak egy modellel kell kiegszlnie, amely a kdols min-
den lpsben megbecsli az egyes szimblumok el ofordulsi valsznusgeit. A
valsznusgi modellnek nem szksges lernia a bemeneti adatokat el ollt folya-
matot, elegendo ha megadja a szimblumok eloszlst. A kdol mukdshez a
valsznusgeknek mg csak nem is kell klnsebben pontosaknak lennik. Per-
sze minl pontosabbak, annl jobb tmrtsre szmthatunk. Szls osges esetben,
ha a valsznusgek meg sem kzeltik a valsgot, a kimenet akr hosszabb is
lehet, mint a bemenet. A hatkony tmrts elrshez egyrszt j valsznusgi
modellre van szksgnk, msrszt minl pontosabban kell ismernnk (vagy a be-
menet alapjn a modellnek megtantanunk) a valsznusg-rtkeket.
A dekdolhatsg rdekben a tmrtskor csak olyan informci hasznl-
hat fel, amely a dekdolnak is rendelkezsre ll. Ett ol eltekintve nincs ms
megszorts a modellre, sot, a bemeneti adatok feldolgozsa kzben mg vltozhat
is az. A modell lehet adaptv (dinamikusan, az el ozo szimblumok figyelembe v-
telvel hatrozza meg az adott szimblum valsznusgt), fl-adaptv (el ozetesen
vgigolvassa a teljes bemenetet azrt, hogy statisztikt ksztsen) s nem adap-
tv (rgztett statisztikt hasznl a teljes bemeneti adathalmazra). A nem adaptv
modell rendkvl rosszul is teljesthet. Az adaptv kdok a bemenetet csak egyszer
olvassk vgig, de bonyolult adatszerkezeteket ignyelhetnek. A fl-adaptv kdok
a bemenet ktszeri beolvasst s a modell adatainak tkldst teszik szksgess,
ami hossz zenet esetn jelentos ksleltetst okoz. Amennyiben ez utbbit hat-
konyan tudjuk megtenni, a fl-adaptv kdok az adaptvaknl kicsivel jobb ered-
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.6. A DAPTV TMRTS 172

mnyt adhatnak, de ltalban a modellparamterek tkldse illetve megtanulsa


azonos kltsget jelent.
Fl-adaptv modell esetn a forrsbetuk eloszlst a relatv gyakorisgokkal
kell becslnnk. A gyakorlati problmk sorn ltalban adott a Z 1 , . . . , ZN beme-
neti sorozat (szveg, fjl), amelyet szeretnnk optimlisan tmrteni. Feladatunk
N
a | f (Zi )| minimalizlsa, vagyis az ilyen rtelemben optimlis f kdolfgg-
i=1
N
vny megvlasztsa. Ez egyenrtku a kdszhosszak tlagnak, 1
N | f (Zi )|-nek
i=1
a minimalizlsval.
N
Beltjuk, hogy 1
N | f (Zi )| = EN | f (Z)|, ha a vrhat rtket az empirikus el-
i=1
oszls szerint vesszk, teht a forrsbetuk valsznusgt a relatv gyakorisgukkal
definiljuk:
1 N
pN (x j ) = I{Zi =x j } ,
N i=1
ahol I{ } az indiktor fggvny. Nyilvn
n
EN | f (Z)| = pN (x j )| f (x j )| =
j=1
n N
1
= N I{Z =x } | f (x j )| =
i j
j=1 i=1

1 N n
= I{Zi =x j } | f (x j )| =
N i=1 j=1

1 N
= | f (Zi )|
N i=1
A fl-adaptv kdols kt problmja, hogy egyrszt magt az empirikus elosz-
lst is le kell rni, t kell vinni a dekdolhoz, s ez a fejlc gy a fentinl nagyobb
tlagos kdszhosszat eredmnyez. Az aszimptotikus vizsglat sorn azonban et-
tol a konstans kltsgtol eltekinthetnk. Msrszt az algoritmust csak kt lpsben
tudjuk vgrehajtani. Eloszr meghatrozzuk a forrsbetuk relatv gyakorisgt,
ami az elozoek rtelmben megegyezik a valsznusgekkel, majd ennek felhasz-
nlsval elvgezzk a tnyleges kdolst. Nem mindig engedhet o meg azonban
olyan nagy mrtku ksleltets, hogy csak az sszes bemeneti adat megrkezse
utn kezdnk hozz a kimenet elolltshoz, msrszt a ktmenetes beolvass ak-
kor is lasstja az algoritmust (br ktsgkvl optimlis kdot eredmnyez), ha a be-
menet mr rendelkezsre ll. A gyakorlatban ezrt sokszor rdemes adaptv kdot,
vagyis egymenetes algoritmust hasznlni. gy az optimalits rovsra id ot takart-
hatunk meg. Egy forrsbetut az elozo forrsbetuk elofordulsai alapjn kdolunk,
s ezzel egytt lpsenknt vltozik maga a kd is. Teht az aktulis forrsbetu k-
dolst egy, az elozoleg feldolgozott forrsbetukre nzve optimlis kddal hajtjuk
vgre.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.7. A DAPTV H UFFMAN - KD 173

J tmrts elrshez fel kell trnunk a bemeneti adatok struktrjt. Ez pl-


dul kpek esetn azt jelenti, hogy egy adott kppont intenzits rtkt a szomsz-
dainak intenzitsaibl becsljk meg s az gy elkvetett hibt egy alkalmas val-
sznusgi eloszlssal rjuk le, amely figyelembe veszi a kp klnbz o terleteinek
jellegzetessgeit. Szvegfjlok esetn a megel ozo betuk alapjn egy Markov-lnc
segtsgvel kvetkeztethetnk az aktulis karakterre.

4.7. Adaptv Huffman-kd


A 4.4. szakaszban vizsglt (nem adaptv) Huffman-kdnl feltteleztk, hogy eleve
ismerjk a bemenet eloszlst. Ez azonban nincs mindig gy. Fl-adaptv Huffman-
kd esetn az eloszlst a relatv gyakorisgokkal kell becslnnk. Amennyiben
nem engedheto meg a bemenet ktszeri beolvassbl ered o ksleltets, adaptv
Huffman-kdot hasznlunk.
A binris Huffman-fban a valsznusgek illetve a relatv gyakorisgok sze-
repeltek (lsd 4.4. bra). Adaptv Huffman-kdols esetn ezek helyett a gyakori-
sgokat hasznljuk (hiszen utbbiakat a bemenet hosszval elosztva megkapjuk a
relatv gyakorisgokat, s szmunkra csak az rtkek egymshoz val arnya rde-
kes).
Az adaptv Huffman-kdolshoz is egy binris kdft fogunk hasznlni, vi-
szont ezt nem ptjk jra minden egyes forrsbetu utn, hanem csak fokozatosan
finomtjuk. Ugyan egy j betu olvassakor megvltoznak a relatv gyakorisgok,
de ez ritkn eredmnyezi a kdfa megvltozst. Algoritmikus szempontbl kt
feladat van: egyrszt meg kell oldanunk, hogy a kdol s a dekdol szreve-
gye, ha meg kell vltoztatnia a kdft, msrszt egyszeru algoritmust kell adnunk
a vltoztatsra. Ennek egyszeru kezelshez bevezetjk a kdfa egy j tulajdons-
gt, az n. testvr tulajdonsgot (sibling property). Belthat, hogy egy prefix kd
pontosan akkor Huffman-kd, ha teljesti a testvr tulajdonsgot.
4.6. definci (testvr tulajdonsg). Egy binris kdfa rendelkezik a testvr tulaj-
donsggal, ha a gykr kivtelvel minden cscsnak van testvre (azaz a szl oj-
nek egy msik gyereke), s a cscsok felsorolhatk a hozzjuk rendelt valsznu-
sgek (ltalnosabban: rtkek) nemnvekv o sorrendjben gy, hogy a testvrek
egyms mell kerljenek ebben a listban.

4.12. plda. A 4.6. brn lthat fra teljesl a testvr tulajdonsg. A nemnvekv o
sorrend a kvetkezo:
(28, 18); (15, 13); (11, 7); (7, 6); (6, 5); (4, 3); (3, 2); (2, 2); (2, 1)
A 4.7. bra kdfjnak testvrei:
(3, 1); (2, 1); (1, 1)
Ezeket nem tudjuk megfeleloen sorba rendezni, gy nem teljesl a fra a testvr
tulajdonsg.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.7. A DAPTV H UFFMAN - KD 174



46
HH
 H
  HH
 H
" 
18 28
" b
b
" b  TT

   T
" b
" b 

7 
11 
13 
15
 S  T  B
 S  T  B

 
S 
  
T   B
 3  4  5 
6 
6 
7
 BB  BB  BB

  B 
  B 
  B

1 
2 
2 
2 
2 
3

4.6. bra. Kdfa, amelyre teljesl a testvr tulajdonsg

4m
 B
1m 3m
 B

 B
1m 2m
 B

 B
1m 1m
 B

4.7. bra. Kdfa, amelyre nem teljesl a testvr tulajdonsg

Az adaptv algoritmus lpsei a kvetkez ok:


Ismerjk a forrsszimblumokat: X = {x 1 , x2 , . . . , xn }. Kiindulsknt felptnk
egy olyan Huffman-ft, amelyben ha nincs informcink a betuk el oforduls-
nak valsznusgrol minden forrsszimblum azonos, 1 gyakorisggal szere-
pel. gy egy kiegyenslyozott binris ft kapunk. (Ha ismerjk a kezdeti eloszlst,
megtehetjk, hogy erre ptjk fel az adaptv algoritmus kiindulsi fjt.) Elkld-
jk a dekdolnak sorrendben (pl. a gykrt ol a levelek fel, szintenknt, balrl
jobbra) a lehetsges forrsszimblumokat, amelyb ol az szintn felpti a kiindulsi
Huffman-ft. (gyelni kell arra, hogy a kdol s a dekdol azonos algoritmust
hasznljon.) A kdols sorn beolvassuk a k-adik forrsszimblumot. Ezt a korb-
ban beolvasott k 1 betu feldolgozsval kialakult, loklisan optimlis kdfval
kdoljuk, majd eggyel nveljk a forrsszimblum gyakorisgszmlljt. Aktu-
alizljuk a ft, vagyis megvizsgljuk, hogy fennll-e mg a testvr tulajdonsg.
Amennyiben nem, helyrelltjuk azt a kd optimalitsnak rdekben: a most be-
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.7. A DAPTV H UFFMAN - KD 175

4m 5m 6m
 S  S  S

2m 2m 2m 3m 2m 4m
 S  S  S

 B  B  B  B  B  B
1m 1m 1m 1m 1m 1m 1m 2m 1m 1m 2m 2m
 B  B  B  B  B  B

A B C D A B C D A B C D

7m 7m 8m
 S  S  S

2m 5m 3m 4m 3m 5m
 S  S  S

 B  B D  B D  B
m m m 3m m 2m m 3m
 B  B  B  B
1 1 2 2 2
A B C D C  B C  B
m 1m m 1m
 B  B
1 2
A B A B

4.8. bra. Az 4.13. plda kdfjnak alakulsa

olvasott szimblumhoz tartoz levelet felcserljk a t ole a fban legtvolabb lvo


(vagyis a leghosszabb ton elrhet o), nla eggyel kisebb rtku csccsal az abbl
esetlegesen kiindul rszfval egytt. A felcserlt cscsok szl oinek gyakorisg-
szmllit megfeleloen mdostjuk (eggyel cskkentjk vagy nveljk). Ezeket a
lpseket a dekdol is elvgzi, teht a kvetkez o kdbetu dekdolsakor ugyan-
azt a ft fogja hasznlni, mint amelyet a kdol hasznlt annak el olltsakor. A
(k + 1)-edik betu beolvassa utn az el ozoekhez hasonlan folytatjuk.
gyelni kell arra, hogy hossz bemenet esetn el ofordulhat a szimblumok
gyakorisgszmlljnak tlcsordulsa. Ezt megfelel o technikval orvosolni kell.

4.13. plda. A bemeneti bcnk: X = {A, B,C, D}. Adaptv Huffman-kddal k-


doljuk a berkezo forrsszimblumokat, melyek legyenek a kvekez ok: DCDA.
A 4.8. brn kvethetjk nyomon a kdfa alakulst. Lthat, hogy a testvr tulaj-
donsg az DCD feldolgozsa utn srl, a D gyakorisgszmlljnak 3-ra nvel-
svel. Ekkor az A s B levelek szlojt a hozz tartoz rszfval egytt felcserljk
a D csccsal, s gy helyrelltjuk a kdfa testvr tulajdonsgt, majd ezzel kdol-
hat az utols, A szimblum.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.8. U NIVERZLIS FORRSKDOLS : L EMPEL Z IV- TPUS MDSZEREK 176

4.8. Univerzlis forrskdols: LempelZiv-tpus md-


szerek
A 70-es vek msodik felben Abraham Lempel s Jacob Ziv az addig alkalma-
zott statisztikus kdolktl gykeresen eltr o forrskdol technika tletvel llt
elo. Az ltaluk javasolt mdszer nem hasznl valsznusgi modellt. Alaptlete
az, hogy egy elozoleg mr ltott karaktersorozatot egy pufferbeli mutatra (LZ77)
illetve egy sztrbeli indexre (LZ78) cserl le. A statisztikus kdolk egy gya-
kori blokkhoz rvid kdszt rendelnek, a LempelZiv-tpus kdolk pedig egy, a
mltban ltott leghosszabb egyezshez rendelnek lnyegben fix hosszsg kd-
szt.
Az eddig vizsglt kdok alkalmazsakor az ad s a vev o kztt tvitelre kerlo
bitek kt csoportot alkotnak. Eloszr tvisszk a blokk-kdot ler informcit. Ez
egy lland kltsget jelent, fggetlen az zenet tnyleges hossztl. Majd kvet-
keznek az zenet kdszavai. Elmleti vizsglataink sorn azzal a felttelezssel l-
tnk, hogy a tovbbtand zenetnk vgtelen hossz. Ilymdon, a kdok aszimp-
totikus viselkedst tekintve, az lland kltsg fajlagosan nullhoz tart, teht elha-
nyagolhat. A gyakorlatban azonban vges hosszsg forrsszegmensekkel van
dolgunk. Ebben az esetben az lland kltsg akr nagyobb is lehet, mint az ze-
net kdszavainak sszhosszsga. Ezt elkerlend o, j lenne, ha rendekezsnkre
llna egy olyan technika, amelynek nincs lland kltsge, de aszimptotikusan
ugyanolyan j tmrtsi arnyt r el, mint a blokk-kdok. Az lland kltsg ab-
bl addik, hogy a kdot a forrson el ozetesen elvgzett statisztikai vizsglatok (a
forrsszimblumok gyakorisga) alapjn hozzuk ltre, teht ezek az adatok szk-
sgesek a kd lershoz. Ehelyett jrjunk el gy, hogy menet kzben gyujtnk
informcit a forrsszimblumokrl, vagyis az aktulis szimblumot az ezt meg-
elozo szimblumok alapjn kdoljuk. Az ilyen kdokat adaptv kdoknak nevez-
zk, alkalmazsuk sorn nincs lland kltsg. Korbban tallkoztunk mr ilyen
mdszerrel az adaptv Huffman-kd kapcsn. A most trgyalsra kerl o Lempel
Ziv-kdok is ebbe a csaldba tartoznak.
Az elso LempelZiv-algoritmus az 1977-ben publiklt LZ77.

Az LZ77 algoritmus

A kdol a forrsszimblumok sorozatt egy h a hossz csszablakon keresz-


tl vizsglja. Az ablak kt rszbol ll: egy keresopufferbol, amely a legutbb k-
dolt hk darab forrsszimblumot tartalmazza, s egy el oretekinto pufferbol, amely
a kvetkezo he darab kdoland szimblumot tartalmazza (h a = hk + he s hk lta-
lban sokkal nagyobb, mint he ). A kdol a keresopufferben megkeresi az elore-
tekinto pufferben lvo karaktersorozattal leghosszabban egyez o rszt, majd elkld
egy ht, h, ci hrmast, ahol t a keresopufferben megtallt karaktersorozat tvolsga
az eloretekinto puffertol (offset), h a kereso- s az eloretekinto puffer egyezo szim-
blumainak legnagyobb hosszsga, c pedig az els o, az eloretekinto pufferben lvo
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.8. U NIVERZLIS FORRSKDOLS : L EMPEL Z IV- TPUS MDSZEREK 177

nem egyezo karakter kdszava. Azrt kldjk el az els o nem egyezo karakter kd-
jt is, hogy kezeljk azt az esetet, amikor az el oretekinto puffer szimblumait nem
talljuk meg a keresopufferben. Ilyenkor t s h rtke 0. Egy hrmas kdolshoz
lland hosszsg kd hasznlatval dlog h k e + dlog he e + dlog |X|e bit szksges,
ahol |X| a forrsbc mrete. Figyeljk meg, hogy az egyez o szimblumok hosz-
szsgnak tvitelhez nem dlog hk e, hanem dlog he e bit szksges. Ennek oka,
hogy az egyezs hossza meghaladhatja a keres opuffer hosszt, vagyis az egyezo
rsz tlghat az eloretekinto pufferbe.

4.14. plda. Kdoljuk Weres Sndor: Varzsnek (1934) cmu versnek albbi
rszlett az LZ77 algoritmussal.

csiribiri csiribiri bojtorjn


llek lp a lajtorjn

Legyen ha := 11, hk := 7, he := 4. Tegyk fel, hogy az elso nhny karaktert mr


kdoltuk. Ekkor:
 t=4 -
?
c s i r i b i r i c s i r i b i r i ...
-
h=2
Lthat, hogy az eloretekinto puffer tartalmval a leghosszabb egyezst a keres o-
pufferben t = 4 tvolsgra talljuk meg. Ekkor az egyezs hosszsga h = 2. Teht
az ri karaktereket a h4, 2, f ( )i hrmassal kdoljuk, ahol f ( ) a karakter kdjt
jelli. Az ablakot hrommal jobbra mozgatjuk, gy:

c s i r i b i r i c s i r i b i r i b o ...

Az eloretekinto puffer elso karaktere, c, nem tallhat meg a keres opufferben. t-


kldjk a h0, 0, f (c)i hrmast. Az ablakot eggyel jobbra mozgatjuk, s gy tovbb.
Az elkldtt hrmasok a kvetkezok:

h4, 2, f ( )i h0, 0, f (c)i h0, 0, f (s)i h6, 3, f (b)i h4, 3, f ( )i h5, 1, f (o)i h0, 0, f ( j)i

h0, 0, f (t)i h3, 1, f (r)i h4, 1, f ()i h0, 0, f (n)i h0, 0, f ()i h0, 0, f (l)i h0, 0, f ()i
h2, 1, f (e)i h0, 0, f (k)i h0, 0, f ( )i h6, 2, f (p)i h4, 1, f (a)i h6, 2, f (a)i h0, 0, f ( j)i
h0, 0, f (t)i h0, 0, f (v)i h0, 0, f (r)i h4, 1, f ()i h0, 0, f (n)i
Az albbiakban bejelltk a kereso s az eloretekinto puffer hatrt az egyes kdo-
lsi lpsek sorn:

csiribi|ri |c|s|irib|iri |bo|j|t|or|j|n|-|


l||le|k| |lp| a| la|j|t|o|r|j|n
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.8. U NIVERZLIS FORRSKDOLS : L EMPEL Z IV- TPUS MDSZEREK 178

Elkpzelheto, hogy a leghosszabb egyezo karaktersorozat tnylik az elorete-


kinto pufferbe, teht h > t. A dekdols sorn ez az tlgs nem okoz gondot,
mert az elso nhny karaktert knnyen megkapjuk a mr el ozoleg dekdolt ka-
rakterekbol, a maradkot pedig az elobbi lps sorn megkapott nhny karakter
segtsgvel nyerjk.
Lthatjuk, hogy az LZ77 egy rendkvl egyszeru adaptv algoritmus, amely
nem ignyel elozetes ismeretet vagy feltevst a forrsrl. Megmutathat, hogy az
eljrs hatkonysga aszimptotikusan (h k , he ) megkzelti az optimlis algo-
ritmust, amely elozetesen ismeri a bemenet eloszlst.
Az LZ77 alkalmazsa sorn a bemeneti szimblumok legutbb kdolt soroza-
tt hasznjuk, gy azzal a felttelezssel lnk, hogy a mintk egymshoz kzeli
intervallumokban visszatrnek (a mozg ablakon bell). Szls osges esetben, ha
az ismtlods hossza ppen eggyel hosszabb a keres opuffer mretnl, nem tudunk
tmrteni. A LempelZiv-algoritmus kvetkez o, 1978-as verijnl (LZ78) ezt a
problmt egy msfajta, adaptv sztr alap rendszerrel oldjk fel.

Az LZ78 algoritmus

A kdol s a dekdol is sztrt pt az el ozoleg elofordult sorozatokbl. A


kdol megkeresi a forrsszimblumok aktulis pozcijtl kezd odo leghosszabb
egyezst a sztrban. tkld egy hi, ci prt, ahol i az egyez o karaktersorozat sz-
trbeli indext jelli, c pedig az els o nem egyezo karakter kdja, majd felveszi a
sztrba az i indexu egyezo karaktersorozat s a c karakter sszefuzsvel kapott
sztringet (a kvetkezo szabad indexet adja neki). Ha nem tall egyez o karaktersoro-
zatot a sztrban, akkor a h0, ci prost kldi t, c itt is az els o nem egyezo karakter
kdja, amely ebben az esetben termszetesen az els o feldolgozand szimblum.

4.15. plda. Kdoljuk a korbbi Weres-idzetet az LZ78 algoritmussal.

csiribiri csiribiri bojtorjn


llek lp a lajtorjn

Kezdetben a sztr res, ezrt az els o 4 szimblumot egyenknt felvesszk a sz-


trba, s a 0 indexszel tkldjk: h0, f (c)i, h0, f (s)i, h0, f (i)i, h0, f (r)i. Az tdik
szimblum az i, amely szerepel a sztrban, a kvetkez ovel egytt (ib) viszont mr
nem, ezrt tkldjk a h3, f (b)i prost, amelyb ol a 3 jelli az i indext, f (b) pedig
a kvetkezo karakter, vagyis a b kdjt. Az ib sorozatot felvesszk a sztrba, in-
dexe 5 lesz. gy folytatjuk az eljrst, az eredmnyt a 4.9. brn lthat tblzatban
foglaltuk ssze. Lthat, hogy a sztrbeli bejegyzsek egyre hosszabbak, s ha a
bemeneti sorozat ismtlodik, akkor elobb-utbb az egsz sztring szerepelni fog a
sztrban. Az egyes lpseket bejelltk a bemeneten:

c|s|i|r|ib|ir|i |cs|iri|b|iri |bo|j|t|o|rj||n|-|


l||le|k| |l|p| a| l|a|jt|or|j|n
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.8. U NIVERZLIS FORRSKDOLS : L EMPEL Z IV- TPUS MDSZEREK 179

a kdol sztr a kdol sztr


kimenete index bejegyzs kimenete index bejegyzs
h0, f (c)i 1 c h10, f (o)i 12 bo
h0, f (s)i 2 s h0, f ( j)i 13 j
h0, f (i)i 3 i h0, f (t)i 14 t
h0, f (r)i 4 r h0, f (o)i 15 o
h3, f (b)i 5 ib h4, f ( j)i 16 rj
h3, f (r)i 6 ir h0, f ()i 17
h3, f ( )i 7 i h0, f (n)i 18 n
h1, f (s)i 8 cs h0, f ()i 19
h6, f (i)i 9 iri h0, f (l)i 20 l
h0, f (b)i 10 b h0, f ()i 21
h9, f ( )i 11 iri h20, f (e)i 22 le
a kdol sztr
kimenete index bejegyzs
h0, f (k)i 23 k
h0, f ( )i 24
h20, f ()i 25 l
h0, f (p)i 26 p
h24, f (a)i 27 a
h24, f (l)i 28 l
h0, f (a)i 29 a
h13, f (t)i 30 jt
h15, f (r)i 31 or
h13, f ()i 32 j
h18, i

4.9. bra. Az 4.15. plda LZ78 kdolsnak menete

Megmutathat, hogy az LZ78 is aszimptotikusan optimlis.


Az LZ78 algoritmus egyik hibja, hogy a sztr folyamatosan, korlt nlkl
nvekszik. A gyakorlatban egy bizonyos hatron tl gtat szabunk a nvekedsnek:
vagy rendszeresen eltvoltjuk a felesleges illetve ritkn hasznlt bejegyzseket,
vagy egy ido utn fix sztrasknt mukdik tovbb az eljrs.

Az LZW algoritmus

Terry Welch az LZ78 mdostsval egy olyan technikt dolgozott ki, amellyel
megtakarthat az hi, ci prbl a c karakterkd tkldse. Ez az n. LZW algorit-
mus. A kdol teht csak sztrbeli indexeket kld t. Ehhez szksges, hogy a
sztrban mr a kiindul llapotban is szerepeljen az sszes egybetus szimblum
a forrsbcbol. A kdols sorn az aktulis pozcitl kezdve addig olvassuk be
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.8. U NIVERZLIS FORRSKDOLS : L EMPEL Z IV- TPUS MDSZEREK 180

a forrsszimblumokat a pufferbe, amg az s sorozatuk szerepel a sztrban. Ha az


a karakter az elso olyan, amelyre sa nincs benne a sztrban (az egyms utn rs-
sal a konkatencit jelltk), akkor tkldjk az s sorozat indext, az sa sorozatot
felvesszk a sztrba s az a karaktert ol kezdve folytatjuk az eljrst.

4.16. plda. Kdoljuk az LZW algoritmussal az idzetnket.

csiribiri csiribiri bojtorjn


llek lp a lajtorjn

Az egyszerusg kedvrt legyen a forrsbc az idzetben tnylegesen el ofordul


karakterek halmaza, vagyis X = {a, , b, c, e, , i, j, k, l, n, o, p, r, s,t, , }. Kezdet-
ben ez a 18 bejegyzs szerepel a sztrban. (ltalnos esetben felvesszk a magyar
bc sszes betujt s a legfontosabb rsjeleket, ami 64 bejegyzssel, vagyis 6
bittel megoldhat.) A kdol eloszr veszi a c karaktert. Ez benne van a sztr-
ban, gy hozzilleszti a kvetkezo, az s karaktert. A cs sorozat mr nem szerepel a
sztrban, ezrt tkldi a c indext, vagyis a 4-et, felveszi a sztrba a cs sorozatot
a 19. helyre, s megy tovbb az s-sel kezdve. Az s szerepel a sztrban, gy hozz-
veszi az i-t. si nincs bent, teht tkldi s indext, a 15-t, felveszi si-t, s folytatja
az eljrst i-tol, stb. A 4.10. brn lthat tblzat tartalmazza a kdols vgez-
tvel a sztrban tallhat indexeket s karaktersorozatokat. A kdol kimenete a
kvetkezo:

4, 15, 7, 14, 7, 3, 21, 7, 17, 19, 25, 24, 22, 17, 3, 12, 8, 16, 12, 14,

8, 2, 11, 18, 10, 6, 10, 5, 9, 17, 43, 13, 17, 1, 48, 1, 35, 37, 39, 11
Az egyes lpseket pedig bejelltk a bemeneten:
c|s|i|r|i|b|ir|i| |cs|iri|bi|ri| |b|o|j|t|o|r|j||n|-|
l||l|e|k| |l|p| |a| l|a|jt|or|j|n

4.17. plda. Dekdoljuk a 4.16. pldban kapott LZW algoritmussal tmrtett


X = {a, , b, c, e, , i, j, k, l, n, o, p, r, s,t, , } forrsbc feletti szveget. A k-
dol kimenetrol a dekdol bemenetre a 4, 15, 7, 14, 7, 3, 21, 7, 17, 19, . . . sorozat
jut el. A kiindulsi sztr tartalmazza a forrsbc betuit. gy a 4, 15 sorozatot
dekdoljuk c illetve s karakterknt. A sztrba felvesszk a cs bejegyzst 19-nek,
s a kvetkezo sorozat, amely a sztrba kerl majd, az s karakterrel fog kezd odni.
A 7 kdsz rkezik a bemeneten, ezt dekdoljuk i-knt, a sztrban a 20-ik helyre
felvesszk az si-t, s feljegyezzk, hogy a kvetkez o sztrba kerlo sorozat i-vel
kezdodik majd. A 14 kdszt r-knt dekdoljuk, s ir kerl a sztrba, a 7-et i-
knt, s ri kerl a sztrba, a 3-at pedig b-knt, ib kerl a sztrba, s b-vel fog
kezdodni a kvetkezo bejegyzs. Ekkor a 21 kdsz kvetkezik, amelyet ir-knt
dekdolunk. Eloszr az i betut illesztjk a kszl o j sztrbejegyzs kezdo b be-
tujhez. Mivel a bi sorozat nincs a sztrban, felvesszk azt 24-knt. A kvetkez o
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.8. U NIVERZLIS FORRSKDOLS : L EMPEL Z IV- TPUS MDSZEREK 181

index bejegyzs index bejegyzs index bejegyzs


1 a 20 si 39 j
2 21 ir 40 n
3 b 22 ri 41 n-
4 c 23 ib 42 -l
5 e 24 bi 43 l
6 25 iri 44 l
7 i 26 i 45 le
8 j 27 c 46 ek
9 k 28 csi 47 k
10 l 29 irib 48 l
11 n 30 bir 49 lp
12 o 31 ri 50 p
13 p 32 b 51 a
14 r 33 bo 52 a
15 s 34 oj 53 la
16 t 35 jt 54 aj
17 36 to 55 jto
18 - 37 or 56 orj
19 cs 38 rj 57 jn

4.10. bra. Az 4.16. plda sztra

j bejegyzs i betuvel fog kezdodni. Mivel az ir prnak csak a kezdo i betujt


hasznltuk fel, a maradk r betut hozzillesztjk a kszl o j sztrbejegyzshez,
gy ir-t kapunk. Ez mr szerepel a sztrban, ezrt tovbb folytatjuk a dekdolst.
Az elso 24 bejegyzs kszen van, mg az 25-ik ppen kszl oflben, a kvetkezo
bemenet pedig a 7 kdsz, amelyet i-knt dekdolunk. Illesszk az i karaktert a
kszloben lvo j bejegyzshez. Mivel az gy kapott iri mg nem szerepel a sz-
trban, ez lesz a 25-ik bejegyzs. A kvetkez o bejegyzs i betuvel fog kezdodni,
stb. A dekdol ltal ptett sztr termszetesen megegyezik a kdol sztrval,
amely a 4.10. brn lthat.

4.18. plda. Dekdoljuk az LZW algoritmussal tmrtett, A = {a, b} forrsbc


feletti abababab . . . karaktersorozatot. A kdol kimenetr ol a dekdol bemene-
tre az 1, 2, 3, 5, 4, 7, 6, 9, 8, . . . sorozat jut el. A kiindulsi sztr tartalmazza az a s
a b bejegyzst. gy az 1, 2 sorozatot dekdoljuk a illetve b karakterknt. A sztrba
felvesszk az ab bejegyzst harmadiknak, s a kvetkez o sorozat, amely a sztrba
kerl majd, a b karakterrel fog kezd odni. A 3 kdsz rkezik a bemeneten, ezt de-
kdoljuk ab-knt. Eloszr az a betut illesztjk a kszl o j sztrbejegyzs kezdo
b betujhez. Mivel a ba sorozat nincs a sztrban, felvesszk azt. A kvetkez o
j bejegyzs a betuvel fog kezdodni. Mivel az ab prnak csak a kezdo a betujt
hasznltuk fel, a maradk b betut hozzillesztjk a kszl o j sztrbejegyzshez,
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.9. B URROWS W HEELER - TRANSZFORMCI 182

gy ab-t kapunk. Ez mr szerepel a sztrban, ezrt tovbb folytatjuk a dekdolst.


Az elso 4 bejegyzs kszen van, mg az 5. ppen kszl oflben, a kvetkezo be-
menet pedig az 5 kdsz, amely a mg nem teljesen ksz bejegyzsre hivatkozik.
Ennek ellenre tovbb tudjuk folytatni a dekdolst! Ha ismernnk az 5. bejegy-
zst, annak elso kt karaktere ab lenne. Illesszk az a karaktert a kszl oben lvo
j bejegyzshez. Mivel az gy kapott aba mg nem szerepel a sztrban, ez lesz az
5. bejegyzs. A kvetkezo bejegyzs a betuvel fog kezdodni, s mg megmaradt a
ba sorozat az elozo dekdolsbl, stb. Az albbi tblzat tartalmazza a kdol s a
dekdol ltal ptett sztrt:

index bejegyzs index bejegyzs


1 a 6 abab
2 b 7 bab
3 ab 8 baba
4 ba 9 ababa
5 aba ..
.

4.9. BurrowsWheeler-transzformci
A tmrtendo adatok statisztikai elemzsvel a szles krben elterjedt Lempel
Ziv-algoritmusoknl jobb tmrtsi arny rhet o el, de ez lnyegesen nagyobb
futsi idot ignyel. A kvetkezokben egy olyan eljrst mutatunk be, amelynek
tmrtsi arnya jl megkzelti a statisztikai mdszerekt, viszont a Lempel
Ziv-algoritmusokkal sszemrhet o sebessggel mukdik.
A Burrows s Wheeler ltal javasolt eljrs egy blokk-kdols. Alaptlete az,
hogy invertlhat mdon gy rendezzk t a blokk szimblumait, hogy az azonos
karakterek nagy valsznusggel egyms mell kerljenek, s gy mr egyszeru t-
mrtsi eljrsokkal is j hatsfokot rhetnk el. Minl nagyobb a blokkmret,
annl jobb tmrtsi arny rheto el. (Termszetesen a muveletek memriaignye
gtat szab a blokkmret hatrtalan nvelsnek.) Az eljrshoz szksges, hogy a
lehetsges bemeneti szimblumokon rendezst definiljunk.
Vegyk a bemeneti szimblumok egy m hossz blokkjt. Kpezzk rendre az
sszes ciklikus eltoltjt, s ezeket rendezzk egy tblzatba. (Valjban nem szk-
sges ezeket az eltoltakat fizikailag ltrehoznunk, elegend o ha a bemeneti blokk
memriaterletnek mutatival dolgozunk.) Ennek az m soros tblzatnak a so-
rait rendezzk lexikografikusan, majd ebben a sorrendben olvassuk ki az utols
oszlopot, vagyis a blokkok utols szimblumt. Az gy kapott, szintn m hossz
sorozatbl helyrellthat az eredeti blokk, amennyiben mg azt is tudjuk, hogy a
rendezett tblzat hnyadik sorban szerepel az eredeti blokk. A 4.11. brn egy
m = 6 hossz blokkra szemlltetjk a mdszert (a gyakorlatban termszetesen en-
nl lnyegesen nagyobb blokkmretet clszeru vlasztani). A transzformci az
ALMAFA sorozatbl az FMAAAL sorozatot lltja el o, s az eredeti sorozat pedig
a tblzat harmadik sorban jelenik meg.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.9. B URROWS W HEELER - TRANSZFORMCI 183



A L M A F A A A L M A F
L M A F A A A F A A L M
M A F A A L A L M A F A
=
A F A A L M F A A L M A
F A A L M A L M A F A A
A A L M A F M A F A A
L

4.11. bra. A BurrowsWheeler-transzformci

INPUT: x[ ]={tmrtendo blokk}


n={tmrtendo blokk hossza}

OUTPUT: L={rendezett tblzat utols oszlopa}


i={az eredeti blokk sorszma}

FOR i=0 to n-1


FOR j=0 to n-1
T[i,j]=x[(i+j) mod n]
ENDFOR
ENDFOR
R=Lexikografikusan_Rendez(T)
FOR i=0 to n-1
L[i]=T[i,n-1]
ENDFOR
i=0
WHILE {R i-edik sora} != {T i-edik sora}
i=i+1
ENDWHILE
RETURN L,i

Az inverz transzformci is nagyon egyszeruen mukdik. A rendezett tblzat-


nak azon sort kell helyrelltanunk, amelyben az eredeti sorozat szerepel. Ennek
sorszmt tudjuk. Ismerjk mg a tblzat utols oszlopt, s ez rgtn megadja
az elso oszlopot is, hiszen abban szintn az utols oszlop karakterei szerepelnek,
csak rendezett sorrendben. Ezutn megkeressk, hogy a krdses sor els o szimb-
luma melyik sor utols elemeknt szerepel, majd e sor els o elemt rjuk a krdses
sor msodik helyre, ugyanis a ciklikus eltolsok miatt brmely sorban a karakte-
rek sorrendje azonos. ltalban pedig a krdses sor i-edik helyre azon sor els o
szimblumt rjuk, amelynek utols helyn a krdses sor i 1-edik szimbluma
szerepel. Ha az utols oszlopban a keresett szimblum tbbszr is el ofordul, ak-
kor az annyiadik elofordulst vesszk, ahnyadikknt az els o oszlopban szerepelt
ezen szimblumok kzl.
Vegyk szre, hogy a bemeneti blokkot eddig mg nem tmrtettk, hiszen
a BW-transzformci az eredetivel megegyez o hosszsg blokkot llt elo. A
bemenet szimblumai kztti fggosgek miatt viszont a transzformlt blokkban
hossz, azonos szimblumokbl ll sorozatok jelennek meg, amelyek jl tm-
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.9. B URROWS W HEELER - TRANSZFORMCI 184

A, F, L, M = F, A, L, M = M, F, A, L = A, M, F, L = A, M, F, L =

2 4 3 1 1
A, M, F, L

4

4.12. bra. A mozgasd az elejre eljrs

rthetok az n. mozgasd az elejre (move to front) mdszerrel. Kiindulsknt


vegynk fel egy listt, amely a bemeneten el ofordul szimblumokat tartalmazza
tetszoleges sorrendben. A szimblumokat egyesvel olvasva kdoljuk azokat a lis-
tban elfoglalt helyk sorszmval, s minden lpsben mozgassuk a lista elejre
az aktulis szimblumot (a tbbit eggyel htrbb tolva). A BW-transzformci l-
tal szolgltatott specilis sorozat miatt azt vrhatjuk, hogy kis sorszmok sorozatt
eredmnyezi ez az algoritmus, amely jl tmrthet o pldul Huffman-kdolssal.

INPUT: L[ ]={BW-transzformlt blokk}


n={blokk hossza}
F[ ]={forrsbc}

OUTPUT: c[ ]={sorszmok sorozata}

FOR i=0 to n
j=0
WHILE F[j]!=L[i]
j=j+1
ENDWHILE
c[i]=j
tmp=F[j]
FOR k=j to 1
F[k]=F[k-1]
ENDFOR
F[0]=tmp
ENDFOR
RETURN c

Alkalmazzuk a 4.11. bra pldjra a mozgasd az elejre mdszert. Az egy-


szerusg kedvrt a kezdeti listn csak a blokkban tnylegesen el ofordul szimb-
lumok szerepelnek, mgpedig bc sorrendben. A lista alakulsa s a kimeneten
megjeleno sorszmok a 4.12. brn nyomonkvethet ok. Az FMAAAL sorozatbl
a 2, 4, 3, 1, 1, 4 sorozatot kapjuk.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.10. A LKALMAZSOK 185

4.10. Alkalmazsok

Faxkdols

A 4.6. plda tmenetvalsznusgei jellegzetesek egy tlnyoman szveget tar-


talmaz (pl. zleti) dokumentum esetn. Megfigyelhet o, hogy a kvetkezo kppont
szne sokkal nagyobb valsznusggel lesz azonos az el ozovel, mint eltro (kl-
nsen vilgos esetben). Ahelyett, hogy a kppontok sznt kln-kln kdol-
nnk, kdoljuk egyszeruen az azonos sznu kppontok (vagyis a futamok) hosszt,
teht azt a hosszt, amg a Markov-lnc azonos llapotban maradunk. Ezt a tech-
nikt futamhossz kdolsnak nevezzk. (A futamhossz kdols optimalitsra
vonatkozan lsd a 4.14. feladatot.) Pldul, ha 190 vilgos pixelt 30 stt kvet,
majd 210 vilgos jn, a 430 kppont egyenknti kdolsa helyett a 190, 30, 210
sorozatot fogjuk kdolni, valamint jeleznnk kell azt, hogy az els o pontsorozat
milyen sznu volt.
Futamhossz kdolst alkalmaznak az ITU-T fax-szabvnyaiban is. Szmunkra
a Group 3 illetve Group 4 ajnlsok rdekesek, ugyanis a korbbi Group 1 s 2
technikk csak analg mdszereket hasznltak, ennlfogva nem tmrtettek.
Az 1980-ban megjelent Group 3 szabvny egydimenzis futamhossz kdols-
sal dolgozik. Ez azt jelenti, hogy az egyms alatti vzszintes sorokat egymstl
fggetlenl kdolja, a futamok pedig az egy soron bell vltakoz fehr s fekete
kppontokbl llnak. Minden sor els o futama fehr kppontokbl ll; ha egy sor
fekete pixellel kezdodik, akkor az elso futamot egy 0 hosszsg fehr futamnak
kell tekinteni. A klnbzo hosszsg futamok eltro valsznusggel fordulnak
elo egy dokumentumban, ezrt ezeket vltoz szhosszsg kddal, mgpedig a
szabvny szerint Huffman-kddal kdoljk. A futamok sszhossza, vagyis egy sor
hosszsga 1728 kppont. Ez tl sok lehetsges futamhosszt eredmnyez, nincs
rtelme ilyen nagymretu kdot alkalmazni. Ezrt a h hosszt 1 vagy 2 jegyu, 64-es
szmrendszerben felrt (vagyis 6 bites) szmknt kdoljk:

h = 64m + t t = 0, 1, . . . , 63 m = 0, 1, . . . , 26

Kln kdtblzat vonatkozik az m, vagyis a kiegszt o kd (make up code, MUC)


illetve a t, vagyis a befejezo kd (terminating code, TC) rtkeire, kln a fekete
s kln a fehr kppontok esetre. Egy futam kdjt a sznnek megfelel o MUC
illetve TC tblzatbl kiolvasott kdszavak konkatencija adja. Azonos sznhez
tartoz MUC s TC tblzatok prefix tulajdonsgak (egyttesen is). Mivel a fe-
kete s fehr futamok mindig vltakozva szerepelnek, ezrt a fekete tblzatokban
ll kdszavak lehetnek a fehr tblzatokban llk prefixei s fordtva. A sor
vgt a specilis EOL (end of line, sorvge) kdsz jelli: 000000000001. Ez
biztostja az ad s vevo kztti szinkronizcit is.
1984-ben publiklta a ITU-T a Group 4 ajnlst, amely kihasznlja a fgg ole-
ges irny redundancit is, emellett fellr ol kompatbilis a Group 3-mal. Egy soron
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.10. A LKALMAZSOK 186

b1 b2
? ?

6 6 6
a0 a1 a2

b1 b2
? ?

6 6 6
a0 a1 a2

4.13. bra. Az a0 , a1 , a2 , b1 , b2 mutatk lehetsges elhelyezkedse

bell a futamokat nem csak a mr megismert mdon, a futamhosszak felsorolsval


kdolhatjuk, hanem a szntmenetek helynek pozciival is.
A ktdimenzis kdols megrtshez vezessk be az albbi jellseket:
a0 : Az utols pixel, amelynek rtkt a kdol s a dekdol egyarnt ismeri.
Egy sor kdolsnak megkezdsekor az a 0 egy kpzeletbeli fehr kppontra mutat,
amely az elso aktulis pixel bal oldaln ll.
a1 : Az elso szntmenetet jelento kppont a0 jobb oldaln. a1 szne ellenttes
a0 sznvel. a1 helye csak a kdol szmra ismert.
a2 : Az msodik szntmenetet jelento kppont a0 jobb oldaln. a2 szne ellen-
ttes a1 sznvel, ami azt jelenti, hogy megegyezik a 0 sznvel.
b1 : Az elso szntmenetet jelento kppont az aktulisan kdoland sort meg-
elozo sorban a0 jobb oldaln, amelynek szne ellenttes a 0 sznvel. Mivel a meg-
elozo sor s a0 rtke ismert a kdol s a dekdol szmra is, ezrt b 1 helye is
ismert mindkettojk elott.
b2 : Az elso szntmenetet jelento kppont az aktulisan kdoland sort meg-
elozo sorban b1 jobb oldaln.
A Group 4 algoritmusa az elso sort ugyangy kdolja, mint a Group 3 esetben
lttuk. A tovbbi sorok kdolshoz felhasznlja az azt megel ozot, gy a msodik-
hoz az elsot, a harmadikhoz a msodikat, stb. A 4.13. bra azt a helyzetet brzolja,
amikor ppen a msodik sornl tartunk a feldolgozsban, s a kppontokat a m-
sodik pixelig mr feldolgoztuk. A szntmenetet jelent o pixeleket ponttal jelltk.
Kt esetet kell megklnbztetnnk:
Ha b1 s b2 a0 s a1 kztt fekszik, a kdolshoz az tad (pass) mdot hasz-
nljuk. A kdol egy specilis kdsz kikldsvel rtesti a dekdolt err ol. Eb-
bol a dekdol tudja, hogy az a0 -tl a b2 alatti pixelig a kppontok szne azonos. Ha
ez nem lenne igaz, akkor kzben lenne egy szntmenetet jelent o kppont, vagyis
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.10. A LKALMAZSOK 187

a1 s b2 viszonyra nem lenne igaz a felttelnk. Ekkor a kdol s a dekdol


ltal egyarnt ismert legutols kppont a b 2 ltal mutatott lesz. gy ez lesz az a 0 j
helye, a msik ngy mutat j pozcijt pedig a mr ismert mdon jelljk ki.
Ha a1 megelozi b2 -t, ismt kt eset lehetsges: Ha a1 s b1 tvolsga nem
nagyobb 3-nl, elkldjk ezt a tvolsgrtket (ezt fgg oleges mdnak nevezzk).
(A kdsz termszetesen fgg attl, hogy a 1 jobbra vagy balra van-e b1 -tol, gy
itt sszesen 7 eset lehetsges azt is belertve, hogy a 1 ppen b1 alatt helyezkedik
el.) a0 -t a1 -re lltjuk, mdostjuk a msik ngy mutatt is, s folytatjuk a kdolst
az algoritmus elejtol. Ha a1 s b1 tvolsga nagy, lnyegben visszatrnk az
egydimenzis technikhoz. Egy specilis kdszval jelezzk a dekdolnak, hogy
vzszintes mdban vagyunk, majd elkldjk a 0 s a1 illetve a1 s a2 tvolsgt
Huffman-kdolva. a0 -t a2 helyre lltjuk, s aktualizljuk a msik ngy mutatt
is. A kdolst az algoritmus elejt ol folytatjuk.
A ktdimenzis algoritmus hasznlatval egy sor kdolsa a megel ozo soron
alapul, gy elkpzelheto, hogy egy sorban bekvetkezo hiba kiterjed a tbbire is.
Ezt megelozendo, a szabvny rgzti, hogy minden egydimenzis eljrssal kdolt
sort norml fggoleges felbonts esetn legfeljebb 1, nagy felbonts esetn legfel-
jebb 3 ktdimenzis algoritmussal kdolt sor kvethet.
A sorvgeket a Group 3 szabvnyban megismert EOL szimblum jelzi, azon-
ban attl fggoen, hogy vzszintes mdban, vagyis az egydimenzis Group 3 sze-
rint kdoltuk a sort, vagy az j ktdimenzis mdszerrel, egy 1 illetve 0 bit kveti.
Ez lehetov teszi, hogy mindkt mdszerrel elvgezve a kdolst az ad a rvidebb
hosszsgot eredmnyezot vlaszthassa ki, majd a megfelel o EOL jellel jelezze a
vevonek, hogy melyik algoritmust hasznlta.

Tmrto programok

Br az LZ77 algoritmus aszimptotikusan optimlis, a gyakorlatban szmos to-


vbbfejlesztse ismeretes, amelyek clja a hatkonysg nvelse. Pldul a np-
szeru PKZIP s ARJ tmrtokben a ht, h, ci hrmasokat nem fix, hanem vltoz
hosszsg kddal kdoljk. Egy msik varici vltoztathat mretu keres o s
eloretekinto ablakot hasznl. Az LZ77 legegyszerubb mdostsa annak kiksz-
blse, amikor egyetlen karaktert kdolunk egy hrmassal. Ez egy jelz obittel old-
hat meg. Ezzel jelezzk, hogy nem egy hrmast, hanem csak egy kdszt kl-
dnk t. Szintn az LZ77 algoritmuson alapul a Unix GZIP tmrt oje, a W IN Z IP,
az LHA RC, a PNG (Portable Network Graphics) kptmrt o formtum s a PDF
dokumentumformtum belso tmrtse is.
A Unix COMPRESS parancsa s a GIF (Graphics Interchange Format) kpt-
mrto eljrs az LZW algoritmust hasznlja, mgpedig adaptv sztrmrettel.
A COMPRESS esetben kezdetben a sztrban 512 bejegyzsnek van hely, ez azt
jelenti, hogy a kdszavak 9 bit hosszak. Amikor a sztr betelik, mrett meg-
duplzzuk, 1024 bejegyzsre. Ettol kezdve 10 bites kdszavakat visznk t, s gy
tovbb. A kdszavak lehetsges maximlis hosszt a felhasznl llthatja be 9
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.11. F ELADATOK 188

s 16 bit kztt (alaprtelmezs: 16 bit). Ezt elrve, a COMPRESS eljrs stati-


kus sztr alap technikv vlik. Ilyenkor a program figyeli a tmrtsi arnyt.
Amennyiben ez egy bizonyos kszb al esik, a sztr mr nem felel meg clja-
inknak, ezrt a sztrpto folyamat kezdodik ellrol. gy a sztr mindig tkrzi
a forrs loklis jellemzoit.
Szintn az LZW algoritmusra pl az ITU-T V.42bis tmrtsi szabvnya,
amely a telefonhlzaton modemmel trtn o adattvitelrol szl V.42 ajnls ki-
egsztse. Az algoritmus kt zemmdot definil. Az egyik a transzparens md,
amikor az adatok tmrtetlen formban kerlnek tvitelre, a msik pedig a tm-
rtett md. A kt zemmdra azrt van szksg, mert lehetsges, hogy az tvitelre
kerlo adatokban nincs redundancia, ezrt nem tmrthet o az LZW algoritmus-
sal. Ebben az esetben a tmrto eljrs mg hosszabb kimenetet eredmnyezne,
mint a bemenet (ez a helyzet pldul, ha egy el ozoleg mr tmrtett fjlt akarunk
tvinni a telefonvonalon). Tmrtett zemmdban a rendszer LZW algoritmust
hasznl vltoz mretu sztrral. A sztr kezdeti mrett a kapcsolat ltrejttekor
egyezteti az ad- s a vevoberendezs. A V.42bis ajnls minimum 512 bejegyzs
mretu sztrat tartalmaz, de 2048 mretut tart idelisnak. Az sszes bejegyzs
nem hasznlhat fel szabadon, mert van 3 kitntetett szerepu kdsz. Ezek illetve
jelentsk a kvetkezo: Enter Transparent Mode (zemmdvlts: ett ol kezdve a
transzparens md rvnyes), Flush Data (a sztrptst el orol kezdjk), Increment
Codeword Size (megduplzzuk a sztr mrett, s ezzel egytt eggyel nveljk a
kdszavak mrett is). Az adattvitel sorn bekvetkez o hibk hatsnak csk-
kentsre az ajnls meghatrozza a maximlis sztringmretet, amely szerepelhet
a sztrban. Ezt 6 s 250 kztt az ad- s a vev oberendezs hatrozza meg a
kapcsolat felptsekor (alaprtelmezs: 6).
A BurrowsWheeler-transzformcin alapul tbbek kztt a BZIP tmrt o-
program.

4.11. Feladatok
4.1. feladat. Nevezznk egy f : X Y kdot egyrtelmuen dekdolhatnak, ha
az u = u1 uk s v = v1 vk zenetekre (itt u1 , . . . , uk , v1 , . . . , vk X)

f (u1 ) f (u2 ) f (uk ) = f (v1 ) f (v2 ) f (vk )

esetn ui = vi minden i-re. Teht a 4.1. defincival ellenttben csak azt kveteljk
meg, hogy brmely kt klnbzo, azonos hosszsg zenet kdja is klnbz-
zn. Bizonytsa be, hogy a kt definci ekvivalens!

4.2. feladat. Legyen az X = {x1 , . . . , xn } forrsbcn adott valsznusg-eloszls


olyan, hogy minden egyes elem valsznusge 2 i alak, ahol i egy pozitv egsz
szm. Bizonytsa be, hogy ilyen esetekben a binris ShannonFano-kd optimlis!
Mutassa meg, hogy a binris Huffman-kd tlagos kdszhossza akkor s csak
akkor egyezik meg az entrpival, ha az eloszls ilyen alak!
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.11. F ELADATOK 189

4.3. feladat. Legyen az X forrsbc telemu, a kvetkez o valsznusgekkel:


0.4; 0.35; 0.1; 0.1; 0.05. Mennyi az eloszls entrpija? Konstrulja meg a binris
ShannonFano-kdot erre az eloszlsra, illetve konstruljon binris prefix kdot az
li = d log p(xi )e kdszhosszakkal. Mekkora az tlagos kdszhossz?

4.4. feladat. Egy szablyos pnzrmt addig dobunk fel, amg rst nem kapunk.
Jellje az X valsznusgi vltoz a dobsok szmt. Mennyi az X entrpija?

4.5. feladat. Tekintsk a

p = (p1 , . . . , pi , . . . , p j , . . . , pn )

illetve
pi + p j pi + p j
q = (p1 , . . . ,,..., , . . . , pn )
2 2
eloszlsokat. Mutassa meg, hogy a p eloszls entrpija nem lehet nagyobb, mint
a q eloszls entrpija! Mutassa meg, hogy a p eloszlshoz tartoz optimlis (mi-
nimlis tlagos kdszhosszsg) kd tlagos kdszhossza nem lehet nagyobb,
mint a q eloszlshoz tartoz optimlis kd tlagos kdszhossza!

4.6. feladat. Bizonytsa be, hogy ha X s Y fggetlen valsznusgi vltozk, ak-


kor
H(X,Y ) = H(X) + H(Y).

4.7. feladat (Informcis divergencia). Definiljuk a p = (p 1 , . . . , pn ) s a q =


(q1 , . . . , qn ) valsznusgi eloszls kztti informcis tvolsgot a
n
pi
D(p | q) = pi log
i=1 qi

kifejezssel. (A mennyisget gyakran informcis divergencinak, relatv entrpi-


nak, vagy KullbackLeibler-tvolsgnak nevezik.) Lssuk be, hogy brmely kt
eloszlsra D(p | q) 0, s egyenlosg pontosan akkor teljesl, ha p = q.

4.8. feladat. Bizonytsa be, hogy H(p) = log n D(p | u), ahol H(p) jelli a p
eloszls entrpijt, u pedig az egyenletes eloszlst az {1, . . . , n} halmazon.

4.9. feladat. Bizonytsa be a 4.2. ttel a) rszt!

4.10. feladat. Bizonytsa be a 4.2. ttel b) rszt!

4.11. feladat (ShannonFano-  s Huffman-kd). Legyen az X valsznusgi vl-


1 1 1 1
toz eloszlsa 3 ; 3 ; 4 ; 12 . Konstruljon Huffman-kdot ehhez az eloszlshoz.
Mutassa meg, hogy kt klnbzo optimlis kd is van, azaz, hogy az (1; 2; 3; 3), s
a (2; 2; 2; 2) kdszhosszsgokkal adott mindkt kd optimlis. Vonja le a kvet-
keztetst, hogy ltezik olyan optimlis kd, amelynek van a megfelel o Shannon
Fano-kdnl hosszabb kdszava is.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.11. F ELADATOK 190

4.12. feladat (Huffman-kd kdszhosszai). Tegyk fel, hogy a (p 1 , . . . , pn ) el-


oszlshoz ksztnk optimlis binris prefix kdot, ahol p 1 > p2 > > pn > 0.
Bizonytsa be, hogy
a) Ha p1 > 25 , akkor a hozz tartoz kdsz egy hosszsg;
1
b) Ha p1 < 3 akkor a hozz tartoz kdsz legalbb kett o hosszsg.

4.13. feladat. Legyen X1 , X2 , . . . egy fggetlen, azonos eloszls, binris valsz-


nusgivltoz-sorozat, amelyre P{Xi = 1} = 106 . Adja meg a sorozat egy olyan
vltoz szhosszsg blokk-kdjt, melynek betunknti tlagos kdszhossza ki-
1
sebb, mint 100 . Legyen a blokkmret m = 1024.

4.14. feladat (Futamhossz kdols). Legyenek X1 , . . . , Xn binris valsznusgi


vltozk. Jellje R = (R1 , . . . , Rk ) az egyes szimblumok elofordulsainak futam-
hosszait az n hosszon. Teht pldul az 1110010001111 sorozathoz R = (3, 2, 1, 3, 4)
tartozik. Hogyan viszonyul egymshoz H(X1 , . . . , Xn ), H(R) s H(R, Xn )?

4.15. feladat (Binris entrpiafggvny tulajdonsgai). Legyen a [0, 1] interval-


lumon rtelmezett h fggvny (binris entrpiafggvny) rtke

h(x) = x log x (1 x) log (1 x),

ha x (0, 1), s h(0) = h(1) = 0. Mutassuk meg, hogy h rendelkezik a kvetkez o


tulajdonsgokkal:

a) szimmetrikus az 12 pontra, s h 12 = 1;
b) [0, 1] minden pontjban folytonos;

c) 0, 21 -ben szigoran monoton nvekvo;
d) (0, 1)-ben szigoran konkv.

4.16. feladat. Adjuk meg a 36 darab a betub ol ll karaktersorozat LZ78-kdjt!

4.17. feladat. Legyen X egy bjt rtku valsznusgi vltoz gy, hogy

P{X = i} = pi , i = 0, 1, . . . , 255,

s Y egy bjt rtku, egyenletes eloszls valsznusgi vltoz. Ha X s Y fgget-


lenek, akkor szmtsa ki az (X +Y ) mod 256 entrpijt!

4.18. feladat. A bajnoki dnto az A s B csapat kztt addig tart, amg az egyik
meg nem nyer kt meccset. Jellje X valsznusgi vltoz a dnt o mrkozsei-
nek gyozteseit (teht X lehetsges rtkei AA, ABA, BAA, BB, BAB, ABB), s Y a
lejtszott sszes meccs szmt, azaz Y rtke 2 vagy 3. Feltve, hogy a kt csapat
egyformn eros s a meccsek fggetlenek, hatrozza meg H(X) s H(Y ) rtkt!
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.12. M EGOLDSOK 191

4.19. feladat. Tegyk fel, hogy egy p eloszlshoz tartoz ShannonFano-kd leg-
SF hosszsg, s ugyanezen eloszls Huffman-kdjnak leg-
hosszabb kdszava lmax
H hosszsg. Mutasson olyan eloszlst, amelyre l SF >
hosszabb kdszava lmax max
H + 800.
lmax

4.20. feladat. Legyen a forrsbc X = {A, B, Z,Y }. Az adaptv Huffman-algo-


ritmus hasznlatval adja meg egy binris kdjt a BABY sznak! Minden lps-
ben adja meg a Huffman-ft a slyokkal!

4.21. feladat (Maximlis entrpia). Tekintsk a pozitv egsz szmok halmazra


koncentrld, m vrhat rtku diszkrt eloszlsokat. Mutassa meg, hogy a geo-
metriai eloszlsnak maximlis az entrpija.

4.22. feladat. Milyen kdolsi kvetkezmnye van a 4.21. feladatnak?

4.23. feladat. Alkalmazzuk a BurrowsWheeler-transzformcit a KALEVALA


szra mint blokkra.

4.12. Megoldsok
4.1. megolds. A 4.1. defincibl trivilisan kvetkezik a feladat defincijnak
teljeslse, vagyis az azonossg igazolshoz a msik irnyt kell beltnunk. Indi-
rekt bizonytst alkalmazunk. Tegyk fel, hogy az llts nem igaz, vagyis ltezik
olyan kd, amely megfelel a feladat defincijnak, viszont nem tesz eleget a 4.1.
defincinak. Ekkor lteznie kell kt klnbz o u = u1 , . . . , uk s v = v1 , . . . , vm ze-
netnek (u 6= v, k 6= m), amelyek kdszavai megegyeznek f (u) = f (u 1 ) f (uk ) =
f (v1 ) f (vm ) = f (v). Kdoljuk most a kt zenet mindkt lehetsges sorrendu
konkatenltjt, vagyis uv-t s vu-t.

f (uv) = f (u1 ) f (uk ) f (v1 ) f (vm ) = f (v1 ) f (vm ) f (u1 ) f (uk ) = f (vu).

Br uv s vu hossza megegyezik (k + m), kdszavaik mgis azonosak, ellent-


mondva ezzel a feladat defincijnak, amelyb ol kiindultunk. Indirekt feltevsnk
hamisnak bizonyult, gy a feladat defincija valban ekvivalens a 4.1. defincival.
1
4.4. megolds. Az X valsznusgi vltoz geometriai eloszls 2 paramterrel,
vagyis
 
1 1 k1
P{X = k} = = 2k , k Z+ .
2 2
Az entrpia defincija szerint

H(X) = P{X = k} log P{X = k} = 2k log 2k = k2k = 2.
k=1 k=1 k=1
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.12. M EGOLDSOK 192

4.5. megolds. Az entrpia defincija szerint


n n
H(p) = pk log pk = pk log pk pi log pi p j log p j ,
k=1 k=1
k6=i
k6= j
n
pi + p j pi + p j
H(q) = pk log pk 2 log .
k=1 2 2
k6=i
k6= j

Ennek felhasznlsval s az f (x) := x log x bevezetsvel


?
H(p) H(q)
? pi + p j pi + p j
pi log pi p j log p j 2 log
 2  2
f (pi ) + f (p j ) ? pi + p j
f ,
2 2
ami viszont ppen az f () fggvny konkvitst jelenti. Mivel f 00 (x) = ln12 1x 0
minden x 0-ra, az llts igaz, hiszen a p i s p j valsznusgek pozitvak.

4.6. megolds.
H(X,Y ) = p(x, y) log p(x, y) =
x,y

= p(x)p(y) log p(x)p(y) =


x y

= p(x)p(y) log p(x) p(x)p(y) log p(y) =


x y x y

= p(x) log p(x) p(y) log p(y) =


x y
= H(X) + H(Y),
ahol kihasznltuk az X s Y vltozk fggetlensgt, hiszen ekkor p(x, y) = p(x)p(y).

4.7. megolds.
n
pi
D(p | q) = pi log qi =
i=1
n
qi
= pi log
i=1 pi
n  
1 qi
pi 1 =
i=1 ln 2 pi
1 n
= (qi pi ) =
ln 2 i=1
= 0,
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.12. M EGOLDSOK 193

1
ahol kihasznltuk a log x ln 2 (x 1) egyenlotlensget.

4.8. megolds.
n
pi
log n D(p | u) = log n pi log =
i=1 ui
n
pi
= log n pi log 1
=
i=1 n
n
= log n pi (log n + log pi ) =
i=1
n
= pi log pi =
i=1
= H(p).

4.9. megolds. Az, hogy a H(X) entrpia nemnegatv, egyszeruen kvetkezik a


defincibl. A felso korlt igazolshoz pedig kombinljuk a 4.7. s a 4.8. felada-
tok lltsait. Ha az X valsznusgi vltoz eloszlsa p, akkor

H(X) = H(p) = log n D(p | u) log n,

ahol kihasznltuk, hogy az informcis divergencia nemnegatv.

4.10. megolds. Alkalmazza a 4.7. feladat eredmnyt gy, hogy p legyen az X,Y
egyttes eloszlsa, q pedig az X s Y szorzateloszlsa.

4.11. megolds. A Huffman-fa elolltshoz az elso lpsben sszevonjuk az 14


1
s az 12 valsznusgu szimblumokat, s ezzel egy j, 13 valsznusgu cscsot
kapunk. A msodik lpsben hrom darab 13 valsznusgu cscs kzl kell ket-
tot sszevonnunk. Attl fggoen, hogy ezek kztt szerepel-e az el ozo lpsben
kapott cscs vagy sem, kt klnbz o ft kapunk eredmnyl:

1
0
1
2
0 1 3
0
1
1 2 1
3 3 3 1
0 1 0 1 0 1

1 1 1 1 1 1 1 1
12 4 3 3 12 4 3 3

00 01 10 11 000 001 01 1

Mindkt kd optimlis, kdszhosszuk 2. A msodik kdnak van 3 hossz kd-


szava is, mg a ShannonFano-kdnak nincs, amint azt mindjrt ltni fogjuk. Eh-
hez a kumullt valsznusgek, binris alakjuk s az ebb ol leolvashat kdszavak
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.12. M EGOLDSOK 194

a kvetkezok:
w1 = 0 = 0.000000002 = 00
1
w2 = 3 = 0.01010101 . . . 2 = 01
2
w3 = 3 = 0.10101010 . . . 2 = 10
11
w4 = 12 = 0.11101010 . . . 2 = 11

4.12. megolds.
a) Indirekt tegyk fel, hogy a p1 -hez tartoz kdsz egynl hosszabb. Ez csak
gy lehet, ha a Huffman-fa konstrulsnl a p 1 cscsot nem az utols lps-
ben vonjuk ssze egy msik csccsal. Legyen ez a msik cscs p j . Ebben
a kzblso sszevonsi lpsben kell, hogy legyen egy p 1 -nl nagyobb val-
sznusgu cscs (msklnben a p1 -hez tartoz cscsot ebben a lpsben nem
vonnnk ssze a p j csccsal), legyen ez pi , amelyre teht pi > p1 > 25 . A val-
sznusgek sszegnek 1-et kell adnia, gy a p j 1 p1 pi < 1 2 25 -nek is
teljeslnie kell. A pi cscs nem lehet levl, azaz nem tartozhat szimblumhoz
(hiszen ekkor nem p1 lenne a legvalsznubb szimblum), vagyis egy korbbi
lps sorn sszevonssal keletkezett p i1 s pi2 cscsokbl. Az utbbi kt val-
sznusgre p j > pi1 s p j > pi2 teljesl, msklnben nem a pi1 -hez s pi2 -hz
tartoz cscsokat vontuk volna ssze. Az eddigieket sszevetve:
2 2
 2
5 < p 1 < p i = p i1 + p i2 < p j + p j < 2 1 2 5 = 5

ellentmondsra jutottunk, vagyis hamis az indirekt feltevsnk.


b) Indirekt tegyk fel, hogy a p1 -hez tartoz kdsz egy hossz. Ez csak gy lehet,
ha a Huffman-fa konstrulsnl a p1 cscsot az utols lpsben vonjuk ssze
egy msik csccsal. Legyen ez a msik cscs p j . A valsznusgek sszegnek
1-et kell adnia, gy p j = 1 p1 > 1 13 = 32 . A p j cscs nem lehet levl,
azaz nem tartozhat szimblumhoz (hiszen ekkor nem p 1 lenne a legvalsznubb
szimblum), vagyis egy korbbi lps sorn sszevonssal keletkezett p j1 s
p
p j2 cscsokbl. Az utbbi kt valsznusg egyike, mondjuk p j1 > 2j > 13 .
Ezzel viszont ellentmondsra jutottunk, hiszen ekkor p j1 > p1 , vagyis ebben
a lpsben biztosan nem p j1 -et vontuk volna ssze, teht hamis az indirekt
feltevsnk.

4.13. megolds. Egy 1024 hossz blokkban lv o 1-esek szma (1024, 106 ) para-
mteru binomilis eloszlst kvet, vagyis nagy valsznusggel nem esik 1-es egy
blokkba:
1024
P{nincs 1-es a blokkban} = 1 106 0.99898

gy elegendoen kis tlagos kdszhosszsg kdot kapunk, ha a csupa 0 blokkot


1 biten, pldul a 0-val kdoljuk, a tbbi zenetet pedig nem tmrtjk, hanem
egy 1-es utn vltozatlanul tkldjk. Ez a kd egyrtelmuen dekdolhat, mert
ha egy kdsz 0-val kezdodik, akkor azt a csupa 0 blokknt dekdoljuk. A tbbi
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.12. M EGOLDSOK 195

kdsz pedig 1-essel kezdodik s 1025 bit hossz, dekdolsuk pedig az 1-es utn
ll 1024 bit vltozatlanul hagysval trtnik. A kd tlagos kdszhossza:
1 1  1024  1024 
E| f (X)| = 1 1 106 + 1025 1 1 106
m 1024
1
2 103 < .
100
4.14. megolds. Ltezik egy invertlhat g fggvny gy, hogy

(R, Xn ) = g(X1 , . . . , Xn ),

ugyanis Xn -bol s R-bol (X1 , . . . , Xn ) visszallthat. A 4.2. ttel c) rsze miatt

H(X1 , . . . , Xn ) = H(R, Xn )

s
H(R) < H(X1 , . . . , Xn ).

4.15. megolds.
a) Ez kzvetlenl a defincibl kvetkezik, ugyanis egy [0, 1]-beli x pont 12 -re vett
tkrkpe ppen 1 x, s h(1 x) = h(x).
b) Mivel a h(x) fggvny a (0, 1)-ben folytonos fggvnyek sszettelvel kap-
hat, ezrt ott maga is folytonos. A vgpontokban pedig:
1
log x LH x
lim h(x) = lim (x log x (1 x) log(1 x)) = lim 1
= lim =
x0 x0 x0
x
x0 x12
= lim x = 0 = h(0),
x0

ahol a LHospital-szablyt alkalmaztuk. Mivel a hatrrtk megegyezik a he-


lyettestsi rtkkel, ezrt a fggvny folytonos a vgpontokban is. (h(1)-re
hasonlan kaphat az llts.)
c) Ehhez hatrozzuk meg a fggvny derivltjt:
 
0 1 1 1 1 1
h (x) = log x x + log(1 x) + (1 x) = log 1 .
ln 2 x ln 2 1 x x

Mivel 1x 1 1 a 0, 12 -ben, ezrt itt h0 (x) is pozitv, vagyis h(x) szigoran
monoton nvekedo.
d) Ehhez pedig a msodik derivlt vizsglata szksges:
1 x 1 1 1
h00 (x) = 2
= .
ln 2 1 x x ln 2 x(1 x)
Mivel mind az x, mind az 1 x pozitv a (0, 1) intervallumban, ezrt a h 00 (x)
negatv, vagyis h(x) konkv.
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.12. M EGOLDSOK 196

4.16. megolds. Az LZ78-kdols egyes lpseit bejelltk a bemeneten:

a|aa|aaa|aaaa|aaaaa|aaaaaa|aaaaaaa|aaaaaaaa

a kdol kimenete s a sztrpts pedig az albbiakban kvethet o nyomon:

a kdol sztr
kimenete index bejegyzs
h0, f (a)i 1 a
h1, f (a)i 2 aa
h2, f (a)i 3 aaa
h3, f (a)i 4 aaaa
h4, f (a)i 5 aaaaa
h5, f (a)i 6 aaaaaa
h6, f (a)i 7 aaaaaaa
h7, f (a)i 8 aaaaaaaa
h8, f (a)i 9 aaaaaaaaa

4.17. megolds. Az (X +Y ) mod 256 valsznusgi vltoz eloszlsa megegyezik


az Y valsznusgi vltoz eloszlsval, gy az entrpijuk is azonos:
255
1 1
H((X +Y ) mod 256) = H(Y ) = log = log 256 = 8.
i=0 256 256

4.18. megolds. Abbl, hogy mindkt csapat egyenl o esllyel nyer meg egy mecs-
cset, s a meccsek egymstl fggetlenek, kiszmthatjuk a kt valsznusgi vl-
toz eloszlst:
P{X = AA} = 14 , P{X = ABA} = 18 , P{X = BAA} = 18 ,
P{X = BB} = 14 , P{X = BAB} = 18 , P{X = ABB} = 18 ,

s
P{Y = 2} = P{X = AA} + P{X = BB} = 12 ,
P{Y = 3} = 1 P{Y = 2} = 12 .
Ezekbol pedig az entrpia defincija szerint:

H(X) = 2 14 log 14 4 18 log 18 = 25 ,


H(Y ) = 2 12 log 12 = 1.

4.19. megolds. A ShannonFano-kdnak gy keletkezhetnek hossz kdszavai,


ha kt kumullt valsznusg nagyon kzel esik egymshoz, s gy sokjegyu bi-
nris trt alakban kell felrnunk oket ahhoz, hogy megklnbztethet ok legyenek
egymstl. A p eloszlsnak legalbb hromelemunek kell lennie ahhoz, hogy a
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.12. M EGOLDSOK 197

ShannonFano-kdls ne a trivilis {0, 1} kdot eredmnyezze. Ez elegend o is:


mutatunk egy alkalmas hromelemu eloszlst.
 
p := 1 2k+1 , 2k , 2k ,

ahol k 2 egsz szm. Ekkor a kumullt valsznusgek binris trt alakban:

w0 = 0, w1 = 0. 11 . . . 1} 0 2 ,
| {z w2 = 0. 11 . . . 1} 2
| {z
k1 k

A megklnbztethetosg rdekben az utbbi kt binris trtet k jegy pontos-


sggal kell lerni, gy vgl kt k hossz s egy 1 hossz kdszt kapunk, teht
SF = k. A Huffman-kdols algoritmusa szerint el oszr a kt 2k valsznu-
lmax
sget vonjuk ssze, majd ezt az 1 2k+1 valsznusggel, gy kt 2 hossz s
H = 2. A felttel azt kvnja, hogy legyen
egy 1 hossz kdszt kapunk, teht lmax
SF H
lmax lmax = k 2 > 800, vagyis brmely k > 802 egsz szm esetn a fenti p
eloszls ilyen tulajdonsg.

4.20. megolds. A kdfa alakulst az albbiakban kvethetjk nyomon:

4m 5m 6m
 S  S  S

2m 2m 3m 2m 4m 2m
 S  S  S

 B  B  B  B  B  B
1m 1} 1m 1m 1} 2m 1m 1m 2m 2} 1m 1m
 B  B  B  B  B  B

A B Z Y A B Z Y A B Z Y

7m 7m 8m
 S  S  S

5m 2m 4m 3m 5m 3m
 S  S  S

 B  B  B B  B B
2m 3m 1m 1m 2m 2m 2m 3m
 B  B  B  B

A B Z Y A  B A  B
m 1} m 2m
 B  B
1 1
Z Y Z Y

Feleltessk meg a bal leknek a 0-t, a jobbaknak pedig az 1-et. A ngy betut
minden lpsben az aktulis kdfa szerint kdoljuk. A kdfk megfelel o cscsait
feketvel jelltk. Ekkor a binris kd: 01 00 01 011.
1
4.21. megolds. Az m vrhat rtku, vagyis m paramteru geometriai eloszls
valsznusgi vltoz eloszlsa
 
1 1 k1
pk = 1 , k Z+ .
m m
Kdolstechnika - 2006 - crysys web vltozat - 6.

4.13. SSZEFOGLALS 198

Legyen q tetszoleges eloszls m vrhat rtkkel. Ekkor



H(p) H(q) = pk log pk + qk log qk =
k=1 k=1
 k1 !
1 1
= pk log 1 + qk log qk =
k=1 m m k=1
  
1
= pk log m + (k 1) log 1 + qk log qk =
k=1 m k=1
  
1
= qk log m + (k 1) log 1 + qk log qk =
k=1 m k=1

= qk log pk + qk log qk =
k=1 k=1

qk
= qk log
k=1 pk
0,

ahol az utols lpsben a 4.7. feladat eredmnyt hasznltuk fel.

4.22. megolds. Adott vrhat rtku s pozitv egsz rtku vletlen betuk esetn
a legnagyobb tlagos kdszhossz geometriai eloszlsa esetn addik.

4.23. megolds. A KALEVALA sz ciklikus eltoltjainak lexikografikus rendezse


utn a kvetkezot kapjuk:
K A L E V A L A A K A L E V A L
A L E V A L A K A L A K A L E V
L E V A L A K A A L E V A L A K
E V A L A K A L E V A L A K A L
=
V A L A K A L E K A L E V A L A
A L A K A L E V L A K A L E V A
L A K A L E V A L E V A L A K A
A K A L E V A L V A L A K A L
E
vagyis a transzformci eredmnye az LVKLAAAE blokk s az 5, hiszen ebben a
sorban jelenik meg az eredeti blokk.

4.13. sszefoglals
Ebben a fejezetben a vesztesgmentes tmrtsi mdszereket tekintettk t. [2, 3,
6, 8, 11] Megllaptottuk, hogy elegend o az egyrtelmuen dekdolhat kdok egy
knnyen kezelheto osztlyval, a prefix kdokkal foglalkoznunk. Definiltuk a t-
mrthetosg elvi korltjt, a Shannon ltal bevezetett entrpit. [4, 5] Kimondtuk,
hogy az egyrtelmuen dekdolhat kdok tlagos kdszhossza nem lehet kisebb
Kdolstechnika - 2006 - crysys web vltozat - 6.

I RODALOMJEGYZK 199

az entrpinl. A ShannonFano-kd segtsgvel fels o korltot adtunk az tlagos


kdszhosszra. Kiterjesztettk a betunknti kdolst blokk-kdolss. Megismer-
kedtnk egy optimlis tmrtsi mdszerrel, a Huffman-kdolssal. Ezutn az
aritmetikai kdols kvetkezett, amely nagy blokkmret esetn is hatkonyan al-
kalmazhat, valamint lehetov teszi a vals ideju dekdolst. [12]
Az adaptv tmrtsi eljrsok kzl a LempelZiv-algoritmusokat (LZ77,
LZ78, LZW) s az adaptv Huffman-kdot vettk sorra. Az egyre npszerubb
BurrowsWheeler-transzformcin alapul tmrtsi mdszer is tertkre kerlt.
Vgl a faxkdols pldja s nhny, a gyakorlatban hasznlt tmrt oprogram
ismertetse zrta a fejezetet. [12]

Irodalomjegyzk
[1] Ash, R.B. Information Theory. Interscience Publishers, 1965.
[2] Cover, T., Thomas, J. Elements of Information Theory, Second Edition. John
Wiley and Sons, New Jersey, 2006.
[3] Csibi S. (szerk.) Informci kzlse s feldolgozsa. Tanknyvkiad, Buda-
pest, 1986.
[4] Csiszr I., Fritz J. Informcielmlet. ELTE TTK jegyzet, Budapest, 1986.
[5] Csiszr I., Krner J. Information Theory: Coding Theorems for Discrete
Memoryless Systems. Akadmiai Kiad, Budapest, 1981.
[6] Gallager, R.G. Information Theory and Reliable Communication. Wiley,
1968.
[7] Gher K. (szerk.) Hradstechnika. Muszaki Knyvkiad, Budapest, 1993.
[8] Gyrfi L., Gyori S., Vajda I. Informci- s kdelmlet. TypoTEX Kiad,
Budapest, 2002.
[9] Linder T., Lugosi G. Bevezets az informcielmletbe. Muegyetemi Kiad,
Budapest, 1993.
[10] Massey, J.L. Applied Digital Information Theory. Course Notes, ETH Zrich,
1984.
[11] McEliece, R.J. The Theory of Information and Coding. Addison-Wesley,
1977.
[12] Sayood, K. Introduction to Data Compression. Morgan Kaufmann Publis-
hers, San Francisco, 1996.
[13] Shannon, C.E. A mathematical theory of communication. Bell System Tech-
nical Journal, 1948.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5. fejezet

Vesztesges forrskdols

Az eddigi vizsglataink sorn megkveteltk, hogy a kdolt zenet egyrtelmuen


visszallthat legyen. Ezt a kvetelmnyt sok gyakorlati problma esetn fel kell
adnunk, illetve jobb, ha feladjuk. Vesztesges forrskdols esetn nem cl a tk-
letes reprodukci, vagyis megengednk torztst, de tovbbra is gazdasgos, tmr
reprezentcit szeretnnk. A mindennapi alkalmazsok kz tartozik a beszd,
zene, kp, vide tmrtse. Kp tmrtse esetn pldul nyilvn felesleges meg-
kvetelni, hogy a reproduklt kp kppontrl kppontra megegyezzen az eredeti
kppel, csupn azt szeretnnk, szemmel ne rzkeljnk romlst.
Ebben a fejezetben olyan forrskdolsi eljrsokat vizsglunk, ahol az ze-
net tkletes reprodukcija helyett csak azt vrjuk el, hogy a dekdolt zenet az
eredetit valamilyen rtelemben huen de nem felttlenl pontosan adja visz-
sza. Ebben a feladatban kt clfggvnynk van. Az egyikkel mrjk a tmrtst,
a msikkal a torztst, vagyis azt, hogy a tmrts utni reprodukci mennyire
hasonlt az eredetire. Kt, egymsnak ellentmond clunk van, nevezetesen ala-
csony rtken tartani mind a tmrtsi arnyt, mind a torztst. A problma gy
kezelheto, ha az egyiket, pldul a torztst egy el ort rtken rgztjk, s emellett
minimalizljuk a tmrtsi arnyt. Az elvi hatr ekkor is tisztzhat, de az elvi
hatrt kzelto kdok ma mg nem ismertek. Ugyanakkor lteznek a gyakorlatban
hatkony vesztesges tmrto eljrsok. Ilyennel tallkozhatunk pldul a mobil-
telefniban. Az emberi beszd digitlis tvitele esetn pldul a folytonos jelb ol
mintavtelezssel s kvantlssal olyan jelet kapunk, amely mr vges rtkksz-
letu. Mgis azt mondhatjuk, hogy ezzel semmit sem vesztettnk, hiszen pldul
a digitlis kzponton keresztlhalad telefonkapcsolat ugyanolyan j min osgu
(vagy jobb), mintha az analg/digitlis digitlis/analg talaktst elhagynnk.
A lnyeg az, hogy a forrsnak csak a szmunkra lnyeges jellemz oit tartjuk meg,
s gy megelgedve a kzelto visszalltssal gy kdolhatjuk, hogy a ka-
pott jel tovbbtsa mr kisebb kltsggel megoldhat legyen. (Vagyis pl. binris
kdot hasznlva, a forrs kevesebb biten reprezentlhat.)
A kvetkezokben trgyaland kdok kzs jellemz oje lesz, hogy n. blokkbl-
blokkba kdok, azaz a forrsbc betuinek lland hossz blokkjait lland hosz-
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 201

sz kdszavakkal kdoljuk. Feltesszk, hogy adott az zenetek s a kdjaik kztt


egy n. husgmrtk, ami azt mri, hogy egy adott kdszt milyen mrtkben te-
kinthetnk egy adott zenet reprodukcijnak. Vizsglataink kzppontjban az a
krds ll, hogy kdolssal milyen mrtkben tmrthetjk a forrs ltal kibocs-
tott jelet, ha azt akarjuk, hogy a kd a forrst adott tlagos husggel reprezentlja.
Sajnos torztst megengedo forrskdols esetn a tmrthet osg elvi hatrai-
nak a jellemzse ltalban nem konstruktv, ugyanakkor a gyakorlati feladatokban
mgis kell tmrteni, teht megemltnk nhny gyakorlati eljrst is: kvantlst,
prediktv kdolst, beszd-, hang-, kp- s videotmrtst.

5.1. Kvantls
A digitlis mdszereket a hrkzls szinte minden terletn alkalmazzk. Minden
esetben, amikor az adatok feldolgozsa digitlisan trtnik, a folytonos rtkksz-
letu jelet vges rtkkszletuv kell alaktani. Az alkalmazott, teht konstruktv
digitalizls legegyszerubb mdja a skalr (egydimenzis) kvantls.

Skalrkvantls

Legyen X egy vals rtku vletlen jel, az egydimenzis kvantltjn egy vges
rtkkszletu Q : R R lekpezssel kapott Q(X) diszkrt valsznusgi vltozt
rtnk. A Q() fggvnyt kvantlnak nevezzk. A kdols husgt egy specilis
husgmrtkkel, a D(Q) ngyzetes torztssal mrjk:

D(Q) = E (X Q(X))2 . (5.1)

Termszetesen ms husgmrtket (torztsmrtket) is vlaszthattunk volna, de a


gyakorlatban ez a legelterjedtebb.
Legyen a Q kvantl rtkkszlete az {x 1 , x2 , . . . , xN } halmaz, ahol az xi -k va-
ls szmok. Az xi szmokat kvantlsi szinteknek nevezzk. Vegyk szre, hogy
Q-t egyrtelmuen lerjk az {x1 , x2 , . . . , xN } kvantlsi szintek s a Bi = {x R :
Q(x) = xi }, i = 1, . . . , N kvantlsi tartomnyok. A B i halmazok persze diszjunk-
tak s egyestsk kiadja az egsz vals egyenest. A kvantl mukdse ezrt a
kvetkezokpp rhat le:

Q(x) = xi , ha x Bi .

Tegyk most fel, hogy a kvantlt ler adatok kzl most csak az {x 1 , x2 , . . . , xN }
kvantlsi szinteket ismerjk. Ekkor az ilyen kvantlsi szinteket hasznl kvant-
lk kzl a legkisebb torzts az a Q kvantl, amelyre

Bi = {x : |x xi | |x x j |, j = 1, 2, . . . , N} (5.2)

(legkzelebbi szomszd felttel), ahol a dntsi szablyt gy tehetjk egyrtel-


muv (vagyis a Bi -ket diszjunktakk), hogy ha egy adott x kett o vagy tbb Bi -be
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 202

tartozna, akkor a legkisebb indexuhz soroljuk. Az adott kvantlsi szintekkel Q


valban legkisebb ngyzetes torzts, hiszen ha Q egy msik kvantl ugyan-
ezen kvantlsi szintekkel, akkor egy tetsz oleges x-re Q(x) = xi (teht x Bi ) s
Q (x) = x j valamely 1 i, j N indexekre, de ekkor (5.2) szerint

|x xi | |x x j |,

teht
(x Q(x))2 (x Q (x))2
teljesl minden x R-re, amibol D(Q) D(Q ) kvetkezik. Ezrt a kvetke-
zokben csak az (5.2) szerinti kvantlkkal foglalkozunk. Az ilyen kvantlk B i
kvantlsi tartomnyai nagyon egyszeruen nznek ki. Az ltalnossg megszo-
rtsa nlkl tegyk fel most, hogy a kvantlsi szintek nagysg szerint rendezve
vannak, vagyis x1 < x2 < < xN . Ekkor, bevezetve az yi = xi +x2 i+1 , i = 1, . . . , N 1
jellst, az (5.2) szerinti Bi halmazok a kvetkezo intervallumok lesznek:

B1 = (, y1 ], Bi = (yi1 , yi ], i = 2, . . . , N 1, BN = (yN1 , ).

Egy ilyen, N = 5 szintu kvantlt brzol az 5.1. bra.

6
Q(x)

x5 -

x4

x3

-
y1 y2 y3 y4 x

x2

 x1

5.1. bra. Kvantl N = 5 kvantlsi szinttel


Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 203

Tekintsk most azt a feladatot, hogy adottak a {B i } tartomnyok, s ehhez ho-


gyan vlasszuk meg az xi kvantlsi szinteket. A teljes valsznusg ttele szerint

 N 
E (X Q(X))2 = E (X Q(X))2 | X Bi P{X Bi } =
i=1
N 
= E (X xi )2 | X Bi P{X Bi },
i=1

amibol kvetkezik, hogy az optimlis xi kvantlsi szint a Bi tartomny slypontja,


ugyanis a Steiner-ttel miatt tetsz oleges c konstansra
  
E (X c)2 | X Bi = E (X E(X | X Bi ))2 | X Bi +(E (X | X Bi ) c)2 .

Jellje f (x) az X surusgfggvnyt, ekkor a ngyzetes torzts a B i tartomnyon,


azaz Z
1 
R (x xi )2 f (x) dx = E (X xi )2 | X Bi
f (x) dx
Bi Bi

akkor minimlis, ha
R
x f (x) dx
Bi
xi = E(X | X Bi ) = R ,
f (x) dx
Bi

ami pp a slypont.

A LloydMax-algoritmus

Optimlis kvantl tervezsnl azt a technikt alkalmazzuk, hogy az tlagos


torzts cskkentshez a bemenetet pontosabban kzeltjk a nagyobb valsznu-
sgu tartomnyokban, mg a kis valsznusgu tartomnyokban rosszabb kzeltst
engednk meg, mint egyenletes kvantls esetn. Ezt gy tehetjk meg, hogy a na-
gyobb valsznusgu helyeken a kvantlsi intervallumokat kisebbnek vlasztjuk.
Amennyiben az intervallumok szma konstans, ez egyben azt is jelenti, hogy a ki-
sebb valsznusgu helyeken nagyobb intervallumhosszakkal dolgozunk. (Ez ha-
sonlatos ahhoz, hogy vesztesgmentes tmrts esetn az tlagos tmrtsi arny
javtshoz a kisebb valsznusggel el ofordul forrsszavakhoz hosszabb kdsza-
vakat rendelnk.)
Egy adott X valsznusgi vltozhoz keressk az N szintu, optimlis Q kvan-
tlt. Feladatunk az x1 < x2 < < xN kvantlsi szintek s a Q(X) fggvny
meghatrozsa gy, hogy a D(Q) ngyzetes torzts minimlis legyen. Bebizo-
nythat, hogy egy optimlis kvantl kielgti az albbi kt szksges felttelt,
amelyeket egytt LloydMax-felttelnek neveznk:
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 204

1. Legkzelebbi szomszd felttel:


A kvantlsi intervallumok hatrait ppen a kvantlsi szintek ltal kijellt
szakaszok felezopontjai adjk, vagyis
xi + xi+1
yi = , i = 1, 2, . . . , N 1.
2

2. Slypont felttel:
Minden xi kvantlsi szint a Bi kvantlsi intervallumnak a slypontja, azaz
R
x f (x) dx
Bi
xi = R , i = 1, . . . , N.
f (x) dx
Bi

A LloydMax-felttelt kielgto kvantlt LloydMax-kvantlnak nevezzk.


Ha egy kvantl nem elgti ki a LloydMax-felttel brmelyik rszt, akkor le-
hetsges egy olyan kvantlt kszteni, amelynek ngyzetes torztsa kisebb, te-
ht egy nem LloydMax-kvantl nem lehet optimlis, de ltezik nem optimlis
LloydMax-kvantl is.

5.1. plda. Legyen az X valsznusgi vltoz az {1, 2, 3, 4} halmazon egyenletes


eloszls. Pontosan 3 fle 2-szintu LloydMax-kvantlt alkalmazhatunk erre:

Q12 (1) = 1; Q12 (2) = Q12 (3) = Q12 (4) = 3

Q22 (4) = 4; Q22 (1) = Q22 (2) = Q22 (3) = 2


Q32 (1) = Q32 (2) = 1.5; Q32 (3) = Q32 (4) = 3.5
Q12 s Q22 ngyzetes torztsa egyarnt 0.5, mg Q 32 - 0.25. Annak ellenre, hogy
mindhrom LloydMax-kvantl, csak Q 32 optimlis.

A LloydMax-algoritmus:
A kvantlt egyrtelmuen jellemzik az x i kvantlsi szintek s a Bi = (yi1 , yi ]
tartomnyok. Clunk a szintek s az intervallumhatrok javtsa lpsr ol lpsre.

1. Vegynk fel egy kzeltst a kvantlsi szintekre.

2. Optimalizljuk a kvantlt a kvantlsi szintek szerint, vagyis hatrozzuk


meg az intervallumhatrokat a legkzelebbi szomszd felttel kielgtsvel.

3. Szmtsuk ki, hogy mennyivel cskkent a torzts, s ha ez egy el ore megha-


trozott kszbrtknl kisebb, akkor kszen vagyunk.

4. Optimalizljuk a kvantlt az imnt kapott intervallumokhoz, vagyis alkal-


mazzuk a slypont felttelt, s folytassuk az algoritmust a 2. ponttl.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 205

Egyenletes kvantl

A technikai nehzsgek elkerlse vgett a tovbbi vizsglataink sorn feltesz-


szk, hogy a kvantlt X vals valsznusgi vltoz eloszlsa abszolt folytonos
f surusgfggvnnyel, valamint azt is feltesszk, hogy f a [A, A] intervallumban
folytonos, a [A, A] intervallumon kvl nulla rtku fggvny. Az f -et felhasz-
nlva a kvantl ngyzetes torztsa a kvetkez okpp rhat fel:
Z N Z
D(Q) = (x Q(x))2 f (x) dx = (x xi )2 f (x) dx.
i=1
Bi

A legegyszerubb kvantl az egyenletes kvantl. A Q N N-szintu egyen-


letes kvantlt gy kapjuk, hogy az X lehetsges rtkeinek halmazt, vagyis a
[A, A] intervallumot, N egyenlo nagysg intervallumra osztjuk (ezek a B i in-
tervallumok), s a kvantlsi szinteket ezen intervallumok kzepn helyezzk el.
Formlisan teht a kvantlsi szintek
A
Qi (x) = A + (2i 1) ,
N
ha
A A
A + 2(i 1)
< x A + 2i , i = 1, . . . , N,
N N
a kvantlsi intervallumok hossza pedig
2A
N = .
N
A kvetkezo ttel megmutatja, hogy az N szintu egyenletes kvantl ngyzetes
2
torztsa nagy N esetn kzeltoleg 12N .

5.1. ttel. Ha az X valsznusgi vltoz f surusgfggvnyre a fenti felttelek


teljeslnek, akkor az X N -szintu egyenletes kvantlsnak D(Q N ) torztsra a

D(QN ) 1
lim =
N 2N 12

aszimptotikus sszefggs teljesl.

A kvantl kimenete egy valsznusgi vltoz, amely fggvnye a bemenet-


nek. Ezrt a 4.2. ttel c) pontja szerint a kvantl kimenetnek entrpija (vagy
rviden: a kvantl entrpija) nem lehet nagyobb, mint a bemenet entrpija,
azaz H(QN (X)) H(X). A kvetkezo ttel egy aszimptotikus sszefggst ad az
egyenletes kvantl szintjeinek szma s entrpija kztt.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 206

5.2. ttel. Tegyk fel, hogy az X valsznusgi vltoz f surusgfggvnyre a


fenti felttelek teljeslnek, valamint a
ZA
H( f ) = f (x) log f (x) dx
A

integrl vges. Ekkor az X N -szintu egyenletes kvantlsnak H(Q N (X)) entrpi-


jra a
lim (H(QN (X)) + log N ) = H( f ).
N
aszimptotikus sszefggs teljesl.

A ttel teht azt lltja, hogy a kvantlsi szintek N szmnak nvekedsvel az


egyenletes kvantl entrpijra a H(Q N (X)) H( f ) log N kzelts rvnyes.
A H( f ) mennyisget differencilis entrpinak hvjuk, mely a finom, egyen-
letes kvantl kimenetnek a tmrthet osgt mri, azaz valamilyen rtelemben
az eloszls terjedelmt. Ha az 5.1. s 5.2. tteleket sszevetjk, akkor knnyen
belthat a  p 
lim H(QN (X)) + log 12D(QN ) = H( f )
N
aszimptotikus sszefggs az egyenletes kvantls torztsa s entrpija kztt.
Ezt gy is fogalmazhatjuk, hogy
p
H(QN (X)) H( f ) log 12D(QN )

nagy N-ek, vagyis finom (kis lpskzu) kvantls esetn, ami egy hasznos kze-
lts lehet egyenletes kvantl tervezsnl.

Kompanderes kvantl

A kvantlsra a gyakorlatban ltalban olyan alkatrszek rhet ok el, melyek-


kel egyenletes kvantlst valsthatunk meg. Ebben az esetben a kvantlt rtket
kell tmrteni. Gyakran ezt nem akarjuk megtenni, sokkal inkbb azt szeretnnk,
hogy rgztve a kvantlsi szintek szmt, N-et, minimalizljuk a ngyzetes torz-
tst. Ezt gy tesszk, hogy a kvantland
 jelet egy monoton nveked o fggvny-
1 1
nyel, a kompresszorral a 2 , 2 -be kpezzk, ott alkalmazunk egy egyenletes
kvantlt, s a kvantlt rtket a kompresszor inverzvel (az expanderrel) visz-
szatranszformljuk (5.2. bra). (kompander = kompresszor + expander)
A leggyakrabban alkalmazott nemegyenletes kvantlk a logaritmikus komp-
resszor karakterisztikt hasznl eszkzk, amelyek a tvkzl o hlzatokban a be-
szdkdolst vgzik a 60-as vek ta. Azrt alkalmaznak logaritmikus kvantlst,
mert az emberi beszdben a kis amplitdj jelek az rthet osg szempontjbl
rendkvl fontosak, ezrt a leheto legnagyobb pontossggal kell ezeket kvantlni,
mg a nagy amplitdj jelek esetben a tl nagy jelszintet kell megakadlyozni. A
beszdkdolsban ktfle kompander hasznlatos: a -law s az A-law. Az el obbi
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 207

kompresszor kdol dekdol expander


- y = G(x) - xi = Q(y) - ye = Q1 (xi ) - xe = G1 (e
y) -

| {z }
kvantl
y = G(x)
6 x = G1 (y) 6

- -
x y

5.2. bra. Kompanderes kvantl

az Egyeslt llamokban, Kanadban s Japnban elterjedt. Kompresszor ill. ex-


pander fggvnye:

ln (1 + |x|)
G (x) = sgn x 1 x 1
ln (1 + )
1 
G1
(x) = (1 + )|x| 1 sgn x 1 x 1

A paramter rtkt ltalban 255-nek vlasztjk.
Az Eurpban, Afrikban, Ausztrliban s Dl-Amerikban alkalmazott A-
law kompandere az albbi (A = 87.6):

Ax
1+ln A, 0 |x| < A1
GA (x) =
1+ln |Ax| sgn x, 1 |x| 1
1+ln A A

x |1+ln
A
A|
, 0 |x| < 1
1+ln A
G1
A (x) =
e|x|(1+ln A)1 1
A sgn x, 1+ln A |x| 1

Az alapveto klnbsg az A-law s a -law karakterisztika kztt, hogy az A-


lawnak kicsit szlesebb a dinamikatartomnya (rtkkszletnek terjedelme), mg
a -lawnak egy kicsit kisebb az alapzaja. Az 5.3. brn lthat a kt kompresszor
fggvny. A klnbsg csak a 0-hoz kzeli tartomnyban figyelhet o meg, ezrt
a [0.1, 0.1] intervallumban brzoltuk a oket (a vzszintes tengelyhez kzelebb
halad grbe az A-law, mg a tvolabbi a -law).
A finom, egyenletes kvantl ngyzetes torztsa kiterjeszthet o a kompanderes
esetre. Jellje G(x) a kompresszort s

g(x) = G0 (x)
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 208

0.6

0.4

0.2

0.1 0.08 0.06 0.04 0.02 0.02 0.04 0.06 0.08 0.1

0.2

0.4

0.6

5.3. bra. A-law s -law kompresszor fggvnyek

a derivltjt, pontosabban
Zx
1
G(x) = + g(z) dz,
2

s g(x) egy surusgfggvny. Legyenek

1 1
= y00 < y01 < < y0N =
2 2
a transzformlt intervallumban a kvantlsi hatrok, y 0i y0i1 = 0 = N1 , s

yi = G1 (y0i ), i = 1, 2, . . . , N 1

a vals kvantlsi hatrok. Ekkor az i-edik kvantlsi lpcs o nagysga

i = yi yi1 .

Megmutathat, hogy a kzel optimlis kompresszor fggvnyt az X vltoz


f (x) surusgfggvnyb ol a kvetkezo mdon lehet kiszmtani:
Rx
f 1/3 (z) dz
1
G (x) = + R . (5.3)
2
f 1/3 (z) dz

Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 209

Vektorkvantls

A forrs kimenetnek tbbdimenzis eloszlst felhasznlva kisebb torztst


rhetnk el ugyanakkora bit/minta arny mellett vektorkvantlssal. A forrsszim-
blumok egyenknti kvantlsa helyett (ahogyan azt skalr kvantl esetn tettk)
sorozatokat, vektorokat kpeznk bel olk, s ezeket egytt kvantljuk. Tekintsk
pldul a ktdimenzis esetet. Skalr kvantl alkalmazsa esetn egymsra
meroleges tengelyeket felttelezve tglalap alak tartomnyokat kapunk a sk-
ban, mg vektorkvantlval brmilyen szablytalan skidom alak (pldul kr)
tartomnyok kialakthatk.
Tegyk fel, hogy emberek magassg- s tmegadatait szeretnnk feldolgozni.
Ezek pldul 100 s 200 cm, illetve 20 s 120 kg kz esnek. Ha sszesen 6
biten szeretnnk kvantlni az adatainkat, s skalr kvantlt alkalmazunk, akkor
3-3 bit jut a magassgra s a tmegre egyarnt. Az intervallumokat 8 egyenl o
rszre osztva, azok kzepn kijellve a szinteket (a szemlletessg kedvrt kt-
dimenzis koordintarendszerben brzolva az gy lehetsges kvantlsi pontokat:
magassgtesttmeg koordintj pontok), egy (22 kg, 197 cm) adatprt ugyan-
olyan torztssal kvantlunk, mint egy (70 kg, 180 cm)-est. Holott az el obbi adatpr
nyilvnvalan nem fog elofordulni, mg az utbbi gyakori lesz. Vektorkvantls al-
kalmazsval megtehetjk, hogy pldul a statisztikai vizsglatok szerint leggya-
koribb magassgtesttmeg egyenes krnyezetben biztostunk kis torztst, mg a
gyakorlatilag lehetetlen adatprok esetben megengednk nagyobb torztst is.
Legyen X egy d-elemu forrsvektor f (x) surusgfggvnnyel. A d-dimenzis
vektorkvantl egy Q(x) fggvny, amely az x R d bemenetet az x1 , x2 , . . . , xN
Rd vektorok egyikbe kpezi le. A kvantlt egyrtelmuen jellemzi az N kime-
neti vektor, s a hozzjuk tartoz B 1 , B2 , . . . , BN tartomnyok, amelyek Rd egy
partcijt alkotjk (diszjunktak, s lefedik R d -t), teht Q(x) = xi , ha x Bi ,
i = 1, 2, . . . , N. A torzts vizsglatra tovbbra is a ngyzetes torztsi mrtket
fogjuk hasznlni:
N Z
D(Q) = EkX Q(X)k2 = kx xi k2 f (x) dx
i=1
xBi

ahol k k az euklidszi norma.


Vektorkvantl tervezse adott torztsi mrtkre ismert bemeneti eloszls ese-
tn a Bi tartomnyok s az xi kimeneti vektorok meghatrozst jelenti. Mg egy-
dimenzis esetben ez viszonylag egyszeru problmt jelentett, hiszen csak a vals
egyenes intervallumai jhettek szmtsba, addig most mg B i -k alakjra is vg-
telen sok lehetosgnk van. A torzts szempontjbl optimlis megolds B i -k
alakjra a kr, a gmb, illetve magasabb dimenzikban a hipergmb lenne. Sajnos
ezekkel az alakzatokkal azonban nem lehet hzagmentesen lefedni (csempzni) a
teret, pedig minden lehetsges bemeneti vektorhoz pontosan egy kimeneti vektort
kell hozzrendelnnk. Ktdimenzis esetben j kzeltst jelent a skot lefed o sza-
blyos hatszgminta, amely az 5.4. brn lthat.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 210

s s
s s
s s
s s
s s
s s

5.4. bra. Hatszgminta

Egy optimlis vektorkvantl kielgti az albbi kt szksges felttelt, melyek


az egydimenzis eset kzenfekvo ltalnostsai:

1. Rd partcija Dirichlet-partci, vagy ms nven tartomnyai Voronoi-tarto-


mnyok, azaz

Bi = {x : kx xi k kx x j k, j 6= i}.

2. A kvantlt vektorok a hozzjuk tartoz tartomnyok slypontjai:


R
x f (x) dx
Bi
xi = R , i = 1, . . . , N.
f (x) dx
Bi

A LloydMax-algoritmus ltalnostsaknt vektorkvantls esetn a Linde


BuzoGray-algoritmus hasznlatos:

1. Vegynk fel egy kzeltst a kvantlsi vektorokra.

2. Optimalizljuk a kvantlt a kvantlsi vektorok szerint, vagyis hatrozzuk


meg a tartomnyokat a Voronoi-tartomnyokra vonatkoz felttel kielgt-
svel.

3. Szmtsuk ki, hogy mennyivel cskkent a torzts, s ha ez egy el ore megha-


trozott kszbrtknl kisebb, akkor kszen vagyunk.

4. Optimalizljuk a kvantlt az imnt kapott tartomnyokhoz, vagyis alkal-


mazzuk a slypont felttelt, s folytassuk az algoritmust a 2. ponttl.

A LindeBuzoGray-algoritmussal tervezett vektorkvantlnak ltalban nincs


megfigyelheto belso struktrja. Ez a vletlenszeru szerkezet megnehezti ugyan
a kvantlsi folyamatot, de biztostja a vektorkvantl kzel optimlis torztst.
Tbb megolds ltezik struktrlt, de ugyanakkor kedvez o torztssal rendelkezo
vektorkvantl tervezsre.
A fa-struktrj vektorkvantl alapelve az, hogy az L = K d kimeneti vek-
tor kzl a kzel optimlisat egy d mlysgu s K-adfok fa segtsgvel keressk
meg. Egy szint egy bejegyzse a kvetkez o szint egy K darab vektort tartalmaz
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.1. K VANTLS 211

s
s
s

s
s s

s
s
s

5.5. bra. Fa-struktrj vektorkvantl

halmazra mutat. gy sszesen legfeljebb ddlog Ke sszehasonltst kell vgrehaj-


tanunk a teljes keress K d sszehasonltsa helyett. Az 5.5. bra a d = 2, K = 3
esetet szemllteti, ahol az elso koordinta szerint alkalmazunk egy skalr kvant-
lt, majd rszintervallumonknt kln terveznk egy skalr kvantlt a msodik
koordintra.
Nhny alkalmazsban, mint pldul a beszdfeldolgozsban, a bemeneti jel
dinamikatartomnya szles skln vltozhat. Az ehhez szksges nagy kdtbl-
ban val keress helyett eloszr normljuk a vektort, majd kln-kln kvantljuk
a normalizlt vektort, s a normalizl faktort. A normalizl faktor a dinamika-
tartomnybeli helyet, vagyis az energit hatrozza meg, mg a normalizlt vektor a
jel formjt, gy ezt a technikt energiaforma vektorkvantlnak nevezzk.
Osztott vektorkvantls esetn a forrsvektorokat fggetlen osztlyokba so-
roljuk trbeli tulajdonsguk alapjn. A klnbz o osztlyokhoz klnbzo vek-
torkvantlkat terveznk. Ez a technika el onys pldul a kptmrtsben, ahol
az leket tartalmaz illetve nem tartalmaz tartomnyok kt eltr o osztlyt alkot-
nak.
Tbbszintu vektorkvantls esetn tbb menetben dolgozunk. El oszr egy
alacsony bitarny kvantlval elolltjuk a bemenet durva kzeltst, majd l-
psrol lpsre mindig az eredeti bemenet s az el ozo szint ltal elolltott kzelts
eltrst (a kvantlsi hibt) kvantljuk.
A kpek tbb nagyobb, kzel egysznu foltot tartalmaznak, gy jl mukdik
az a megolds, hogy a kppontok (blokkonknti) tlagt egy skalr kvantlval
kvantljuk, majd a kppontokbl kivonva ezt az tlagot egy vektorkvantlt alkal-
mazunk.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.2. T RANSZFORMCIS KDOLS 212

5.2. Transzformcis kdols


Ebben a szakaszban olyan technikt mutatunk be, amelynek segtsgvel a forrs
kimenett sszetevoire bonthatjuk, s ezen sszetevoket sajt, jellemzo karakte-
risztikjuk szerint kdoljuk.
A transzformcis kdols a vektorkvantls egy specilis esete. Az opti-
mlis vektorkvantl nagy szmtsi bonyolultsg, mg a struktrlt vektorkvan-
tl nem optimlis. A transzformcis kdol megksrli a kett ot tvzni: eloszr
transzformlja a jelsorozatot, majd a transzformlt sorozat komponenseit kvantlja
skalr kvantlkkal. Ez gy egytt egy struktrlt vektorkvantl. Ugyanakkor az
egyes komponenseket ms s ms finomsg skalr kvantlval kvantljuk, teht
a vektorkvantl reprodukcis vektorai egy olyan tbbdimenzis rcsot alkotnak,
melyet megkaphatunk egy tbbdimenzis tglatest eltolsaival.
A transzformcis kdols lpsei a kvetkez ok:

1. Osszuk fel a kdoland {x j } jelsorozatunkat k hossz diszjunkt blokkokra.


Minden egyes blokkra alkalmazzunk egy invertlhat transzformcit, mely
az {yi } sorozatot eredmnyezi.

2. Kvantljuk a transzformlt sorozatot skalrkvantlval. Az alkalmazott kvan-


tlsi stratgia fgg a kvnt bitsebessgt ol, a transzformlt sorozat kln-
bzo rszeinek eltro statisztikai tulajdonsgaitl s a megengedhet o torz-
tstl.

3. Kdoljuk a kvantlt rtkeket valamilyen kddal.

A tovbbiakban csak lineris transzformcival foglalkozunk. Ekkor a transz-


formlt sorozat a kvetkezo alakban ll elo:
k
yi = ai, j x j
j=1

Az {yi } sorozat elemeinek eloszlsa a sorozaton bell elfoglalt pozcitl, i-t ol


fgg. A transzformlt sorozat elemei eloszlsnak terjedelmt a 2i szrsngyzet-
tel mrjk. Ez fogja befolysolni, hogy hogyan kdoljuk a transzformlt sorozatot.
Az eredeti sorozat helyrellthat a transzformlt sorozatbl az inverz transz-
formcival:
k
x j = a1
j,i yi
i=1

Ugyanezek mtrixos alakban:


y = Ax
x = A1 y
ahol A s A1 k k-as mtrixok, melyek i, j-edik eleme a i, j illetve a1
i, j .
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.2. T RANSZFORMCIS KDOLS 213

A kptmrtsnl hasznlt ktdimenzis esetben a transzformci a kvetke-


zokpp nz ki:
Y = AXAT
s
X = AT YA,
ami akkor igaz, ha n. ortonormlt transzformcit alkalmazunk, amelynl a transz-
forml mtrix inverze megegyezik a transzponltjval: A 1 = AT .
Szerencss esetben az y egyes komponenseinek nagysgrendje klnbz o, te-
ht az egyes kvantlk klnbzo szm kvantlsi szintet hasznlnak. Ez a bit-
allokci problmja. Tegyk fel, hogy a k hossz blokk kdolsra M bitet sz-
nunk gy, hogy a j-edik kvantl M j bitet hasznlhat, azaz kvantlsi szintjeinek
szma 2M j . A skalr kvantl entrpija a H( f ) differencilis entrpitl fgg,
amely normlis eloszls esetn 12 log (2e2 ) (lsd az 5.6. feladatot). Az X lineris
transzformltjnak a komponensei nagy k blokkmret esetn a centrlis hatrel-
oszls ttel miatt kzeltoleg normlis eloszlsak, teht indokolt, hogy a j-edik
kvantl
M j = c + log (Y j ) (5.4)
bitet kapjon. Ekkor
k1
(c + log (Y j )) = M,
j=0

ahonnan a c konstans kiszmolhat:


k1
M log (Y j )
j=0
c= .
k
A gyakorlatban a diszkrt koszinusz transzformci (DCT) a legkedveltebb,
felhasznlja a JPEG s az MPEG ll- illetve mozgkptmrtsi szabvny is. k
k-as A mtrixnak elso sorban csupa 1k elem ll, mg az ez alatti elemek az
r  
2 (2 j 1)(i 1)
ai, j = cos
k 2k

kplettel szmolhatk.
Az egyszerubb diszkrt WalshHadamard-transzformci (DWHT) kisebb
szmtsignyu, de ltalban nem biztost olyan j tmrtsi hatsfokot, mint a
DCT. A transzforml mtrixot a kvetkez o rekurzival kapjuk:
 
A2k1 A2k1
A 2k =
A2k1 A2k1

A kiindul mtrix pedig: 


A1 = 1 .
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.2. T RANSZFORMCIS KDOLS 214

5.6. bra. Egy 16 16-os fekete-fehr kp, valamint DCT s DWHT transzfor-
mltja

5.7. bra. Egy 1616-os fekete-fehr szimmetrikus bra, valamint DCT s DWHT
transzformltja

gy pldul:    
A1 A1 1 1
A2 = =
A1 A1 1 1
A mtrixok kielgtik az A2k AT2k = 2k I felttelt, s a transzformci sorn ennek a
normalizltjval dolgozunk. A 8 8-as DWHT transzforml mtrixa gy a kvet-
kezo:
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1
A 23 =
23 8 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Az 5.6. brn egy 16 16 kppontbl ll fekete-fehr kp s annak DCT il-
letve DWHT transzformltja lthat. Mg az eredeti mtrix csak 0 s 1 rtkeket
tartalmaz, a transzformlt mtrixokban vals szmok szerepelnek, amelyeket szr-
kernyalatokkal jelentettnk meg. Az 5.7. brn egy tls vonalakbl ll kpen
lthatjuk ugyanezt. Megfigyelheto, hogy mindkt transzformci jl kihasznlja a
kp ismtlodseit, szimmetriit, hiszen a transzformltakban sok az egyforma elem
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV KDOLS 215

(fehr ngyzet). Ebben a specilis pldban a DWHT sokkal jobban teljest, mint
a DCT, hiszen a transzformltnak mindssze 4 eleme klnbzik a tbbit ol.
A transzformcis kdols leggyakrabban hasznlt megvalstsa a rszsvos
kdols. Alaptlete, hogy a jelet nem a teljes svszlessgben kdoljuk, hanem
frekvenciasvonknt.
A rszsvos kdols egy gyakorlati megvalstsa lthat az 5.8. brn. A for-
rs kimenett egy szurobankon visszk keresztl, amely a jelet az sszetev o frek-
venciasvokra bontja szt. A szur ok kimenetn kapott frekvenciasvok lehetnek
tlapoltak s nem tlapoltak (a teljes svot egyszeresen lefed ok). Ezutn mintav-
telezzk az egyes szurok kimeneteit. A mintavteli trvny szerint az elemi svsz-
lessgek ktszeresvel kell ezt megtennnk a visszallthatsg rdekben. Teht a
mintk szmt cskkenthetjk a szur ok kimenetn, hiszen itt kisebb a svszlessg,
mint a szurobank bemenetn volt. Ezt decimlsnak vagy alulmintavtelezsnek
(downsampling) nevezzk. A decimls mrtke a szur o bemenetn illetve kime-
netn lvo svszlessgek arnytl fgg. A decimls utn kvetkezik a kdols.
A kdolt jelet tkldjk a csatornn, majd annak tloldaln dekdoljuk. Fellmin-
tavtelezzk (upsampling), vagyis a mintk kz megfelel o szm 0-t illesztnk,
gy lltva vissza az eredeti msodpercenknti mintaszmot. Vgl egy szur oban-
kon vezetjk keresztl a jelet, amely elvgzi a fordtott transzformcit, s gy a
kimeneteit sszegezve kapjuk a vgleges jelet.
Felmerlhet a krds, hogy mirt j ez az egsz? Az emberi rzkszervek,
akr a hang, akr a (mozg)kp rzkels tern frekvenciafgg oek. Ezt a tnyt gy
hasznlhatjuk ki, hogy az rzkels szempontjbl fontos frekvenciasvok ponto-
sabb rekonstrukcijra treksznk, mg a kevsb fontos svokban nagyobb torz-
tst engednk meg. Msrszt az egyes szur ok kimenetnek szrsa eltro, ennek
megfeleloen rendre klnbzo szm bitet alloklhatunk a kvantlshoz az (5.4)
egyenlet szerint, s ezzel lnyeges tmrtst rhetnk el.

5.3. Prediktv kdols


A prediktv kdols alapelvt eloszr egy specilis esetben vezetjk be, amikor a
predikci az elozo minta. Ezt hvjuk klnbsgi kdolsnak.
A klnbsgi kdols alkalmazsa egy adatforrsra akkor el onys, ha a szom-
szdos mintk kzti eltrs nem tl nagy. Pldul digitlis kpek esetn a szom-
szdos kppontok kztti eltrs viszonylag kicsi, hacsak nem vagyunk egy l k-
zelben.
A kvetkezo plda rvilgt, hogy mit nyerhetnk a klnbsgi kdolssal a
memriamentes kdolshoz kpest, vagyis amikor a mintkat egymstl fggetle-
nl kdoljuk.

5.2. plda. Legyen egy 8 bites intenzits digitalizlt kp 8 egymst kvet o pixe-
lnek rtke:
147, 145, 141, 146, 149, 147, 143, 145.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV
KDOLS
 
1. analzis 1. szintzis
 
M 1. kdol 1. dekdol M
szuro szuro

 
2. analzis 2. szintzis
 
M 2. kdol 2. dekdol M
szuro szuro

 
3. analzis 3. szintzis
 
M 3. kdol 3. dekdol M
szuro szuro

csatorna
.. .. .. .. .. ..
 
. . . . . .
M. analzis M. szintzis
 
M M. kdol M. dekdol M
szuro szuro

5.8. bra. Rszsvos kdol

216
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV KDOLS 217

Ha ezeket pontrl pontra kdoljuk, egyenknt 8 biten, akkor ehhez 64 bit szk-
sges. Vegyk azonban a kdols elott ezen intenzitsok klnbsgt oly mdon,
hogy az elso kppont rtkt vltozatlanul hagyjuk, majd minden tovbbi pixel
esetn azt az rtket troljuk, amelyet az el ozo kppont intenzitshoz hozzadva
a sajt intenzitst kapjuk. Esetnkben ez a kvetkez o lesz:

147, 2, 4, 5, 3, 2, 4, 2.

Vilgos, hogy az eredeti sorozat helyrellthat a msodik sorozatbl. A kapott


sorozatot egyszeruen vezessk t egy sszegz on.
Eloszr 8 biten tkldjk a dekdolnak, hogy a klnbsgeket hny biten
fogjuk brzolni (ez fgg a legnagyobb megjelentend o rtktol), majd szintn 8
biten tkldjk az elso (vltozatlan) adatot. Esetnkben a legnagyobb klnbsgi
rtk az 5, ezrt 4 biten fogjuk tkldeni a differencikat (1 el ojelbit + 3 adatbit).
gy sszesen 8 + 8 + 7 4 = 44 bitet hasznlunk fel, ez 30 %-kal jobb tmrtsi
arnyt jelent.

A klnbsgi kdols hatkonysgt nvelhetjk predikci alkalmazsval,


vagyis a mltbl megbecsljk a jelent, majd a jelen s a predikci klnbsgt
kdoljuk. Ezt az elvet alkalmazza a vesztesgmentes JPEG kptmrt o (lsd k-
sobb).
Sajnos vesztesges tmrts esetn nem ilyen egyszeru a helyzet: nem igaz,
hogy adott hibahatron bell helyrellthat ily mdon az eredeti sorozat. Legyen
a forrs kimenete:

6.2, 9.7, 13.2, 5.9, 8, 7.4, 4.2, 1.8.

Kpezzk a klnbsgeket:

6.2, 3.5, 3.5, 7.3, 2.1, 0.6, 3.2, 2.4.

A vesztesges tmrtshez hasznljunk egy 7 szintu kvantlt a kvetkez o kime-


neti szintekkel: 6, 4, 2, 0, 2, 4, 6. A kvantlt rtkek:

6, 4, 4, 6, 2, 0, 4, 2.

Ha most megprbljuk az eredeti sorozatot helyrelltani a szoksos mdon, a

6, 10, 14, 8, 10, 10, 6, 4

rtkeket kapjuk. Az eredeti s a rekonstrult sorozat kztt az eltrsek:

0.2, 0.3, 0.8, 2.1, 2, 2.6.

Lthat, hogy egyre hosszabb sorozatokat vizsglva a hiba folyamatosan n ohet.


Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV KDOLS 218

Vizsgljuk meg ezt az szrevtelt ltalnos esetben! Legyen a bemeneti soroza-


tunk {xn }. A klnbsgi sorozat {dn }, ahol dn = xn xn1 . A klnbsgi sorozatot
kvantljuk, s gy kapjuk {dbn }-ot:

dbn = Q(dn ) = dn + qn

ahol qn a kvantlsi hiba. A vevo oldaln a rekonstrult sorozatot, {b


x n }-ot gy
kapjuk, hogy a kvantlt klnbsget hozzadjuk az el ozo rtkhez:

xbn = xbn1 + dbn

Ttelezzk fel, hogy az ad s a vevo ugyanarrl az rtkrol indul, teht x0 = xb0 .


A kvantls s a rekonstrukci elso nhny lpse:

d1 = x 1 x 0
db1 = Q(d1 ) = d1 + q1
xb1 = xb0 + db1 = x0 + d1 + q1 = x1 + q1
d2 = x 2 x 1
db2 = Q(d2 ) = d2 + q2
xb2 = xb1 + db2 = x1 + q1 + d2 + q2 = x2 + q1 + q2 .

Tovbb folytatva, az n-edik lps utn:


n
xbn = xn + qk .
k=1

Teht a kvantlsi hiba felhalmozdik.


Vegyk szre, hogy a kdol s a dekdol klnbz o adatokon hajt vgre mu-
veleteket! A kdol az eredeti sorozat klnbsgeit generlja, mg a dekdol a
kvantlt klnbsgekkel dolgozik. thidalhatjuk ezt a problmt, ha az adt s a
vevot rknyszertjk, hogy azonos adatokon dolgozzanak. A vev o az eredeti {xn }
sorozatrl csak a rekonstrult {bxn } sorozatbl szerezhet informcit. Ez utbbi
viszont az adnak is rendelkezsre ll, gy a klnbsgkpzs muvelett a kvet-
kezokppen mdosthatjuk:
dn = xn xbn1 .
Ezt felhasznlva az elozo lpseink gy mdosulnak:

d1 = x 1 x 0
db1 = Q(d1 ) = d1 + q1
xb1 = xb0 + db1 = x0 + d1 + q1 = x1 + q1
d2 = x2 xb1
db2 = Q(d2 ) = d2 + q2
xb2 = xb1 + db2 = xb1 + d2 + q2 = x2 + q2 .
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV KDOLS 219

+ mdn-
xn - dbn - + m
dbn - xb-
n
kvantl

pn 6 +
pn 6
pn + m
-
?
+ prediktor 

xbn dekdol
prediktor 

kdol

5.9. bra. DPCM

ltalnostva:
xbn = xn + qn ,
teht a kvantlsi hiba nem akkumulldik.
Az a clunk, hogy minl kisebb klnbsgi rtkeket kapjunk. Ehhez x n rt-
kt nem csak xbn1 segtsgvel becslhetjk, hanem a rekonstrult sorozat el ozo
rtkeinek fggvnyvel is. Az ezt megvalst eszkz a prediktor:
pn = f (b
xn1 , xbn2 , . . . , xb0 ).
Itt a klnbsgkpzs a
dn = x n p n
kifejezssel trtnik. Tovbb a kvantlt klnbsg
dbn = dn + qn ,
s a reprodukci
xbn = dbn + pn .
Az eredo torzts ebben az esetben sem halmozdik. Az eddig elmondottakat meg-
valst rendszer az 5.9. brn lthat, az eljrs neve klnbsgi impulzuskd
modulci (differential pulse code modulation, DPCM). Az eljrst a Bell La-
boratriumban dolgoztk ki a 40-es vek vgn, s f oknt a beszdkdolsban
terjedt el, gy szleskruen hasznljk a telekommunikciban.
A klnbsgi kdol rendszerek, mint a DPCM, azzal rik el cljukat, vagyis
a tmrtst, hogy cskkentik a bemeneti sorozat szrst s dinamikatartomnyt.
A szrs cskkentse attl fgg, hogy a prediktor mennyire jl tudja becslni a
kvetkezo szimblumot az elozoleg rekonstrultakbl.
A bemeneti jelek tulajdonsga vltozhat az id oben. Ehhez tud alkalmazkodni
az adaptv DPCM (ADPCM) rendszer. Az alkalmazkods trtnhet a kdol be-
menetre rkezo jel (xn ) alapjn, ekkor elore adaptv mdszerrol beszlnk, vagy
a kimenet (b xn ) alapjn, ez a htra adaptv mdszer. El ore adaptv esetben, mi-
vel a dekdolnak nem ll rendelkezsre a kdol bemeneti jele, ezrt a rend-
szer mdostott paramtereit is t kell vinni. Htra adaptv esetben ilyen problma
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV KDOLS 220

nem merl fel, hiszen a kdol kimenett megkapja a dekdol. Az el ore adaptv
mdszer megkveteli, hogy puffereljk a bemenetet, ezzel ksleltetst visznk a
rendszerbe, ami pldul beszdkdols esetn nem szerencss. Ugyanis egyetlen
kdoldekdol pr esetn mg elviselhet o a ksleltets mrtke, azonban egy
telefonkapcsolatban szmos DPCM kdol s dekdol vehet rszt (pl. a nagy t-
volsg miatt), s ekkor az eredo ksleltets mr jelentos lehet.
Elore adaptv kvantl esetn a bemenetet blokkokra bontjuk, minden lpsben
kiszmoljuk az aktulis blokkra optimlis kvantl paramtereit, s tkldjk a de-
kdolnak kiegszto informciknt. Beszdkdols esetn a tipikus blokkhossz
16 ms, ami 8000 minta/msodperc esetn 128 mintt jelent, mg kptmrts so-
rn ltalban 8 8 pixeles blokkokat hasznlnak.
A gyakorlatban inkbb a Jayant-kvantl nven ismert htra adaptv mdszert
hasznljk. Itt minden egyes kvantlsi intervallumhoz egy szorztnyez ot rende-
lnk, amely a kvantl belso (orighoz kzeli) tartomnyainl 1-nl kisebb, mg
a klso rszeken 1-nl nagyobb. A tnyezok ltalban az origra szimmetrikusan
helyezkednek el. Annak fggvnyben, hogy az aktulisan kvantlt rtk melyik
intervallumba esik, ezen intervallum szorztnyez ojvel korrigljuk a lpskz r-
tkt. Ha a kvantlt rtk kicsi, akkor finomtjuk a lpskzt, mg nagy rtkek
esetn nagyobb lpskzt fogunk alkalmazni.

5.3. plda. Az 5.10. bra egy 8 szintu kvantlt brzol. Legyenek az egyes inter-
vallumok szorztnyezoi: M1 = M8 = 1.2, M2 = M7 = 1, M3 = M6 = 0.9, M4 =
M5 = 0.8, a kezdeti lpskz pedig 0 = 0.5. A kvantland sorozat: 0.1, 0.2,
0.2, 0.1, 0.2, 0.5, 0.9, 1.5, 1.0, 0.9, . . .. Az els o bemeneti adatot a kezdeti 0.5
lpskzzel az 5. szintre kvantljuk, a kimenet rtke 0.25 lesz, a hiba 0.15. gy az
j lpskz 1 = M5 0 = 0.8 0.5 = 0.4 lesz. A kvetkezo adat a 4. intervallumba
esik, most a lpskz 0.4, teht a kimeneten 0.2 jelenik meg, s a lpskz j r-
tke 2 = M4 1 = 0.32. gy folytatva az eljrst, az eredmny tblzatos formban
az 5.11. brn lthat.
Vegyk szre, hogyan alkalmazkodik a kvantl az inputhoz. Kezdetben a
bemeneti rtkek kicsik, ezrt a lpskz folyamatosan cskken, ezzel egyre jobb
kzeltst biztostva. Majd nagyobb bemeneti rtkek kvetkeznek, gy a lpskz
is nvekszik. Megfigyelhetjk, hogy a hiba rtke viszonylag nagy az tmeneti
szakaszban.

A kvantlsi lpskzt a konkrt megvalstsok termszetesen vges pontos-


sggal brzoljk, ezrt el kell kerlnnk azt a szitucit, hogy a lpskz folyama-
tos cskkentsvel, az nullv vljon. Be kell vezetnnk egy min rtket, amelynl
nem vlasztjuk kisebbnek a lpskzt. Hasonl okok miatt egy max is szksges.
A DPCM egyszerubb formja, a delta modulci (DM). Ez egy 1 bites (2
szintu) kvantlval rendelkezo DPCM. A 2 szintu kvantlval csak kimeneti
rtkeket llthatunk elo, vagyis (egy folytonos jel mintavtelezsvel add) kt
minta kztti eltrst csak ezzel reprezentlhatjuk. Amennyiben egy adott beme-
neti sorozatban a mintk kztti klnbsg nagyon eltr -tl, a kimeneten egy
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV KDOLS 221

6
kimenet

8
7/2
7
5/2
6
3/2
5
3 2 /2
-
4 2 3 bemenet
/2
3
3/2
2
5/2
1
7/2

5.10. bra. Jayant-kvantl 8 kvantlsi szinttel

szint szint
n n bemenet szma rtke hiba j lpskz
0 0.5 0.1 5 0.25 0.15 1 = M5 0
1 0.4 0.2 4 0.2 0.0 2 = M 4 1
2 0.32 0.2 5 0.16 0.04 3 = M5 2
3 0.256 0.1 5 0.128 0.028 4 = M5 3
4 0.2048 0.3 3 0.3072 0.0072 5 = M3 4
5 0.1843 0.1 5 0.0922 0.0078 6 = M5 5
6 0.1475 0.2 6 0.2212 0.0212 7 = M6 6
7 0.1328 0.5 8 0.4646 0.0354 8 = M8 7
8 0.1594 0.9 8 0.5578 0.3422 9 = M8 8
9 0.1913 1.5 8 0.6696 0.8304 10 = M8 9
10 0.2296 1.0 8 0.8036 0.1964 11 = M8 10
11 0.2755 0.9 8 0.9643 0.0643 12 = M8 11

5.11. bra. A 5.3. plda vgeredmnye


Kdolstechnika - 2006 - crysys web vltozat - 6.

5.3. P REDIKTV KDOLS 222

r r r r r r r r r r r r
r
r r
r r
r
r r

r
r
r
r
r r r r r
r r r r r r

5.12. bra. Lineris delta modulci

lland torzts jelentkezik. Ezt gyakoribb mintavtelezssel ellenslyozhatjuk. A


DM rendszerekben a legnagyobb elofordul frekvencinak nem csak a ktszere-
svel, hanem akr a szzszorosval is mintavteleznek a torzts alacsony szinten
tartsa vgett (pldul j minosgu A/D talaktkban, 1 bites talaktk).
A fix lpskzu kvantlt tartalmaz DM rendszereket lineris delta modul-
tornak nevezzk. Az 5.12. brn (folytonos vonal) megfigyelhetjk, hogy torzts
kt okbl jelentkezik. Azokon a rszeken, ahol a bemenet hozzvet oleg konstans,
a kimenet oszcilll -val (granular regions). Ezt a hibt cskkentsvel kompen-
zlhatjuk. Azokban a tartomnyokban, ahol a bemenet tl gyorsan nvekszik vagy
cskken, a kimenet nem tud lpst tartani (slope overload regions), ezrt ezen a
lpskz nvelsvel segthetnk. Lthat, hogy a ktfle torzts egyideju javtsa
ppen ellenttes feltteleket tmaszt -ra vonatkozan, ezrt fix lpskzzel nem
oldhat meg.
Ezen segt a lpskz adaptv megvlasztsa. A kzel konstans tartomnyok-
ban kis lpskzt vlasztunk, mg gyors vltozsok esetn nveljk -t. A bemenet
loklis tulajdonsghoz alkalmazkod rendszerek kzl az egyik legkedveltebb a
konstans faktorral alkalmazkod delta modultor (constans factor adaptive delta
modulation, CFDM). A legfontosabb feladat annak megllaptsa, hogy ppen mi-
lyen jellegu tartomnyban vagyunk. A kzel lland rszeken a kvantl kimenete
majdnem minden mintnl elojelet vlt, mg a gyorsan vltoz intervallumokban a
kimenet elojele lland. A legegyszerubb esetben csak a megel ozo mintig tekin-
tnk vissza a tartomny jellegnek eldntsre. Jelljk s n -nel a delta modultor
n-edik idoegysgbeli lpst s n -nel az itt rvnyes lpskzt (sn = n ). Ek-
kor az n + 1-edik idoegysgbeli lpskzt a kvetkezokppen kapjuk:

M1 n , ha sgn sn = sgn sn1
n+1 =
M2 n , ha sgn sn 6= sgn sn1

ahol 1 < M1 = M12 < 2. Az 5.12. brn szaggatott vonallal brzoltuk az adap-
tv delta modultor kimenett, amelynek paramterei: M 1 = 1.8, min = 0.250 ,
max = 2.50 . A memria nvelsvel, vagyis pldul 2 mintra visszatekintve
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 223

tovbb cskkentheto a torzts:




M1 n , ha sgn sn2 6= sgn sn1 6= sgn sn

M2 n , ha sgn sn2 = sgn sn1 6= sgn sn
n+1 =

M , ha sgn sn2 6= sgn sn1 = sgn sn
3 n
M4 n , ha sgn sn2 = sgn sn1 = sgn sn

ahol pl. M1 = 0.4 < M2 = 0.9 < M3 = 1.5 < M4 = 2.0.


A beszdkdolsban kvnatos, lassabb alkalmazkodst tesz lehet ov a foly-
tonosan vltoz meredeksgu delta modulci (continuously variable slope delta
modulation, CVSD). Ez cskkenti a kzel konstans esetben elkvetett hibt, vi-
szont nveli a gyors vltozsok esetn bekvetkez o hibt. Az adaptv lpskz
szmtsra szolgl kplet:

n+1 = n + n 0 ,

ahol egy 1-nl alig kisebb konstans, n rtke pedig 1, ha a kvantl legutbbi K
darab kimeneti rtkbol J darabnak azonos volt az elojele, egybknt 0. Teht egy
K hossz ablakon keresztl figyeljk a bemenetet, s ebb ol kvetkeztetnk annak
loklis viselkedsre. Jellemzo rtkek: J = K = 3.

5.4. Alkalmazsok

Beszdtmrts

A beszdtmrto eljrsok terletn eroteljes fejlods volt megfigyelheto az


elmlt vtizedekben. A minl alacsonyabb bitsebessg mellett minl jobb min o-
sgu hang tvitelnek ignye foleg a vezetkes tvkzls, majd jabban a mobil
tvkzls rszrol fogalmazdott meg. Kezdetben az eddigiekben megismert lta-
lnos cl eljrsokat alkalmaztk.
Az ismertetsre kerlo megoldsokat a nyilvnos tvkzl ohlzatokban hasz-
nlt impulzuskd modulcihoz (Pulse Code Modulation, PCM) hasonltjuk. Ha-
trozzuk meg ennek bitsebessgignyt! A telefon-min osg viszonylag kis sv-
szlessggel is beri. Az analg 3.4 kHz svszlessgu beszdjelb ol (nmi rtarts-
sal) msodpercenknt 8000 mintt vesznk, s 8 bittel kvantljuk, gy 80008 = 64
kbps-ot kapunk. Az 1972-ben megjelent G.711-es tvkzlsi szabvny logaritmi-
kus PCM kdolst hasznl, azaz kompanderes kvantlt (mint err ol az 5.1. sza-
kaszban sz volt: -law, A-law).
A beszdtmrtssel szemben tmasztott megnvekedett kommunikcis
igny elkerlhetetlenn tette egy j eljrs kifejlesztst, amelynek kisebb a bit-
sebessgignye, de emellett j min osgu, jl rtheto beszdtvitelt tesz lehetov.
A kvnalmaknak megfelel az 1984-es G.721 szabvny, amely 32 kbps-os tviteli
sebessgvel megduplzta a kiptett vonalakon folytathat beszlgetsek szmt.
A G.721 adaptv klnbsgi kdolson (ADPCM) alapul. Kihasznlja az emberi
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 224

beszd klnbzo idopontokban megfigyelt minti kztti hossz- s rvidtv


korrelcit (220 ms). A kvantlsi lpcs ok mrett az elozo mintk alapjn vl-
toztatja. A kdol ksleltetse kisebb mint 2 ms, s szmos kzponton keresztl-
halad jel esetn is megfelelo minosget biztost.
A mobiltelefniban tovbbi tmrtsre van szksg. Ezt rszben a fenti el-
jrsok finomtsval, rszben ms technikval rhetjk el. Ezek a mdszerek az
emberi hangkpzs modelljt hasznljk fel. A hangszalagok zngt (alaphangot)
kpeznek, majd a hangkpzo t modullja azt. A mestersges hangkpzshez te-
ht elo kell lltanunk egy gerjeszto jelet, s ezt kell modullnunk a hangkpz o t
szerepnek megfeleloen.
A kdol a beszdet szegmensekre osztja, s minden szegmensre meghat-
rozza a gerjeszto jelet, valamint a hangkpzo utat modellezo szuro paramtereit.
A szintetizlt beszdtmrtok esetn a gerjeszto jelet nem kldjk t, csak n-
hny paramtert, s ebbol a dekdol elolltja a megfelelo gerjeszto jelet, majd
ezzel hajtja meg a sajt szurobankjt, amelynek paramtereit a kapott adatoknak
megfeleloen lltotta be.
A tmrtendo beszd minden szegmenst egy svszur o bankon vezetjk ke-
resztl, amelyet analzis szuronek neveznk. Az analzis szuro kimenetnek ener-
gijt meghatrozott idokznknt (ltalban msodpercenknt 50-szer) mintav-
telezzk, s tkldjk a dekdolnak. (Az emberi beszd kb. 20 ms-os egys-
gen bell stacionriusnak tekinthet o.) Digitlis esetben az energit kzelthetjk a
szuro kimeneti jelnek tlagos ngyzetsszegvel, mg analg esetben a jel burko-
lgrbjnek mintavtelezsvel rhetnk clt. Az energia meghatrozsval egy-
idejuleg azt is el kell dnteni, hogy az adott beszdszegmens zngs vagy zngtlen
hangot tartalmaz-e. A zngs hangok lperiodikus viselkedst mutatnak, az alap-
harmonikus frekvencijt hangmagassgnak hvjuk. A kdol a becslt hangma-
gassg rtkt szintn tkldi a dekdolnak. A zngtlen hangok zajszeru szerke-
zetet mutatnak. A szintetizlt beszdtmrtst tekinthetjk egy olyan vektorkvan-
tlsnak, ahol a kvantlst az egyes szegmensek Fourier-transzformltjainak a te-
rben vgezzk.
A dekdolban a hangkpzo szerveket svszuro bankkal modellezzk, ez a
szintzis szuro, amely megegyezik az analzis szur ovel. Annak megfeleloen, hogy
zngs vagy zngtlen hangot kell-e visszalltani, a szintzis szur o bemeneteknt
egy, a hangmagassgnak megfelelo periodikus jelgenertort vagy egy lzajgener-
tort hasznlunk. A jel amplitdjt a becslt energinak megfelel oen lltjuk be.
A hangkpzo t egy vltoztathat mretu rezontorregknt foghat fel, ezrt
szmos rezonanciafrekvencia lehetsges, de nem az sszes frekvenciasszetev o
egyformn fontos. A rezonanciafrekvencikat formnsoknak nevezzk. A for-
mns frekvencija hangonknt eltr o, de frfiak esetn 200800 Hz, mg n ok ese-
tn 2501000 Hz kztti tartomnyba esik. Ezt a jellemz ot hasznlja fel a formns
beszdkdol, amely meghatrozza a formnsok rtknek kzeltst (ltalban 4
formns megklnbztetse elegend o), valamint ezek svszlessgt, majd a vev o
oldalon a gerjeszto jelet hangolhat szurokn vezetik keresztl, amelyeket a for-
mnsok frekvencijra s svszlessgre hangolnak.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 225

Lineris prediktv kdols (LPC) esetn egy lineris szur ot hasznlunk, mely
az {ai } egytthatk optimlis megvlasztsval az el ozo mintk alapjn prbl
becslst adni az aktulis mintra gy, hogy a ngyzetes torzts minimlis legyen:
M
xn = ai xni + Gn , (5.5)
i=1
ahol G a szuro energija (gain), n pedig a klnbsgi jel.
Az LPC-nek kt vltozata van. Az egyszerubb, nem-szintetizlt esetben (ez
mg hagyomnyos eljrsnak tekinthet o abban az rtelemben, hogy nem hasz-
nlja fel az emberi beszd modelljt) kzvetlenl a klnbsgi jel mintavtelezett
rtkt (n ) kldjk t a vevonek. Ekkor (5.5)-ben xn helyn az 5.3. szakaszban
megismert mdon a reproduklt xbn rtkek llnak.
A jobb tmrtsu mdszer a vevooldalon szintetizlt beszdet llt el o, vagyis
csak a szuro {ai } paramtereit s a G energit kell tkldennk, s ebb ol gene-
rlja a vevo a sajt szurojvel a beszdet gy, hogy az n sorozatot helyettesti egy
mestersges gerjeszto jelsorozattal.
Az LPC10 algoritmus esetn a kdolnak a kvetkez o adatokat kell tkl-
denie: zngs vagy zngtlen-e a hang (1 bit); hangmagassg, amelyet 60 lehet-
sges rtkre kvantlnak egy logaritmikus karakterisztikj kompanderes kvantl
segtsgvel (6 bit); hangkpzo utat modellezo szuro paramterei, amely zngs
esetben 10-edrendu, mg zngtlen esetben 4-edrendu predikcit jelent (31 ill. 10
bit a szuro egytthatira s 5 bit az energira). A szur o nagyon rzkeny az 1-hez
kzeli egytthatk hibjra. Mivel az els o nhny egytthat ltalban 1-hez k-
zeli, ezrt a szabvny nemegyenletes kvantlst r el o ezekre. A zngtlen esetben
fennmarad 21 bitet hibavdelemre hasznljk. A szinkronizcihoz szksges 1
tovbbi bittel egytt ez sszesen 54 bitet tesz ki. Egy szegmens hossza 22.5 ms,
teht az LPC10 algoritmus 2.4 kbps tvitelt teszi szksgess.
A dekdol zngs szegmens esetn a szur o gerjesztojeleknt egy elore trolt
hullmformt hasznl. A hullmforma 40 minta hosszsg (a mintavtelezs 8
kHz-cel trtnik), ezrt a hangmagassgtl fgg oen csonkolja vagy nullkkal tlti
ki. Ha a szegmens zngtlen, akkor a szur ot egy lvletlen genertor jelvel hajtja
meg (fehr Gauss-zaj). Az LPC10 kdol rthet o, de nem tl j minosget biztost
2.4 kbps bitsebessgen. Az, hogy csak ktfle gerjeszt ojelet alkalmaz a szuro be-
meneteknt, gpi jellegu hangot eredmnyez. Ez klnsen zajos krnyezet esetn
jelent problmt, ugyanis a kdol a krnyezeti zaj miatt a zngs szegmenseket is
zngtleneknek fogja nyilvntani.
A termszetesen hangz beszd elolltsnak egyik legfontosabb sszetev oje
a gerjesztojel, ugyanis az emberi fl klnsen rzkeny a hangmagassg hibjra.
Az LPC gyenge pontjt kszblik ki a szinuszos kdolk. Ezek gerjeszt ojel-
knt szinuszos sszetevoket hasznlnak. Egy elemi sszetev ot hrom paramter
hatroz meg: az amplitd, a frekvencia s a fzis. Ezek kzl, ha a jelet egy li-
neris szuron vezetjk keresztl, a frekvencia nem vltozik. Mivel a hangkpz o t
modellezsre hasznlt szintzis szur o lineris, ezrt ezen egy szinuszos jelet tve-
zetve csak az amplitd s a fzis vltozik. Megllapthatjuk, hogy a gerjeszt o jel
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 226

lershoz szksges paramterek szma megegyezik a szintetizlt beszdet repre-


zentl paramterek szmval. gy ahelyett, hogy kln-kln kiszmtannk s
tvinnnk a gerjeszto jel s a hangkpzo t szurojnek paramtereit s a gerjeszto-
jelet tvezetnnk a szuron, megtehetjk, hogy kzvetlenl a beszdet lltjuk el o a
vevo oldalon a szinuszos sszetevokbol.
A szinuszos kdolk is szegmensekre bontjk a beszdet. Amennyiben a vev o
oldalon egy-egy szegmensen bell a tbbit ol fggetlenl szintetizljuk a beszdet,
gy az a hatrokon nem lesz folytonos, ami jelent osen rontja a minosget. Ezrt a
szinuszos kdolk klnbzo interpolcis algoritmusokat hasznlnak a szegmen-
sek kztti tmenetek finomtsra.
Azonban ez mg nem elg, mert hiba kzeltjk jl a hangmagassgot, amg
a hangkpzo utat modellezo szuro bemenetre periodikus jelknt csak egyetlen
frekvenciasszetevobol ll jelet adunk (ahogyan LPC esetn tesszk), addig csak
zmmgo orrhangot kapunk. Ezt a problmt oldjk meg a szintzis ltali anal-
zis alap kdolk, amelyek a gerjeszt o jelet egy optimalizl hurokban hatrozzk
meg. A kdol egyben dekdolt is tartalmaz, amely a szintzist vgzi. Az gy
szintetizlt jelbol kivonja a bemeno jelet, s az eloll hibajelet minimalizlja. A
szintzis ltali analzis alap kdolk egyike a tbbfrekvencis lineris predik-
tv kdol (MultiPulse Linear Predictive Coding, MultiPulse Excitation, MPE)
eljrs, amely minden szegmensben egyidejuleg tbb frekvenciasszetev ot hasz-
nl. A lehetsges frekvenciasszetev o-mintt egy kdtblbl vlasztja ki oly-
mdon, hogy a valdi s a szintetizlt beszdszegmens kztti, az emberi halls
tulajdonsgainak megfeleloen slyozott eltrs minimlis legyen (ez egy specilis
vektorkvantlnak tekintheto). Az MPE 6.4 kbps tviteli sebessggel j min osgu
beszdet produkl. Ennek tovbbfejlesztett vltozata a kddal gerjesztett line-
ris prediktv kdol (Code Excited Linear Prediction, CELP), ahol a lehetsges
mintkat tartalmaz (szuk) kdtbla helyett szmos gerjeszet ojelet engednk meg
(egy nagyon nagy mretu sztochasztikusan kitlttt kdtblt hasznlunk). Minden
szegmens esetn a kdol megkeresi azt a gerjeszt ovektort, amelynek alkalmaz-
sval a legtkletesebb szintetizls lehetsges. A CELP j min osgu beszdet
biztost 4.8 kbps-os sebessggel, annak rn, hogy kimert o keresst kell vgezni
egy tipikusan 1024 mretu kdtblban.
A GSM rendszer teljes sebessgu kdolsa az MPE-hez hasonl mdszeren,
a szablyos impulzus gerjesztsen (Regular Pulse Excitation, RPE) alapul. MPE
esetn egy rvid periduson bell (515 ms) meghatrozott szm (M db) impul-
zust adunk. Egy adott impulzus amplitdjt s helyt az el ozo M darab impulzus
alapjn hatrozzuk meg. RPE esetn az impulzusok szma szintn rgztett, s
az MPE-vel szemben ezek helye sem vlaszthat szabadon. Ezltal szuboptimlis
megoldshoz jutunk, de egyben egyszerusdik is a kdol. Az RPE-n alapul r-
vid ideju szintzis szurot a GSM rendszer egy hossz ideju becsl o hurokkal (Long
Term Prediction) egszti ki. (Ez a kzepes bitsebessgu kdolk, mint pl. az RPE
esetn nem ltfontossg, de ltalban alkalmazzk a min osg nvelse rdek-
ben.) 8000 minta/s mintavtelezsi sebessg mellett 13 kbps-os kdsebessget
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 227

biztost, ugyanis 20 ms-onknt 260 bitnyi paramtert (tmrtett informcit) llt


elo.
A GSM flsebessgu kdolsa a CELP csaldba tartoz vektorsszeggel ger-
jesztett lineris prediktv kdol (Vector-Sum Excited Linear Prediction, VSELP)
megoldson alapul. A gerjesztsre a kdtblbl szrmaz rtkek szolglnak, me-
lyek rszben rgztettek, rszben adaptv jelleguek. A zngs jelleg mrtknek
vizsglata alapjn a kdol elrendezse ngyfle lehet. A 0 kategria jelenti a zn-
gtlen, az 13 pedig az egyre nvekv o mrtkben zngs jellegu beszdszegmenst.
A struktra 5 ms-os n. alkeretenknt vltozhat. A kdtblban kimert o keresst
alkalmaznak az alkeretenknti gerjeszt osorozat meghatrozshoz, s a minimlis
hibajelet ad gerjeszto kdot vlasztjk ki. Ha a beszd zngs, akkor hossz ideju
becslot is alkalmaznak. (Ez a kis bitsebessgu kdolknl, mint pl. a VSELP nl-
klzhetetlen.) A flsebessgu kdol a teljes sebessgu vltozat 260 bitje helyett
szegmensenknt csak 112 bitet hasznl, ez 5.6 kbps-nak felel meg.

Hangtmrts

Az elozoekben az emberi beszd minl gazdasgosabb, minl kisebb bitsebes-


sget ignylo tvitelre koncentrltunk. Azonban a tovbbtand vagy troland
hanginformci termszetesen nemcsak beszd lehet, hanem pldul zene is. Az
ezen a terleten hasznlhat mdszereket tekintjk t az albbiakban.
A hangtmrtsben mrcnek szmt CD-min osg azt jelenti, hogy 44100
Hz-cel mintavteleznk. Ez a mintavteli ttel rtelmben a legfeljebb 22050 Hz
frekvencij hangok visszalltst teszi lehet ov (valjban mintavtelezs elott a
20 kHz-es svra szurnek). A mintkat 16 bites kvantlval kvantljuk. Ez 44100
16 2 1.4 Mbps tviteli sebessget ignyel (a 2-es szorz a sztere tvitel 2 kln
csatornja miatt kell).
A vesztesgmentes tmrtsi mdok (pl. Huffman-kdols, LZW) itt nem iga-
zn hatkonyak, az eredmny ltalban az eredeti mretnek 90 %-a krl van.
A modern, hangtmrtsre kifejlesztett eljrsok az emberi halls sajtoss-
gait kihasznlva rnek el az ltalnos cl mdszereknl jobb tmrtsi arnyt,
gy amellett, hogy vesztesges eljrsok, a vesztesg mrtke nem is egyenletes
sem a frekvencia-, sem az idotartomnyban. Mivel itt a kzel tkletes hang visz-
szalltsa a cl, ezrt a hangtmrtsben nem megengedett a szintetizls.
Az emberi halls tartomnya 20 Hz 20 kHz, a legnagyobb rzkenysge 2 s
4 kHz kztt van, felbontsa (a kvantlsi lpcs o) frekvenciafggo. Ebbol kvet-
kezoen kt azonos intenzits, de klnbz o frekvencij hang klnbzo hangos-
sgrzetet kelt a hallgatban, s azokban a tartomnyokban, amelyekben flnk
kevsb rzkeny, jobban elviseljk a torztst. Hallsunkra jellemz o kt elfedsi
jelensg. Az egyik a frekvenciatartomnybeli elfeds, melynek lnyege, hogy egy
adott frekvencij, nagy intenzits hang (maszkol hang) a vele egy id oben szl
s kzeli frekvencin lvo kisebb intenzits hangokat elfedi, vagyis azok nem
hallhatak. A msik az idotartomnybeli elfeds: egy adott frekvencij nagy
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 228

intenzits hang a kzeli frekvencin lv o kisebb intenzits hangokat nemcsak


akkor fedi el, amikor egytt szlnak, hanem kis ideig mg a nagy intenzits hang
bekapcsolsa elott (kb. 2 ms-ig) vagy kikapcsolsa utn (kb. 15 ms-ig) sem halljuk
a kisebb intenzitsakat.
Mivel az emberi halls legjobban a frekvenciatartomnyban modellezhet o, ezrt
a hangtmrto eljrsok frekvenciatartomnybeli analzissel dolgoznak. A fentiek
alapjn nem minden frekvenciasszetev ot kell tvinni, s a kdolandkat sem azo-
nos pontossggal kell kvantlni.
Az eredetileg mozgkptmrtsre kifejlesztett MPEG1 szabvny hangtm-
rto rsze jl kihasznlja az emberi halls sajtossgait. A hangtmrtsre hrom
hasonl eljrst definil, s ezeket Layer 1,2,3-nak nevezi.
Az egyszerubb Layer 1 s 2 eljrs analzis szur obankja a bemeneti jelet 32
rszsvba kpezi le. A mintavtelezs 32, 44.1 vagy 48 kHz-cel trtnhet. Ezutn
rszsvonknt egy transzformcis kdols kvetkezik. A maszkol s a masz-
kolt hang(ok) eltrst (Signal-to-Mask Ratio, SMR) Layer 1 esetn 512 pontos,
mg Layer 2 esetn 1024 pontos gyors Fourier-transzformcival (FFT) szmtja.
Mindkt mdszer 12 mintt (keret) kdol egytt minden svban, de a Layer 2 a
megelozo s a kveto 12 mintt is megvizsglja az idobeli maszkolshoz, valamint
a sklafaktorokat is hatkonyabban kdolja. Dinamikus bitallokcival kivlasztja
a lehetsges 15 kvantl egyikt minden egyes rszsv szmra gy, hogy az a sk-
lafaktor (a legnagyobb amplitdj jel) s az SMR kztti bitmegosztst tekintve
optimlis legyen. A CD-minosgu hang tvitelhez az MPEG1 Layer 1 eljrsnak
384 kbit/s-ra, mg a Layer 2-nek 256 kbit/s-ra van szksge.
A napjainkban oly nagy npszerusgnek rvend o MPEG1 Layer 3 eljrs a
Layer 1,2-hz kpest lnyeges, a hangmin osget javt eltrseket tartalmaz. A 32
rszsv mindegyikt tovbbi 6 vagy 18 frekvenciasszetev ore bontja mdostott
diszkrt koszinusztranszformci (MDCT) felhasznlsval. A frekvenciakompo-
nensekre ezutn egy nemegyenletes kvantlt alkalmaz, majd a kimenetet a lehet-
sges 18 Huffman-kdtbla egyikvel kdolja. Mg rgztett bitsebessg mellett
minden keret azonos szm bjtot tartalmaz, addig a Layer 3 esetben meg lehet
azt tenni, hogy az egyik keretet kevsb tltjk fel (ha nincs r igny), s a maradk
helyre a kvetkezo keret bitjeit tesszk. gy egy keret adatai adott hatrokon bell
tcsszhatnak a szomszdos keretekbe.
Az MPEG szabvnyok csak a dekdolt szabvnyostjk, a kdolt nem. Per-
sze az adott dekdol-rszegysghez sok esetben ltezik optimlis kdolrsz (pl.
IDCT a dekdolban DCT a kdolban, ismertek a kdpontok a dekdolban
kiszmthatak a kvantlsi tartomnyok a kdolban). Bizonyos esetekben
(pl. az emberi halls modelljnek felhasznlsa vagy a bitallokci esetn) mr
nagy a szabadsgi fok, ebbol kvetkeznek a klnbzo MPEG kdolk kztti mi-
nosgi eltrsek.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 229

Kptmrts

Kptmrts esetn alkalmazhatunk egyrtelmuen dekdolhat (vesztesg-


mentes), vagy husgkritriumon alapul (vesztesges) mdszereket. A vesztes-
ges mdszerek a vesztesgmenteseknl egyes esetekben akr egy nagysgrenddel
is jobban tmrthetnek, szrevehet o minosgromls nlkl. Amennyiben a min o-
sgi megktsek nem nagyon szigorak, mg ennl is tbbet nyerhetnk a vesz-
tesges mdszerek alkalmazsval. Ahhoz, hogy a min osgromls s a tmrts
mrtke kztt meg tudjuk tallni az egyenslyt, szksgnk van e kt jellemz o
kvantitatv mrsre.
A tmrts mrtknek megllaptshoz mrnnk kell a tmrtetlen s a t-
mrtett informci mrett, majd ezek hnyadost kell vennnk. A tmrtett in-
formci a legtbbszr bitfolyamknt jelenik meg, ennek mrete a benne lev o bitek
szma. A tmrtetlen informci mennyisgnek mrse nehzsgekbe tkzhet
folytonos rtkkszlet vagy rtelmezsi tartomny esetn. Ilyenkor az informci
mennyisgt vehetjk a kdol bementetn megjelen o jel ami ltalban egy bit-
folyam mretnek. Clszeruen ez a bitfolyam az eredeti jellel azonos vizulis
lmnyt ad, de mr mintavtelezett s kvantlssal vges rtkkszletuv alak-
tott jel binris brzolsa. A tmrtetlen informci mennyisgnek becslshez
kulcsfontossg a megfelelo mintavtelezs s kvantls kivlasztsa. Ezt a leg-
tbb esetben szabvnyok hatrozzk meg. Ilyen szabvnyokkal tallkozhattunk
mr a hangtmrtsnl is: a CD-min osgu hang a maga 44.1 kHz-es mintavte-
lezsvel s 16 bites lineris kvantlsval pontosan ilyen volt. Kptmrtsnl a
felbontst s a sznmlysget kell meghatroznunk. Videotmrts esetn emel-
lett meg kell adnunk a kpfrekvencit is. Kptmrtsnl gyakorlatilag brmilyen
felbonts hasznlhat, mg videotmrtsnl a nemzetkzi televzis szabvnyok-
hoz alkalmazkodva 720 480 (NTSC), 768 576 (PAL) a szoksos felbonts, de
a HDTV esetn akr 1920 1080 is lehet. Az ezekhez tartoz kpfrisstsi frek-
vencik pedig 30 Hz, 25 Hz illetve 60 Hz. A szntrbeli kvantlst a sznmlysg,
vagyis az egy kppontra jut bitek szma jellemzi. ltalnosan alkalmazott a 8 s
a 24 bites sznmlysg.
A ma hasznlt kpernyok legnagyobb rsze a hrom alapszn additv kevers-
vel dolgozik. Ezek a piros, a zld s a kk. Ezrt egy kppont sznt az angol
sznelnevezsek kezdobetui alapjn az n. (R, G, B) rtkekkel szoks megadni,
amelyek azt mutatjk, hogy a hrom alapsznt hogyan kell keverni a kvnt fnyer o
s sznrzet elrshez. Ezek rtktartomnya a 0 s 255 kztti egsz szmok-
bl ll. Ilyen sznkezels esetn 224 klnbzo sznt tudunk reproduklni, ami a
legtbb esetben kielgto.
A vesztesges kp- s videotmrtsi mdszereket az emberi ltsrl meg-
levo ismereteket felhasznlva alaktottk ki. Az informcimennyisg cskkentse
rdekben a kp azon rszleteit kdoljuk kis pontossggal, amelyekre a szemnk
kevss rzkeny, s azokat kdoljuk majdnem eredeti min osgben, amelyekre a
szemnk igen rzkeny. Mivel szemnk rzkenysge a fnyer ore jval nagyobb,
mint a sznre, rdemes ezeket az adatokat elklnteni egymstl. Az (R, G, B) r-
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 230

tkekbol az albbi transzformcival kaphatak az n. (Y,Cb ,Cr ) sznkoordintk.

Y = 0.299R + 0.587G + 0.114B


Cb = B Y
Cr = R Y

Y -t luminancinak nevezzk, s a fnyessgrzetet rja le, C b -t s Cr -t kromi-


nancinak nevezzk, ezek a sznrzetet rjk le. Br szemnk nem egyenletesen
rzkeny a fnyessgrzetre, ennek a sznkoordinta-rendszernek az Y egytthat-
jban tbb-kevsb lland a szemnk rzkenysge. Tovbbi el ony, hogy ezek
az rtkek is 0 s 255 kztti egsz szmok, s bel olk az (R, G, B) szmrtkek
egyszeruen elollthatak.
rdekessgknt megemltjk, hogy az (R, G, B) szninformci transzforml-
st az eredeti (analg) televzis szabvnyokban az tette szksgess, hogy az ads
fekete-fehr vevokszlken is nzheto lehessen. A luminancia jelet ugyanazon a
frekvencin szrjk, mint a rgi fekete-fehr jelet, gy azt egy fekete-fehr telev-
zikszlkkel is venni lehet. A kt krominanciajelet pedig nagyobb frekvencin
s szukebb svban (hiszen ennek torztsra kevsb rzkeny a szemnk) adjk.
Szemnknek sok egyb olyan tulajdonsga is van, amit kp- s videotmrts-
kor kihasznlhatunk. Megfigyelhetjk, hogy a nagyobb trbeli frekvencij ssze-
tevokre kevsb rzkeny a szemnk mint az alacsonyabb frekvencijakra. Pl-
dul egy halvny suru mintzatot sokkal kevsb vesznk szre, mint egy ugyan-
olyan halvny, de ritks mintt. Tmrtsnl, ha a kp ktdimenzis Fourier-
transzformltjt vesszk, akkor ebben a magasabb frekvencis sszetev ok torztsa
nem okoz szreveheto hibt, mg az alacsonyabb frekvencij sszetev ok torztsa
igen feltuno a kpen. Pontosabban, a ktdimenzis Fourier-transzformlt frekven-
ciatartomnyban a szem rzkenysge a kt frekvencia sszegnek nvekedsvel
monoton cskken.
Ksrleti tny tovbb, hogy a trbeli s id obeli frekvencik rzkelse ssze-
fgg: egy rvid ideig ltott kpen csak az igen kicsi trbeli frekvencij sszete-
voket figyeljk meg, a finomabb mintzatokat csak hosszabb ideig ltott kpen va-
gyunk kpesek rzkelni. Vesztesges videotmrtsnl ennek megfelel oen meg-
engedjk, hogy egy hirtelen megjelen o kprszletnek az elso nhny kpkockn
csak az alacsonyabb trbeli frekvencis sszetev oi jelenjenek meg. A magasabb
frekvencis sszetevoket elg csak ezutn megjelenteni.
A GIF (Graphics Interchange Format) formtumot, amelyet grafikus kpek
tmrtsre lehet hasznlni, a Compuserve Information Service foglalta szab-
vnyba. A GIF formtum a kppontok sznt gynevezett indexelt formban t-
rolja. Amikor minden kppont sznt az el ozoekben bemutatott sznkoordinta-
rendszerek valamelyikben adjuk meg, folytonos tnus trolsrl beszlnk.
Megtehetjk azonban, hogy a kpen hasznlt sznek valamilyen lerst egy palet-
tba gyujtjk ki, s a kppontok megadsakor a sznekre a palettabeli indexkkel
hivatkozunk. Ezt nevezzk indexelt trolsnak.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 231

Ilyen trolssal igen nagy tmrtst rhetnk el. Gondoljuk meg, hogy ha
egy kpet az (R, G, B) sznkoordintkkal, koordintnknt 88 bitet felhasznlva
folytonos tnusan trolunk, akkor minden kpponthoz 24 bitet kell megadnunk.
Ha ugyanezt a kpet egy 256 sznu palettval indexelten troljuk, akkor a palettn
kvl kppontonknt csak egy 8 bites indexet kell megadnunk. Ez amennyiben
a kpmret nem tl kicsi krlbell 1 : 3 tmrtst jelent.
Termszetesen brmilyen kp trolhat indexelt formban, legfeljebb igen nagy
mretu paletta szksges. Az indexelt trols lnyege viszont pp a viszonylag kis
mretu paletta alkalmazsa. A kpek folytonos tnus trolssal kerlnek a tm-
rtoalgoritmusok bemenetre, gondoljunk pldul szkennelt fnykpre vagy digi-
talizlt videojelre. (Ez all csak a szmtgpes grafikk alkotnak nha kivtelt,
ugyanis ezek lehet, hogy azonnal indexelt formban kszlnek.) Ezrt szksges
lehet, hogy egy folytonos tnus kpet indexeltt alaktsunk. Ennek sorn minl
kisebb palettamretet szeretnnk elrni, annl tbbet kell az eredeti kp sznei k-
zl msikkal helyettesteni. Felfoghatjuk ezt gy is, hogy az indexelt trols for-
mv val talakts egy vektorkvantls a hrom dimenzis (R, G, B) szntrben.
Az optimlis, teht a leheto legkevsb lthat torzulst okoz paletta (vagyis az
optimlis kvantlsi vektorok) kivlasztsra specilis az emberi sznrzkels
tulajdonsgait kihasznl algoritmusok llnak rendelkezsre.
A GIF formtumban a paletta mrete ltalban 256, de brmely kisebb 2 hat-
vny hasznlata is megengedett. A palettban a sznek megadsa az (R, G, B) szn-
koordintkkal trtnik. A paletta tmrtsnek mikntjvel nem foglalkozunk.
A kppontokat a GIF tmrts sorfolytonosan tapogatja le, s a sorozatot LZW
algoritmussal tmrti.
A tmrtett kp elso bjtjnak rtke a kppontonknti bitszm (b). Ez hat-
rozza meg a palettamretet: 2b . Az LZW sztr kezdeti mrete 2b+1 , teht minden
kdsz b + 1 bites. Az elso nhny kppont szempontjbl (amg nincs a kp-
pontok sorozatban ismtlods) ez azt jelenti, hogy kppontonknt egy plusz bit
kpzodik, hisz a b bites kppont b + 1 biten lesz trolva. Kzben azonban pl
az LZW sztr, s ha a kppontrtkek sorozatban valahol ismtl ods van, azt
az LZW azonnal kihasznlja. Ha a 2b+1 mretu sztr betelt (ezt a pillanatot ter-
mszetesen a kitmrto algoritmus is meg tudja llaptani), a sztr mrett az
algoritmus megduplzza, s ettol kezdve b + 2 bites kdszavakkal dolgozik. Ha
ez a sztr is betelik, akkor ismt duplzdik a mret, amg el nem ri a 4096 be-
jegyzst. Innentol mr nem nvekszik tovbb a sztr, hanem az eddig elkszlt
sztrat fogja a tovbbiakban statikus sztrknt hasznlni az algoritmus.
A GIF formtum nagyon elterjedt, leginkbb kis ikonok, brk tmrtsre al-
kalmazzk, ugyanis ezeket kpes igen jl tmrteni. Ennek egyik oka, hogy ezek
sok esetben nagy kiterjedsu, egysznu terleteket tartalmaznak, s ezek a sorfoly-
tonos letapogatssal hossz egysznu sorozatokknt jelennek meg. A hossz so-
rozatok az LZW sztrban egy kdszval reprezentlhatk, gy igen hatkony a
tmrts. Ugyancsak jellegzetessge az ilyen kpeknek, hogy ismtl odo rszlete-
ket tartalmaznak, s ezek megintcsak kedveznek az LZW algoritmusnak. Azonban
pldul fotk esetn az egysznu terletek igen ritkk, s mretk is viszonylag
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 232

kicsi. Ennek eredmnyekppen a GIF tmrtsi arnya ilyen kpnl (1 : 1.2 1.7)
elmarad sok ms, viszonylag egyszeru mdszer mgtt. (Pldul, ha predikci-
knt az elozo kppont rtkt hasznljuk, s a kapott klnbsgi sorozatot adaptv
aritmetikai kdolval tmrtjk, akkor a tmrtsi arny 1 : 1.3 2.2 lesz.)
A klnbsg msik oka a sznkezelsben keresend o. Az ikonok s brk l-
talban viszonylag kevs sznt tartalmaznak, ezrt igen el onys az indexelt trol-
suk. Egy olyan tmrts, amely nem tud indexelt kpeket tmrteni, egy ilyen
brt knytelen lenne folytonos tnusv alaktani a tmrts el ott. gy ktszer-
hromszor akkora adatmennyisget kellene, hogy tmrtsen, mint a GIF, amely
kzvetlenl az indexelt formval kpes dolgozni. Sok mdszer azrt nem tud kz-
vetlenl indexelt kpeken dolgozni, mert a szomszdos kppontok rtkeinek kis
klnbsgre alapoz. Mivel folytonos tnus trolsnl a szomszdos kppontok-
ban trolt rtkek a sznkoordintk, ez a felttelezs helyes, s ltalban teljesl
is. Indexelt trols esetn azonban a kppontokban trolt rtkek a palettaindexek,
s ezek tetszolegesen tvoliak lehetnek (csak a nekik megfelel o palettabeli szn-
koordintk rtkei vannak egymshoz kzel). Fokozottan jelentkezik ez akkor,
ha valamilyen palettaoptimalizl eljrst alkalmaztunk. Elgg jl lthat, hogy
a GIF-nek mirt nem problma ez: a GIF ismtl odo mintzatokat keres, s ilyen
szempontbl teljesen mindegy, hogy a kzeli kppontok rtkei megkzelt oleg
egyenloek-e. Mindssze az szmt, hogy vannak-e ismtl odsek. gy mr rtheto,
hogy mirt is olyan hatsos mdszer a GIF szmtgpes brk tmrtsnl.
A JPEG (Joint Photographic Experts Group) a kptmrts vilgban szinte
egyeduralkod a vesztesges tmrtsek terletn. Az egsz szabvnycsomagot
a Joint Photographic Experts Group (ISO/IEC JTC 1 / SC 29 / WG 1) dolgozta
ki folytonos tnus kpek tmrtsre. Valjban a JPEG szabvnycsomag tmo-
gat vesztesges s vesztesgmentes kptmrtst is, br tny, hogy a gyakorlatban
szinte kizrlag az elsot hasznljk. Mindezek ellenre a prediktv kdols j pl-
dja a vesztesgmentes JPEG, ezrt az albbiakban ezt is bemutatjuk, tovbb rsz-
letesen trgyaljuk a vesztesges JPEG egy egyszeru vltozatt, a baseline JPEG-et.
A vesztesgmentes JPEG kptmrts alapja a predikcis kdols. Predikci-
ra az ppen tmrtsre kerlo kppont krnyezett hasznljuk fel. Mivel a kp-
pontok letapogatsa itt is sorfolytonosan trtnik, az adott kpponttl balra vagy
felfel eso kppontok rtkei azok, amelyek a dekdol rendelkezsre llnak az
adott kppont rtknek visszalltsakor, gy a kdol is csak ezeket hasznlja fel
a predikcihoz. Nyolcfle predikcis sma ltezik, s ezek kzl egy adott kp
tmrtshez brmelyik hasznlhat, de egy kpen bell vgig ugyanaz a sma
rvnyes. Jellje Xi, j az (i, j) koorintj kppont rtkt, s Xbi, j az (i, j) koordin-
tj kppont becslt rtkt. Az (i, j) koordintj kppont becslt rtke az egyes
predikcis smkban:
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 233

8 8-as 8 8-as 8 8-as 64 hossz {n, s}, v


blokk cikk-cakk sorozat futamhossz hrmasok Huffman-
- DCT
blokk
-
blokk
kvantl - - -
elrendezs kdol kdol
?
JPEG .
adatfolyam ..
8 8-as 8 8-as 8 8-as 64 hossz {n, s}, v
sorozat futamhossz hrmasok Huffman-
blokk
DCT1 
blokk kvantl blokk cikk-cakk   
inverze elrendezs dekdol dekdol

5.13. bra. Vesztesges baseline JPEG tmrts

0 Xbi, j = 0
1 Xbi, j = Xi1, j
2 Xbi, j = Xi, j1
3 Xbi, j = Xi1, j1
4 Xbi, j = Xi, j1 + Xi1, j Xi1, j1
Xi1, j Xi1, j1
5 Xbi, j = Xi, j1 +
2
Xi, j1 Xi1, j1
6 Xbi, j = Xi1, j +
2
Xi, j1 + Xi1, j
7 Xbi, j =
2
Lthat, hogy az elso lehetosg maga a predikcimentes tmrts. Megfi-
gyelheto, hogy az sszes tbbi predikcis sma mellett az egysznu terleteken a
predikcis hiba 0, azaz Xbi, j = Xi, j = Xi1, j = Xi, j1 . Javthat a tmrts mr-
tke, ha a kpet blokkokra osztjuk, s minden blokkra kln adjuk meg a hasznlni
kvnt predikcis smt.
A vesztesges baseline JPEG tmrts algoritmusa az 5.13. brn lthat. A
JPEG a kpeket eloszr kpskokra bontja: minden kpsk egy-egy sznkoordinta
rtkeit tartalmazza. Sznkoordintnak az el ozoekben bemutatott (Y,Cb ,Cr ) hr-
mast hasznljuk, mindegyiket 8-8 biten trolva. gy egy kppontra sszesen 24
bit jut. A JPEG tmrto algoritmus szmra a kpskok gyakorlatilag egymstl
fggetlen kpekknt jelennek meg, kln-kln vannak kdolva.
Megengedett, hogy a kpskok felbontsa eltrjen. Mindssze annyi a kikts,
hogy a felbontsok arnya racionlis legyen. A kp kitmrtsekor a felbontsok
legkisebb kzs tbbszrsnek megfelel o felbonts kpet lltunk vissza, ahol
az egyes kpskok kppontbeli rtkeit lineris interpolcival lltjuk el o a trolt
felbontssal megegyezo felbontsban rekonstrult kpsk rtkeib ol. A klnbzo
felbonts kpskok alkalmazsnak lehet osgt gy szoks kihasznlni, hogy a
Cb s Cr kpskok vzszintesen s fggolegesen is felre cskkentett felbontssal
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 234

vannak trolva. Pldul 400 400 pontos kp esetn az Y kpsk felbontsa 400
400, mg a Cb s Cr kpskok felbontsa 200 200. Kitmrtsnl visszalltjuk a
400 400-as Y kpskot, s a kt 200 200-as Cb s Cr kpskot. Ezutn a Cb s Cr
kpskokat lineris interpolcival a ktszereskre nagytjuk, majd az gy kapott
kt 400 400-as kpskot s a 400 400-as Y kpskot vettjk egymsra, hogy
az eredeti kpet kapjuk.
Az algoritmus elso lpse a kpskok 8 8-as ngyzetekre bontsa. Ha a
kpmret nem oszthat 8-cal, akkor a jobb szls o oszlop s/vagy a legals sor
tbbszrzsvel azt 8-cal oszthatv tesszk. Az gy keletkez o felesleges szleket
a dekdol levgja a kpmret alapjn.
A 8 8-as ngyzeteket ktdimenzis diszkrt koszinusz transzformcinak
(DCT) vetjk al. gy ugyancsak 8 8-as ngyzeteket kapunk, csak azok most mr
nem egsz rtkekbol, hanem vals szmokbl llnak. Ezeket a frekvenciatarto-
mnybeli vals egytthatkat a kvetkez o lps, a kvantls fogja ismt egszekk
alaktani.
A kvantls egyenletes, viszont a 8 8-as ngyzet minden egyes elemre ms
lpskzzel hajtjuk vgre. A 8 8-as DCT transzformlt ngyzet egytthati k-
lnbzo frekvencij felharmonikusoknak felelnek meg. A kis frekvencis egytt-
hatk a ngyzet bal felso rszben vannak. Mint tudjuk, a szem ezekre a kisebb
frekvencihoz tartoz rtkekre sokkal rzkenyebb, mint a nagyobb frekvenci-
hoz tartozkra, ezrt ezeket finomabb lpskzzel fogjuk kvantlni. A szabvny
nem kti meg, hogy milyen kvantlsi lpskzket hasznljunk. A hasznlt l-
pskzket tblzatba szoks foglalni, ahol egy tblzatelem a 8 8-as ngyzet
megfelelo egytthatjnak kvantlsi lpskzt tartalmazza. Br a szabvny nem
teszi ktelezov a hasznlatt, de ajnl egy kvantlsi tblt:

16 19 22 26 27 29 34
16 16 22 24 27 29 34 37
19 22 26 27 29 34 34 38
22 22 26 27 29 34 37 40
22 26 27 29 32 35 48 48
26 27 29 32 35 40 48 58
26 27 29 34 38 46 56 69
27 29 35 38 46 56 69 83

A 0 frekvencihoz tartoz egytthat (neve DC komponens) a DCT transzform-


ci sorn a bal felso sarokba kerlt. Kihasznlva az egyms melletti kprszek
viszonylag hasonl sznt, a DC komponenst nem kvantljuk, ehelyett az egyms
utni 8 8-as blokkok DC komponenseinek klnbsgt vesszk. Ezrt nem tar-
tozik a DC komponenshez rtk a kvantlsi tblban.
Lthat, hogy a nagyobb frekvencis egytthatkra nagyobb lpskzt ad meg
a tblzat. Ennek eredmnyekppen a nagyobb frekvencis egytthatk kvantlt
rtkei majdnem mind 0-k lesznek. Ezeket a 0-kat egy ks obbi lps (a futam-
hossz kdols) sorn jl tudjuk majd tmrteni. A kvantlsi tbla vltoztatsa
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 235

r - r r - r r -r
r r 
r r  r
r
?  r r

r r


r
?

5.14. bra. Cikk-cakk elrendezs

teht lehetosget ad a tmrts mrtknek s min osgnek befolysolsra: a t-


mrtst nvelni lehet a kvantls lpskznek nvelsvel, a kp min osgnek
rontsa rn.
A kvantlt egytthatkat ezutn az gynevezett cikk-cakk elrendezs szerint
sorbarendezzk (5.14. bra). gy az els o helyre a klnbsgi DC egytthat kerl,
azt kveti a vzszintes alapharmonikus, majd a fgg oleges alapharmonikus, majd
pedig az egyre nvekvo frekvencis felharmonikusok kvetkeznek. Ksznhet oen
annak, hogy a kvantls sorn a tblzat magasabb frekvencikhoz tartoz egytt-
hati nagyrszt kinullzdtak, a kapott sorozat a vge fel tlnyomrszt 0-kbl
ll.
A futamhossz kdolsi lpsben a cikk-cakk elrendezssel kapott, javarszt 0-
kbl ll sorozatot rszekre bontjuk gy, hogy minden rszsorozat eleje tetsz oleges
szm 0-bl lljon, s ezt a vgn egyetlen nem 0 elem zrja. Minden gy kapott
rszsorozathoz egy ({n, s}, v) szmhrmast rendelnk. n az adott rszsorozat elejn
levo 0-futam hossza, s jelzi, hogy a rszsorozat vgn tallhat nem 0 rtket hny
biten kdoljuk, v pedig ezen nem 0 rtk binris brzolsa. Az s vltozra a
tmrts hatkonysgnak nvelse miatt van szksg, mert ugyan el ofordulnak
nha nagy abszolt rtku elemek, de ezek ritkk, gy nem rdemes minden elemet
azonos bithosszon kdolni.
gy pldul a 23, 0, 0, 0, 0, 7, 0, 19, 4, 0, 0, 0, . . . sorozat els o futamhossz-kd-
hrmasa: ({0, 6}, 010111), hiszen az els o elem, a 23 elott nincs 0, gy n = 0. 23
binris szmknt 6 biten kdolhat el ojelesen, gy s = 6. A tovbbi kdszavak:
({4, 4}, 1000); ({1, 6}, 101100); ({0, 4}, 0100); . . . (Az el ojeles binris szmokat
egyes komplemens brzolsban tntettk fel. Megfelel o technikval ezek 1 bittel
rvidebben is kdolhatak.)
Az gy kapott ({n, s}, v) hrmasok {n, s} elemeit statikus Huffman-kddal t-
mrtjk tovbb, a v rtkeket pedig egyszeruen elvlasztjel nlkl egyms utn
rjuk. A statikus Huffman-kd azt jelenti, hogy nem az {n, s} prok adott kpben
levo gyakorisga alapjn vlasztjuk a kdszavakat, hanem azok a JPEG szabvny-
ban le vannak rgztve. (A statikus kdot az {n, s} prok sok kpre vett tlagos
gyakorisgai alapjn terveztk meg.) Alkalmazhatnnk a Huffman-kdolst ma-
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 236

gukra az ({n, s}, v) hrmasokra is, de akkor a kd annyira sok kdszbl llna,
hogy kezelhetetlen lenne, nagyon lass lenne vele dolgozni. A v rtkek lev-
lasztsa j dnts, mert ezzel a kd mrete kezelhet o lesz, viszont a hatkonysga
csak alig romlik: a v rtkek bitjei a tapasztalat szerint gyakorlatilag fggetle-
nek s egyenletes eloszlsak, gy nem tmrthet oek, hiba is vonnnk be oket a
Huffman-kdba.
A fenti pldn bemutatva ezt az utols lpst, a tmrtett kpbe a {0, 6}, {4, 4},
{1, 6} s {0, 4} Huffman-kdja, s a 01011110001011000100 sorozat kerl.
A JPEG egyszerusge ellenre meglepoen alacsony bitsebessgeket tud elrni.
A kppontonknti 2 bites tmrts egy 24 bites sznmlysgu kp esetn az ere-
detitol megklnbztethetetlen kpet eredmnyez legalbbis az emberi szem
szmra nem lthat a klnbsg. Igen kis, 1 bit/kppontos bitsebessg esetn
kezd el zavarv vlni a torzts, s 0.5 bit/kppont alatt a kp nem lvezhet o. A
felismerhetosg mg 0.086 bit/kppontos bitsebessg mellett is biztosthat. Ter-
mszetesen ilyen alacsony bitsebessgek esetn klnbz o kiterjesztsek is szk-
sgesek a szabvnyhoz. Mindenesetre ezek az eredmnyek nagyon jnak szmta-
nak. A JPEG alacsony bitsebessgek esetn legel oszr kocksodni kezd. Ezt az
alacsonyfrekvencis egytthatk rtknek kvantls miatti torzulsa okozza.

Videotmrts

Az MPEG (Moving Picture Experts Group) a JPEG-hez hasonlan az ISO egyik


munkacsoportja (ISO/IEC JTC 1 / SC 29 / WG 11). Feladatuk olyan videotm-
rtsi szabvnyok kidolgozsa volt, melyek szleskru ipari konszenzuson alapul-
nak. Az ilyen jellegu szabvnyokra a digitlis konvergencia id oszakban mind a
tartalom elolltknak, mind a felhasznlknak, mind a kzttk ll szolgltatk-
nak szksgk van. Az MPEG egy t szabvnybl ll szabvnycsomag kidolgo-
zst tuzte ki clul, mely a vesztesges videotmrts (belertve a hangtmrtst
is), a digitlis televzizs s a multimdia alkalmazsok szles krt fedi le. Az t
szabvny: MPEG -1, MPEG -2, MPEG -4, MPEG -7 s MPEG -21.
A CD-olvask elso genercija a hifi minosgu tmrtetlen zenhez szks-
ges, 1.4 Mbit/s lejtszsi sebessgre volt kpes. Az MPEG -1 szabvny kialakt-
sakor azt tuztk ki clul, hogy az ilyen, egyszeres (1) CD-meghajtk olvassi
sebessgn hasznlhat formtumot hozzanak ltre. Ez nehz feladat volt, hiszen
egy 8 biten mintavtelezett video (NTSC vagy PAL) tmrtetlenl nagysgrendi-
leg 200 Mbit/s tviteli sebessget ignyel. A szksges tmrts teht nagyjbl
1 : 140 kell hogy legyen, sot mg a hangcsatorn(k)nak s a hibajavt kdnak is
helyet kell szortani. A nagy tmrtsi igny mellett a vletlen elrs lehet o-
sgt is teljesteni kellett, vagyis azt, hogy a trolt video brmelyik rszt (akr a
kzept is) gyorsan el lehessen rni. Amennyiben prediktv algoritmussal tm-
rtnk, problmt okozhat ennek a kritriumnak a megvalstsa, hiszen ilyenkor
csak a kezdeti, biztos ponttl elindulva lehetsges a rekonstrukci. Viszont a pre-
diktv algoritmusok kizrsa szba sem jhetett, hiszen ezek nlkl remny sincs
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 237

ilyen tmrts elrsre. Az MPEG ltal vlasztott megolds a rvid, de egymstl


fggetlen prediktv blokkok alkalmazsa volt. Az MPEG -1 az 1-es CD-olvask
sebessgnek megfelelo, igen eros tmrtst csak viszonylag gyenge kpmin osg
mellett tudja megvalstani. Azonban 1992-ben, amikor a szabvny megjelent, az
ipar ezzel a minosggel is megelgedett. A szabvny sikeres alkalmazsai tbbek
kztt a CD-I s a Video-CD technolgik.
Az MPEG -2 szabvnyt a digitlis televzizshoz fejlesztettk ki. Ehhez az
MPEG -1 segtsgvel elrhetonl jobb minosgre volt szksg, tmogatja pldul
a szabvny a HDTV video tmrtst is. A HDTV technolgia, a High Defi-
nition TeleVision a szokvnyos televzimin osgnl nagyobb felbonts s szn-
mlysgu, CD-minosgu hanggal ksrt televzis szabvny. Az MPEG -2 ltal ig-
nyelt bitsebessg (a minosg fggvnyben) 140 Mbit/s kztt alakul. Jellegze-
tes rtkek a 46 Mbit/s hagyomnyos (PAL) videojel esetn, s a 1220 Mbit/s
HDTV videojel esetn. Digitlis televzizs sorn gondoskodni kell a tmr-
tsen kvl a jeltvitelrol, multiplexelsrol is. Az MPEG -2 szabvny egyik sike-
res alkalmazsa, az Eurpban szabvnyostott DVB (Digital Video Broadcasting)
technolgia. Ez a digitlis musorszrst teszi lehet ov, hagyomnyos fldi (8 MHz
svszlessgu) televzicsatornban illetve muholdas (36 MHz svszlessgu) csa-
tornban. Mindkt esetben 36 televzimusor multiplex tvitelre van lehet osg.
Az MPEG -2 tovbbi sikeres alkalmazsa a VoD (Video on Demand) s a DVD is.
Az MPEG -4 a multimdia alkalmazsok szabvnya. Kzs technolgiai ala-
pot nyjt a musorszrsos, az interaktv s a beszlgets-jellegu szolgltatsok-
hoz. Sokrtu interaktivitst tesz lehet ov a hagyomnyos lejtszsmegllts
elore/visszatekers mellett. Kpes szintetikus (pl. szmtgp-animci) s ter-
mszetes forrsbl szrmaz (pl. videokamera ltal rgztett) informcitpusok
egyttes kezelsre. A bitsebessgek igen szles skljt tmogatja, egszen 10
kbit/s-tl kezdve. Tbbek kztt lehetsges MPEG -4-gyel egy videokonferencia
64 kbit/s-os tmrtse s a professzionlis HDTV tmrtse is 40 Mbit/s sebes-
sggel. Az MPEG -4 egyik sikeres alkalmazsa a DivX.
Az MPEG -7 a tbbi MPEG szabvny ltal kdolt audiovizulis tartalmak ka-
talogizlsra, lersra, keressre ad lehet osget. Az MPEG -21 szabvny egy
egysges multimdia keretrendszer, melynek feladata a felhasznlk tmogatsa a
digitlis tartalmak hozzfrsben, cserjben, megvsrlsban, mdostsban.
A tovbbiakban az MPEG -1 szabvny videotmrtsi rsznek vzt fogjuk
ttekinteni. Fontos megjegyezni, hogy az MPEG -1 emellett foglalkozik a hangt-
mrtssel, valamint a video- s hangfolyamok multiplexelsvel is. A hangtm-
rtsi rszrol az elozoekben mr volt sz.
A szabvny kidolgozsa sorn kiemelt figyelmet fordtottak az implementci
szabadsgra. A videotmrtsi rszben az MPEG -1 szabvny csak a tmrtett
bitfolyam szintaxist s rtelmezst rja le. A kdol tetsz oleges algoritmussal
dolgozhat, de termszetesen csak szintaktikailag helyes bitfolyamot llthat el o.
Nagyon sok mlik azon mind kpminosg, mind pedig bitsebessg tekintet-
ben hogy egy kdol mennyire jl tudja kihasznlni az MPEG -1 szabvny adta
lehetosgeket. A dekdol implementlsa tern a bitfolyam kttt rtelmezse
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 238

   
   
   
    
 
 
   
    
    Y Cb Cr 
kpcsoport kp sv makro- blokk
blokk

5.15. bra. Az MPEG bitfolyam szintaktikai felptse

miatt nincs nagy szabadsg. A szabvny ad is egy referencia dekdolt, br ennek


hasznlata nem ktelezo.
Az 5.15. brn a bitfolyam szabvny ltal definilt szintaktikai felptse lt-
hat. A legklso elem a videoszekvencia (ezt nem tntettk fel az brn). Egy
videoszekvencinak adott kpmrete, kpsebessge s egyb jellemz o paramterei
vannak. A videoszekvencia fejlce ezek lerst tartalmazza.
A videoszekvencia belsejben kpcsoportok (Group Of Pictures, GOP) van-
nak, amelyek nhny kp egymsutnjbl llnak. A kpcsoportok az egymstl
fggetlenl kdolt prediktv egysgek. A kpcsoporton bell kpek helyezkednek
el. A kp hromfle lehet, I, P vagy B. Ez az alkalmazott predikci fajtjval van
sszefggsben. A kpek svokra, a svok makroblokkokra (16 16 kppont), a
makroblokkok pedig blokkokra vannak bontva.
A tmrtsi algoritmus lelke a mozgsbecsls. Ez tulajdonkppen egy predik-
cis kdols, ahol a video adatfolyam egyms utni kpeinek hasonlsgt hasz-
nljuk ki. A predikcit makroblokk szinten vgezzk: minden makroblokkhoz
kikeressk az idoben megelozo s az idoben kvetkezo kpeken tallhat, hozz-
juk leginkbb hasonl rszleteket. A megel ozo s a kvetkezo kpeken a hasonl
rszek helyt az gynevezett mozgsvektorral hatrozzuk meg. A makroblokknak
csak ezen referencia-kprszekt ol val eltrst (vagyis a predikci hibjt) kdol-
juk a JPEG mdszernl megismertek szerint.
Egy makroblokk tmrtse sorn ugyanis ngyfle mdon jrhatunk el. T-
mrthetjk predikci nlkl, vagy predikcival htulrl, ellr ol, s mindkt irny-
bl. Amennyiben nem alkalmazunk predikcit, gy az eredeti makroblokk blokk-
jait kell JPEG-szeruen kdolnunk. Amennyiben egyirny predikcit alkalmazunk
(idoben megelozo vagy kvetkezo kp egy rszt jelljk ki), akkor a makroblokk-
bl levonjuk a kijellt rszt, s a klnbsget tmrtjk. Amennyiben ktirny
predikcit hajtunk vgre (idoben megelozo s kvetkezo kp egy-egy rszlett is
felhasznljuk), akkor a makroblokkbl a JPEG tmrts el ott a kt kijellt rsz
tlagt vonjuk le.
Az ellrol s a ktirnybl alkalmazott predikcinl gondoskodni kell az egy-
rtelmu dekdolhatsgrl. Ezt az MPEG -1 szabvny azzal oldja meg, hogy kizrja
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 239

j j
j j j
R R R
        
        
        
        

        
        
        
I B B P B B P B B I

5.16. bra. Az MPEG klnbzo predikcitpusai

a kpek krkrs egymsrahivatkozst. Ennek biztostsra minden egyes kpben


meg van ktve, hogy a benne szereplo makroblokkok kdolsa sorn milyen tpus
predikcit hasznlhatunk. Ezt mutatjuk be az 5.16. brn.
Az I tpus kpben egyltaln nem alkalmazhatunk predikcit, vagyis ez egy
nll kp, JPEG tpus tmrtssel. gy egy I tpus kpet minden egyb kp
nlkl tudunk dekdolni.
A P tpus kpek makroblokkjai lehetnek predikci nlkl kdolva, vagy pedig
predikcival htulrl, a hozzjuk legkzelebb lev o I vagy P tpus kpbol. Egy P
tpus kp dekdolshoz ezek szerint legfeljebb az el otte levo utols I kpig kell
visszaszaladnunk, s innentol kezdve P kprol P kpre tudunk lpkedni.
A harmadik fajta kp, a B kp brmilyen kdols makroblokkokat tartalmaz-
hat, de a makroblokkok csak a legkzelebb es o megelozo vagy kvetkezo P vagy
I kpekre hivatkozhatnak. Sem B kpekre, sem a legkzelebbi I vagy P kpnl t-
volabbi kpekre nem lehet hivatkozni. A lnyegi klnbsg a B s P kpek kztt
az, hogy B kpeknl jvobeli P vagy I kpre is hivatkozhatunk.
Termszetesen, a szabvny koncepcijnak megfelel oen a kpek sorrendje nem
kttt, akrhogyan jhetnek egyms utn a P, I s B kpek, ahogy a kdol akarja.
A fenti szablyok betartsval lehetsges a dekdols, mert egy I tpus kp nma-
gban, egy P tpus az elotte levo, hozz legkzelebbi I kptol indulva, mg egy B
kp az ot krlvevo I vagy P kpek alapjn dekdolhat.
Mindemellett hogy nem ktelezo, kialakultak szokvnyos kpsorrendek. A
legsurubben egy I kpre kt P kp pl, s kzttk kt-kt B kp van. Az 5.16.
brn egy ilyen kpsorrend lthat.
A kpek sorrendje a bitfolyamban nem egyezik meg a kpek id osorrendjvel.
A bitfolyambeli sorrend gy lett meghatrozva, hogy ha sorban olvassuk be a bitfo-
lyambl a kpeket, akkor egy kp beolvassnak id opontjban az sszes szksges
informci rendelkezsre lljon a dekdolshoz. Ezt gy oldja meg a szabvny,
hogy htrakldi a B kpeket az utnuk kvetkez o I vagy P kp mg. Ezltal a
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.4. A LKALMAZSOK 240

B kpek idoben elore mutat referencija a bitfolyamban htramutat referencia


lesz. Termszetesen trendezskor az I s P kpek a helykn maradnak, s a B
kpek egymshoz viszonytott sorrendjn sem vltoztatunk. Teht, ha az id obeli
sorrendet az indexekkel jelljk, akkor a

. . . B2 B1 I0 B1 B2 P3 B4 B5 P6 B7 B8 I9 B10 B11 P12 . . .

sorozatbl az trendezs utn az

. . . I0 B2 B1 P3 B1 B2 P6 B4 B5 I9 B7 B8 P12 B10 B11 . . .

sorozat lesz.
Egy kpcsoport mindig egy I kppel kezd odik, mghozz a bitfolyambeli sor-
rend szerint. Emiatt egy kpcsoport bitfolyamban els o kpe nmagban dekdol-
hat, vagyis nem szksges rgebben dekdolt kpek ismerete a dekdolshoz. A
kpcsoport tovbbi kpei is mind dekdolhatak a bitfolyambeli sorrendben. (Ter-
mszetesen ezek dekdolsa sorn szksgnk lesz az ezen kpcsoportbl el ottk
dekdolt kpekre.) Kivtelt kpeznek az els o P kpet megelozo B kpek, ugyanis
ezek a megelozo kpcsoport utols P vagy I kpre is hivatkozhatnak. (Ne fe-
lejtsk el, hogy a bitfolyambeli sorrendben definiljuk a kpcsoportot!) Ezek a B
kpek a megelozo kpcsoport dekdolsa nlkl nem dekdolhatak. Emiatt az
elso nhny nem dekdolhat B kp miatt hvjk nyltnak az ilyen kpcsoportot.
(A szabvny definil egy zrt kpcsoportot is, termszetesen ehhez ms kpsorrend
szksges.) Ezltal a kpcsoport a bevezet oben emltett viszonylag rvid predik-
tv egysget testesti meg, hiszen (nylt csoport esetn nhny B kp kivtelvel) a
kpcsoportok egymstl fggetlenl dekdolhatak.
Az MPEG videokdols, amennyiben ezt nem szablyozzuk kln, vltoz bit-
sebessget fog eredmnyezni. Gondoljunk pldul arra, hogy ahol egy teljesen j
kp jelenik meg a videofolyamban (vgs), ott az els o kp makroblokkjait nem
tudjuk predikcival tmrteni, s gy gyakorlatilag egy teljes kpet kell JPEG-gel
kdolnunk. Ez igen sok bitet ignyelhet. Ott viszont ahol egy llkp van a vi-
deofolyamban, szinte nem is lesz predikcis maradk, vagyis nagyon rvid lesz
a kd. Az tvitelhez hasznlt csatorna bitsebessgt a kdols sorn termszete-
sen nem lphetjk t. Ezen a problmn pufferek felhasznlsval valamennyit
lehet segteni, de meg kell oldani, hogy a dekdol puffere sohase rljn ki, s
sohase csorduljon tl, tovbb a kdol is csak a csatorna tviteli kpessgnek
megfelelo mennyisgu adatot hozzon ltre. Ennek elrshez a kdol llandan
figyeli a sajt puffert, s nyomon kveti a dekdolt is. (Ez utbbihoz egyes ese-
tekben a dekdol szimulcijra knyszerl.) Ha pldul a kdol puffere kezd
megtelni cskkentenie kell a kpenknt tvitt bitek mennyisgt. Ezt a JPEG kvan-
tlsi lpcso megemelsvel rheti el, termszetesen a min osg rovsra. Durvbb
megolds, ha bizonyos makroblokkok predikcis maradkt egyszeruen elhagyja a
kdbl, s csak a mozgsvektorokat adja meg. Mg durvbb lehet osgek is rendel-
kezsre llnak a kdolnak. Ilyen pldul a bemenetn rkez o kp informcitar-
talmnak korltozsa, pldul a kpfrekvencia vagy a felbonts cskkentsvel.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.5. F ELADATOK 241

5.5. Feladatok
5.1. feladat (Normlis eloszls egy bites kvantlsa). Legyen X nulla vrhat r-
tku, szrs normlis eloszls valsznusgi vltoz. Hatrozza meg az opti-
mlis egy bites (kt szintu) kvantlt! Mennyi a torzts?

5.2. feladat (Exponencilis eloszls kvantlsa). Legyen X vals valsznusgi


vltoz, melynek surusgfggvnye
 1
c e 2 x , ha x [0, 2]
f (x) = ,
0, ha x 6 [0, 2]

ahol c olyan konstans, hogy f valsznusgi surusgfggvny. Kvantljuk X-et


egy [0, 2]-re illeszkedo 4 bites (16 szintu) egyenletes Q1 kvantlval. A tanult
kzeltseket hasznlva szmolja ki a kvantl ngyzetes torztst s a H(Q 1 (X))
entrpit!

5.3. feladat. Az brn lthat f (x) surusgfggvnyu X valsznusgi vltozt 2


bites egyenletes kvantlval kvantljuk, mely illeszkedik a [1, 1] intervallumra.

a) Szmolja ki a kvantlsi szinteket!


b) Szmolja ki pontosan a kvantl ngyzetes torztst s kimenetnek entrpi-
jt!
c) Adjon kzeltst a kvantl ngyzetes torztsra s entrpijra! Mennyire
egyeznek a pontos s kzelto rtkek?
Rx 
(Segtsg: t lnt dt = x2 ln2x 14 .)
0
f (x)
6
1
@
@
@
@
@ -
1 1 x

5.4. feladat (A LloydMax-algoritmus nem optimlis). Mutasson pldt arra,


hogy a LloydMax kvantltervezo algoritmus nem mindig a minimlis torzts
kvantlhoz konvergl. Azaz adjon meg egy olyan rossz surusgfggvnyt s
kiindulsi kvantlt, hogy az algoritmus biztosan ne az optimumhoz konvergljon.

5.5. feladat. Szmtsa ki a szrs, m vrhat rtku normlis eloszls differen-


cilis entrpijt.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.6. M EGOLDSOK 242

5.6. feladat (Maximlis differencilis entrpia). Mutassa meg, hogy az adott vr-
hat rtku s szrs valsznusgi vltozk kzl a normlis eloszlsnak maxi-
mlis a differencilis entrpija.

5.7. feladat (Differencilis entrpia). Legyen X abszolt folytonos eloszls va-


lsznusgi vltoz, s jelljk H(X)-szel a differencilis entrpijt. Mutassa
meg, hogy brmely c > 0 szmra

H(cX) = H(X) + logc.

5.8. feladat. Legyen X egyenletes eloszls a [0, 60] intervallumon. Egy lp-
csoju egyenletes kvantlval kvantlva a ngyzetes torzts 0.03. Krlbell mek-
kora rtke? Mekkora a kvantl kimenetnek entrpija?

5.9. feladat. Egy standard normlis eloszls X valsznusgi vltozt a kvet-


kezo kvantlval kvantlunk:
(
a, ha x 0
Q(X) = .
a, ha x < 0

Szmtsa ki a kvantl ngyzetes torztst! Hogyan vlasszuk meg a-t a torzts


minimalizlshoz?

5.10. feladat. Legyen X egy 1 vrhat rtku, 13 szrsngyzetu, normlis elosz-


ls valsznusgi vltoz. rja fel az optimlis kompresszorfggvnyt a (x) stan-
dard normlis eloszlsfggvny segtsgvel.

5.11. feladat. A vesztesges baseline JPEG algoritmus mely lpsnl trtnik a


tnyleges tmrts? Hogyan eredmnyezhet ugyanaz az algoritmus klnbz o
tmrtsi arnyokat?

5.12. feladat. Egy MPEG videoszekvencia egy kpcsoportja legyen I 0 B1 P2 B3 B4 P5


B6 B7 P8 I9 , ahol az indexekkel az idobeli sorrendet jelltk. A B kpek a hozzjuk
legkzelebb eso I s P kpek alapjn mindkt irny predikcit hasznlnak. A P
kpek csak a hozzjuk legkzelebbi el ozo I kpet hasznljk a becslshez.
a) Adja meg a kpek helyes sorrendjt, amely megfelel o a dekdolshoz.
b) Ha a P5 kp megsrl, lehetsges-e a B1 , B3 , B7 , P8 kpek brmelyikt dek-
dolni?

5.6. Megoldsok
5.1. megolds. Az X valsznusgi vltoz surusgfggvnye
1 x
2
f (x) = e 22 .
2
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.6. M EGOLDSOK 243

Kvessk a LloydMax-algoritmust. Ehhez el oszr vegynk fel egy tetszoleges


kt szintu kvantlt, pldul

0 2, ha x 1,
Q2 (x) =
2, ha x < 1.
Optimalizljuk a kvantlt a kvantlsi szintek szerint, vagyis hatrozzuk meg az
intervallumhatrokat a legkzelebbi szomszd felttel kielgtsvel:

1 2, ha x 0,
Q2 (x) =
2, ha x < 0.
Alkalmazzuk a slypont felttelt:
R0
x f (x) dx Z0   r
1 2
x2 x22 0 2
x1 = =2 x e 2 dx = 2 e 2 = ,
R0 2 2
f (x) dx

s szimmetria okokbl r
2
x2 = ,

vagyis q
, ha x 0,
2
2
Q2 (x) = q
2 , ha x < 0.

Ez mr a lpsek ismtlsvel sem vltozik, teht Q 22 (x) egy LloydMax-kvantl,


melynek torztsa
Z
D(Q22 ) = (x Q22 (x))2 f (x) dx =

Z0  q 2 2 Z  q 2 2
1 x 1 x
= x+ 2
e 22 dx + x 2
e 22 dx =
2 2
0
Z r Z0
2 2
1 x 2 1 x
= x2 e 22 dx + 2 x e 22 dx
2 2

r Z Z
2 2
2 1 x2 2 2 1 x
2 x e 2 dx + e 22 dx =
2 2
0
r r
2 1 2 1 2
= 2 2 2 + 2 =
2 2
 
2
= 1 2 .

Kdolstechnika - 2006 - crysys web vltozat - 6.

5.6. M EGOLDSOK 244

5.3. megolds. A 2 bites, egyenletes kvantl lpskze 4 = 0.5, s 4 kvant-


lsi tartomnya van, ezek: B1 = [1, 0.5), B2 = [0.5, 0), B3 = [0, 0.5), B4 =
[0.5, 1].
a) A kvantlsi szintek az intervallumok kzepn helyezkednek el, gy x 1 = 0.75,
x2 = 0.25, x3 = 0.25, x4 = 0.75.
b) A ngyzetes torzts defincija szerint
Z1
D(Q4 ) = (x Q4 (x))2 f (x) dx =
1
0.5
Z Z0
2
= (x + 0.75) (x + 1) dx + (x + 0.25)2 (x + 1) dx
1 0.5
Z0.5 Z1
2
+ (x 0.25) (1 x) dx + (x 0.75)2 (1 x) dx =
0 0.5
1 1 1 1
= + + + =
384 128 128 384
1
= .
48
A kvantl entrpijnak kiszmtshoz szksgnk van az eloszlsra:
0.5
Z 0.5
Z
1
p1 = P{Q4 (X) = 0.75} = f (x) dx = (x + 1) dx = ,
8
1 1
Z0 Z0
3
p2 = P{Q4 (X) = 0.25} = f (x) dx = (x + 1) dx = ,
8
0.5 0.5
Z0.5 Z0.5
3
p3 = P{Q4 (X) = 0.25} = f (x) dx = (1 x) dx = ,
8
0 0
Z1 Z1
1
p4 = P{Q4 (X) = 0.75} = f (x) dx = (1 x) dx = ,
8
0.5 0.5

ahonnan
   
1 1 3 3 3
H(Q4 (X)) = 2 log + 2 log = 3 log 3 1.81.
8 8 8 8 4

c) A ngyzetes torzts kzeltsre ismert kplet szerint

24 1
D(Q4 ) = ,
12 48
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.6. M EGOLDSOK 245

teht a kzelts pontos. Az entrpira a kzelts


H(Q4 (X)) H( f ) log 4 .
Ehhez ki kell szmtanunk az eloszls differencilis entrpijt:
Z1
H( f ) = f (x) log f (x) dx =
1
Z0 Z1
= (x + 1) log(x + 1) dx (1 x) log(1 x) dx =
1 0
Z1 Z1
1 1
= t lnt dt t lnt dx =
ln 2 ln 2
0 0
 
2 2 ln 1 1
= 1 =
ln 2 2 4
1
= ,
2 ln 2
s ebbol
1 1
H(Q4 (X)) log 0.5 = + 1 1.72,
2 ln 2 2 ln 2
vagyis a hiba 0.1 alatti.

5.5. megolds. Legyen (x) az m vrhat rtku, szrs normlis eloszls su-
rusgfggvnye. Ekkor
Z
H() = (x) log (x) dx =

Z 2
1 (xm)
= (x) log e 22 dx =
2

Z Z
1 1 (x m)2
= (x) log dx + (x) dx =
2 ln 2 22

Z Z
1 1 1
= log (x) dx + x2 (x) dx
2 ln 2 22

Z Z
1 2m 1 m2
x(x) dx + (x) dx =
ln 2 22 ln 2 22

1 1 1 2 2 1 2m 1 m2
= log + ( + m ) m + =
2 ln 2 22 ln 2 22 ln 2 22

= log 2e.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.6. M EGOLDSOK 246

5.6. megolds. Legyen (x) az m vrhat rtku, szrs normlis eloszls su-
rusgfggvnye, f (x) pedig egy szintn m vrhat rtku, szrs, de egybknt
tetszoleges eloszls surusgfggvnye. Ekkor
Z Z
H() H( f ) = (x) log (x) dx + f (x) log f (x) dx =

Z 2 Z
1 (xm)
= (x) log e 22 dx + f (x) log f (x) dx =
2

Z Z Z
1 1 (x m)2
= (x) log dx + (x) dx + f (x) log f (x) dx =
2 ln 2 22

Z Z Z
1 1 1 1 2m
= log (x) dx + x (x) dx
2
x(x) dx
2 ln 2 22 ln 2 22

Z Z
1 m2
+ (x) dx + f (x) log f (x) dx =
ln 2 22

Z Z Z
1 1 1 2 1 2m
= log f (x) dx + x f (x) dx x f (x) dx
2 ln 2 22 ln 2 22

Z Z
1 m2
+ f (x) dx + f (x) log f (x) dx =
ln 2 22

Z Z
= f (x) log (x) dx + f (x) log f (x) dx =

Z
(x)
= f (x) log dx
f (x)

Z  
1 (x)
f (x) 1 dx =
ln 2 f (x)

Z Z
1 1
= (x) dx + f (x) dx =
ln 2 ln 2

= 0,
1
ahol kihasznltuk a log x ln 2 (x 1) egyenlotlensget.

5.7. megolds. Legyen az X vltoz surusgfggvnye a [A, A] intervallumban


f (x), azon kvl pedig 0. Ekkor az cX vltoz surusgfggvnye a [cA, cA] inter-
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.6. M EGOLDSOK 247

1 x

vallumban c f c , azon kvl 0, differencilis entrpija pedig
ZcA  
1 x 1 x
H(cX) = c f c log c f c dx =
cA
ZA 
1
= f (x) log c f (x) dx =
A
ZA ZA
= f (x) log f (x) dx + log c f (x) dx =
A A
= H(X) + logc.

5.8. megolds. Az N-szintu egyenletes kvantl ngyzetes torztsra ismert k-


zelts szerint
2
D(QN ) N ,
12
amelybol N 0.6. A kvantl kimenetnek entrpija

H(QN (X)) H( f ) log N ,


amelyhez szksgnk van a [0, 60] intervallumon egyenletes eloszls differencilis
entrpijra:
Z60
H( f ) = f (x) log f (x) dx =
0
Z60
1 1
= log dx =
60 60
0
= log 60,
vagyis
60
H(QN (X)) log 60 log 0.6 = log = log 100 6.64.
0.6
5.9. megolds. A kvantl ngyzetes torztsa:
Z
D(Q) = (x Q(x))2 (x) dx =

Z0 Z
= (x + a) (x) dx +
2
(x a)2 (x) dx =
0
Z0 Z0 Z0
= x (x) dx +
2
2xa(x) dx + a2 (x) dx

Kdolstechnika - 2006 - crysys web vltozat - 6.

5.6. M EGOLDSOK 248

Z Z Z
+ x (x) dx
2
2xa(x) dx + a2 (x) dx =
0 0 0
Z Z
= (x2 + a2 )(x) dx 4 ax(x) dx =
0

2 2 2a
= 1+a =

r !2
2 2
= a +1 ,

q
amelyet az a = 2 vlaszts minimalizl. Ez az eredmny megegyezik a slypont
felttellel, hiszen
R0 R
x(x) dx r x(x) dx r

22 2 0
2
2 2
x1 = = = s x2 = R
= = .
R0 1 1
(x) dx 2 (x) dx 2
0

5.10. megolds. Az X valsznusgi vltoz surusgfggvnye:


(x1)2
3 21
f (x) = e 3 .
2
Az (5.3) egyenlet szerint az optimlis kompresszorfggvny
Rx
f 1/3 (z) dz
1
G (x) = + R =
2
f 1/3 (z) dz

Rx q 6 3 (z1)
2

2 e dz
2
1
= + R q 2
=
2 6 3 (z1)
2 e dz
2

q x1
R y 2
6 3 1 e 2 dy
2 2
1
= +q R
=
2 6 3 y
1 e 2
2

2 2
dy

1
= + (x 1).
2
5.11. megolds. A tnyleges tmrts a kvantlsi lpsben trtnik (a DCT utn).
Klnbzo tmrtsi arnyokat gy kaphatunk, ha a kvantlsi tblt (vagyis a
kvantlsi lpskzket) megvltoztatjuk, s gy a DCT egytthatk pontosabb vagy
kevsb pontos kvantltjt kapjuk.
Kdolstechnika - 2006 - crysys web vltozat - 6.

5.7. SSZEFOGLALS 249

5.12. megolds.
a) Tbb helyes vlasz is elkpzelhet o. Azt kell biztostanunk, hogy az I kpet
kldjk el eloszr, majd ezt kvetik a P kpek. A B kpek csak azon P s I
kpek utn kvetkezhetnek, amelyeket felhasznltunk a predikci sorn. Pl-
dul az I0 P2 B1 P5 B3 B4 P8 B6 B7 I9 s az I0 P2 P5 P8 B1 B3 B4 B6 B7 I9 egyarnt helyes
sorrendek.
b) P5 megsrlse esetn az sszes olyan kp dekdolhatatlann vlik, amelyek-
nek a predikcijhoz felhasznltuk. B 3 , B7 s P8 fggenek P5 -tol, mg B1 nem.

5.7. sszefoglals
Ebben a fejezetben a vesztesges tmrtsi eljrsokat vettk sorra, amelyeknl
nem kvetelmny a tmrtett adatokbl az eredeti adatok tkletes helyrelltsa
[2, 3, 4, 7, 8, 12, 15]. Az rzkszerveinkkel sokszor szinte szrevehetetlen min o-
sgromlst a tmrts hatkonysgnak nvelse rdekben engedjk meg.
Megismerkedtnk a kvantlval, amely folytonos rtkkszletu jelek diszkrt
rtkkszletuv alaktst vgzi. Bemutattuk a LloydMax kvantltervez o algo-
ritmust s kiszmtottuk az egyenletes kvantl torztst [2, 7, 10]. Megvizsgltuk
a kompanderes s a vektorkvantls muvelett, amely technikk nem egyenletes el-
oszls jelek esetn kedvezobb torztst nyjtanak [2, 9]. Az utbbi egy specilis
esetre, a transzformcis kdolsra is vettnk nhny pldt. A trben vagy id o-
ben kzeli jelek s mintk kztti sszefggseket kihasznl eljrs, a prediktv
(memrival rendelkezo) kdols kerlt ezutn sorra, amely csaldbl a DPCM-
et, a delta modulcit s a Jayant-kvantlt vizsgltuk, jellemz o hibikra is utalva
[17].
A vesztesges tmrtsi mdszerek alkalmazsaknt el oszr beszd- s hang-
tmrtoket tekintettnk [6, 10, 11, 17]. Kitrtnk rzkszerveink (flnk s sze-
mnk) sajtossgaira s hinyossgaira, amelyeket kihasznlva hatkony tmr-
tsi mdszereket dolgozhatunk ki. A kptmrt ok kzl a GIF s a JPEG formtu-
mot vizsgltuk, majd az MPEG videotmrt o kerlt tertkre [6, 10, 16, 17].

Irodalomjegyzk
[1] Ash, R.B. Information Theory. Interscience Publishers, 1965.

[2] Cover, T., Thomas, J. Elements of Information Theory, Second Edition. John
Wiley and Sons, New Jersey, 2006.

[3] Csibi S. (szerk.) Informci kzlse s feldolgozsa. Tanknyvkiad, Buda-


pest, 1986.

[4] Csiszr I., Fritz J. Informcielmlet. ELTE TTK jegyzet, Budapest, 1986.
Kdolstechnika - 2006 - crysys web vltozat - 6.

I RODALOMJEGYZK 250

[5] Csiszr I., Krner J. Information Theory: Coding Theorems for Discrete
Memoryless Systems. Akadmiai Kiad, Budapest, 1981.

[6] Ferenczy P. Video- s hangrendszerek. Muszaki Knyvkiad, Budapest,


1986.

[7] Gallager, R.G. Information Theory and Reliable Communication. Wiley,


1968.

[8] Gher K. (szerk.) Hradstechnika. Muszaki Knyvkiad, Budapest, 1993.

[9] Gersho, A., Gray, R.M. Vector Quantization and Signal Compression. Klu-
wer, 1992.

[10] Gibson, J.D., Berger, T., Lookabaugh, T., Lindbergh, D., Baker, R.L. Digital
Compression for Multimedia (Principles and Standards). Morgan Kaufmann
Publishers, San Francisco, 1998.

[11] Gordos G., Takcs Gy. Digitlis beszdfeldolgozs. Muszaki Knyvkiad,


Budapest, 1983.

[12] Gyrfi L., Gyori S., Vajda I. Informci- s kdelmlet. TypoTEX Kiad,
Budapest, 2002.

[13] Linder T., Lugosi G. Bevezets az informcielmletbe. Muegyetemi Kiad,


Budapest, 1993.

[14] Massey, J.L. Applied Digital Information Theory. Course Notes, ETH Zrich,
1984.

[15] McEliece, R.J. The Theory of Information and Coding. Addison-Wesley,


1977.

[16] Rao, K.R., Hwang, J.J. Techniques and Standards for Image, Video and Audio
Coding. Prentice Hall, 1996.

[17] Sayood, K. Introduction to Data Compression. Morgan Kaufmann Publis-


hers, San Francisco, 1996.

[18] Shannon, C.E. A mathematical theory of communication. Bell System Tech-


nical Journal, 1948.
Kdolstechnika - 2006 - crysys web vltozat - 6.

Trgymutat

3DES, 92 CRL, 128


CTR md, 115
ADPCM, 219 csoms hibzs, 37, 47
AES, 93
affin rejtjelezo, 82 DAT hibavdelme, 46
aktv tmads, 74 DaviesMeyer-sma, 119
algoritmikus biztonsg, 78 DBS, 45
aritmetikai kdols, 165 DCT, 213
ARQ, 44 dekdols, 10
aszimmetrikus kulcs rejtjelezs, 75, delta modulci, 220
98 DES, 89
tlagos kdszhossz, 155 DiffieHellman-protokoll, 135
DigiCash protokoll, 141
beszdtmrts, 223 digitlis alrs, 124
bitallokci, 213 lenyomat alrsa, 126
blokk-kd, 10, 158 vak alrs, 142
blokkrejtjelezsi mdok, 105 Dirichlet-partci, 210
CBC, 107 DPCM, 219
CFB, 110 DWHT, 213
CTR, 115
ECB, 105 ECB md, 105
OFB, 112 egyrtelmu dekdolhatsg, 153
blokkrejtjelezo, 76, 87 egyirny hash fggvny, 116
BurrowsWheeler-kdols, 182 egyszeru hibzs, 10, 14
elem rendje, 24
CA, 127 entrpia, 155
Caesar-rejtjelezo, 79 eros tkzs-ellenllsg, 116
Carmichael-szm, 105 euklidszi algoritmus, 99
CBC md, 107 euklidszi oszts polinomokra, 26
CBC-MAC, 121 explicit kulcshitelests, 133
CD hibavdelme, 46
CELP, 226 faxkdols, 185
CFB md, 110 Feistel-struktra, 90
ciklikus eltols, 32 felttel nlkli biztonsg, 78
ciklikus kd, 32 feltteles biztonsg, 78
CRC, 44 Fermat-lprm, 104
Kdolstechnika - 2006 - crysys web vltozat - 6.

TRGYMUTAT 252

Fermat-faktorizci, 102 JPEG, 213


Fermat-prmteszt, 104
folytonos tnus trols, 230 kaszkd kd, 40
formns beszdkdol, 224 Kerckhoff-elv, 77
forrsbc, 9 kihvsvlasz protokollok, 129
futamhossz kdols, 185 kimerto kulcskeress, 78
knai maradkttel, 103
G.711, 223 kitlts (padding), 105
G.721, 223 kd, 10
genertormtrix, 17, 29 kdbc, 9
genertorpolinom, 32 kdtfuzs, 37, 47
GSM beszdkdolsa, 226 kdols, 10
GSM elofizeto-hitelests, 136 kdrvidts, 41
gyenge tkzs-ellenllsg, 116 kdsz, 9
kdszpolinom, 32
Hamming-kd kdtvolsg, 13
binris, 21 kzpen tallkozs tmads, 92
nembinris, 29 krominancia, 230
Hamming-tvolsg, 10 kulcscsere protokollok, 131
hash fggvny, 116 DiffieHellman, 135
helyettestses-permutcis rejtjelez o, OtwayRees, 133
88 rejtjelezett kulcs alrsa, 134
hibacsom, 37, 45 kulcsfolyam rejtjelezo, 76, 84
hibajavts, 13 nszinkronizl, 84
hibajelzs, 13 szinkron, 84
hibavektor, 20 kulcsfrissessg, 133
Hill-rejtjelezo, 83 kulcshitelests, 132, 133
hitelests, 74 kulcskonfirmci, 132
hitelests szolgltat, 127 kulcsmegegyezs protokoll, 132
HMAC, 123 kulcsszllt protokoll, 132
Huffman-kd, 162 klnbsgi kdols, 215
adaptv, 173 kvantl, 201
egyenletes, 205
implicit kulcshitelests, 132
entrpija, 206
indexelt trols, 230
kompanderes, 206
informciforrs, 159
torztsa, 205
integritsvdelem, 74
vektorkvantl, 209, 212
irreducbilis polinom, 27
ismert nylt szvegu tmads, 77 lavinahats, 88
ismtelt ngyzetreemels s szorzs LempelZiv-kdols, 176
algoritmus, 101 letagadhatatlansg, 75
iteratv hash fggvny, 118 LFSR, 85
LindeBuzoGray-algoritmus, 210
javthat hibaminta, 21
lineris kd, 16, 28
Jayant-kvantl, 220
Kdolstechnika - 2006 - crysys web vltozat - 6.

TRGYMUTAT 253

lineris komplexits polinom, 25


bitsorozat, 86 prediktv kdols, 215
lineris prediktv kdols, 225 prefix kd, 154
LloydMax-felttel, 203 primitv elem, 24
LPC, 225 prmtesztels, 104
luminancia, 230
LZ77, 176 redundancia, 17
LZ78, 178 ReedSolomon-kd, 30, 35
LZW, 179 Reiger-optimlis, 38
rejtett szvegu tmads, 76
MAC, 120 rejtjelezs, 75
maximlis tvolsg kd, 14 aszimmetrikus kulcs, 75, 98
MDS kd, 14 nyilvnos kulcs, 76, 98
MerkleDamgard-kiegszts, 119 szimmetrikus kulcs, 75
minimlis sly, 19 rszsvos kdols, 215
modulo p aritmetika, 24 RPE, 226
monoalfabetikus helyettests, 79 RSA, 98
MPE, 226
MPEG, 213, 228
S-doboz, 95
ShannonFano-kd, 156
ngyzetes torzts, 201, 209 shift rejtjelezo, 79
nyilvnos kulcs hitelests, 126 Singleton-korlt, 14
nyilvnos kulcs tanstvny, 126 SP rejtjelezo, 88
nyilvnos kulcs rejtjelezs, 76, 98 SSL Handshake protokoll, 139
SSL protokoll, 137
OFB md, 112 Handshake protokoll, 139
one-time pad, 86 Record protokoll, 137
OtwayRees-protokoll, 133 SSL Record protokoll, 137
standard elrendezsi tblzat, 20
sszefggo kulcsokra plo tmads, sly, 19
77 slypont felttel, 204
paritsellenorzo mtrix, 18 szletsnapi paradoxon, 117
paritsellenorzo polinom, 33 szimmetrikus kulcs rejtjelezs, 75
paritskd szindrma, 20
egydimenzis, 11, 41 szindrma dekdols, 20
ktdimenzis, 40 szinuszos beszdkdol, 225
paritsmtrix, 18, 29 szisztematikus generls, 34
paritsszegmens, 18 szisztematikus kd, 17
partnerhitelests, 129 szorzat rejtjelezo, 88
kihvsvlasz protokollok, 129 szorzatkd, 38
passzv tmads, 74 tblzatos dekdols, 11, 21
PCM, 223 tmadmodell, 76
PKI, 126 tanstvny visszavonsi lista, 128
polialfabetikus helyettests, 80 tanstvny-lnc, 127
Kdolstechnika - 2006 - crysys web vltozat - 6.

TRGYMUTAT 254

teletext, 44
test, 22
titkosts, 74
tkletes titkosts, 86
trlses hiba, 14
transzformcis kdols, 212

tkzs-ellenllsg, 116
zenet, 9
zenethitelesto kd, 120
CBC-MAC, 121
hash fggvnyre plo, 122
HMAC, 123
zenetszegmens, 18

vak alrs, 142


vlasztott nylt szvegu tmads, 77
vlasztott rejtett szvegu tmads, 77
vges test, 23
Vigenre-rejtjelezo, 80
Voronoi-tartomny, 210

WalshHadamard-
transzformci, 213

You might also like