NewsdetailsNewsdetails_EN
weiter zurück
1279816020 1279816020 Alter: 1279816020

Cäsar-Verschlüsselung in Plain Old C

Julius Caesar verschlüsselte seine militärische Korrespondenz, indem er jeden Buchstaben des Alphabets um 3 Buchstaben verschob. Aus A wird D, aus B wird E, ... Diese Verschlüsselung ist natürlich nicht sehr sicher und über eine Häufigkeitsanalyse leicht zu knacken.

Im Rahmen der Technikerschule bekamen wir als Projekt, eine Kommandozeilen-Version eines Cäsar-Verschlüsselungs-Programmes zu bauen. Die Aufgabe musste in Zweier-Teams erledigt werden. Das hier ist unsere Lösung. Es werden folgende Funktionen unterstützt: Verschlüsseln, Entschlüsseln, Ein- und Ausgabe über stdin / stdout oder Dateien, Knacken des Schlüssels über eine Häufigkeitsanalyse.

Benutzungs-Beispiel:
Kompilieren des Sourcecodes

chrissie@balearen ~/my_c $ gcc caesar.c

Anwendung: Verschlüsseln

chrissie@balearen ~/my_c $ echo "Das ist ein streng geheimer Text, \
den niemand wissen darf. Deshalb wird er \
auch verschlüsselt" | ./a.out -e -o enc.txt -c 13
chrissie@balearen ~/my_c $ cat enc.txt
QNFVF GRVAF GERAT TRURV ZREGR
KG,QR AAVRZ NAQJV FFRAQ NES.Q
RFUNY OJVEQ RENHP UIREF PUYü
FFRYG

Andwendung: Entschlüsseln mit bekanntem Schlüssel

chrissie@balearen ~/my_c $ ./a.out -d -i enc.txt -c 13
The decrypted message is:
DASISTEINSTRENGGEHEIMERTEXT,DENNIEMANDWISSENDARF.DESHALBWIRDERAUCHVERSCHLüSSELT

Die Verschlüsselung mit einer Häufigkeitsanalyse knacken:
Annahme in diesem Fall: E ist der häufigste Buchstabe. Das kann dann variiert werden,
für deutsch ist E, S, H, C o. ä. der Reihe nach empfohlen.

chrissie@balearen ~/my_c $ ./a.out -f E -i enc.txt 
The frequency-analyzed message is:
DASISTEINSTRENGGEHEIMERTEXT,DENNIEMANDWISSENDARF.DESHALBWIRDERAUCHVERSCHLüSSELT

Hilfe:

chrissie@balearen:~/my_c$ ./a.out -h

simple caesar code implementation
-i FILENAME infile
-o FILENAME outfile (optional, use stdout if nothing given)
-d decrypt
-e encrypt
-c 13 code for enc / dec (value 0 ... 25, optional, default 13 if no -c)
-f E decrypt using frequency analysis if key is lost
(try e, n, i, r, s, h, c for german)
-h print this help
Examples:
caesar -i test.txt -o secret.txt -e -c 8
caesar -f E -i secret.txt
caesar -h

Der Source-Code im Anhang zum Herunterladen (new BSD license).

Dateien: