Seminar zur Quantenmechanik II Elemente der klassischen Informationstheorie 1. EINLEITUNG 1 2. QUELLEN 1 2.1 DISKRETE QUELLEN MIT UNABHÄNGIGEN EREIGNISSEN (QUELLE OHNE GEDÄCHTNIS) 2.2 VERBUNDQUELLE 2.3 KONTINUIERLICHE QUELLEN 2 3 4 3. KODIERUNG DISKRETER QUELLEN 5 3.1 QUELLEN-, KANALKODIERUNG UND REDUNDANZ 3.2 DEKODIERUNG 3.3 HUFFMAN-VERFAHREN (OPTIMALKODIERUNG) 3.4 FEHLERKORRIGIERENDER HAMMING-KODE 5 6 7 8 4. KANALKAPAZITÄT UND ÜBERTRAGUNGSGESCHWINDIGKEIT 10 5. KRYPTOGRAPHIE 11 5.1 ALLGEMEINES SCHEMA EINES VERSCHLÜSSELUNGSSYSTEMS 5.2 INFORMATIONSGEHALT UND SICHERHEIT 5.3 ONE-TIME-PAD KRYPTOGRAPHIE 5.4 PUBLIC-KEY VERSCHLÜSSELUNGSSYSTEM 5.4.1 ALLGEMEINES PRINZIP 5.4.2 RIVEST-SHAMIR-ADLEMAN SYSTEM 5.5 NP-STRENGES PROBLEM ALS KRYPTOSYSTEM 11 12 13 13 13 14 15 I 1. Einleitung Die Informationstheorie gehört zum theoretischen Fundament der Informatik und steht in engen Zusammenhang mit der Kodierungstheorie. Begründet wurde sie 1948 von C.E. Shannon. Die mathematischen Grundlagen für diese Theorie entstammen der Wahrscheinlichkeitstheorie. Beispiele für Informationstragende Systeme sind Radio- und Fernsehübertragungen, Telefonverbindung oder Bildübertragung von Satelliten. Diese Systeme bestehen alle im Allgemeinen aus einer Quelle, dem Kodierer und Dekodierer, dem Kanal und der Senke (Abbildung 1). Nachrichten oder eine Folge von Nachrichten werden von der Quelle produziert. Der Kodierer macht aus der Nachricht ein übertragbares Signal, welches über den Übertragungskanal übermittelt wird. Der Kanal ist das vermittelnde Medium zwischen Sender und Empfänger. Alle Störungen die auf das Signal wirken, passieren im Kanal. Der Dekodierer kehrt den Prozess des Kodierers um, wonach die Nachricht zum Empfänger (Senke) gelangt. Abbildung 1: Allgemeines Modell der Nachrichtenübertragung mit einem gestörten Kanal In der Informationstheorie werden mathematische Modelle zur Beschreibung der einzelnen Komponenten eines solchen Nachrichtenübertragenden Systems und das Zusammenwirken dieser Komponenten entwickelt. Dabei werden etwa die Quelleninformation und die vom Kanal unter dem Einfluss von Störungen übertragene Information berechnet. Die Effektivität der Informationsübertragung ist dabei wesentlich von der Kodierung der Information abhängig. Die Kodierungstheorie bietet eine Vielzahl von Methoden einerseits die Quelleninformation in übertragungsfähige Form eindeutig und rationell darzustellen und andererseits gegen Störungen auf dem Übertragungskanal zu schützen. Die Informationstheorie bestimmt dagegen die Möglichkeiten und Grenzen der Informationsübertragung bei geeigneter Kodierung 2. Quellen Der Begriff Information wird mit der Gewinnung neuer Erkenntnis aus einer Quelle verbunden. Das bedeutet es muss eine gewisse Unbestimmtheit über die Quelle vorliegen, sonst kann nichts neues aus ihr erfahren werden. Betrachten wir zum Beispiel einen idealen und einen gezinkten Würfel mit jeweils sechs Seiten. Beim idealen Würfel haben alle sechs Ereignisse die gleiche Wahrscheinlichkeit. Bei einem gezinkten Würfel sollen die hohen Augenzahlen eine größere Wahrscheinlichkeit als die niedrigeren haben. Beim idealen Würfel haben wir grundsätzlich keine Ahnung, welche Augenzahlen sich ergeben. Beim gezinkten Würfel können wir ehr mit großen Augenzahlen rechnen. Somit besitzt der der ideale Würfel eine größere Unbestimmtheit. Nun wollen wir etwas finden, wodurch wir die Unbestimmtheit ausdrücken können. In einer Menge X={x1,...,xN} soll das Ereignis xi mit der Wahrscheinlichkeit p(xi) für i =1,...,N auftreten. Der reziproke Wert von p(xi) stellt dann ein Maß der Unbestimmtheit H(xi) über das Ereignis xi dar: Je größer p(xi) 1 desto kleiner wird H(xi) und umgekehrt. Damit auch die Bedingung erfüllt wird, dass ein sicheres Ereignis, also p(xi)=1, keine Unbestimmtheit enthält, bildet man den Logarithmus und erhält: 1 = − log p( xi) H ( xi ) = log p( xi ) Weiterhin ist wichtig, je größer die Unbestimmtheit einer Nachricht ist desto größer ist ihr Informationsgehalt. 2.1 Diskrete Quellen mit unabhängigen Ereignissen (Quelle ohne Gedächtnis) Ein Alphabet ist eine endliche geordnete Menge von Zeichen die für die Darstellung einer Nachricht verwendet werden. Beispiele: {A,B,C,…X,Y,Z} gewöhnliches Alphabet {1,0} binäres Alphabet Eine Quelle mit dem Alphabet X={x1,...,xN} und der Verteilung der zugehörigen Auftrittswahrscheinlichkeiten p(xi) mit i=1,...N, wobei N ∑ p( x ) = 1 i i =1 wird als diskrete Quelle X mit unabhängigen Ereignissen bezeichnet. Die Quelle wählt also ein Symbol xi aus dem Alphabet X mit der Wahrscheinlichkeit p(xi) aus. Jedes Ereignis liefert einen unterschiedlichen Beitrag zur Unbestimmtheit bzw. zum Informationsgehalt der Quelle. Selten auftretende Ereignisse besitzen einen großen Informationsgehalt und weniger selten auftretende einen niedrigen. Da die Ereignisse zufälligen Charakter haben ist auch Hi eine Zufallsgröße, für die folgender Mittelwert berechnet werden kann. N N i =1 i =1 H = ∑ H ( xi )p( xi) = − ∑ p( xi) log p( xi ) [bit] H wird auch als Quellenentropie oder mittlere Unbestimmtheit bezeichnet. Sie stellt auch den mittleren Informationsgehalt dar. Zur Verdeutlichung betrachten wir zwei Ereignisse mit der Wahrscheinlichkeit p und 1-p, wofür die Entropie zu H = -(p)log(p) - (1-p)log(1-p) wird. Für diesen Fall ist die Entropie über die Ereigniswahrscheinlichkeit in Abbildung 2 aufgetragen. Abbildung 2: Entropie für zwei Ereignisse mit den Wahrscheinlichkeiten p und 1-p (Binärquelle). 2 Aus der Graphik gehen wichtige Eigenschaften der Entropie hervor. Wie z.B. ist ein Ereignis sicher ist der Informationsgehalt Null. Das gleiche gilt für p = 0, weil in diesem Fall das andere Ereignis die Wahrscheinlichkeit 1 hat (es wird definiert 0log0=0). Ein Maximum ist bei p = 0.5 zu sehen. Daraus geht hervor, sind alle Ereignisse Gleichwahrscheinlich wird die Entropie maximal. Die wichtigsten Eigenschaften der Entropie sind nun noch mal aufgelistet. Eigenschaften der Entropie: - Die Quellenentropie wird maximal, wenn alle Ereignisse der Quelle gleichwahrscheinlich sind. - Eine Quelle, deren Alphabet ein sicheres Ereignis enthält, hat keine Unbestimmtheit. - Die Hinzufügung von unmöglichen Ereignissen zum Alphabet einer Quelle ändert die Entropie nicht. - Die Auflösung eines Ereignisses in Teilereignisse, für die pi=q1+q2 gilt, führt zur Zunahme der Entropie. H1(p1,...,pi,…pN) < H2(p1,…,q1,q2,...pN) Aus der letzten Aussage folgt, je größer die Auflösung eines diskreten Systems ist, d.h. je feiner es strukturiert ist, desto größer ist seine Entropie bzw. sein mittlerer Informationsgehalt. Hinweis: Diskrete Quelle mit abhängigen Ereignissen heißen MARKOV-Quellen 2.2 Verbundquelle Hier betrachten wir zwei diskrete Quellen X und Y mit den dazugehörigen Verteilungen der Auftrittswahrscheinlichkeiten p(xi) der Zeichen xi∈ X und p(yj) der Zeichen yj∈ Y. Dabei sollen die Ereignisse innerhalb jeder Einzelquelle voneinander unabhängig sein. Allerdings sind die Ereignisse beider Quellen voneinander abhängig, d.h., dass ein Ereignis der einen Quelle von einem vorausgegangenen Ereignis der anderen Quelle bestimmt wird. Wir legen fest, dass immer zuerst in der Quelle X ein Ereignis stattfindet, das unmittelbar danach ein bedingtes Ereignis in der Quelle Y mit der bedingten Wahrscheinlichkeit p(yj|xi) auslöst. Dieses bedingte auftreten von zwei Ereignissen bezeichnet man als Verbundereignis (xi,yj) mit der Verbundwahrscheinlichkeit p(xi,yj). Für die Verbundwahrscheinlichkeit ergibt sich folgendes: p(xi,yj) = p(xi)p(yj|xi) Für die Entropieberechnung kann hier prinzipiell der gleiche Ansatz gemacht werden wie für die diskrete Einzelquelle, da die Verbundquelle allein durch eine Menge diskreter Wahrscheinlichkeiten eindeutig beschrieben wird. Damit erhalten wir die Verbundentropie (joint entropy). N M H (X, Y ) = − ∑ ∑ p( xi, yj) log p( xi, yj) i =1 j =1 Mit i=1,…,N; j=1,…,M und N≥M. Um weitere Aussagen zur Verbundentropie zu gewinnen, setzten wir für p(xi,yj), p(xi)p(yjxi) ein. Damit folgt 3 N M H (X, Y ) = − ∑ ∑ p( xi )p( yj | xi) log p( xi)p( yj | xi ) i =1 j =1 Nach einigen Umformungen erhalten wir H (X, Y ) = − ∑ p( xi) log p( xi ) − ∑ ∑ p(xi )p( yj | xi) log p( yj | xi ) i i j Im ersten Term erkennen wir die Quellenentropie H(X), der zweite Term stellt die bedingte Entropie (conditional entropy) H(Y|X). Für die Verbundentropie erhalten wir schließlich folgende Formel H ( X, Y ) = H ( X ) − H ( Y | X ) Für den Fall, dass zuerst in der Quelle Y in Ereignis auftritt, erhält man im Ergebnis H(X,Y) = H(Y) - H(X|Y) 2.3 Kontinuierliche Quellen Das von einer kontinuierlichen Quelle ausgehende Signal kann in einem vorgegebenen Bereich jeden beliebigen Wert annehmen, d.h. die Menge der Möglichen Ereignisse dieser Quelle ist unbegrenzt. In Analogie zu Auftrittswahrscheinlichkeit bei diskreten Ereignissen kann die Wahrscheinlichkeitsdichte interpretiert werden als die Wahrscheinlichkeit, mit der ein zu einem bestimmten Zeitpunkt auftretender Funktionswert des zufälligen Signals x(t) in ein bestimmtes Intervall ∆x fällt. Abbildung 3: Wahrscheinlichkeitsdichtefunktion Zur Berechung der Entropie einer kontinuierlichen Quelle bzw. eines kontinuierlichen Signals wollen wir von einer diskreten Betrachtung der stetigen Dichtefunktion ausgehen, damit bereits bekannte Beziehungen von en diskreten Quellen übernommen werden können. Dazu denkt man sich die Fläche unter der Dichtefunktion (Abbildung 3) in Teile gleicher Breite ∆x zerlegt. Das Integral einer Teilfläche der Breite ∆x gibt die Wahrscheinlichkeit p(xi) dafür an, dass die zufällige Größe xi im Bereich ∆x liegt. ∫ f (x)dx ≈ f(x )∆x p(xi)= i ∆x Setzt man dies in die Beziehung für die Entropie diskreter Ereignisse ein erhält man ∑ f (x )∆x log(f (x )∆x) = - ∑ f ( x )∆x log f ( x ) - ∑ f ( x )∆x log ∆x H(X) = - i i i i i i i i 4 Um nun zu Entropie einer kontinuierlichen Quelle zu gelangen, muss der Grenzübergang ∆x0 durchgeführt werden. Das gelingt nicht vollständig denn log ∆x würde mit ∆x0 eine unendlich große Entropie H(X) ergeben, was offensichtlich der Realität widerspricht. Betrachtet man die Stufenbreite ∆x als Maß für die Auflösung der stetigen Funktion in praktisch unterscheidbare Amplitudenwerte (was der praktisch möglichen Genauigkeit bei der Informationserfassung entspricht), dann hat ∆x immer einen Wert, der größer als Null ist und im Gegensatz zur Funktion x(t), nicht zufällig ist. Nach dem Grenzübergang für die übrigen Ausdrücke in der obigen Gleichung erhalten wir ∞ H(X) = - ∫ f (x) log f (x)dx - log ∆x −∞ Da unter gleichen Bedingungen als konstant angesehen werden kann, lässt man das Glied log ∆x meistens weg und spricht von der relativen Entropie einer kontinuierlichen Quelle ∞ Hrel = ∫ f (x) log f (x)dx −∞ 3. Kodierung diskreter Quellen Um Informationen übertragen oder verarbeiten zu können, muss sie in eine dafür geeignete Form dargestellt werden. Dies erreicht man mit Kodierung. Unter Kodierung wird allgemein ein Vorgang verstanden, bei dem die Elemente eines Alphabets auf die Elemente eines anderen Alphabets (bzw. Wörter über diesem Alphabet) abgebildet werden. Für diskrete Quellen bedeutet das, dass jedes Element des Quellenalphabets einem Element des Kanalalphabets U eindeutig zugeordnet wird. Beispiel: Binärkodierung mit U = {1,0} Ein Wort a ∈ Ul wird als Kodewort der Länge l bezeichnet. Das Alphabet A ∈ Ul (Menge alle Kodewörter) das einem Quellenalphabet eindeutig zugeordnet ist, bildet ein Kode. Sind alle Kodewörter von der gleichen Länge, heißt der Kode, gleichmäßiger Kode. Als ungleichmäßiger Kode, wird ein Kode mit ungleicher Kodewortlänge bezeichnet. 3.1 Quellen-, Kanalkodierung und Redundanz In der Regel ist es nötig die Codewörter bezüglich des Aufwandes zu minimieren (z.B. zeitminimale Übertragung). Dies erfolgt mittels der Quellenkodierung. Hierzu zählt unter anderen die HuffmanCodierung. Das Signal das an den Kanal übergeben wird, muss für die Übertragung mittels der Kanalkodierung so verändert werden, dass es optimal und möglichst fehlerarm über diesen Kanal gelangt. In Abbildung 4 ist das Modell eines Nachrichtenkanals unter Hervorhebung der Quellen- und der Kanalkodierung dargestellt. 5 Abbildung 4: Koderedundanz im Nachrichtenmodell Bei der Kanalkodierung wird beabsichtigt Koderedundanz (d.h. der Kode enthält zusätzliche Bits, die keine Information vermitteln) hinzugefügt, um Schutz gegen Störungen zu erreichen (siehe Abbildung 5). Bei der Quellenkodierung soll die Quelleninformation in eine möglichst redundanzarme Darstellung gebracht werden. Abbildung 5: Beispiel für das hinzufügen von Redundanz um die Nachrichten vor der Zerstörung im Kanal zu schützen ( BEC steht für binary erasure channel). Aus praktischen Gründen wie das einsparen von Speicherplatz oder kürzere Übertragungszeiten der Information, werden möglichst kleine Kodewortlängen angestrebt. Da jedoch die Kodewortlänge den mittleren Informationsgehalt je Quellenzeichen verkörpert, gilt für einen dekodierbaren Kode die untere Schranke l ≥ H. Für die Koderedundanz R gilt demnach R=l–H≥0 Die Forderung nach minimaler Koderedundanz führt zu der Frage, ob auch redundanzfreie Kodierung (l = H) möglich ist. Shannon hat nachgewiesen, dass es prinzipiell möglich ist, jede diskrete Quelle völlig redundanzfrei zu kodieren (Shannonsches Kodierungstheorem). 3.2 Dekodierung Die Kodierung erfüllt natürlich nur dann ihren Zweck, wenn die Kodewörter vom Empfänger wider eindeutig den ursprünglichen Quellenzeichen zugeordnet werden können. Deshalb muss die Zuordnung von Quellenzeichen und Kodewörtern eindeutig sein. Ein Kode ist eindeutig dekodierbar, wenn man die binäre Empfangsfolge eindeutig in Blöcke (Wörter) bestimmter Länge zerlegen und diese den Quellenzeichen eindeutig zuordnen kann. Weiterhin wird gefordert, dass die Dekodierung unverzögert 6 erfolgen soll, d.h. jedes Wort soll unmittelbar nach Empfang der letzten Stelle eindeutig dekodiert werden können. Bei gleichmäßigen Kodes ist die Trennung der fortlaufenden Empfangsfolge (Erkennung der Wortenden), kein Problem, weil alle Wörter gleichlang sind. Beim ungleichmäßigen Kode ist eine zusätzliche Bedingung, zur Erkennung der Wortenden gefordert. Diese Bedingung ist die so genannte PräfixEigenschaft. Ein ungleichmäßiger Kode, bei dem kein Kodewort den Anfang (Präfix) eines anderen Kodewortes darstellt, wird als Kode mit Präfix-Eigenschaft bezeichnet. Die so genannten Kommakodes bilden eine spezielle Klasse der Präfix-Kodes. Jedes Kodewort besteht hier nur aus Einsen und wird mit einer Null (als „Komma“) abgeschlossen. Ausnahme bilden nur Kodewörter maximaler Länge deren letzte Stelle, Null als auch Eins sein kann. Um dies zu verdeutlichen betrachten wir den Kodebaum für dieses Beispiel. Dabei wird jedes Kodewort durch einen von der Baumwurzel ausgehenden Pfad bis hin zu einem Endknoten (schwarzen Punkte) bestimmt. Abbildung 6: Kodebaum für den Kommakode Um die Dekodierungsbedingung zu erfüllen, darf es auf jedem Pfad des Kodebaums nur ein Endknoten geben. Die Stufen des Kodebaums bestimmen die verschiedenen Kodewortlängen l = l1, l2,…, lmax. 3.3 Huffman-Verfahren (Optimalkodierung) Unter einen optimalen Kode versteht man denjenigen Kode, der unter allen dekodierbaren Kodes einer Quelle, die kleinstmögliche Redundanz aufweist. Die Minimierung der Koderedundanz ist gleichbedeutend mit der Maximierung des Anteils der Quelleninformation im Kodewort (Im günstigsten Fall l = H). Dabei gilt, je höher die Auftrittswahrscheinlichkeit eines Quellenzeichens, umso kleiner ist die entsprechende Kodewortlänge, und umgekehrt. Beim Huffman-Verfahren wird zuerst das Wahrscheinlichkeitsfeld nach fallenden Werten geordnet. Die letzten beiden Wahrscheinlichkeiten (die mit den kleinsten Werten) werden zu einem neuen Wert zusammengefasst. Dieses neue reduzierte Wahrscheinlichkeitsfeld wird erneut nach fallenden Werten geordnet und die letzten beiden Werte werden wieder zusammengefasst. Das ganze wird wiederholt bis die Zusammenfassung der letzten beiden Werte eins ergibt. Nun wird ein Kodebaum entsprechend dem Reduktionsschema aufgestellt indem die Kodesymbole 0 du 1 zugeordnet werden. Beispiel: Es sei nun folgendes Wahrscheinlichkeitsfeld gegeben: pj = (0,40 0,18 0,14 0,10 0,08 0,05 0,05) In der folgenden Abbildung ist dafür das beschriebene Vorgehen beim Huffman-Verfahren dargestellt. 7 Abbildung 7: Huffman-Verfahren Anhand des Kodebaums können wir die mittlere Kodewortlänge bestimmen. Diese ist für ungleichmäßige Kodes N l m = ∑ p i li i =1 lm = 0,40⋅1+0,18⋅3+0,14⋅3+0,10⋅3+0,08⋅4+2⋅0,05⋅5 = 2,48 Binärzeichen (BZ) pro Quellenzeichen (QZ). Damit beträgt die Koderedundanz bei diesem Optimalkode nur noch R = 2,48 BZ/QZ⋅1bit/BZ – 2,43bit/QZ = 0,05bit/QZ. 3.4 Fehlerkorrigierender Hamming-Kode Die Anzahl der Stellen, in denen sich zwei Kodewörter unterscheiden, bezeichnet man als HammingDistanz d. Betrachtet man z.B. die Kanalkodewörter (010) und (100), dann ist deren Hamming-Distanz zwei, denn sie unterscheiden sich in der ersten und der zweiten Stelle. Bezüglich der Korrigierbarkeit von Fehlern interessiert man sich besonders für die minimale Hamming-Distanz dmin eines Kanalkodes. Um einen Übertragungsfehler zu erkennen benötigt man einen Kode der die Hamming-Distanz dmin=2 hat. Bei so einem Kode unterscheidet sich jedes Kodewort mindestens um zwei Stellen von den anderen. Betrachtet wir dazu den Kode mit den Kodewörtern 000, 011, 101 und 110. Ein Übertragungsfehler führt zwangsläufig auf ein Wort, dass nicht im Kode enthalten ist. Somit ist der Fehler erkannt. Zwei Fehler können nicht erkannt werden, da ein Kodewort bei zwei Fehlern zu einem anderen Kodewort wird und somit kommt es zu einer Fehlinterpretation. Bei einem Kode mit der Hammig-Distanz dmin = 3 werden zwei Fehler erkannt. Allgemein gilt, dass f = dmin – 1 Fehlerstellen erkannt werden können mit der Hammingdistanz dmin. Für die Fehlerkorrektur gilt dagegen, dass (dmin -1)/2 Fehler korrigiert werden bei ungeraden dmin und (dmin-2)/2 werden für gerade dmin korrigiert. Dies wird verdeutlicht indem man um die benutzten Kodewörter so genannte „Korrekturkugeln“ (Hamming-Kugeln) legt (siehe Abbildung 8). Dabei sind so viele Fehler korrigierbar, wie nicht benutze Kombinationen auf dem Weg zu dem anderen Kodewort innerhalb dieser Korrekturkugeln liegen. 8 Abbildung 8: Kode mit dmin = 3 sowie die angedeuteten Korrekturkugeln Bei großen Kodewortlängen ist es z.B. praktikabel Prüfstellen zu verwenden. Man fügt bei jedem Kodewort eine Stelle hinzu so, dass die Anzahl der Einsen gerade (ungerade) ist. Der Fehler wird beim Empfänger dadurch erkannt, dass die Prüfbedingung „gerade Zahl von Einsen“ nicht erfüllt ist. Nun sind noch die Begriffe Generatormatrix, Kontrollmatrix und Syndrom zu klären. Vorteile bietet es, Linearkodes durch Matrizen darzustellen. Der Zeilenraum der Generatormatrix G erzeugt den Linearkode. Jede Zeile (sind linear unabhängig) der Matrix entspricht also einem Kanalkodewort. Die Matrix H wird als Kontrollmatrix des durch die Generatormatrix G erzeugten Linearkodes bezeichnet, denn sie liefert unmittelbar eine Vorschrift zur Bildung der Kontrollstellen der Kanalkodewörter. Es gilt: G⋅HT=0. Um festzustellen ob eine empfangene Binärfolge b ein Kanalkodewort ist, d.h. ob eine Verfälschung vorliegt oder nicht, benutzen wir die Beziehung s = H⋅bT Wenn der Vektor den Wert Null annimmt, ist die empfangene Binärfolge ein Kanalkodewort. s wir als Fehlersyndrom oder auch als Prüfvektor bezeichnet. Das Syndrom, kann auch zusätzlich dazu verwendet werden, die Position der Verfälschung festzustellen und damit den Fehler zu beheben. Die Korrektur erfolgt einfach durch Negation der als fehlerhaft erkannten Elemente. Kodes die einen Fehler korrigieren können bezeichnet man als Hamming-Kode. Ein Hamming-Kode hat die Hamming-Distanz dmin =3 und ist also damit geeignet einen Fehler in einer Empfangsfolge zu korrigieren. Die Kodewortlänge n eines solchen Kodes beträgt n = 2k-1. k ist die Anzahl der Kontrollelemente (bestimmen Parität) in der Matrix H. Mit deren Hilfe ist erkennbar ob ein Fehler im Kodewort vorliegt. Tritt ein Fehler auf ändert sich die Parität des Wortes (gerade Parität = gerade Anzahl von Einsen) Die Kontrollmatrix eines (7,4)-Hamming-Kodes hat die Form (n=7, k=3, 4 übrige Elemente neben k=3). 0 0 0 1 1 1 1 H = 0 1 1 0 0 1 1 1 0 1 0 1 0 1 Nehmen wir an das Wort b = 0110001, dann ist das Syndrom s = 110. Damit ist das inkorrekte Bit das sechste, womit das Kodewort 0110011 ist. Die Kontrollelemente sind die Spalten die nur eine Eins enthalten. 9 4. Kanalkapazität und Übertragungsgeschwindigkeit Uns interessiert auch, welche Zeit zur Übertragung einer bestimmten Informationsmenge in einen vorgegebenen Kanal benötigt wird. Dafür ist es nötig Begriffe wie Inforationsfluss, Symbolfrequenz, Schrittgeschwindigkeit und Übertragungsgeschwindigkeit zu erläutern. Eine Quelle X liefert in einer bestimmten Folge Quellenzeichen QZ die zur Senke übertragen werden. Die pro Sekunde abgegebene Anzahl von Quellenzeichen wird als Quellensymbolfrequenz fQ [QZ/s] bezeichnet. Das Produkt aus der Quellenentropie H(X) und fQ wird Quelleninformationsfluss IQ = fQ⋅H(X) [bit/s] genannt. Der Quellenkodierer passt die Quelle an ein Kanal an und wandelt Quellenzeichen in Kanalzeichen um. Dabei darf keine Information verloren gehen. Die Anzahl der Zeichen, die zur Darstellung eines Quellenzeichens benötigt wird, soll mit l [Kanalzeichen (KZ) pro QZ] bezeichnet werden. Kennen HK und H(X) gilt: l=H(X)/HK HK ist der maximale Informationsgehalt eins Kanalzeichens. Der Quellenkodeinformationsfluss, also der Informationsfluss der den Quellenkodierer verlässt, berechet sich zu IQK= fQ⋅l⋅HK Da l nur ganzzahlig sein kann, muss gelten IQK ≥ IQ IQK= IQ, wenn H(X)/HK ganzzahlig ist, d.h. die Koderedundanz ist Null. IQK > IQ gilt immer dann, wenn H(X)/HK nicht ganzzahlig ist, d.h. die Koderedundanz ist größer Null. Der Kanalinformationsfluss IKK (=IK) der den Kanalkodierer verlässt ist größer als IQK, welcher vom Qellenkodierer zum Kanalkodierer gelangt. Das ist der Fall, weil zusätzliche Kanalzeichen hinzugefügt werden um eine gesicherte Übertragung zu ermöglichen. Den Kanalkodierer verlässt der Transinformationsfluss IT, das ist die pro Kanalzeichen übertragene Information. In Analogie zur Quellensymbolfrequenz können wir von einer Kanalsymbolfrequenz fK in KZ/s sprechen. Ein Begriff für fK, der aus der Übertragungstechnik stammt, ist die Schrittgeschwindigkeit vs in Schritt/s. Die maximal mögliche Schrittgeschwindigkeit wird durch die Bandbreite des Kanals begrenzt. Eine weitere wichtige Kenngröße des Kanals ist die Übertragungsgeschwindigkeit vü in bit/. Es gilt vü = IK = vsHK Die Übertragungsgeschwindigkeit und der Kanalinformationsfluss sind demnach das gleiche. vü ist also ein Informationsfluss im Gegensatz zu vs, welches eine übertragungstechnische Größe ist. Für den Transinformationsfluss IT, lässt sich ein ähnlicher Zusammenhang beschreiben: IT = vsHT 10 Ist ein Kanal nicht gesichert, d.h. es gibt keinen Kanalkodierer, ist der Quelleninformationsfluss IQK gleich dem Kanalinformationsfluss IK. Für einen gesicherten Kanal soll IT=IQK gelten. Es ist leicht einzusehen, dass der Transinformationsfluss IT auf einen gestörten Kanal immer kleiner als die Übertragungsgeschwindigkeit vü ist. Auf realen Kanälen ist pro Zeit übertragbare Information begrenzt. An dieser Stelle kommen wir zum Begriff Kanalkapazität C. Die Kanalkapazität ist der Maximalwert des Transinformationsflusses und ist proportional zur Bandbreite B: C = max{IT} ∼ B 5. Kryptographie Die Kryptologie ist ein Anwendungsgebiet der Informationstheorie und beschäftigt sich mit Methoden Nachrichten zu verschlüsseln und zu entschlüsseln. Ein Anwendungsbeispiel ist das Pay-TV. Die Bilder werden in verschlüsselter Form gesendet und können mit Hilfe eines Receivers entschlüsselt werden. Das Elektronik-Banking könnte ohne die Kryptologie nicht existieren. Die Kryptologie wird in zwei Bereiche unterteilt, die Kryptographie und die Kryptoanalysis. Die Kryptography ist ein Gebiet, welches sich mit der Entwicklung von Methoden zur Verschlüsselung beschäftigt. Hier wird allgemein gebrauch von geheimen Schlüsseln gemacht. Nur diejenigen die diesen Schlüssel besitzen können die Nachricht entschlüsseln. Für jeden anderen ist der Zugang zu der Information geradezu unmöglich. Die Kryptoanalysis beschäftigt sich mit der Entschlüsselung von Nachrichten ohne jeglichen Schlüssel („hacking“). 5.1 Allgemeines Schema eines Verschlüsselungssystems In Abbildung 9 ist ein allgemeines Verschlüsselungssystems gezeigt. Eine Quelle generiert eine Nachricht M, die als Klartext bezeichnet wird und übertragen werden soll. Abbildung 9: Schema eines Verschlüsselungssystems Danach wird der Klartext, in ein Chiffretext C umgewandelt. Die Entschlüsslung kann als eine Transformation T angesehen werden, bei welcher M in C umgewandelt wird. Es gibt eine Zahl von Möglichkeiten für diese Transformation, welche abhängig vom gewählten Schlüssel K ist. Dieser Schlüssel entstammt einer Menge von möglichen Schlüsseln. Damit haben wir C = TK ( M ) 11 Die Entschlüsselung passiert auf der Seite des Empfängers. Dazu wird die inverse Transformation TK-1 durchgeführt womit folgt M = TK −1 (C) 5.2 Informationsgehalt und Sicherheit Der Informationsgehalt im Klartext wird durch die Entropie folgendermaßen ausgedrückt. n H (M ) = − ∑ p(Mi ) log p(Mi ) i =1 Dabei sind p(Mi) mit i=1,…, n die Wahrscheinlichkeiten der Ereignisse der Klartext-Nachrichten Mi. Die Informationsmenge des Chiffretextes wird als H(C) und die Informationsmenge in Bezug auf den Kode als H(K) bezeichnet. Analog sehen die bedingten Entropien aus. H(K|C) (Schlüssel-Mehrdeutigkeit) ist ein Maß für die Unsicherheit des Schlüssels, wenn wir Kenntnisse über den verschlüsselten Text C besitzen. Sei Kh mit h = 1,…, l eine Menge von Schlüsseln und Cj mit j = 1,…, m die möglichen Kryptogramme, dann gilt l m H (K | C) = − ∑ ∑ p(Kh , Cj) log p(Kh | Cj) h =1j =1 Die Schlüssel-Mehrdeutigkeit gibt also die Anzahl von Bits an, die zur Bestimmung eines Schlüssels bekannt sein müssen, sofern ein Chiffretext gegeben ist. p(Kh|Cj) gibt die Wahrscheinlichkeit dafür an, dass bei einem empfangenen Chiffretext C der Schlüssel K zur Verschlüsselung verwendet wurde. H(M|C) ist dementsprechend der Informationsgehalt bezüglich des Klartextes M für einen gegebenen Chiffretext. Dies wird auch die Nachrichten-Mehrdeutigkeit genannt. H(M|C,K) kann einfach als Informationsgehalt in Bezug auf den Klartext, wenn Chiffretext und Kode bekannt sind bezeichnet werden. Ist der Klartext eindeutig in Bezug auf den Chiffretext und den Schlüssel, gilt: H(M|C,K) = 0 Das bedeutet, wenn wir Zugriff auf den verschlüsselten Text haben und den Schlüssel, dann ist es auch möglich den Klartext zu finden: Die Unbestimmtheit (Informationsgehalt) von M ist gleich Null. H(K|M,C) wird die Schlüssel-Auftritts-Mehrdeutigkeit (key appearance equivocation) genannt, welches der Informationsgehalt im Bezug auf den Schlüssel bei gegebenen Klartext und Chiffretext. Weiter gilt: H(K|M,C) = H(K|C) - H(M|C) Die wechselseitige Information I(M,C) zwischen Klartext und Chiffretext ist I(M, C) = H (M) − H(M | C) = H(C) − H(C | M ) I(M,C) sollte so klein wie möglich sein, denn die wechselseitige Information ist auch ein Maß für die gegenseitige Abhängigkeit von Klartext und Chiffretext. D.h., wenn der Chiffretext absolut keine Information über den Klartext enthält, gilt H(M|C) = H(M) (Kenntnis von C ändert nichts an der Ungewissheit von M) und die wechselseitig Information zwischen Klartext und Chiffretext wird Null I(M,C). Ist I(M,C) = 0 sprechen wir von einem absolut sicheren Verschlüsselungssystem. 12 5.3 One-Time-Pad Kryptographie Während des zweiten Weltkrieges wurde die so genante One-Time-Pad Kryptographie von den Deutschen und von den Russen verwendet. Diese Verschlüsselungsform ist unknackbar, allerdings auch sehr unpraktisch. A und B kennen beide den Schlüssel, wobei der Schlüssel mindestens genauso lang wie die Nachricht sein muss. Zuerst muss das Alphabet in eine universell bekannten Art und Weise numerisch codiert werden. Hierzu kann die folgende Tafel dienen (Alternative ASCII-Code) Das Alphabet umfasst hier 30 Zeichen (d.h. N = 30). Alice verwendet jetzt z.B. den folgenden Schlüssel: 12 01 18 27 03 23 05 10 21 24. Nun addiert sie den Schlüssel mit der Nachricht modulo N: Bob, der den Schlüssel kennt, kann jetzt die Nachricht durch Subtraktion des Codes modulo N entschlüsseln. Das Verfahren hat aber mehrere Nachteile, wie sehr lange Schlüssel und das jeder Schlüssel nur einmal verwendet werden kann. Da die sichere Schlüsselübertragung problematisch ist, kann auch ein längerer Code verwendet werden, wobei jedes Mal ein neues Teilstück gewählt wird. Durch Zusatzprotokolle ist es auch möglich, am Anfang der Nachricht eine Position in einer frei und eindeutig zugänglichen Quelle (z.B. in einem Buch) zu kennzeichnen. Die Positionsangabe (Seite, Zeile, Spalte) stellt dann den Beginn des Codes dar. 5.4 Public-Key Verschlüsselungssystem Die Public-Key-Methode wurde erst 1976 vorgestellt und ist heute ein Standardverfahren. Es wird nicht nur von Banken und anderen Finanzinstitutionen eingesetzt, sondern auch bei normalen E-Mails. Als Beispiel ist der RSA-Kode im folgendem vorgestellt. 5.4.1 Allgemeines Prinzip Jeder Teilnehmer Ai am System verfügt über ein Schlüsselpaar (ki, li). Daneben ist allen Teilnehmern der Kodier-Algorithmus C sowie der Dekodieralgorithmus D bekannt. Diese Algorithmen erfüllen für jedes Schlüsselpaar (ki, li) und jede Nachricht M die Bedingung M = D(C(M, ki), li) Der Schlüssel ki wird nun allen anderen Teilnehmern bekannt gegeben (er wird daher öffentlicher Schlüssel genannt), während der Schlüssel li geheim bleibt. Will Bj nun eine verschlüsselte Nachricht an Ai senden, läuft folgendes ab: 13 1. Bj ermittelt den öffentlichen Schlüssel ki von Ai. 2. Bj berechnet das Kryptogramm c = C(M, ki). 3. Das Kryptogramm c wird über öffentliche Kanäle an Ai übertragen. 4. Ai gewinnt mittels M = D(c, li) die Nachricht zurück. Damit ein solches Verfahren sicher und in großem Maßstab praktisch ist, müssen folgende Voraussetzungen erfüllt werden: 1. Es muss leicht sein, zufällige Paare (ki, li) zu generieren. 2. Das Kryptogramm c = C(M, ki) muss leicht berechenbar sein. 3. Ohne li muss das Dekodieren von c sehr aufwendig sein. 4. Mit li muss M = D(c, li) leicht berechenbar sein. 5.4.2 Rivest-Shamir-Adleman System A generiert zwei große Primzahlen p und q. Im folgendem ist n = p⋅q. Als nächstes berechnet A z = (p − 1)⋅(q − 1) und wählt zwei natürliche Zahlen e und d, die der Bedingung d⋅e = 1mod z genügen, aus. Wenn d (bzw. e) relativ Prim zu z ist, d.h. d und z haben keine gemeinsamen Primfaktoren, dann liegt e fest. Die Zahlen p und q werden im folgendem nicht mehr benötigt und von A sicherheitshalber vernichtet. A hat jetzt zwei Schlüssel: Den öffentlichen Schlüssel (e, n): Dieser Schlüssel wird möglichst weit verbreitet, insbesondere erhält B eine Kopie hiervon. Und den privaten Schlüssel d: A sichert den Schlüssel, da er unbedingt geheim, d.h. nur ihm bekannt sein darf. Damit sind die Vorbereitungen von A abgeschlossen. Möchte B eine codierte Nachricht an A senden, dann bildet B die Nachricht auf eine Ziffernfolge ab, zerlegt diese Folge in Blöcke der Größe k (ggf. füllt er den letzten Block mit Nullen auf) und berechnet für jeden Block (hier mit x bezeichnet): C(x) = xe mod n Die so kodierte Nachricht sendet B an A. Um die Nachricht zu dekodieren, berechnet A für jeden Ziffernblock y = C(x) D(y) = yd mod n mit D(y) ≡ x Ein potentieller Lauscher (E) müsste zuerst n faktorisieren, um d zu ermitteln (NP-Problem). Beispiel: Erzeugung des Schlüssels: A wählt p = 47 und q = 71 und damit n = 3337 und z = 3220. Als nächstes wählt A d = 1019 aus und prüft, ob d und z teilerfremd (coprim) sind. Da dies der Fall ist, berechnet A die Zahl c, die c⋅d = 1mod z, d.h. c⋅1019 = 1mod 3220, erfüllt. Dies wird von c = 79 geleistet. Damit Ist der öffentliche Schlüssel (c, n) = (79, 3337) und der private Schlüssel d = 1019. 14 Erzeugung und Übertragung der Nachricht: B möchte nun A die Nachricht STRENG GEHEIM? übermit- teln. Dazu kodiert B diese Nachricht numerisch (unter Verwendung der Übersetzungstabelle aus 8.3) und gruppiert diese dann in vierziffern-Folge: 79 Nun wendet B auf jeden Block x die Codierfunktion C(x) = xcmod n = x mod 3337 an: Das Kryptogramm 3211267519101179041614700384 wird nun über einen öffentlichen Kanal an A 1019 übertragen, der es wieder in vierziffern-Blöcke y zerlegt und D(y) = yd mod n = y mod 3337 berech- net: Schließlich kann A nun die Ziffernfolge wieder in Text zurückübersetzen. 5.5 NP-strenges Problem als Kryptosystem In P (Polynomzeit) liegen Probleme die einen Algorithmus besitzen der das Problem in Polynomialer Zeit löst (anders: in endlicher Zeit lösbar). In NP liegen Probleme für die bisher noch kein Algorithmus gefunden wurde der das Problem in Polynomialer Zeit löst. Für viele Probleme ist ein Algorithmus mit polynomieller Laufzeit bekannt. Für andere, einfache Probleme konnten lediglich Algorithmen mit exponentieller Laufzeit gefunden werden (NP). Allerdings kann bislang nicht bewiesen werden, dass für diese Probleme kein polynomieller Algorithmus existiert. Es ist also unklar, ob es zwei Klassen von Problemen gibt: polynomiell, und nicht-polynomiell lösbare. Andere Schreibweise: Gilt wirklich P ≠ NP? Viele Probleme, für die kein polynomieller Algorithmus bekannt ist, sind polynomiell äquivalent. Wird also für nur eins dieser Probleme ein polynomieller Algorithmus gefunden, sind die anderen Probleme auch polynomiell lösbar, und P = NP. Public-Key-Verfahren beruhen meist auf Problemen aus NP (Auffinden des geheimen Schlüssels ist aus NP). Falls also P =NP gilt, wird ein Großteil der Public-Key-Kryptographie hinfällig. Die Sicherheit der momentan gängigen Verfahren beruht auf schwierigen Algorithmen (d.h. nicht in polynomieller Laufzeit lösbar), und der Annahme P ≠ NP. Mit Quantencomputern sind exponentielle Laufzeiten kein Problem mehr. Es wird bereits jetzt an sogenannter „quantum-hard cryptography“ gearbeitet. 15