Kryptologie

Die vorliegenden Materialien wurden von Daniel Hoherz und André Tempel erstellt. Sollten andere Editoren die Materialien erstellt haben, werden diese explizit genannt.

Grundlagen

In den vorherigen Jahrgängen haben Sie sich bereits mit verschiedenen Verfahren der Kryptographie und Kryptoanalyse beschäftigt. Zur Erinnerung hier nochmal eine kurze Defintion der beiden Begriffe:

Kryptographie Kryptoanalyse

Die Kryptographie ist die Wissenschaft der Verschlüsselung von Informationen und Informationssicherheit und befasst sich mit der Konzeption, Definition und Konstruktion von gegen Manipulation widerstandsfähiger Informationssysteme.

Die Kryptoanalyse ist die Wissenschaft von Methoden und Techniken, mit denen Informationen aus verschlüsselten Informationssystemen gewonnen werden sollen. Ihr Ziel ist, den Manipulationswiderstand von Kryptosystemen aufzuheben, zu umgehen oder deren Sicherheit zu quantifizieren.

In diesem Kontext hatten Sie einige Verschlüsselungsverfahren und Entschlüsselungsverfahren, aber auch zahlreiche Fachbegriffe kennengelernt.

Vorwissen

Finden Sie sich in einer Gruppe von maximal drei Personen zusammen und bearbeiten Sie die folgenden Aufgaben. Beachten Sie bitte, dass Sie Ihre Ergebnisse fortlaufend dokumentieren. Nutzen Sie bei Bedarf die gestaffelten Hilfen.

Ihr Bearbeitungsfortschritt: 0%
🔵 Gruppenaufgabe

Sammeln Sie in Ihrer Gruppe wichtige Fachbegriffe und Verschlüsselungsverfahren aus den letzten Jahrgängen rund um das Thema Kryptologie.

Tipp für die Dokumentation: Erstellen Sie eine strukturierte Liste oder eine kleine Mindmap auf Ihrem Arbeitsblatt, um die Beziehungen zwischen den Begriffen (z. B. historische Hilfsmittel vs. mathematische Prinzipien) zu verdeutlichen.
Hilfe 1 – Die beiden Hauptsäulen der Kryptologie
Denken Sie an die Aufteilung des Themas: Es gibt eine Wissenschaft, die sich mit dem *Verschlüsseln* (Geheimhalten) beschäftigt, und eine Wissenschaft, die sich mit dem *Brechen* oder Analysieren von Codes befasst (wie z. B. durch systematisches Raten oder mathematische Analysen). Wie heißen diese beiden Teilbereiche?
Hilfe 2 – Grundkomponenten und Kernprinzipien
Welche Zustände durchläuft eine Nachricht (vorher/nachher)? Denken Sie zudem an die zwei grundlegenden Wege, wie man Buchstaben manipulieren kann: Entweder man *ersetzt* sie durch andere Zeichen oder man *würfelt ihre Reihenfolge durcheinander*. Suchen Sie nach den Fachbegriffen für diese beiden Prinzipien.
Hilfe 3 – Historische Verfahren und Analysemethoden
Erinnern Sie sich an konkrete Beispiele:
  • Welches Verfahren nutzt einen Holzstab, um einen Streifen Pergament zu verschlüsseln?
  • Wie nennt man das Verfahren von Julius Caesar?
  • Mit welcher statistischen Methode (Auswertung von Buchstabenhäufigkeiten) kann man einfache Verschlüsselungen ohne Schlüssel knacken?
🔵 Gruppenaufgabe

Definieren Sie nun möglichst viele der in Aufgabenteil a) gesammelten Begriffe in eigenen, präzisen Worten.

Vorgehen: Gehen Sie die Begriffe Schritt für Schritt durch. Achten Sie besonders auf die präzise Abgrenzung: Was unterscheidet beispielsweise eine *Substitution* von einer *Transposition*? Was macht eine Substitution *monoalphabetisch*?
Hilfe 1 – Strukturierung der Definitionen
Nutzen Sie präzise Einleitungssätze. Ein bewährtes Muster ist:
„Unter [Fachbegriff] versteht man..." oder „Der Begriff [Fachbegriff] beschreibt...".
Starten Sie am besten mit den grundlegenden Datenzuständen (Klartext und Geheimtext) sowie dem Begriff des Schlüssels.
Hilfe 2 – Angriffs- und Analysemethoden abgrenzen
Achten Sie bei der Definition von Methoden zur Code-Analyse auf den Unterschied im Vorgehen:
  • Untersuchen Sie die Struktur und die Verteilung der Zeichen (statistischer Ansatz $\rightarrow$ *Häufigkeitsanalyse*)?
  • Oder probieren Sie stumpf und nacheinander alle theoretisch denkbaren Möglichkeiten aus ($\rightarrow$ *Brute-Force*)?
🎉 Ausgezeichnet – Vorbereitung abgeschlossen!

Sie haben alle Aufgabenteile dokumentiert und abgehakt. Vergleichen Sie Ihre gesammelten Begriffe und Definitionen nun mit der lehrplankonformen Musterlösung.

Musterlösung zu Aufgabenteil a) & b) (Strukturierte Übersicht & Glossar)

Die folgende Tabelle fasst die wesentlichen Systembegriffe, Prinzipien und Verfahren der Kryptologie zusammen:

Fachbegriff / Verfahren Präzise wissenschaftliche Definition
Kryptologie Der wissenschaftliche Oberbegriff für die Geheimhaltung von Informationen. Sie umfasst sowohl die Entwicklung von Schutzverfahren als auch deren Analyse.
Kryptographie Der Teilbereich der Kryptologie, der sich mit dem Entwurf und der praktischen Entwicklung von Ver- und Entschlüsselungsverfahren befasst.
Kryptoanalyse Der Teilbereich der Kryptologie, der sich mit dem Untersuchen, Prüfen und unbefugten Brechen bestehender Kryptosysteme beschäftigt.
Klartext Die ursprüngliche, für jedermann offen lesbare und direkt verständliche Nachricht vor der Verschlüsselung.
Geheimtext Die durch ein kryptographisches Verfahren veränderte, für unbefugte Dritte unlesbare und unverständliche Zeichenfolge.
Schlüssel Die geheime Variable oder Information (z. B. eine Zahl oder ein Wort), die ein Algorithmus benötigt, um einen Text spezifisch zu ver- oder entschlüsseln.
Symmetrische Verfahren Kryptosysteme, bei denen Sender und Empfänger exakt denselben geheimen Schlüssel sowohl für die Ver- als auch für die Entschlüsselung nutzen (z. B. Caesar).
Substitution Ein grundlegendes Verschlüsselungsprinzip, bei dem die Zeichen des Klartextes durch andere Zeichen (Buchstaben, Zahlen oder Symbole) *ersetzt* werden. Die Position der Zeichen im Text bleibt dabei gleich.
Monoalphabetische Substitution Eine Unterform der Substitution, bei der jeder Klartextbuchstabe im gesamten Text immer durch exakt denselben Geheimtextbuchstaben ersetzt wird. Es existiert folglich nur ein einziges festes Geheimtextalphabet.
Caesar-Verfahren Ein klassisches Beispiel für eine monoalphabetische Substitution. Jeder Buchstabe des Klartextes wird zyklisch um eine feste Anzahl von Positionen im Alphabet verschoben.
Transposition Ein grundlegendes Verschlüsselungsprinzip, bei dem die Positionen der Zeichen im Text nach einem festen System *vertauscht bzw. umgestellt* werden. Die ursprünglichen Zeichen selbst bleiben dabei völlig unverändert.
Skytale Ein historisches mechanisches Hilfsmittel zur Transpositionsverschlüsselung aus dem antiken Sparta. Ein Pergamentstreifen wird um einen Stab gewickelt und längs beschrieben. Der Stabdurchmesser fungiert hierbei als Schlüssel.
Häufigkeitsanalyse Eine kryptoanalytische Methode zum Brechen von Geheimtexten. Sie nutzt die Tatsache aus, dass Buchstaben in natürlichen Sprachen charakteristische Häufigkeiten aufweisen (z. B. das 'E' im Deutschen). Bei monoalphabetischen Verfahren lässt sich so oft auf den Klartext schließen.
Brute-Force Eine kryptoanalytische Angriffsmethode (auch Erschöpfungsangriff genannt), bei der durch reines Ausprobieren systematisch alle theoretisch möglichen Schlüssel getestet werden, bis ein lesbarer Klartext entsteht.

Hinweis: Die Formulierungen der Schülerinnen und Schüler müssen nicht wortwörtlich mit dieser Tabelle übereinstimmen. Entscheidend ist, dass die informationstechnischen Kernmerkmale (insbesondere das *Ersetzen* bei der Substitution und das *Umsortieren* bei der Transposition) richtig verstanden und wiedergegeben wurden.

Auffrischung

Jede Art von Informationsübertragung – ob Gespräch, SMS oder Datenpaket – folgt demselben Grundprinzip:

Sender 👤
📦 Datenverkehr im Übertragungskanal
Empfänger 👤
💡 Alltagsbeispiel: Ein Brief wird in einen Umschlag gesteckt, über das Postsystem (Kanal) versendet und vom Empfänger geöffnet.
📱 Digitales Beispiel: Eine WhatsApp-Nachricht wird als Datenpaket über das Internet (Kanal) vom Smartphone zum Server und Empfänger übertragen.
⚠️ Das Problem: Jeder unverschlüsselte Kanal ist prinzipiell abhörbar. Wer Zugang zum Kanal hat, kann sämtliche Daten problemlos mitlesen!

Ein Kryptosystem stellt Verfahren zur sicheren Kommunikation bereit. Es transformiert Informationen mithilfe mathematischer Algorithmen und Schlüsseln so, dass Unbefugte Daten weder lesen noch manipulieren können. Dies ist essenziell für Online-Banking, sichere Chats und digitale Signaturen.

Ein Kryptosystem besteht aus sechs grundlegenden Komponenten:

1. Klartext

Die ursprüngliche, unverschlüsselte Information, die geschützt werden soll (z. B. Texte oder Dateien).

2. Chiffretext (Chiffrat)

Das Ergebnis der Verschlüsselung. Diese transformierte Version ist ohne den passenden Schlüssel unlesbar.

3. Verschlüsselungs-Algorithmus

Das mathematische Verfahren, welches den Klartext in den unverständlichen Chiffretext umwandelt.

4. Schlüssel

Ein geheimer Wert für die Ver- und Entschlüsselung. Von seiner Komplexität hängt die Gesamtsicherheit ab.

5. Entschlüsselungs-Algorithmus

Das mathematische Gegenverfahren, das den Chiffretext mithilfe des Schlüssels wieder in Klartext zurückrechnet.

6. Schlüsselverwaltung

Umfasst die Erzeugung, Verteilung, Speicherung und den Austausch. Schwache Verwaltung gefährdet das System.

Angriffstypen

Es gibt verschiedene Arten des Angriffs auf Kryptosysteme. Um die Angriffsarten besser betrachten zu können, werden sie in Kategorien eingeteilt. Diese Aufteilung zeigt, inwiefern der Datenfluss von der Norm abweicht. Sender und Empfänger sind Alice (A) und Bob (B). Eve (E) ist die böse Angreiferin.

Diagramm Unterbrechung
1. Unterbrechung

Ein Angriff auf die Verfügbarkeit verhindert aktiv, dass Informationen ihr eigentliches Ziel erreichen.

Diagramm Abfangen
2. Abfangen

Ein Angriff auf die Vertraulichkeit ermöglicht es Dritten, unbemerkt auf Daten oder Teile des Systems zuzugreifen.

Diagramm Modifikation
3. Modifikation

Ein Angriff auf die Integrität ermöglicht nicht berechtigten Dritten den Zugriff und die gezielte Veränderung einer Nachricht.

Diagramm Fälschung
4. Fälschung

Ein Angriff auf die Authentizität ermöglicht unberechtigten Dritten das Einschleusen von völlig gefälschten Nachrichten in ein System.

Aufgaben

Im Folgenden sind verschiedene reale Angriffsszenarien aus der Praxis beschrieben. Finden Sie sich zunächst in Gruppen zusammen, bearbeiten Sie die Szenarien Ihrer zugeordneten Gruppe und ordnen Sie diese begründet den vier Angriffsarten zu. Dokumentieren Sie Ihre Ergebnisse.

Ihr Bearbeitungsfortschritt: 0%
🔴 Gruppe 1

Analysieren Sie die folgenden vier Fälle und bestimmen Sie, welches Schutzziel verletzt wurde und um welchen Angriffstyp es sich handelt:

Szenario 1.1: TechCorp (Stromausfall)
Kontext: IT-Managerin Sarah Müller & IT-Team | Mittelständischer Finanzsoftware-Anbieter

An einem Montagmorgen bemerkt Sarah Müller, dass die Server von TechCorp nicht mehr erreichbar sind. Nach einer schnellen Untersuchung stellt sich heraus, dass ein Angreifer absichtlich einen Stromausfall in der Nähe des Unternehmens herbeigeführt hat, um den Betrieb zu stören. Durch den Ausfall sind alle internen Systeme und Datenbanken nicht mehr zugänglich, was zu einem erheblichen finanziellen Verlust führt.

Szenario 1.2: Online-Banking (Phishing)
Kontext: Bankkunde Max Schmidt & IT-Sicherheitsspezialist Thomas Becker | Lokale Bank

Max Schmidt versucht, sich in das Online-Banking einzuloggen. Ein Angreifer hat jedoch eine Phishing-Webseite erstellt, die der echten Webseite täuschend ähnlich sieht. Max gibt seine Zugangsdaten ein. Thomas Becker stellt kurz darauf fest, dass die Zugangsdaten unbemerkt abgefangen wurden und der Angreifer bereits Geldüberweisungen vorgenommen hat.

Szenario 1.3: FoodDelivery Inc. (Innentäter)
Kontext: Geschäftsführerin Maria & unzufriedener Mitarbeiter | Online-Lieferdienst

Ein unzufriedener Mitarbeiter von FoodDelivery Inc. hat Zugriff auf das interne System. Er verändert unberechtigt die Bestelldaten in der Datenbank, um die Lieferungen systematisch an sein eigenes Restaurant umzuleiten, anstatt an die Kunden, die tatsächlich bestellt haben. Maria bemerkt die unbemerkt manipulierten Daten durch ungewöhnlich hohe Bestellzahlen.

Szenario 1.4: ByteSolutions (Social Engineering)
Kontext: Neuer Mitarbeiter Daniel & falscher IT-Support | IT-Dienstleister

Daniel erhält einen Anruf von einem angeblichen IT-Support-Mitarbeiter, der behauptet, dringende Sicherheitsupdates durchführen zu müssen. Der Angreifer spiegelt Probleme mit den Zugangsdaten vor und fordert Daniel auf, Passwörter und einen Bestätigungscode durchzugeben. Daniel glaubt der Täuschung und gibt die Daten preis, woraufhin der Angreifer Zugriff auf das System erhält.

Hilfe 1 – Kernfragen zur Analyse
Fragen Sie sich bei jedem Szenario: Was genau ist der Schaden?
• Sind die Daten/Dienste nicht mehr erreichbar? ($\rightarrow$ Verfügbarkeit betroffen)
• Wurden Geheimnisse unbefugt mitgelesen? ($\rightarrow$ Vertraulichkeit betroffen)
• Wurden Daten nachträglich manipuliert? ($\rightarrow$ Integrität betroffen)
• Wurde eine falsche Identität vorgetäuscht? ($\rightarrow$ Authentizität betroffen)
Hilfe 2 – Zuordnungshinweise (Szenario 1.1 & 1.2)
• Bei TechCorp (1.1) können die Mitarbeiter physisch nicht mehr auf die Datenbank zugreifen. Der Datenfluss ist komplett blockiert.
• Beim Online-Banking (1.2) liest ein unbefugter Dritter die geheimen Login-Daten auf einer gefälschten Oberfläche mit.
Hilfe 3 – Zuordnungshinweise (Szenario 1.3 & 1.4)
• Bei FoodDelivery (1.3) werden bestehende, korrekte Daten im System absichtlich abgeändert, sodass die Information verfälscht wird.
• Bei ByteSolutions (1.4) erschleicht sich der Angreifer Vertrauen, indem er eine falsche Identität (IT-Support) vorgibt, um Passwörter abzufangen.
🔵 Gruppe 2

Analysieren Sie die folgenden vier Fälle und bestimmen Sie, welches Schutzziel verletzt wurde und um welchen Angriffstyp es sich handelt:

Szenario 2.1: Universität Berlin (Identitätsdiebstahl)
Kontext: Dr. Anna Weber & Betrüger Lukas | Renommierte Universität

Lukas gibt sich fälschlicherweise als Professorin Dr. Anna Weber aus und kontaktiert die Universitätsverwaltung, um vertrauliche Studentendaten zu erschleichen. Er fälscht E-Mails und Dokumente, um seine Identität vorzutäuschen. Die Verwaltung vertraut den Dokumenten und gibt die Informationen heraus.

Szenario 2.2: FashionWorld (DDoS-Angriff)
Kontext: Marketing-Managerin Lisa & IT-Sicherheitsteam | Online-Modeshop

Während einer großen Verkaufsaktion wird FashionWorld Opfer eines DDoS-Angriffs. Ein Angreifer überlastet die Server absichtlich mit einer koordinierten Flut von künstlichen Anfragen, sodass die Webseite für echte Kunden nicht mehr erreichbar ist und der Shop lahmgelegt wird.

Szenario 2.3: TechGiant (Rechnungsfälschung)
Kontext: Finanzmanager Tom & falscher Lieferant | Großes Technologieunternehmen

Tom erhält eine täuschend echt aussehende E-Mail mit einer gefälschten Rechnung von einem vermeintlichen Lieferanten für angeblich bestellte Waren. Tom bezahlt die Rechnung ohne Prüfung. Später stellt sich heraus, dass der Lieferant nicht existiert und gefälschte Daten in den Zahlungsverkehr eingeschleust wurden.

Szenario 2.4: HealthCare Inc. (E-Mail-Spoofing)
Kontext: Dr. Peter Lange & Schein-Patient | Medizinische Klinik

Dr. Peter Lange erhält eine E-Mail von einem vermeintlichen Patienten, der um Auskunft zu einer Behandlung bittet. Der Angreifer hat die Absenderadresse manipuliert (Spoofing), um sich als Patient auszugeben und unberechtigt sensible medizinische Daten aus der Patientenakte zu erlangen.

