В последней главе мы имели дело с обратным шифром. В этой главе подробно рассказывается о шифре Цезаря.
Алгоритм Цезаря Шифра
Алгоритм шифра Цезаря обладает следующими особенностями —
-
Caesar Cipher Technique — это простой и легкий метод шифрования.
-
Это простой тип подстановочного шифра.
-
Каждая буква обычного текста заменяется буквой с фиксированным числом позиций вниз по алфавиту.
Caesar Cipher Technique — это простой и легкий метод шифрования.
Это простой тип подстановочного шифра.
Каждая буква обычного текста заменяется буквой с фиксированным числом позиций вниз по алфавиту.
Следующая диаграмма изображает работу реализации алгоритма шифрования Цезаря —
Программная реализация алгоритма шифрования Цезаря выглядит следующим образом —
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)
Выход
Вы можете увидеть шифр Цезаря, то есть вывод, как показано на следующем рисунке —
объяснение
Простой текстовый символ просматривается по одному.
-
Для каждого символа в данном простом тексте преобразуйте данный символ согласно правилу в зависимости от процедуры шифрования и дешифрования текста.
-
После выполнения шагов генерируется новая строка, которая называется текстом шифра.
Для каждого символа в данном простом тексте преобразуйте данный символ согласно правилу в зависимости от процедуры шифрования и дешифрования текста.
После выполнения шагов генерируется новая строка, которая называется текстом шифра.
Взлом алгоритма Цезаря Шифра
Зашифрованный текст может быть взломан с различными возможностями. Одной из таких возможностей является метод грубой силы, который включает в себя попытку каждого возможного ключа дешифрования. Этот метод не требует больших усилий и относительно прост для хакера.
Реализация программы для взлома алгоритма шифрования Цезаря выглядит следующим образом —
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))
Рассмотрим зашифрованный текст, зашифрованный в предыдущем примере. Затем вывод с возможными методами взлома с ключом и с использованием техники атаки методом перебора выглядит следующим образом: