Учебники

Криптография с Питоном — Цезарь Шифр

В последней главе мы имели дело с обратным шифром. В этой главе подробно рассказывается о шифре Цезаря.

Алгоритм Цезаря Шифра

Алгоритм шифра Цезаря обладает следующими особенностями —

  • 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))

Рассмотрим зашифрованный текст, зашифрованный в предыдущем примере. Затем вывод с возможными методами взлома с ключом и с использованием техники атаки методом перебора выглядит следующим образом: