Удручённо размышляя об этом, Джордж не сразу осознал, что из гостиной доносятся голоса.
– Анни! Джордж! – Папа Анни, Эрик, показался в дверях кухни. Его лицо сияло улыбкой, глаза за толстыми стёклами очков блестели, узел галстука был ослаблен, манжеты расстёгнуты. В руках у Эрика были два хрустальных бокала.
– Пришёл наполнить, – объяснил он, ставя бокалы на стол.
Он взял в руки пыльную старую бутылку, с громким «чпок» выдернул пробку и плеснул в бокалы тёмно-янтарную жидкость.
– Зайдите, поздоровайтесь с моей гостьей! – Эрик снова широко улыбнулся, отчего в уголках его глаз появились морщинки. – У неё есть кое-что такое, что может вас заинтересовать.
Джордж и Анни вмиг забыли о своём споре и проследовали за Эриком в гостиную, уставленную от пола до потолка рядами книг. Это была прекрасная комната, полная разнообразных прелюбопытнейших предметов, таких как Эриков древний медный телескоп. Научно-технический прогресс, правивший бал в остальных частях дома, здесь не так бросался в глаза: гостиная была не то что крутой или футуристической, а скорее просто уютной. На продавленном диване, оставшемся у Эрика ещё со студенческих лет, сидела очень старая, просто-таки древняя дама.
– Берил, – обратился к даме Эрик, вручая ей бокал хереса, – позвольте представить вам Анни и Джорджа. Анни, Джордж, это Берил Уайльд.
Берил благосклонно приняла напиток и сразу отпила глоток.
– Очень приятно! – сказала она и приветственно помахала рукой.
– Берил – один из величайших математиков нашего времени, – произнёс Эрик очень торжественно.
Берил расхохоталась.
– Ах, ну что за нелепость, право!
– Но это действительно так! – возразил Эрик. – Если бы не математический гений Берил, погибло бы гораздо больше миллионов людей.
– Каких людей? – спросил Джордж.
Анни достала смартфон и принялась искать в Википедии статью про Берил Уайльд.
– Как правильно пишется ваша фамилия? – спросила она.
– Вся информация обо мне защищена законом о государственной тайне, – сказала Берил, догадавшись, для чего Анни её фамилия. Её выцветшие бледно-голубые глаза проницательно блеснули. – До сих пор, по прошествии стольких лет. Так что в интернете меня не найти.
Эрик указал на загадочный предмет на кофейном столике напротив дивана, больше всего напоминавший старомодную пишущую машинку.
– Это, – произнёс он выразительно, – не что иное, как «Энигма», шифровальная машина, которую во времена Второй мировой войны применяли для кодирования сообщений. Даже перехватив такое сообщение, разведчики не могли его прочитать. А Берил была в числе немногих математиков, сумевших расшифровать код «Энигмы». Благодаря чему война закончилась скорее, чем могла бы, и погибло гораздо меньше людей.
Системы счисления
Десятичная
Система, которой мы обычно пользуемся при счёте – десятичная система, – имеет основание 10, по числу цифр от 0 до 9.
Мы считаем от 1 до 9 и переходим к следующему разряду – десяткам. Например:
36 = 3 × 10 плюс 6 × 1;
48 = 4 × 10 плюс 8 × 1;
148 = 1 × 100 плюс 4 × 10 плюс 8 × 1
и так далее.
Двоичная
В первых компьютерах применялась двоичная система счисления. Она названа так потому, что её основание – число 2: это значит, что в ней есть только две цифры – 0 и 1.
10 = 1 × 2 плюс 0 × 1 – то есть число 2 в десятичной системе;
11 = 1 × 2 плюс 1 × 1 – то есть число 3;
111 = 1 × 4 плюс 1 × 2 плюс 1 × 1 – то есть число 7.
В микросхемах первых компьютеров было всего два положения: «выключено» и «включено»; поэтому двоичный код – код, основанный на двоичной системе, – хорошо подходил для вычислений: ноль в ней соответствовал положению «выключено», а единица – «включено».
Шестнадцатеричная
Современные компьютеры намного сложнее, и код часто пишут в шестнадцатеричной системе счисления с основанием 16. Счет идёт от 0 до 9, а дальше 10 обозначается буквой A, 11 – буквой B и так далее до буквы F (то есть до 15).
Следовательно, C обозначает 12 из десятичной системы.
10 – так в шестнадцатеричной системе записывается число 16;
11 – это 17;
1F – это 31 (то есть 1 x 16 плюс F × 1 (15));
20 – это 32 (2 × 16);
F7 – это 247 (F × 16 (15 × 16 = 240) плюс 7 × 1);
100 – это 256.
Взлом кода
Взломом обычно называют расшифровку сообщений, когда у расшифровщика нет доступа к секретному ключу, которым пользовался отправитель. Другое название этого процесса – криптоанализ.
В докомпьютерную эру
До появления цифровых компьютеров шифровальщики работали с буквами или же с цифрами, заменявшими буквы. Например, можно было заменить каждую букву в сообщении другой буквой. В простом коде буква А заменялась на Д, Б заменялась на Е и так далее. Или же расположение букв в алфавите изменялось определённым образом.
При расшифровке такого сообщения имело смысл подсчитать, сколько раз та или иная буква появляется в зашифрованном тексте (это называется частотный анализ), а затем угадать какие-то из замен. Например, мы знаем, что буква «о» встречается в очень многих словах, так что если в зашифрованном тексте часто попадается буква «ч», то можно предположить, что она заменяет букву «о». А учитывая, что в сообщении всегда присутствует смысл, одной верной догадки может оказаться достаточно, чтобы правильно определить остальные замены.
В более сложных шифрах для каждой буквы сообщения могут применяться комбинации букв алфавита, и возможности для шифрования очень широки: так, если в алфавите 33 буквы, то для шифрования первой буквы комбинации могут составляться из 33 букв, для второй – из 32 букв, для третьей – из 31 и так далее.
Современная дешифрация сообщений
Современные методы применимы не только к буквам, но и к битам (единицам и нолям). При зашифровке и дешифровке используется секретный ключ, который представляет собой длинную последовательность битов (единиц и нолей).
256-битный ключ считается в наши дни вполне достаточным для того, чтобы помешать взломщику кода, сидящему за суперкомпьютером, найти ключ «лобовым методом» – полным перебором возможных вариантов.
ВЗЛОМ КОДА (+ 1 БУКВА) ГИМПН ЛПЕБ
ДЖОРДЖ (+ 3 БУКВЫ) ЖЙСУЖЙ
АННИ (− 1 БУКВА) ЯММЗ
– Вот это да! – воскликнула Анни, отрывая взгляд от телефона. – Значит, вы могли читать тайные послания, а те, кто их писал, понятия не имели, что вы в курсе их планов? Это как если бы кто-то сейчас прочитал все мои мейлы… Хотя, конечно, я ни с кем не воюю, – добавила она. – Разве что с Карлой Кусзанос, которая надо мной издевалась, когда я неправильно написала что-то на доске…
– Именно, – кивнула Берил. – Мы перехватывали их послания, расшифровывали и таким образом узнавали их планы. И это давало нам огромное преимущество.
– Круто! – восхитилась Анни. – Уважуха, Берил! – И она снова принялась печатать на телефоне.
– Это что, настоящая «Энигма»? – Джордж пожирал машину глазами. В доме Беллисов появилось очередное умопомрачительное устройство! Он в миллионный раз пожалел, что родился у своих мамы с папой, а не у Беллисов.
– Да, – сказала Берил, улыбаясь ему. – И я дарю её Эрику.
Энигма
Военные тайны
Во время Второй мировой (1939–1945) воюющие страны для шифрования важных сообщений использовали машины. В Германии это была машина «Энигма», в Британии – «Тайпекс».
Оператор «Энигмы» печатал послание на клавиатуре, расположенной в передней части машины, а машина выдавала зашифрованный текст, указывая на каждую закодированную букву вспыхиванием маленькой электрической лампочки. Зашифрованное сообщение записывали от руки, переводили в азбуку Морзе и затем передавали по радио.
Три ротора
У «Энигмы» было три ротора – три колеса, начинённые сложными электросхемами. Роторы можно было вынимать из машины и вращать таким образом, чтобы каждый из трёх можно было поставить в любую из 26 возможных позиций (26 – число букв английского алфавита). Таким образом, имелось шесть (3 × 2 × 1) способов взаимного расположения роторов и 26 × 26 × 26 позиций для каждой буквы. Чтобы ещё усложнить эту систему, можно было подключить к передней панели до десяти коротких проводков, и каждый из способов подключения создавал полностью новую систему из 26 × 26 × 26 шифров для сообщения. У получателя сообщения была своя «Энигма», настроенная точно таким же способом, и он вводил в неё зашифрованное сообщение. Записывая, какие лампочки загорались, можно было прочесть исходный текст. Каждый оператор «Энигмы» ежедневно узнавал, куда и в какое положение нужно поставить какой ротор и какие провода подключать к передней панели.
Взлом «Энигмы»
Шифровальная система была основана на секретной информации, известной отправителю и получателю. В случае «Энигмы» это были ежедневные инструкции по настройке и использованию машины, и задача заключалась в том, чтобы надёжно передать их большому числу людей. Ошибка любого из них привела бы к утечке важной информации. Инструкции в печатном виде тоже были уязвимы – их могли похитить или захватить в бою. Благодаря нескольким ошибкам немцев, достижениям математики и творческому мышлению, взломщики кода – сначала в Польше, а позже в Блетчли-Парке в Англии – сумели распознать настройки машин «Энигма» и получили возможность расшифровывать немецкие сообщения. Важнейшим элементом этого метода была особая машина, которую сконструировал гений математики Алан Тьюринг; эту машину называли «бомбой Тьюринга». В Блетчли-Парке также был разработан «Колосс» – первая программируемая вычислительная машина на электронных лампах; с помощью «Колосса» взломали код другой немецкой шифровальной машины, которая называлась «Лоренц».