Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m183:learningunits:lu05:aufgaben:06 [2025/08/13 09:59] – angelegt vdemir | modul:m183:learningunits:lu05:aufgaben:06 [2025/08/13 11:04] (aktuell) – vdemir | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
==== Lernziele ==== | ==== Lernziele ==== | ||
- | * ??? | + | * Ich kann den Cäsar-Algorithmus mittels einer Programmiersprache umsetzten. |
==== Rahmenbedingungen ==== | ==== Rahmenbedingungen ==== | ||
- | * **Zeitbudget: | + | * **Zeitbudget: |
* **Sozialform: | * **Sozialform: | ||
- | * **Hilfsmittel: | + | * **Hilfsmittel: |
- | * **Erwartetes Ergebnis: | + | * Lernvideo [[https:// |
+ | * Programmierumgebung | ||
+ | * Codeeditor Ihrer Wahl | ||
+ | * Programmiersprachen: | ||
+ | * <color # | ||
+ | * **Erwartetes Ergebnis: | ||
==== Ausgangslage ==== | ==== Ausgangslage ==== | ||
- | Das RSA-Verschlüsselungsverfahren | + | Die Cäsar-Verschlüsselung |
==== Arbeitsauftrag ==== | ==== Arbeitsauftrag ==== | ||
- | * **Schlüsselgenerierung: | + | Schreiben |
- | - Wählen | + | |
- | - Berechnen Sie das Produkt '' | + | |
- | - Ermitteln Sie die totient Funktion '' | + | |
- | - Wählen Sie eine ganze Zahl '' | + | |
- | - Berechnen Sie den privaten Exponenten '' | + | |
- | + | ||
- | * **Öffentlicher Schlüssel (Public Key):** Der öffentliche Schlüssel besteht aus dem Paar '' | + | |
- | * **Privater Schlüssel (Private Key):** Der private Schlüssel besteht aus dem Paar '' | + | |
- | + | ||
- | * **Verschlüsselung: | + | |
- | - Verschlüsseln Sie die Nachricht | + | |
- | + | ||
- | * **Entschlüsselung: | + | |
- | - Entschlüsseln Sie den Chiffretext '' | + | |
- | + | ||
- | * **Verifikation: | + | |
- | - Überprüfen Sie, dass der entschlüsselte Text mit der ursprünglichen Nachricht '' | + | |
- | ==== Verwenden eines Simulators ==== | + | |
- | Verwenden Sie CrypTools um die Schritte zu veranschaulichen: | + | |
- | ==== Theorie: Berechnung von Kongruenzen ==== | + | |
- | Um die Kongruenz '' | + | |
- | + | ||
- | * **Modulo-Operation durchführen: | + | |
- | - Berechnen Sie den Rest der Division von '' | + | |
- | - Berechnen Sie den Rest der Division von '' | + | |
- | + | ||
- | * **Vergleich der Reste:** | + | |
- | - Wenn die Reste gleich sind, d.h., '' | + | |
- | + | ||
- | **Beispiel: | + | |
- | - Um '' | + | |
- | + | ||
- | + | ||
- | ==== Theorie: Sicherheit des RSA-Algorithmus ==== | + | |
- | Die Sicherheit des RSA-Algorithmus basiert nicht auf der Schwierigkeit der Kongruenzberechnung, | + | |
- | + | ||
- | * **Faktorisierungsproblem: | + | |
- | - Im RSA-Algorithmus wird das Produkt zweier großer Primzahlen '' | + | |
- | - Der private Schlüssel '' | + | |
- | - Das Problem der RSA-Sicherheit basiert auf der Schwierigkeit, | + | |
- | + | ||
- | * **Kongruenzberechnung im RSA:** | + | |
- | - Die Kongruenzberechnung kommt ins Spiel, wenn Nachrichten verschlüsselt oder entschlüsselt | + | |
- | Zusammenfassend beruht die Sicherheit des RSA-Algorithmus auf der Schwierigkeit, große Zahlen | + | **Anforderungen: |
+ | | ||
+ | * vom Benutzer eine Nachricht (Text) einlesen. | ||
+ | * vom Benutzer einen ganzzahligen Schlüssel (Shift) zwischen 1 und 25 einlesen. | ||
+ | * Gross- und Kleinbuchstaben getrennt verarbeiten (A–Z, a–z), alle anderen Zeichen unverändert lassen. | ||
+ | - Implementieren Sie zwei Funktionen: | ||
+ | * verschluesseln(text, | ||
+ | * entschluesseln(text, | ||
+ | - Das Programm soll den verschlüsselten Text ausgeben, dann den entschlüsselten Text, um zu zeigen, dass die ursprüngliche Nachricht wiederhergestellt wird | ||
+ | |||
+ | ** Beispiel: | ||
+ | Eingabe: | ||
+ | Shift: | ||
+ | Verschlüsselt: | ||
+ | Entschlüsselt: | ||
+ | |||
+ | **Hinweis** | ||
+ | * Den Shift bekommen Sie hin, wenn Sie mit den Ordinalzahlen (Codewerte | ||
+ | * Codiert wird einfach, indem der Ordinalzahl ein Shift addiert wird. | ||
+ | * Bei Dekodieren wird einfach | ||
===== Solution ===== | ===== Solution ===== | ||
- | [[modul: | + | [[modul: |