- Die Caesar-Chiffre ist eine einfache Verschlüsselungstechnik, die Julius Caesar nutzte, um geheime Nachrichten an seine Verbündeten zu senden. Dabei werden die Buchstaben in der Klartextnachricht um eine bestimmte Anzahl von Positionen verschoben, die als Shift oder Key bezeichnet wird.
- Die Caesar-Chiffriertechnik ist eine der frühesten und einfachsten Methoden der Verschlüsselungstechnik. Es handelt sich einfach um eine Art Substitutions-Chiffre, d. h. jeder Buchstabe eines bestimmten Textes wird durch einen Buchstaben mit einer festen Anzahl von Positionen weiter unten im Alphabet ersetzt. Bei einer Verschiebung um 1 würde beispielsweise A durch B ersetzt, B würde zu C und so weiter. Die Methode ist offenbar nach Julius Cäsar benannt, der sie offenbar zur Kommunikation mit seinen Beamten nutzte.
- Um einen bestimmten Text zu verschlüsseln, benötigen wir daher einen ganzzahligen Wert, der als Verschiebung bezeichnet wird und die Anzahl der Positionen angibt, um die jeder Buchstabe im Text nach unten verschoben wurde.
Die Verschlüsselung kann durch modulare Arithmetik dargestellt werden, indem zunächst die Buchstaben in Zahlen umgewandelt werden, nach dem Schema A = 0, B = 1,…, Z = 25. Die Verschlüsselung eines Buchstabens durch eine Verschiebung n kann mathematisch beschrieben werden als. - Wenn die Verschiebung beispielsweise 3 beträgt, würde der Buchstabe A durch den Buchstaben D ersetzt, B würde zu E, C würde zu F und so weiter. Das Alphabet wird so umwickelt, dass es nach Z wieder bei A beginnt.
- Hier ist ein Beispiel für die Verwendung der Caesar-Chiffre zum Verschlüsseln der Nachricht HALLO mit einer Verschiebung von 3:
- Schreiben Sie die Klartextnachricht auf: HALLO
- Wählen Sie einen Verschiebungswert. In diesem Fall verwenden wir eine Verschiebung von 3.
- Ersetzen Sie jeden Buchstaben in der Klartextnachricht durch den Buchstaben, der im Alphabet drei Positionen weiter rechts steht.
H wird zu K (Verschiebung 3 von H)
E wird zu H (Verschiebung 3 von E)
L wird zu O (von L um 3 verschieben)
Java-Farben
L wird zu O (von L um 3 verschieben)
O wird zu R (von O um 3 verschieben)
4. Die verschlüsselte Nachricht ist jetzt KHOOR.
- Um die Nachricht zu entschlüsseln, müssen Sie lediglich jeden Buchstaben um die gleiche Anzahl Stellen nach hinten verschieben. In diesem Fall würden Sie jeden Buchstaben in KHOOR um 3 Positionen nach hinten verschieben, um die ursprüngliche Nachricht, HALLO, zu erhalten.
(Verschlüsselungsphase mit Verschiebung n)
(Entschlüsselungsphase mit Verschiebung n)
bestes Hentai

