Начальство не могло дать на это никакого вразумительного ответа, только традиционные заклинания про криптографические результаты, которые сейчас «нельзя получить на кончике пера», имея в виду опять же использование PC для тупых задач перебора ключей или сбора статистики при анализе древних военных схем. А компьютерные фанаты плодились в Спецуправлении с ужасающей быстротой, это, в основном, были молодые ребята, закончившие Высшую Школу КГБ, и проводившие за компьютером все рабочее время, часто даже оставаясь и после работы. Необходимого выхода для их фанатизма тогда в Спецуправлении не находилось. Они находили себе друзей-программистов на стороне, в открытом мире, полулегально подрабатывали в появившихся коммерческих фирмах, но развернуться по-настоящему для создания серьезных коммерческих шифров, которые смогли бы быть конкурентоспособными на мировых рынках, никто так и не смог. Такое было невозможно в принципе во времена СССР.
Эти ребята вызывали у меня уважение и чувство зависти: они свои результаты видят на экране, могут их проверить и чуть ли не потрогать руками. А мои теоремы и методы криптографического анализа почти всегда абстрактны, удовольствия от их получения у меня в последнее время возникало все меньше и меньше. Тянуло в фанаты.
Глава 5. Фанат
Я наконец-то дорвался до компьютера! Еще первое знакомство с IBM PC XT привело меня в неописуемый восторг, стало ясно: вот именно то, к чему я привязался надолго, может быть на всю оставшуюся жизнь. Первый (игровой) этап обучения пройден, все чаще стало появляться желание реализовать все свои замыслы на PC. А это, в первую очередь, шифры на новой элементной базе, им было отдано почти десять лет жизни, появилась уверенность, какое-то подсознательное чувство, что на этом пути можно находить элегантные и очень надежные криптографические решения. С помощью PC легко сделать ключом случайную подстановку в шифре типа «Ангстрем–3», а тогда все мыслимые подходы к анализу такого шифра становятся невероятно трудоемкими, глухими, а все положительные качества – скорость и простота реализации – сохраняются. Такой регистр сдвига с неизвестной подстановкой можно использовать и для многих других криптографических целей, например, в качестве генератора случайных чисел или для функции хеширования.
Разные напыщенные начальники всегда вызывали у меня чувство неприязни, гораздо приятнее иметь дело со специалистами, людьми, отличающимися профессионализмом, преданностью своей профессии, умом, талантом, настойчивостью. А тут самому пришлось стать пусть небольшим, но начальничком, у которого в подчинении свыше 20 человек. В условиях Спецуправления 8 Главного управления КГБ это значит только и делай, что руководи, давай указания, проверяй, ругайся, разделяй и властвуй. Ну уж нет, эта суета не по мне, я сам в такие начальники никогда не лез. Но должность маленького начальничка дала две неоценимые по тем временам вещи: свой, истинно персональный компьютер и отдельный кабинет, в котором кроме меня был еще один настоящий начальник, а я — его зам. Никакой кучи народа в комнате, никто не претендует на твой компьютер, начальник (настоящий) очень любит разделять и властвовать и избавил меня от этой напасти. Я остался наедине с PC, с самым что ни на есть персональным компьютером, в спокойной и почти уединенной обстановке, сам себе режиссер. Никакая сила уже не могла оттянуть меня от моей любимой игрушки.
Сначала я погрузился в язык Assembly. Какими-то правдами и неправдами был добыт оригинал книги Питера Нортона «Программирование на языке ассемблера» с кучей примеров. Толстенная книга, но когда наглядно видишь на экране, что все запрограммировал верно, результат совпал, появляется азарт. Методика одна и та же, что в математике, что в программировании: от простейших вещей ко все более и более сложным, стараясь не перескакивать через этапы и все досконально понять. Но программирование интереснее тем, что результат конкретен и нагляден, его можно чуть ли не потрогать руками, тогда как в математике теоремы абстрактные, в них очень легко упустить какую-то цепочку при доказательстве и не заметить, что движешься в неверном направлении. В программировании уход в сторону, какие-то непонятные «глюки» выявляются гораздо быстрее, этот процесс эмоционально более интересен.