Джордж и код, который не взломать. Стивен Хокинг
искать в Википедии статью про Берил Уайльд.
– Как правильно пишется ваша фамилия? – спросила она.
– Вся информация обо мне защищена законом о государственной тайне, – сказала Берил, догадавшись, для чего Анни её фамилия. Её выцветшие бледно-голубые глаза проницательно блеснули. – До сих пор, по прошествии стольких лет. Так что в интернете меня не найти.
Эрик указал на загадочный предмет на кофейном столике напротив дивана, больше всего напоминавший старомодную пишущую машинку.
– Это, – произнёс он выразительно, – не что иное, как «Энигма», шифровальная машина, которую во времена Второй мировой войны применяли для кодирования сообщений. Даже перехватив такое сообщение, разведчики не могли его прочитать. А Берил была в числе немногих математиков, сумевших расшифровать код «Энигмы». Благодаря чему война закончилась скорее, чем могла бы, и погибло гораздо меньше людей.
Десятичная
Система, которой мы обычно пользуемся при счёте – десятичная система, – имеет основание 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.
Взломом обычно называют расшифровку сообщений, когда у расшифровщика нет доступа к секретному ключу, которым пользовался отправитель. Другое название этого процесса – криптоанализ.
В докомпьютерную эру
До появления цифровых компьютеров шифровальщики работали с буквами или же с цифрами, заменявшими буквы. Например, можно было заменить каждую букву в сообщении другой буквой. В простом коде буква А заменялась на Д, Б заменялась на Е и так далее. Или же расположение букв в алфавите изменялось определённым