C o di erung und Si cher hei t - tcs.uni-luebeck.de · Die Co di eru ngstheorie b esch ¬aft igt...

24
Codierung und Sicherheit Unterlagen zum Lehrmodul WS2007/08 Prof. Dr. R¨ udiger Reischuk Institut f¨ ur Theoretische Informatik Universit¨ at zu L¨ ubeck 1

Transcript of C o di erung und Si cher hei t - tcs.uni-luebeck.de · Die Co di eru ngstheorie b esch ¬aft igt...

Codierung und Sicherheit

Unterlagen zum Lehrmodul WS2007/08

Prof. Dr. Rudiger Reischuk

Institut fur Theoretische InformatikUniversitat zu Lubeck

1

2 Codierung und Sicherheit , UzL WS 2007/08

1 Einleitung

1.1 Fragestellungen und Grundlagen der Codierungstheorie

Informatik: Wissenschaft der InformationsverarbeitungComputer Science: Wissenschaft des Rechnens mit MaschinenKryptologie = Kryptographie + Kryptoanalyse (griechisch: kryptos verborgen, logos Wort)

Die Codierungstheorie beschaftigt sich mit dem Problem, Information e!zient zu kodierenund fehlertolerant zu ubertragen, wobei Storungen als zufallig angenommen werden.

Die Kryptologie beschaftigt sich mit der Frage, wie man Daten verschlusseln und digital au-thentisieren kann, so daß ein Angreifer weder Informationen uber die Daten gewinnen kann(Vertraulichkeit und Privacy) noch unbemerkt Veranderungen vornehmen kann (Authentizitat).

