Chaocipher
Verschlüsseln Sie WELLDONEISBETTERTHANWELLSAID mit Byrnes klassischen Startscheiben, erhalten Sie OAHQHCNYNXTSZJRRHJBYHQKSOUJY: Beide Alphabete ordnen sich nach jedem Buchstaben neu, sodass jeder Buchstabe anders abgebildet wird. Dieselben Startscheiben entschlüsseln. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- WELLDONEISBETTERTHANWELLSAID
- Links
- HXUCZVAMDSLKPEFJRIGTWOBNYQ
- Rechts
- PTLNBQDEOYSFAVZKGJRIHWXUMC
- Berechnungsmodus
- Encrypt
- Ergebnis
- OAHQHCNYNXTSZJRRHJBYHQKSOUJY
- Eingabe
- WELLDONEISBETTERTHANWELLSAID
- Normalisiert
- WELLDONEISBETTERTHANWELLSAID
- Text
- OAHQHCNYNXTSZJRRHJBYHQKSOUJY
Chaocipher ist die klassische polyalphabetische Maschine, die John F. Byrne 1918 erfand und über Jahrzehnte geheim hielt, bis der vollständige Algorithmus 2010 veröffentlicht wurde. Anders als eine feste Caesar- oder Vigenère-Tabelle führt sie zwei kreisförmige Alphabete — die linke Scheibe für den Chiffretext und die rechte für den Klartext — und nach jedem einzelnen Buchstaben werden beide Scheiben durch eine strenge Zenit-Nadir-Permutation umgeordnet. Sie liefern die Startalphabete links und rechts als vollständige 26-Buchstaben-Permutationen von A–Z, den zu schützenden oder wiederherzustellenden Text und einen Modus encrypt oder decrypt. Der Solver findet jeden Buchstaben auf einer Scheibe, liest den ausgerichteten Buchstaben auf der anderen und dreht sowie verschiebt danach beide Alphabete, sodass die nächste Abbildung völlig anders ist.
Wie die beiden Alphabete und die Zenit–Nadir-Regeln funktionieren
Die Chaocipher-Verschlüsselung behandelt das rechte Alphabet als Klartextscheibe und das linke als Chiffrescheibe. Für jeden Klartextbuchstaben lokalisieren Sie diesen im aktuellen rechten Alphabet und lesen den Buchstaben am selben Index aus dem linken Alphabet; das ist das Chiffresymbol dieses Schritts. Unmittelbar danach werden beide Alphabete mit dem stationären-Zenit-Verfahren aus Byrnes Modell permutiert, wie Moshe Rubin es dokumentierte.
Auf der linken Scheibe wird der soeben genutzte Chiffrebuchstabe zum Zenit (erste Position) rotiert, der Buchstabe bei Zenit plus eins wird entnommen, der Block von Zenit plus zwei bis zum Nadir (Position vierzehn, nullbasierter Index dreizehn) verschiebt sich eine Stelle zum Zenit, und der entnommene Buchstabe wird am Nadir wieder eingefügt.
Auf der rechten Scheibe wird der Klartextbuchstabe zum Zenit rotiert, das ganze Alphabet dann um einen weiteren Schritt gedreht, sodass der nächste Buchstabe am Zenit sitzt, der Buchstabe bei Zenit plus zwei wird entnommen, der Block von Zenit plus drei bis zum Nadir verschiebt sich nach links, und der entnommene Buchstabe landet am Nadir.
Die Entschlüsselung nutzt die inverse Suche — finden Sie den Chiffrebuchstaben auf der linken Scheibe und lesen Sie den Buchstaben am selben Index rechts — und wendet genau dieselben beiden Permutationen an, damit der Maschinenzustand synchron bleibt. Weil jeder Schritt vom vorherigen Buchstaben abhängt, pflanzt sich eine einzelne Änderung früh in der Nachricht durch beide Alphabete fort und zerstört lange monoalphabetische Strukturen; deshalb scheitert die klassische Häufigkeitsanalyse an langem Chaocipher-Verkehr, wenn die Startscheiben unbekannt sind.
Anwendungsfälle
CTF- und Puzzle-Write-ups
Challenge-Autoren prüfen Chaocipher-Ver- und Entschlüsselungsschritte für veröffentlichte Startscheiben, ohne ein separates Offline-Skript zu pflegen.
Häufige Fragen
Was ist Chaocipher?
Eine klassische polyalphabetische Chiffre von John F. Byrne (1918). Zwei Alphabete richten jeden Buchstaben aus; danach permutieren beide nach jedem Zeichen, sodass die Substitution nie fest bleibt.
Was sind das linke und das rechte Alphabet?
Die linke Scheibe liefert Chiffrebuchstaben; die rechte hält Klartextbuchstaben. Jede muss eine volle Permutation von A–Z sein (26 eindeutige Buchstaben). Sie sind der geheime Schlüssel der Maschine.
Was geschieht bei einem fehlgebildeten Alphabet?
Falsche Länge, Doppelbuchstaben, fehlende A–Z-Zeichen oder nichtalphabetische Zeichen in der Scheibenzeichenkette werden mit klarer Meldung abgelehnt.
Was passiert mit Leerzeichen, Satzzeichen und Kleinbuchstaben?
Der Text wird in Großbuchstaben von A bis Z umgewandelt, Leer- und Satzzeichen werden vor der Verschlüsselung entfernt. Ein Text ganz ohne Buchstaben wird abgelehnt, weil nichts zu verarbeiten wäre.
Warum sollten die Startalphabete gut gemischt sein?
Fast alphabetische Startscheiben hinterlassen in den ersten Schritten lange alphabetische Folgen nahe dem Zenit. Gut gemischte Alphabete vermeiden diese Folgen von Anfang an.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/enc/chaocipher \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"WELLDONEISBETTERTHANWELLSAID","left":"HXUCZVAMDSLKPEFJRIGTWOBNYQ","right":"PTLNBQDEOYSFAVZKGJRIHWXUMC"}'const res = await fetch("https://api.kit.forhosting.com/enc/chaocipher", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "WELLDONEISBETTERTHANWELLSAID",
"left": "HXUCZVAMDSLKPEFJRIGTWOBNYQ",
"right": "PTLNBQDEOYSFAVZKGJRIHWXUMC"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/chaocipher",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "WELLDONEISBETTERTHANWELLSAID",
"left": "HXUCZVAMDSLKPEFJRIGTWOBNYQ",
"right": "PTLNBQDEOYSFAVZKGJRIHWXUMC"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/chaocipher", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"WELLDONEISBETTERTHANWELLSAID","left":"HXUCZVAMDSLKPEFJRIGTWOBNYQ","right":"PTLNBQDEOYSFAVZKGJRIHWXUMC"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"WELLDONEISBETTERTHANWELLSAID","left":"HXUCZVAMDSLKPEFJRIGTWOBNYQ","right":"PTLNBQDEOYSFAVZKGJRIHWXUMC"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/chaocipher", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "WELLDONEISBETTERTHANWELLSAID",
"left": "HXUCZVAMDSLKPEFJRIGTWOBNYQ",
"right": "PTLNBQDEOYSFAVZKGJRIHWXUMC"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.chaocipher",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Fehlgebildete Alphabete — falsche Länge, doppelte Buchstaben, fehlende A–Z-Zeichen oder nichtalphabetischer Ballast — werden mit einem klaren invalid_input-Fehler abgelehnt statt still Unsinn zu erzeugen.
So rufen Sie die API auf und was zurückkommt
Text wird nur auf Großbuchstaben A–Z normalisiert; Leerzeichen und Satzzeichen entfallen, und eine last ohne Buchstaben wird abgelehnt. Senden Sie einen JSON-Body mit drei Pflicht-Stringfeldern — text, left und right — plus einem optionalen mode, der bei Weglassen auf encrypt steht. Akzeptierte Aliase für text sind input, value, data, message, plaintext und ciphertext; left akzeptiert auch left_alphabet, left_disk, ct_alphabet und cipher_alphabet; right akzeptiert right_alphabet, right_disk, pt_alphabet und plain_alphabet; mode akzeptiert operation, op, direction und action sowie gängige Synonyme wie encode oder decode. Beide Alphabete müssen genau sechsundzwanzig eindeutige A–Z-Buchstaben sein, nachdem optionale Trennzeichen ignoriert wurden; eine zu kurze Zeichenkette, eine Doppelserie, ein fehlender Buchstabe oder eine Ziffer in der Scheibenzeichenkette ist invalid_input und wird nie berechnet. Bei Erfolg spiegelt die Antwort den Originaltext und die Startalphabete left und right wider, meldet mode als encrypt oder decrypt, normalized als den verarbeiteten Nur-Buchstaben-Strom, result und text als Chiffre oder wiederhergestellte Buchstaben, length als die Ausgabelänge, left_final und right_final als die Alphabete nach der letzten Permutation, formula als kurze Regelmnemonik und message als einzeilige englische Zusammenfassung. Der Preis ist pauschal $0.002 pro erfolgreicher Anfrage mit Einheit item.
Praktische Tipps, Grenzen und verwandte Suchen
Nutzen Sie gut gemischte Startalphabete statt nahezu sequenzieller A–Z-Ketten, damit frühe Permutationen keine langen alphabetischen Läufe nahe dem Zenit hinterlassen. Bevorzugen Sie diese Fähigkeit, wenn Sie transparente klassische dynamische Substitution für Lehre oder Rätsel brauchen; für echte Geheimhaltung nutzen Sie eine moderne authentifizierte Chiffre. Das klassische Ausstellungs-Paar left HXUCZVAMDSLKPEFJRIGTWOBNYQ und right PTLNBQDEOYSFAVZKGJRIHWXUMC mit Klartext WELLDONEISBETTERTHANWELLSAID ist der Standard-Selbsttest: Die Verschlüsselung muss OAHQHCNYNXTSZJRRHJBYHQKSOUJY ergeben, und die Entschlüsselung dieses Stroms mit denselben Startscheiben muss die Originalphrase wiederherstellen. Hin- und Rückchecks sind der beste Sanity-Test, wenn Sie neue Scheiben erfinden — verschlüsseln, dann mit den originalen left- und right-Strings entschlüsseln, nie mit den Endalphabeten eines früheren Laufs. Halten Sie Payloads unter dem veröffentlichten Maximum von einhunderttausend Zeichen, damit der Worker-Speicher begrenzt bleibt. Beim Unterrichten kombinieren Sie drei Beispiele: eine kurze Phrase mit den Byrne-Ausstellungsalphabeten, eine Entschlüsselung eines veröffentlichten Chiffretexts und ein absichtlich fehlgebildetes Alphabet für den harten invalid_input-Pfad. Diese Landingpage zielt auf Suchen nach Chaocipher, Byrne-Chiffre oder Online-Werkzeugen für sich wandelnde Doppelalphabete; sie ist nicht AES, kein Passworttresor, nicht Playfair und kein einfacher Caesar. Fehlgeschlagene Aufgaben mit invalid_input verbrauchen kein Prepaid-Guthaben, sodass explorative Skripte günstig bleiben, wenn Clients defekte Alphabete prüfen.
Integrationsbeispiele
Klassische Chiffre-Labore im Unterricht
Lernende setzen die Byrne-Ausstellungsalphabete von Hand, verschlüsseln einen kurzen Wahlspruch und vergleichen Buchstabenstrom sowie Endscheiben mit dem deterministischen API-Ergebnis.
Historische Krypto-Demos
Museen und Blogs zeigen live, wie sich wandelnde Doppelalphabete von festen monoalphabetischen Chiffren unterscheiden, indem sie Besucherphrasen mit geteilten left- und right-Scheiben verschlüsseln.
Technische Fragen
Wie bleibt die Entschlüsselung synchron?
Die Entschlüsselung sucht den Chiffrebuchstaben auf der linken Scheibe und liest den Buchstaben am selben Index rechts, dann wendet sie dieselben left- und right-Permutationen wie beim Verschlüsseln an.
Ist Chaocipher kostenlos?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Aufrufe nutzen Prepaid-KIT-Guthaben zu $0.002 pro erfolgreicher Anfrage; fehlgeschlagene Aufgaben werden nie berechnet.