Шифр (Борун) - страница 4

– Но погодите, Холмс! – возмутился я. – Так ведь можно получить что угодно!

– Разумеется, нет! Во-первых, у нас есть граничное условие: получиться должен осмысленный текст. Если получается какая-то чушь, значит, допущена ошибка, либо расшифровка не окончена. Более того, текст должен иметь какой-то смысл в контексте нашего случая. А то и эти объявления можно было бы принять за результат, что нелепо. Во-вторых, процесс шифрования и, соответственно, путь расшифровки должны быть логичны. Шифрование должно быть какой-то чёткой процедурой, по определённым правилам, а не просто выбрасыванием букв, пока не останется только одна. Расшифровка должна производиться по в точности обратным правилам, тоже безо всяких отступлений.

– Но откуда мы возьмём эти правила?

– Хм. Действительно. Давайте мыслить логически. Что вам приходит в голову прежде всего, когда вы хотите зашифровать какой-то текст?

– Не знаю. Зависит от метода, который я хочу применить.

– А в самом общем случае?

– Я же говорил, что не силён в теории шифров, а вы хотите от меня таких обобщений!

– Ну же, Ватсон, это элементарно! Прежде всего, вам придёт в голову посмотреть на буквы как на некие числа, с которыми так удобно работать! Буквы можно только переставлять или заменять на другие, с числами тоже можно это делать, но, кроме того, к ним можно применять различные математические операции. Нам ведь нужен метод, уменьшающий их количество, а это, по сути, прежде всего, любая арифметическая операция. Три умножить на четыре равно двенадцати. Видите, количество чисел уменьшилось, было два: тройка и четвёрка, осталось одно – двенадцать.

– Но количество цифр не изменилось!

– Это несущественно в данном случае. Главное, что операция производилась над двумя числами, а осталось одно. Это существенное свойство всех арифметических действий. С высшей математикой не так просто, но мы же не думаем, что шпион будет пользоваться матричным исчислением. У него уйдёт слишком много времени. Давайте для первой попытки ограничимся простейшим арифметическим действием, сложением. Будем заменять две буквы на их сумму… В смысле, заменять буквы на их номер в алфавите, складывать эти номера и смотреть на получившуюся сумму как на новый номер буквы в алфавите. Согласитесь, это самое простое, что можно придумать.

– Ну хорошо, а наоборот?

– И с обратным преобразованием всё просто! Нужно одно число представить как сумму двух других! Разумеется, таких представлений много, и тут придётся отбирать только осмысленные варианты, отбрасывая ложные. Главное – неизменно следовать одной и той же процедуре. Это будет гарантией – если получится хоть что-то – что получилось не нечто случайное, а именно то, что было зашифровано. Итак, у нас есть буква «ь».