Hilfe 1 – Der Unterschied zwischen den Konzepten
Beachten Sie: Wenn ein Angreifer eine Nachricht *erfindet* oder sich als jemand anderes ausgibt, greift er primär die Echtheit der Kommunikationspartner oder der Daten an ($\rightarrow$ Authentizität). Wird ein System blockiert, leidet die Verfügbarkeit.
Hilfe 2 – Zuordnungshinweise (Szenario 2.1 & 2.2)
• Bei der Universität (2.1) fälscht Lukas Dokumente, um die Verwaltung über seine wahre Identität zu täuschen.
• Bei FashionWorld (2.2) geht es rein darum, die Funktionalität der Server durch Überlastung komplett zu blockieren.
Hilfe 3 – Zuordnungshinweise (Szenario 2.3 & 2.4)
• Sowohl bei TechGiant (2.3) als auch bei HealthCare (2.4) werden falsche Identitäten (Schein-Lieferant / Schein-Patient) genutzt und manipulierter Input eingeschleust, um Handlungen zu erzwingen oder Daten abzugreifen.
👥 Verbundene Gruppenarbeit

Finden Sie sich nun in gemischten 4er-Gruppen zusammen (jeweils zwei Personen aus Gruppe 1 und zwei Personen aus Gruppe 2).

Präsentieren Sie sich gegenseitig Ihre bearbeiteten Szenarien. Diskutieren und begründen Sie Ihre Klassifikationen anhand des gelernten theoretischen Datenfluss-Modells.

🎉 Großartig – alle Fälle analysiert!

Sie haben die Szenarien erfolgreich durchgearbeitet und im Team abgeglichen. Öffnen Sie jetzt die lehrplankonforme Musterlösung, um die Klassifikationen der acht Fallstudien zu überprüfen.

Systematische Klassifikation der Praxis-Szenarien

Kryptographische Systeme und Kommunikationskanäle werden durch unterschiedliche Abweichungen des Datenflusses bedroht. Hier sehen Sie die exakte Zuordnung:

Gruppe Szenario Angriffstyp (Datenfluss) Begründung & verletztes Schutzziel
G1 1.1 TechCorp (Stromausfall) Unterbrechung Der Datenfluss wird physikalisch blockiert. Die Systeme sind nicht erreichbar. Verletzung der Verfügbarkeit.
1.2 Online-Banking (Phishing) Abfangen Ein unberechtigter Dritter (Angreifer) erlangt unbemerkt Kopien der geheimen Zugangsdaten. Verletzung der Vertraulichkeit.
1.3 FoodDelivery (Innentäter) Modifikation Bestehende, legitime Daten im System werden unbefugt verändert und manipuliert. Verletzung der Integrität.
1.4 ByteSolutions (Falscher Support) Fälschung / Abfangen Der Angreifer täuscht eine Identität vor (Fälschung der Authentizität), um sensible Passwörter zu entwenden (Abfangen der Vertraulichkeit).
G2 2.1 Uni Berlin (Identitätsmissbrauch) Fälschung Der Angreifer Lukas täuscht eine falsche Identität vor und schleust gefälschte Dokumente ein. Verletzung der Authentizität.
2.2 FashionWorld (DDoS-Attacke) Unterbrechung Der Server wird mutwillig durch eine Flut künstlicher Anfragen lahmgelegt. Verletzung der Verfügbarkeit.
2.3 TechGiant (Fake-Rechnung) Fälschung Es wird eine betrügerische Information von einer nicht existierenden Entität in das System eingebracht. Verletzung der Authentizität.
2.4 HealthCare Inc. (E-Mail-Spoofing) Fälschung Die Absenderadresse wird manipuliert, um die Identität eines Kommunikationspartners vorzutäuschen. Verletzung der Authentizität.

Didaktischer Hinweis: In der Praxis treten Angriffe oft als Kombinationen auf (z. B. eine *Fälschung* der Identität per Phishing-Mail dient fast immer dem Zweck, Daten *abzufangen*). Für eine saubere Systematisierung ist entscheidend, welche Abweichung im konkreten Teilschritt dominiert.

Wiederholung

Zettel mit Geheimtext
Zettel mit Geheimtext

Auf dem Schulflur wurde ein Zettel mit einer Nachricht gefunden. Der Anfang der Nachricht ist:

Xwx uxq utht Hwajttnsdrbt
njpt tkgy xhhuoa wwjgknnlpl!
Rpy ohz ikpcxm mmwce Yhnyanb
lszj ibpt camexl Qqzae

Offenbar handelt es sich um einen Geheimtext, der mit einem unbekannten Verfahren erzeugt wurde.

💡 Was nun? Um die Nachricht lesbar zu machen, muss das verwendete Verschlüsselungsverfahren identifiziert und entschlüsselt werden.

Aufgaben

Analysieren Sie die Häufigkeitsanalyse-Ergebnisse und diskutieren Sie in Gruppen, welche Schlussfolgerungen sich jeweils ziehen lassen. Ordnen Sie diese begründet den Verschlüsselungsverfahren zu und dokumentieren Sie Ihre Ergebnisse.

Ihr Bearbeitungsfortschritt: 0%
💬 Gruppenarbeit

Tauschen Sie sich kurz mit den neben Ihnen sitzenden Personen aus, ob man vermuten kann, dass dieser Geheimtext mit einem Transpositionsverfahren erstellt wurde.

Hilfe 1 – Kernfrage:
Schauen Sie sich die Buchstabenhäufigkeit im Geheimtext an. Unterscheidet sie sich deutlich von der Häufigkeit im Deutschen?
Hilfe 2 – Das Merkmal der Transposition:
Bei einem Transpositionsverfahren bleiben die Buchstabenhäufigkeiten gleich – nur ihre Positionen ändern sich. Die statistischen Muster sollten also erhalten bleiben.
Hilfe 3 – Vergleichskriterium:
Vergleichen Sie die Häufigkeitsmuster: Sind sie ähnlich zu den erwarteten deutschen Häufigkeiten oder völlig unterschiedlich?
📊 Detailanalyse

Betrachten wir zwei Möglichkeiten, die eine Häufigkeitsanalyse der gesamten Nachricht liefert:

Häufigkeitsanalyse Ergebnis 1
Ergebnis 1
Häufigkeitsanalyse Ergebnis 2
Ergebnis 2

Aufgabe: Analysieren Sie, welche Schlussfolgerungen die beiden Ergebnisse jeweils zulassen.

Hilfe 1 – Analysefragen:
Betrachten Sie für jedes Ergebnis:
• Sind alle Buchstaben gleichmäßig verteilt?
• Gibt es deutliche Spitzen bei bestimmten Buchstaben?
• Entspricht das Muster der deutschen Häufigkeit (E, N, I häufig)?
Hilfe 2 – Ergebnis 2 (Gleichmäßige Verteilung):
Eine flache, gleichmäßige Verteilung deutet darauf hin, dass die charakteristischen Häufigkeitsmuster des Deutschen zerstört wurden.
Hilfe 3 – Ergebnis 1 (Deutliche Spitzen):
Eine Häufigkeitskurve mit ausgeprägten Spitzen deutet darauf hin, dass die statistischen Muster erhalten geblieben sind, aber in Form einer anderen Häufigkeitsveteilung als im Detuschen.
🎉 Großartig – Analyse abgeschlossen!

Sie haben die Häufigkeitsanalyse erfolgreich interpretiert und die Verschlüsselungsverfahren klassifiziert. Überprüfen Sie jetzt Ihre Ergebnisse mit der Musterlösung.

Häufigkeitsanalyse als Klassifikationswerkzeug

Die Häufigkeitsanalyse ist eine zentrale kryptoanalytische Methode zur Unterscheidung von Verschlüsselungsverfahren:

Häufigkeitsmuster Charakteristika Mögliche Verfahren Erklärung
Ergebnis 1: Spitzen erhalten L, P, A, Z dominieren deutlich
Spitzenmuster wie im Deutschen E, N, I
monoalphabetische Substitution Monoalphabetische Substitution (z.B. Caesar): Jeder Buchstabe wird konsistent durch den gleichen anderen ersetzt (A → D, B → E, ...). Die statistische Struktur des Deutschen bleibt erhalten.
Ergebnis 2: Gleichmäßige Verteilung Alle Buchstaben haben ähnliche Häufigkeiten
Keine ausgeprägten Spitzen
Polyalphabetisches Verfahren oder moderne Verschlüsselung Eine gleichmäßige Verteilung deutet darauf hin, dass die Verschlüsselung position-abhängig arbeitet (z.B. Vigenère-Chiffre). Dabei wird jeder Buchstabe je nach Position durch verschiedene Buchstaben ersetzt, was die Häufigkeitsmuster flacht.
Fazit:
  • Ergebnis 1 spricht für ein einfaches Verfahren (monoalphabetische Substitution), da die deutschen Häufigkeitsmuster noch sichtbar sind.
  • Ergebnis 2 deutet auf fortgeschrittene Verschlüsselung hin, die die statistischen Muster des Deutschen vollständig maskiert.
  • Sicherheit durch Komplexität: Je gleichmäßiger die Häufigkeitsverteilung, desto robuster ist die Verschlüsselung gegen Häufigkeitsanalyse!

Didaktischer Hinweis: Ergebnis 1 könnte sowohl aus einem Transpositionsverfahren als auch aus einer einfachen Substitution (wie Caesar) stammen – mit der Häufigkeitsanalyse allein können Sie zwischen diesen beiden nicht unterscheiden. Zusätzliche Analysen (z.B. Bigramm-Häufigkeiten) wären nötig.

Vigenère

Das Vigenère-Verfahren – Polyalphabetische Substitution

Der französische Diplomat Blaise de Vigenère (1523–1596) entwickelte die nach ihm benannte Verschlüsselungsmethode, um die Schwächen des Caesar-Chiffres und anderer monoalphabetischer Verfahren zu überwinden. Statt nur eines Alphabets werden bei der Vigenère-Chiffrierung mehrere (bis zu 26) verwendet, die dadurch entstehen, dass man das Ausgangsalphabet jeweils zyklisch um eine Position verschiebt und die so entstandenen Alphabete im sogenannten Vigenère-Quadrat untereinander anordnet.

Die Vigenère-Chiffre stellt historisch gesehen die erste polyalphabetische Substitution dar. Ihre Kryptoanalyse galt lange Zeit als praktisch unmöglich.

Schauen wir uns ein konkretes Beispiel an.
Der zu verschlüsselnde Klartext ist "Die Herbstferien sind viel zu kurz" und der Schlüssel soll das Wort "Geheim" sein. Grundlage des Verfahrens ist das Vigenère-Quadrat:

Das Vigenère-Quadrat (interaktiv)

Bewegen Sie die Maus über die Tabelle, um die Verschlüsselung zu verstehen:

Aktuelle Position: Bewege die Maus über die Tabelle
Schlüsselzeichen
Klartextzeichen
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Schritt-für-Schritt Verschlüsselung

Nun verschlüsselt man jedes Zeichen des Klartextes mit einem Schlüsselzeichen. Dafür kann man zum Beispiel den Schlüssel, in der Tabelle als "k" für key bezeichnet, unter den Klartext, in der Tabelle als "KT" bezeichnet, schreiben. Ist das letzte Schlüsselzeichen verwendet worden, beginnt man wieder von vorne, bis man beim letzten Klartextzeichen angekommen ist. Groß- und Kleinschreibung ist für die Verschlüsselung nicht relevant und Satzzeichen sowie andere Sonderzeichen ebenso.

KT d i e h e r b s t f e r i e n s i n d v i e l z u k u r z
k g e h e i m g e h e i m g e h e i m g e h e i m g e h e i
Beispiel 1: Erstes Zeichen (d + g = j)

Jedes Zeichen des Klartextes wird nun mit seinem Schlüsselzeichen mit Hilfe des Vigenère-Quadrates verschlüsselt. Das erste Klartextzeichen ist ein "d", weshalb man sich dieses in der ersten Spalte heraussucht. Nun sucht man in der obersten Zeile das dazugehörige Schlüsselzeichen, hier "g". Die Zeile zum "g" und die Spalte zum "d" treffen sich bei "j". Dies ist das erste Zeichen unseres Geheimtextes.

Klartextzeichen D, Schlüsselzeichen G ergibt Geheimtextzeichen J
Klartextzeichen: D, Schlüsselzeichen: G → Geheimtextzeichen: J

Geheimtext nach dem Verschlüsseln des ersten Klartextzeichens:

KT d i e h e r b s t f e r i e n s i n d v i e l z u k u r z
k g e h e i m g e h e i m g e h e i m g e h e i m g e h e i
GT j
Beispiel 2: Zweites Zeichen (i + e = m)

Für das zweite Geheimtextzeichen verschlüsselt man das zweite Klartextzeichen "i" mit seinem entsprechenden Schlüsselzeichen, nun "e".

Klartextzeichen I, Schlüsselzeichen E ergibt Geheimtextzeichen M
Klartextzeichen: I, Schlüsselzeichen: E → Geheimtextzeichen: M

Geheimtext nach dem Verschlüsseln des zweiten Klartextzeichens:

KT d i e h e r b s t f e r i e n s i n d v i e l z u k u r z
k g e h e i m g e h e i m g e h e i m g e h e i m g e h e i
GT j m

Fortsetzung: Dieses Verfahren wird für alle Zeichen fortgesetzt. Der Schlüssel "Geheim" (6 Buchstaben) wird so lange wiederholt, bis alle 30 Zeichen des Klartextes verschlüsselt sind. Das Ergebnis ist ein Geheimtext, bei dem jeder Buchstabe abhängig von seiner Position im Text verschlüsselt wurde.

Aufgaben

🔐 Vorwissenscheck: Vigenère-Verfahren

Beantworte die folgenden Fragen ehrlich – es gibt kein Richtig oder Falsch als Bewertung. Das Ergebnis hilft dir, mit dem passenden Niveau zu starten.

1. Wie sicher fühlst du dich beim Caesar-Verfahren (Ver- und Entschlüsseln)?

2. Welche Aussage beschreibt ein monoalphabetisches Verschlüsselungsverfahren korrekt?

3. Wie gut kennst du die Häufigkeitsanalyse als Methode der Kryptoanalyse?

4. Was unterscheidet das Vigenère-Verfahren grundlegend vom Caesar-Verfahren?

5. Hast du bereits mit dem Vigenère-Quadrat gearbeitet (ver- oder entschlüsselt)?

🟢 Niveau: Light

Du arbeitest hier mit vorbereiteten Tabellen, schrittweisen Erklärungen und ausführlichen Hilfen. Ziel ist es, das Vigenère-Verfahren sicher anzuwenden – Schritt für Schritt, ohne Zeitdruck. Nutze die Hilfen aktiv!

Dein Fortschritt (Light): 0%
🔴 Partner A

Vervollständige die Verschlüsselung des folgenden Klartextes mit dem Vigenère-Verfahren.

Gegeben: Klartext: GEHEIMTEXT  |  Schlüssel: CODE
Vorgehen: Wiederhole den Schlüssel so oft, bis er die Länge des Klartextes erreicht. Dann gilt für jede Position: (Position Klartextbuchstabe + Position Schlüsselbuchstabe) mod 26 = Position Geheimtextbuchstabe (A=0, B=1, …, Z=25).

Die ersten vier Buchstaben sind bereits verschlüsselt. Vervollständige die restlichen sechs Felder (markiert mit ?):

Position 1234 5678910
Klartext GEHE IMTEXT
Schlüssel (wiederholt) CODE CODECO
Geheimtext ISKI ??????
Hilfe 1 – Wie funktioniert das Verschlüsseln?
Das Vigenère-Verfahren addiert die Positionen von Klartext- und Schlüsselbuchstaben (A=0, B=1, …, Z=25).
Beispiel: H (=7) + A (=0) = 7 → H  |  A (=0) + K (=10) = 10 → K
Falls die Summe ≥ 26 ist: ziehe 26 ab.
Beispiel: T (=19) + N (=13) = 32 → 32 – 26 = 6 → G
Hilfe 2 – Probierrechnung für Position 5
Klartextbuchstabe: I = 8
Schlüsselbuchstabe: C = 2
Summe: 8 + 2 = 10 → Buchstabe Nr. 10 = K
Trage K als Geheimtextbuchstabe an Position 5 ein.
Hilfe 3 – Positionstabelle zum Nachschlagen
A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7, I=8, J=9, K=10, L=11, M=12, N=13, O=14, P=15, Q=16, R=17, S=18, T=19, U=20, V=21, W=22, X=23, Y=24, Z=25

Rechne jetzt die Positionen 6–10 nach demselben Prinzip.
🔴 Partner A

Denke dir eine eigene kurze Nachricht mit mindestens 10 Zeichen und einen Schlüssel aus (nur Großbuchstaben, keine Leer­zeichen). Verschlüssele deine Nachricht mit dem Vigenère-Verfahren.

Vorgehen:
  1. Schreibe deinen Klartext auf (z. B. INFORMATIK).
  2. Schreibe deinen Schlüssel auf und wiederhole ihn, bis er so lang ist wie dein Klartext.
  3. Addiere die Positionen (A=0 … Z=25) buchstabenweise. Falls ≥ 26: ziehe 26 ab.
  4. Notiere den Geheimtext. Gib ihn anschließend an Partner B weiter – ohne Schlüssel und Klartext zu verraten!
Hilfe 1 – Schlüssel cyclisch wiederholen
Ist dein Klartext INFORMATIK (10 Zeichen) und dein Schlüssel STAR (4 Zeichen),
dann lautet der wiederholte Schlüssel: S T A R S T A R S T
Hilfe 2 – Rechenbeispiel
I (=8) + S (=18) = 26 → 26 – 26 = 0 → A
N (=13) + T (=19) = 32 → 32 – 26 = 6 → G
F (=5) + A (=0) = 5 → F
... und so weiter für alle Buchstaben.
Hilfe 3 – Nutze das Vigenère-Quadrat
Alternativ zur Rechenformel kannst du das Vigenère-Quadrat nutzen:
Gehe in der Zeile des Schlüsselbuchstabens und der Spalte des Klartextbuchstabens zum Schnittpunkt – das ist dein Geheimtextbuchstabe.
🟢 Partner B

Erhalte den Geheimtext und den Schlüssel von Partner A. Entschlüssele die Nachricht mit Hilfe des Vigenère-Quadrats oder der Formel.

Entschlüsselung Schritt für Schritt:
  1. Wiederhole den Schlüssel, bis er so lang wie der Geheimtext ist.
  2. Für jede Position: Geheimtext-Position minus Schlüssel-Position = Klartext-Position.
  3. Falls das Ergebnis negativ ist: addiere 26.
Hilfe 1 – Entschlüsseln mit dem Vigenère-Quadrat
Gehe in die Zeile des Schlüsselbuchstabens.
Suche in dieser Zeile deinen Geheimtextbuchstaben.
Lies dann ab, in welcher Spalte (= Kopfzeile) dieser Buchstabe steht – das ist dein Klartextbuchstabe.
Hilfe 2 – Entschlüsseln mit der Formel
Beispiel: Geheimtext I (=8), Schlüssel C (=2)
8 – 2 = 6 → G
Negatives Beispiel: Geheimtext A (=0), Schlüssel O (=14)
0 – 14 = –14 → –14 + 26 = 12 → M
Hilfe 3 – Überprüfung
Ergibt dein entschlüsselter Text ein sinnvolles deutsches oder englisches Wort/eine Phrase? Wenn nicht, prüfe:
• Hast du den Schlüssel korrekt wiederholt?
• Hast du bei negativen Werten +26 gerechnet?

