Um mit der einfachsten anzufangen, haben als erstes die Caesar Verschlüsselung behandelt. Diese ist eine sogenannte monoalphabetische, symmetrische Verschlüsselung, die schon die Römer benutzten. Diese Chiffrierung ist deshalb so einfach, weil man ganz normal von unserem Alphabet mit 26 Buchstaben ausgeht, dann ein zweites darüber legt und dies um eine gewisse Anzahl verschiebt. So ergibt sich für jeden originalen Buchstaben ein neuer, bei der Verschlüsselung wird einfach jeder Buchstabe mit dem neuen ersetzt. Um die Verschiebung festzulegen, definiert man zuerst einen Schlüssel in Buchstabenform. Dieser Schlüsselbuchstabe gilt dann im neuen Alphabet als A.
Wenn man nun also das Wort HALLO mit dem Schlüssel C verschlüsselt sieht das ganze so aus:
Schlüssel C --> C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
H --> J A--> C L --> N O --> Q
= JCNNQ
Es wird schnell klar, warum diese Verschlüsselung so simpel ist. Unsere Aufgabe war es nun, in BlueJ ein Programm zu schreiben, mit dem man beliebige Wörter mit der Caesar Verschlüsselung verschlüsseln kann.
Das Prinzip hinter solch einem Programm ist recht simpel, trotzdem haben wir einige Zeit gebraucht, bis wir es hin bekommen haben. Man braucht Methoden zur Eingabe des Originaltextes, zur Eingabe des Schlüssels, zum Chiffrieren, sowie zur Ausgabe des Verschlüsselten Textes.
Das Prinzip beim Chiffrieren ist sehr einfach: Man nimmt den jeweiligen Buchstaben mit seiner ASCII-Code Zahl, subtrahiert 65 um die normalen Alphabet-Zahlen zu haben (0=A, 25=Z) rechnet dann den jeweiligen Schlüssel dazu und addiert wieder 65. Weil das Alphabet ja nach Z wieder bei A beginnt, muss man sein Ergebnis vor der Addition von 65 durch 26 teilen, der Rest ist dann der verschlüsselte Buchstabe. Die Rechenweise dafür heißt Modulo und wird durch ein Prozentzeichen dargestellt.
Nun zur Programmierung:
Ganz zu Beginn wird die Klasse beschrieben, anschließend werden die Variablen definiert. Dann folgt die erste Methode "setzeOriginal". Mit dieser Methode gibt man den originalen, unverschlüsselten Text als String ein, der automatisch in reine Großbuchstaben umgewandelt wird.
In der nächsten Methode setzt man nach dem gleichen Prinzip den Schlüssel, allerdings als Einzelbuchstabe, also Char.
Dannach folgt das gleiche für die Eingabe des Verschlüsselten Textes, denn diesem Programm kann sowahl ver- als auch entschlüsseln.
Die erste Methode hier zeigt den verschlüsselten Text an, darauf folgende den entschlüsselten.
Die dritte Methode funktioniert ähnlich wie die letze, die beiden sind zum umwandeln der Buchstaben jeweils von original zu verschlüsselt und andersrum da. Dabei wird genau so vorgegangen, wie ich es oben bereits beschrieben habe.
Mit diesen zwei Methoden werden mit Hilfe von Schleifen jeweils die ganze Worte chiffriert bzw dechiffriert. Buchstabe für Buchstabe wird mit der Methode aus dem vorherigen Bild "umgewandelt" und dann wieder an das Wort gehängt.
Will man nun mit diesem Programm einen Text verschlüsseln:
1. gibt man seinen Text mit der Methode setzeOriginal ein
2. setzt dann den Schlüssel mit der Methode setzeSchlüssel
3. chiffiert anschließend mit der Methode chiffriere
4. und lässt sich zuletzt den verschlüsselten Text mit der Methode gibVerschluesseltes anzeigen.
Keine Kommentare:
Kommentar veröffentlichen