Sicherheitsaspekte wollen wir im Sinne von System- und Protokoll-Sicherheit gegen geziel-te Angri"e verstehen, d.h informationstechnische Systeme sollen vor dem Zugri" Unbefugtergeschutzt werden, sowohl einzelne Maschinen (Zugri"skontrolle) als auch Netzwerke (Identifizie-rung und Sicherheit der Kommunikation).

Information und Informationsubertragung:

• Informationsmessung

• Codierung

• UbertragungKanalmodell: Sender — > — Kanal – > – Empfanger

!||"

Storung / Angreifer

Fragestellungen:

1. Information zu messen, Gegenstand der Informationstheorie, die vor etwa 50 Jahren vonShannon begrundet wurde basierend auf mathematischer Wahrscheinlichkeitsrechnung,wahrend algorithmische Ansatze von Solomono" und Kolmogorov entwickelt wurden,

2. fehlertolerante e!ziente Codes zu entwickeln, Gegenstand der Codierungstheorie,

3. Verschlusselungssverfahren zu konstruieren, die informationstheoretisch oder komplexittt-atstheoretisch sicher sind, die Kryptographie im engeren Sinne,

4. fur ein gegebenes kryptografisches Verfahren mit Hilfe von zahlentheoretischen, algebrai-schen oder kombinatorischen Methoden Algorithmen zu entwickeln, die in der Lage sind,derartig chi"rierte Nachrichten zu entschlusseln, die Kryptoanalyse,

R. Reischuk, ITCS 3

5. Erweiterung kryptografischer Primitive wie Verschlusselungsverfahren zu komplexeren An-wendung und Protokollen, um die Sicherheit und Vertraulichkeit zu erhohen, beispielsweiseAuthentisierung, digitale Signaturverfahren, digitale Wasserzeichen, Secret Sharing oderOblivous Transfer.

Fur unsere moderne informationstechnische Gesellschaft liegt die Bedeutung dieser Fragestel-lungen in einer Erhohung der– Sicherheit von Daten und Informationsnetzen– personlicher Unabhangigkeit und Freiheit des Einzelnen– sowie in einer Beschleunigung (und Vereinfachung) von Geschaftsprozessen (E-Commerce).Sie birgt aber auch neue Gefahren – siehe etwa die aktuellen innenpolitischen Diskussionen inDeutschland und die Verbote in Frankreich und den USA zu Nutzung kryptographischer Syste-me.Man unterscheidet zwischen o"ener und heimlicher Anwendung von Verschlusselungsverfahren,letzteres wird als Steganographie bezeichnet (unbemerkte Nachrichtenubermittlung).

Sicherheit kann man in einem informationstheoretischen Sinn fordern sowie aus algorithmischer/komplexitatstheoretischer Sicht betrachten.

Neue Problemstellungen ero"nen sich angesichts schneller digitaler Datenubertragung in globa-len Netzen:

• Fehlertoleranz bei Storungen

• Geheimhaltung bei Lauschangri"en

• Authentizitat bei aktiver Korruption

• Sicherheitsmanagement: Passwortverwaltung + Uberprufung

• Zugri"skontrolle

Folgende informatische und mathematische Gebiete liefern die Grundlagen fur die ThemenkreiseCodierung und Sicherheit:

• die Zahlentheorie, insbesondere Primzahlen, zur Entwicklung kryptographischer Verfah-ren,

• die Algebra und Kombinatorik fur den Entwurf von Codes und komplexen Protokollen,

• die Algorithmik zur e!zienten Implementierung kryptographischer Protokolle und Sy-steme,

• die Komplexittatstheorie, die Wahrscheinlichkeitstheorie sowie die Informations-theorie zur Analyse von Verfahren, insbesondere untere komplexitatstheoretische Schran-ken zum Nachweis der Sicherheit.

Durch neue Ergebnisse der Komplexitatstheorie einerseits und konkrete Sicherheitsbedurfnis-se in globalen Netzen andererseits hat die Kryptologie in den letzten Jahren eine sturmischeAufwartsentwicklung erlebt. Dieser Aufgabenbereich entwickelt sich zu einem der Schwerpunk-te im Tatigkeitsspektrum von Informatikern und Mathematikern mit einer Verschiebung vommilitarischen zum kommerziellen Bereich.

4 Codierung und Sicherheit , UzL WS 2007/08

1.2 Literaturverzeichnis

Literatur zur Codierungstheorie

[G68] R. Gallager, Information Theory and Reliable Communication, J. Wiley 1968

[L82] J. van Lint, Introduction to Coding Theory, Springer 1982

[W88] D. Welsh, Codes and Kryptography, Oxford Univ. Press, 1988

[H97] G. Hotz, Algorithmische Informationstheorie, Teubner 1997

[KPS97] H. Klimant, R. Piotraschke, D. Schonfeld, Informations- und Kodierungstheorie,Teubner 1997

[R97] S. Roman, Introduction to Coding and Information Theory, Springer 1997

[H87] R. Hamming, Information und Codierung, VCH Weinheim 1987

[HHJ89] D. Hankerson, G. Harris, P. Johnson, Intoduction to Information Theory and DataCompression, CRC 1998

[R06] R. Roth, Introduction to Coding Theory, Cambridge Univ. Press 2006

[S] R. Schulz, Codierungstheorie – Eine Einfuhrung, Vieweg 199

[KPS] H. Klimant, R. Piotraschke, D. Schonfeld, Informations- und Kodierungstheorie,Teubner 2003

Literatur zur Thematik Sicherheit

[S03] D. Salomon, Data Privacy and Security, Springer 2003

[PHS03] J. Pieprzyk, T. Hardjono, J. Seberry, Fundamentals of Computer Security, Springer2003

[E06] C. Eckert, IT-Sicherheit, Oldenbourg 2006

Weiterfuhrende Literatur

[K67] D. Kahn, The Codebreakers, 1967

[E68] E. Berlekamp, Algebraic Coding Theory, 1968

[PW72] W. Peterson, E. Weldon, Error Correcting Codes, 1972

[D82] D. Denning, Kryptographie and Data Security, Addison Wesley 1982

[M82] C. Meyer, Matyas, A New Dimension in Computer Data Security, J. Wiley 1982

[LW06] S. Loepp, W. Wootters, Protecting Information, Cambridge University Press 2006

[V07] J. Vacca, Practical Internet Security, Springer 2007

R. Reischuk, ITCS 5

2 Mathematische Grundlagen

2.1 Zahlentheorie und Arithmetik

2.1.1 Restklassenringe und die Funktionen von Euler und Carmichael

In der Kryptolographie spielt die modulare Arithmetik eine besondere Rolle. Mit ZZn bezeich-nen wir den Restklassenring uber ZZ der Zahlen modulo n fur eine beliebige naturliche Zahln # 2 . ZZn enthalt genau n Elemente, die man durch die naturlichen Zahlen 0, 1, . . . , n $ 1reprasentieren kann und bildet eine additive Gruppe. Das additiv inverse Element zu a ist dann$a = n$ a mod n .

Wichtig sind auch die multiplikativen Restklassengruppen ZZ!n der zu n teilerfremden Zahlen

im Intervall [1..n$ 1] . Ist namlich a teilerfremd zu n , dann existiert das multiplikativ Inversea!1 , das man beispielsweise mit dem erweiterten Euklidschen Algorithmus berechnen kann. Istn eine Primzahl, dann enthalt ZZ"n alle Elemente aus ZZn außer der 0 .

Definition 2.1 Die Eulersche ! -Funktion !(n) mißt die Ordnung (Große) von ZZ"n fureinen beliebigen Modul n . Fur zusammengesetzte Zahlen gilt:

!(n) = !(p) · !(q) falls n = p · q und p, q beliebige teilerfremde Zahlen sind,

sowie fur eine Primzahlpotenz n = pe mit e # 1 die Beziehung: !(pe) = pi!1 · (p$ 1) . Fur diePrimfaktorzerlegung n =

!ri=1 pei

i von n mit Primzahlen pi und Exponenten ei # 1 laßt sichdie Ordnung somit folgendermaßen berechnen:

!(n) =r"

i=1

!(peii =

r"

i=1

pei!1i (pi $ 1) =

r"

i=1

peii (1$ 1

pi) .

Theorem 2.1 [Euler] Fur alle a % IN mit ggT(a, n) = 1 gilt a!(n) & 1 mod n .

Der Speziallfall, daß n ein Primzahl ist, wird durch den Fermat’schen Satz abgedeckt:

ap & a mod p fur alle Primzahlen p und a % IN .

Aus diesen Ergebnissen folgt, daß das Inverse zu a mod n auch als a!(n)!1 berechnet werdenkann – speziell fur den Fall n prim gilt a!1 & an!2 mod n .

2.1.2 Primzahlen und der chinesische Restsatz

In der Kryptographie spielen Primzahlen eine wichtige Rolle. Es bezeichne

"(n) := die Anzahl der Primzahlen p ' n .

Theorem 2.2 [Primzahl-Satz] limn#$

"(n)n/ lnn

= 1 .

6 Codierung und Sicherheit , UzL WS 2007/08

Der Fundamentalsatz der Algebra besagt, daß jede naturliche Zahl eine eindeutige Zerlegungin Primfaktoren besitzt, die wir soeben bei der Berechnung der ! -Funktion bereits benutzthaben.

Der chinesische Restsatz andererseits liefert die folgende Eigenschaft: Fur eine beliebigenaturliche Zahl x und paarweise teilerfremde Moduli m1,m2, . . . ,mk mit M :=

!1%i%k mi > x

ist x durch die Reste xi = x mod mi eindeutig bestimmt; andererseits kann man beliebigeWerte yi aus [0..mi $ 1] vorgeben und findet dann genau eine Zahl y % [0,M $ 1] , so daßy & yi mod mi fur alle i gilt, mit anderen Worten, das System y & yi mod mi ( i besitztgenau eine Losung mod mi .

Sei Mi := M/mi und bi := M!1I mod mi , dann laßt sich die Losung berechnen als

y =#

i

yi · bi · Mi .

2.1.3 Erweiterter Euklidischer Algorithmus (EEA)

EEA(a, b)INPUT: 2 naturliche Zahlen a, b mit a # b .OUTPUT: d := ggT(a, b) sowie x, y % ZZ , so daß ax + by = d .if b = 0 then do d := a ; x := 1 ; y := 0 enddo;if b > 0 then do

x1 := 0 ; x2 := 1 ; y1 := 1 ; y2 := 0 ;while b > 0 do

q := )a/b* ; r := a$ q b ;x := x2 $ q x1 ; y := y2 $ q y1 ;a := b ; b := r ;x2 := x1 ; x1 := x ; y2 := y1 ; y1 := y enddo;

d := a ; x := x2 ; y := y2 enddo;return [d, x, y]end EEA.

Die Laufzeit des erweiterten Euklidischen Algorithmus wachst quadratisch in der Bitlange derEingaben; sie laßt sich daher abschatzen durch O(log2(a + b)) .

2.1.4 Modular Inverse

INV(a, n)INPUT: n, a % IN , wobei a % [0..n$ 1] .OUTPUT: a!1 mod n .[d, x, y] := EEA(a, n) ;if d > 1 then return + ( a!1 mod n existiert nicht)

else return xend INV.

R. Reischuk, ITCS 7

2.1.5 Modulare Exponentiation

Exponentation in ZZ"n ist, wie sich oben bereits gezeigt hat, eine wichtige Operation. Sie kanne!zient implementiert werden durch sukzessives Quadrieren und modulare Reduktion. Fur einenExponenten k < n mit Binardarstellung

$"i=0 ki 2i und # = ,log2 (n + 1)- gilt

ak =""

i=0

aki 2i= (a20

)k0 (a21)k1 . . . (a2!

)k! .

MODEXP(n, a, k)INPUT: a % ZZn und k % [0..n$ 1] mit Binardarstellung (k0, . . . , k") .OUTPUT: ak mod n .A := a ;if k0 = 1 then b := a else b := 1 ;for i := 1 to # do

A := A2 mod n ;if ki = 1 then b := A · b mod n enddo;

return bend MODEXP.

2.1.6 Zeitkomplexitat modularer Arithmetik

Fur die modulare Arithmetik insgesamt erhalten wir damit folgende Laufzeitabschatzungen beiEingaben a, b, k % [0 .. n$ 1] :

Operation Bit-Komplexitatmodulare Addition/Substraktion (a ± b) mod n O(log n)modulare Multiplication (a · b) mod n O(log2 n)modulare Inversion a!1 mod n O(log2 n)modulare Exponentiation ak mod n O(log k · log2 n)Jacobi-Symbol ( a

n) O(log2 n)

Tabelle 1: Zeitabschatzungen fur die modulare Arithmetik

2.2 Wahrscheinlichkeitstheoretische Ungleichungen

Lemma 2.3 Tschebychev’sche UngleichungX seine eine ZVmit Varianz V [X] , dann gilt fur jedes $ > 0 :

Pr[ |X $ E(X)| # $ ] ' V [X]$2

.

8 Codierung und Sicherheit , UzL WS 2007/08

Wir definieren die Entropie-Funktion H auf dem reellen Intervall [0, 1] durch

H(") := $ (% log % + (1$ %) log (1$ %)) .

Lemma 2.4 Summe von Binominalkoe!zientenFur Abschatzungen von Binominalverteilungen gilt die folgende exponentielle Form:

( 0 ' % ' 12

&#·n'#

k=0

%n

k

&' 2 n H(#) .

Beweis:

1 = (% + (1$ %))n ##n#

k=0

%n

k

&%k (1$ %)n!k

# (1$ %)n#n#

k=0

%n

k

& %%

1$ 2

&#n

= %#n (1$ %)n(1!#)#n#

k=0

%n

k

&.

Dies impliziert

#n#

k=0

%n

k

&' %!#n (1$ %)n(1!#) = 2!n(# log #+(1!#) log (1!#)) = 2 n·H(#) .

Lemma 2.5 Cherno"-SchrankeEs sei X eine binomial verteilte Zufallsvariable mit Parametern n und p , d.h.

Pr[X = k] =%

n

k

&· pk · (1$ p)n!k fur 0 ' k ' n .

Dann ist µ = p · n der Erwartungswert von X und fur beliebiges & with 0 ' & ' 1 gilt

Pr[ |X $ µ| > &n] < 2 exp e($2&2n) .

R. Reischuk, ITCS 9

3 Information und Entropie

Information ist die Beseitigung von Ungewißheit. Das Shannonsche Modell [Shannon 1949] for-malisiert Information folgendermaßen:

Definition 3.1 X, Y seien Zufallsvariable (ZV), die die Werte x1, . . . xn mit Wahrschein-lichkeit (WS) p(xi) bzw. die Werte y1, . . . ym mit WS p(yi) annehmen, wobei

$p(xi) =$

p(yi) = 1.Vektoren p = (p1, . . . , pn) mit 0 ' pi ' 1 und

$pi = 1 bezeichnen wir im folgenden als

WS-Vektoren. Gilt statt der Gleichheit nur$

pi ' 1 , so sprechen wir von einem partiellenWS-Vektor.

p(xi, yi), p(xi| yi) bezeichne die gemeinsame sowie die bedingte Verteilung von X und Ybzw. von X gegeben Y .

Wir stellen die folgenden Mindestanforderungen an ein quantitatives Maß H(X) fur den Infor-mationsgehalt einer ZV X , wobei pi := p(xi) .

E1.) H(X) ist symmetrisch, d.h. fur jede Permuation " gilt: H(p1, . . . , pn) = H(p$(1), . . . , p$(n)) ,

E2.) H(p1, . . . , pn) ist eine stetige Funktion in den Variablen pi ,

E3.) H(p1, . . . , pn) # 0 und nimmt den Wert 0 nur an, wenn eines der pi gleich 1 ist(und damit alle anderen pj = 0 ); ein sicherer Ausgang hat Informationsgehalt 0 ,

E4.) H(p1, . . . , pn) ist maximal bei Gleichverteilung, d.h. fur p1 = p2 = . . . = pn = 1/n ;sind alle n Ereignisse gleichwahrscheinlich, so kann man am wenigsten uber den Wert vonX vorhersagen, die Unbestimmtheit ist somit am großten,

E5.) H(12 , 1

2) = 1 : Normierung auf 1 Bit bei 2 gleichwahrscheinlichen Alternativen,

E6.) H(p1, . . . , pn, 0) = H(p1, . . . , pn) :das Hinzufugen eines unmoglichen Ereignisses andert die Unbestimmtheit nicht,