🎉 Super – alle Aufgaben erledigt!

Du hast alle Aufgaben abgehakt. Wenn du deine Ergebnisse überprüfen möchtest, kannst du jetzt die Musterlösung aufrufen.

Musterlösung zu Aufgabe 1 (Vervollständigung der Tabelle):

Position 12345678910
Klartext GEHEIMTEXT
Schlüssel CODECODECO
Position (Klartext) 64748121942319
Position (Schlüssel) 2143421434214
Summe (mod 26) 818108100228257
Geheimtext ISKIKAWIZH

Geheimtext: ISKIKAWIZH

⚠ Hinweis zu Aufgaben 2 & 3: Da hier eigene Nachrichten verwendet wurden, gibt es keine feste Musterlösung. Überprüft gegenseitig eure Ergebnisse – wenn Partner B denselben Text wie Partner A erzeugt hat: ✓

🔵 Niveau: Basis

Du wendest das Vigenère-Verfahren selbstständig an und analysierst es schriftlich. Hilfen sind verfügbar, aber du solltest zuerst eigenständig versuchen, die Aufgaben zu lösen. Beide Partner bearbeiten alle Aufgaben, diskutieren aber gemeinsam.

Dein Fortschritt (Basis): 0%

Bearbeitet die folgenden Teilaufgaben in arbeitsteiliger Partnerarbeit:

🔴 Partner A Vervollständige die Verschlüsselung des Klartextes GEHEIMTEXT mit dem Schlüssel CODE aus dem Einstiegsbeispiel. Nutze die Formel: (Klartext-Position + Schlüssel-Position) mod 26.

🔴 Partner A Denke dir anschließend eine eigene Nachricht (≥ 10 Zeichen) und einen Schlüssel aus. Erzeuge den Geheimtext und gib ihn an Partner B weiter.

🟢 Partner B Erhalte Geheimtext und Schlüssel von Partner A. Entschlüssele die Nachricht mit dem Vigenère-Quadrat.

Hilfe 1 – Verschlüsselung
Wiederhole den Schlüssel cyclisch. Addiere für jede Position die Alphabetpositionen (A=0 … Z=25). Falls die Summe ≥ 26 ist, ziehe 26 ab.
Hilfe 2 – Entschlüsselung
Gehe im Vigenère-Quadrat in die Zeile des Schlüsselbuchstabens. Suche dort den Geheimtextbuchstaben. Die Spalte (Kopfzeile) ergibt den Klartextbuchstaben.
Mit Formel: (Geheimtext-Position – Schlüssel-Position + 26) mod 26
🔵 Beide Partner – schriftlich & ausformuliert

Erläutert, weshalb es sich beim Vigenère-Verfahren um ein polyalphabetisches Verfahren handelt, und gebt an, wie viele Geheimtextalphabete es bei einer Schlüssellänge von n gibt.
Vergleicht anschließend das Vigenère-Verfahren mit dem Caesar-Verfahren.

Hilfe 1 – Was bedeutet „polyalphabetisch"?
„Poly" = viele. Ein polyalphabetisches Verfahren verwendet mehrere Geheimtextalphabete – je nach Position im Text wird ein anderes Alphabet angewendet.
Frage dich: Wird der Buchstabe E im Klartext immer durch denselben Buchstaben ersetzt?
Hilfe 2 – Anzahl der Geheimtextalphabete
Jeder Schlüsselbuchstabe definiert eine andere Verschiebung = ein anderes Geheimtextalphabet.
Wie viele verschiedene Schlüsselbuchstaben gibt es bei Schlüssellänge n?
Hilfe 3 – Vergleich mit Caesar
Beim Caesar-Verfahren gibt es genau einen Schlüssel (eine Verschiebung) für den gesamten Text. Welcher Begriff passt dazu: mono- oder polyalphabetisch?
🔵 Beide Partner – schriftlich & ausformuliert

Entscheidet, ob eine einfache Häufigkeitsanalyse beim Vigenère-verschlüsselten Geheimtext ein geeignetes Mittel der Kryptoanalyse ist. Begründet eure Antwort ausführlich.

Hilfe 1 – Warum wirkt Häufigkeitsanalyse beim Caesar-Verfahren?
Im deutschen Text ist E der häufigste Buchstabe. Beim Caesar-Verfahren wird E immer durch denselben Buchstaben ersetzt. Deshalb ist der häufigste Geheimtextbuchstabe wahrscheinlich das verschlüsselte E.
Hilfe 2 – Was passiert beim Vigenère-Verfahren mit dem Buchstaben E?
Überlege: Der Klartext-Buchstabe E an Position 1 wird mit Schlüsselbuchstabe C verschlüsselt → G.
Derselbe Buchstabe E an Position 5 wird mit Schlüsselbuchstabe G verschlüsselt → K.
Was bedeutet das für die Häufigkeitsverteilung im Geheimtext?
Hilfe 3 – Argumentationsstruktur
Formuliere: „Die einfache Häufigkeitsanalyse ist [geeignet / nicht geeignet], weil …"
Nutze konkrete Beispiele aus dem Vigenère-Verfahren als Belege.

🎉 Hervorragend – alle Aufgaben abgeschlossen!

Du hast alle Aufgaben abgehakt. Wenn du deine Ergebnisse überprüfen möchtest, kannst du jetzt die Musterlösung aufrufen.

Aufgabe 1 – Musterlösung (GEHEIMTEXT + CODE):

KlartextGEHEIMTEXT
SchlüsselCODECODECO
Geheimtext ISKI KAWI ZH

→ Geheimtext: ISKIKAWIZH

Aufgabe 2 – Musterlösung (Polyalphabetisch):

Das Vigenère-Verfahren ist polyalphabetisch, weil derselbe Klartextbuchstabe je nach seiner Position im Text unterschiedlich verschlüsselt wird – abhängig vom jeweiligen Schlüsselbuchstaben. Jeder der n verschiedenen Schlüsselbuchstaben definiert eine eigene Verschiebung, also ein eigenes Geheimtextalphabet. Bei Schlüssellänge n gibt es folglich n Geheimtextalphabete.
Im Vergleich dazu ist das Caesar-Verfahren monoalphabetisch: Es verwendet nur einen Schlüssel (eine feste Verschiebung) für den gesamten Text, sodass jeder Klartextbuchstabe immer durch denselben Geheimtextbuchstaben ersetzt wird.

Aufgabe 3 – Musterlösung (Häufigkeitsanalyse):

Die einfache Häufigkeitsanalyse ist beim Vigenère-Verfahren nicht geeignet. Im Vigenère-Verfahren wird derselbe Klartextbuchstabe (z. B. E) je nach Position durch unterschiedliche Geheimtextbuchstaben ersetzt. Dadurch werden die natürlichen Häufigkeitsunterschiede der deutschen Sprache (E ist häufigster Buchstabe mit ~17,5 %) im Geheimtext „geglättet" – die Buchstaben verteilen sich gleichmäßiger. Eine einfache Zuordnung „häufigster Geheimtextbuchstabe = E" ist deshalb nicht möglich.

🟣 Niveau: Challenge

Du bearbeitest alle Aufgaben eigenständig mit minimaler Unterstützung. Die Analyse- und Erkläraufgaben fordern präzise, formal korrekte Argumentation. Eine Bonusaufgabe führt dich über den Unterrichtsstoff hinaus.

Dein Fortschritt (Challenge): 0%

🔴 Partner A Vervollständige die Verschlüsselung von GEHEIMTEXT mit Schlüssel CODE (vgl. Einstiegsbeispiel). Erzeuge anschließend eine eigene Nachricht (≥ 10 Zeichen) mit selbstgewähltem Schlüssel und übergib nur den Geheimtext an Partner B.

🟢 Partner B Entschlüssele die Nachricht von Partner A mithilfe des Vigenère-Quadrats.

Verschlüsselung: (Klartext-Pos. + Schlüssel-Pos.) mod 26  |  Entschlüsselung: (Geheimtext-Pos. − Schlüssel-Pos. + 26) mod 26
🔵 Beide Partner – schriftlich & ausformuliert

Erläutert präzise, weshalb das Vigenère-Verfahren polyalphabetisch ist. Gebt dabei die allgemeine Formel für die Verschlüsselung an und bestimmt die Anzahl der Geheimtextalphabete in Abhängigkeit von der Schlüssellänge n.
Vergleicht systematisch mit dem Caesar-Verfahren und bewertet, welches Verfahren aus Sicht der Kryptographie sicherer ist – und warum.

Allgemeine Formel: ci = (mi + k(i mod n)) mod 26, wobei mi = Klartextbuchstabe an Position i, k = Schlüssel der Länge n, ci = Geheimtextbuchstabe. Überlege, wie viele verschiedene Werte k(i mod n) annehmen kann.
🔵 Beide Partner – schriftlich & ausformuliert

Begründet, warum eine einfache Häufigkeitsanalyse beim Vigenère-Verfahren scheitert. Beschreibt dabei konkret, was mit der Häufigkeitsverteilung der Buchstaben im Geheimtext passiert.
Erweiterung: Recherchiert den Begriff „Kasiski-Test" und erklärt das Grundprinzip: Welches Ziel verfolgt dieser Test, und welche Information liefert er über den Schlüssel?

Der Kasiski-Test sucht nach wiederholten Zeichenfolgen im Geheimtext. Die Abstände zwischen diesen Wiederholungen sind (wahrscheinlich) Vielfache der Schlüssellänge. Wenn die Schlüssellänge bekannt ist, kann man den Geheimtext in Gruppen aufteilen – jede Gruppe wurde mit demselben Caesar-Schlüssel verschlüsselt.
🔵 Beide Partner

Ein Angreifer hat den Geheimtext ISKIKAWIZH abgefangen und weiß, dass die Schlüssellänge 4 beträgt. Erklärt schriftlich und strukturiert, wie der Angreifer vorgehen würde, um den Klartext zu ermitteln. Wendet das Verfahren anschließend auch praktisch an und gebt den Klartext an.

Hinweis: Teile den Geheimtext in 4 Untergruppen auf: alle Buchstaben an den Positionen 1, 5, 9, … bilden Gruppe 1; die Positionen 2, 6, 10, … Gruppe 2 usw. Jede Gruppe wurde mit demselben Caesar-Schlüssel verschlüsselt.
Hilfe 1 – Gruppen aufteilen
Geheimtext: I S K I K A W I Z H (Positionen 1–10)
Gruppe 1 (Pos. 1,5,9): I, K, Z
Gruppe 2 (Pos. 2,6,10): S, A, H
Gruppe 3 (Pos. 3,7): K, W
Gruppe 4 (Pos. 4,8): I, I
Hilfe 2 – Caesar-Angriff auf jede Gruppe
Probiere für jede Gruppe alle 26 möglichen Verschiebungen. Welche ergibt sinnvolle (deutsche) Buchstaben?
Beispiel Gruppe 1: Verschiebung 2 (= C): I(8)–2=6=G, K(10)–2=8=I, Z(25)–2=23=X → Teil von GEHE…

🏆 Exzellente Arbeit!

Du hast alle Aufgaben abgehakt. Wenn du deine Ergebnisse überprüfen möchtest, kannst du jetzt die Musterlösung aufrufen.

Aufgabe 1 – Geheimtext GEHEIMTEXT + CODE:

ISKIKAWIZH (Rechenschritte wie in Niveau 2)

Aufgabe 2 – Formale Erklärung:

Allgemeine Vigenère-Formel: ci = (mi + ki mod n) mod 26
Bei Schlüssellänge n gibt es genau n Geheimtextalphabete, weil jeder der n Schlüsselbuchstaben eine eigene Verschiebung (= eigenes Alphabet) definiert. Der Schlüssel wiederholt sich nach n Positionen.
Caesar (n=1): monoalphabetisch, ein Alphabet. Vigenère (n>1): polyalphabetisch, n Alphabete. Je größer n, desto schwieriger ist ein statistischer Angriff – da die Häufigkeiten stärker geglättet werden.

Aufgabe 3 – Häufigkeitsanalyse & Kasiski-Test:

Beim Vigenère-Verfahren wird derselbe Klartextbuchstabe je nach Position durch verschiedene Geheimtextbuchstaben ersetzt. Die Häufigkeitsverteilung im Geheimtext wird dadurch egalisiert – alle Buchstaben erscheinen annähernd gleich oft. Eine direkte Zuordnung (häufigster Geheimtextbuchstabe ≈ E) scheitert.
Kasiski-Test: Suche wiederholte Buchstabenfolgen im Geheimtext. Der Abstand zwischen Wiederholungen ist mit hoher Wahrscheinlichkeit ein Vielfaches der Schlüssellänge n. Ist n bekannt, teilt man den Geheimtext in n Gruppen und greift jede Gruppe separat per Häufigkeitsanalyse (Caesar-Angriff) an.

Bonusaufgabe – Angriff auf ISKIKAWIZH (Schlüssellänge 4):

GruppePositionenGeheimtextVerschiebungSchlüsselbuchstabeKlartext
11, 5, 9I, K, Z2CG, I, X
22, 6, 10S, A, H14OE, M, T
33, 7K, W3DH, T
44, 8I, I4EE, E

Schlüssel: CODE  |  Klartext: GEHEIMTEXT

Vorgehen: Für jede Gruppe wurden alle 26 Caesar-Verschiebungen ausprobiert. Die Verschiebung, die sinnvolle Buchstaben (Teil eines deutschen Wortes) ergab, liefert den Schlüsselbuchstaben.

Kryptoanalyse bei Vigenère

Untersuchen Sie den folgenden Geheimtext und analysieren Sie anhand eines Beispiels, wie sich wiederholende Muster im Klartext auf die Vigenère-Verschlüsselung auswirken.

FIQFIQIOUOELOTHFIQTTXOSHSELOIJMAQEJXDHHFDDTELOHRSNZVRGFGHGELFRWGUHSDLFSHFIQJGXOGXOD IJNGFTVJCKIEXUEOFIGFRQJCKUMHIROFBHODLHSRODHSNDMSZBPSFNWJEUJNGJEVFRHJNPBLLHEQGLDHGH
Ihr Bearbeitungsfortschritt: 0%
💬 Partnerarbeit

Untersuchen Sie den obigen Geheimtext gemeinsam mit Ihrem Sitzpartner auf Auffälligkeiten.

Hilfe 1 – Worauf achten?
Lesen Sie den Geheimtext aufmerksam durch. Fallen Ihnen bestimmte Buchstabenfolgen auf, die sich wiederholen?
Hilfe 2 – Wiederholungen suchen:
Suchen Sie gezielt nach identischen Teilfolgen, z. B. Trigrammen (3 Buchstaben) oder längeren Sequenzen. Notieren Sie, wo und wie oft diese vorkommen.
Hilfe 3 – Was bedeutet das?
Wiederholungen im Geheimtext können ein Hinweis auf die Schlüssellänge sein – ein zentrales Werkzeug zur Kryptoanalyse der Vigenère-Chiffre (Kasiski-Test).
✏️ Einzelarbeit

Betrachten Sie das folgende Beispiel einer Vigenère-Verschlüsselung des Klartextes

"eswareinmaleinfischerundseinefraudiewohntenzusammenineinerkleinenfischerhuettedichtaneinem"

mit dem Schlüssel

"hund".

Vervollständigen Sie die Geheimtextzeile (GT) in den folgenden Tabellen:

KT e s w a r e i n m a l e i n f i s c h e r u n d s e i n e
k h u n d h u n d h u n d h u n d h u n d h u n d h u n d h
GT
KT d i e w o h n t e n z u s a m m e n i n e i n e r k l e i
k u n d h u n d h u n d h u n d h u n d h u n d h u n d h u
GT
KT n e n f i s c h e r h u e t t e d i c h t a n e i n e m ...
k n d h u n d h u n d h u n d h u n d h u n d h u n d h u n
GT
🔡 Vigenère-Quadrat

Bewegen Sie die Maus über die Tabelle:

Position: Bewege die Maus über die Tabelle

Hilfe 1 – Vorgehen:
Schreiben Sie den Schlüssel "hund" so oft unter den Klartext, bis jeder Buchstabe ein Schlüsselzeichen hat. Nutzen Sie dann das Vigenère-Quadrat, um jeden Buchstaben zu verschlüsseln.
Hilfe 2 – Vigenère-Quadrat lesen:
Suchen Sie die Zeile des Schlüsselzeichens und die Spalte des Klartextzeichens. Der Buchstabe im Schnittpunkt ist das Geheimtextzeichen.
Hilfe 3 – Beispiel:
Das erste Zeichen: Klartext "e" + Schlüssel "h" → Zeile H, Spalte E im Vigenère-Quadrat → Geheimtext "L".
🔍 Analyse

Untersuchen Sie den Klartext auf sich wiederholende 3-Gramme, 4-Gramme oder 5-Gramme (n-Gramm). Nutzen Sie hierzu das Onlinetool cryptool.

Hilfe 1 – Was ist ein n-Gramm?
Ein 3-Gramm ist eine Folge von 3 aufeinanderfolgenden Buchstaben, z. B. "ein" oder "sch". Suchen Sie, welche solcher Folgen im Klartext besonders oft vorkommen.
Hilfe 2 – Cryptool nutzen:
Geben Sie den vollständigen Klartext in das Onlinetool ein und wählen Sie die n-Gramm-Analyse. Notieren Sie die häufigsten Trigramme und Tetragramme.
Hilfe 3 – Was suchen?
Achten Sie besonders auf Wiederholungen wie "ein", "ine", "ner" – typische Muster im Deutschen, die im Klartext häufig auftreten.
💬 Gruppenarbeit

Analysieren Sie, welche Auswirkungen die gefundenen n-Gramme auf den Geheimtext haben und ob man daraus nützliche Schlüsse ziehen kann.

Hilfe 1 – Wiederholungen im Geheimtext:
Wenn ein n-Gramm im Klartext mehrfach vorkommt und dabei zufällig an Positionen liegt, die denselben Schlüsselabschnitt verwenden, entsteht im Geheimtext eine identische Zeichenfolge.
Hilfe 2 – Der Kasiski-Test:
Der Abstand zwischen zwei identischen Geheimtext-Sequenzen ist ein Vielfaches der Schlüssellänge. Daraus lässt sich die Schlüssellänge erschließen.
Hilfe 3 – Bedeutung für die Sicherheit:
Je länger der Schlüssel im Verhältnis zum Klartext ist, desto seltener wiederholen sich die Schlüsselzeichen an gleichen Positionen – und desto weniger verwertbare Wiederholungen entstehen im Geheimtext.
🎉 Großartig – Aufgaben abgeschlossen!

