Polyalphabetischen Verschlüsselung nach Vigenere

Auf der Basis der Klassen zur monoalphabetischen Verschlüsselung soll eine Klasse zur Versclüsselung nach Vigenere entwickelt werden.

Theoretische Voraussetzungen

  • Programmierung monoalphabetischer Verschlüsselungsverfahren
  • Verschlüsselung nach Vigenere
  • Beziehnungen zwischen Klassen (Vererbung)
  • UML-Klassendiagramme

Software

  • BlueJ
  • [ UML-Tool, z. B. Jumli ]

Prinzip der polyalphabetischen Verschlüsselung

Die polyalphabetische Verschlüsselung nach Vigenere stellt eine Verbesserung der Cäsar-Verschlüsselung dar. Über einen Schlüssel key wird festgelegt, welches von 26 Geheimtextalphabeten zur Bearbeitung der verschiedenen Klartextzeichen genutzt wird. Die Verschlüsselung / Entschlüsselung erfolgt nach dem Vorbild des Cäsar-Chiffres.

Daraus ergibt sich, dass die Objekte der Klasse Vigenere die Klasse Caesar mit nutzen. Sie müssen jedoch für jedes Klartextzeichen ein neues Geheimtextalphabet setzen.

Somit ist die Klasse Caesar um eine Methode setgta zu erweitern.

Erweitern Sie die Klasse Caesar um eine öffentliche Mutator-Methode setgta (String key)!

Erweitern Sie das Klassendiagramm um eine Klasse Vigenere!
Ordnen Sie der Klasse Attribute und Methoden zu und setzen die Typen und Zugriffsrechte.
Stellen Sie die Beziehungen zwischen den Klassen Vigenere und Caesar her.

Importieren Sie die Klasse Vigenere in Ihr Kryptoprojekt.

Umsetzung der Methode encrypt

Gegeben ist der folgende Algorithmus für die Methode encrypt:

 

Arbeiten Sie die Methode encrypt mit den Parametern key = "bis" und zeile="bald" ab!
Übersetzen Sie die Methode encrypt in Java und implementieren Sie diese in der Klasse Vigenere!
Implementieren Sie die Methode decrypt in der Klasse Vigenere.