Codes/Kompression/Krypto/Media

Modul 114 «Codierungs-, Kompressions- und Verschlüsselungsverfahren einsetzen»

12. Juni 2021 , Modulidentifikation , LBV Modul-114-3 Parts ¼:¼:¼:¼

Inhaltsverzeichnis

1. Einführung

1.1 Die Modulschwerpunkte

  • Zahlensysteme, Logische Verknüpfungen und A/D-Wandlung
  • Codesysteme und ihre Eigenschaften
  • Verlustlose Kompressionsverfahren
  • Verlustbehaftete Kompressionsverfahren
  • Symmetrische Verschlüsselungsverfahren
  • Asymmetrische Verschlüsselungsverfahren
  • Digitale Signatur

1.2 Dateien bestehen aus Bits & Bytes → Was sind die Informationen dahinter?

Eine Datei besteht aus Bit und Bytes → Welche Information verbirgt sich dahinter? Der Computer speichert allerlei Daten. Ob Tabellen, Briefe, Programme, Bild, Ton oder gar Videos, es sind immer Bit’s und Byte’s, um die es sich handelt und die entsprechende Applikation muss wissen, wie sie mit diesen umzugehen hat. Beispiele von Dateiarten:

  • Vektorgrafik EPS/SVG/DXF
  • Bitmapbild JPG/GIF/TIF
  • ASCII-Text
  • Audio & Video MPEG2/MPEG4 etc.
  • EXCEL-Tabellenkalkulation
  • Ausführbares Programm EXE-Datei
  • PortableDocumentFormat PDF
  • Webseite HTML
  • Microsoft WORD Dokument
  • weitere...

Aufgabe

Sie erhalten nun die folgende Datei: unknown.zip
Laden sie diese herunter und extrahieren (entzippen) sie dessen Inhalt. Nun sollen sie mit etwas Detektivarbeit herausfinden, was in dieser Datei steckt. Sie können dazu zufällig ausgesuchte Applikationen benutzen oder der Datei mit einem Hex-Editor zu Leibe rücken. (Online-Hex-Editoren findet man im Internet.)

Exkurs zu Hex-Editor

Wie wir in der vorangegangenen Aufgabe gesehen haben, bestehen alle Daten auf einem Speichermedium aus Nullen und Einsen. Manchmal möchte man sich diese anzeigen lassen und vielleicht auch eine Änderung daran vornehmen, wobei man dann ganz genau wissen muss, was man macht. In solchen Fällen kann ein Hex-Editor weiterhelfen. Der Hex-Editor stellt eine ausgewählte Datei so dar:

  • Erste Kolonne: Adresse des ersten Bytes der entsprechenden Zeile in hexadezimaler Darstellung.
  • Zweite Kolonne: 16 Daten-Bytes. Pro Byte zwei Hex-Ziffern.
  • Dritte Kolonne: Den Versuch die 16 Bytes als ASCII-Character darzustellen. (Was in diesem Beispiel gelingt. Bei einer nicht als Textdatei interpretierbaren JPG-Bilddatei würde dies scheitern. Probieren sie es aus!)

Aufgabe

Ermitteln sie für die Datei unknown.unknown

  • Dateigrösse
  • Grösse auf Datenträger
und begründen sie die unterschiedlichen Werte.

Exkurs zu Dateieigenschaften

In der obigen zweiten Aufgabe wird verlangt, die «Dateigrössen» und nicht die «Grössen-auf-Datenträger» in Byte zusammenzuzählen. Wie geht man dabei vor?

  • Im Dateiexplorer Datei anwählen und Rechtsklick
  • Es öffnen sich die Dateieigenschaften. Im Tab Allgemein finden man:
  • Grösse (Tatsächliche Dateigrösse)
  • Grösse auf dem Datenträger (Diskbelegung → Vielfaches der eingestellten Cluster- oder Blockgrösse)
Für Windows mit NTFS (New Technology File System) gilt: Übersteigt die Datei eine gewisse Grösse (ca. 1kB), wird das Dateisystem die erforderliche Anzahl Blöcke auf dem Harddisk bereitstellen und sie anschliessend mit den Daten befüllen. Sonst (bzw. bei kleinen Dateien) findet der Dateiinhalt direkt in der MTF (Master File Table) von NTFS Platz und die Grösse auf dem Datenträger wird mit 0 Bytes angegeben. (Die NTFS-Standardblockgrösse ist 4kB und kann zwischen 512B und 2MB varieren. Siehe cmd> format /?)


2. Grundlagen Digitaltechnik

Studieren sie den Theoriebeitrag zur Digitaltechnik. Dies beinhaltet die folgenden Themen:

  • Massvorsätze (SI-, und IEC-Präfixe)
  • Bit und Byte
  • Zahlensysteme (Binär, Dezimal, Hexadezimal), insbesondere Zahlenumwandlung, 2-er Komplement für negative Zahlen
  • Analog und Digital (A/D & D/A-Wandlung)
  • Kombinatorik

2.1 Übung SI-Präfixe, Zahlendarstellung, Bit & Byte

Hinweis zu ihrem Taschenrechner: Z.B. Eine Million = 1'000'000 = 1 * 106 = 1EE6 oder 1EXP6

  1. Zwei tausendstel Millimeter in Meter (inkl. dem passenden Massvorsatz/SI-Präfix)
  2. 234 Milliarden Mikroliter in Liter
  3. Wandeln Sie 3 Tage 14 Stunden 16 Minuten und 23 Sekunden in Sekunden um
  4. Gemäss CISCO soll der weltweite Datenverkehr über das IP-Protokoll im Jahre 2021 3.3 ZettaByte betragen. Wie vielen Blue-Ray-Disk's mit einem Fassungsvermögen von je 25GB entspräche dies?
  5. Ein Spannungsmessgerät hat einen Messbereich von 0 bis 99.9 Volt. Wie wird von diesem Gerät eine tatsächliche Spannung von 85.95 Volt angezeigt?
  6. Wie viele Zustände lassen sich mit einem Byte darstellen?
  7. Welches ist der minimale Wert in einem Byte in binärer und dezimaler Darstellung?
  8. Welches ist der maximale Wert in einem Byte in binärer und dezimaler Darstellung?
  9. Wie viele Zustände lassen sich mit 2 Byte = 16 Bit darstellen?
  10. Wie viele Zustände lassen sich mit 4 Byte = 32 Bit darstellen?

2.2 Übungen zu Zahlensystemen

Bevor wir die folgenden Aufgaben lösen können, befassen wir uns mit dem Aufbau der folgenden drei positionellen (Stellenwert-) Zahlensystemen:

  • Zehnersystem (Allgemein bekannt)
  • 2er-System oder Dual- bzw. Binärsystem (So rechnet der Computer)
  • 16-er System oder Hexadezimal oder kurz HEX (Wichtig in der Informatik: HEX-Dump, IPv6-Adresse etc. Einer HEX-Ziffer entsprechen 4 Bit)

Drucken sie dieses Dokument dreimal aus und folgen sie aufmerksam den Ausführungen des Dozenten.

Dieses Arbeitspapier können sie hier downloaden: Zahlensysteme.pdf

Nach dieser Einführung sollte es ihnen nun möglich sein, diese Aufgabe zu lösen:

  1. Binär 0011'1100 ergibt Dezimal?
  2. Binär 1010'1010 ergibt Dezimal?
  3. Binär 1111'1111 ergibt Dezimal?
  4. Hexadezimal 1F ergibt Dezimal?
  5. Hexadezimal AA ergibt Dezimal?
  6. Hexadezimal 100 ergibt Dezimal?
  7. Dezimal 9 ergibt Binär?
  8. Dezimal 100 ergibt Binär?
  9. Dezimal 127 ergibt Binär?
  10. Dezimal 17 ergibt Hexadezimal?
  11. Dezimal 32 ergibt Hexadezimal?
  12. Dezimal 400 ergibt Hexadezimal?
  13. Hexadezimal 1291 ergibt Binär?
  14. Hexadezimal AE90BD ergibt Binär?
  15. Binär 1110'0000'1010'0111 ergibt Hexadezimal?
  16. Binär 1010'0000'1111'0101'0000'0010'0101'0111 ergibt Hexadezimal?

2.3 Addition von Binärzahlen

  1. 0001'0001 + 1000'0001 =
  2. 0001'1011 + 1000'1101 =
  3. 0001'1111 + 1000'1101 =
  4. 0111'1101 + 1011'1111 =

2.4 Übung Bitmap (Hex-Anwendung)

Als wir zu Beginn dieses Moduls den Hex-Editor kennen lernten, sind wir bereits ein erstes Mal dem 16-er System begegnet. Die folgende Aufgabe schliesst nun daran an, indem sie die Darstellung eines Bildes als Bitmap, auch Rastergrafik genannt, zum Thema hat.
Wikipedia definiert Rastergrafik wie folgt: Eine Rastergrafik, auch Pixelgrafik (In Englisch: Raster Graphics Image, Digital Image, Bitmap oder Pixmap), ist eine Form der Beschreibung eines Bildes in Form von computerlesbaren Daten. Rastergrafiken bestehen aus einer rasterförmigen Anordnung sogenannter Pixel, denen jeweils eine Farbe zugeordnet ist. Die Hauptmerkmale einer Rastergrafik sind daher die Bildgrösse, umgangssprachlich auch Bildauflösung genannt, sowie die Farbtiefe.

Nun zu unserer Aufgabe:
Zeichnen sie eine quadratische Fläche mit 64 Feldern (Schachbrettmuster mit ausschliesslich weissen Feldern). Sie erhalten nun die folgenden 16 Hexadezimalwerte: 80C0E0F0F8FCFEFF. Sie sollen damit die 64 Felder/Häuschen ausmalen. Ein Hexadezimalwert von z.B. «B» würde binär «1011» bedeuten oder «BlauesFeld/WeissesFeld/BlauesFeld/BlauesFeld». (Eine 1 bedeutet also Blau, eine 0 Weiss) Beim Ausmalen beginnen sie links oben. Was stellt das Bild dar?

2.5 Übung Kombinationen

  1. Sie müssen 100 Treppenstufen zählen. Nennen sie die Anzahl Bit-Stellen die sie bei einer Zählung im Binärsystem benötigen würden.
  2. Ein Thermometer muss Temperaturen von -100º bis + 100º Celcius in Zehntelsschritten anzeigen können. Welche Breite (=Anzahl paralleler Leitungen) müsste der Datenbus zwischen dem Temperatursensor mit Analog-Digitalwandlung und der Anzeigeeinheit aufweisen?

2.6 Übung Datenbus

  1. Ein 16 Bit breiter Datenbus wird mit 100kHz getaktet. Wie gross wird die Datenübertragungsrate in Mb/s und in MB/s?
  2. Ein 64 Bit breiter Datenbus wird mit 200MHz getaktet. Wie gross wird die Datenübertragungsrate in Gb/s und in GB/s?
  3. Ein 12 Bit breiter Datenbus wird mit 100kHz getaktet. Mit welcher Taktfrequenz müsste ein bitserieller Datenbus getaktet werden, wenn er die gleiche Datenübertragungsrate aufweisen soll?
  4. Ein Datenbus wird mit 400kHz getaktet und überträgt Daten mit einer Übertragungsrate ü = 0.7 MB/s. Wie breit ist der Bus?

2.7 Übung Adressierung

  1. Wie gross ist ein Speicher in MB, wenn der Adressbus 20 Bit breit ist und pro Adresse 16 Bit gespeichert wird?
  2. Wie gross ist ein Speicher in MB, wenn der Adressbus 24 Bit breit ist und pro Adresse 24 Bit gespeichert wird?
  3. Wie gross ist ein Speicher in kB, wenn der Adressbus 18 Bit breit ist und pro Adresse 14 Bit gespeichert wird?

2.8 Übung A/D- und D/A-Wandlung

  1. Der A/D-Wandler in Aufgabe 1 tastet das Analogsignal mit 200 Hz ab
    Wie gross ist die Auflösung in Bit?
    Wie viele verschiedene Werte kann er darstellen?
    Wie gross ist der Speicherbedarf je Sekunde?
    Wie viele Bit werden in 24 Stunden abgespeichert?
  2. Der A/D-Wandler in Aufgabe 2 (Samplingrate: 1kHz bzw. 1 Sample pro Millisekunde) erhält das im Bild gezeigte analoge Signal
    Zeichnen sie das digitalisierte Signal in das Amplituden-Zeit-Diagramm ein
    Bestimmen sie die Amplitudenwerte der Samples als Dezimalwerte und als Binärwerte
    Wie viele Bit werden pro Sekunde gespeichert?
  3. In Aufgabe 3 erhalten sie die digitalisierten Werte einer Kurve. Das Signal soll von Digital zu Analog gewandelt werden
    Zeichnen sie die Kurve (Graphen) in ein Amplituden-Zeit-Diagramm ein

3. Codesysteme

Im vorangegangenen Kapitel haben wir gelernt, dass die digitale Recheneinheit (CPU) und weitere Komponenten (Memory, HD etc.) eines PCs Daten nur in binärer Form kennen und auch bearbeiten/speichern können und zur Ein- und Ausgabe in vielen Fällen sogar auf eine vorherige Datenumwandlung (A/D oder D/A) angewiesen sind. Dabei wurden die Begriffe Bit und Byte und die Zahlensysteme Binär und Hexadezimal eingeführt.
Nun möchten wir uns damit befassen, wie Daten zwischen den elektronischen Komponenten ausgetauscht werden. Das heisst, welche Abmachungen (Codes) getroffen werden müssen, damit die Komponenten sich untereinander auch verstehen können.

3.1 Einleitung

Das folgende Bild zeigt die Übertragung von einer einzigen Dezimalzahl im BCD-Code. Der BCD-Code ist ein simpler Binärcode, der nur die ersten zehn Bitkombinationen 0..9 nutzt und somit Redundanz aufweist. Die Wertigkeit ist ebenfalls 8-4-2-1 und mit dem LSB kann wie beim Binärcode festgestellt werden, ob die Zahl gerade oder ungerade ist. Die Codetabelle (links) bildet die Basis für die Übertragung. Bemerkung: Heute werden für die Verbindung von elektronischen Komponenten (von und zu Mikrokontrollern) eher die Busse SPI (Serial Peripheral Interface) oder I2C (Inter-Integrated Circuit) verwendet.

3.2 Anwendungsbeispiel: Der Taschenrechner-Code «Aiken»

Der Aiken-Code ist für Taschenrechner optimiert. Vier Bit stellen, ähnlich dem BCD-Code, jeweils eine Dezimalzahl dar. Daraus ergeben sich sechs Bitkombinationen, die nicht verwendet werden, sogenannte Pseudotetraden und somit Redundanz. Man beachte aber, dass die Wertigkeiten der einzelnen Bit-Stellen des Aiken-Codes sich zu denen beim BCD-Code unterscheiden. Der Vorteil des Aiken-Codes liegt in der Anordnung der einzelnen Bits: Das MSB kann zur Rundung von Zahlen benutzt werden, das LSB zum feststellen, ob eine Zahl gerade oder ungerade ist. Die Symmetrie des Aiken-Codes läst eine schnelle Umwandung von positivem zu negativem Wert zu. Stichwort Komplementbildung. Dies wiederum ein Vorteil beim z.B. Subtrahieren. Aus «7-3» wird «7+(-3)»

3.3 Aufgaben zu numerischen Codes

Finden sie heraus, welche Eigenschaften und Besonderheiten die folgenden Codes haben und geben sie an, wo diese eingesetzt werden:
(Welche Eigenschaften Codes haben können, kann im Theorieteil unter dem Kapitel «Eigenschaften von Codes» nachgelesen werden.)

  1. «Gray-Code»
  2. «1-aus-n-Code» und «2-aus-5-Code»
  3. Und für die Lernende, die "schnell unterwegs" sind als Zusatzaufgabe noch diesen spannenden Code, der bei CD/DVD zur Anwendung kommt: «EFM»


3.4 Aufgabe: Manchestercode lesen

Welche 11 Bits (Data) werden hier übertragen?

3.5 Aufgabe: Hammingcode prüfen

Sie erhalten folgenden 11-bittigen Hammingcode, der ein ASCII-Zeichen repräsentieren soll: «1 1 1 0 0 1 0 1 1 0 0». Welcher Buchstabe wurde ihnen übermittelt? (Maximale Fehleranzahl ist ≤ 1)

3.6 Aufgabe: EAN-8-Barcode erstellen

Sie erhalten folgende 7-stellige Zahl: «3 1 7 7 2 4 6». Erstellen Sie einen EAN-8-Barcode. Verwenden Sie das vorgegebene Raster und vergessen Sie die Prüfziffer nicht.

3.7 Aufgaben zum alphanumerischen Code «Unicode»

Sie benötigen für diese Aufgaben Musterdateien, die sie hier herunterladen können: UnicodeSamples.zip

  1. Untersuchen sie mit einem Hexeditor und einem Texteditor ihrer Wahl die Dateien:
    Sample1_ascii (Die ASCII-Datei enthält vier Character aus dem 7-bit ASCII-Bereich)
    Sample2_utf8 (Die UTF8-Datei enthält vier Character aus dem 7-bit ASCII-Bereich)
    Sample3_ascii (Die ASCII-Datei enthält vier 8-Bit ANSI-ASCII-Zeichen, u.a. ein «ü» gemäss ISO-Standard 8859-2)
    Sample4_utf8 (Die UTF8-Datei enthält ebenfalls vier Character, u.a. das Character «ü» mit Unicode «U+00FC»)
    Sample5_utf8 (Die UTF8-Datei enthält 4 chinesische Zeichen)
  2. Was stellen sie fest bezüglich der Länge und Codierung der UTF-8 Zeichen gegenüber den ASCII-Zeichen?
  3. Können sie den Text in Sample5_utf8 entschlüsseln?
  4. Erstellen sie ein Word-File mit Schriftzeichen, die ihre PC-Tastatur nicht zur Verfügung stellt. Z.B. das Euro-Zeichen. Benutzen sie die im Theorieteil vorgestellten UTF-8 Eingabemethoden

3.8 MP3-Audiodatei-Header mit Hexeditor analysieren (Optional)

