Monoalphabetische Chiffre

Skip to content

Dies ist ein maschinell übersetzter Text, der Fehler enthalten kann!

Über kryptografische Aufgaben

Diese Aufgaben sind etwas anders strukturiert als die anderen Aufgaben auf Piggy, frage mich etwas, was ihr bevorzugt! 😎

Zuerst wird es einen Abschnitt mit Informationen zu den Themen geben, danach folgen einige Aufgaben!

Die “Level” in dieser Aufgabe sind nicht ganz wie die vorherigen Level, hier sind die Dinge thematisch stärker aufgeteilt.

Spring direkt zu den Aufgaben

Was ist eine “Cipher”?

Hast du jemals den Wunsch gehabt, eine geheime Nachricht an einen Freund zu schreiben, so dass sie von niemand anderem verstanden werden kann? Dann brauchst du eine Cipher, oder Chiffer auf Norwegisch! Eine Chiffer ist einfach eine Methode, die Klartext in “Code” umwandelt, indem Zeichen (oft Buchstaben) durch andere Zeichen ersetzt werden. Das Ergebnis sieht für diejenigen, die nicht wissen, wie der Code funktioniert, wie Unsinn aus. Der Sinn ist, dass nur diejenigen, die den Schlüssel (die Regel zum Ersetzen der Buchstaben) kennen, den Code wieder verständlich machen können. Mit anderen Worten: Chiffer ermöglichen geheime Nachrichten, sei es das Kinderspiel mit Geheimsprachen oder echte Spione, die verschlüsselte Nachrichten senden. 😄

Wussten Sie das?

Das Wort “Chiffre” stammt tatsächlich von einem arabischen Wort: das Wort “sifr”, was “Null” bedeutet. Vielleicht, weil der geheime Code wie nichts (keine Bedeutung!) aussah, wenn die Leute ihn nicht lösen konnten!

Es gibt viele Arten von Chiffren – einige verwenden Zahlen, einige verwenden Symbole, und moderne Datenverschlüsselung verwendet sehr komplizierte Algorithmen. Diese komplizierten Algorithmen erfordern sehr komplizierte Mathematik, also können wir uns zuerst einige einfachere Algorithmen ansehen!

Monoalphabetische Chiffren

Lassen wir uns zunächst einige der einfachsten (und ältesten) Kodemethoden ansehen: monoalphabetische Chiffren.

Monoalphabetisch mag ein schwieriges Wort sein, aber wir können es aufteilen: “mono” bedeutet “eins”, und “alphabetisch” bezieht sich auf das Alphabet.

Also sind monoalphabetische Chiffren Codes, bei denen ein einzelnes “Kryptographie-Alphabet” für die gesamte Nachricht verwendet wird. Das bedeutet, dass jeder Buchstabe im ursprünglichen Text immer durch den gleichen Buchstaben durch die gesamte verschlüsselte Nachricht ersetzt wird.

Zum Beispiel, wenn Sie festgelegt haben, dass A durch X ersetzt werden soll, dann werden alle A-s im Text in X umgewandelt.

Cäsar-Chiffre

Das klassische Beispiel für ein monoalphabetisches Chiffre ist das Cäsar-Chiffre (benannt nach Julius Cäsar). Dies ist im Grunde eine Regel, alle Buchstaben im Alphabet um eine bestimmte Anzahl von Stellen zu “verschieben”. Angeblich verwendete Cäsar selbst eine Verschiebung um 3 Buchstaben in seinen geheimen Nachrichten. Es funktioniert so, dass A zu D wird, B zu E, C zu F und so weiter durch das Alphabet. (Wenn man über Z hinausgeht, beginnt man wieder bei A.) Eine Nachricht wie ABC würde somit mit Cäsars Methode zu DEF werden.

Erwartet niemand eine Nachricht im Caesar-Chiffre?

Ceasar Cipher Meme

