MezData-Logo

SecretBox

Geheimnis-Box

Eine Geheimnis-Box soll entwickelt werden:

SecretBox
- key: Text
- info: Text
+SecretBox(k:Text, i:Text)
+getInfo(k:Text):Text
public class SecretBox{
  private String key,info;  // key und info sind nur innerhalb der Klasse zugreifbar
  public SecretBox(String k, String i){ // Konstruktor kann jeder aufrufen
    key = k;
    info = i;
  }
  public String getInfo(String k){  // get-Methode kann jeder aufrufen
    if (key.equals(k)) return info; // wenn key = k
    return "Falscher Schluessel";
  }
}

Ein SecretBox-Objekt hat einen Schlüssel-Text und die geheime Information. Nur wenn der Parameter k bei getInfo(k:Text) mit dem gespeicherten Schlüssel key übereinstimmt wird die Info zurück gegeben.

Implementieren und testen Sie die Klasse.

Caesar-Kryptographie

Um die Information zu schützen soll sie verschlüsselt werden mit der Caesar-Verschlüsselung.
Dabei wir die Information "abba" z.B. um drei Buchstaben verschoben zu "deed"

Entwickeln Sie die Hilfs-Operation vorbereiten(s:Text):Text die in Kleinbuchstagen umwandelt und Umlaute ersetzt als Code und als Struktogramm.

Entwickeln Sie die Hilfs-Operation -caesarCode(s:Text):Text die verschlüsselt (+3 Zeichen) als Code und Struktogramm.

Entwickeln Sie die Hilfs-Operation -caesarDeCode(s:Text):Text die den Text wieder entschlüsselt.

Vorgegebener Code

Quellcode [Verschluesseln/Caesar.java]
//https://de.wikipedia.org/wiki/Caesar-Verschlüsselung
public class Caesar{
  static String testNachricht="Wir müssen zu Fuß gehen";
  static String testNachricht2="wir schreiben eine klassenarbeit";
 
  static String vorbereiten(String s){
    int i;
    String aus="";
    char c;
    s=s.toLowerCase(); // In Kleinbuchstaben umwandeln
    // Umlaute entfernen
    return aus;
  }
  static void test(){
    String verschl,aus;
    System.out.println(vorbereiten(testNachricht));
    verschl=caesarCode(testNachricht2,13);
    aus=caesarDeCode(verschl,13);
    System.out.println(verschl+" "+aus);
  }
  static String caesarCode(String s, int n){
    int i;
    String aus ="";
    // um n verschieben
    return aus;
  }
  static String caesarDeCode(String s, int n){
    int i;
    String aus ="";
    int c;
    // um n zurueckschieben
    return aus;
  }
}
 

Kryptographie mit Umordnung

Kryptographie mit Buch (One-Time-Pad)