next up previous contents
Nächste Seite: Hash-Funktionen Aufwärts: Verschlüsseln und Entschlüsseln von Vorherige Seite: Klartext mit dem Vigenère   Inhalt

Einen Chiffretext mit dem Vigenère-Verfahren entschlüsseln

Ist das Schlüsselwort bekann, so kann eine Vigenère - Chiffre sehr einfach in den Klartext umgesetzt werden:

import java.io.*;

public class devigenere1 {
    ...

    public static void entschluessle (String s) {
        geheim = s.getBytes();
        for (int i=0; i<geheim.length; i++, n++) {
            if (geheim[i]>90) geheim[i] = (byte) (geheim[i]-32);
            int k = n % l;
            geheim[i] = (byte)(geheim[i] - geheimwort[k]);
            if (geheim[i] < 65) geheim[i] = (byte) (geheim[i]+26);   
        }
    ...
    }
}

Beachte, dass der Algorithmus zum Entschlüsseln dem Verschlüsselungsalgorithmus bis auf die Rechenoperation geheim[i] = (byte)(geheim[i] - geheimwort[k]); und dem anschließenden Test, ob ein Buchstabe unter der Position von A zu liegen kommt, identisch ist.

Wir wenden diese Klasse auf die Chiffredatei vigeneretext.chf an und schreiben den Klartext in die Textdatei vigeneretext.kla:

alfred@duron:~/java/kurs/krypto> java devigenere1 vigeneretext.chf vigeneretext.kla krypto
89 Zeichen entschluesselt.

Auf diese Weise erhalten wir wieder (bis auf Groß- und Kleinbuchstaben) den ursprünglichen Klartext:

DIESISTEINTESTINFORMATIKISTSCHOENSAGTEININFORMATIKLEHRERUNDLEHRERLUEGENNICHTSAGTDERLEHRER

Da die Vigenère - Methode umso sicherer ist, je länger das verwendete Schlüsselwort ist, sollte ein langes Schlüsselwort beispielsweise in einer weiteren Textdatei (auf sicherem Weg) zwischen dem Absender und dem Empfänger übermittelt werden. Verfahren, die zum Ver- und Entschlüsseln das gleiche (streng geheime) Schlüsselwort verwenden, heißen symmetrische Verschlüsselungsverfahren16.


next up previous contents
Nächste Seite: Hash-Funktionen Aufwärts: Verschlüsseln und Entschlüsseln von Vorherige Seite: Klartext mit dem Vigenère   Inhalt
Alfred Nussbaumer 2003-02-10