Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Station - Chiffrierung mit dem Verschiebeverfahren

Das Caesar-Verfahren

Asterix und Caesar

Der römische Staatsmann und Feldherr Julius Caesar (* 100 v. Chr. in Rom; † 44 v. Chr. in Rom) benutzte ein einfaches Verfahren zum Verschlüsseln von Nachrichten. Er ließ jeden Buchstabe durch einen im Alphabet um 3 Einheiten verschobenen Buchstaben ersetzen.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
| | | | | | | | | | | | | | | | | | | | | | | | | |
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Das folgende Beispiel zeigt das Resultat seiner Verschlüsselungsmethode.

S A L V E A S T E R I X
| | | | | | | | | | | | 
V D O Y H D V W H U L A

Aufgabe 1

(a) Entschlüssele die in der Abbildung gezeigte Antwort von Asterix.

(b) Verschlüssele analog eine selbst gewählte Nachricht. Gib sie an deine Nachbarin / deinen Nachbarn weiter. Sie / er soll die verschlüsselte Nachricht dann wieder entschlüsseln.

Das Verschiebeverfahren

Das von Caesar benutzte Chiffrierverfahen wird etwas flexibler, wenn man die Verschiebezahl frei wählen kann. Im folgenden Beispiel wird z.B. die Verschiebezahl 7 benutzt:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
| | | | | | | | | | | | | | | | | | | | | | | | | |
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

Das Verschiebeverfahren lässt sich mit CrypTool 1 ausprobieren.

Mit [Datei][Neu] kann man den zu verschlüsselnden Text eingeben.

Mit [Ver-/Entschlüsseln][Symmetrisch (klassisch)][Caesar / Rot-13...] öffnet sich ein Fenster, in dem man die Verschiebezahl (und weitere Parameter) einstellen kann.

Cryptool

Mit [Verschlüsseln] bzw. [Entschlüsseln] kann man jetzt die gewünschte Chiffrieroperation ausführen.

Aufgabe 2

Gib einen Text (der nur aus Großbuchstaben besteht) ein. Verschlüssele anschließend diesen Text mit einer gewählten Verschiebezahl und speichere den Geheimtext ab. Gib diesen Geheimtext und den benutzten Schlüssel (Verschiebezahl) an deine Nachbarin / deinen Nachbarn zum Entschlüsseln weiter.

Vorbereitung von Texten

Wir werden hier mit Texten arbeiten, die nur aus Großbuchstaben bestehen. Solche Klartexte enthalten insbesondere keine Umlaute, keine Leerzeichen und auch keine Satzzeichen.

Wenn du einen beliebigen Quelltext verschlüsseln möchtest, dann kanst du ihn mit dem folgenden Python-Programm in einen Klartext aus Großbuchstaben umwandeln.

# -*- coding: iso-8859-1 -*-

def bereinigterText(text):

    # klar: beliebige Zeichenkette
    # return: Zeichenkette, die nur aus Grossbuchstaben besteht
    # Beispiel:

    """
    >>> bereinigterText('Wie spät ist es?')
    'WIESPAETISTES'
    """
    
    textNeu = ''
    for zeichen in text:
        if ord(zeichen) >= ord('A') and ord(zeichen) <= ord('Z'):
            # zeichen ist ein Großbuchstabe
            textNeu = textNeu + zeichen
        elif ord(zeichen) >= ord('a') and ord(zeichen) <= ord('z'):
            # zeichen ist ein Kleinbuchstabe
            neuesZeichen = chr(ord(zeichen)-32)
            textNeu = textNeu + neuesZeichen
        elif zeichen == 'Ä' or zeichen == 'ä':
            textNeu = textNeu + 'AE'
        elif zeichen == 'Ö' or zeichen == 'ö':
            textNeu = textNeu + 'OE'
        elif zeichen == 'Ü' or zeichen == 'ü':
            textNeu = textNeu + 'UE'
        elif zeichen == 'ß':
            textNeu = textNeu + 'SS'
    return textNeu

def textAusDatei(dateiname):

    # dateiname: Name der Datei
    # return: Inhalt der Datei als Zeichenkette
    
    datei = open(dateiname, 'r', encoding='iso-8859-1')
    text = datei.read()
    datei.close()
    return text

def textInDateiSpeichern(dateiname, text):

    # dateiname: Name der Datei
    # text: Zeichenkette, die abgespeichert werden soll
    
    datei = open(dateiname, 'w', encoding='iso-8859-1')
    datei.write(text)
    datei.close()

# Test
quelltext = textAusDatei('test.txt')
print(quelltext)
klartext = bereinigterText(quelltext)
print(klartext)
textInDateiSpeichern('test_klar.txt', klartext)

Aufgabe 3

Benutze das Python-Programm zur Vorbereitung eines beliebigen Quelltextes. Beachte, dass der Quelltext in der richtigen Codierung (hier: iso-8859-1) abgespeichert ist. Benutze anschließend CrypTool, um den Text mit dem Verschiebeverfahren zu verschlüsseln.

X

Fehler melden

X

Suche