Diskrete Mathematik Angelika Steger Institut für Theoretische Informatik TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAAAAAAAAAAAAAAAAA
Kapitel 4.1: Nachrichtenübermittlung und Datenspeicherung Kapitel 4: Ausblick Flüsse in Netzwerken Randomisierte Algorithmen Kapitel 4.2: Kapitel 4.3:
Nachrichtenübermittlung Sicherheit → asymmetrische Verschlüsselung: RSA (Satz von Fermat) Verlust von Datenpaketen → ein einfaches Beispiel (Polynome über endlichen Körpern) Fehlererkennung in Datenpaketen → Hashverfahren: Cyclic Redundancy Check (Polynomdivision mod 2) Fehlerkorrektur bei Datensätzen → lineare Codes: Reed-Solomon-Codes (endliche Körper)
Was ist eine Nachricht? Abstrakt: Jede Art von Information Für uns: Folge von 0/1 Bits Musikstücke Musikstücke xh a Musikstücke Musikstücke xh a Beliebige Texte Beliebige TexteAbcdefghijklmnopqrstu... Abcdefghijklmnopqrstu... Bilder Bilder
Zerlegen in Pakete Lange Nachrichten werden in mehrere Teile (sogenannte Pakete) zerlegt. Nachricht: In Pakete aufgeteilte Nachricht:
Interpretation von Paketen Paket, 0/1-Folge der Länge s → interpretiere dies als Element von GF(2 s ), dem endlichen Körper mit 2 s Elementen, a Î GF(2 s ), a 1, a 2, …, a l Î GF(2 s ) l Pakete
Kapitel 4.1: Nachrichtenübermittlung und Datenspeicherung Kapitel 4: Ausblick Verlustbehaftete Übertragung – ein einfaches Beispiel Kapitel 4.1.1:
Verlustbehafteter Kanal Annahme: „hin und wieder“ geht ein Paket verloren
Verlustbehafteter Kanal Pakete a 1, a 2, …, a l Î GF(2 s ) sollen über einen verlustbehafteten Kanal geschickt werden. Wie gehen wir vor, wenn alle Pakete ankommen sollen? 1.Idee: Schicke jedes Paket mehrfach. Nachteil: Relativ aufwendig, Volumen vervielfacht sich.
Verlustbehafteter Kanal Bessere Idee: Interpretiere a 1, a 2, …, a l Î GF(2 s ) als Koeffizienten eines Polynoms vom Grad l-1: p(x) := a 1 + a 2 x + a 3 x 2 + … + a l x l-1 Wähle l+r beliebige Werte x 1, x 2, …, x l+r Î GF(2 s ) und sende die Tupel (x 1,p(x 1 )),…,(x l+r,p(x l+r )) Es müssen nur l beliebige dieser Tupel ankommen, um a 1, a 2, …, a l Î GF(2 s ) zu rekonstruieren. Wichtig: Wir müssen in einem endlichen Köper rechnen. Ansonsten werden die Zahlen zu gross! Wähle r in Abhängigkeit von der Verlustrate des Kanals.
Kapitel 4.1: Nachrichtenübermittlung und Datenspeicherung Kapitel 4: Ausblick Fehlererkennende Nachrichtenübermittlung Kapitel 4.1.2:
Erkennen von Übertragungsfehlern Einfache Idee: Sende zusätzliches (Paritäts-)Bit Sende zusätzliches (Paritäts-)Bit Nachricht gesendete Nachricht Nachricht gesendete Nachricht Nachricht gesendete Nachricht Nachricht gesendete Nachricht Beispiel: Wenn genau ein Bit fehlerhaft übertragen wird, dann stimmt das Paritätsbit nicht mehr. → Fehler wird erkannt!
Erkennen von Übertragungsfehlern Allgemeiner Ansatz: Füge eine geeignete Prüfsumme hinzu. Füge eine geeignete Prüfsumme hinzu. Konkretes Verfahren: Cyclic Redundancy Codes (CRC) Cyclic Redundancy Codes (CRC)
Cyclic Redundancy Codes Wichtig: Wahl des Generatorpolynoms g(x) Wahl des Generatorpolynoms g(x) bestimmt was für Arten von Fehlern bestimmt was für Arten von Fehlern entweder mit Sicherheit oder zumindest entweder mit Sicherheit oder zumindest mit hoher W’keit erkannt werden. mit hoher W’keit erkannt werden. Man unterscheidet z.B.: Single Bit Fehler Single Bit Fehler r-Bit Fehler r-Bit Fehler Bursts der Länge r Bursts der Länge r
Cyclic Redundancy Codes
Kapitel 4.1: Nachrichtenübermittlung und Datenspeicherung Kapitel 4: Ausblick Datenspeicherung auf CDs Kapitel 4.1.3:
alle 0/1-Folgen in {0,1} s+r die sich an höchstens k Stellen von f(x) unterscheiden Lineare Codes Idee: Wähle f : {0,1} s → {0,1} s+r so dass: Wähle f : {0,1} s → {0,1} s+r so dass: Punkte f(x) Für x Î {0,1} s : k k 2k-fehlererkennend k-fehlerkorrigierend
Vandermonde-Matrix