Wie das Caesar-Chiffre in der Praxis funktioniert:

  • Wähle einen Schlüssel: Bestimme eine geheime Zahl (z.B. 3), die angibt, wie viele Stellen du jeden Buchstaben verschieben sollst.
  • Ersetze jeden Buchstaben: Für jeden Buchstaben in der ursprünglichen Nachricht, finde den Buchstaben, der so viele Stellen danach im Alphabet liegt (für Schlüssel 3 wird A zu D, B zu E, usw. – denke daran, nach Z wieder zu A zurückzugehen, falls nötig). Eventuell kann man auch Ä, Ö und Å mitnehmen, aber das wird etwas komplizierter.
  • Verschlüsselte Nachricht: Ersetze die Buchstaben und schreibe die neue Nachricht mit den „verschobenen“ Buchstaben. Zupp – du hast einen unleserlichen, geheimen Text, den nur diejenigen verstehen können, die den Schlüssel haben!
  • Um zu entschlüsseln (also die Nachricht wieder lesbar zu machen), macht man einfach die umgekehrte Verschiebung. Wenn du den Schlüssel kennst (z.B. 3), dann ist es genauso einfach, die Nachricht zu lesen, indem du die Buchstaben 3 Schritte im Alphabet zurückbewegst.

Sicherheit?

Diese Codes sind auf Dauer nicht besonders sicher. Da das Muster (die Substitution) fest ist, kann eine Person mit genügend Geduld oder einigen cleveren Tricks die Geheimnis recht einfach aufdecken. Zum Beispiel gibt es nur wenige mögliche Verschiebungen im Caesar-Chiffre, so viele wie das Alphabet, sodass jeder alle ausprobieren kann, bis die Nachricht Sinn ergibt – oder Buchstabenhäufigkeiten nutzen, um sich voranzuschätzen. Mit anderen Worten, vielleicht verwende Caesar-Chiffre nicht für supergeheime Tagebucheinträge oder Staatsgeheimnisse 😉.

Monoalphabetische Chiffren sind eine fantastische Möglichkeit, das Prinzip der Verschlüsselung zu erlernen. Sie sind einfach und zeigen, wie wir eine einfache Regel (einen Schlüssel) verwenden können, um einen verständlichen Text in etwas Mystisches und Unerklärliches – und zurück – zu verwandeln. Also, das nächste Mal, wenn du einem Freund eine geheime Nachricht schicken möchtest, kannst du das Caesar-Chiffre verwenden! Vielleicht könnt ihr eure eigene Variante des Cäsars geheimen Alphabets erstellen? 🔐✨


Aufgaben

Forståelse av krav

  • Les nøye: Gå gjennom alle kravdokumenter og spesifikasjoner.
  • Spørsmål: Still spørsmål om uklarheter.
  • Avklaring: Sørg for at du forstår hva som skal leveres.

Utvikling

  • Planlegging: Lag en detaljert utviklingsplan.
  • Koding: Skriv ren og effektiv kode.
  • Testing: Utfør grundig testing av all kode.

Dokumentasjon

  • Kommentarer: Legg til kommentarer i koden.
  • Brukerhåndbok: Skriv en brukerveiledning.
  • Teknisk dokumentasjon: Lag teknisk dokumentasjon.

Vedlikehold

  • Feilretting: Rett feil raskt og effektivt.
  • Oppdateringer: Implementer oppdateringer og forbedringer.
  • Overvåking: Overvåk systemet for å sikre stabilitet.

Tidsfrister

  • 15. mai 2024: Ferdigstillelse av kravspesifikasjon.
  • 1. juni 2024: Ferdigstillelse av første versjon.
  • 15. juni 2024: Godkjenning av første versjon.
  • 30. juni 2024: Sluttleveranse.

Aufgaben

Verständnis der Anforderungen

  • Gründliches Lesen: Gehen Sie alle Anforderungsdokumente und Spezifikationen durch.
  • Fragen stellen: Stellen Sie Fragen bei Unklarheiten.
  • Klärung: Stellen Sie sicher, dass Sie verstehen, was geliefert werden soll.

Entwicklung

  • Planung: Erstellen Sie einen detaillierten Entwicklungsplan.
  • Programmierung: Schreiben Sie sauberen und effizienten Code.
  • Testen: Führen Sie gründliche Tests aller Codes durch.

Dokumentation

  • Kommentare: Fügen Sie Kommentare im Code hinzu.
  • Benutzerhandbuch: Schreiben Sie eine Benutzeranleitung.
  • Technische Dokumentation: Erstellen Sie technische Dokumentation.

Wartung

  • Fehlerbehebung: Beheben Sie Fehler schnell und effizient.
  • Updates: Implementieren Sie Updates und Verbesserungen.
  • Überwachung: Überwachen Sie das System, um die Stabilität zu gewährleisten.

Fristen

  • 15. Mai 2024: Fertigstellung der Anforderungsspezifikation.
  • 1. Juni 2024: Fertigstellung der ersten Version.
  • 15. Juni 2024: Genehmigung der ersten Version.
  • 30. Juni 2024: Endlieferung.

Programmiersprache?

Wie zuvor, verwende gerne jede beliebige Programmiersprache, die du möchtest! Die Beispiele hier werden in Python sein.

Medium Aufgabe 1.1 - Caesar-Chiffre-Verschlüsselung

Jetzt sollen wir tatsächlich etwas Code schreiben! Wir beginnen einfach mit der Erstellung der Verschlüsselung, basierend auf der Theorie sollte dies recht unkompliziert sein.

Implementieren Sie die Verschlüsselung mit dem Caesar-Chiffre, indem Sie eine Funktion verwenden, die Text und eine Zahl als “Schlüssel” entgegennimmt, also wie viel das Alphabet rotiert werden soll.

Tipps zur Vorgehensweise.
  1. Erstelle eine Funktion namens caesar, die den zu verschlüsselnden Text und einen “Shift” entgegennimmt, also wie viele Stellen im Alphabet der Text verschoben werden soll.
  2. Gehe Buchstabe für Buchstabe durch den Text.
  3. Wir wollen nur andere Zeichen als Buchstaben “verschieben”: finde heraus, wie du überprüfst, ob ein Zeichen im Text ein Buchstabe ist.
  4. Wir sollen den Buchstaben um n Stellen “rotieren”, also wir müssen die Rotation addieren: finde heraus, wie du den Text in eine Zahl umwandeln kannst, damit du den Shift addieren kannst. Hinweis: Die Funktion ord().
  5. Denk daran! Hier erhältst du unterschiedliche Werte, je nachdem, ob du Groß- oder Kleinbuchstaben hast. Beziehe dich auf die ASCII Tabelle.
  6. Nachdem du einen Wert hast, ist es so einfach wie das Addieren von n Werten. Was passiert aber, wenn du am Ende des Alphabets bist? Wir bekommen nur Unsinn nach dem Buchstaben Z. Wie wird das behoben? Das erfordert etwas Nachdenken.
Die Verschlüsselung beheben.

Um die Verschlüsselung vollständig zu beheben, ist etwas Nachdenken erforderlich.

  • Der erste Schritt ist die Verwendung des Modulo-Operators, %.
  • Da das Alphabet (auf Englisch) aus 26 Buchstaben besteht, können wir den Modulo mit 26 nehmen.
  • Aber das funktioniert nicht ganz, siehst du den Grund?
  • Versuche, den Wert eines Zeichens mit ord() auszugeben, was erhältst du?
  • Für a erhältst du 97. Wenn du 26 Modulo davon nimmst, erhältst du 19. Denk daran, dass Modulo immer eine Antwort zwischen 0 und der Zahl gibt.
  • Dies kann behoben werden, indem der Startwert für Groß- und Kleinbuchstaben gespeichert, dieser vom Buchstaben abgezogen und dann der Modulo genommen wird. Dann wird es: (ord(buchstabe) - ord('a')) % 26
  • Um den richtigen Buchstaben zurückzubekommen, addierst du einfach den Startwert wieder hinzu.
  1. Nachdem du all dies getan hast, kannst du die Zahl endlich wieder in einen Buchstaben umwandeln. Hier kannst du die Funktion chr() verwenden.
  2. Jetzt kannst du endlich den Buchstaben zu einem Ergebnis hinzufügen und den verschlüsselten Text zurückgeben!

