Verschlüsseln
+ Notwendigkeit im Kontext Datensicherheit
+ prinzipielle Arbeitsweise der mono- und polyalphabetischen Substitution
+ Vor- und Nachteile der mono- und polyalphabetischen Substitution
+ ein historischer Aspekt (z.B.: Skytale, Maria Stuart, Beale-Chiffre, 2. Weltkrieg)
Quelltext monoalphabetische Verschlüsselung
public class monoalphabetischVerschluesseln
{
static String klaralph = "abcdefghijklmnopqrstuvwxyz";
static String geheimalph = "DEFGHILKJMNOPQRSTUVWXYZABC";
static StringBuffer verschluesseln(String e)
{
int pos;
StringBuffer b = new StringBuffer("");
// Mit der for-Schleife wird die Botschaft durchlaufen.
for (int i = 0; i <= e.length()-1; i = i+1)
{
pos = 0;
if (e.charAt(i)<='z' && e.charAt(i)>='a')
{
pos = klaralph.indexOf(e.charAt(i));
b.append(geheimalph.charAt(pos));
}
else
{
b.append(e.charAt(i));
}
}
return b;
}
/* Entwickeln Sie aus dem Unterprogramm verschluesseln das Unterprogramm
* entschluesseln!
*/
public static void main(String[] args)
{
String botschaft;
StringBuffer geheim;
System.out.println("Monoalphabetische Verschuesselung");
System.out.println("einfach und unsicher!");
System.out.println("Das kostete Maria den Kopf!");
System.out.println("Geben Sie eine kurze Botschaft ein: ");
botschaft = In.readString();
geheim = new StringBuffer("");
geheim = verschluesseln(botschaft);
System.out.println(geheim);
}
}
Übungen:
1 Entwickeln Sie aus dem Unterprogramm verschluesseln das Unterprogramm entschluesseln!
2 Verändern Sie das Programm so, dass das Geheimalphabet eingegeben werden kann!
3 Statten Sie das Programm mit einem Menü aus (1 Geheimalphabet einlesen / 2 Verschlüsseln / 3 Entschlüsseln)!
4 Entwickeln Sie ein Applet!