Читаем Книга шифров .Тайная история шифров и их расшифровки полностью

Большинство математических функций относится к двусторонним функциям, поскольку их легко применять при вычислениях в прямом и обратном направлении. К примеру, «удваивание» является двусторонней функцией, поскольку с ее помощью можно без труда образовать новое число, вдвое увеличив исходное число, и так же просто применить функцию в обратном направлении и вернуться от удвоенного к исходному числу. Так, если мы знаем, что результатом удваивания является число 26, то совершенно очевидно, что, чтобы найти исходное число — 13, следует применить данную функцию в обратном направлении. Самый простой способ понять, что такое двусторонняя функция, — это рассмотреть ее на примере повседневной деятельности. Включение освещения является функцией, так как при этом загорается лампочка. Эта функция — двусторонняя, поскольку если выключатель включен, то его легко и выключить, погасив тем самым горящую лампочку.

Но Диффи и Хеллман не интересовались двусторонними функциями. Они обратили свое внимание на односторонние функции. Как следует из названия, одностороннюю функцию легко вычислить в прямом направлении, но очень сложно в обратном. Другими словами, двусторонние функции обратимы, а односторонние функции необратимы. И опять-таки самый простой способ показать, что такое односторонняя функция, — это рассмотреть ее на примере повседневной деятельности. Смешивание желтой и синей красок для получения зеленой краски является односторонней функцией, поскольку краски смешать несложно, но вот разделить их после этого снова на исходные невозможно. Односторонней функцией также будет разбивание яйца: разбить яйцо легко, но вернуть его в исходное состояние уже невозможно. Из-за этого односторонние функции иногда называются функциями Шалтай-Болтая.

Модулярная арифметика, иногда в школе называемая арифметикой, оперирующей с абсолютными значениями чисел, является разделом математики, который богат односторонними функциями. В модулярной арифметике математики имею дело с циклически замкнутыми конечными группами чисел, подобно числам на циферблате часов. Например, на рис. 64 показан циферблат часов с модулем 7, на котором имеется только 7 цифр от 0 до 6. Чтобы вычислить 2 + 3 по модулю 7 (или mod 7), мы возьмем в качестве отправной точки 2 и передвинемся на 3 позиции, получив в результате 5, то есть получим тот же самый ответ, что и в обычной арифметике. Чтобы вычислить 2 + 6 по модулю 7, мы возьмем в качестве начальной точки 2 и передвинемся на 6 позиций, но на сей раз мы обойдем весь циферблат и окажемся на 1, а это уже не тот результат, который мы получили бы в обычной арифметике. Эти результаты могут быть выражены в следующем виде:

2 + 3 = 5 (mod 7) и 2 + 6 = 1 (mod 7)

Модулярная арифметика сравнительно проста, и на самом деле мы пользуемся ею ежедневно, когда говорим о времени. Если сейчас 9 часов, а у нас назначена встреча, которая состоится через 8 часов, мы скажем, что встреча произойдет в 5, а не в 17 часов.

Мы в уме сосчитали 9 + 8 по (mod 12). Представьте себе, циферблат часов, посмотрите на 9, а затем отсчитайте 8 делений, и вы остановитесь на 5:

9 + 8 = 5 (mod 12)

Математики, вместо того чтобы представлять себе циферблаты на часах, часто выбирают кратчайший путь, выполняя модулярные вычисления следующим образом. Вначале вычисление проводится по правилам обычной арифметики. Затем, если мы хотим узнать ответ по (mod х), мы делим результат, полученный на предыдущем этапе, на х и записываем остаток. Этот остаток и является ответом по (mod x). Чтобы найти ответ в примере 11 x 9 (mod 13), мы поступим следующим образом:

11 х 9 = 99

99 + 13 = 7, остаток 8

11 x 9 = 8 (mod 13)

Функции, с которыми работают в модулярной арифметике, ведут себя хаотичным образом, что, в свою очередь, иногда делает их односторонними функциями. Это становится очевидным, если сравнить простую функцию в обычной арифметике с этой же простой функцией, но в модулярной арифметике. В первой арифметике данная функция будет двусторонней и легко вычисляемой в обратном направлении; во второй арифметике она станет односторонней, и обратные вычисления провести будет сложно. В качестве примера возьмем функцию 3х. Это означает следующее: взять число х, а затем умножить 3 само на себя х раз, в результате получится новое число. Например, если х = 2, и мы выполняем функцию, тогда:

3x = З2 = 3 х 3 = 9.

Другими словами, функция преобразует 2 в 9. В обычной арифметике по мере увеличения х возрастает также и значение функции. Поэтому если нам дано значение функции, то сравнительно несложно выполнить обратное преобразование и найти исходное значение.

Перейти на страницу:

Похожие книги

Российские университеты XVIII – первой половины XIX века в контексте университетской истории Европы
Российские университеты XVIII – первой половины XIX века в контексте университетской истории Европы

Как появились университеты в России? Как соотносится их развитие на начальном этапе с общей историей европейских университетов? Книга дает ответы на поставленные вопросы, опираясь на новые архивные источники и концепции современной историографии. История отечественных университетов впервые включена автором в общеевропейский процесс распространения различных, стадиально сменяющих друг друга форм: от средневековой («доклассической») автономной корпорации профессоров и студентов до «классического» исследовательского университета как государственного учреждения. В книге прослежены конкретные контакты, в особенности, между российскими и немецкими университетами, а также общность лежавших в их основе теоретических моделей и связанной с ними государственной политики. Дискуссии, возникавшие тогда между общественными деятелями о применимости европейского опыта для реформирования университетской системы России, сохраняют свою актуальность до сегодняшнего дня.Для историков, преподавателей, студентов и широкого круга читателей, интересующихся историей университетов.

Андрей Юрьевич Андреев

История / Научная литература / Прочая научная литература / Образование и наука