Caesar-Verschlüsselung

Aus SibiWiki
Version vom 16. März 2014, 21:20 Uhr von Akaibel (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie:Kryptographie Kategorie:Informatik-Abitur Kategorie:Informatik Die '''Caesar-Verschlüsselung''' ist ein einfaches Verschlüsselungsverf…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Die Caesar-Verschlüsselung ist ein einfaches Verschlüsselungsverfahren, das auf der Verschiebung von Buchstaben basiert.

Bei der Verschlüsselung wird jeder Buchstabe des Klartexts auf einen Geheimtextbuchstaben abgebildet. Diese Abbildung ergibt sich, indem man die Zeichen eines geordneten Alphabets um eine bestimmte Anzahl nach rechts verschiebt. Die Anzahl der verschobenen Zeichen bildet den Schlüssel.

Beispiel für eine Verschiebung um drei Zeichen (d.h. Schlüssel = 3):

klar:    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
geheim:  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</code ergibt sich so der Geheimtext kdoor.

Implementierung

public class Caesar {

   public static String verschluesseln(String pText, int pCode){
       pText = pText.toLowerCase();
       String ergebnis = "";
       for(int i=0; i<pText.length(); i++){
           char buchstabe = pText.charAt(i);
           buchstabe += pCode;
           if(buchstabe > 'z'){
               buchstabe -= 26;
           }
           ergebnis += buchstabe;
       }
       return ergebnis;
   }
  
   public static String entschluesseln(String pText, int pCode){
       // statt pCode Buchstaben nach rechts zu gehen...
       // ... kann man auch (26-pCode) Buchstaben nach links gehen!
       String ergebnis = verschluesseln(pText, 26 - pCode);
       return ergebnis;
   }
  
   public static void main(String[] args) {
       int schluessel = 3;
       String nachricht = "hallo";
       System.out.println("nachricht: "+nachricht);
       String verschluesselt = verschluesseln(nachricht, schluessel);
       System.out.println("verschluesselt: "+verschluesselt);
       String entschluesselt = entschluesseln(verschluesselt, schluessel);
       System.out.println("entschluesselt: "+entschluesselt);
   }
}