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.