Lösung:
def caesar_cipher(text, shift):
    result = ""
    for char in text:
        if char.isalpha():
        # finde heraus startpunkt basierend auf Groß- und Kleinschreibung
        start = ord('A') if char.isupper() else ord('a')
        # Die schwierige Shift-Berechnung
        result += chr((ord(char) - start + shift) % 26 + start)
    else:
        result += char
    return result

Easy Aufgabe 1.2 - Caesar-Chiffre Entschlüsselung

Entschlüsselung ist lediglich die umgekehrte Berechnung der Verschlüsselung. Man subtrahiert den Offset anstatt ihn zu addieren.

Hinweise zur Vorgehensweise.

Verwenden Sie die Funktion, die Sie in Aufgabe 1 erstellt haben, für dies. Nehmen Sie einfach dieselbe Funktion, aber in umgekehrter Reihenfolge. Dies können Sie tun, indem Sie 26 - shift umkehren.

Lösung:
def caesar_decrypt(text, shift):
    return caesar_cipher(text, 26 - shift)

Andere Monoalphabetische Chiffren/Ciphers (z.B. Atbash)

Es gibt auch andere monoalphabetische Chiffren! Eine der einfacheren ist die sogenannte “Atbash”-Chiffre.

Wie funktioniert Atbash?

Diese ist sehr einfach, anstatt einer Rotation werden Buchstaben dem umgekehrten Alphabet zugeordnet. Hier ist eine Tabelle, die die Zuordnung zeigt:

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
z y x w v u t s r q p o n m l k j i h g f e d c b a

Medium Aufgabe 1.3 - Atbash Chiffre Verschlüsselung und Entschlüsselung

Das Schöne am Atbash ist, dass da die Verschlüsselung eine 1:1-Transformation ist, die direkt in umgekehrter Richtung funktioniert. Das heißt, wenn Sie die Verschlüsselung erstellt haben, haben Sie auch automatisch die Entschlüsselung erstellt.

Wie kann dies in der Praxis umgesetzt werden?

Sie können entweder den Buchstaben in Bezug auf Z subtrahieren oder eine “Look-up” Tabelle erstellen. Das bedeutet also eine Tabelle oder ein Dictionary, das alle Buchstaben von a bis z und was sie werden sollen, enthält. Dies kann eine gute Lösung sein, wenn Sie eine andere Art von Verschlüsselung erstellen möchten.

Implementierung der Nachschlagetabelle.
letters = {
    'a': 'z'
    'b': 'y'
    'c': 'x'
    'd': 'w'
    # ... füge die restlichen Buchstaben weiter unten hinzu
}

Mit Hilfe dieser Tabelle können Sie Buchstabe für Buchstabe vorgehen, dann den Wert pro Buchstabe aus der Nachschlagetabelle abrufen und ihn ausgeben. Was müssen Sie für Groß- und Kleinbuchstaben tun?


Teil 2 - Kryptoanalyse von Monoalphabetischen Chiffren

In diesem Teil werdet ihr versuchen, einen Algorithmus zu erstellen, um eine Caesar-Chiffre zu “knacken”, also einen verschlüsselten Text zu nehmen und anschließend den ursprünglichen Text ohne Kenntnis des Schlüssels zu erhalten.

Dies kann einigermaßen manuell erfolgen, oder ihr könnt versuchen, eine einfache “Kryptoanalyse” anzuwenden. Dies ist ein Konzept, das wir später genauer betrachten werden, aber für jetzt werden wir uns nur eine der einfachsten Methoden ansehen: Frequenzanalyse (frequency analysis). Du kannst mehr über dieses Konzept hier lesen: Frequency Analysis oder hier Wikipedia - frequency analysis.

Diese Methode kann für mehr als nur Caesar-Chiffren verwendet werden, sie kann auch für komplexere Algorithmen verwendet werden, aber die Caesar-Chiffre ist so einfach, dass die Frequenzanalyse trivial ist.

Wie funktioniert die Häufigkeitsanalyse?

Die Häufigkeitsanalyse ist, wie der Name schon sagt, eine Methode, um die Häufigkeit von Buchstaben in einem Text zu überprüfen. Warum kann das nützlich sein? Stell dir vor, du hast einen langen Text, wir stellen uns einen englischen Text vor, entnommen aus Wikipedia - frequency analysis:

In cryptanalysis, frequency analysis is the study of the frequency of letters or groups of letters in a ciphertext. The method is used as an aid to breaking classical ciphers.

Frequency analysis is based on the fact that, in any given stretch of written language, certain letters and combinations of letters occur with varying frequencies. Moreover, there is a characteristic distribution of letters that is roughly the same for almost all samples of that language. For instance, given a section of English language, E, T, A and O are the most common, while Z, Q, X and J are rare. Likewise, TH, ER, ON, and AN are the most common pairs of letters termed bigrams or digraphs), and SS, EE, TT, and FF are the most common repeats. The nonsense phrase ETAOIN SHRDLU represents the 12 most frequent letters in typical English language text.

In some ciphers, such properties of the natural language plaintext are preserved in the ciphertext, and these patterns have the potential to be exploited in a ciphertext-only attack.

Wenn wir diesen Text nun mit einem Caesar-Chiffre umwandeln (und dabei Kommas, Leerzeichen und andere spezielle Zeichen entfernen), erhalten wir den folgenden Chiffre-Text:

xcrgneipcpanhxhugtfjtcrnpcpanhxhxhiwthijsnduiwtugtfjtcrnduatiitghdgvgdjehduatiitghxcprxewtgitmiiwtbtiwdsxhjhtsphpcpxsidqgtpzxcvraphhxrparxewtghugtfjtcrnpcpanhxhxhqphtsdciwtupriiwpixcpcnvxktchigtirwdulgxiitcapcvjpvtrtgipxcatiitghpcsrdbqxcpixdchduatiitghdrrjglxiwkpgnxcvugtfjtcrxthbdgtdktgiwtgtxhprwpgpritgxhixrsxhigxqjixdcduatiitghiwpixhgdjvwaniwthpbtudgpabdhipaahpbeathduiwpiapcvjpvttudgxchipcrtvxktcphtrixdcdutcvaxhwapcvjpvteapxcitmipgtegthtgktsxciwtrxewtgitmipcsiwthtepiitgchwpktiwteditcixpaidqttmeadxitsxcprxewtgitmidcanpiiprz

Dieser Text sieht ja unmöglich zu “cracken” aus, aber mit Hilfe der “Häufigkeitsanalyse” ist es nicht nur möglich, sondern einfach.

Sieh dir die folgende Figur an:
English frequency distribution

Dies ist eine Figur, die die Buchstabenverteilung im Englischen zeigt. Was wir sehen können, ist, dass der Buchstabe E der häufigste Buchstabe ist, gefolgt von T, A und O.

Dies kann in eine Tabelle umgewandelt und dann verwendet werden, um einen gegebenen Chiffre-Text zu zählen und analysieren und ihn so zu “cracken”. In den Aufgaben unterhalb sollst du ein Programm erstellen, das ein Caesar-Chiffre eigenständig “cracken” kann. Es ist wahr, dass das Caesar-Chiffre so einfach ist, dass du einfach alle 26 Möglichkeiten manuell überprüfen kannst, aber hier sollen wir die Lösung ganz automatisch finden.

Easy Aufgabe 2.1 - Erstellung einer Häufigkeitstabelle

In einer Python-Datei, erstellen Sie eine Häufigkeitstabelle der Buchstaben in der englischen Sprache. Sie können versuchen, diese selbst zu finden, aber wenn Sie das nicht möchten, verstehen wir das!