Sie haben den Geheimtext untersucht, ein Vigenère-Beispiel verschlüsselt und die Bedeutung von n-Grammen für die Kryptoanalyse analysiert. Überprüfen Sie jetzt Ihre Ergebnisse mit der Musterlösung.

Aufgabe 1: Auffälligkeiten im Geheimtext

Im Geheimtext lässt sich die Zeichenfolge FIQ mehrfach finden (z. B. an Position 1, 4 und 64). Der Abstand zwischen diesen Wiederholungen ist jeweils ein Vielfaches von 3 – was auf eine Schlüssellänge von 3 hindeutet.

Aufgabe 2: Vigenère-Verschlüsselung (Auszug)
KT eswarein
k hundhund
GT lmjdyyvq
Aufgaben 3 & 4: n-Gramme und ihre Auswirkungen
Beobachtung Erklärung Schlussfolgerung
Häufige Trigramme im Klartext: "ein", "ine", "ner" Diese n-Gramme kommen im Deutschen sehr häufig vor und wiederholen sich im Märchentext mehrfach. Treffen sie auf dieselbe Schlüsselposition, entstehen identische Geheimtext-Sequenzen.
Wiederholungen im Geheimtext (z. B. "FIQ") Gleiche Klartextfolge + gleicher Schlüsselabschnitt = gleiche Geheimtextfolge. Der Abstand der Wiederholungen ist ein Vielfaches der Schlüssellänge (Kasiski-Test).
Kurzer Schlüssel "hund" (4 Zeichen) Der Schlüssel wiederholt sich sehr häufig, was viele gleichartig verschlüsselte Positionen erzeugt. Ein längerer Schlüssel würde Wiederholungen reduzieren und die Chiffre deutlich stärken.

Didaktischer Hinweis: Der Kasiski-Test funktioniert umso besser, je kürzer der Schlüssel im Verhältnis zum Klartext ist. Bei einem einmalig verwendeten Schlüssel gleicher Länge wie der Klartext (One-Time-Pad) ist dieses Angriffsmuster nicht anwendbar.

Kasiski-Test

Wir haben festgestellt, dass bei einer Vigenère-Verschlüsselung die ursprünglichen Zeichenhäufigkeiten des Klartextes „verwischt" werden – das ist der entscheidende Vorteil eines polyalphabetischen gegenüber einem monoalphabetischen Substitutionsverfahren. Sehr lange galt ein mit Vigenère verschlüsselter Text daher als unknackbar – bis zum Kasiski-Verfahren.

Historischer Hintergrund: Das Kasiski-Verfahren wurde erstmals 1863 von Friedrich Wilhelm Kasiski, einem preußischen Soldaten und Kryptologen, veröffentlicht. Es ermöglicht, jedes polyalphabetische Verschlüsselungsverfahren zu brechen – vorausgesetzt, der Geheimtext ist bekannt.
🔒 Zu analysierender Geheimtext
FIQFIQIOUOELOTHFIQTTXOSHSELOIJMAQEJXDHHFDDTELOHRSNZVRGFGHGLFRWGUHSDLFSHFIQJGXOGXODIJNGFTVJCKIEXUEOFIGFRQJCKUMHIROFBHODLHSRODHSNDMSZBPSFNWJEUJNGJEVFRHJNPBLLHEQGLDHGH
Schritt 1: Wiederholungen im Geheimtext suchen

Zunächst sucht man im Geheimtext nach sich wiederholenden Zeichenketten mit mindestens 3 Zeichen (n-Gramme). Die Idee dahinter: Es ist sehr unwahrscheinlich, dass gleiche Zeichenketten im Geheimtext zufällig durch die Verschlüsselung verschiedener Klartextzeichen mit unterschiedlichen Schlüsselzeichen entstanden sind. Man nimmt daher an, dass diese Zeichenketten auch im Klartext identisch waren und mit denselben Schlüsselzeichen chiffriert wurden. Je länger eine Wiederholung, desto sicherer diese Annahme.

💡 Merke: Man sollte nach Wiederholungen mit mindestens 3, besser mehr Zeichen suchen. In unserem Beispiel genügt die Länge 3.

Im Geheimtext lassen sich folgende Wiederholungen finden:

FIQFIQIOUOELOTHFIQTTXOSHSELOIJMAQEJXDHHFDDTELOHRSNZVRGFGHGELOFRWGUHSDLFSHFIQJGXOGXODIJNGFTVJCKIEXUEOFIG
FRQJCKUMHIROFBHODLHSRODHSNDMSZBPSFNWJEUJNGJEVFRHJNPBLLHEQGLDHGH
FIQ — kommt vor
ELO — kommt vor
Schritt 2: Abstände zwischen den Wiederholungen zählen

Wenn man annimmt, dass die Zeichenketten FIQ und ELO jeweils mit denselben Schlüsselzeichen chiffriert wurden, muss die Schlüssellänge ein ganzzahliger Teiler des Abstands zwischen zwei gleichen Vorkommen sein. Man zählt daher für jede Wiederholung alle Abstände vom Anfang eines Vorkommens bis zum Anfang des nächsten.

Wiederholung Abstände in Zeichen
FIQ 3, 12, 57, 69, 72
ELO 15, 18, 33
Schritt 3: Gemeinsame Teiler der Abstände finden

Die gesuchte Schlüssellänge muss ein gemeinsamer Teiler aller (oder der meisten) gefundenen Abstände sein. Man bestimmt daher die Teiler jedes Abstands und sucht die Schnittmenge.

⚠ Hinweis: Nicht jede Wiederholung muss zwingend durch denselben Schlüsselabschnitt entstanden sein – einzelne Zufallstreffer sind möglich. Abstände, die nicht ins Schema passen, werden ignoriert.
Abstände Teiler (gemeinsamer Teiler fett)
3, 12, 57 3  |  2, 3, 4, 12  |  3, 19, 57  |  3, 11, 33, 69  |  2, 3, 4, 6, 8, 12, 24, 36, 72
15, 18 3, 5, 15  |  2, 3, 6, 9, 18
✅ Die Zahl 3 ist der einzige gemeinsame Teiler aller Abstände. Die wahrscheinliche Schlüssellänge beträgt daher 3.
Schritt 4: Geheimtext in Blöcke aufteilen

Wenn die Schlüssellänge tatsächlich 3 ist, wurde der 1., 4., 7., 10., … Buchstabe mit dem ersten Schlüsselzeichen verschlüsselt, der 2., 5., 8., 11., … mit dem zweiten und der 3., 6., 9., 12., … mit dem dritten. Jede dieser Gruppen für sich ist eine Caesar-Verschlüsselung. Der Geheimtext wird daher in 3 Blöcke aufgeteilt:

Schlüsselzeichen Block (alle Zeichen an dieser Schlüsselposition)
1 FFIOOFTOSOMEDFTOSVFGFSFFJOOFJIUFFJUIFOHOSMBFJFJBHGH
2 IOETITSEIAJHDENHRGERUDSIGGDNTCEEIRCMRBDSNSPNENERNELG
3 QQULHQXLJQHDLRZGHLWHLHXXVKXOGQKOHLHRDZSWUGVHPLQDH
Schritt 5: Häufigkeitsanalyse der einzelnen Blöcke

Da jeder Block mit Caesar chiffriert wurde, sucht man das Zeichen, das am häufigsten vorkommt – es entspricht wahrscheinlich dem „E", dem häufigsten Buchstaben im Deutschen. Gibt es kein eindeutiges Maximum, werden die nächst häufigsten Zeichen ebenfalls notiert.

Block Häufigste Zeichen
1 F: 14×
2 E: 9×  |  N: 6×  |  G: 6×
3 H: 11×
Schritt 6: Caesar-Verschiebung bestimmen

Das häufigste Zeichen eines Blocks entspricht dem verschlüsselten „E". Der Caesar-Schlüssel ist der Abstand dieses Zeichens vom „E" im Alphabet (also seine Nummer minus 5, modulo 26). Bei mehreren Kandidaten werden alle möglichen Schlüssel notiert.

Block Häufigstes Zeichen → Caesar-Verschiebung → Schlüsselzeichen
1 F (14×)  →  Verschiebung 1  →  B
2 E (9×)  →  Verschiebung 0  →  A
N (6×)  →  Verschiebung 9  →  I
G (6×)  →  Verschiebung 2  →  C
3 H (11×)  →  Verschiebung 3  →  D
Schritt 7: Mögliche Schlüsselwörter aufstellen

Aus den ermittelten Schlüsselzeichen ergeben sich folgende mögliche Schlüsselwörter:

BAD
BID
BCD

Das einzige sinnvolle Wort ist BAD. Dieses wird als Schlüssel getestet. Im Normalfall müsste man alle drei Möglichkeiten ausprobieren – ein sinnvolles Wort als Schlüssel zu wählen erleichtert die Kryptoanalyse und ist daher aus Sicherheitssicht nicht empfehlenswert.

Schritt 8: Dechiffrierung

Mit dem Schlüssel BAD (Verschiebungen 1 – 0 – 3) wird nun der Geheimtext Zeichen für Zeichen entschlüsselt:

Geheimtext F I Q F I Q I O U O E L O T H F I Q T T
Schlüssel B A D B A D B A D B A D B A D B A D B A
Verschiebung 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0 3 1 0
Klartext E I N E I N H O R N E I N T E E I N S T
✅ Ergebnis: Der entschlüsselte Klartext beginnt mit „Ein Einhorn einte einst …" – der Beginn eines Märchens. Das Kasiski-Verfahren hat den Schlüssel BAD erfolgreich identifiziert.

Aufgaben

In den folgenden Aufgaben wenden Sie das Vigenère-Verfahren und das Kasiski-Verfahren selbstständig an, implementieren informationstechnische Werkzeuge zur Passwortprüfung sowie Kryptographie und lernen mit dem Running key eine Erweiterung des Vigenère-Verfahrens kennen. Bearbeiten Sie die Aufgaben sorgfältig und dokumentieren Sie alle Schritte.

Ihr Bearbeitungsfortschritt: 0%
Aufgabe 1: Vigenère verschlüsseln und entschlüsseln

Bearbeiten Sie die folgenden Teilaufgaben in Einzelarbeit.

Aufgabe 2: Kasiski-Verfahren anwenden

Bearbeiten Sie die folgenden Teilaufgaben schriftlich und ausformuliert in Einzelarbeit.

Aufgabe 3: Programm zur Passwortprüfung

Partnerarbeit

Um Daten verschlüsseln zu können, benötigt man ein Passwort, das verschiedene Bedingungen erfüllen soll. Beim Setzen eines neuen Passworts wird dieses algorithmisch auf verschiedenste Anforderungen geprüft und eventuelle Verstöße ausgegeben. In einem Programm Passwort sollen Passwörter auf verschiedene Aspekte geprüft werden.

Aufgabe 4: Vigenère-Klasse implementieren

Partnerarbeit – eA (gA später)

Wählen Sie die Variante, die Ihnen zugewiesen wurde, über die Tabs aus. (Für den Gesamtfortschritt ist die Bearbeitung einer Variante ausreichend).

🟢 Standardvariante (gA)

Arbeiten Sie mit dem Programm CryptoClassGA. Hier finden Sie vorbereitete Stellen und Hinweise direkt im Programmcode.

Aufgabe 5: Running key – eine Erweiterung von Vigenère

Eine neue Variante namens Running key soll die Sicherheit von Vigenère verbessern. Dabei werden zwei Schlüsselwörter nacheinander verwendet: Ihre Verschiebungswerte werden addiert und modulo 26 gerechnet, um einen kombinierten Schlüssel zu bilden.

Buchstabe → Verschiebungswert:

Zeichen abcdefghijklmnopqrstuvwxyz
Wert 012345678910111213141516171819202122232425

Für den Klartext "the mandalorian is a bounty hunter" mit den Schlüsseln "grogu" und "dindjarin" ergibt sich:

KT themandaloriani
key1 grogugrogugrogu
key2 dindjarindindja
k%26 925193611221923144171520
GT cgfsgtowelfmrcc
Vollständiger Geheimtext: cgfsgtowelfmrccpzcxwgovnfcxvf
🎉 Alle Aufgaben bearbeitet!

Überprüfen Sie Ihre Ergebnisse mit den offiziellen Musterlösungen.

Data Encryption Standard (DES)

Der Data Encryption Standard (DES) ist ein symmetrisches Verschlüsselungsverfahren. Er arbeitet mit dem gleichen Schlüssel zum Chiffrieren und Dechiffrieren einer Nachricht, weshalb sowohl der Absender als auch der Empfänger denselben Schlüssel nutzen und kennen müssen. DES gilt heute als unsicher und wurde durch den sichereren Advanced Encryption Standard (AES)-Algorithmus ersetzt, mit welchem wir uns hier nicht weiter beschäftigen werden.

DES wurde ursprünglich in den frühen 1970er Jahren von IBM-Forschern entwickelt. Im Jahr 1977 nahm die US-Regierung DES als offiziellen Federal Information Processing Standard (FIPS) für die Verschlüsselung kommerzieller sowie sensibler, noch nicht klassifizierter Computerdaten der Regierung an. DES war der erste Verschlüsselungsalgorithmus, der von der US-Regierung für die Veröffentlichung genehmigt wurde.

Das hatte erhebliche Auswirkungen. Der offizielle Segen der US-Regierung führte dazu, dass DES schnell von der Industrie angenommen wurde. Besonders bei den Finanzdienstleistern, bei denen der Bedarf für starke Verschlüsselung hoch war, stieß DES auf große Akzeptanz. Die Einfachheit im Umgang mit DES war auch der Grund, dass das Verfahren in vielen Bereichen eingesetzt wurde, darunter bei Embedded-Systemen, Smartcards, SIM-Karten und bei der Verschlüsselung von Netzwerkgeräten wie Modems, Set-Top-Boxen und Routern.

Der Data Encryption Standard basiert auf Blockverschlüsselung. Das bedeutet, dass ein kryptographischer Algorithmus gleichzeitig auf einen ganzen Block von Daten angewendet wird – anstatt nur auf ein Bit zu einem Zeitpunkt. Um eine Klartextnachricht zu verschlüsseln, gruppiert DES den Text in 64-Bit-Blöcke. Jeder Block wird unter Verwendung des geheimen Schlüssels durch Permutation und Substitution in einen 64-Bit-Chiffretext verschlüsselt. Der Prozess besteht aus 16 Runden und kann in vier verschiedenen Modi laufen. Die Blöcke lassen sich einzeln verschlüsseln, oder jeder Block wird in Abhängigkeit von allen vorangegangenen Blöcken verschlüsselt.

Entschlüsselung ist die Inverse der Verschlüsselung. Sie folgt den gleichen Schritten wie die Verschlüsselung, nur in der umgekehrten Reihenfolge, in der die Schlüssel angewendet wurden.

Die einfachste Angriffsmethode für jede Verschlüsselung ist die Brute-Force-Attacke. Sie probiert systematisch alle möglichen Schlüssel durch, bis der richtige gefunden wurde. Die Länge des Schlüssels bestimmt dabei die Anzahl der möglichen Schlüssel und somit die Ausführbarkeit dieser Art des Angriffs. DES verwendet einen 64-Bit-Schlüssel, wobei allerdings acht dieser 64 Bit zur Paritätsprüfung verwendet werden. Dies verringert den effektiven Schlüssel auf 56 Bit. Daher benötigt ein Brute-Force-Angriff ein Maximum von 256 (≈ 72 Billiarden) Versuchen, den richtigen Schlüssel zu finden.

Auch wenn wahrscheinlich nur wenige Nachrichten, die mit dem DES-Algorithmus verschlüsselt wurden, einem solchen Angriff ausgesetzt waren: Viele Sicherheitsexperten waren bereits kurz nach der Veröffentlichung von DES überzeugt, dass die 56-Bit-Schlüssellänge unzureichend war – und das noch bevor DES als Standard angenommen wurde. Im Jahr 1998 knackte ein Computer der Electronic Frontier Foundation (EFF) eine DES-verschlüsselte Nachricht in 56 Stunden. Im folgenden Jahr reduzierte die EFF die Entschlüsselungszeit durch die Nutzung von Tausenden von Netzwerkcomputern auf 22 Stunden.

Abgesehen von der Abwärtskompatibilität, die in einigen Fällen notwendig ist, ist heute in jedem Computer-System das Vertrauen in DES bezüglich der Geheimhaltung der Daten ein ernster Security-Design-Fehler und sollte vermieden werden. Es stehen heute sehr viel sicherere Algorithmen zur Verfügung, wie zum Beispiel AES. Ähnlich wie ein billiges Vorhängeschloss wird DES den Inhalt zwar sicher vor ehrlichen Leuten verstecken, aber es wird keinen entschlossenen Dieb stoppen.

Die Verschlüsselungsstärke hängt direkt von der Schlüsselgröße ab. Die DES-56-Bit-Schlüssellänge ist in Anbetracht der Rechenleistung moderner Computer viel zu klein. Deshalb hat das National Institute of Standards and Technology (NIST) im Jahr 1997 eine Initiative angekündigt, um einen Nachfolger für DES zu wählen. Als Ersatz für DES wurde dann im Jahr 2001 der Advanced Encryption Standard (AES) bestimmt.

Der Data Encryption Standard (FIPS 46-3) wurde offiziell im Mai 2005 zurückgenommen, obwohl eine variante von DES – der Triple DES (3DES) – bis 2030 für sensible Informationen der US-Regierung genehmigt ist. 3DES führt drei Iterationen des DES-Algorithmus aus. Wenn die Keying-Option Nummer eins gewählt wird, wird jedes Mal ein anderer Schlüssel verwendet, um die Schlüssellänge auf 168 Bit zu erhöhen. Doch aufgrund der Wahrscheinlichkeit eines Meet-in-the-Middle-Angriffs ist die effektive Sicherheit nur 112 Bit. 3DES-Verschlüsselung ist außerdem langsamer als normales DES.

Obwohl der Data Encryption Standard das Ende seiner Lebensdauer erreicht hat, ist sein Nutzen nicht zu unterschätzen. Er hat wichtige kryptographische Aspekte initiiert, deren Studium angestoßen und die Entwicklung neuer Verschlüsselungsalgorithmen gefördert. Bis DES war Kryptographie eine dunkle Kunst, die beschränkt war auf die Geheimdienste von Militär und Regierung. Der offene Charakter von DES sprach Wissenschaftler, Mathematiker und alle an, die Interesse an Sicherheitsfragen hatten.

Wesentliche Operationen des DES

Es werden nun wesentliche Operationen des DES dargestellt. Diese bilden die Grundlage aller weiteren Aufgaben:

1. Substitution (S-Boxen) 2. Transposition (Permutation)

Substitution ist der Prozess, bei dem bestimmte Teile des Klartextes durch andere Werte ersetzt werden. Im eigentlichen DES erfolgt dies durch die Verwendung von sogenannten S-Boxen (Substitutionsboxen), die eine zentrale Rolle im Verschlüsselungsalgorithmus spielen.

