Чтение онлайн

на главную

Жанры

Книга шифров. Тайная история шифров и их расшифровки
Шрифт:

В значительной степени позаимствовав концепцию универсальной машины Алана Тьюринга, Ньюмен спроектировал машину, которая была способна сама настраиваться на решение различных задач — то, что сегодня мы назвали бы программируемым компьютером.

Реализация конструкции Ньюмена считалась технически невозможной, так что руководство Блечли даже не стало рассматривать проект. По счастью, Томми Флауэрс, инженер, принимавший участие в обсуждении проекта Ньюмена, решил проигнорировать скептицизм Блечли и приступил к созданию такой машины. В исследовательском центре Управления почт и телеграфа в Доллис Хилл, в Северном Лондоне, Флауэрс взял чертежи Ньюмена и потратил десять месяцев, чтобы создать на его основе машину «Колосс», которую 8 декабря 1943 года передал в Блечли-Парк. Машина состояла из 1500 электронных ламп, которые действовали значительно быстрее медлительных электромеханических релейных переключателей, используемых

в «бомбах». Но гораздо важнее скорости «Колосса» являлось то, что эту машину можно было программировать. Благодаря этому-то «Колосс» и стал предшественником современных цифровых ЭВМ.

После войны «Колосс», как и все остальное в Блечли-Парке, был демонтирован, а всем, кто так или иначе был связан с работой над «Колоссом», было запрещено даже упоминать о нем. Когда Томми Флауэрсу приказали уничтожить чертежи «Колосса», он послушно отнес их в котельную и сжег. Так были навсегда утрачены чертежи первого в мире компьютера. Такая секретность означала, что признание за изобретение компьютера получили другие ученые. В 1945 году Джон Преспер Эккерт и Джон Уильям Мочли в Пенсильванском университете завершили создание ЭНИАКа (электронного числового интегратора и компьютера), состоящего из 18 000 электронных ламп и способного выполнять 5000 вычислений в секунду. И в течение десятилетий именно вычислительная машина ЭНИАК, а не «Колосс», считалась прародительницей всех компьютеров.

Внеся вклад в рождение современного компьютера, криптоаналитики продолжали и после войны развивать компьютерные технологии и применять вычислительную технику для раскрытия любых видов шифров. Теперь они могли использовать быстродействие и гибкость программируемых компьютеров для перебора всех возможных ключей, пока не будет найден правильный ключ. Но время шло, и уже криптографы начали пользоваться всей мощью компьютеров для создания все более и более сложных шифров. Короче говоря, компьютер сыграл решающую роль в послевоенном поединке между шифровальщиками и дешифровальщиками.

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

Второе отличие заключается просто в быстродействии. Электроника может работать гораздо быстрее механических шифраторов; компьютер, запрограммированный для имитирования шифра «Энигмы», может вмиг зашифровать длинное сообщение. С другой стороны, компьютер, запрограммированный на использование существенно более сложного способа шифрования, по-прежнему способен выполнить свою задачу за приемлемое время.

Третье, и, пожалуй, наиболее существенное отличие — это то, что компьютер выполняет зашифровывание чисел, а не букв алфавита. Компьютеры работают только с двоичными числами — последовательностями единиц и нулей, которые называются двоичными знаками, или, для краткости, битами. Поэтому любое сообщение перед зашифровыванием должно быть преобразовано в двоичные знаки. Такое преобразование может выполняться в соответствии с различными протоколами, например, американским стандартным кодом для обмена информацией, широко известным как ASCII. В ASCII каждой букве алфавита сопоставляется число длиной 7 бит. Будем пока рассматривать двоичное число просто как последовательность единиц и нулей, которая однозначно определяет каждую букву (таблица 24), подобно тому, как в коде Морзе каждая буква обозначается своей последовательностью точек и тире. Существует 128 (27) способов расположения 7 двоичных знаков, поэтому в ASCII можно определить до 128 различных символов. Этого вполне достаточно, чтобы задать все строчные буквы (например, а = 1100001), все необходимые знаки пунктуации (например, ! = 0100001), а также другие символы (например, & = 0100110). После того как сообщение будет переведено в двоичный вид, можно приступать к его зашифровыванию.

Хотя мы имеем дело

с компьютерами и числами, а не с машинами и буквами, зашифровывание по-прежнему выполняется с помощью традиционных способов замены и перестановки, при которых элементы сообщения заменяются другими элементами, либо элементы сообщения меняются местами, либо оба эти способа применяются совместно. Любой процесс зашифровывания — неважно, насколько он сложен — можно представить как сочетание этих двух простых операций. В следующих двух примерах наглядно показывается, насколько просто можно осуществить компьютерное шифрование с помощью элементарного шифра замены и элементарного шифра перестановки.