Beispiele:
Java-Zeichen in eine Zeichenfolge umwandeln
Text : ABCDEFGHIJKLMNOPQRSTUVWXYZ Shift : 23 Cipher : XYZABCDEFGHIJKLMNOPQRSTUVW Text : ATTACKATONCE Shift : 4 Cipher : EXXEGOEXSRGI>
Vorteile:
- Dadurch ist es einfach zu implementieren und zu verwenden, sodass es auch für Anfänger geeignet ist, etwas über Verschlüsselung zu lernen.
- Kann physisch implementiert werden, beispielsweise mit einem Satz rotierender Scheiben oder einem Kartensatz, einer sogenannten Skytale, die in bestimmten Situationen nützlich sein kann.
- Erfordert nur einen kleinen Satz vorab freigegebener Informationen.
- Kann leicht geändert werden, um eine sicherere Variante zu erstellen, beispielsweise durch die Verwendung mehrerer Shift-Werte oder Schlüsselwörter.
Nachteile:
- Es ist nicht sicher gegen moderne Entschlüsselungsmethoden.
- Anfällig für Known-Plaintext-Angriffe, bei denen ein Angreifer sowohl auf die verschlüsselte als auch auf die unverschlüsselte Version derselben Nachrichten zugreifen kann.
- Die geringe Anzahl möglicher Schlüssel bedeutet, dass ein Angreifer problemlos alle möglichen Schlüssel ausprobieren kann, bis der richtige Schlüssel gefunden wird, was ihn anfällig für Brute-Force-Angriffe macht.
- Für die Langtextverschlüsselung ist es nicht geeignet, da es leicht zu knacken wäre.
- Für die sichere Kommunikation ist es nicht geeignet, da es leicht kaputt gehen kann.
- Bietet keine Vertraulichkeit, Integrität und Authentizität in einer Nachricht.
Merkmale der Caesar-Chiffre:
- Substitutions-Chiffre: Die Caesar-Chiffre ist eine Art Substitutions-Chiffre, bei der jeder Buchstabe im Klartext durch einen Buchstaben an einer bestimmten Anzahl von Positionen weiter unten im Alphabet ersetzt wird.
- Fester Schlüssel: Die Caesar-Chiffre verwendet einen festen Schlüssel, also die Anzahl der Positionen, um die die Buchstaben verschoben werden. Dieser Schlüssel ist sowohl dem Sender als auch dem Empfänger bekannt.
- Symmetrische Verschlüsselung: Die Caesar-Chiffre ist eine symmetrische Verschlüsselungstechnik, das heißt, dass für die Verschlüsselung und Entschlüsselung derselbe Schlüssel verwendet wird.
- Begrenzter Schlüsselraum: Die Caesar-Chiffre hat einen sehr begrenzten Schlüsselraum von nur 26 möglichen Schlüsseln, da es im englischen Alphabet nur 26 Buchstaben gibt.
- Anfällig für Brute-Force-Angriffe: Die Caesar-Verschlüsselung ist anfällig für Brute-Force-Angriffe, da es nur 26 mögliche Schlüssel zum Ausprobieren gibt.
- Einfach zu implementieren: Die Caesar-Verschlüsselung ist sehr einfach zu implementieren und erfordert nur einfache arithmetische Operationen, was sie zu einer beliebten Wahl für einfache Verschlüsselungsaufgaben macht.
Regeln für die Caesar-Chiffre:
- Wählen Sie eine Zahl zwischen 1 und 25. Dies ist Ihr Verschiebungswert.
- Schreiben Sie die Buchstaben des Alphabets der Reihe nach auf, von A bis Z.
- Verschieben Sie jeden Buchstaben des Alphabets um den Verschiebungswert. Wenn der Verschiebungswert beispielsweise 3 ist, würde A zu D, B würde zu E, C würde zu F und so weiter.
- Verschlüsseln Sie Ihre Nachricht, indem Sie jeden Buchstaben durch den entsprechenden verschobenen Buchstaben ersetzen. Wenn der Verschiebungswert beispielsweise 3 beträgt, würde das Wort „Hallo“ zu „Khoor“ werden.
- Um die Nachricht zu entschlüsseln, kehren Sie den Vorgang einfach um, indem Sie jeden Buchstaben um den gleichen Betrag nach hinten verschieben. Wenn der Verschiebungswert beispielsweise 3 beträgt, würde die verschlüsselte Nachricht „khoor“ zu „Hallo“ werden.
Algorithmus für Caesar-Chiffre:
Eingang:
- Wählen Sie einen Verschiebungswert zwischen 1 und 25.
- Schreiben Sie das Alphabet in der Reihenfolge von A bis Z auf.
- Erstellen Sie ein neues Alphabet, indem Sie jeden Buchstaben des ursprünglichen Alphabets um den Verschiebungswert verschieben. Wenn der Verschiebungswert beispielsweise 3 ist, wäre das neue Alphabet:
- 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 - Ersetzen Sie jeden Buchstaben der Nachricht durch den entsprechenden Buchstaben aus dem neuen Alphabet. Wenn der Verschiebungswert beispielsweise 3 beträgt, würde das Wort „Hallo“ zu „Khoor“ werden.
- Um die Nachricht zu entschlüsseln, verschieben Sie jeden Buchstaben um den gleichen Betrag nach hinten. Wenn der Verschiebungswert beispielsweise 3 beträgt, würde die verschlüsselte Nachricht „khoor“ zu „Hallo“ werden.
Verfahren:
- Durchlaufen Sie den angegebenen Text Zeichen für Zeichen.
- Transformieren Sie für jedes Zeichen das angegebene Zeichen gemäß der Regel, je nachdem, ob wir den Text verschlüsseln oder entschlüsseln.
- Gibt die neu generierte Zeichenfolge zurück.
Ein Programm, das einen Text (Zeichenfolge) und einen Verschiebungswert (Ganzzahl) empfängt und den verschlüsselten Text zurückgibt.
C++
// A C++ program to illustrate Caesar Cipher Technique> #include> using> namespace> std;> // This function receives text and shift and> // returns the encrypted text> string encrypt(string text,>int> s)> {> >string result =>''>;> >// traverse text> >for> (>int> i = 0; i // apply transformation to each character // Encrypt Uppercase letters if (isupper(text[i])) result += char(int(text[i] + s - 65) % 26 + 65); // Encrypt Lowercase letters else result += char(int(text[i] + s - 97) % 26 + 97); } // Return the resulting string return result; } // Driver program to test the above function int main() { string text = 'ATTACKATONCE'; int s = 4; cout << 'Text : ' << text; cout << '
Shift: ' << s; cout << '
Cipher: ' << encrypt(text, s); return 0; }> |
>
>
Java
//A Java Program to illustrate Caesar Cipher Technique> class> CaesarCipher> {> >// Encrypts text using a shift of s> >public> static> StringBuffer encrypt(String text,>int> s)> >{> >StringBuffer result=>new> StringBuffer();> >for> (>int> i=>0>; i { if (Character.isUpperCase(text.charAt(i))) { char ch = (char)(((int)text.charAt(i) + s - 65) % 26 + 65); result.append(ch); } else { char ch = (char)(((int)text.charAt(i) + s - 97) % 26 + 97); result.append(ch); } } return result; } // Driver code public static void main(String[] args) { String text = 'ATTACKATONCE'; int s = 4; System.out.println('Text : ' + text); System.out.println('Shift : ' + s); System.out.println('Cipher: ' + encrypt(text, s)); } }> |
>
>
Python3
#A python program to illustrate Caesar Cipher Technique> def> encrypt(text,s):> >result>=> ''> ># traverse text> >for> i>in> range>(>len>(text)):> >char>=> text[i]> ># Encrypt uppercase characters> >if> (char.isupper()):> >result>+>=> chr>((>ord>(char)>+> s>->65>)>%> 26> +> 65>)> ># Encrypt lowercase characters> >else>:> >result>+>=> chr>((>ord>(char)>+> s>-> 97>)>%> 26> +> 97>)> >return> result> #check the above function> text>=> 'ATTACKATONCE'> s>=> 4> print> (>'Text : '> +> text)> print> (>'Shift : '> +> str>(s))> print> (>'Cipher: '> +> encrypt(text,s))> |
>
>
C#
// A C# Program to illustrate Caesar Cipher Technique> using> System;> using> System.Text;> public> class> CaesarCipher> {> >// Encrypts text using a shift on s> >public> static> StringBuilder encrypt(String text,>int> s)> >{> >StringBuilder result=>new> StringBuilder();> >for> (>int> i=0; i { if (char.IsUpper(text[i])) { char ch = (char)(((int)text[i] + s - 65) % 26 + 65); result.Append(ch); } else { char ch = (char)(((int)text[i] + s - 97) % 26 + 97); result.Append(ch); } } return result; } // Driver code public static void Main(String[] args) { String text = 'ATTACKATONCE'; int s = 4; Console.WriteLine('Text : ' + text); Console.WriteLine('Shift : ' + s); Console.WriteLine('Cipher: ' + encrypt(text, s)); } } /* This code contributed by PrinciRaj1992 */> |
>
>
PHP
// A PHP program to illustrate Caesar // Cipher Technique // This function receives text and shift // and returns the encrypted text function encrypt($text, $s) { $result = ''; // traverse text for ($i = 0; $i |
>
>
Javascript
> //A Javascript Program to illustrate Caesar Cipher Technique> > >// Encrypts text using a shift on s> >function> encrypt(text, s)> >{> >let result=>''> >for> (let i = 0; i { let char = text[i]; if (char.toUpperCase(text[i])) { let ch = String.fromCharCode((char.charCodeAt(0) + s-65) % 26 + 65); result += ch; } else { let ch = String.fromCharCode((char.charCodeAt(0) + s-97) % 26 + 97); result += ch; } } return result; } // Driver code let text = 'ATTACKATONCE'; let s = 4; document.write('Text : ' + text + ' '); document.write('Shift : ' + s + ' '); document.write('Cipher: ' + encrypt(text, s) + ' '); // This code is contributed by avanitrachhadiya2155> |
>
>
Ausgabe
Text : ATTACKATONCE Shift: 4 Cipher: EXXEGOEXSRGI>
Zeitkomplexität: O(N) wobei N die Länge des angegebenen Textes ist
Nebenraum: AN)
Finden Sie in der Karte c++
Wie entschlüsseln?
Wir können entweder eine andere Funktion decrypt ähnlich wie encrypt schreiben, die die gegebene Verschiebung in die entgegengesetzte Richtung anwendet, um den Originaltext zu entschlüsseln. Wir können jedoch die zyklische Eigenschaft der Chiffre unter Modulo nutzen und daher einfach beobachten
Cipher(n) = De-cipher(26-n)>
Daher können wir zum Entschlüsseln dieselbe Funktion verwenden. Stattdessen ändern wir den Verschiebungswert so, dass Verschiebung = 26-Verschiebung (siehe hier für einen Beispiellauf in C++).