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!