lehrkraefte:blc:informatik:glf22:caesar

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
lehrkraefte:blc:informatik:glf22:caesar [2022/10/28 08:19]
Ivo Blöchliger [Einfachste Version]
lehrkraefte:blc:informatik:glf22:caesar [2022/11/04 09:09]
Ivo Blöchliger [Flexiblere Variante mit Kommandozeilenargumenten]
Line 11: Line 11:
   * $r=$"" (leerer Text)   * $r=$"" (leerer Text)
   * Für jeden Buchstaben $b$ im Text $t$:   * Für jeden Buchstaben $b$ im Text $t$:
-    * Wenn $b$ ein Grossbuchstabe ist, sei $b$ der entsprechende Kleinbuchstaben+    * Wenn $b$ ein Grossbuchstabe ist, sei $b$ der entsprechende Kleinbuchstabe
     * Wenn $b$ ein Kleinbuchstabe ist:     * Wenn $b$ ein Kleinbuchstabe ist:
-      * Verschiebe $b$ um $k$ Position im Alphabet+      * Verschiebe $b$ um $k$ Positionen im Alphabet
     * Hänge $b$ hinten an $r$ an.     * Hänge $b$ hinten an $r$ an.
   * Das Resultat ist $r$.   * Das Resultat ist $r$.
Line 136: Line 136:
 parser.add_argument('-i', '--infile', type=str, help="Optional: Datei, wovon gelesen werden soll.") parser.add_argument('-i', '--infile', type=str, help="Optional: Datei, wovon gelesen werden soll.")
 parser.add_argument('-o', '--outfile', type=str, help="Optional: Datei, wohin das Resultat geschrieben werden soll.") parser.add_argument('-o', '--outfile', type=str, help="Optional: Datei, wohin das Resultat geschrieben werden soll.")
-parser.add_argument('-f', '--force', action="store_true", help="Output-Datei wird überschreiben, falls sie schon existiert");+parser.add_argument('-f', '--force', action="store_true", help="Output-Datei wird überschrieben, falls sie schon existiert");
  
 # Auswerten # Auswerten
Line 196: Line 196:
 </WRAP> </WRAP>
  
 +<WRAP todo>
 +Knacken Sie folgenden Text:
 +<code txt>
 +bliqvkvokvfyevrsjkrveuvjzeujtynzvizxviqlviirkve
 +</code>
 +<hidden Lösung auf der Kommandozeile>\
 +In diesem Beispiel ist der verschlüsselte Text in der Datei ''humpfdidumpf.txt'' gespeichert.
 +<code bash>
 +for a in `seq 1 25`; do  echo $a; python caesar3.py -k $a -i humpfdidumpf.txt; done
 +</code>
 +</hidden>
 +</WRAP>
  
 <WRAP todo> <WRAP todo>
Line 207: Line 219:
 **Sehr anspruchsvolle Aufgabe** **Sehr anspruchsvolle Aufgabe**
  
-Programmieren Sie ein Programm (erst mal als Pseudocode), das beliebige deutsche verschleierte Texte automatisch entschlüsselt.+Entwerfen Sie eine Methode (erst mal als Pseudocode), das beliebige deutsche verschleierte Texte automatisch entschlüsselt (bzw. den wahrscheinlichsten Schlüssel findet). 
 + 
 +<hidden Hilfe> 
 + * https://de.wikipedia.org/wiki/Buchstabenh%C3%A4ufigkeit 
 + * http://www.mathe.tu-freiberg.de/~hebisch/cafe/kryptographie/bigramme.html 
 +</hidden>
 </WRAP> </WRAP>
  
 +
 +==== Entschlüsseln ====
 +Laden Sie beide Dateien herunter: {{lehrkraefte:blc:informatik:glf22:decryptor.py}} {{lehrkraefte:blc:informatik:glf22:bigramme.py}}
  • lehrkraefte/blc/informatik/glf22/caesar.txt
  • Last modified: 2022/11/04 09:10
  • by Ivo Blöchliger