Допустим, что мы хотим зашифровать сообщение HELLO с использованием простой компьютерной версии шифра перестановки. Перед тем как начать зашифровывание, мы должны вначале преобразовать сообщение в ASCII-код в соответствии с таблицей 24:

Открытый текст = HELLO = 1001000 1000101 1001100 1001100 1001111

Здесь можно было бы воспользоваться одним из простейших видов шифра перестановки и поменять местами первую и вторую цифры, третью и четвертую цифры, и так далее. В этом случае последняя цифра останется на своем месте, поскольку их количество нечетно. Чтобы было более понятно, я убрал пробелы между группами чисел, представляющих собой ASCII-код исходного открытого текста, записал их сплошной строкой, а затем, для наглядности, выровнял относительно получившегося шифртекста:

При выполнении перестановок на уровне двоичных цифр возникает интересный аспект, заключающийся в том, что перестановки можно осуществлять внутри буквы. Более того, биты одной буквы можно менять местами с битами соседней буквы.

Так, например, если переставить седьмую и восьмую цифры, то поменяются местами последний 0 буквы Н и первая 1 буквы Е. Зашифрованное сообщение представляет собой сплошную строку из 35 двоичных цифр, которую можно передать получателю и из которой затем, путем обратной перестановки, можно воссоздать исходную строку двоичных цифр. После чего получатель преобразует двоичные цифры ASCII-кода и восстановит сообщение HELLO.

Таблица 24. ASCII-код двоичного представления заглавных букв

Допустим, что теперь мы хотим зашифровать это же сообщение, HELLO, только на этот раз с помощью простой компьютерной версии шифра замены. Перед тем как приступить к зашифровыванию, мы вначале опять-таки преобразуем сообщение в ASCII-код. Как обычно, при замене используется ключ, который был согласован между отправителем и получателем. В нашем случае ключом будет слово DAVID, преобразованное в ASCII-код, которое используется следующим образом. Каждый элемент открытого текста «добавляется» к соответствующему элементу ключа. «Добавление» двоичных цифр может выполняться, исходя из двух простых правил. Если элементы в открытом тексте и в ключе одинаковы, то элемент в открытом тексте заменяется на 0 в шифртексте. Если же элементы в сообщении и в ключе различны, то элемент в открытом тексте заменяется на 1 в шифртексте:

Получающееся зашифрованное сообщение представляет собой сплошную строку из 35 двоичных цифр, которую можно передать получателю, а тот уже с помощью этого же ключа проведет обратную замену, вновь воссоздав исходную строку двоичных цифр. После чего получатель преобразует двоичные цифры ASCII-кода и восстановит сообщение HELLO.

Компьютерное шифрование ограничивалось только тем кругом лиц, у кого имелись компьютеры; первоначально это означало правительство и военных. Однако ряд научных открытий, и технологических и инженерных достижений сделали компьютеры и компьютерное шифрование гораздо более широко доступными. В 1947 году в компании AT&T Bell Laboratories был создан транзистор — дешевая альтернатива электронной лампе. Использование компьютеров для решения промышленных и коммерческих задач стало реальностью в 1951 году, когда такие компании, как Ферранти, начали изготавливать компьютеры на заказ. В 1953 году IBM выпустила свой первый компьютер, четыре года спустя она же представила Фортран — язык программирования, который позволил «обычным» людям писать компьютерные программы. А создание в 1959 году интегральных схем провозгласило новую эру компьютеризации.

Поделиться:
Популярные книги

Эфир. Терра 13. #2

Скабер Артемий
2. Совет Видящих
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эфир. Терра 13. #2

Я – Орк. Том 3

Лисицин Евгений
3. Я — Орк
Фантастика:
юмористическое фэнтези
попаданцы
5.00
рейтинг книги
Я – Орк. Том 3

Охота на разведенку

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
6.76
рейтинг книги
Охота на разведенку

СД. Восемнадцатый том. Часть 1

Клеванский Кирилл Сергеевич
31. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.93
рейтинг книги
СД. Восемнадцатый том. Часть 1

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Назад в СССР: 1986 Книга 5

Гаусс Максим
5. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Назад в СССР: 1986 Книга 5

Титан империи 5

Артемов Александр Александрович
5. Титан Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Титан империи 5

Сыночек в награду. Подари мне любовь

Лесневская Вероника
1. Суровые отцы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сыночек в награду. Подари мне любовь

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье

Старатель 3

Лей Влад
3. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель 3

Измена. Он все еще любит!

Скай Рин
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Измена. Он все еще любит!

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Никто и звать никак

Ром Полина
Фантастика:
фэнтези
7.18
рейтинг книги
Никто и звать никак