Kryptographie mit Python - Caesar Cipher
Im letzten Kapitel haben wir uns mit der umgekehrten Verschlüsselung befasst. In diesem Kapitel wird die Caesar-Chiffre ausführlich behandelt.
Algorithmus der Caesar-Chiffre
Der Algorithmus der Caesar-Chiffre enthält die folgenden Merkmale:
Die Caesar-Verschlüsselungstechnik ist die einfache Methode der Verschlüsselungstechnik.
Es ist eine einfache Art der Substitutionsverschlüsselung.
Jeder Klartextbuchstabe wird durch einen Buchstaben mit einer festen Anzahl von Positionen mit Alphabet ersetzt.
Das folgende Diagramm zeigt die Funktionsweise der Implementierung des Caesar-Verschlüsselungsalgorithmus -
Die Programmimplementierung des Caesar-Verschlüsselungsalgorithmus ist wie folgt:
def encrypt(text,s):
result = ""
# transverse the plain text
for i in range(len(text)):
char = text[i]
# Encrypt uppercase characters in plain text
if (char.isupper()):
result += chr((ord(char) + s-65) % 26 + 65)
# Encrypt lowercase characters in plain text
else:
result += chr((ord(char) + s - 97) % 26 + 97)
return result
#check the above function
text = "CEASER CIPHER DEMO"
s = 4
print "Plain Text : " + text
print "Shift pattern : " + str(s)
print "Cipher: " + encrypt(text,s)
Ausgabe
Sie können die Caesar-Chiffre sehen, das ist die Ausgabe, wie im folgenden Bild gezeigt -
Erläuterung
Das Klartextzeichen wird einzeln durchlaufen.
Transformieren Sie für jedes Zeichen im angegebenen Klartext das angegebene Zeichen gemäß der Regel in Abhängigkeit von der Ver- und Entschlüsselung des Texts.
Nachdem die Schritte ausgeführt wurden, wird eine neue Zeichenfolge generiert, die als Chiffretext bezeichnet wird.
Hacking des Caesar Cipher Algorithmus
Der Chiffretext kann mit verschiedenen Möglichkeiten gehackt werden. Eine solche Möglichkeit istBrute Force Technique,Dabei wird jeder mögliche Entschlüsselungsschlüssel ausprobiert. Diese Technik erfordert nicht viel Aufwand und ist für einen Hacker relativ einfach.
Die Programmimplementierung zum Hacken des Caesar-Verschlüsselungsalgorithmus lautet wie folgt:
message = 'GIEWIVrGMTLIVrHIQS' #encrypted message
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for key in range(len(LETTERS)):
translated = ''
for symbol in message:
if symbol in LETTERS:
num = LETTERS.find(symbol)
num = num - key
if num < 0:
num = num + len(LETTERS)
translated = translated + LETTERS[num]
else:
translated = translated + symbol
print('Hacking key #%s: %s' % (key, translated))
Betrachten Sie den im vorherigen Beispiel verschlüsselten Chiffretext. Dann ist die Ausgabe mit möglichen Hacking-Methoden mit dem Schlüssel und unter Verwendung der Brute-Force-Angriffstechnik wie folgt: