Professional Documents
Culture Documents
Kdolstechnika
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
Trgymutat 251
Kdolstechnika - 2006 - crysys web vltozat - 6.
Elosz
E L OSZ 6
Buttyn Levente
Gyrfi Lszl
Gyori Sndor
Vajda Istvn
Kdolstechnika - 2006 - crysys web vltozat - 6.
1. fejezet
Bevezets
2. fejezet
Hibajavt kdols
d(c, v) 0,
g : Qn C, f 1 : C F k .
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.
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
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 .
vagyis
dmin
> d(v, c).
2
Kdolstechnika - 2006 - crysys web vltozat - 6.
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 .
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.
1 + n = 2nk . (2.3)
V (n,t) 2nk .
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)
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.
G = (Ik , B) (2.6)
Kdolstechnika - 2006 - crysys web vltozat - 6.
HcT = 0
H segtsgvel teht meg tudjuk llaptani, hogy egy vett sz valban kdsz-e.
H = (A, Ink )
Azaz
A = BT
kell teljesljn. (Binris esetben B T = BT .)
Kdolstechnika - 2006 - crysys web vltozat - 6.
2.8. definci. Egy c vektor slya a koordinti kztt lev o nem nulla elemek
szma, jellse w(c).
szmot rtjk.
B IZONYTS :
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
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.
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
n= 3 k= 1
7 4
15 11
31 26
63 57
127 120
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:
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).
Pldk testre:
2.5. ttel. Egy GF(q) esetn q = pm alak, ahol p prmszm, teht q vagy prm-
szm, vagy prmhatvny.
aq1 = 1.
Kdolstechnika - 2006 - crysys web vltozat - 6.
am = 1,
Aritmetika GF(p)-ben
a + b = a + b mod p,
a b = a b mod p,
ahol + illetve jelli a vals sszeadst illetve szorzst.
+012 012
0 012 0000
1 120 1012
2 201 2021
log a = a
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 .)
Nyilvn
deg c(x) = deg a(x) + deg b(x)
Kdolstechnika - 2006 - crysys web vltozat - 6.
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.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.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
s
0 < deg(ai (x)) < deg(P(x)), i = 1, 2.
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
majd testelemekre
+0123 0123
0 0123 00000
1 1032 10123
2 2301 20231
3 3210 30312
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)
HcT = 0
1 + n(q 1) qnk ,
teht
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
c0 = u(0 )
c1 = u(1 )
c2 = u(2 )
.
..
cn1 = u(n1 ).
Kdolstechnika - 2006 - crysys web vltozat - 6.
dmin = n k + 1,
B IZONYTS :
teht
wmin n k + 1.
Ugyanakkor a 2.1. ttel s a 2.3. ttel miatt
n k + 1 dmin = wmin ,
Sc = (cn1 , c0 , . . . , cn2 ).
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).
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.
xn 1
h(x) =
g(x)
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 ReedSolomon-kd
g(x) = (x )(x 2 ),
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.
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.7. KDKOMBINCIK 38
1. kdsz
2. kdsz
..
.
m. kdsz
Szorzatkd
2.7. KDKOMBINCIK 39
i1 - m m m m
m m m m
i2 -
-
m m m m
i3
6 6 6 6
j1 j2 j3 j4
2.7. KDKOMBINCIK 40
C2 C1 C1 C2
-
adat klso - belso - csatorna - belso - klso -adat
be kdol kdol dekdol dekdol ki
kdol dekdol
Kaszkd kdok
2.7. KDKOMBINCIK 41
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.
0001011
amelynek alapjn a keresett alteret a
10110
G=
01011
Paritsbittel bovts
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.
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.
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:
2.9. A LKALMAZSOK 44
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.
polinomot is. Az Intel 82586-os Ethernet chip tartalmaz egy 32 bites genertorpo-
linomot is:
2.9. A LKALMAZSOK 45
zenetet, ahhoz a
2.9. A LKALMAZSOK 46
g0 (x) = x11 + x9 + x7 + x6 + x5 + x + 1
2.24. ttel. A (23, 12) paramteru Golay-kd egy 3 hibt javt perfekt, lineris,
ciklikus kd.
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
2.10. F ELADATOK 48
2.10. Feladatok
Lineris blokk-kdok
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.10. F ELADATOK 49
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.7. feladat. Definiljon egy (5, 3) paramteru GF(4) feletti kdot a genertormt-
rixa, amely
10011
G = 01012 .
00113
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.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
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.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
+0123 0123
0 0123 00000
1 1230 10123
2 2301 20231
3 3012 30312
Testet kapunk-e?
+0123 0123
0 0123 00000
1 1032 10123
2 2301 20231
3 3210 30312
2x + y = 3
x + 2y = 3
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?
Ciklikus kdok
2.29. feladat. Valaki azt lltja, hogy egy 1 hibt javt binris ciklikus kd egyik
szava 0001111. Lehetsges ez?
2.10. F ELADATOK 53
a) a kdszavak halmazt,
b) a minimlis tvolsgot,
c) a paritsellenorzo polinomot!
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.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.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.
Kdkorltok
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.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.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.10. F ELADATOK 56
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.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.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
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.10. F ELADATOK 58
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.10. F ELADATOK 59
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.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)
c)
szindrma hibavektor
000 00000
001 00001
010 00010
011 00011
100 00100
101 01000
110 10000
111 10001
2.11. M EGOLDSOK 61
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
2.11. M EGOLDSOK 64
0111 0001
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.17. megolds. d = 4.
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
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.24. megolds.
a) x = 1, y = 1.
b) A harmadik sor szerint kifejtve a determinnst: D = 0 + 3 = 3.
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
2.11. M EGOLDSOK 67
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.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.41. megolds.
a) Igen, mivel h(x) | xn 1.
b) Nem, mivel a Singleton-korlt miatt C 0 minimlis tvolsga legfeljebb k + 1.
2.11. M EGOLDSOK 68
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.11. M EGOLDSOK 70
2.11. M EGOLDSOK 71
2.72. megolds. x17 + x16 mod g(x) maradkot kell meghatrozni. gy a keresett
16 bites CRC: 00110000|01100011.
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.78. megolds.
a)
sly darab
0 1
4 9
6 6
Kdolstechnika - 2006 - crysys web vltozat - 6.
2.12. SSZEFOGLALS 72
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
[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.
[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.
[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.
[14] Massey, J.L. Applied Digital Information Theory. Course Notes, ETH Zrich,
1984.
[17] Peterson, W.W. Error Correcting Codes. MIT Press Wiley, Cambridge,
1961.
3. fejezet
Kriptogrfia
Y = EK(X)
X E D X = DK' (Y)
K K'
Alapfogalmak
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:
Trtnelmi pldk
{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}
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.
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
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.
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
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.
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.
s
11 8
(11, 24) = (121 + 72 mod 26, 88 + 168 mod 26) = (11, 22)
3 7
3.1. ttel. Egy A mtrix akkor s csak akkor invertlhat Z k felett, ha (k, det A) =
1.
Ekkor
a22 a12
A = (3.3)
a21 a11
s
1 1 a22 a12
A = (det A) (3.4)
a21 a11
(det A)1 = 1
1 7 8 7 18
A = =
3 11 23 11
Kulcsfolyam rejtjelezok
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.
...
3.1. definci. Egy bitsorozat lineris komplexitsa alatt a sorozatot el ollt leg-
rvidebb LFSR hosszt rtjk.
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.4. ttel. A tkletes titkosts szksges felttele, hogy a kulcs hossza legalbb
akkora legyen, mint a tmrtett nylt szveg hossza.
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:
S1 S2 Sq
... ... ...
P
... ... ...
k u l cs t e m e z
S1 S2 Sq
... ... ...
P
...
S1 S2 Sq
... ... ...
P
... ... ...
rejtjeles blokk
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.
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
Xi
(32)
expanzi
(48)
(48)
Ki
(48)
S1 S2 S3 S4 S5 S6 S7 S8
(32)
P
(32)
Yi
X E D E Y = EK3(DK2(EK1(X)))
K1 K2 K3
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.
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
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.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:
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.
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.
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.
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
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.
(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)
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
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.
(xe )d x (mod n)
x xv(n)+1 (mod n)
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)
x xv(n)+1 (mod p)
x xv(n)+1 (mod q)
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
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
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.
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.
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.
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
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 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.
Az ECB md
Xi = DK (Yi ) i = 1, 2, . . . , N, (3.16)
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.
X1 X2 XN
IV YN-1
EK EK ... EK
Y1 Y2 YN
A CBC md
X1 = DK (Y1 ) IV (3.19)
Xi = DK (Yi ) Yi1 i = 2, 3, . . . , N (3.20)
(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
EK EK
(s) (s)
(n) (n)
s bit kivlasztsa s bit kivlasztsa
(s) yi (s)
(s) (s) (s) (s)
xi xi
Y1 = X1 EK (IV) (3.22)
Yi = Xi EK (Yi1 ) i = 2, 3, . . . (3.23)
X1 = Y1 EK (IV) (3.24)
Xi = Yi EK (Yi1 ) i = 2, 3, . . . (3.25)
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.
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.
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.
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.
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
Hash fggvnyek
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
x zenet kitlts
...
x1 x2 xL
(b) (b) (b)
h
f (n) f (n) f (n)
CV0 ... h(x)
(n) CV1 CV2 CVL-1
xi
CVi-1 E CVi
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
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.
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:
K m m'
f ... f f ... f
CV0 ' = MAC
K(m|m'
)
CV1 = MACK(m)
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:
ahol
Kdolstechnika - 2006 - crysys web vltozat - 6.
Digitlis alrs
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.
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.
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.
gykr hitelests
szolgltat kulcsa
kiadott tanstvny
Partnerhitelests
(1) B A: NB
(2) A B: EKAB (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.
(1) B A: NB
(2) A B: SA (NB )
(1) B A: EA (NB )
(2) A B: NB
(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 )
(1) A B: NA
(2) B A: EKAB (A | NA )| NB
(3) A B: EKAB (B | NB )
bol. Ismert nylt szveg rejtjelezse esetn pedig a rejtjelez o fggvny ismert
nylt szvegu tmads elleni ellenllkpessge biztostja ugyanezt.
A mdostott OtwayRees-protokoll
A DiffieHellman-protokoll
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
3.5. Alkalmazsok
GSM
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.
(tmrtett) fragmens
MAC
kitlts
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.
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.
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.
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.
K = MD5(K 0 | SHA1(A | K 0 | NC | NS )) |
Kdolstechnika - 2006 - crysys web vltozat - 6.
MD5(K 0 | SHA1(BB | K 0 | NC | NS )) |
MD5(K 0 | SHA1(CCC | K 0 | NC | NS ))
DigiCash
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
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.
1 2 3 4 5
a
b
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.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.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.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.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?
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?
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.8. megolds.
a) Nem, 586 25 (mod 87)
b) Igen, 3232 (1)32 1 (mod 33).
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.
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.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.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.
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
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
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.
[6] Stinson, D., Cryptography: Theory and Practice. CRC Press, 1995.
Kdolstechnika - 2006 - crysys web vltozat - 6.
4. fejezet
Adattmrts
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.
0 1
0 1 0 1
00 01 10 0 1
110 111
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.
sszeggel definiljuk.
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,
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(g(X)) H(X),
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
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.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.
Blokk-kdols
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.
Markov-lncok
p(s | v)
#
R #
j
p(v | v) v s p(s | s)
"!
Y "!
I
p(v | s)
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
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.
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
Megmutathat, hogy ha
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.
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.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.
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,
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:
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
INPUT: c={kdsz}
n={dekdoland blokk hossza}
p[ ]={szimblumok valsznusgei}
w[ ]={szimblumok kumullt valsznusgei}
F[ ]={forrsbc}
Kdolstechnika - 2006 - crysys web vltozat - 6.
1 5
0 2 6 1
1 2 7 5
2 3 9 6
1 7 23 2
2 12 36 3
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.
OUTPUT: c={kdsz}
E=0
V=1
hossz=1
szmll=0
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.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.
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
4m
B
1m 3m
B
B
1m 2m
B
B
1m 1m
B
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
Az LZ77 algoritmus
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.
c s i r i b i r i c s i r i b i r i b o ...
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:
Az LZ78 algoritmus
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, 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.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.
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
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
4.10. Alkalmazsok
Faxkdols
h = 64m + t t = 0, 1, . . . , 63 m = 0, 1, . . . , 26
b1 b2
? ?
6 6 6
a0 a1 a2
b1 b2
? ?
6 6 6
a0 a1 a2
Tmrto programok
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)
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.4. feladat. Egy szablyos pnzrmt addig dobunk fel, amg rst nem kapunk.
Jellje az X valsznusgi vltoz a dobsok szmt. Mennyi az X entrpija?
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.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.17. feladat. Legyen X egy bjt rtku valsznusgi vltoz gy, hogy
P{X = i} = pi , i = 0, 1, . . . , 255,
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.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.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).
4.6. megolds.
H(X,Y ) = p(x, y) log p(x, y) =
x,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.
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.10. megolds. Alkalmazza a 4.7. feladat eredmnyt gy, hogy p legyen az X,Y
egyttes eloszlsa, q pedig az X s Y szorzateloszlsa.
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
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
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
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 ),
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
a|aa|aaa|aaaa|aaaaa|aaaaaa|aaaaaaa|aaaaaaaa
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.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:
w0 = 0, w1 = 0. 11 . . . 1} 0 2 ,
| {z w2 = 0. 11 . . . 1} 2
| {z
k1 k
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.22. megolds. Adott vrhat rtku s pozitv egsz rtku vletlen betuk esetn
a legnagyobb tlagos kdszhossz geometriai eloszlsa esetn addik.
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
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
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)
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)
|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 , ).
6
Q(x)
x5 -
x4
x3
-
y1 y2 y3 y4 x
x2
x1
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
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
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-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.
Egyenletes kvantl
D(QN ) 1
lim =
N 2N 12
nagy N-ek, vagyis finom (kis lpskzu) kvantls esetn, ami egy hasznos kze-
lts lehet egyenletes kvantl tervezsnl.
Kompanderes kvantl
| {z }
kvantl
y = G(x)
6 x = G1 (y) 6
- -
x y
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
g(x) = G0 (x)
Kdolstechnika - 2006 - crysys web vltozat - 6.
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
a derivltjt, pontosabban
Zx
1
G(x) = + g(z) dz,
2
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
i = yi yi1 .
Vektorkvantls
s s
s s
s s
s s
s s
s s
Bi = {x : kx xi k kx x j k, j 6= i}.
s
s
s
s
s s
s
s
s
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
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.
(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.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
216
Kdolstechnika - 2006 - crysys web vltozat - 6.
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.
Kpezzk a klnbsgeket:
6, 4, 4, 6, 2, 0, 4, 2.
dbn = Q(dn ) = dn + qn
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 .
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.
+ mdn-
xn - dbn - + m
dbn - xb-
n
kvantl
pn 6 +
pn 6
pn + m
-
?
+ prediktor
xbn dekdol
prediktor
kdol
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.
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.
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
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
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
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.
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
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.
Hangtmrts
Kptmrts
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.
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.
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.
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
r - r r - r r -r
r r
r r r
r
? r r
r r
r
?
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
Y Cb Cr
kpcsoport kp sv makro- blokk
blokk
j j
j j j
R R R
I B B P B B P B B I
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. 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.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.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.6. Megoldsok
5.1. megolds. Az X valsznusgi vltoz surusgfggvnye
1 x
2
f (x) = e 22 .
2
Kdolstechnika - 2006 - crysys web vltozat - 6.
s szimmetria okokbl r
2
x2 = ,
vagyis q
, ha x 0,
2
2
Q2 (x) = q
2 , ha x < 0.
ahonnan
1 1 3 3 3
H(Q4 (X)) = 2 log + 2 log = 3 log 3 1.81.
8 8 8 8 4
24 1
D(Q4 ) = ,
12 48
Kdolstechnika - 2006 - crysys web vltozat - 6.
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. 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.
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.
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
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.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.
[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.
[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.
[12] Gyrfi L., Gyori S., Vajda I. Informci- s kdelmlet. TypoTEX Kiad,
Budapest, 2002.
[14] Massey, J.L. Applied Digital Information Theory. Course Notes, ETH Zrich,
1984.
[16] Rao, K.R., Hwang, J.J. Techniques and Standards for Image, Video and Audio
Coding. Prentice Hall, 1996.
Trgymutat
TRGYMUTAT 252
TRGYMUTAT 253
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
WalshHadamard-
transzformci, 213