Cäsar Verschlüsselung

Geheimbotschaften durch Buchstabenverschiebung

Die Cäsar Verschlüsselung ist ein Verfahren welches Julius Cäsar benutzt hatte um Geheimbotschaften zu übermitteln. Dabei handelt es sich um eine einfache Verschiebung der Buchstaben des Alphabets um drei Stellen nach rechts.

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

Aus dem Klartext HALLO würde demnach der verschlüsselte Text KDOOR

 

Hier ein Beispiel, welches einen Klartext mit der Cäsar-Chiffre verschlüsselt:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication_Verschluesselung1
{
    class Program
    {
        static void Main(string[] args)
        {
            char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();   // Wandle einen String in ein char-Array
            string klartext = "Textnachricht xyz";                          // Der zu verschlüsselnde Text = klartext
            int schluessel = 3;                                             // Schlüssel 3 für die Cäsar-Verschlüsselung 
            string code = "";                                               // Hier wird der verschlüsselte Text gespeichert

            foreach (char c in klartext.ToUpper())                          // Iteriere durch jedes Zeichen im Klartext und wandle in Großbuchstaben
            {
                if (alphabet.Contains(c))                                   // Prüfe ob das aktuelle Zeichen ein Buchsatbe im Alphabet ist
                {
                    int position = Array.IndexOf(alphabet, c);              // Ermittle die aktuelle Indexposition des Zeichens im Array
                    int position_new = position + schluessel;               // Addiere den Schlüssel zur Indexposition 
                    int rest = position_new % 26;                           // Berechne die neue Indexposition
                    code += alphabet[rest];                                 // Füge den neuen Buchstaben dem verschlüsselten Text hinzu
                }
                else
                {
                    code += c;      // Wenn kein Buchstabe aus dem Alphabet (z.B. Leerzeichen) gefunden wurde, übernimm das Zeichen
                }
            }
            Console.Write(code);    // Ausgabe des verschlüsselten Textes
            Console.ReadLine();
        }
    }
}