Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m183:learningunits:lu05:aufgaben:06 [2025/08/13 09:59] – angelegt vdemirmodul: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:** 45 Minuten+  * **Zeitbudget:** 40 Minuten
   * **Sozialform:** Einzelarbeit   * **Sozialform:** Einzelarbeit
-  * **Hilfsmittel:** Taschenrechner oder Computer mit Zugriff auf eine Programmierumgebung +  * **Hilfsmittel:** 
-  * **Erwartetes Ergebnis:** Ausgefülltes Arbeitsblatt mit Ihren Berechnungen und Erklärungen+    * Lernvideo [[https://studyflix.de/informatik/caesar-verschlusselung-1606|Studyflix: Cäsar-Verschlüsselung]] 
 +    * Programmierumgebung 
 +    * Codeeditor Ihrer Wahl 
 +    * Programmiersprachen: JS, Python, BASH, SHELL, ... 
 +    * <color #ed1c24>Keine AI oder Google-Suchen →  Sie haben genug Programmierkenntnisse, um den Algorithmus selbst zu programmieren.</color> 
 +  * **Erwartetes Ergebnis:** Script, das eine Cäsar-Verschlüsselung realisiert. In beide Richtungen: Klartext → Chiffretext, Chiffretext → Klartext.
  
 ==== Ausgangslage ==== ==== Ausgangslage ====
-Das RSA-Verschlüsselungsverfahren ist ein weit verbreitetes asymmetrisches Kryptosystemdas für sichere Datenübertragungen verwendet wird.+Die Cäsar-Verschlüsselung ist eine alteaber wegen seiner Einfachheit, robuste Methode Nachrichten zu verschleiern. Der grosse Vorteil liegt darin, dass er mit wenig Ressourcen und KnowH-How auskommt.
  
 ==== Arbeitsauftrag ==== ==== Arbeitsauftrag ====
-  * **Schlüsselgenerierung:** +Schreiben Sie ein Script bzwProgramm, das eine Nachricht mit Hilfe der Cäsar-Verschlüsselung verschlüsselt und entschlüsselt.
-    - Wählen Sie zwei unterschiedliche Primzahlen ''p'' und ''q''. +
-    - Berechnen Sie das Produkt ''n = p * q'', welches als Modulus für die Schlüssel dient. +
-    - Ermitteln Sie die totient Funktion ''ϕ(n) = (p-1)(q-1)''+
-    - Wählen Sie eine ganze Zahl ''e'', die zu ''ϕ(n)'' teilerfremd ist und kleiner als ''ϕ(n)'' ist. +
-    - Berechnen Sie den privaten Exponenten ''d'', sodass ''e * d ≡ 1 (mod ϕ(n))''+
- +
-  * **Öffentlicher Schlüssel (Public Key):** Der öffentliche Schlüssel besteht aus dem Paar ''(n, e)''+
-  * **Privater Schlüssel (Private Key):** Der private Schlüssel besteht aus dem Paar ''(n, d)''+
- +
-  * **Verschlüsselung:** +
-    - Verschlüsseln Sie die Nachricht ''m = 123'', indem Sie ''c = m^e mod n'' berechnen. Verwenden Sie dafür den öffentlichen Schlüssel. +
- +
-  * **Entschlüsselung:** +
-    - Entschlüsseln Sie den Chiffretext ''c'', indem Sie ''m = c^d mod n'' berechnen. Verwenden Sie dafür den privaten Schlüssel. +
- +
-  * **Verifikation:** +
-    - Überprüfen Sie, dass der entschlüsselte Text mit der ursprünglichen Nachricht ''m'' übereinstimmt. +
-==== Verwenden eines Simulators ==== +
-Verwenden Sie CrypTools um die Schritte zu veranschaulichen: [[https://www.cryptool.org/en/cto/rsa-step-by-step]] +
-==== Theorie: Berechnung von Kongruenzen ==== +
-Um die Kongruenz ''a ≡ b (mod m)'' zu berechnen, folgen Sie diesen Schritten: +
- +
-  * **Modulo-Operation durchführen:** +
-    - Berechnen Sie den Rest der Division von ''a'' durch ''m'', bezeichnet als ''a mod m''+
-    - Berechnen Sie den Rest der Division von ''b'' durch ''m'', bezeichnet als ''b mod m''+
- +
-  * **Vergleich der Reste:** +
-    - Wenn die Reste gleich sind, d.h., ''a mod m'' ist gleich ''b mod m'', dann gilt die Kongruenz ''a ≡ b (mod m)''+
- +
-**Beispiel:** +
-- Um ''17 ≡ x (mod 5)'' zu berechnen, bestimmen Sie den Rest von 17 geteilt durch 5. Da ''17 mod 5 = 2'', suchen Sie nach einem Wert von ''x'', der ebenfalls einen Rest von 2 ergibt, wenn er durch 5 geteilt wird. Jede Zahl, die um ein Vielfaches von 5 plus 2 ist (z.B. 7, 12, 22, ...), würde diese Bedingung erfüllen. +
- +
- +
-==== Theorie: Sicherheit des RSA-Algorithmus ==== +
-Die Sicherheit des RSA-Algorithmus basiert nicht auf der Schwierigkeit der Kongruenzberechnung, sondern auf dem Problem der Faktorisierung großer Zahlen. +
- +
-  * **Faktorisierungsproblem:** +
-    - Im RSA-Algorithmus wird das Produkt zweier großer Primzahlen ''p'' und ''q'' verwendet, um ''n = p × q'' zu bilden. Der öffentliche Schlüssel enthält ''n'' und einen Exponenten ''e'', während der private Schlüssel aus einem anderen Exponenten ''d'' besteht. +
-    - Der private Schlüssel ''d'' wird durch die Berechnung von ''e^{-1} mod φ(n)'' ermittelt, wobei ''φ(n) = (p-1) × (q-1)''. Um ''φ(n)'' zu berechnen, muss man ''n'' faktorisieren. +
-    - Das Problem der RSA-Sicherheit basiert auf der Schwierigkeit, eine große Zahl ''n'' in ihre Primfaktoren ''p'' und ''q'' zu zerlegen. Für große Zahlen wird dies extrem schwierig und zeitaufwändig, selbst mit leistungsfähigen Computern. +
- +
-  * **Kongruenzberechnung im RSA:** +
-    - Die Kongruenzberechnung kommt ins Spiel, wenn Nachrichten verschlüsselt oder entschlüsselt werden (z.B. ''c = m^e mod n'' für die Verschlüsselung und ''m = c^d mod n'' für die Entschlüsselung). Diese Operationen sind selbst für sehr große Zahlen effizient durchführbar.+
  
-Zusammenfassend beruht die Sicherheit des RSA-Algorithmus auf der Schwierigkeitgroße Zahlen zu faktorisierennicht auf der Schwierigkeit der KongruenzberechnungDie Komplexität und Sicherheit des RSA-Algorithmus erhöht sich mit der Länge der verwendeten Schlüssel.+**Anforderungen:** 
 +  Das Programm soll 
 +    * vom Benutzer eine Nachricht (Text) einlesen. 
 +    * vom Benutzer einen ganzzahligen Schlüssel (Shift) zwischen 1 und 25 einlesen. 
 +    * Gross- und Kleinbuchstaben getrennt verarbeiten (A–Za–z), alle anderen Zeichen unverändert lassen. 
 +  - Implementieren Sie zwei Funktionen: 
 +    * verschluesseln(text, shift) → gibt den verschlüsselten Text zurück 
 +    * entschluesseln(text, shift) → gibt den entschlüsselten Text zurück 
 +  - Das Programm soll den verschlüsselten Text ausgeben, dann den entschlüsselten Text, um zu zeigendass die ursprüngliche Nachricht wiederhergestellt wird 
 +  
 +** Beispiel:** 
 +  Eingabe:  Hallo Welt 
 +  Shift:    3 
 +  Verschlüsselt:  Kdoor Zhow 
 +  Entschlüsselt:  Hallo Welt 
 +   
 +**Hinweis** 
 +  * Den Shift bekommen Sie hin, wenn Sie mit den Ordinalzahlen (Codewerte der Zeichen arbeiten). 
 +  * Codiert wird einfach, indem der Ordinalzahl ein Shift addiert wird. 
 +  * Bei Dekodieren wird einfach der Ordinalzahl der Shift abgezogen.
  
  
 ===== Solution ===== ===== Solution =====
-[[modul:m183:learningunits:lu05:loesungen:05|Lösung]]+[[modul:m183:learningunits:lu05:loesungen:06|Lösung]]
  
  
  • modul/m183/learningunits/lu05/aufgaben/06.1755071981.txt.gz
  • Zuletzt geändert: 2025/08/13 09:59
  • von vdemir