Der eigentliche DES verwendet acht S-Boxen, jede mit einer Größe von 6×16. Jede S-Box nimmt 6 Bits als Eingabe und gibt 4 Bits als Ausgabe zurück. Die Verwendung von S-Boxen ermöglicht es, die statistischen Eigenschaften des Klartextes zu verschleiern, da die Beziehung zwischen dem Klartext und dem Geheimtext nicht linear ist.

Transposition (Permutation) ist der Prozess, bei dem die Positionen der Bits oder Gruppen von Bits im Klartext geändert werden, ohne deren Werte zu verändern. In DES erfolgt dies durch Permutationen.

In unserer vereinfachten Version des DES geschieht die Substitution durch die XOR-Verschlüsselungen.

💡 Konfusion und Diffusion: Die Kombination von Substitutionen und Transpositionen in DES führt zu einer hohen Sicherheit, da sie zwei wichtige kryptographische Prinzipien umsetzen: Konfusion (Schwierigkeit, die Beziehung zwischen Klartext, Geheimtext und Schlüssel zu erkennen) und Diffusion (Bits des Geheimtextes sind weit gestreut, sodass eine Änderung eines einzigen Bits im Klartext viele Bits im Geheimtext beeinflusst).

Permutationen

Permutationen sind spezielle Transpositionen, die wir bereits in der Einführungsphase kennengelernt haben. Hier ein Beispiel:

Auf den Klartext 10110110 soll die Permutation (7, 1, 5, 3, 8, 2, 4, 6) angewendet werden. Das bedeutet: An Position 1 des Geheimtextes steht das Zeichen, das vorher an Position 2 des Klartextes stand; an Position 2 steht das Zeichen von Position 6; an Position 3 das Zeichen von Position 4 – und so weiter.

Beschreibung
Permutationsbeispiel

Möchte man eine Permutation rückgängig machen, wendet man die inverse Permutation auf das Ergebnis an. Die inverse Permutation leitet man wie folgt her: Wir wissen, dass in der Permutationsvorschrift an der 2. Stelle die 1 steht, also muss das 1. Zeichen des Geheimtextes an die 2. Position zurückgeführt werden. Wir wissen aus der Permutationsvorschrift, dass das an der 6. Position die 2 stand, also muss das Zeichen an der 2. Position im Geheimtext an die 6. Position getauscht werden. Führt man dies für alle Positionen durch, ergibt sich als inverse Permutation: (2, 6, 4, 7, 3, 8, 1, 5).

Beschreibung
Inverses Permutationsbeispiel

XOR-Verschlüsselung

Ein einfaches Verschlüsselungsverfahren arbeitet wie folgt: Zeichen werden als Bitfolgen aufgefasst (hier: als Byte, also Folgen von 8 Bit).

Zwei Zeichen werden miteinander XOR-verschlüsselt, indem man sich die Bitfolgen übereinander hingeschrieben denkt und die jeweils übereinanderstehenden Bits XOR-verknüpft: Sind die Bits gleich, ist das Ergebnis eine 0, sonst eine 1.

XOR-Wahrheitstabelle
XOR ⊕ 0 1
0 0 1
1 1 0
Verschlüsseln
KT 1 0 1 1 0 1 1 0
key 1 0 0 0 1 1 1 1
GT 0 0 1 1 1 0 0 1
Entschlüsseln (XOR erneut anwenden)
GT 0 0 1 1 1 0 0 1
key 1 0 0 0 1 1 1 1
KT 1 0 1 1 0 1 1 0
💡 Wichtig: Das XOR-Verfahren ist selbstinvers – zum Entschlüsseln wendet man dasselbe Verfahren mit demselben Schlüssel erneut an: (KT ⊕ Schlüssel) ⊕ Schlüssel = KT.

Hinweis: Sie können nun die Aufgaben 1 und 2 bearbeiten oder lesen zunächst den folgenden Text noch durch.

Vereinfachtes Verfahren

Wir betrachten nun eine vereinfachte Version des DES. Anstelle von einem 64-Bit-Block verschlüsseln wir einen 8-Bit-Block. Die Verschlüsselungsfunktion besteht im Folgenden aus einer Permutation und einer XOR-Verschlüsselung, die sich aus einem 8-Bit-Schlüssel ergibt.
Insgesamt wird die Verschlüsselung in zwei Runden durchgeführt. Der Unterschied in beiden Runden ist die jeweilige XOR-Verschlüsselung. In der ersten Runde wird mit den Zeichen 2, 4, 6 und 8 des Schlüssels, also den Zeichen an den geraden Positionen und in der zweiten Runde mit den Zeichen 1, 3, 5 und 7, also den Zeichen an den ungeraden Positionen des Schlüssels, XOR-verschlüsselt. Wenn zum Beispiel der Schlüssel 11010001 ist, dann wird bei der Verschlüsselungsfunktion in der ersten Runde mit 1101 und in der zweiten Runde mit 1000 XOR-verschlüsselt.

Beschreibung
Grafische Darstellung des DES

Beispiel einer Ver- und Entschlüsselung mit dem vereinfachten DES

Zu verschlüsseln ist der Klartext 10110011 mit dem Schlüssel 10101110. Die Verschlüsselung hat zwei Runden. In beiden Runden wird während des Anwendens der Verschlüsselungsfunktion zunächst die rechte Teilfolge Ri mit der Permutation (2,3,4,1) permutiert. Anschließend erfolgt in der ersten Runde eine XOR-Verschlüsselung mit den Schlüsselpositionen 2, 4, 6 und 8 und in der zweiten Runde mit 1, 3, 5 und 7.

Klartext & Schlüssel
Klartext 1 0 1 1 0 0 1 1
Schlüssel 1 0 1 0 1 1 1 0
Hälften & Schlüsselbits
L0 1 0 1 1 S2468 0 0 1 0
R0 0 0 1 1 S1357 1 1 1 1

Verschlüsseln – Runde 1

Schritt 1 (Aufteilung): L0 = 1011 und R0 = 0011

Schritt 2 (Verschlüsselungsfunktion anwenden):
Permutation (2,3,4,1) mit R0 durchführen und das Ergebnis mit S2468 XOR-verschlüsseln:

Permutation
R0 0 0 1 1
Permutation 2 3 4 1
R0p 1 0 0 1
XOR von R0p mit S2468
R0p 1 0 0 1
S2468 0 0 1 0
R0p ⊗ S2468 1 0 1 1

Schritt 3 (XOR von R0p ⊗ S2468 mit L0):

R0p ⊗ S2468 1 0 1 1
L0 1 0 1 1
R1 0 0 0 0

Schritt 4 (L1 = R0): L1 = R0 = 0011

Also ergibt sich als Ergebnis nach der ersten Runde:

Ergebnis: 0 0 1 1   0 0 0 0    (L1 = 0011, R1 = 0000)

Verschlüsseln – Runde 2

Schritt 1 (Aufteilung): L1 = 0011 und R1 = 0000

Schritt 2 (Verschlüsselungsfunktion anwenden):
Permutation (2,3,4,1) mit R1 durchführen und das Ergebnis mit S1357 XOR-verschlüsseln:

Permutation
R1 0 0 0 0
Permutation 2 3 4 1
R1p 0 0 0 0
XOR von R1p mit S1357
R1p 0 0 0 0
S1357 1 1 1 1
R1p ⊗ S1357 1 1 1 1

Schritt 3 (XOR von R1p ⊗ S1357 mit L1):

R1p ⊗ S1357 1 1 1 1
L1 0 0 1 1
R2 1 1 0 0

Schritt 4 (L2 = R1): L2 = R1 = 0000

Also ergibt sich als Ergebnis nach der zweiten Runde:

Ergebnis: 0 0 0 0   1 1 0 0    (L2 = 0000, R2 = 1100)

Entschlüsseln – Runde 1

Schritt 1 (Aufteilung): L2 = 0000 und R2 = 1100

Schritt 2 (Verschlüsselungsfunktion anwenden):
Permutation (2,3,4,1) mit L2 durchführen und das Ergebnis mit S1357 XOR-verschlüsseln:

Permutation
L2 0 0 0 0
Permutation 2 3 4 1
L2p 0 0 0 0
XOR von L2p mit S1357
L2p 0 0 0 0
S1357 1 1 1 1
L2p ⊗ S1357 1 1 1 1

Schritt 3 (XOR von L2p ⊗ S1357 mit R2):

L2p ⊗ S1357 1 1 1 1
R2 1 1 0 0
L1 0 0 1 1

Schritt 4 (R1 = L2): R1 = L2 = 0000

Also ergibt sich als Ergebnis nach der ersten Entschlüsselungsrunde:

Ergebnis: 0 0 1 1   0 0 0 0    (L1 = 0011, R1 = 0000)

Entschlüsseln – Runde 2

Schritt 1 (Aufteilung): L1 = 0011 und R1 = 0000

Schritt 2 (Verschlüsselungsfunktion anwenden):
Permutation (2,3,4,1) mit L1 durchführen und das Ergebnis mit S2468 XOR-verschlüsseln:

Permutation
L1 0 0 1 1
Permutation 2 3 4 1
L1p 1 0 0 1
XOR von L1p mit S2468
L1p 1 0 0 1
S2468 0 0 1 0
L1p ⊗ S2468 1 0 1 1

Schritt 3 (XOR von L1p ⊗ S2468 mit R1):

L1p ⊗ S2468 1 0 1 1
R1 0 0 0 0
L0 1 0 1 1

Schritt 4 (R0 = L1): R0 = L1 = 0011

Das Ergebnis nach der zweiten Entschlüsselungsrunde ist der ursprüngliche Klartext:

Klartext: 1 0 1 1   0 0 1 1    (L0 = 1011, R0 = 0011)

Aufgaben

Bearbeiten Sie die folgenden Aufgaben zu Permutationen (Aufgabe 1) und zur XOR-Verschlüsselung (Aufgabe 2). Nutzen Sie bei Bedarf die gestaffelten Hilfen.

Ihr Bearbeitungsfortschritt: 0%
Aufgabe 1: Permutation

Verschlüsseln Sie den Klartext geheimnis mit der Permutation (3, 4, 5, 1, 9, 6, 2, 8, 7). Entschlüsseln Sie anschließend den Geheimtext gmserhupeei, der mit der 11-stelligen Permutation (3, 7, 8, 10, 5, 1, 4, 6, 9, 11, 2) chiffriert wurde.

Hinweis: Eine Permutation mit n Stellen muss alle Zahlen von 1 bis n genau einmal enthalten. Zum Entschlüsseln leiten Sie zuerst die inverse Permutation her.
Hilfe 1 – Permutation lesen:
Die Permutation (3, 4, 5, 1, 9, 6, 2, 8, 7) bedeutet: Das Zeichen, das im Klartext an Position 3 steht, kommt im Geheimtext an Position 1; das Zeichen von Position 4 kommt an Position 2; und so weiter.
Hilfe 2 – Inverse Permutation bestimmen:
Zum Entschlüsseln: Die inverse Permutation gibt an, wohin das Zeichen des Geheimtextes an Position i im Klartext wandert. Erstellen Sie eine Tabelle: Für jede Position j in der ursprünglichen Permutation mit dem Wert p(j) = k gilt: in der inversen Permutation steht an Position k der Wert j.
Hilfe 3 – Schritt für Schritt:
Beispiel für Permutation (3, 1, 2): Zeichen 1 geht nach Position 3 → In der Inversen: Position 3 erhält den Wert 1. Zeichen 2 geht nach Position 1 → Inverse: Position 1 erhält Wert 2. Zeichen 3 geht nach Position 2 → Inverse: Position 2 erhält Wert 3. Inverse Permutation: (2, 3, 1).

Eine Erweiterung für Klartexte, die länger sind, ist ein Transpositionsverfahren mit Periode. Schauen wir uns zunächst ein Beispiel an:

Zu verschlüsseln ist der Klartext „Wir essen beim Italiener" (Leerzeichen werden nicht beachtet). Die Periode wird auf 3 gesetzt. Dann werden immer je drei Zeichen mit der Permutation (2, 1, 3) vertauscht:

Block Klartext Geheimtext
1 W i r i W r
2 e s s s e s
3 e n b n e b
4 e i m i e m
5 I t a t I a
6 l i e i l e
7 n e r e n r
Zu beachten: Die Periode muss die Anzahl der Zeichen des Klartextes ganzzahlig teilen. Hier war der Klartext 21 Zeichen lang. Als Periode kamen also nur 3 und 7 in Frage.

Verschlüsseln Sie den Klartext „Wir essen beim Italiener", ohne Leerzeichen, mit einer selbstgewählten Permutation für die Periode 7.

Hilfe 1 – Periode und Textlänge:
Zählen Sie zunächst die Zeichen des Klartextes ohne Leerzeichen. Prüfen Sie, ob 7 die Textlänge teilt.
Hilfe 2 – Permutation wählen:
Für Periode 7 benötigen Sie eine Permutation der Form (a, b, c, d, e, f, g), in der jede Zahl von 1 bis 7 genau einmal vorkommt, z. B. (3, 1, 4, 2, 7, 5, 6).
Aufgabe 2: XOR-Verschlüsselung

Verschlüsseln Sie per Hand das Wort AFFE mit dem Schlüssel DU. Das Verschlüsselungsverfahren soll dann wie folgt arbeiten: Die Zeichen des Klartextes werden zeichenweise mit den Zeichen des Schlüssels XOR-verknüpft. Ist der Schlüssel kürzer als der Klartext, wird bei Bedarf von vorne begonnen.

Hilfe 1 – Binärdarstellung:
Wandeln Sie alle Zeichen in ihre 8-Bit-ASCII-Darstellung um:
A = 65 = 01000001, F = 70 = 01000110, E = 69 = 01000101
D = 68 = 01000100, U = 85 = 01010101
Hilfe 2 – XOR-Verknüpfung:
Schlüsselwiederholung: D U D U (für AFFE). Verknüpfen Sie jedes Bit-Paar mit XOR. Denken Sie daran: gleiche Bits → 0, verschiedene Bits → 1.
Hilfe 3 – Ergebnis zurückrechnen:
Rechnen Sie das binäre Ergebnis zurück in einen Dezimalwert und schauen Sie nach, welchem ASCII-Zeichen er entspricht (z. B. über eine ASCII-Tabelle).

Vergleichen Sie das Vigenère-Verfahren mit der XOR-Verschlüsselung. Arbeiten Sie dabei die Gemeinsamkeiten und Unterschiede heraus.

Tipp: Betrachten Sie, wie der Schlüssel eingesetzt wird, welche Zeichenmengen verarbeitet werden, wie Entschlüsselung funktioniert und wie die Sicherheit der Verfahren einzuschätzen ist.
🎉 Alle Aufgaben abgeschlossen!

Überprüfen Sie Ihre Ergebnisse mit der Musterlösung.

Aufgabe 3: Vereinfachtes DES

Es soll die 8-Bit-Klartextfolge 1 0 1 1 0 0 1 1 mit dem vereinfachten DES chiffriert werden. Arbeiten Sie die Teilaufgaben arbeitsteilig in Ihrer Partnergruppe ab und dokumentieren Sie jeden Zwischenschritt.

Ihr Bearbeitungsfortschritt: 0%
🔵 Partnerarbeit (arbeitsteilig)

Wählen Sie einen beliebigen, jeweils unterschiedlichen 8-Bit-Schlüssel. Jede Person in der Gruppe verschlüsselt anschließend mit ihrem eigenen Schlüssel.

Tipp: Notieren Sie sich Ihren Schlüssel gut sichtbar – Sie benötigen ihn in allen folgenden Teilaufgaben und tauschen ihn später mit Ihrem Nachbarn aus.
🔵 Partnerarbeit (arbeitsteilig)

Teilen Sie Ihre 8-Bit-Folge in zwei Hälften L0 und R0 auf. Wenden Sie dann die Verschlüsselungsfunktion auf R0 an:

  1. Permutiert R0 mit der Permutation (2, 3, 1, 4). Dies ergibt R0p.
  2. Verschlüsselt R0p mit XOR unter Verwendung der Zeichen an den Positionen 2, 4, 6 und 8 Ihres Schlüssels.
Hilfe 1 – Was bedeutet die Permutation (2, 3, 1, 4)?
Die Permutation gibt an, an welche neue Position jedes Zeichen von seiner alten Position wandert. Das Zeichen an alter Position 1 wandert an neue Position 2, das Zeichen an alter Position 2 an neue Position 3, usw.
Hilfe 2 – Schrittweise vorgehen
Schreiben Sie sich eine kleine Tabelle: Alte Position (1–4), Zeichen, neue Position (laut Permutation). Sortieren Sie anschließend nach der neuen Position, um R0p abzulesen.
Hilfe 3 – XOR-Regel
Beim XOR gilt: gleiche Bits ergeben 0, unterschiedliche Bits ergeben 1. Schreiben Sie R0p und die vier Schlüsselzeichen (Position 2, 4, 6, 8) untereinander und verrechnen Sie Stelle für Stelle.
🔵 Partnerarbeit (arbeitsteilig)

Verschlüsseln Sie das Ergebnis aus b) mit XOR und der linken Hälfte L0 der Klartextfolge. Das Ergebnis ist die rechte Hälfte R1 für den zweiten Durchgang.

🔵 Partnerarbeit (arbeitsteilig)

Die neue linke Hälfte L1 ist die ursprüngliche rechte Hälfte R0 der Ausgangsbitfolge – hier ist also keine Berechnung nötig, nur die Übernahme des Werts.

🔵 Partnerarbeit (arbeitsteilig)

Wiederholen Sie die Schritte b) bis d) mit L1 und R1. Wählen Sie diesmal während der Verschlüsselungsfunktion die Zeichen an den Positionen 1, 3, 5 und 7 Ihres Schlüssels (ungerade Positionen).

Hilfe 1 – Was bleibt gleich?
Die Permutation (2, 3, 1, 4) wird erneut auf R1 angewendet – nur der Teilschlüssel ändert sich (jetzt Position 1, 3, 5, 7 statt 2, 4, 6, 8).
Hilfe 2 – Endergebnis
Nach Runde 2 erhalten Sie L2 und R2. Der Geheimtext ist die Aneinanderreihung L2R2 (8 Bit).
🔵 Partnerarbeit (arbeitsteilig)

Tauschen Sie Ihr Ergebnis zusammen mit Ihrem gewählten Schlüssel mit Ihrem Nachbarn. Entschlüsseln Sie anschließend den Geheimtext der anderen Person mithilfe der grafischen Darstellung des DES (siehe Abbildung oben) – führen Sie die Runden in umgekehrter Reihenfolge durch.

Hilfe 1 – Grundidee der Entschlüsselung
Da XOR selbstinvers ist (zweimal mit demselben Wert XOR-verschlüsselt ergibt wieder den Ausgangswert), lässt sich jede Runde durch erneutes Anwenden derselben Operationen in umgekehrter Reihenfolge rückgängig machen.
Hilfe 2 – Vorgehen
Starten Sie mit L2 und R2 des Geheimtextes. Da L2 = R1, kennen Sie sofort R1. Verschlüsseln Sie R1 wie in b)/e) (Permutation + XOR mit dem Runde-2-Teilschlüssel) und verrechnen Sie das Ergebnis per XOR mit R2 – das ergibt L1 = R0. Anschließend wiederholen Sie das Vorgehen für Runde 1, um L0 zu erhalten.
🔵 Partnerarbeit (arbeitsteilig)

(Zusatz) Wiederholen Sie die Aufgabe mit einer selbst gewählten Klartextfolge, einem selbst gewählten Schlüssel und selbst gewählten Permutationen.

🎉 Alle Teilaufgaben bearbeitet!

Vergleichen Sie Ihr Vorgehen mit dem folgenden durchgerechneten Beispiel (Schlüssel 11010001).

Ausgangswerte: Klartext 1 0 1 1 0 0 1 1 → L0 = 1011, R0 = 0011. Schlüssel: 11010001 → Runde-1-Teilschlüssel 1101 (Position 2,4,6,8), Runde-2-Teilschlüssel 1000 (Position 1,3,5,7).

Runde 1
SchrittRechnungErgebnis
Permutation (2,3,1,4) auf R00011 → R0p1001
XOR mit Teilschlüssel 11011001 ⊕ 11010100
XOR mit L0 = 10110100 ⊕ 1011R1 = 1111
L1 = R0L1 = 0011
Runde 2
SchrittRechnungErgebnis
Permutation (2,3,1,4) auf R11111 → R1p1111
XOR mit Teilschlüssel 10001111 ⊕ 10000111
XOR mit L1 = 00110111 ⊕ 0011R2 = 0100
L2 = R1L2 = 1111

Geheimtext (L2 R2): 1111 0100

⚠ Da jede Gruppe einen anderen Schlüssel gewählt hat, wird Ihr Ergebnis von diesem Beispiel abweichen – das Rechenschema bleibt aber identisch. Nutzen Sie diese Musterlösung, um Ihre eigene Rechnung Schritt für Schritt zu überprüfen.


Aufgabe 4: Algorithmische Umsetzung des DES (Projekt)

Erinnern Sie sich an den Ablauf des DES (siehe Abbildung oben). Verschaffen Sie sich zunächst gemeinsam einen Überblick zu den notwendigen Operationen, die zur algorithmischen Umsetzung des Verschlüsselns notwendig sind. Sie benötigen hierfür das Grundgerüst des Programms CryptoClass.

👥 Gesamte Lerngruppe

Diskutieren Sie gemeinsam, welche Bausteine (Operationen) für die Umsetzung des vereinfachten DES notwendig sind: eine XOR-Operation, eine Permutations-Erzeugung, eine Anwendung der Permutation sowie eine Operation, die eine komplette Runde durchführt.

Das Grundgerüst des Programms CryptoClass erhalten Sie über den von Ihrer Lehrkraft bereitgestellten Link.

Wählen Sie nun Ihr Anforderungsniveau für die weitere Bearbeitung aus:

🟢 Grundkurs (gA) – optional

Sie betrachten nur die reduzierte Variante von DES mit einer Klartext- und Schlüssellänge von 8 Bit. Bearbeiten Sie die folgenden Teilprobleme in beliebiger Reihenfolge.

Ihr Fortschritt (gA): 0%
🔵 Partnerarbeit

Vervollständigen Sie im Programm CryptoClass die Operation xor(String s, String k), welche eine Zeichenkette s mit dem Schlüssel k XOR-verschlüsselt und das Ergebnis als Zeichenkette zurückgibt.

Erläutern Sie auch, weshalb es keine Operation zum Entschlüsseln geben muss.

🔵 Partnerarbeit

Vervollständigen Sie im Programm CryptoClass die Operation permutationErstellen(int k), welche eine zufällige Permutation der Länge k erzeugt und als Ganzzahlreihung zurückgibt.

🔵 Partnerarbeit

Vervollständigen Sie im Programm CryptoClass die Operation permutationVer(String s, int[] p), welche eine übergebene Zeichenkette s mit einer als Ganzzahlreihung übergebenen Permutation p und der passenden Periode verschlüsselt und das Ergebnis als Zeichenkette zurückgibt. Sie können davon ausgehen, dass die Länge von s ein Vielfaches der Länge von p ist.

🔵 Partnerarbeit

Implementieren Sie im Programm CryptoClass eine Operation desVer(String s, String k, int[] p), welche eine übergebene Zeichenkette s mit dem Schlüssel k und der Permutation p eine Runde nach dem DES verschlüsselt. Integrieren Sie eine übersichtliche Konsolenausgabe, um die einzelnen Schritte zu verfolgen. Nutzen Sie hierfür die Operationen permutationVer und xor.

Hilfe 1 – Warum keine Entschlüsselungs-Operation für xor?
XOR ist selbstinvers: a ⊕ b ⊕ b = a. Ruft man xor also einfach ein zweites Mal mit demselben Schlüssel auf, erhält man wieder den Ausgangstext – eine eigene Entschlüsselungsmethode ist daher überflüssig.
Hilfe 2 – Zufällige Permutation erzeugen
Erzeugen Sie eine Liste mit den Zahlen 1 bis k und mischen Sie sie zufällig (z. B. mit Collections.shuffle in Java oder einem eigenen Fisher-Yates-Algorithmus).
🎉 Alle Teilprobleme bearbeitet!

Warum keine Entschlüsselungs-Operation nötig ist: Da XOR selbstinvers ist, entschlüsselt derselbe Aufruf von xor(geheimtext, schluessel) den Text wieder – Ver- und Entschlüsselung nutzen also dieselbe Methode.

public class CryptoClass {

    // XOR-Verschlüsselung zweier gleich langer Bitfolgen
    public String xor(String s, String k) {
        StringBuilder ergebnis = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char bitS = s.charAt(i);
            char bitK = k.charAt(i % k.length());
            ergebnis.append(bitS == bitK ? '0' : '1');
        }
        return ergebnis.toString();
    }

    // Erzeugt eine zufällige Permutation der Länge k (Werte 1..k)
    public int[] permutationErstellen(int k) {
        int[] p = new int[k];
        for (int i = 0; i < k; i++) p[i] = i + 1;
        Random zufall = new Random();
        for (int i = k - 1; i > 0; i--) {           // Fisher-Yates-Shuffle
            int j = zufall.nextInt(i + 1);
            int tausch = p[i]; p[i] = p[j]; p[j] = tausch;
        }
        return p;
    }

    // Wendet Permutation p blockweise auf s an (alte Position i -> neue Position p[i])
    public String permutationVer(String s, int[] p) {
        int periode = p.length;
        char[] ergebnis = new char[s.length()];
        for (int block = 0; block < s.length() / periode; block++) {
            for (int i = 0; i < periode; i++) {
                int altePos = block * periode + i;
                int neuePos = block * periode + (p[i] - 1);
                ergebnis[neuePos] = s.charAt(altePos);
            }
        }
        return new String(ergebnis);
    }

    // Eine DES-Runde: Permutation + XOR
    public String desVer(String s, String k, int[] p) {
        System.out.println("Eingabe:            " + s);
        String permutiert = permutationVer(s, p);
        System.out.println("Nach Permutation:    " + permutiert);
        String verschluesselt = xor(permutiert, k);
        System.out.println("Nach XOR (Schlüssel " + k + "): " + verschluesselt);
        return verschluesselt;
    }
}
🟣 Leistungskurs (eA)

Sie können selbst entscheiden, ob Sie die reduzierte Variante von DES mit 8 Bit oder die Variante mit 64 Bit Klartext- und Schlüssellänge umsetzen. Zusätzlich zur Verschlüsselung soll auch die Entschlüsselung implementiert werden.

Ihr Fortschritt (eA): 0%
🔵 Partnerarbeit

Entwerfen und implementieren Sie die Operationen xor(String s, String k), permutationErstellen(int k), permutationVer(String s, int[] p) sowie desVer(String s, String k, int[] p) in beliebiger Reihenfolge (Beschreibung siehe Grundkurs-Tab). Erläutern Sie zusätzlich, weshalb es keine Operation zum Entschlüsseln für xor geben muss.

🔵 Partnerarbeit

Implementieren Sie im Programm CryptoClass eine Operation permutationEnt(String s, int[] p), welche eine übergebene Zeichenkette s mit einer Permutation p und der passenden Periode entschlüsselt und das Ergebnis als Zeichenkette zurückgibt.

Hilfe 1 – Umkehrung überlegen
Bei der Verschlüsselung gilt: altePos i → neue Position p[i]. Bei der Entschlüsselung ist die neue Position (= Position im Geheimtext) bekannt, die alte Position wird gesucht. Sie müssen also für jede Position im Geheimtext das passende i mit p[i] = Position finden.
Hilfe 2 – Einfacher Trick
Sie können permutationVer nahezu unverändert wiederverwenden, wenn Sie statt p die inverse Permutation p⁻¹ übergeben. Berechnen Sie dazu vor dem Aufruf einmalig p⁻¹ mit p⁻¹[p[i]-1] = i+1.
🔵 Partnerarbeit

Implementieren Sie im Programm CryptoClass eine Operation desEnt(String s, String k, int[] p), welche eine übergebene Zeichenkette s mit dem Schlüssel k und der Permutation p eine Runde nach dem DES entschlüsselt. Integrieren Sie auch hier eine übersichtliche Konsolenausgabe. Nutzen Sie permutationEnt und xor.

🎉 Alle Teilprobleme bearbeitet!

Teil a) ist identisch zur Musterlösung im Grundkurs-Tab (xor, permutationErstellen, permutationVer, desVer). Ergänzend Teil b):

    // Kehrt die Permutation p blockweise um (Entschlüsselung der Transposition)
    public String permutationEnt(String s, int[] p) {
        int periode = p.length;
        char[] ergebnis = new char[s.length()];
        for (int block = 0; block < s.length() / periode; block++) {
            for (int i = 0; i < periode; i++) {
                int altePos = block * periode + i;
                int neuePos = block * periode + (p[i] - 1);
                // Umkehrung: Zeichen von neuePos zurück an altePos
                ergebnis[altePos] = s.charAt(neuePos);
            }
        }
        return new String(ergebnis);
    }

    // Eine DES-Runde entschlüsseln: erst XOR rückgängig machen, dann Permutation umkehren
    public String desEnt(String s, String k, int[] p) {
        System.out.println("Geheimtext:          " + s);
        String entschluesselt = xor(s, k);              // XOR ist selbstinvers
        System.out.println("Nach XOR (Schlüssel " + k + "): " + entschluesselt);
        String klartext = permutationEnt(entschluesselt, p);
        System.out.println("Nach inverser Permutation: " + klartext);
        return klartext;
    }

Da beim vereinfachten DES pro Runde zuerst permutiert und dann XOR-verschlüsselt wird, müssen beim Entschlüsseln die Operationen in umgekehrter Reihenfolge rückgängig gemacht werden: zuerst XOR (selbstinvers), dann die inverse Permutation.


Aufgabe 5: Blockverschlüsselung mit mehreren Runden (256 Bit)

eA – optional. Ein Blockverschlüsselungsverfahren mit mehreren Verschlüsselungsrunden funktioniert wie folgt:

  1. Ein 256-Bit-Schlüssel key wird zufällig erzeugt und in eine linke und eine rechte Teilhälfte aufgeteilt (key1 und key2). Für alle ungeraden Runden (1, 3, 5, …) wird key1, für alle geraden Runden (2, 4, 6, …) wird key2 genutzt.
  2. Der Klartext kt besteht aus 256 Bit und wird zu Beginn jeder Runde in eine linke und rechte Teilhälfte aufgeteilt (ktL und ktR).
  3. In jeder Runde wird das Ergebnis der vorherigen Runde als neuer Klartext genutzt.

Ablauf einer Verschlüsselungsrunde:

  1. Klartext und Schlüssel in 2 gleich große Blöcke aufteilen.
  2. Rechte Klartexthälfte mit dem entsprechenden Schlüssel XOR-verschlüsseln.
  3. Ergebnis aus Schritt 2 um eine Position nach rechts rotieren (das erste Zeichen wird das zweite usw., das letzte Zeichen wird das erste).
  4. Ergebnis aus Schritt 3 mit der linken Klartexthälfte XOR-verschlüsseln.
  5. Ergebnis nach einer Runde neu zusammensetzen.
Beschreibung
Blockchiffre mit mehreren Rundenl

Die Operation rundenVer(int[] kt, int[] key, int n) ist als Struktogramm gegeben; xor(int[] a, int[] b) führt die XOR-Verschlüsselung zweier Reihungen durch, rotiere(int[] a) führt die in Schritt 3 beschriebene Rotation durch.

Ihr Bearbeitungsfortschritt: 0%
🔵 Partnerarbeit

Analysieren Sie die Funktionsweise der Operation rundenVer. Gehen Sie hierbei auch auf die Anweisungen „gib kt zurück" und „gib rundenVer(gt, key, n-1) zurück" ein.

Beschreibung
Struktogramm der Operation rundenVer(int[] kt, int[] key, int n)
Hilfe 1 – Rekursion erkennen
rundenVer ruft sich innerhalb der eigenen Definition selbst wieder auf (mit n-1 statt n) – das ist eine rekursive Funktion.
Hilfe 2 – Basisfall
Was passiert, wenn n = 0 ist? In diesem Fall wird direkt kt zurückgegeben, ohne eine weitere Runde durchzuführen – das ist der Abbruch der Rekursion (Basisfall). Ohne diesen Fall würde sich die Funktion unendlich oft selbst aufrufen.
Hilfe 3 – Rekursiver Fall
Ist n > 0, wird zunächst eine Runde durchgeführt (Ergebnis gt) und anschließend rundenVer(gt, key, n-1) aufgerufen – also dieselbe Funktion mit dem Ergebnis der aktuellen Runde als neuem Klartext und einer Runde weniger. Nach genau n Aufrufen ist n = 0 erreicht und die Rekursion endet.
🔵 Partnerarbeit

Implementieren Sie ein Programm Runden256, in dem eine Ganzzahlreihung kt der Größe 256 und eine zweite Ganzzahlreihung key der Größe 256 mit zufälligen Werten (0 oder 1) erstellt werden.

🔵 Partnerarbeit

Implementieren Sie im Programm Runden256 die Operationen xor(int[] a, int[] b), rotiere(int[] a) und rundenVer(int[] kt, int[] key, int n). Testen Sie Ihre Ergebnisse anschließend.

Hilfe 1 – Teilarrays bilden
Nutzen Sie Arrays.copyOfRange(...), um kt und key jeweils in eine linke und eine rechte Hälfte (128 Elemente) aufzuteilen.
Hilfe 2 – Schlüsselwahl je Runde
Prüfen Sie mit n % 2, ob die aktuelle Runde ungerade oder gerade ist, um zu entscheiden, ob key1 oder key2 verwendet wird. Achten Sie darauf, ob Ihre Rundenzählung aufsteigend oder absteigend erfolgt.
Hilfe 3 – Rotation
Bei der Rotation um eine Position nach rechts wandert jedes Element eine Position weiter, das letzte Element an den Anfang: ergebnis[(i+1) % laenge] = a[i].
🎉 Alle Teilaufgaben bearbeitet!
Aufgabe 5a – Analyse der Rekursion

rundenVer ist eine rekursive Operation, die eine Verschlüsselungsrunde durchführt und sich danach mit dem Rundenergebnis gt und einem um 1 verringerten Rundenzähler n-1 selbst erneut aufruft. Die Anweisung „gib kt zurück" ist der Basisfall der Rekursion: Sobald n = 0 erreicht ist (also alle gewünschten Runden durchlaufen wurden), wird keine weitere Runde mehr ausgeführt, sondern direkt das aktuelle Ergebnis zurückgegeben. Ohne diesen Fall würde sich die Funktion unendlich oft aufrufen. Die Anweisung „gib rundenVer(gt, key, n-1) zurück" ist der rekursive Fall: Sie sorgt dafür, dass nach Durchführung einer Runde automatisch die nächste Runde mit dem neuen Klartext gt und einem Rundenzähler gestartet wird, der jedes Mal um 1 sinkt – nach genau n Aufrufen ist der Basisfall erreicht.

Aufgabe 5b & c – Beispielimplementierung (Java)
import java.util.Arrays;
import java.util.Random;

public class Runden256 {

    public static void main(String[] args) {
        Random zufall = new Random();
        int[] kt  = erzeugeZufallsfolge(256, zufall);
        int[] key = erzeugeZufallsfolge(256, zufall);

        int[] geheimtext = rundenVer(kt, key, 4);   // z.B. 4 Runden testen
        System.out.println("Geheimtext: " + Arrays.toString(geheimtext));
    }

    private static int[] erzeugeZufallsfolge(int laenge, Random zufall) {
        int[] folge = new int[laenge];
        for (int i = 0; i < laenge; i++) folge[i] = zufall.nextInt(2); // 0 oder 1
        return folge;
    }

    // XOR zweier gleich langer Ganzzahlreihungen (bitweise)
    public static int[] xor(int[] a, int[] b) {
        int[] ergebnis = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            ergebnis[i] = (a[i] == b[i]) ? 0 : 1;
        }
        return ergebnis;
    }

    // Rotiert die Reihung um eine Position nach rechts
    public static int[] rotiere(int[] a) {
        int[] ergebnis = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            ergebnis[(i + 1) % a.length] = a[i];
        }
        return ergebnis;
    }

    // Rekursive Rundenfunktion
    public static int[] rundenVer(int[] kt, int[] key, int n) {
        if (n == 0) {
            return kt;                                  // Basisfall
        }
        int haelfte = kt.length / 2;
        int[] ktL = Arrays.copyOfRange(kt, 0, haelfte);
        int[] ktR = Arrays.copyOfRange(kt, haelfte, kt.length);
        int[] keyL = Arrays.copyOfRange(key, 0, haelfte);
        int[] keyR = Arrays.copyOfRange(key, haelfte, key.length);

        // ungerade Runden (n ungerade, absteigend gezählt) -> keyL, sonst keyR
        int[] rundenSchluessel = (n % 2 != 0) ? keyL : keyR;

        int[] xorErgebnis = xor(ktR, rundenSchluessel);
        int[] rotiert      = rotiere(xorErgebnis);
        int[] neueRechte    = xor(rotiert, ktL);

        int[] gt = new int[kt.length];
        System.arraycopy(ktR, 0, gt, 0, haelfte);        // neue linke Hälfte = alte rechte Hälfte
        System.arraycopy(neueRechte, 0, gt, haelfte, haelfte);

        return rundenVer(gt, key, n - 1);                // rekursiver Fall
    }
}

⚠ Hinweis: Ob key1 (linke Hälfte) für ungerade oder gerade Runden verwendet wird, hängt davon ab, ob Ihre Rundenzählung n aufsteigend oder absteigend gezählt wird – passen Sie die Bedingung n % 2 ggf. an Ihre eigene Zählweise an.

Asymmetrische Verfahren

Probleme mit dem Schlüsseltausch

Stellen Sie sich vor, Alice und Bob möchten ein sehr sicheres Verschlüsselungsverfahren nutzen, um sich geheime Nachrichten zu schreiben.

Nachricht von Alice an Bob
Nachricht von Alice an Bob

Bevor die beiden Nachrichten versenden können, müssen sie sich auf einen gemeinsamen Schlüssel einigen. Dafür müssen sich die beiden entweder treffen oder den Schlüssel über die Post oder einen digitalen Kommunikationsweg austauschen. Letzteres ist heutzutage eher wahrscheinlich. Wenn nun die neugierige Eve erfahren hat, dass die beiden geheime Nachrichten austauschen, möchte sie unbedingt erfahren, welche Geheimnisse die beiden wohl zu bereden haben. Wie kann Eve dabei vorgehen?

Alice schickt nun eine verschlüsselte Nachricht an Bob und Eve hat die Möglichkeit, diese Nachricht abzufangen.

Eve fängt Alice Nachricht an Bob ab
Eve fängt Alice Nachricht an Bob ab

Da die Nachricht verschlüsselt und die Verschlüsselung sehr sicher ist, nützt ihr dieser Schritt nichts. Das Problem ist aber, dass Eve offenbar die Möglichkeit hat, Nachrichten abzufangen und auch weiterzuleiten. Wenn sie das mit der verschlüsselten Nachricht kann, kann sie sicher auch den Austausch des Schlüssels abfangen und weiterleiten. In der analogen Welt könnte Eve einfach die Briefe mit dem Schlüssel und der verschlüsselten Nachricht abfangen. Somit könnte sie jede Nachricht entschlüsseln, lesen und unbemerkt weiterleiten.

Bei allen symmetrischen Verschlüsselungsverfahren muss ein gemeinsamer Schlüssel ausgetauscht werden. Egal wie sicher das eigentliche Verschlüsselungsverfahren ist, stellt dieser Schlüsseltausch immer einen Angriffspunkt und damit eine Schwachstelle dar. Diese Schwachstelle existiert, da beide Kommunikationspartner den gleichen Schlüssel benötigen.

→ Alle Kryptosysteme, die auf symmetrischen Verfahren basieren, sind durch einen Angriff auf den Schlüsseltausch verwundbar.

Ein Verfahren ist nur so lange sicher, wie der Schlüssel geheim gehalten werden kann. Sie können davon ausgehen, dass bei Massenkommunikation, wie im Internet oder in Messenger-Diensten, das Verschlüsselungsverfahren selbst nicht geheim ist. Demnach müssen angreifende Personen oder Maschinen immer nur den Schlüssel „finden“. Je mehr mögliche Schlüssel infrage kommen, desto schwieriger ist dies. Ein möglichst großer Schlüsselraum erhöht also die Sicherheit enorm.


Stellen Sie sich folgende Situation vor: Karl Kunde sitzt sonntags vor dem PC, um zu shoppen. Er entdeckt den Online-Shop von Vera Verkäuferin, bei dem er gerne einige Dinge erwerben möchte. Für die Bezahlung möchte er seine Kreditkarte nutzen, die Vera auch akzeptiert. Selbstverständlich sollen die notwendigen Daten ausschließlich an Vera gehen und niemandem sonst, vor allem nicht Spike Spitzbube, der sehr gerne die Kreditkarteninformationen von Karl in die Hände bekäme. Sie können davon ausgehen, dass Vera und Karl sich aufgrund räumlicher Distanz nicht treffen können.

Karl Kunde
Karl Kunde
Vera Verkäuferin
Vera Verkäuferin
Bilder von einer KI erstellt
Spike Spitzbube
Spike Spitzbube
Ihr Bearbeitungsfortschritt: 0%
🟠 Einzelarbeit

Erläutern Sie, warum ein symmetrisches Verschlüsselungsverfahren für die Kommunikation von Vera und Karl nicht geeignet ist.

Hilfe 1 – Kernproblem erinnern
Denken Sie an den Abschnitt „Probleme mit dem Schlüsseltausch“ oben: Welches grundlegende Problem haben Alice und Bob, bevor sie überhaupt verschlüsselt kommunizieren können?
Hilfe 2 – Auf Karl und Vera übertragen
Übertragen Sie das Problem auf die Situation: Wie müssten Karl und Vera einen gemeinsamen Schlüssel vereinbaren, wenn sie sich nicht treffen können? Welche Rolle könnte Spike dabei einnehmen?

Karl und Vera haben ein neues, besonderes Verfahren entwickelt. Dieses Verfahren kann man sich wie ein Schloss vorstellen. Doch dieses Schloss hat eine Besonderheit: Es besitzt zwei Schlüssellöcher.

Geöffnetes Schloss mit zwei Schlüssellöchern
Geöffnetes Schloss
Geschlossenes Schloss mit zwei Schlüssellöchern
Geschlossenes Schloss

Das Neue ist hier, dass sowohl Karl als auch Vera einen eigenen, privaten Schlüssel für das Schloss besitzen.

Karl möchte eine verschlüsselte Nachricht an Vera schicken
Gelb: privater Schlüssel von Karl, Grün: privater Schlüssel von Vera

Der gelbe Schlüssel ist Karls privater Schlüssel und der grüne Veras. Wenn nun eine Nachricht verschlüsselt werden soll, muss das Schloss an diese Nachricht gehängt und geschlossen werden. Wenn die Nachricht wieder gelesen werden soll, muss das Schloss an der Nachricht geöffnet werden.

Situation: Karl möchte eine verschlüsselte Nachricht an Vera schicken

Situation: Karl möchte eine verschlüsselte Nachricht an Vera schicken
Ihr Bearbeitungsfortschritt: 0%
🔵 Partnerarbeit

Beschreiben Sie den Ablauf des Verfahrens, wenn Vera eine Nachricht an Karl schicken möchte.

Hilfe 1 – Wer besitzt was?
Überlegen Sie zunächst, welcher der beiden Schlüssel (gelb oder grün) zu Karl gehört und welcher zu Vera. Wer soll die Nachricht am Ende lesen können?
Hilfe 2 – Schließen und Öffnen unterscheiden
Beachten Sie, dass das Schloss zwei getrennte Schritte kennt: das Anhängen/Schließen (Verschlüsseln) und das Öffnen (Entschlüsseln) mit einem bestimmten Schlüssel. Beschreiben Sie beide Schritte einzeln.
🔵 Partnerarbeit

Der neugierige Spike hat nun die Möglichkeit, den verschlüsselten Brief abzufangen. Untersuchen Sie, welche der am Kryptosystem beteiligten Komponenten (Schloss, Veras Schlüssel, Karls Schlüssel) öffentlich bekannt sein bzw. ausgetauscht werden dürfen und welche nicht.

Hilfe 1 – Was fängt Spike tatsächlich ab?
Gehen Sie den Ablauf aus a) noch einmal durch: Welche der drei Komponenten wird beim Versenden der Nachricht überhaupt über den unsicheren Kanal transportiert?
Hilfe 2 – Reicht der Besitz einer Komponente?
Überlegen Sie für jede Komponente einzeln: Könnte Spike allein mit dieser Komponente (ohne die anderen beiden) die Nachricht entschlüsseln?
🔵 Partnerarbeit

Karl und Vera müssen das gemeinsame Schloss vorher austauschen. Das soll zwar auf einem möglichst sicheren Kanal geschehen, aber der clevere Spike kann das Schloss abfangen. Entscheiden Sie, ob Spike mit dem Schloss etwas anfangen kann.

Hilfe 1 – Was kann man mit einem Schloss allein tun?
Kann man ein Schloss ohne einen passenden Schlüssel öffnen? Kann man es aber verschließen?
Hilfe 2 – Nutzen für Spike abwägen
Überlegen Sie, ob Spike mit dem bloßen Besitz des Schlosses bereits abgefangene oder zukünftige Nachrichten lesen könnte.
🔵 Partnerarbeit

Nun ändern wir die Situation: Karl und Vera haben einen eigenen Schlüssel, wie vorher auch, aber nun jeweils ein eigenes Schloss. Wir gehen davon aus, dass beide Schlösser nur durch den jeweiligen (eigenen) Schlüssel geöffnet werden können. Das Verschließen eines Schlosses kann durch jede Person vorgenommen werden.

Jeder hat sein eigenes Schloss

Erläutern Sie, weshalb Karl und Vera vorher ihre jeweiligen Schlösser geöffnet austauschen oder an irgendeinem öffentlich zugänglichen Ort deponieren müssen, wenn die beiden verschlüsselte Nachrichten austauschen wollen.

Untersuchen Sie, welchen Nutzen Spike das Abfangen

  • der Schlösser,
  • einer verschlüsselten Nachricht,
  • beider oben genannten Teile

bringen würde.

Hilfe 1 – Wer verschließt womit?
Überlegen Sie: Wenn Vera an Karl schreiben möchte, mit wessen Schloss muss sie die Nachricht verschließen, damit nur Karl sie öffnen kann?
Hilfe 2 – Warum „geöffnet“ austauschen?
Ein Schloss kann von jeder Person verschlossen werden – es muss also nicht geheim sein. Was würde passieren, wenn das Schloss stattdessen geheim gehalten würde?
Hilfe 3 – Die drei Fälle einzeln durchgehen
Prüfen Sie für jeden der drei Fälle separat: Was kann Spike mit den abgefangenen Informationen tun, wenn er (1) nur das Schloss, (2) nur die verschlüsselte Nachricht oder (3) beides besitzt? Kommt er in irgendeinem Fall an den Klartext?
🔵 Partnerarbeit

Erläutern Sie, was die Verfahren in dieser Aufgabe von allen bisher betrachteten Verschlüsselungsverfahren unterscheidet und worin genau der Mehrwert an Sicherheit liegt. Geben Sie auch ganz deutlich an, welche Komponenten eines solchen Kryptosystems öffentlich, also bekannt, und welche privat, also geheim, sein müssen. Gehen Sie dabei auch darauf ein, weshalb bestimmte Komponenten gerade öffentlich sein müssen.

Hilfe 1 – Rückblick auf symmetrische Verfahren
Erinnern Sie sich an das Kernproblem symmetrischer Verfahren aus dem Einführungsabschnitt: Was mussten Alice und Bob dort zwingend austauschen, was hier nicht mehr nötig ist?
Hilfe 2 – Öffentlich, damit es überhaupt funktioniert
Überlegen Sie: Damit Vera überhaupt eine Nachricht an Karl verschlüsseln kann, muss sie etwas von Karl kennen. Muss dieses „etwas“ also zwangsläufig öffentlich zugänglich sein?
Wir können bisher zusammenfassen: Bei einem asymmetrischen Verschlüsselungsverfahren hat jeder Kommunikationsteilnehmer einen eigenen privaten Schlüssel. In Kombination mit einem eigenen öffentlichen Schlüssel (das war in Aufgabenteil 2 d) das jeweilige Schloss) ist so eine nicht-symmetrische Verschlüsselung möglich.

Die privaten Schlüssel sind geheim, während die öffentlichen Schlüssel für jede Person zugänglich sind bzw. auch sein müssen.

Diffie-Hellman-Schlüsseltausch

Durch die Symmetrie der bisher betrachteten Verfahren ergeben sich ganz praktische Schwierigkeiten, wenn man mithilfe von symmetrischen Verfahren kommunizieren möchte. Zum Beispiel mussten im 2. Weltkrieg die Code-Bücher für die Enigma monatlich verteilt werden. Dies setzte einen enormen logistischen Aufwand voraus.
In den 1970er Jahren beauftragten Banken langjährige, vertrauenswürdige Mitarbeiter mit der Überbringung der Schlüssel an Kunden. Dies stellte ebenso einen sehr hohen Aufwand dar.
In der heutigen Zeit ist aufgrund des immens hohen und immer weiter wachsenden Datenaufkommens eine direkte physische Schlüsselverteilung logistisch und finanziell unmöglich.
Eine Forschergruppe in den USA stellte sich in den 1970er Jahren die Frage, ob der Schlüsseltausch so wie bisher angenommen ablaufen muss.

Grundlegend wurde zunächst untersucht, ob ein asymmetrischer Schlüsseltausch möglich ist. Das konkrete Verschlüsselungsverfahren ist hierfür zweitrangig. Der Fokus wird im Folgenden nur auf die Schwachstelle des Schlüsseltauschs gesetzt. Die erste Idee von Diffie und Hellman war, Verfahren so zu gestalten, dass die beiden an der Kommunikation beteiligten Parteien (im Folgenden als Alice und Bob bezeichnet) nicht einen gemeinsamen, sondern einen privaten Schlüssel nutzen, der nicht öffentlich ausgetauscht werden muss. Das Ziel sollte sein, dass jeder mit seinem privaten Schlüssel die Informationen individuell verschlüsseln kann, sodass am Ende beide Parteien zur Entschlüsselung benötigt werden.
Dieser Ansatz hat jedoch den Nachteil, dass wer zuletzt verschlüsselt hat, wieder zuerst entschlüsseln muss. Es muss also die Reihenfolge der Ver- und Entschlüsselung exakt eingehalten werden.
Man kann beweisen, dass es kein sicheres Verschlüsselungsverfahren gibt, bei dem diese Reihenfolge vertauscht werden darf.

1976 entdeckte Hellman eine Variante, wie man einen Schlüsseltausch so durchführen kann, dass am Ende jeder einen eigenen, privaten Schlüssel hat, aber keine der öffentlich getauschten Informationen auf die Schlüssel schließen lässt.
Ein Angreifer darf also alle ausgetauschten Informationen mithören, trotzdem kann er den Schlüssel nicht ableiten. Die Annahme bei dem Verfahren ist, dass das „public secret“ nicht effizient getrennt werden kann.
Hier ist eine vereinfachte grafische Darstellung der Idee:

Das Farbmodell zur Veranschaulichung

  1. Gemeinsame Farbe wählen: Sie einigen sich über einen öffentlich zugänglichen Kanal auf eine gemeinsame Ausgangsfarbe.
  2. Geheime Farbe wählen: Jede Seite wählt für sich eine geheime private Farbe aus.
  3. Mischen und austauschen: Die gemeinsame Farbe wird mit der eigenen privaten Farbe gemischt und öffentlich verschickt. Es wird angenommen, dass sich die Mischung nicht wieder in ihre Bestandteile trennen lässt.
  4. Empfangene Mischung ergänzen: Die empfangene Farbmischung wird nun mit der eigenen geheimen Farbe vermischt.
  5. Gemeinsames Ergebnis: Auf beiden Seiten entsteht exakt dieselbe Endfarbe, da nun beide Parteien alle beteiligten Farben zusammengeführt haben.
Farbmodell des Diffie-Hellman-Schlüsseltauschs
Farbmodell des Diffie-Hellman-Schlüsseltauschs
Alice berechnet den öffentlichen Wert A
Berechnung und Versand von Alices öffentlichem Wert

Alice verschickt nun an Bob die Zahlen A, g und p. Öffentlich bekannt sind nun das Ergebnis von Alices Rechnung ga mod p sowie die Basis für die Potenz g und die Primzahl p. Alices Berechnung geht sehr leicht. Die Frage ist jedoch, wie leicht es für Unbefugte ist, unter Kenntnis des Ergebnisses, der Basis und der Zahl p ihren privaten Schlüssel a (den Exponenten) zu rekonstruieren. Betrachten Sie hierzu das folgende Beispiel:

Alice wählt g = 3, p = 7 und a = 5. Dann berechnet sie: 35 mod 7 = 243 mod 7 = 5.

Ein Angreifer kann nun ohne Probleme an die öffentlichen Informationen 3x mod 7 = 5 gelangen und muss das x rekonstruieren. Hier sehen Sie einen Auszug aus der Wertetabelle der Funktion f mit f(x) = 3x mod 7:

x 1 2 3 4 5 6 7 8 9 10 11
3x 3 9 27 81 243 729 2187 6561 19683 59049 177147
f(x) 3 2 6 4 5 1 3 2 6 4 5
x 12 13 14 15 16 17
3x 531441 1594323 4752969 14348907 43046721 129140163
f(x) 1 3 2 6 4 5

In diesem kleinen Ausschnitt gibt es bereits vier Möglichkeiten für Alices privaten Schlüssel – und die Tabelle setzt sich unendlich fort. Somit hat ein Angreifer keine Möglichkeit, Alices privaten Schlüssel eindeutig zu bestimmen. Der Schlüsseltausch ist an dieser Stelle somit sicher.

Nun berechnet Bob B = gb mod p. Bob wählt seinen privaten Schlüssel b = 7. Daraus ergibt sich: B = 37 mod 7 = 3.

Bob übermittelt seinen Wert B = 3 ebenfalls öffentlich an Alice.

Austausch der öffentlichen Werte A und B zwischen Alice und Bob
Austausch der berechneten Werte A und B

Jetzt berechnet Alice Ba mod p und Bob Ab mod p:

  • Alice erhält: 35 mod 7 = 5
  • Bob erhält: 57 mod 7 = 5

Alice hat insgesamt (37 mod 7)5 mod 7 und Bob (35 mod 7)7 mod 7 berechnet. Nach den mathematischen Potenzenregeln gilt:

(35 mod 7)7 mod 7 = 35 · 7 mod 7 = (37 mod 7)5 mod 7

Beide Parteien haben somit denselben gemeinsamen Schlüssel K berechnet.

Gesamter Ablauf des Diffie-Hellman-Schlüsseltauschs im Überblick
Gesamtablauf des Schlüsseltauschs im Überblick

Konkretes Berechnungsbeispiel

Konkretes Rechenbeispiel mit g=7 und p=11
Beispiel mit den Werten g = 7 und p = 11

Auch bei diesem Verfahren besteht eine Herausforderung: Beide Kommunikationspartner müssen gleichzeitig aktiv sein, um den Schlüssel zu vereinbaren. Die Suche nach noch flexibleren Verfahren führte daher zu neuen Konzepten.

Idee: Asymmetrische Verschlüsselung

  • Entdeckung: Von Whitfield Diffie entdeckt und 1976 veröffentlicht.
  • Zwei Schlüsselpaare:
    • Öffentlicher Schlüssel (Public Key) zum Verschlüsseln/Chiffrieren.
    • Privater Schlüssel (Private Key) zum Entschlüsseln/Dechiffrieren.
  • Praktische Umsetzung:
    • Zunächst handelte es sich lediglich um ein theoretisches Konzept.
    • Ronald Rivest, Adi Shamir und Leonard Adleman fanden 1977 schließlich eine passende mathematische Funktion hierfür (das RSA-Verfahren).
  • Historischer Hintergrund: Das Verfahren wurde bereits Anfang der 1970er Jahre von James H. Ellis, Clifford Cocks und Malcolm J. Williamson beim britischen Nachrichtendienst GCHQ entdeckt, durfte damals jedoch aufgrund von Geheimhaltungsvorschriften nicht veröffentlicht werden.

Aufgaben

Bearbeiten Sie die folgenden Aufgaben zum Diffie-Hellman-Schlüsseltausch und zur Asymmetrischen Kryptologie. Nutzen Sie bei Bedarf die Hilfestellungen.

Ihr Bearbeitungsfortschritt: 0%
Aufgabe 1: Erarbeitung des Ablaufs

Lesen Sie sich den obigen Text zum Diffie-Hellman-Schlüsseltausch durch oder schauen Sie sich das Video an und machen Sie sich Notizen zum Ablauf des Verfahrens.

Hilfe (Leitfragen)
Achten Sie beim Lesen bzw. Anschauen besonders auf folgende Punkte:
  • Welche Werte werden öffentlich ausgetauscht?
  • Welche Werte bleiben geheim?
  • Wie berechnet jede Seite am Ende denselben Schlüssel?
Hilfe 1 von 1
Aufgabe 2: Praktische Durchführung des Schlüsseltauschs

Führen Sie den Diffie-Hellman-Schlüsseltausch gemeinsam mit Ihrer Partnerin bzw. Ihrem Partner durch. Nutzen Sie dafür das bereitgestellte Tool.

Wählen Sie eine Zahl x zwischen 2 und 15.
Als öffentliche Schlüssel werden g = 7 und p = 11 festgelegt.

Berechnen Sie a = gx mod p und übermitteln Sie das Ergebnis an Ihre Partnerin bzw. Ihren Partner.

Hilfe zur Rechnung
Berechnen Sie zuerst 7x (also 7 hoch Ihre gewählte Zahl) und teilen Sie das Ergebnis durch 11. Der mathematische Rest dieser Division ist Ihr Ergebnis a.
Hilfe 1 von 1

Nennen Sie die Zahl, die Sie von Ihrer Partnerin bzw. Ihrem Partner übermittelt bekommen, b.
Berechnen Sie nun k = bx mod p.
Vergleichen Sie das Ergebnis anschließend mit Ihrer Partnerin bzw. Ihrem Partner.

Führen Sie einen weiteren Durchgang aus, indem Sie g = 7 und p = 11 durch andere Zahlen ersetzen.
(Beachten Sie: Die erste Zahl muss kleiner als die zweite Zahl sein und der Modul sollte eine Primzahl sein.)

💡 Hinweis: Falls Sie Schwierigkeiten haben, finden Sie im Gruppenordner → Kapitel65 eine Datei „VorlageAufgabe2“, welche Sie verwenden können, um eine Struktur zu haben.
Aufgabe 3: Mathematische Herausforderungen für den Angreifer (Partnerarbeit)

In dieser Aufgabe wird untersucht, wo genau die mathematischen Herausforderungen für Spike liegen, um bei unserem Schlüsseltauschverfahren an die privaten Schlüssel von Karl und Vera zu gelangen.

Angenommen, Spike hat alle öffentlich ausgetauschten Informationen abgefangen:

  • den Generator g = 7
  • das Modul p = 11
  • Veras Ergebnis der Berechnung: 73 mod 11 = 2
  • Karls Ergebnis der Berechnung: 76 mod 11 = 4

Versuchen Sie, aus den öffentlich abgefangenen Werten die privaten Schlüssel zu bestimmen.

Untersuchen Sie anhand der folgenden Beispiele, wie das diskrete Logarithmusproblem konkret beschaffen ist:

  • Gegeben sei p = 11, g = 2 und A = 8. Finden Sie a, sodass 2a mod 11 = 8 ist.
  • Gegeben sei p = 23, g = 5 und A = 10. Finden Sie a, sodass 5a mod 23 = 10 ist.
  • Gegeben sei p = 101, g = 2 und A = 19. Finden Sie a, sodass 2a mod 101 = 19 ist.

Diskutieren Sie, inwieweit sich auch hier a durch Ausprobieren ermitteln lässt und welche praktischen Schwierigkeiten bei größeren Zahlen auftreten können.

In Ihrer Analyse sollten Sie insbesondere darauf eingehen, wie der Schwierigkeitsgrad der Lösung mit der Wahl der Parameter variiert und warum in realen Anwendungen wesentlich größere Werte gefordert sind.

Aufgabe 4: Einfluss der Modul-Wahl auf die Sicherheit (Partnerarbeit)

In dieser Aufgabe wird untersucht, wie die Wahl des Moduls die Sicherheit beeinflussen kann.

Wählen Sie das Modul p = 11 und den Generator g = 2.
Berechnen Sie die folgenden Werte durch wiederholtes Multiplizieren mit 2 und jeweils das Bilden des Restes bei Division durch 11.
Erstellen Sie eine Liste der Ergebnisse, bis sich ein Muster wiederholt:

21 mod 11, 22 mod 11, 23 mod 11, 24 mod 11 ...

Beobachten Sie: Erscheinen in Ihrer Liste alle Zahlen, die zwischen 1 und 10 liegen?
Erklären Sie in eigenen Worten, warum es hilfreich ist, dass jede Zahl (außer 0) einmal auftritt.

Wählen Sie nun das Modul p = 15 und den gleichen Generator g = 2.
Berechnen Sie erneut die folgenden Werte und erstellen Sie eine Liste der Ergebnisse, bis sich ein Muster wiederholt:

21 mod 15, 22 mod 15, 23 mod 15, 24 mod 15 ...

Beobachten Sie, ob in der Liste alle Zahlen von 1 bis 14 auftauchen. Gibt es Zahlen, die gar nicht vorkommen?

Diskutieren Sie, warum dieses unvollständige „Verhalten“ Nachteile für die Sicherheit des Schlüsseltauschs haben könnte.

Fassen Sie zusammen, was Ihnen die beiden Beispiele über die Wahl des Moduls sagen, und gehen Sie hierbei auf die folgenden Aspekte ein:

  • Warum ist es für die Sicherheit eines Schlüsseltausch-Verfahrens sinnvoll, ein Modul p zu wählen, bei dem beim wiederholten Multiplizieren (mit einem festen Startwert) alle möglichen Reste (von 1 bis p-1) auftreten?
  • Warum könnte ein zusammengesetztes Modul (z. B. 15) Probleme bereiten, wenn es darum geht, aus den Berechnungsergebnissen einen sicheren geheimen Schlüssel abzuleiten?
Aufgabe 5: Erweiterung des Angriffsszenarios (Partnerarbeit)

So weit, so gut. Erweitern wir unser Angriffsszenario.

Spike hat nun auch ein eigenes Schloss mit entsprechendem geheimen Schlüssel.

Nachricht von Alice an Bob
Spike hat eine Schlüssel-Schloss-Paar

Untersuchen Sie, welche Möglichkeiten sich für Spike jetzt ergeben, wenn er die gesamte Kommunikation zwischen Karl und Vera abfangen kann.

Gehen Sie insbesondere darauf ein, ob Spike mit seinem eigenen Schloss etwas anfangen kann und ob dies den anderen beiden gegebenenfalls auffällt.

Aufgabe 6: Verschlüsselung mit Schlüssel und Schloss (Partnerarbeit)

Wir erweitern das Szenario erneut. In der Realität ist es so, dass man sowohl mit einem Schlüssel als auch mit einem Schloss verschlüsseln kann. Das wirkt vielleicht auf den ersten Blick nicht möglich, aber ein sehr einfaches Beispiel kennt jede Person aus dem Mathematikunterricht.

Der zu verschlüsselnde Klartext sei die Zahl 5.
Veras privater Schlüssel ist die Funktion g, mit g(x) = √√x (Kubikwurzel).
Veras öffentlicher Schlüssel, also das bisherige Schloss, ist dann die Funktion f, mit f(x) = x3.
Um die Abbildungen anzupassen, werden die öffentlichen Schlüssel ab nun nicht mehr als Schloss dargestellt und die privaten nicht mehr als Schlüssel dargestellt.

Erläutern Sie die Funktionsweise in der Abbildung.

Entwickeln Sie einen privaten und einen öffentlichen Schlüssel für Karl.
Beschreiben Sie den Ablauf, wenn Vera an Karl die Klartextnachricht 4 schicken möchte.

Aufgabe 7: Authentifizierung im asymmetrischen Kryptosystem (Partnerarbeit)

So, jetzt sind wir so weit, dass Vera die für eine Überweisung des Betrags der von Karl gekauften Produkte an Karl weitergeben möchte. Der fiese Spike denkt sich jedoch, dass er viel lieber das Geld auf sein eigenes Konto überwiesen haben möchte. Um das umzusetzen, tauscht er den öffentlichen Schlüssel von Vera aus.

Szenario 1
Szenario 2

Vergleichen Sie beide Szenarien aus Ihrem Unterrichtsmaterial und beurteilen Sie, ob es mit dem asymmetrischen Konzept des privaten und öffentlichen Schlüssels möglich ist, dass ein Sender authentifiziert, also als der vermeintliche Sender erkannt werden kann.

Erläutern Sie diesen Ablauf.

Schauen Sie sich noch einmal das Verschlüsseln mit öffentlichen und privaten Schlüsseln an. Karl möchte zunächst verschlüsselt einkaufen. Da er weiß, dass er mit Vera kommunizieren möchte, sucht er im öffentlichen Register nach ihrem öffentlichen Schlüssel.

Da Karl ein Kundenkonto besitzt, möchte er natürlich mit seinem Konto einkaufen. Entwickeln Sie mithilfe von Aufgabenteil a) eine Möglichkeit, dass Karl sich bei seiner verschlüsselten Bestellung auch bei Vera authentifizieren kann. Stellen Sie diesen Ablauf auch grafisch dar.

🎉 Ausgezeichnet – Alle Aufgaben abgeschlossen!

Sie haben alle Aufgaben bearbeitet und abgehakt. Vergleichen Sie Ihre Ergebnisse nun mit der Musterlösung.

Digitale Zertifikate und Authentifikation

Wir haben festgestellt, dass die Sicherheit eines asymmetrischen Kryptosystems stark von der Vertrauenswürdigkeit der öffentlichen Schlüssel abhängt. Dies schauen wir uns nun genauer an.

Ihr Bearbeitungsfortschritt: 0%
Aufgabe 1: Man-in-the-Middle & Schwachstellenanalyse (Lerngruppe)

Karl möchte seinen Kauf bei Vera über sein Bankkonto online zahlen.

Analysieren Sie die folgende Abbildung und identifizieren Sie die genauen Bereiche, an denen es Schwachstellen im asymmetrischen Kryptosystem gibt. Erläutern Sie, dass nach der Vorgehensweise der Abbildung Nachrichten sowohl mitgelesen als auch manipuliert werden können.

Man-in-the-Middle und Schwachstellen im asymmetrischen Kryptosystem
Man in the Middle
Leitfragen zur Analyse:
  • Wer stellt den öffentlichen Schlüssel der Bank bereit und wie gelangt Karl an diesen?
  • Welchen Schlüssel nutzt Spike, um Karls Nachricht zu entschlüsseln?
  • Wie verändert Spike den Inhalt der Überweisung vor der Weiterleitung an die Bank?

Eines der Probleme wurde bereits in einer der vorherigen Aufgaben gelöst. Identifizieren Sie die Stelle, an der die Authentifizierung eine Schwachstelle in der obigen Abbildung beseitigt.

Aufgabe 2: Verifizierung des öffentlichen Schlüssels (Lerngruppe)

Die Bank möchte ihren öffentlichen Schlüssel verifizieren lassen.

Analysieren Sie die folgende Abbildung und erläutern Sie den Ablauf der Zertifizierung eines öffentlichen Schlüssels.

Ablauf der Zertifizierung eines öffentlichen Schlüssels
Ablauf der Zertifizierung
Tipp: Berücksichtigen Sie den Weg der Bank zur Zertifizierungsstelle, die Prüfung des Identitätsnachweises, das Verschlüsseln des Zertifikats und wie Karl schließlich den Schlüssel entnimmt.
Aufgabe 3: Angriffsszenario auf Zertifikate (Lerngruppe)

Spike möchte nicht aufgeben und denkt sich das folgende Szenario aus.

Spikes Angriffsszenario auf Zertifikate
Angriff durch Spike

Analysieren Sie die Abbildung und diskutieren Sie, was Spike vorhat und ob seine Ideen erfolgreich sein können.

🎉 Ausgezeichnet – Alle Aufgaben abgeschlossen!

Sie haben alle Aufgaben bearbeitet und abgehakt. Vergleichen Sie Ihre Ergebnisse nun mit der Musterlösung und Zusammenfassung.

Hashfunktionen für digitale Signaturen

Funktionsweise und Ablauf einer digitalen Signatur mit Hashfunktion
Ablauf der Erstellung und Verifizierung einer digitalen Signatur

Im Folgenden betrachten wir ein konkretes Verfahren, eine Nachricht digital mit einer sogenannten Hashfunktion zu signieren, um eine Authentifikation zu ermöglichen.

Ein Beispiel für eine vereinfachte Variante der digitalen Signatur mit einer Hashfunktion ist:

Schritt Beschreibung Beispiel
1 Die Hashfunktion überführt jedes Zeichen der Nachricht in seinen Unicode-Wert, also seinen ASCII-Code als Dezimalwert, summiert die Werte auf und berechnet zum Schluss den Rest beim Teilen dieser Summe durch 26. Das Ergebnis soll unser Hashwert h sein. Die Nachricht sei "ABC".
A hat den ASCII-Wert 65, B 66 und C 67. Dann ist die Summe: 65 + 66 + 67 = 198.
198 mod 26 = 16.
Der Hashwert ist somit h = 16.
2 Zum Ver- und Entschlüsseln des Hashwertes wird ein, wie in Aufgabe 1 zum asymmetrischen Schlüsseltausch, erstellter gemeinsamer Schlüssel k verwendet. Dieser wird zu h addiert. Danach wird die Summe wieder modulo 26 gerechnet. Der gemeinsame asymmetrische Schlüssel sei 19.
Da h = 16, ist h + k = 35.
35 mod 26 = 9.
3 Die digitale Signatur ist der Buchstabe im Alphabet, der an der Stelle (k + h) mod 26, beginnend mit 0 für 'A', ist. Ist zum Beispiel (k + h) mod 26 = 4, so ist die digitale Signatur das 'E'. Hier ist (h + k) mod 26 = 9, also ist die digitale Signatur in unserem Beispiel 'J'.
4 Die digitale Signatur wird an die eigentliche Nachricht angehängt. Die Nachricht, inklusive der digitalen Signatur, ist für unser Beispiel: "ABCJ".
5 Nun kann die Nachricht übertragen werden.
Ihr Bearbeitungsfortschritt: 0%
Aufgabe 1: Erstellung und Überprüfung digitaler Signaturen (Partnerarbeit)

Erstellen Sie nach dem Verfahren zum asymmetrischen Schlüsseltausch aus Aufgabe 1 einen gemeinsamen Schlüssel k.

Erstellen Sie jeweils für eine selbstgewählte Nachricht mit zwei Wörtern eine nach dem obigen Verfahren gebildete digitale Signatur.

Tipp zur Durchführung:
  1. Schlagen Sie die ASCII-Werte aller Buchstaben Ihrer Nachricht nach und addieren Sie diese.
  2. Berechnen Sie Summe mod 26, um den Hashwert h zu erhalten.
  3. Addieren Sie Ihren gemeinsamen Schlüssel k und berechnen Sie erneut (h + k) mod 26.
  4. Ordnen Sie das Ergebnis dem entsprechenden Buchstaben im Alphabet zu (0 = A, 1 = B, ...) und hängen Sie ihn an Ihre Nachricht an.

Entwickeln Sie gemeinsam die einzelnen Schritte eines Verfahrens, mit welchem eine nach dem obigen Verfahren gebildete digitale Signatur überprüft werden kann. Hier sollten Sie sich überlegen, wie Sie als Empfängerin oder Empfänger einer Nachricht der anderen Person diese so überprüfen können, dass sicher ist, dass die Nachricht von dieser Person stammt.

Tauschen Sie Ihre Ergebnisse aus Aufgabenteil b) aus und testen Sie Ihr Verfahren an dieser Nachricht.

Aufgabe 2: Sicherheitsanalyse & Kriterien von Hashfunktionen (Partnerarbeit)

Eine Überweisung soll getätigt werden. Damit die Bank und ein Kunde bzw. eine Kundin authentifiziert werden können, wird für die digitale Signatur unser Verfahren genutzt.

Erstellen Sie eine digitale Signatur für den eingezahlten Betrag "TAUSENDEINHUNDERT" mit dem gemeinsamen Schlüssel k = 17.

ASCII-Werte zur Unterstützung:
T=84, A=65, U=85, S=83, E=69, N=78, D=68, I=73, H=72, R=82

Ein Angreifer fängt die Nachricht ab und ändert den eigentlichen Nachrichtenteil zu "EINHUNDERTTAUSEND".

Analysieren Sie anhand des obigen Beispiels die Sicherheit unserer digitalen Signatur. Entwickeln Sie eine mögliche Verbesserung unseres Verfahrens.

Hashfunktionen sollten drei wesentliche Kriterien erfüllen:

  1. Geringe Wahrscheinlichkeit von Kollisionen der Hashwerte für die Eingabewerte: Verschiedene Eingaben liefern nur sehr selten den gleichen Hashwert (Kollision).
  2. Surjektivität: Jeder Hashwert im definierten Wertebereich, also alle Werte, die theoretisch als Funktionswert der Hashfunktion vorkommen können, soll auch tatsächlich vorkommen können.
  3. Effizienz: Die Funktion muss schnell berechenbar sein, ohne großen Speicherverbrauch auskommen und sollte die Eingabewerte möglichst nur einmal lesen müssen.

Entscheiden Sie, welche Kriterien die gegebene Hashfunktion aus unserem Verfahren erfüllt und welche nicht.

Entwickeln Sie eine Operation digitalSignieren(String n, int k) in Form eines Struktogramms, welche das Signieren einer übergebenen Zeichenkette n mit einem übergebenen Schlüssel k wie weiter oben beschrieben durchführt und die signierte Zeichenkette zurückgibt. Sie können eventuelle Verbesserungen aus Aufgabenteil b) integrieren.

Entwickeln Sie eine Operation pruefeDigitaleSignatur(String n, int k) in Form eines Struktogramms, welche die Überprüfung der digitalen Signatur einer übergebenen Zeichenkette n mit einem übergebenen Schlüssel k durchführt und true zurückgibt, wenn die Authentizität verifiziert wurde, ansonsten false.

Implementieren Sie die Algorithmen aus den Aufgabenteilen d) und e) im Programm CryptoClass und testen Sie diese.

🎉 Ausgezeichnet – Alle Aufgaben abgeschlossen!

Sie haben alle Aufgaben bearbeitet und abgehakt. Vergleichen Sie Ihre Ergebnisse nun mit der Musterlösung.