def erzeugeSchluessel(schluesselwort):
    schluessel=""
    schluesselwort = schluesselwort.upper()
    for i in range(len(schluesselwort)):
        if istIn(schluesselwort[i], schluessel):
            pass
        else:
            schluessel=schluessel+schluesselwort[i]
        for i in range(26):
        zeichen=chr((25-i)+65)
        if istIn(zeichen,schluessel):
            pass
        else:
            schluessel = schluessel + zeichen
    return schluessel

Substitutionschiffren: ZYX-Verfahren

Cäsarchiffren sind sehr leicht angreifbar, weil die Zuordnung von Klar- und Geheimzeichen sehr regelmäßig ist. Wesentlich besser wäre es, eine mehr oder weniger unregelmäßige Vertauschung zu verwenden, beispielsweise

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BKLZNGJOPQFAUVWMCDEXYRSTHI

Erstens ist die Anzahl der Möglichkeiten viel höher, und zweitens kann man mit ein paar Zeichen nicht sofort den ganzen Text lesbar machen. Leider lässt sich der Schlüssel, besonders bei Zufallsverteilungen, nicht sehr gut merken oder übermitteln. Als Kompromisslösung zur Erzeugung eines Schlüsselalphabets haben wir uns das ZYX-Verfahren ausgedacht.

Das Arbeitsblatt beginnt mit einer Wiederholung von Programmstrukturen und Struktogrammen, im zweiten Teil geht es dann um Umsetzung des ZYX-Verfahrens in python.

Ausprobieren kann man das Verfahren hier:


mit dem Schlüsselwort

Wie bei der Cäsar-Chiffre ist der nächste Schritt das Knacken der Verschlüsselung auch ohne den Schlüssel.