Wenn Sie es unbedingt selbst herausfinden möchten, können Sie wie in Aufgabe 2.2 vorgehen, aber mit einem sehr großen Text.

Englische Buchstabenhäufigkeit (Die Antwort)
english_letter_frequency = {
    'E': 12.70, 
    'T': 9.06, 
    'A': 8.17, 
    'O': 7.51, 
    'I': 6.97, 
    'N': 6.75, 
    'S': 6.33, 
    'H': 6.09, 
    'R': 5.99, 
    'D': 4.25, 
    'L': 4.03, 
    'C': 2.78, 
    'U': 2.76, 
    'M': 2.41, 
    'W': 2.36, 
    'F': 2.23, 
    'G': 2.02, 
    'Y': 1.97, 
    'P': 1.93, 
    'B': 1.29, 
    'V': 0.98, 
    'K': 0.77, 
    'J': 0.15, 
    'X': 0.15, 
    'Q': 0.10, 
    'Z': 0.07
}

Medium Aufgabe 2.2 - Zählen der Häufigkeit von Buchstaben in Text

Nun wollen wir einen Algorithmus erstellen, der die Häufigkeit von Buchstaben in einem gegebenen Text ermittelt.

Tipps zur Vorgehensweise
  1. Beginnen Sie mit einer Funktion, die einen Text entgegennimmt (kann alles sein).
  2. In der Funktion erstellen Sie ein “Dictionary” (Python Dictionaries), mit Einträgen für jeden Buchstaben des Alphabets, gesetzt auf 0. ({'A' = 0, 'B' = 0, 'C' = 0, ..., 'Z' = 0})
  3. Gehen Sie den gesamten Text durch und zählen Sie jeden einzelnen Buchstaben (erhöhen Sie den entsprechenden Eintrag im Dictionary um 1). Hier sollten Sie Zeichen, die keine Buchstaben sind, wahrscheinlich ignorieren, denken Sie auch an Groß- und Kleinbuchstaben.
  4. Behalten Sie im Auge, wie viele Buchstaben insgesamt gezählt wurden.
  5. Wenn Sie mit dem Zählen fertig sind, teilen Sie / jeden Wert in der Tabelle durch die Länge des Textes und multiplizieren Sie ihn dann mit 100, dies gibt Ihnen eine prozentuale Häufigkeit. (Sie können Ihre Tabelle natürlich auch zwischen 0 und 1 liegen lassen).
  6. Jetzt sollten Sie eine Häufigkeitstabelle für den Text haben.

Medium Aufgabe 2.3 - Vergleichen der Häufigkeit eines Textes mit der tatsächlichen Häufigkeit

Wenn Sie die Häufigkeit aller Buchstaben in dem Text ermittelt haben, können Sie eine Funktion erstellen, die die “Distanz” findet. Hä? Was soll das bedeuten?!

Sie können sich die Häufigkeit von zum Beispiel E in dem Text als eine Zahl vorstellen. Sie können die “Distanz” dieser Zahl zur tatsächlichen Häufigkeit finden, die 12.70 ist. Zum Beispiel: Die Häufigkeit ist 9.63, was ist die Distanz? Die Distanz wird der absolute Wert (negative Zahlen werden positiv) zwischen diesen beiden Werten sein: \(12.70 - 9.63 = 3.07\).

Erstellen Sie eine Funktion, die jeden Buchstaben durchläuft und die Distanz findet. Addieren Sie dann alle Distanzen zu einer “totalen” Distanz.

Mathefunktion?

Wenn Sie sich fragen, wie die Mathefunktion dafür aussieht, so sieht sie so aus:

\(\sum_{n=0}^{N} \lvert a - b\rvert\)

Tipps zur Vorgehensweise
  1. Verwende eine for-Schleife, um die gesamte Frequenztabelle zu durchlaufen.
  2. Für jeden Buchstaben in der Frequenztabelle, finde den Absolutwert im Vergleich zur tatsächlichen Frequenz. Verwende die abs() Funktion in Python dafür.
  3. Addiere alle Werte zusammen, dann erhältst du ein Endergebnis.

