Введение
Простой метод шифрования
ROT13 (Rotate13, "поворот на 13 позиций", иногда с дефисом ROT 13) — это простой шифр подстановки, заменяющий каждую букву 13-й буквой, следующей за ней в латинском алфавите. ROT13 является частным случаем шифра Цезаря, разработанного в Древнем Риме. Поскольку в базовом латинском алфавите 26 букв (2×13), ROT13 является самообратным; то есть для расшифровки ROT13 применяется тот же алгоритм, что и для шифрования, позволяя использовать одно и то же действие для кодирования и декодирования. Алгоритм практически не обеспечивает криптографической защиты и часто приводится в качестве каноничного примера слабого шифрования. ROT13 использовался на интернет-форумах для скрытия спойлеров, развязок, решений головоломок и нежелательного контента от случайного просмотра. ROT13 послужил вдохновением для множества словесных игр в сети и часто упоминается в дискуссиях в новостных группах.
Описание
Применение ROT13 к фрагменту текста требует лишь анализа его буквенных символов и замены каждого из них на букву, находящуюся на 13 позиций дальше в алфавите, с возвратом к началу, если это необходимо. A становится N, B становится O и так далее до M, которое становится Z, затем последовательность продолжается с начала алфавита: N становится A, O становится B и так далее до Z, которое становится M. Под воздействием оказываются только буквы английского алфавита; цифры, символы, знаки препинания, пробелы и все остальные символы остаются без изменений. Поскольку в английском алфавите 26 букв и 26 = 2 × 13, функция ROT13 является самообратной: Йоханн Эрнст Элиас Бесслер, часовщик XVIII века и конструктор машин вечного движения, отметил, что ROT13 кодирует его фамилию как Orffyre. Он использовал её латинизированную форму, Orffyreus, в качестве псевдонима. ROT13 использовался в новостной группе net.jokes уже в начале 1980-х годов. Он применяется для сокрытия потенциально оскорбительных шуток или для маскировки ответа на головоломку или спойлер. Ненадежный источник: date=August 2018 Сдвиг в тринадцать позиций был выбран вместо других значений, таких как три, как в оригинальном шифре Цезаря, поскольку тринадцать – это значение, при котором кодирование и декодирование эквивалентны, что обеспечивает удобство использования одной команды для обеих операций. Он также используется для обхода фильтров электронной почты и спам-фильтров. Маскируя содержание электронного письма, алгоритм фильтрации не может идентифицировать его как, например, угрозу безопасности, и позволяет ему попасть во входящие сообщения получателя. В зашифрованном, обычном английском тексте значительного размера ROT13 можно узнать по некоторым паттернам букв и слов. Примерами служат слова "n", "V" (только с заглавной буквы) и "gur" (ROT13 для "a", "I" и "the"), а также слова, оканчивающиеся на "yl" ("ly"). ROT13 не предназначен для использования там, где важна конфиденциальность – использование постоянного сдвига означает, что шифрование фактически не имеет ключа, а для дешифровки не требуется ничего, кроме знания о том, что используется ROT13. Даже без этого знания алгоритм легко взломать с помощью частотного анализа. Соответственно, тройной ROT13 (используется в шутливой аналогии с 3DES) эквивалентен обычному ROT13. В декабре 1999 года было обнаружено, что Netscape Communicator использовал ROT13 в рамках небезопасной схемы для хранения паролей электронной почты. В 2001 году российский программист Дмитрий Скляров продемонстрировал, что поставщик электронных книг, New Paradigm Research Group (NPRG), использовал ROT13 для шифрования своих документов; предполагается, что NPRG, возможно, принял пример ROT13, поставляемый с комплектом разработки программного обеспечения Adobe eBook, за полноценную схему шифрования. Windows XP использует ROT13 в некоторых ключах реестра. ROT13 также используется в программе Unix fortune для сокрытия потенциально оскорбительных высказываний.
Johann Ernst Elias Bessler, an 18th century clockmaker and constructor of perpetual motion machines, pointed out that ROT13 encodes his surname as Orffyre. He used its latinised form, Orffyreus, as his pseudonym. ROT13 was in use in the net. jokes newsgroup by the early 1980s. It is used to hide potentially offensive jokes, or to obscure an answer to a puzzle or other spoiler. Unreliable source: date=August 2018 A shift of thirteen was chosen over other values, such as three as in the original Caesar cipher, because thirteen is the value for which encoding and decoding are equivalent, thereby allowing the convenience of a single command for both. It is also used to circumvent email screening and spam filtering. By obscuring an email's content, the screening algorithm is unable to identify the email as, for instance, a security risk, and allows it into the recipient's in box. In encrypted, normal, English language text of any significant size, ROT13 is recognizable from some letter/word patterns. The words "n", "V" (capitalized only), and "gur" (ROT13 for "a", "I", and "the"), and words ending in "yl" ("ly") are examples. ROT13 is not intended to be used where secrecy is of any concern—the use of a constant shift means that the encryption effectively has no key, and decryption requires no more knowledge than the fact that ROT13 is in use. Even without this knowledge, the algorithm is easily broken through frequency analysis. By extension, triple ROT13 (used in joking analogy with 3DES) is equivalent to regular ROT13. In December 1999, it was found that Netscape Communicator used ROT13 as part of an insecure scheme to store email passwords. In 2001, Russian programmer Dimitry Sklyarov demonstrated that an eBook vendor, New Paradigm Research Group (NPRG), used ROT13 to encrypt their documents; it has been speculated that NPRG may have mistaken the ROT13 toy example—provided with the Adobe eBook software development kit—for a serious encryption scheme. Windows XP uses ROT13 on some of its registry keys. ROT13 is also used in the Unix fortune program to conceal potentially offensive dicta.
Emacs и Vim
В Emacs можно выполнить ROT13 для буфера или выделенного фрагмента с помощью команд M-x включить режим rot13, M-x rot13 в другом окне или M-x rot13 область. В текстовом редакторе Vim можно выполнить ROT13 для буфера с помощью команды ggg?G.