Bei dieser Aufgabe werden wir uns mit einem Dateiformat, nämlich dem «MP3» oder eigentlich «MPEG-1 Audio Layer III» bzw. «MPEG-2 Audio Layer III» (was alles dasselbe bedeutet) beschäftigen.  Sie sollen dabei mit einem Hex-Editor den Dateiinhalt untersuchen. Sie erhalten das zu analysierende MP3-File hier: Hula-Hoop.mp3. (Übrigens ein Soundschnipsel aus dem Animationsfilm Madagascar-2

Analysieren sie das MP3-File mit einem Hex-Editor ihrer Wahl. (Hinweise zu Hex-Editoren liefert die englischsprachige Wikipedia unter "Comparison of hex editors"). Beachten sie dabei folgendes: Ein MP3-File besteht abwechselnd aus MP3-Headern und MP3-Daten. Ein MP3-File kann von einem ID3-Tag umschlossen sein. Ebenfalls kann das File ganz am Anfang XMP-Metadaten besitzen!. Der MP3-Header ist aber eindeutig mit einleitend 11+1 gesetzten Bits gekennzeichnet, also FFF.
(Das MP3-Fileformat wird sowohl auf der deutschen, wie auch der englischen Wikipedia exakt beschrieben)

  • Spielen sie das Audiofile ab
  • Welche Zusatzinformationen können sie mit dem Hex-Editor aus den ID3-Tag's herauslesen?
  • Analysieren sie den MP3-Header und nennen sie die darin gespeicherten Audioparameter (Codec, Samplingrate, Sampling-Frequen etc.)

Und hier noch ein Hinweis, wo sie im Hexdump suchen sollten:


4. Verlustlose Kompression

Warum Komprimieren?

Grundsätzlich wird bei der Datenkompression versucht, redundante Informationen zu entfernen. Dazu werden die Daten in eine Darstellung überführt, mit der sich Informationen in kürzerer Form darstellen lassen. Diesen Vorgang übernimmt ein Kodierer und man bezeichnet den Vorgang als Kompression oder Komprimierung. Die Umkehrung bezeichnet man als Dekompression oder Dekomprimierung. Man spricht von verlustfreier Kompression, wenn aus den komprimierten Daten wieder alle Originaldaten gewonnen werden können. Das ist beispielsweise bei der Kompression ausführbarer Programmdateien notwendig. Bei der verlustbehafteten Kompression können die Originaldaten aus den komprimierten Daten meist nicht mehr exakt zurückgewonnen werden, das heisst, ein Teil der Information geht verloren. Solche Verfahren werden häufig zur Bild- oder Videokompression und Audiodatenkompression eingesetzt.


4.1 Morsecode → Verlustloses Komprimierungsverfahren aus dem 18. Jh.

Der Morsecode ein historisches Verfahren (1838, Samuel Morse und Alfred Lewis Vail) zur verlustlos komprimierten Übermittlung (akustisch, elektrisch oder optisch) von Buchstaben, Zahlen und weiteren Zeichen in Seefunk und Telegrafie.
Die Codes haben unterschiedliche Codelängen. Häufig verwendete Zeichen erhalten einen kurzen Code, seltene einen langen: Hier geht es zum Online-Morsecode-Generator.

Wo sind die Grenzen?

Diese soll nun das folgende Beispiel aufzeigen. Was kann diese Codesequenz alles bedeuten:
« • • – • • • • – »?

  • « • • | – • • | • | • – » = IDEA
  • « • • – | • • • | • – » = USA
  • « • • – | • • • • | – » = UHT (Abbk. Ultra-High Temperatur)
  • « • • – • | • • • – » = FV (Abbk. Fussballverein)

Also keinesfalls eindeutig! Der Nachteil beim Morsecode liegt darin, dass es ohne spezielles Trennzeichen (Delimiter) oft Missverständnisse geben kann, wo das Zeichen beginnt und wo es endet. Dieses Problem besteht z.B. bei der Huffman-Kodierung nicht, weil hier die Eigenschaft erfüllt sein muss, dass kein Codewort der Beginn eines anderen Codewortes sein darf. Die Huffman-Codierung werden wir in einem späteren Abschnitt behandeln.

4.2 Studium der Theorie "Verlustlose Komprimierung"

Wir beschäftigen uns nun mit vier unterschiedlichen Komprimierungskonzepten:

  • Huffman-Kodierung
  • RLC (Run Length Coding/Encoding)
  • BWT (Burrows-Wheeler-Transformation)
  • LZW (Lempel-Ziv-Welch-Algorithmus)

4.3 Übung zu Huffman-Kodierung

Erstellen sie den Huffman-Code für die Textzeile: «GREIFENSEE SCHIFFFAHRT». Beachten sie, dass das Leerzeichen zwischen Greifensee und Schifffahrt auch ein zu codierendes Zeichen ist. Vergleichen sie die Codeeffizient gegenüber der ASCII-Codierung.

4.4 Übung zu RLC

Erstellen sie den RL-Code für das folgende Bitmap. Vergleichen sie den Speicherbedarf des Bitmap's mit und ohne RLC. Bei welchen Bildern ist RLE besonders effizient, wo eher nicht?

4.5 Übung zu BWT

  • Erstellen sie die BWT-Transformation für das Wort «ANANAS» und überprüfen sie mit der rücktransformation ihr Resultat.
  • Sie erhalten den Code «IICRTGH6» in der Burrows-Wheeler-Transformation. Was verbirgt sich dahinter?

4.6 Übung zu LZW

  • Erstellen sie die LZW-Codierung für das Wort «ANANAS» und überprüfen sie mit der Dekodierung ihr Resultat.
  • Sie erhalten den LZW-Code «ERDBE<256>KL<260>». Was verbirgt sich dahinter?

5. Exkurs Multimedia

5.1 Einführung

Da man verlustbehafteter Komprimierung hauptsächlich bei Bild, Video und Audio begegnet, werden hier die wichtigsten Multimedia-Grundlagen besprochen.

In diesem Kapitel wird die Theorie zu folgenden Themen behandelt:

  • Farbmodelle: RGB • CMYK • YCbCr inkl. Subsampling
  • Bildformate (Raster/Vektor/Transparenzfarbe/Alphakanal): JPG • animated-GIF • PNG • SVG • TIF
  • Videoformate (Codec/Container/Interlacing/Progressiv): H.262 • H.264 • MPEG2 • MPEG4 • QT
Es wird untersucht, wie sich die Formate und Verfahren bezüglich Auflösung, Bildwiederholfrequenz und Einsatzgebiete unterscheiden.

5.2 Fragen zu Multimedia

Studieren sie die Theorie zu Multimedia und versuchen sie, die folgenden Fragen zu beantworten:

  1. Grundlagen:
    a. Wie setzt sich ein einzelnes Pixel zusammen?
    b. Ein RGB-Farbbild benutzt nur die Farbe Weiss als Hintergrund und ein Hellblau mit folgenden Werten: R=33, G=121, B=239 (8 Bit pro Farbkanal). Das Bild soll in ein Graustufenbild umgewandelt werden. Berechnen sie den für das Hellblau entsprechende Grauwert. (8 Bit pro Farbkanal)
  2. Bitmap und Vektor:
    a. Wo sind Vektorgrafiken sinnvoll und wo Bitmapgrafiken?
    b. Was für Vorteile hat die Vektorgrafik gegenüber der Bitmapgrafik?
    c. Nennen sie ein wichtiges Einsatzgebiet von Vektorgrafik.
    d. Was läuft bei dem GIF-Format anders als z.B. bei TIF und JPG? (Tipp: Pixel und Farbe)
  3. Bildcompositing:
    a. Was ist ein Alphakanal und was versteht man unter Bild-Compositing?
    b. Welche Bildformate unterstützen Alphakanal?
    c. Was meint man mit Transparenz?
    d. Was ist der Unterschied zwischen einem Alphakanal und einer Transparenzfarbe?
  4. Videobandbreite:
    a. Welche Auflösung und Bildwiederholungsrate hat das heutige Fernsehen (HD)?
    b. Berechnen Sie die Bandbreite in GigaBit per Second oder kurz Gbps für die Übertragung eines unkomprimierten digitalen Videosignals HD1080i50 ohne Unterabtastung und 8 Bit Auflösung pro Kanal.
    c. Nach wie vielen Minuten unkomprimierten HD1080i50 Video wäre eine DVD-5 (Single-Layer DVD mit 4.7GB) voll?
    d. Berechnen Sie den Datenstrom und den Speicherbedarf für den 90 minütigen Stereo-Audio-Track eines Films in CD-Qualität (44,1kHz bei 16Bit)
    e. Berechnen Sie den Datenstrom und den Speicherbedarf für den 90 minütigen Stereo-Audio-Track eines Films in Studio-Qualität (96kHz bei 24Bit)
    f. Was ist der Unterschied zwischen einem Codec und einem Mediencontainer?

5.3 Grafik-SW einsetzen: JPG/GIF/TIF, Transparenz/Alpha (Optional)

Im folgenden werden sie eine Grafik-SW ausprobieren. Das mächtigste Werkzeug ist dabei ADOBE's Photoshop. Allerdings ist diese App nicht billig und zurzeit ist auch keine Trial-Version verfügbar. Es gibt aber Alternativen:

  1. Analysieren sie die 5 Graphikdateien in dieser ZIP-Datei Testbilder.zip. Es handelt sich um 2x JPG und 3x GIF.
    Stellen sie von den TBZ-Tower-Bilder die Auflösung (Breite x Höhe) fest und berechnen sie die Anzahl Pixel/Bild, und die theoretischen Speichergrösse bei Annahme von "TrueColor" und "unkomprimiert" (Was bedeutet übrigens TrueColor?)
  2. Vergleichen sie die tatsächlichen Speichergrössen und interpretieren sie diese bezüglich Bildqualität und Artefakte. Welche Unterschiede bestehen zwischen den JPG und den GIF-Bildern bezüglich Farbauflösung?
  3. Was ist das besondere am MisterDD-Bild? Laden sie dazu das Bild in das Graphikprogramm ihrer Wahl
  4. Transparenzfarbe und Alphakanal: Laden sie sich die folgenden Dateien herunter: Micky.gifMicky.tif und MickyBGD.jpg.
    Micky.gif besitzt eine Transparenzfarbe und Micky.tif einen Alphakanal. Erstellen sie nun je eine Bildkomposition: Micky.gif mit MickyBGD.jpg als Hintergrund und Micky.tif mit MickyBGD.jpg als Hintergrund. Vergleichen sie die Resultate. Was ziehen sie für einen Schluss daraus?
  5. GIF-Farbtabelle: Laden sie die folgenden drei Bilder in ihre Graphik-SW und erstellen sie daraus GIF-Dateien. Achten sie auf die vom Graphikprogramm erstellten Farbtabellen. Diese unterscheiden sich markant. Beim farbigen Bild genügen 256 Farben nicht. Da hilft sich die SW so weiter, indem sie vorhandene Farben mischt.

5.4 Wissenswertes zu JPG und GIF

  • Das GIF-Format verwendet man vorzugsweise für Grafiken und Logos.
  • GIF-Bilder können von jedem Webbrowsertyp und Version seit der ersten WWW-Generation dargestellt werden.
  • GIF kann eine bestimmte Farbe als Transparenzmaske verwenden.
  • Animated-GIF sind kleine Animationen oder Fimsequenzen in der Form von aneinandergereihten Bilder, die in einer vordefinierten Geschwindigkeit und Wiederholrate im Webbrowser abgespielt werden können. Z.B. der von Webseiten bekannte schaufelnde Bauarbeiter bei «Under construction».
  • Die Umwandlung eines JPG-Bild in das GIF-Format ergibt Artefakte (Farbsäume) infolge der Farbreduzierung gegenüber dem Originalbild.
  • JPG ist für Fotos und Bilder geeignet.
  • JPG kann jeder Webbrowsertyp und Version seit der ersten WWW-Generation darstellen.
  • JPG ist fast beliebig stark verlustbehaftet komprimierbar. (Achtung: Es können Block-Artefakte entstehen)

6. Verlustbehaftete Komprimierung bei Multimedia

6.1 Einführung

Bei der verlustbehafteten Komprimierung können die Originaldaten nicht mehr aus den komprimierten Daten zurückgewonnen werden. Wie stark man Medieninhalte (Bild, Audio, Video) komprimieren soll, hängt davon ab, wieviele Verluste der "Verbraucher" tolerieren kann und ob er die Reduktion überhaupt bemerkt.

Die Wiederherstellung des Originalzustands ging hier so ziemlich "in die Hose" und war kaum im Sinne des Kirchenpersonals:

In diesem Kapitel wird die Theorie zu folgenden Themen behandelt:

  1. Farbmodell: YCbCr und Subsampling
  2. Verlustbehaftete Komprimierung: DCT bei JPG
  3. Audio: Qualitätunterschiede bei WAV und MP3

6.2 Unterabtastung / Subsampling

Lesen sie den Artikel zu Unterabtastung/Subsampling durch. Dazu müssen sie wissen, wie ein Bild vom RGB-Farbraum in den YCrCb-Farbraum konvertiert wird.
Lösen sie nun die folgende Aufgabe: Eine HD-720p-Videokamera zeichnet mit Subsampling 4:1:1 auf. Wieviel Speicherkapazität wird damit gegenüber dem Original eingespart?

Zusammenfassung RGB zu YCrCb und Subsampling:


6.3 DCT-Demo → Visualisierung der DCT-Komprimierung bei JPG

DCT-Demo → Vorführung der Visualisierungs-SW durch die Lehrperson

Nach dem Studium der Theorie folgt nun eine Demonstration der DCT-Komprimierung bei JPG. Es werden die dabei entstehenden Artefakte aufgezeigt und einen Hinweis zu Intraframe- und Interframekomprimierung gemacht.

DCT-Demo → Die Lernenden experimentieren mit der Visualisierungs-SW

Laden sie die JAVA-Applikation DCT_DEMO.zip herunter und entpacken sie diese ZIP-Datei. Sie können DCT_DEMO verwenden, indem sie die Batch-Datei 00_DCT_DEMO_STARTEN.bat ausführen. Das Programm stammt von der Universität Ulm und ist soweit vertrauenswürdig. Falls sie bei der Ausführung dieses Java-Programms trotzdem Sicherheitsbedenken haben, führen sie es in einer Sandbox wie z.B. einer Windows-VM aus. DCT_DEMO besitzt übrigens eine Info-Funktion mit einer ausführlichen Beschreibung des Komprimierungsvorgangs bei DCT. Starten sie nun die Applikation mit 00_DCT_DEMO_STARTEN.bat.

Für diese Übung benötigen sie das Bild «Raytrace-Brücke (192x144)» dass sie in der Bildauswahl unterhalb des Originalbild auswählen können. Mit diesem Bild soll ihnen die «DCT-Diskrete Cosinus Transformation» etwas näher gebracht werden, ohne näher auf die mathematischen Zusammenhänge einzugehen:

  1. Untersuchen sie in «Schritt1: Farbraumkonvertierung» die Aufteilung des Farbbilds in seine drei Farbkanäle RGB und YCrCb.
  2. Gehen sie zu «Schritt2: Diskrete Cosinus Transformation» und setzen sie den gelben Cursor in die linke schwarze, danach in die rechte weisse Fläche. Wie lauten die originalen und wie die transformierten Werte? Was bringt diese Umwandlung für die Datenreduktion?
  3. Nun setzen sie den gelben Cursor auf die Grenzfläche (Schwarz-Weiss-Grenzlinie). Sie finden dort horizontal angeordnet vier verschiedene Grenzflächen. Wie lauten in diesen vier Fällen die originalen und wie die transformierten Werte?
  4. Welche Schlüsse ziehen sie aus den unterschiedlichen Werten bei dem scharf grenzflächigen Pixelblock gegenüber dem unscharf grenzflächigen bzw. den strichlierten? Bei welchem Pixelblock wird eine höhere Datenreduktion erreicht und welcher «Arbeits-Schritt» führt schlussendlich dazu?
  5. In der Applikation hat es noch weitere Bilder, die sie auch untersuchen können.

6.4 Sounddemo: Audioqualitätsstufen vergleichen

Sehen sie sich auf ihrem Notebook den Film Vimeo-Videoclip zu Audioqualitaet an. Benutzen sie dazu Kopfhörer. Was haben sie gelernt? Notieren sie sich ihre neuen Erkentnisse.

6.5 Fragen zur verlustbehafteten Komprimierung bei Multimedia

  1. Allgemein:
    a. Was versteht man unter verlustloser und verlustbehafteter Kompression? In was unterscheiden sich diese? Nennen sie Einsatzgebiete.
    b. Warum braucht es bei Multimedia (Audio/Video) verlustbehaftete Kompressionsverfahren?
    c. Was ist der Kompromiss, denn man mit einer verlustbehafteten Komprimierung eingeht?
    d. Mit welchem Verfahren erreichen sie am einfachsten eine Reduktion der Bilddaten?
    e. Im Wort «Verlustbehaftete Komprimierung» steht ja bereits der Hinweis, dass Informationen verloren gehen. Ziel ist es, im vertretbaren Bereich zu bleiben. Kann es auch übertrieben werden? Wo liegen die Grenzen?
  2. Unterabtastung/Subsampling:
    a. Wie kann mit Subsampling die Bilddatenmenge reduziert werden?
    b. Warum sind die Datenverluste bei Subsampling vertretbar?
  3. Artefakte:
    a. Was versteht man unter Artefakten?
    b. Welche Artefakte kennen sie?
    c. Wie nennt man den Artefakt, der bei der DCT-Komprimierung (JPG) auftritt?
  4. Komprimierung eines Bildes:
    a. Welche Komprimierungsverfahren kommen bei JPG, BMP, TIF, GIF und PNG zum Einsatz?
    b. Welche Verfahrensschritte werden bei der JPG-Komprimierung durchlaufen?
    c. Welche Verfahren führen bei JPG/DCT schlussendlich zur Datenreduktion?
    d. Welche Nachteile kann das JPG-Komprimierungsverfahren haben?
  5. Bewegtbild-Komprimierung:
    a. Video sind bewegte Bilder. Wie können die dabei anfallenden Datenmengen effektiv komprimiert werden?
    b. Das Konzept "Differenzen speichern" kennen sie in ähnlicher Weise auch aus dem IT-Bereich. Was ist wohl damit gemeint?
  6. GOP:
    a. Was versteht man unter dem Begriff I-, B- und P-Frame?
    b. Was bedeutet GOP12 bezüglich I-Frames?
    c. Wäre GOP120 sinnvoll?

7. Kryptologie

Für die folgenden Praxisarbeiten, Prüfungen etc. benötigen Sie einen Notebook/PC mit Windows-Betriebssystem (Kann auch virtuell sein). Die Verwendung eines anderen Betriebssystems: «At your own risk!»

7.1 Einführung

Bei diesem Thema versuchen wir, folgende Fragen zu klären:

  • Zweck der Verschlüsselung
  • Mathematische Grundlagen, Verschlüsselungsalgorithmen, Sicherheit
  • Verschlüsselungsverfahren Symmetrisch, Asymmetrisch bzw. deren Kombination; Vor-, Nachteile und Einsatzgebiete
  • Applikationen
  • Verschlüsselte Datenübertragung im Internet
  • Verschlüsselte E-Mails, S/MIME
  • Digitale Signatur
  • Public-Key-Infrastruktur und Zertifikate

Arbeiten Sie in Zweiergruppen. Die eine Person verkörpert Alice, die andere Bob. Und beide abwechslungsweise Mallory bzw. Eve. (Gerne können Sie diese Aufgabe auch an eine Drittperson übertragen.)

7.2 Cryptool-SW installieren

Bei den folgenden Aufgaben verwenden wir die Applikation «CrypTool1». Dies ist ein Open-Source-Projekt und eine freie Lern-Software, die die Konzepte der Kryptographie und der Kryptoanalyse erfahrbar macht
Installieren Sie nun CrypTool1 auf ihrem Notebook, bei Sicherheitsbedenken als virtuelle Applikation.
Das Cryptool1 können Sie hier herunterladen: www.cryptool.org/de/ct1


Symmetrische Verschlüsselung


7.3 Symmetrisch → Die Rotationschiffre

Schon der römische Feldherr und spätere Kaiser Julius Cäsar kannte den folgenden Verschlüsselungstrick und nutzte ihn bei seinen geheimen Botschaften:
«Ersetze jeden Buchstaben durch den, der eine bestimmte Anzahl Stellen später im Alphabet folgt!»
Somit konnte Cäsar effektiv geheime Botschaften übermitteln, wie z.B. diese Zitate:
«GHU DQJULII HUIROJW CXU WHHCHLW GLH ZXHUIHO VLQG JHIDOOHQ LFK NDP VDK XQG VLHJWH WHLOH XQG KHUUVFKH»
Benutzen Sie nun Ihr CrypTool1 und finden Sie heraus, um welche Zitate es sich handelt! Die Rotationschiffre ist übrigens ein klassisches, symmetrisches Verfahren. Nun aber nicht einfach drauflos probieren. Machen Sie etwas Kryptoanalyse mit einem ASCII-Histogramm.

Cryptool → Hier finden Sie das Verfahren "Rotationschiffre":

Cryptool → Hier finden Sie die Analysetools:

Eine kleine Anekdote zur Rotation von Characters:
HAL 9000 ist der fiktive Computer des Raumschiffs Discovery in Stanley Kubricks und Arthur Clarkes Film «2001: Odyssee im Weltraum» und «2010: Das Jahr, in dem wir Kontakt aufnehmen». Weit verbreitet ist die Vermutung, HAL sei die Verballhornung des Markennamens der US-Computerfirma IBM, da die Buchstabenfolge H-A-L das Ergebnis der Dekrementation der Buchstabenfolge I-B-M zu sein scheint (die Buchstaben H, A und L stehen im Alphabet jeweils unmittelbar vor den Buchstaben I, B und M). Arthur C. Clarke hat dieser Behauptung allerdings stets widersprochen: "Ich möchte einen ärgerlichen und hartnäckigen Mythos zerstören, der bereits kurz nach der Veröffentlichung des Films auftauchte. Wie im Roman deutlich gesagt, steht HAL für Heuristisch programmierter ALgorithmischer Computer. Aber ungefähr ein Mal pro Woche entdeckt irgendein Typ, dass HAL jeweils ein Buchstabe vor IBM ist, und geht prompt davon aus, dass Stanley und ich einen Witz über diese geschätzte Institution machen wollten."

7.4 Symmetrisch → Vigenèreverschlüsselung

Monoalphabetische Chiffrierverfahren wie die Rotationschiffre sind Verfahren, bei denen ein Buchstabe immer durch denselben Buchstaben ersetzt wird. Wir haben gesehen, dass Geheimtexte, die mit einem monoalphabetischen Chiffrierverfahren verschlüsselt sind, oft mit einer Häufigkeitsanalyse geknackt werden können. Im Folgenden werden wir ein einfaches polyalphabetisches Chiffrierverfahren einsetzen. Ein polyalphabetisches Chiffrierverfahren ist ein Verfahren, bei dem ein Buchstabe in der Regel mit verschiedenen Buchstaben chiffriert wird. Ein einfaches polyalphabetisches Chiffrierverfahren wurde von Blaise de Vigenère (* 1523 ; † 1596), basierend auf den Ideen eines Benediktinermönches, entwickelt. Das nach ihm benannte Vigenère-Verfahren galt lange Zeit als unknackbar. (Im Fachbeitrag Kryptografie finden sie übrigens eine Beschreibung der Vigenère-Verschlüsselung.)

  1. Verschlüsseln sie von Hand das Wort «BEEF» mit dem Schlüsselwort «AFFE».
  2. Was bedeutet der von Hand dechiffrierte Geheimtext «WRKXQT», wenn das Schlüsselwort «SECRET» heisst?
  3. Sie haben die folgende Vigenère-Chiffre erhalten:
    « USP JHYRH ZZB GTV CJ WQK OCLGQVFQK GAYKGVFGX NS ISBVB MYBC MWCC NS JOEVB GTV KRQFV AGK XCUSP VFLVBLLBE ESSEILUBCLBXZU SENSWFGVRCES SER CZBCE ILUOLBPYISL CCSZG VZJ»
    Versuchen Sie, die Botschaft mit CrypTool1 zu entschlüsseln. Allerdings fehlt Ihnen diesmal das Passwort. Wer knackt am schnellsten den Geheimtext?
    Wer das Vigenère-Analyseverfahren genauer kennen lernen will, findet unter CrypTool1 / Hilfe / Index / Vigenère-Verschlüsselungsverfahren weitere Informationen.

7.5 Symmetrisch → Die XOR-Stromchiffre

Bei der Stromchiffre werden Zeichen des Klartextes mit den Zeichen eines Schlüsselstroms XOR-verknüpft.

  1. Verschlüsseln sie die Dezimalzahl 4711 von Hand als XOR-Stromchiffre. Der binäre Schlüssel lautet: 1000‘1101. Zur Kontrolle entschlüsseln sie die erhaltene Chiffre wieder.
    Hinweis: Sie müssen die Dezimalzahl zuerst in eine 16-Bit Binärzahl umwandeln (Führende Nullen nicht weglassen). Sollte der Schlüssel für die Verschlüsselung zu kurz sein, wird dieser mehrmals wiederholt. Der Datenstrom soll in dieser Aufgabe mit der Übertragung des MSB‘s, also von links nach rechts beginnen.
  2. Ein grosser Nachteil der XOR-Verschlüsselung ist der, dass wenn es ihnen gelingt, den Klartext und die Chiffre abzufangen, sie daraus den Key ableiten und für die weitere Entschlüsselung verwenden können. (Vorwärts: 01 XOR 11 = 10 -> Rückwärts: 10 XOR 11 = 01 - Diese Lücke kann bei der Verschlüsselung von drahtlosen Netzen mittels WEP (Wired Equivalent Privacy) zum Problem führen.)
    Wie lautet der im folgenden Bild eingesetzte Schlüssel?
  3. Verwenden sie nun CrypTool1 für die folgende Aufgabe:
    Sie haben vom Klartext «IBM» die Chiffre «[ql» abgefangen und können somit den Key rekonstruieren. Entziffern sie die folgende verschlüsselte Botschaft «V{m».
    (Hinweis: Gross-Kleinschreibung beachten. Beim Key-Hack die ASCII-Chiffre zuerst in HEX umwandeln und dann als Key verwenden. Dazu gibt es übrigens Online-ASCII-HEX-Konverter.)

7.6 Schlussbetrachtung zu symmetrischer Verschlüsselung

  • Man verschlüsselt und entschlüsselt mit demselben Schlüssel
  • Wie soll die Schlüsselübergabe erfolgen?
  • Wieviele Schlüssel werden zwischen 10, 20 oder gar 100 Kommunikationspartnern erforderlich?

Aufgabe «Schlüsselanzahl bei einer symmetrische Verschlüsselung»

Berechnen sie die Anzahl erforderlichen Schlüssel gemäss den folgenden Angaben und fassen sie die Werte in einer Excel-Tabelle zusammen. Erstellen sie danach ein EXCEL-Diagramm (EXCEL: Einfügen → Diagramme → Empfohlene Diagramme). Was stellen sie fest? (Tendenz der Kurve)

  • Erforderliche Anzahl Schlüssel bei 2 Kommunikationspartnern
  • Erforderliche Anzahl Schlüssel bei 5 Kommunikationspartnern
  • Erforderliche Anzahl Schlüssel bei 10 Kommunikationspartnern
  • Erforderliche Anzahl Schlüssel bei 20 Kommunikationspartnern
  • Erforderliche Anzahl Schlüssel bei 100 Kommunikationspartnern
  • Erforderliche Anzahl Schlüssel bei 200 Kommunikationspartnern
  • Erforderliche Anzahl Schlüssel bei 300 Kommunikationspartnern

Asymmetrische Verschlüsselung


Hinweis: Auch hier verwenden wir wieder das Cryptool. Falls sie es noch nicht heruntergeladen haben: www.cryptool.org/de/ct1

7.7 Das Konzept der asymmetrischen Verschlüsselung





7.8 Asymmetrisch → Der Schlüsseltausch nach «Diffie-Hellman»

Der Diffie-Hellman-Schlüsseltausch ist ein Protokoll zur Schlüsselvereinbarung.

Aufgabe: Studium des «Diffie-Hellman»-Schlüsseltauschs

Studieren sie das Diffie-Hellman-Konzept anhand der folgenden Farb-Analogie.
Die Grundidee des Diffie-Hellman-Schlüsselaustauschs soll hier durch «Farbmischen» veranschaulicht werden. Das «Farben mischen» wird hier als eine Einwegfunktion aufgefasst. Damit meint man, das es einfach ist, zwei oder mehrere verschiedene Farben zusammenzuschütten. Wesentlich schwieriger ist es allerdings, die erhaltene Farbmischung wieder in ihre ursprünglichen Komponenten aufzuteilen. (Umkehrung)

Der Beispiels-Vorgang im einzelnen:

  1. Alice und Bob einigen sich öffentlich auf eine gemeinsame Farbe (Gelb).
  2. Jeder wählt für sich eine eigene, geheime Farbe (Alice: Orange, Bob; Türkis).
  3. Bob und Alice mischen nun jeweils die gemeinsame Farbe (Gelb) mit ihrer geheimen Farbe (Orange/Türkis). Alice erhält die Farbe Beige und Bob Graublau.
  4. Diese Farbmischungen tauschen Alice und Bob nun aus. Da darf jeder zuschauen. Diese beiden Farbmischungen sind nämlich nicht geheim. Für einen Aussenstehendne ist es nicht effizient möglich, aus den «öffentlichen» Farben (Gelb, Beige, Graublau) auf die geheimen Farben von Alice und Bob zu schliessen.
  5. Nun mischen Alice und Bob die Farbmischung ihres Gegenübers mit ihrer eigenen geheimen Farbe. Daraus entsteht wiederum eine neue Farbe (Ockerbraun), die für beide Kommunikationspartner gleich ist (Gelb + Orange + Türkis = Gelb + Türkis + Orange = Ockerbraun). Somit haben Alice und Bob eine gemeinsame geheime Farbe. Einer Drittperson ist es nicht möglich, die geheimen Farben von Alioce und Bob herauszufinden, da diese Alices und Bobs geheime Farbzutaten nicht kennt.

Optionale Aufgabe: Vertieftes Studium von «Diffie-Hellman»

Falls Sie zu den Lernenden gehören, die sich mit der obigen "Farbanalogie" nicht zufrieden geben, sei die Diffie-Hellman-Demo in CrypTool1 empfohlen: Vergleichen Sie das Verfahren mit der "Veranschaulichung der Grundidee anhand gemischter Farben".
Die Teilschlüssel lassen sich nach der Formel A=ga mod p und B=gb mod p berechnen.
Frage: Warum und wann ist dieses Verfahren sicher?



7.9 Asymmetrisch → Mit «RSA» ver- und entschlüsseln

Im Gegensatz zu Diffie-Hellman, wo es nur um den Schlüsseltausch geht, kann mit RSA eine ganze Nachricht verschlüsselt werden. (Die Mathematik dahinter ist dabei ähnlich wie bei Diffie-Hellman.)


Aufgabe: RSA-Verschlüsselung erfahren mit CrypTool

Erzeugen sie zwei asymmetrische Schlüsselpaare: Eines für «Muster Felix» und eines für «Hasler Harry»:
(Hinweis zum Import eines bereits bestehenden Schlüsselpaares mit PKCD#12-Import: Eine PKCS#12 oder .pfx Datei ist eine Datei, die sowohl den privaten Schlüssel als auch das X.509 Zertifikat beinhaltet.)

Nun verschlüsseln Sie eine Nachricht für Muster Felix : Und versuchen danach, den Text als Harry Hasler zu entschlüsseln, anschliessend als Felix Muster.
Was stellen sie fest?


Optionale Aufgabe: Vertieftes Studium von «RSA»

Falls Sie nun auch noch an der RSA-Mathematik interessiert sind, können Sie mit RSA-Demo eine komplette Verschlüsselung durchprobieren. Wählen Sie dazu zwei Primzahlen und folgen Sie dem weiteren Verlauf der Demo:


Hybride Verschlüsselungsverfahren


7.10 Vorteil von hybriden Verschlüsselungsverfahren

Aufgabe zur Theorie

(Lösungstipp: Siehe Theorieteil «Kryptografie» → Hybride Verschlüsselungsverfahren)

  1. Möchte man mit dem RSA-Verfahren umfangreiche Nachrichten verschlüsseln, hat dies einen nicht zu unterschätzender Nachteil.
    Welchen?
  2. Hybride Verschlüsselungsverfahren bedienen sich beiden Verfahren, dem "symmetrischen" und dem "asymmetrischen".
    Warum ist das so und welches Verfahren kommt wann zum Einsatz?

7.11 Hybrides Verschlüsselungsverfahren → RSA-AES

Bei RSA-AES handelt es sich zum Beispiel um ein hybrides Verfahren: Schlüsseltausch asymmetrisch mit RSA und Verschlüsselung der Nachricht symmetrisch mit AES.

Aufgabe: RSA-AES mit CrypTool

Spielen Sie die beiden Demos RSA-AES-Verschlüsselung und RSA-AES-Entschlüsselung in CrypTool sorgfältig durch.


Digitale Signatur


7.12 Einführung Digitale Signatur

Aufgabe zur Theorie

Finden sie heraus, was digital signieren bedeutet. (Lesen Sie dazu in der Theorie Kryptologie den Beitrag zu digitaler Signatur mit «RSA»)

Aufgabe Signaturdemo in CrypTool1

Führen Sie nun die Signaturdemo in CrypTool1 aus: Vom Ablauf her unterscheidet sich das Verschlüsselungsverfahren vom Signaturverfahren:

  • Worin unterscheidet es sich?
  • Wann kommt der Private-Key und wann der Public-Key zum Einsatz?


7.13 Hashwert bilden

Wie Sie nun in der vorangegangenen Aufgabe herausgefunden haben, wird bei der digitalen Signatur ein "Fingerabdruck" der Nachricht erstellt, und dieser mittels Verschlüsselung gegen Verfälschung gesichert. Bei dieser Aufagen soll der "Hashwert" alias "Fingerabdruck" im Zentrum stehen.

Aufgabe Hash-Demo in CrypTool

Führen Sie nun im Cryptool die Hash-Demo aus:



7.14 Hashwert-Manipulation bei der digitalen Signatur (Optional)

Lesen Sie im Theorieteil zu Kryptologie das Kapitel zu Schwachstellen von «RSA»
Die Quintessenz ist, dass eine Nachricht und sein Hashwert ein-eindeutig sein sollten. Sind sie aber nicht in jedem Fall! Wie Sie in der folgenden Analyse der Hashverfahren erfahren dürfen, kann je nach gewähltem Hashverfahren eine zumindest teilweise Hashwert-Übereinstimmung von verschiedenen Nachrichten erreicht werden. Probieren Sie es doch einfach einmal selber aus: Die einzelnen Schritte:

  1. Erstellen sie eine Datei original.txt mit dem Textinhalt: «Verkaufe meinen Notebook zu CHF 1500.-»
  2. Erstellen sie von der soeben erstellten Datei original.txt eine Kopie mit dem Dateinamen backup.txt.
  3. Erstellen sie eine Plagiats-Datei fake.txt mit dem Textinhalt: «Verkaufe meinen Notebook zu CHF 150 .-» (Es fehlt absichtlich die letzte Null!)
  4. Erstellen sie zu Kontrollzwecken je einen MD2-Hashwert von allen drei Dateien.
    Einzelverfahren → Hashverfahren → MD2
    Sie stellen fest: original.txt und backup.txt haben denselben Hashwert, fake.txt einen anderen.
    backup.txt kann nun gelöscht werden. Diese Datei brauchen wir nicht mehr.
  5. Wählen sie nun Analyse → Hashverfahren → Angriff auf den Hashwert der digitalen Signatur...
    Als harmlose Datei wählen sie original.txt
    Als gefährliche Datei wählen sie fake.txt
    Wählen sie bei den Optionen den schwächsten Hashalgorithmus MD2 und eine signifikante Bitlänge von 16 (Bit).
    Nach der Ausführung erhalten sie zwei Varianten von ihren Ausgangsdateien:
    «original.txt» ergibt «Harmlose Nachricht: MD2, <92 14>»
    «fake.txt» ergibt «Gefährliche Nachricht: MD2, <92 14>»
    Das bedeutet: Cryptool hat von beiden Ausgangsdateien Varianten mit kleinen Ergänzungen/Änderungen gefunden bzw. erstellt, die sich in den ersten 16 Bit des Hashwerts nicht unterscheiden: <92 14>
  6. Sie können nun diesen Vorgang mit einer längeren signifikanten Bitlänge wie z.B. 24,32, etc. wiederholen.
    Sie werden feststellen, dass der Suchvorgang in Cryptool immer länger dauert. Bei einer signifikanten Bitlänge von 128 wäre der Hashwert bei der Textdatei original.txt und fake.txt komplett berechnet. Das heisst, es liegen nun zwei Dokumente vor, die denselben Hashwert besitzen.
Was ist nun das gefährliche dabei:
Würden sie als Bösewicht nun eine Variante mit dem modifizierten aber sonst korrekten Text «Verkaufe meinen Notebook zu CHF 1500.-» ihrem Opfer Felix Muster zur digitalen Signierung vorlegen und dieser auch tatsächlich unterschreiben, wäre ihre Schelmerei schon zur Hälfte gelungen: Sie besässen ein modifiziertes korrektes Dokument mit gültiger Signatur, würden dieses aber durch ihre gefährliche Datei mit dem modifizierten Fake-Text «Verkaufe meinen Notebook zu CHF 150 .-» ersetzen. Der von Felix Muster signierte Hashwert gilt ja für beide modifizierten Dokumente. Würde nun Susi Sorglos das gefälschte Dokument inklusive Signatur erhalten, dessen Echtheit überprüfen und dann auch noch lesen, wäre der Schaden schon angerichtet: Die ahnungslose Frau würde annehmen, das Dokument stammt tatsächlich und unverfälscht von Felix Muster, was ja infolge ihrer Manipulation (Modifikationen) nicht zutrifft und würde vielleicht sogar auf den Kauf des für CHF 150.- angebotenen Notebooks bestehen.
Geht es nur um belanglose Dinge, stellt das kein grosses Problem dar. Handelt es sich aber um Votings, rechtlich verbindliche Offerten oder sogar Software-Updates, droht nachhaltiger Ärger.

Fazit:
Niemals fremde Dokumente unbekannten Inhalts signieren!
(Um jetzt aber dieser Erfahrung etwas Brisanz zu nehmen, soll gesagt sein, dass während der Berechnung aller Hash-Bits (in unserem Fall 128) doch etwas Zeit vergeht (Die ersten 64 Bit am PC berechnen dauert ca. 1..4 Tage - HW/SW-abhängig/Stand 2020) und das der MD2 ja auch schon etwas in die Jahre gekommen und bei aktuellen Signier-Tools schon längst durch leistungsfähigere und kaum manipulierbare Algorithmen ersetzt worden ist.)


Public Key Infrastruktur


7.15 Public Key Infrastruktur

Es stellt sich bei asymmetrischen Verschlüsselungsverfahren mit PublicKey und PrivateKey die zentrale Frage:
Gehört der Public-Key tatsächlich dem vermeintlichen Empfänger meines verschlüsselten Dokumentes?

Aufgaben zur Theorie

Beantworten sie die folgenden Fragen:

  1. Wie kann ich den Public-Key verifizieren?
  2. Was versteht man unter Public Key Infrastruktur?
  3. Was ist der Unterschied zwischen OpenPGP und X.509?
  4. Was bedeutet Certification-Authority (CA) und Trust-Center (TC)?
  5. Wie schaut ein OpenPGP-Schlüssel aus? (Wir werden später in gpg4win mit Kleopatra ein eigenes Schlüsselpaar erstellen)

Kryptografie in der Praxis


7.16 Krypto-Praxis → Vorarbeiten (Hausaufgabe)

Nun beenden wir unseren Rundgang im CrypTool-Lernlabor und widmen uns den in der Praxis anzutreffenden (Open-Source) Tools. Zuerst sollen die folgenden Arbeiten erledigt werden.
Anleitungen zu den verwendeten Verschlüsselungsapplikationen lassen sich im Theoriebeitrag «Kryptologie» nachlesen.

  • gpg4win installieren: Installieren Sie auf Ihrem Notebook gpg4win. Hier gpg4win herunterladen: www.gpg4win.de/
  • Neuer E-Mail-Account anlegen: Für die Thunderbird-Aufgabe empfielt es sich, einen Test-E-Mail-Account anzulegen, der idealerweise Webmail unterstützt und wie ihn z.B. SWISSCOM unentgeltlich anbietet.
  • E-Mail-Client installieren: Installieren Sie auf Ihrem Notebook den E-Mail-Client Mozilla Thunderbird und richten sie ihr E-Mail-Konto darin ein. Thunderbird können sie hier herunterladen: www.thunderbird.net

7.17 Gpg4win/Kleopatra → Schlüsselpaar erzeugen

Starten sie nun den gpg4win-Zertifikatsmanager «Kleopatra» und erstellen Sie Ihr eigenes Schlüsselpaar. Tauschen Sie die Public-Keys untereinander aus und pflegen Sie diese in Ihren Zertifikatsmanager ein.
Wie können sie die Authentizität des Ausstellerschlüssels überprüfen? (Stammt dieser Public-Key auch wirklich von der Person, von der ich dies annehme?)

7.18 Gpg4win/Kleopatra → Datei verschlüsseln

Nun soll eine beliebige Datei (Text, Bild etc.) für ihren Kommunikationspartner verschlüsselt werden. Dies kann direkt in Kleopatra erfolgen. Stellen sie das verschlüsselte File ihrem Kommunikationspartner zur Verfügung. (Per E-Mail, USB-Stick etc.) Wenn dieser es entschlüsseln kann, wurde die Aufgabe erfolgreich erledigt.

7.19 Gpg4win/Kleopatra → Datei signieren

Nun soll eine beliebige Datei (Text, Bild etc.) für ihren Kommunikationspartner signiert werden. Dies kann ebenfalls wieder direkt in Kleopatra erfolgen. Stellen sie das File inklusive Signatur ihrem Kommunikationspartner zur Verfügung. (Per E-Mail, USB-Stick etc.) Wenn dieser mit der Signatur die Echtheit ihres Files verifizieren kann, wurde die Aufgabe erfolgreich erledigt.

7.20 Gpg4win/Kleopatra → Datei verschlüsseln und signieren

Nun soll eine beliebige Datei (Text, Bild etc.) für ihren Kommunikationspartner verschlüsselt und signiert werden. Wiederum in Kleopatra. Stellen sie das File inklusive Signatur ihrem Kommunikationspartner zur Verfügung. (Per E-Mail, USB-Stick etc.) Wenn dieser das File entschlüsseln und dank der Signatur den Absender verifizieren kann, wurde die Aufgabe erfolgreich erledigt.

7.21 Studium der Theorie zu «Sichere Emails verschicken»

Lesen sie im Theorieteil Kryptologie den Text Hintergrundwissen zu «Sichere E-Mails verschicken». Dieser behandelt S/MIME und OpenPGP. Vertiefen sie ihr Wissen, indem sie Fachbegriffe auf den entsprechenden Webseiten (Wikipedia etc.) nachschlagen. Eine gute Quelle ist auch das Gpg4win-Kompendium in Kleopatra

7.22 Sichere E-Mails verschicken mit dem Thunderbird-Mailclient

Im folgenden werden wir Thunderbird einrichten und verwenden. Bei der Verschlüsselung fokussieren wir uns auf OpenPGP-Schlüssel. (Die Alternative wären S/MIME-Zertifikate.)

  1. Installieren sie Thunderbird.
  2. Richten sie in Thunderbird ihren EMail-Account ein.
  3. Suchen sie sich im Klassenverband einen EMail-Partner aus, mit dem sie EMails austauschen möchten.
  4. Importieren sie den Public-Key dieser Person.
  5. Erstellen und verschlüsseln sie eine EMail an ihr Gegenüber.
  6. Erstellen und signieren sie eine EMail an ihr Gegenüber.
  7. Erstellen, verschlüsseln und signieren sie eine EMail an ihr Gegenüber.
  8. Prüfen sie die verschlüsselten und/oder signierten EMails ihres Partners.
(Hilfestellung zum Einrichten eines EMail-Accounts, Thunderbird etc. finden sie im entsprechenden Theoriebeitrag.)


7.23 Sichere Webseiten mit HTTPS

Wie sicher ist eine Webseite? Vor allem dann, wenn sensitive Daten darüber verschickt werden, wie z.B. bei Webshops und Onlinebanking. Gefürchtet ist die "Man-in-the-middle-Atacke, wo eine Person zwischen Webbrowser und Webserver Daten anzapft und modifiziert weiterleitet, bzw. die Antwort abfängt und "bereinigt" an den Kunden zurückgibt. Abhilfe schaft da SSL/TLS, ein Verschlüsselungsprotokoll, dass zwischen Transport-Layer und Applikationslayer (siehe ISO-OSI-Schichtenmodell) für Sicherheit sorgt. Möchte man seine Webseite damit aufrüsten, stellt sich sofort wieder die Frage der Authentizität öffentlicher Schlüssel: d.h. es führt kein Weg an einem offiziellen SSL/TLS Zertifikat vorbei. Ausserdem muss der Webhoster SSL/TLS auch unterstützen.

Im folgenden eine Pulsfühlung in den Sozialen Medien zum Thema:

  • Ein SSL/TLS-Zertifikat macht deine Seite sicherer und ist gut für Google.
  • Schon vor gut zwei Jahren hatte Google angekündigt verschlüsselte Seiten bei den Suchergebnissen bevorzugt zu behandeln.
  • Der Google-Browser Chrome wird unverschlüsselte Seiten demnächst mit einem "Nicht sicher" in der Adresszeile brandmarken.
  • Verschlüsselte Kommunikation sollte ein Grundrecht im Internet sein.
  • Eine verschlüsselte Webseite ist eben nicht per se vertrauenswürdig.
  • Allein mit dem Stichwort Paypal hätten seit Januar 2016 fast 15.000 eindeutig als Phishing-Seiten identifizierte Domains Zertifikate von Let's Encrypt erhalten.
  • Etwas über zwei Jahre nach dem Start der gemeinnützigen Zertifizierungsstelle Let's Encrypt (2016) stellt diese nun über die Hälfte aller SSL-Zertifikate im Netz.

Aufträge: (Fassen sie ihre Resultate, Erkenntnisse etc. in einem Dokument zusammen.)

  • Diskutieren sie in einer Gruppe zu 2..3 Personen die obigen Aussagen. Haben sie diesbezüglich auch schon Erfahrungen gemacht? Betreiben sie sogar schon eine eigene Webseite?
  • Was bedeutet eigentlich HTTPS?
  • Öffnen sie die beiden folgenden Webseiten und achten sie auf die Unterschiede in der Wedadresszeile. Was stellen sie fest?
    Erste Webseite: https://edu.juergarnold.ch
    Zweite Webseite: https://www.zkb.ch
  • Es wird von SSL/TLS gesprochen: Wie ist der Ablauf bei TLS? Irgendwo kommen da ja noch Zertifikate ins Spiel?
  • Kehren wir nochmals zurück zu Kleopatra (gpg4win): Darin können sie ihre eigenen Schlüsselpare erzeugen. (Datei → Neues Schlüsselpaar...). In der vorangegangenen Aufgabe haben wir ein "Persönliches OpenPGP Schlüsselpaar" erstellt. Da gibt es aber auch noch das "Persönliche X.509-Schlüsselpaar". Probieren sie das auch aus! Was sind die Unterschiede zwischenden den beiden Schlüsselvarianten und was hat S/MIME damit zu tun?
  • Wenn sie sich mit Zertifikaten befassen, "stolpern" sie früher oder später über diese beiden Webseiten:
    http://www.cacert.org.
    https://letsencrypt.org/de
    Was können ihnen diese bieten?
  • Folgende TLS Zertifikatsarten werden unterschieden:
    • Domain Validated
    • Organization Validated
    • Extended Validation
    Sie möchten einen Webshop betreiben, wo mit Kreditkarte bezahlt werden kann. Welcher Zertifikatstyp ist der Richtige?
  • Aus gesetzlichen Gründen sind sie verpflichtet, den gesamten geschäftlichen EMail-Verkehr zu archivieren, auch den verschlüsselten. Was ist das Problem dabei und wie könnte man diesem begegnen?
  • (Optional) Falls sie Experte zu diesem Thema werden wollen: Sind Ihnen Abkürzungen wie Pinning, OCSP Stapling, SSLStripping HTTPS->HTTP, CAA, DANE, CSR, PKI vertraut?

Weitere Verfahren zur Informationsverbergung


7.24 Steganografie Praxis (Optionale Aufgabe)

Steganografie bezeichnet die verborgene Speicherung oder Übermittlung von Informationen in einem Trägermedium. In unserem Fall ist das Trägermedium eine Bilddatei.

Auftrag:

  1. Installation der Steganografie-SW Openstego:
    Laden sie «Openstegano» herunter und installieren sie es. Sie finden die Software «Setup-OpenStego-0.6.1.exe» (oder höhere Version) hier:
    http://www.openstego.com
    https://github.com/syvaidya/openstego/releases
    Das Programm ist unter WIN10 lauffähig.
    (Falls sie Sicherheitsbedenken haben, verwenden sie eine virtuelle Windows Maschine.)
  2. Versteckte Botschaft in Bilddatei entschlüsseln:
    Sie erhalten die Bilddatei detective.png. Darin ist eine geheime «Openstegano»-Botschaft versteckt. Das Passwort lautet gleich wie der Filename, nämlich «detective». Was wird ihnen da mitgeteilt? Hier kann man die Bilddatei herunterladen: detective.png
  3. Eigene geheime Botschft in Bilddatei verstecken:
    Verschlüsseln sie nun selber mit «Openstegano». Suchen sie sich dazu im Internet ein originelles Bild (jpg mit ca. 300x300Pixel). Dies soll das «Cover File» sein. Erstellen sie mit Notepad oder einem anderen ASCII-Editor ein Textfile mit einer kurzen Botschaft. Dies ist das «Message File». Verschlüsseln sie es nun mit einem Passwort, bestehend aus den ersten drei Buchstaben ihres Vornamens. (Achtung: Umlaute «ä», «ö», «ü» gelten als zwei Buchstaben ae, oe und ue. Somit wäre das Passwort von Björn=bjo oder von Yürsa=yue) Tauschen sie die verschlüsselten Bilddaten gegenseitig aus und versuchen sie herauszufinden, was ihnen ihr Mitschüler mitzuteilen hat.