Почему 13 мест в ROT13?
Я понимаю причины и против ROT13, но мне интересно, почему именно люди выбрали 13 мест для сдвига алфавита? Я понимаю, что это на полпути, но есть ли изящная причина зайти так далеко, но не 12 или 14 мест?
Мне кажется, что каждая буква "как можно дальше" от ее начальной позиции имеет смысл только для человека, который может распознать "близкие" символы (хотя я сомневаюсь, что это возможно / вероятно).
кто-нибудь знает ответ на это?
4 ответов
потому что у него есть хорошее свойство быть инволютивных, то есть ROT13(ROT13(alphaOnlyString)) = alphaOnlyString.
согласно Википедии:
сдвиг тринадцати был выбран над другими значениями, такими как три, как в исходном шифре Цезаря, потому что тринадцать-это значение, для которого кодирование и декодирование эквивалентны, что позволяет удобство одной команды для обоих.
вероятно, потому что это его собственный обратный. Тот же алгоритм можно использовать как для" шифрования", так и для"дешифрования".
потому что сдвиг на 13 перемещает символы по алфавиту (который имеет 26 мест). Итак, чтобы вернуться к открытому тексту, вам нужно только снова сдвинуть его на 13 ходов. Таким образом, вам не нужно иметь отдельные функции для кодирования или декодирования, потому что одна и та же операция будет кодировать или декодировать.