Учебники

Криптография с Python — алгоритм ROT13

До сих пор вы узнали об алгоритмах обратного шифрования и Цезаря. Теперь давайте обсудим алгоритм ROT13 и его реализацию.

Объяснение алгоритма ROT13

Шифр ROT13 относится к сокращенной форме Поворот на 13 мест . Это особый случай Цезаря Шифра, в котором сдвиг всегда равен 13. Каждая буква сдвигается на 13 мест, чтобы зашифровать или расшифровать сообщение.

пример

Следующая диаграмма поясняет процесс алгоритма ROT13 —

ROT13 Алгоритм Процесс

Код программы

Программная реализация алгоритма ROT13 выглядит следующим образом —

from string import maketrans

rot13trans = maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 
   'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm')

# Function to translate plain text
def rot13(text):
   return text.translate(rot13trans)
def main():
   txt = "ROT13 Algorithm"
   print rot13(txt)
	
if __name__ == "__main__":
   main()

Вы можете увидеть выход ROT13, как показано на следующем рисунке —

ROT13

недостаток

Алгоритм ROT13 использует 13 смен. Поэтому очень легко смещать символы в обратном порядке, чтобы расшифровать зашифрованный текст.

Анализ алгоритма ROT13

Алгоритм шифрования ROT13 рассматривается как частный случай шифра Цезаря. Это не очень безопасный алгоритм, и его можно легко сломать с помощью частотного анализа или просто попробовав 25 возможных ключей, тогда как ROT13 можно сломать, сместив 13 позиций. Следовательно, оно не включает в себя практическое использование.