E7.) H'

1n , 1

n , . . . , 1n

(' H

)1

n+1 , 1n+1 , . . . , 1

n+1

*; Monotonie bzgl. der Anzahl der Moglichkei-

ten,

E8.) der Informationsgehalts eines gemeinsamen Experimentes wie das Werfen eines Wurfelsund einer Munze ist die Summe der Informationen, die die einzelnen Experimente liefern:

H

%1

mn,

1mn

, . . . ,1

mn

&= H

%1m

, . . . ,1m

&+ H

%1n

, . . . ,1n

&,

E9.) fur p = p1 + . . . + pn und q = q1 + . . . + qm mit p + q = 1 gilt:

H(p1, . . . , pm, q1, . . . , qn) = H(p, q) + p H(p1

p, . . . ,

pn

p) + q H(

q1

q, . . . ,

qm

q) ;

zerlegt man den Ereignisraum in 2 Teilmengen P,Q , so laßt sich die Information uber dieZV auch dadurch spezifizieren, daß man zunachst angibt, in welchem der beiden Teilmen-gen das Ergebnis liegt und dann die Information jeder einzelnen Teilmenge mißt gewichtetmit der Wahrscheinlichkeit ihres Vorkommens.

10 Codierung und Sicherheit , UzL WS 2007/08

Als Losung auf diese Fragestellung betrachten wir die folgende Funktion:

Definition 3.2 Fur 0 < p(xi) ' 1 mißt der Wert $ log p(xi) die Unsicherheit oder denInformationsgehalt des Ereignisses xi .

H(X) := $n#

i=1

p(xi) log p(xi)

heißt die Entropie oder Unbestimmtheit der ZV X . Dabei bezeichne log hier und im fol-genden den reelwertigen Logarithmus zur Basis 2, wobei 0 · log 0 := 0 .

Die Entropy mißt somit den durchschnittlichen Informationsgehalt einer ZV X . Damit ist H(X)eine untere Schranke fur die Anzahl der im Mittel benotigten Bits, um den Ausgang des Expe-rimentes X zu beschreiben. Vergleicht man diese Definition mit der im vorherigen Abschnittdefinierten einstelligen Funktion H(%) , so ergibt sich fur eine binare Zufallsvariable X mitPr[X = 0] = % die Gleichheit H(%) = H(X) = H(%, 1$ %) .

Theorem 3.1 Die Entropiefunktion H(X) erfullt die Bedingungen E1 - E9. Sie ist die einzigeFunktion mit dieser Eigenschaft.

Die meisten Eigenschaften ergeben sich unmittelbar aus der Definition oder durch simples Nach-rechnen. H(p1, . . . , pn) besitzt ein eindeutiges Maximum an der Stelle pi = 1/n fur alle i ; indiesem Fall nimmt die Entropie den Wert log n an.

Betrachten wir als Beispiel naturliche Sprachen. Eine String der Lange n bezeichnet man inder Codierungstheorie auch als n -Gram. Fur die englische Sprache findet man in Tabelle 6 dieVerteilung der 1-Grams, d.h. die Haufigkeiten der 26 Buchstaben einschließlich des Leerzeichens.

Das deutsche Alphabet besteht aus 29 Großbuchstaben, 30 Kleinbuchstaben sowie einem Blankund hat eine etwas andere Haufigkeitsverteilung. Der maximale Informationsgehalt eines Zei-chens in einem Text (ohne Zi"ern und Satzzeichen) ist somit R = log 60 . 5, 9 . Um eineinzelnes Zeichen zu kodieren, genugen daher 6 Bits. Die tatsachliche Informationsrate der deut-schen Sprache mit n -Gram ZV Xn betragt dagegen

r = limn#$

H(Xn)n

. 1, 5 ,

wobei sich die Verteilung von Xn ergibt, indem man aus typischen deutschen Texten dieHaufigkeiten aller Buchstabenfolgen der Lange n berechnet. Dies bedeutet, daß man einendeutschen Text mit etwa 1,5 Bits pro Zeichen kodieren kann, wenn man nicht einzelne Buch-staben sondern langere Buchstabenfolgen kodiert und dabei eine Codierung variabler Langegeeignet wahlt, so daß haufig vorkommende Buchstabenkombinationen wie ein durch eine kurzeCodierung und selten vorkommende wie xay durch entsprechende langere reprasentiert.

D = R $ r . 4, 4 heißt Redundanz und wird meistens in Prozent als D/R . 74% angege-ben. Man kann diese Zahlverhaltnisse dahingehend interpretieren, daß selbst nach der Reduktioneines deutschen Textes auf nur jeden vierten Buchstaben der Sinn in der Regel noch rekonstru-ierbar ist. Eine zufallige Sprache, deren n - Cram Verteilung mit der einer naturlichen Spracheubereinstimmt, heißt Approximation der Ordnung n dieser Sprache.

Der Informationsbegri" wird auf mehrere ZV folgendermaßen verallgemeinert.

R. Reischuk, ITCS 11

Definition 3.3 Die gemeinsame Entropie der ZV X und Y ist gegeben durch

H(X, Y ) := $#

i,j

p(xi, yj) log p(xi, yj) .

Die Entropie der bedingten Verteilung von X gegeben Y = yj errechnet sich als

H(X | Y = yj) := $#

i

p(xi|yj) log p(xi|yj) .

Die bedingte Entropie von X gegeben Y ist dann definiert durch

H(X | Y ) :=#

j

p(yj)H(X | Y = yj) .

Fur das Rechnen mit Entropie-Funktionen ist die folgende Abschatzung hilfreich. Dabei seip = (p1, . . . , pn) ein WS-Vektor und u = (u1, . . . , un) ein partieller WS-Vektor. Es gilt

$#

pi log pi ' $#

pi log ui . (1)

Diese Ungleichung ergibt sich aus dem folgenden

Lemma 3.2 Seien p = (p1, . . . , pn) und u = (u1, . . . , un) WS-Vektoren. Das Minimum derFunktion

Gp(u) := $#

i

pi log ui

wird angenommen fur u = p , d.h. ui = pi fur alle i .

Es gelten folgende Eigenschaften der gemeinsamen und der bedingten Entropie.

Lemma 3.3

1. H(X | Y ) = $$

i,j p(xi, yj) log p(xi | yj) ,

2. 0 ' H(X | Y ) ' H(X) ,

3. max {H(X),H(Y )} ' H(X, Y ) = H(X | Y ) + H(Y ) ' H(X) + H(Y ) ,

4. H(X | Y ) = H(X) /0 X, Y sind unabhangig.

Insbesondere kann die Unsicherheit uber eine ZV X bei Kenntnis einer anderen ZV Y nurabnehmen. Sie bleibt unverandert, wenn die beiden ZV unabhangig sind. Sie ist 0 , wenn Y denWert von X eindeutig festlegt. Als Gegenstuck zur Unsicherheit definieren wir:

Definition 3.4 Die gemeinsame Information von X und Y ist gegeben duch

I(X,Y) := H(X)$H(X|Y ) .

12 Codierung und Sicherheit , UzL WS 2007/08

Eine einfache Rechnung zeigt, daß die gemeinsame Information symmetrisch in den beiden Ar-gumenten ist, d.h.

I(X, Y ) = I(Y, X) = H(Y )$H(Y |X) .

Des weiteren gilt0 ' I(X, Y ) ' min {H(X),H(Y )} .

Insbesondere ist die gemeinsame Information 0 , wenn die beiden ZV unabhangig sind.

Diese Begri"e lassen sich in entsprechender Weise auch auf den Fall von mehr als 2 ZV erweitern.

R. Reischuk, ITCS 13

4 Codierung von Quellen im storungsfreien Fall

4.1 Quellen und Codes

Unter einer Quelle wollen wir im folgenden eine ZV verstehen, die eine Folge von Werten ubereiner endlichen oder unendlichen Grundmenge, auch Alphabet genannt, generiert. Man unter-scheidet zwischen diskreten und kontinuierlichen Quellen in Abhangigkeit davon, ob Werte nurzu diskreten Zeitpunkten erzeugt werden oder ob es sich um einen kontinuierlichen Strom han-delt. Wir werden im wesentlichen nur diskrete Quellen mit einfachen Verteilungen betrachten.

Definition 4.1 Eine gedachtnislosen Quelle wird beschrieben durch ein endliches AlphabetA , auch Quellensymbole genannt, und eine ZV Q mit Werten in A . Zu jedem diskretenZeitpunkt i wird die Verteilung des i -ten Quellensymbols Xi durch Q beschrieben, wobei dieXi paarweise unabhangig sind. Die Verteilung der ersten n Quellensymbole ist dann eine ZVQn auf An mit den WS p(x1 . . . xn) =

!ni=1 p(xi) , wobei p(xi) = Pr[Q = xi] die WS fur das

Quellensymbol xi bezeichne.

Auf Grund der Unabhangigkeit gilt fur die Entropie H(Qn) = n · H(Q) .

Bei Markov-Quellen dagegen kann die Verteilung fur Xi von den vorausgegangenen Wer-ten x1, . . . , xi!1 oder einem Zustand, den die Quelle nach Senden des (i $ 1) -ten Symbolsangenommen hat, abhangen.

Definition 4.2 Gegeben sei eine Quelle Q mit Alphabet A = {a1, . . . , aq} sowie ein Alphabet# der Große s # 2 . Ein Zeichencode fur Q ist eine injektive Abbildunge C : A 1 #+ ,wobei #+ die Menge der nichtleeren Worter uber # bezeichnet.Codiert man dagegen fur eine naturliche Zahl m > 1 Blocke aus jeweils m Quellensymbolendurch je ein Codewort, d.h. C : Am 1 #+ . so nennt man dies einen Blockcode der Lange m .

Wenn die Reihenfolge der Codeworter von untergeordneter Bedeutung ist, werden wir einenCode C auch einfach als eine Teilmenge von #+ au"assen.

Als Beispiel geben wir fur die Zi"ern des Dezimalsystems verschiedene binare Codes an, diejeweils eine feste Lange fur die Codeworte verwenden (Tabelle 2).

Die Injektivitat ist o"ensichtlich erforderlich, wenn man spater die Quellensymbole wieder ein-deutig aus den Codewortern rekonstruieren mochte. Bei verlustbehafteten Kompressionsverfah-ren wird diese Forderung nicht mehr erhoben. Ahnliche Blocke von Quellensymbolen konnenbeispielsweise durch dasselbe Codewort reprasentiert werden, um so die Anzahl der Codeworterund damit auch ihre Lange gering zu halten.

Bei fortlaufender Codierung von Quellensymbolen besteht die Schwierigkeit, den Anfang unddas Ende eines Codewortes zu erkennen. Sind beispielsweise w1 = 01 , w2 = 100 , w3 = 011und w4 = 00 Codeworte, so kann der String 01100 sowohl durch die Kombination w1w2 alsauch durch w3w4 entstehen. Wir nennen daher einen Code eindeutig decodierbar, falls sichjede Folge aus #+ auf hochstens eine Weise in eine Folge von Codeworten zerlegen laßt. Ein

14 Codierung und Sicherheit , UzL WS 2007/08

Zi"er direkt Exzess-3C Aiken Gray-C. 2-aus-5 ASCII0 0000 0011 0000 0000 11000 000011001 0001 0100 0001 0001 00011 100011012 0010 0101 0010 0011 00101 010011013 0011 0110 0011 0010 00110 110011004 0100 0111 0100 0110 01001 001011015 0101 1000 1011 0111 01010 101011006 0110 1001 1100 0101 01100 011011007 0111 1010 1101 0100 10001 111011018 1000 1011 1110 1100 10010 000111019 1001 1100 1111 1101 10100 10011100

Tabelle 2: Binare Codes fur die Zi"ern von 0 bis 9 (jeweils spaltenweise)

Spezialfall hiervon sind prafixfreie Codes, bei denen gefordert wird, daß kein Codewort w % Cein Prafix eines anderen Codewortes aus C ist. Bei prafixfreien Codes, die man auch abgekurztals Prafixcodes bezeichnet, konnen bereits Teilfolgen decodiert werden, ohne daß man diegesamte Zeichenfolge kennt.

Jedem Code C kann man einen Codebaum TC zuordnen, der beim Dekodieren hilfreichist. TC ist ein Teilbaum des vollstandigen Baumes mit Grad |#| und Hohe L , wobei L diemaximale Lange eines Codewortes in C ist. In diesem Teilbaum sind die Kanten eines Knotenzu seinen Sohnen mit den Buchstaben des Alphabetes # eindeutig beschriftet. Auf diese Weisedefiniert jedes Codewort c % C einen eindeutigen Pfad in TC von der Wurzel zu einem Knoten,der mit c bzw. dem durch c codierten Quellensymbol beschriftet ist. Das folgende Beispielillustriert dies fur das binare Alphabet. Die Bedingung der Prafixfreiheit eines Codes kann mandann leicht in eine graphtheoretische Eigenschaft des Codebaumes ubersetzen, was wir demLeser uberlassen.

c1

1

10

0

0

a

b

d

Abbildung 1: Binarer Codebaum

Definition 4.3 C sei ein Code fur die Quelle Q und ci = C(ai) seien die Codeworte von C .Wir definieren die mittlere Codewortlange als

AvLen(C) :=#

ci(C

p(ci) · |ci| =#

ai(A

p(ai) · |C(ai)| ,

wobei p(ci) = p(ai) die Wahrscheinlichkeit des Auftretens von ci ist. Diese Zahl mißt, wiekompakt C die von Q erzeugte Information darstellt. Eine Folge von n Quellensymbolen kannalso uber dem Codealphabet # durch einen String mit erwarteter Lange n · AvLen(C) codiert

R. Reischuk, ITCS 15

werden.Um Blockcodes verschiedener Lange sinnvoll vergleichen zu konnen, betrachtet man die mittlereCodewortlange pro Quellensymbol, d.h. fur Blocklange m und Folgen a = ai1 , . . . , aim vonQuellensymbolen ai den Ausdruck

AvSymbLen(C) :=1m

#

a(Am

p(a) · |C(a)| .

Fur einen Blockcode C mit Blocklange m gilt also AvSymbLen(C) = AvLen(C)/m .

Beispiel 4.1 Betrachte eine Quelle Q1 mit den 4 Symbolen a, b, c, d und Haufigkeiten

p(a) = 0, 9, p(b) = 0, 05, p(c) = p(d) = 0, 025 .

Tabelle 3 beschreibt Codes fur Q1 mit der jeweiligen mittlere Codewortlange und ihren Deko-dierbarkeitseigenschaften.

Code C(a) C(b) C(c) C(d) AvLen EigenschaftC1 00 01 10 11 2,000 feste CodewortlangeC2 0 111 110 101 0, 9 + 3 · 0, 1 = 1, 200 variable CodewortlangeC3 0 11 110 111 1,075 nicht eindeutig dekodierbarC4 0 10 110 111 1,075 prafixfreier Code mit min. AvLen

Tabelle 3: Verschiedene binare Codes fur die Quelle Q1

4.2 E!ziente Codierung

Um eine moglich kleine mittlere Codewortlange zu erreichen, sollten die Codeworte moglichstkurz gewahlt werden, zumindest fur die Quellen-Symbole, die haufig auftreten. Es stellt sichdaher die Frage, welchen Kombinationen von Codewortlangen uberhaupt moglich sind.

Theorem 4.1 (Krafts Ungleichung)# sei ein Alphabet der Große s . Es gibt einen prafixfreien Code C 2 #+ der Große m mitCodeworten der Lange #1, . . . , #m , falls

#

i

s!"i ' 1 .

Beweis: #1, . . . , #m erfulle$

i s!"i ' 1 . Definiere L := max #i und mj als die Anzahl der

Codeworte mit Lange j . Es gilt dann also

L#

j=1

mj · s!j ' 1 .

16 Codierung und Sicherheit , UzL WS 2007/08

Umordnung und sukzessive Multiplikation mit Potenzen von s impliziert

mL ' sL $m1 · sL!1 . . .$mL!1 · smL!1 ' sL!1 $m1 · sL!2 . . .$mL!2 · s

...m2 ' s2 $m1 · sm1 ' s

Wir wahlen m1 Worte der Lange 1. Dann bleiben s $ m1 Buchstaben aus # ubrig, d.h.(s$m1) ·s Worte der Lange 2 konnen noch gewahlt werden, ohne die Prafixfreiheit zu verletzen.Aus diesen wahlen wir m2 viele. Wiederum bleiben (s$m1) · s$m2 = s2$m1 · s$m2 Worteder Lange 2 ubrig, die man auf jeweils s verschiedene Weisen zu einem Wort der Lange 3verlangern kann, usw. Fur jede Lange # von 1 bis L konnen wir so die gewunschten m"

Codeworte prafixfrei finden.

Betrachten wir den Fall s = 2 , also ein binares Alphabet. Verlangern wir den Codebaum TC

zu einem vollstandigen binaren Baum T der Hohe L , so ist jedes Codewort ci Wurzel einesSubbaumes, der aus ci und allen seinen Nachfolgern besteht. Solch ein Subbaum mit Wurzel ci

besitzt 2L!|ci| viele Blatter. Die Prafixfreiheit impliziert, daß die Subbaume paarweise disjunktsind. Da T insgesamt 2L Blatter besitzt, ergibt sich

m#

i=1

2L!"i ' 2L , d.h.m#

i=1

2!"i ' 1 .

TC

c1 c2

c3

c5c4

c6

Abbildung 2: Der Codebaum eines prafixfreien Binarcodes

Wir haben mit dieser Uberlegung gezeigt, daß ein binarer prafixfreier Code die Kraftsche Un-gleichung erfullt. Prafixcodes sind ein Spezialfall von eindeutig decodierbaren Codes. Daß dieskeine wesentliche Einschrankung darstellt, zeigt das folgende Ergebnis.

Theorem 4.2 (Mc Millan)Jeder eindeutig dekodierbare Code (und damit auch jeder prafixfreier Code) erfullt die KraftscheUngleichung.

R. Reischuk, ITCS 17

Beweis: C 2 #+ sei ein eindeutig dekodierbarer Code mit Codewortlangen #1, . . . , #q und L =max #i . Sei bj die Anzahl der Strings der Lange j , die durch Konkatenation von Codewortenaus C gebildet werden konnen. Fur jede naturliche Zahl r gilt dann

(s!"1 + . . . + s!"n) r =r·L#

j=1

bj · s!j ' L · r .

Die erste Gleichheit ergibt sich, wenn man das r -fache Produkt der Summe (s!"1 + . . . + s!"n)ausmultipliziert und Terme mit gleichem Exponent zusammenfaßt – davon gibt es jeweils bj

viele. Die eindeutige Dekodierbarkeit impliziert, daß jedes bj durch sj beschrankt ist. d.h. dieobige Summe kann dann durch die Anzahl der Summanden L ·r abgeschatzt werden. Zieht mandie r -te Wurzel, so folgt #

i

s!"i ' L1/r · r1/r .

Da die rechte Seite mit r 1 3 gegen 1 konvergiert, folgt die Behauptung$

i s!"i ' 1 .

Korollar 4.3 Zu vorgegebenen Codewortlangen existiert ein prafixfreier Code genau dann,wenn es einen eindeutig dekodierbaren Code gibt. Die Erfullung der Kraftschen Ungleichungist eine notwendige und hinreichende Bedingung fur die Existenz eines prafixfreien Codes.

Bei einem Codealphabet der Große s besitzten die einzelnen Zeichen einen mittleren Informati-onsgehalt der Große hochstens log s . Um eine Quelle mit Entropie H(Q) zu kodieren, scheintdaher aus informationstheoretischen Grunden eine mittlere Codewortlange pro Quellensymbolmindestens H(Q)/ log s notwendig. Daß diese Schranke scharf ist, war eine der bedeutendenErkenntnisse von Shannon.

Theorem 4.4 [Shannons Noiseless-Coding-Theorem]Q sei eine gedachnislose Quelle mit Entropie H(Q) und # ein Codealphabet der Große s .Dann gilt fur die mittlere Codewortlange:

1. Fur jeden eindeutig dekodierbaren Code C fur Q gilt die untere Schranke

AvLen(C) # H(Q)log s

.

2. Es gibt einen Prafixcode C fur Q mit AvLen(C) <H(Q)log s

+ 1 .

Beweis: Es sei p = (p1, . . . , pq) der WS-Vektor der Quelle Q . Ist C ein eindeutig dekodierbarerCode fur Q mit Codewortlangen #1, . . . , #q , so ergibt sich aus der Kraftschen Ungleichung$

i s!"i ' 1 , d.h. die Werte ui := s!"i bilden einen partiellen WS-Vektor. Damit konnen wir

unter Verwendung der Abschatzung 3 schließen

H(Q) = $#

i

pi log pi ' $#

pi log ui =#

pi log s"i

=#

pi · #i log s = AvLen(C) · log s .

18 Codierung und Sicherheit , UzL WS 2007/08

Die obere Schranke erhalt man durch die sogenannte Shannon-Fano-Codierung. Fur jedesSymbol qi der Quelle definiert man eine Codewortlange #i durch

#i := ,$ log pi

log s- .

Dies impliziert$

s!"i '$

pi ' 1 und somit existiert ein Prafixcode C mit Codewortlangen#1, . . . , #q . Da nach Wahl der Codewortlangen gilt #i < $ log pi

log s + 1 , laßt sich die mittlereCodewortlange abschatzen durch

AvLen(C) =#

pi #i <#

pi · ($log pi

log s+ 1) = $

#pi

log pi

log s+ 1 =

H(Q)log s

+ 1 .

Bei Prafixcodes mit minimaler mittlerer Codewortlange verhalten sich die Langen der Co-deworter invers zu der WS der zugehorigen Quellensymbole. Unter den Codeworten maximalerLange gibt es immer 2, die sich nur im letzten Symbol unterscheiden, denn andernfalls konnteman auf dies Symbol verzichten.

Die obere und untere Schranke unterscheiden sich um weniger als 1, was allerdings bei kleinerEntropie und großem Alphabet # durchaus ins Gewicht fallen kann. Die untere Schranke kannnicht immer erreicht werden, da die Codewortlangen ganzzahlig sein mussen. Eine Verbesserungkann durch Blockcodes erreicht werden, die nicht einzelne Quellensymbole sondern Blocks vonje m Symbolen kodieren.

Verlangt man neben der Prafixfreiheit zusatzlich noch, daß die Codeworter auch keine gemein-samen Su!xe haben durfen, so ist im allgemeinen bis heute ungeklart, wie optimale Codes mitdiesen Eigenschaften aussehen. Bei einer Quellen mit 3 gleichwahrscheinlichen Symbolen besitztein optimaler binarer Prafixcode die Codewortlangen 1, 2, 2 – man kann z.B. die Codeworte0 , 10 und 11 verwenden. Dieser ist aber nicht su!xfrei, und man sieht leicht, daß es keinenderartigen Code mit diesen Codewortlangen geben kann. Es ist kein einfaches Kriterium wie dieKraftsche Ungleichung bekannt, die die Existenz eines prafix- und su!xfreien Codes garantiert.

4.3 Shannon-Fano-Codierung

Wir wollen Codes, die von Shannon und Fano sowie Hu"man vorgeschlagen wurden, noch et-was naher betrachten. Hu"man-Codes sind bezuglich der mittleren Lange optimale Prafixcodes,wahrend die anderen Codes nicht immer das Minimum erreichen. Wir diskutieren diese Ver-fahren dennoch, weil sie interessante Methoden verwenden, die fur die Kompression von Datennutzlich sind. Ihre Namensgebung wird in der Literatur nicht einheitlich gehandhabt, man kannjegliche Kombination Fano-Code, Shannon-Code oder auch Shannon-Fano-Code finden.

Wir beschranken die folgende Darstellung auf den binaren Fall, d.h. das Codealphabet # besitztdie Machtigkeit s = 2 .

Iterative Codierung

Um konkret die Codeworter zu bestimmen, ordnet das Verfahren die Wahrscheinlichkeiten derQuellensymbole zunachst der Große nach, d.h. wir konnen annehmen p1 # p2 # . . . # pq .

R. Reischuk, ITCS 19

In einem iterativen Prozeß werden die pi aggregiert. Dazu sei definiert u1 := 0 und ui :=p1 + . . . + pi!1 fur i > 1 . Die Binardarstellungen dieser reellen Zahlen ui aus dem Intervall[0, 1] werden dann als Codeworte C(ai) fur die Quellensymbole ai verwandt.

Binary-Shannon-Fano-Codierung

Q sei eine Quelle mit WS p1 # p2 # . . . # pq ;u1 := 0 ;for i := 1 to q do

sei 0 , b1 b2 b3 . . . die Binardarstellung von ui ;li := ,$ log pi- ;C(ai) := b1b2 . . . bli ;ui+1 := ui + pi ;end;

Abbildung 3: iterative Shannnon-Fano-Codierung

Beispiel 4.2 Betrachten wir eine Quelle Q1 uber dem Alphabet # = {a, b, c, d, e} , wobei dieVerteilung der Symbole durch p(a) = 0, 35 , p(b) = 0, 17 , p(c) = 0, 17 , p(d) = 0, 16 undp(e) = 0, 15 gegeben ist. Als Entropie dieser Quelle ergibt sich

H(Q1) . 0, 35 · log 2, 85 + 2 · 0, 17 · log 5, 88 + 0, 16 · log 6, 25 + 0, 15 · log 6, 66 . 2, 23 .

Tabelle 4 stellt den Code C1 dar, der durch dies Verfahren generiert wird:

Symbol pi li ui ui (Binar) Codeworta 0,35 2 0,0 0.0000000. . . 00b 0,17 3 0,35 0.0101100. . . 010c 0,17 3 0,52 0.1000010. . . 100d 0,16 3 0,69 0.1011000. . . 101e 0,15 3 0,85 0.1101100. . . 110

Tabelle 4: iterative Shannon-Fano-Codierung von Q1

Als mittlere Lange erhalten wir

AvLen(C1) = 0, 35 · 2 + 0, 17 · 3 + 0, 16 · 3 + 0, 15 · 3 = 2, 65

und liegen damit etwa 19% uber der Entropie der Quelle. Einfache Beispiele zeigen, daß diesVerfahren nicht immer eine minimale mittlere Codewortlange erzielt.

Wir mussen noch nachweisen, daß dies Verfahren tatsachlich einen Prafixcode generiert. p1 #p2 # . . . # pq impliziert nach Definition der #i fur die Codewortlangen l1 ' l2 ' . . . ' lq . Furj > i gilt

uj $ ui # ui+1 $ ui = pi # 2!li .

Es seiui = 0 , b1 b2 b3 . . . =

b1

21+

b2

22+ · · · .

20 Codierung und Sicherheit , UzL WS 2007/08

Angenommen, es existiert ein Paar i, j mit i < j , so daß

C(ai) = b1b2 . . . bli und C(aj) = b1b2 . . . blicli+1...clj .

Dann ergabe sich der Widerspruch

uj $ ui =%

b1

21+ · · · + bli

2li+

cli+1

2li+1+ · · · +

clj

2lj+ . . .

&$

%b1

21+ · · · + bli

2li+ . . .

&

' cli+1

2li+1+ · · · +

clj

2lj+ . . . < 2li .

Rekursive Shannon-Fano-Codierung

Ein andere Methode zur Konstruktion eines Prafixcodes verwendet einen rekursiven top-down-Ansatz, mit Hilfe von divide-and-conquer. Wir erlautern das Vorgehen an einem Beispiel fur dasbinare Codealphabet. Der Algorithmus zerlegt das Quellen-Alphabet in zwei Mengen A1, A2 , sodaß deren Summenwahrscheinlichkeiten moglichst gleich groß sind:

$a(A1

P (a) .$

a(A2P (a) .

Aus dieser Zerlegung laßt sich dann ein Codebaum unmittelbar ableiten; die Prafixfreiheit ergibtsich so automatisch.

e

a(0,4) c(0,15) e(0,1)

e(0,1)c(0,15)

b(0,25)d(0,1)

b(0,25) c(0,15) e(0,1)a(0,4) d(0,1)

a d b

c

Abbildung 4: Rekursive Zerlegung des Quellen-Alphabetes.

Die Quelle Q2 mit P (a) = 0, 4, P (b) = 0, 25, P (c) = 0, 15 und P (d) = P (e) = 0, 1 hat dieEntropie H(Q2) . 2, 1 . Fur Q2 ist die Aufteilung in Abbildung 4 illustriert. Der so erzeugtCode C2 ist in Tabelle 5 aufgelistet. Seine mittlere Lange betragt

AvLen(C2) = 2 · 0, 4 + 2 · 0, 25 + 3 · 0, 15 + 2 · 0, 1 + 3 · 0, 1 = 2, 25 .

Wir werden im folgenden sehen, daß dieser Wert noch weiter verbessert werden kann.

4.4 Hu"man-Codierung

Hu"man-Codes sind optimale Prafixcodes, d.h. Codes mit minimaler mittlerer Lange. Der fol-gende Algorithmus konstruiert ebenfalls einen Codebaum, allerdings nicht top-down sondernbottom-up.

Fur die im vorherigen Abschnitt vorgestellte Quelle Q2 konstruiert der Hu"man-Algorithmusden Codebaum in Abbildung 6.

R. Reischuk, ITCS 21

Quellensymbol Haufigkeit Codewort Langea 0, 4 00 2b 0, 25 10 2c 0, 15 110 3d 0, 1 01 2e 0, 1 111 3

Tabelle 5: rekursive Shannon-Fano-Codierung von Q2

Binary-Huffman-Codierung:

1. starte mit dem Wald aus Baumen, bei dem jeder Baum Ti ein Symbol ai

darstellt;das Gewicht von Ti sei wi := pi ;

2. REPEAT UNTIL der Wald nur noch aus einem einzelnen Baum besteht

- wahle zwei Baume T ) und T )) mit minimalen Gewichten w) und w)) ;

- verschmelze T ) und T )) zu einem neuen Baum T mit Gewicht w = w)+w)) ;

3. interpretiere den so entstandenen Baum als einen Codebaum:bei jeder Verschmelzung T ), T )) zu einem Baum T verlangere das Codewortfur T um das Symbol 0 fur alle Blatter in T ) und um 1 fur alle Blatterin T )) .

Abbildung 5: Hu"man-Codierung

Der korrespondierende Code C3 lautet

a b c d e0 10 110 1110 1111

und erreicht die mittlere Lange

AvLen(C3) = 1 · 0, 4 + 2 · 0, 25 + 3 · 0, 15 + 2 · 4 · 0, 1 = 2, 15 ,

d.h. den Wert der Entropie bis auf wenige Prozent. Dies ist kein Zufall, denn es gilt allgemein:

a cb d e

0.350.6

0.4 0.150.25 0.1 0.1

0.2

Abbildung 6: Codebaum einer Hu"man-Codierung von Q2

22 Codierung und Sicherheit , UzL WS 2007/08

Symbol Haufigkeit Hu"man-CodeLeerzeichen 0.1859 111E 0.1031 010T 0.0796 1101A 0.0642 1011O 0.0632 1001I 0.0575 0111N 0.0574 0110S 0.0514 0011R 0.0484 0010H 0.0467 0001L 0.0321 10101D 0.0317 10100U 0.0228 00001C 0.0218 00000F 0.0208 110011M 0.0198 110010W 0.0175 110001Y 0.0164 100011P 0.0152 100010G 0.0152 100001B 0.0127 100000V 0.0083 1100000K 0.0049 11000011X 0.0013 1100001011Q 0.0008 1100001010J 0.0008 1100001001Z 0.0005 1100001000

Tabelle 6: Hu"man-Code fur das englische Alphabet

R. Reischuk, ITCS 23

Theorem 4.5 Fur jede Quelle Q ist die mittlere Codewortlange des zugehorigen Hu!man-Codes CHUFF(Q) minimal in der Klasse aller prafixfreien Codes fur Q . Es gilt

H(Q)log s

' AvLen(CHUFF(Q)) ' H(Q)log s

+ 1 .

Man kann diese Behauptung induktiv nachweisen, und zwar uber die verschiedenen Stadiendieser Konstruktion. Durch Verschmelzen zweier Quellensymbole entsteht eine neue Quelle Q)

mit weniger Symbolen, fur die ein optimaler Code C ) konstruiert wird. Aus diesem wird dannein Code C fur die ursprungliche Quelle Q generiert. Aus der Annahme, daß C nicht optimalist, kann man dann schließen, daß auch C ) nicht optimal war. Dies wurde implizieren, daß auchder letzte Code fur eine Quelle mit nur 2 Symbolen nicht optimal gewahlt wurde, was jedochnicht richtig ist.

Da Hu"man-Codes optimal sind und wir fur das erste Shannon-Fano-Verfahren die obere Schran-ke H(Q)+1 fur die mittlere Codewortlange gezeigt haben, ergeben sich die gleichen Schrankenfur CHUFF(Q) .

4.5 Erweiterte Hu"man-Codierung: Blockcodes

Betrachten wir folgendes Beispiel: Die Quelle Q3 generiere die Symbole a, b mit HaufigkeitenP (a) = 0, 9, P (b) = 0, 1 . Der Hu"man-Algorithmus liefert folgende Codierung CHUFF :

Haufigkeit Codeworta 0, 9 0b 0, 1 1

mit der mittleren Lange

AvLen(CHUFF) = 1 · 0, 9 + 1 · 0, 1 = 1 .

Die Entropie dieser Quelle betragt dagegen nur

H(Q3) = 0, 9 · log109

+ 0, 1 · log 10 = 0, 47 .

Die Redundanz – die Di"erenz zwischen der erwarteten Lange und der Entropie – ist 0, 53Bits/Symbol, also mehr als das doppelte der Entropie. Das bedeutet, daß dieser Code kaumkomprimiert (er ”ubersetzt“ lediglich a 1 0 und b 1 1 ). Um einen Text zu codieren, benutzter doppelt soviele Bits als der mittlere Informationsgehalt eines einzelnen Zeichens.

Um diesen Unterschied zu verringern, kann man Blockcodes verwenden. Bei Blocklange 2 ergibtsich als neues Alphabet

A2 = {aa, ab, ba, bb}

mit den Wahrscheinlichkeiten

P (aa) = P (a)2, P (bb) = P (b)2 und P (ab) = P (ba) = P (a) · P (b) .

24 Codierung und Sicherheit , UzL WS 2007/08

Der Hu"man-Algorithmus generiert nunmehr die folgende Codierung, die wir mit C [2]HUFF(Q3)

bezeichnen wollen:Haufigkeit Codewort Lange

aa 0, 81 0 1ab 0, 09 10 2ba 0, 09 110 3bb 0, 01 111 3

Als mittlere Codelange pro Symbol erhalten wir

AvSymbLen(C [2]HUFF(Q3)) =

12

(1 · 0, 81 + 2 · 0, 09 + 3 · 0, 09 + 3 · 0, 01) =12· 1, 29 = 0, 645 .

Damit liegt die mittlere Codewortlange nur mehr 37% uber der Entropie. Fur Blocklange 3 mitden Sequenzen

A3 = {aaa, aab, aba, baa, abb, bab, bba, bbb}

wird der Unterschied noch kleiner:

Haufigkeit Code Langeaaa 0, 729 0 1aab 0, 081 100 3aba 0, 081 101 3baa 0, 081 110 3abb 0, 009 11100 5bab 0, 009 11101 5bba 0, 009 11110 5bbb 0, 001 11111 5

Als mittlere Lange erhalten wir einen Wert, der H(Q3) bis auf 11% erreicht:

AvSymbLen(C [3]HUFF(Q3)) =

13· 1, 65 = 0, 52 .

Sei allgemein C [m]HUFF der erweiterte Hu"man-Code fur Blocklange m . Hierfur kann man die

folgende Abschatzung herleiten.

Theorem 4.6 Fur jede Quelle Q gilt:H(Q)log s

' AvSymbLen(C [m]HUFF(Q)) <

H(Q)log s

+1m

.

Beweis: Fur die Entropie der Quelle Q[m] , die die Verteilung der Folgen von je m Quellen-symbolen beschreibt, gilt H(Q[m]) = m · H(Q) . Man kann also gemaß Shannons Codierung-Theorem fur Q[m] eine mittlere Codewortlange von weniger als H(Q[m])/ log s + 1 erreichen.Fur die Blockcodierung von Q bedeutet dies ein Uberschuß von maximal 1/m pro Quellen-symbol.

Bei der Blockcodierung wird angenommen, daß sich die Wahrscheinlichkeit fur ein Symbol a =ai1ai2 . . . aim des Blockalphabets Am ergibt als das Produkt der Einzelwahrscheinlichkeiten