Hard Aufgabe 2.4 - “Knacken” eines Caesar-Chiffres

Jetzt sollen wir endlich alles zusammenfügen, was wir bisher gemacht haben! Jetzt sollen wir ein Caesar-Chiffer “knacken”.

Erstelle ein Programm, das ein Caesar-Chiffer “knackt”! Ohne Benutzer-Eingriff soll man eine verschlüsselte Zeichenkette eingeben können, um den entschlüsselten Text ohne einen Schlüssel zu erhalten.

Testdaten

Hier sind einige Testdaten, die Sie verwenden können, was sagen diese?

Testdaten
cqrbvnbbjpnrbjenahbnlancxwnqxynoduuhhxdjanjkuncxmnlxmnrclxvyuncnuhjwmqnanjanbxvnfxamboaxvxdaojexarcnsnmrqnuuxcqnanrcbxenajwjtrwrqjencqnqrpqpaxdwmhxdfnanarpqccqnwnpxcrjcrxwbfnanbqxac
lsaizivxlmwqiwwekimwuymxiwlsvxwsmxqmklxrsxasvoewibtigxihlsaizivmjmxhsiwksshnsf
bmtxymjwjsfdfsxbjwrjxyfsifsizsktqidtzwxjqkqtslqnajymjpnslgfwsfwitmjdtzhtrjrtxyhfwjkzqqdzutsdtzwmtzwynxstbxywzhpybjqajljyymjjytgjikwfshnxhtktwymnxwjqnjkrzhmymfspxynxgnyyjwhtqifsinfrxnhpfymjfwymfajdtzmfivznjylzfwistyfrtzxjxynwwnslbjqqlttisnlmynkdtzitrjjymtwfyntfsirfwhjqqzxymjwnafqxtkrdbfyhmgniymjrrfpjmfxyj
zwkyvivrivrepzuzfkjzekyviffdnzcckyvpgcvrjvjkreulgjrzukyvjritrjkztkvrtyvirwkvircfexjzcvetvfevwivjydreifjvkfyzjwvvkefnkyvedzjkvinypufpfltfejzuvipflijvcwrezuzfkzehlzivukyvkvrtyvinzkyrjevvinvccrtklrccpzufekjrzukyvjkluvekslkzyrkvkfjvvpfljkreuzexlgkyvivrccsppflijvcw
uwwilxchaniuffehiqhfuqmizupcuncihnbylycmhiqusuvyymbiofxvyuvfynizfscnmqchamulyniimguffniayncnmzunfcnnfyvixsizznbyaliohxnbyvyyizwiolmyzfcymuhsqusvywuomyvyymxihnwulyqbunboguhmnbchecmcgjimmcvfysyffiqvfuwesyffiqvfuwesyffiqvfuwesyffiqvfuweiibvfuweuhxsyffiqfynmmbueycnojufcnnfyvullsvlyuezumncmlyuxswigcha

Tipps zur Vorgehensweise
  1. Beginnen Sie mit der Erstellung einer Funktion, die Text entgegennimmt.
  2. Verwenden Sie die Entschlüsselungsfunktion für das Caesar-Chiffrierverfahren mit Rotation N auf dem Text, N beginnt bei 0.
  3. Erstellen Sie eine Häufigkeitstabelle des Ergebnisses
  4. Finden Sie den Abstand des Ergebnisses in Bezug auf die tatsächliche Häufigkeitstabelle
  5. Entweder: a) führen Sie den Abstand in einer Liste, oder b) führen Sie den kleinsten Wert und die Rotation (dies wird der Schlüssel)
  6. Erhöhen Sie die Rotation um 1 und wiederholen Sie Schritt 2 bis 6, bis N 26 erreicht (vollständige Rotation).
  7. Geben Sie den entschlüsselten Text zurück, d.h. der kleinste Abstand ist der richtige Schlüssel.