Криптография и свобода
Шрифт:
Логичный ответ – создавать боевые шифры, реализуемые с помощью персональных компьютеров – отметаем не то, что с порога, а за много верст до него. Это с помощью персональных компьютеров наших вероятных противников создавать военные шифры? Товарищ Сталин, слышите, что тут без Вас стало твориться в любимой Вами криптографии?
Ну а не военные? Например, коммерческие, как и американцы? Вроде бы и советский стандарт шифрования для этого сделали?
У меня есть своя точка зрения на то, для чего сделали советский стандарт шифрования. Как там говорил Никита Сергеевич Хрущев: «Покажем Кузькину мать Америке»? Кажется так. Долгое время в гонке вооружений между СССР и США действовал принцип: око за око, зуб за зуб. Сделали американцы новый стратегический бомбардировщик – дадим на него свой советский ответ. Сделали открытую криптосхему DES, взбудоражили советское криптографическое начальство, заставили его напрячься – получите в ответ советский открытый стандарт шифрования, слегка переделанный
Почти 10 лет создавали советский стандарт шифрования, в основном перестраховываясь от выдачи каких-то таинственных криптографических секретов. За эти 10 лет в стране много интересных вещей случилось, к концу уже зазвучали слова «перестройка», «хозрасчет», «гласность» и кое-что еще. Но мышление советского криптографического начальства по-прежнему оставалось идеологически кристально чистым: коммерческая криптография противоречит учению великого Сталина. А уж о том, чтобы с помощью «буржуазной лженауки» офицеры Спецуправления работали во благо каких-то коммерсантов, не могло быть даже самых отдаленных помыслов.
И вот, помимо воли начальства, в низах — повальное увлечение персональными компьютерами. Куда, в какое криптографическое русло его направить?
Первоначально, естественно, — на автоматизацию криптографического анализа советских балалаек. Пускай на PC считают различные статистики. Но очень скоро выяснилось, что импортные PC гораздо умнее советских монстров – ЭВМ, и на них можно делать намного более интересные криптографические задачи, а именно: использовать их в качестве шифровальной техники с практически неограниченными возможностями для реализации оригинальных криптосхем, для построения удобного интерфейса, для выработки ключей и т.п. А для чего и для кого? Кто будет конечным потребителем такой чисто программной продукции, использующей в качестве элементной базы стандартные персональные компьютеры зарубежного производства?
Начальство не могло дать на это никакого вразумительного ответа, только традиционные заклинания про криптографические результаты, которые сейчас «нельзя получить на кончике пера», имея в виду опять же использование PC для тупых задач перебора ключей или сбора статистики при анализе древних военных схем. А компьютерные фанаты плодились в Спецуправлении с ужасающей быстротой, это, в основном, были молодые ребята, закончившие Высшую Школу КГБ, и проводившие за компьютером все рабочее время, часто даже оставаясь и после работы. Необходимого выхода для их фанатизма тогда в Спецуправлении не находилось. Они находили себе друзей-программистов на стороне, в открытом мире, полулегально подрабатывали в появившихся коммерческих фирмах, но развернуться по-настоящему для создания серьезных коммерческих шифров, которые смогли бы быть конкурентоспособными на мировых рынках, никто так и не смог. Такое было невозможно в принципе во времена СССР.
Эти ребята вызывали у меня уважение и чувство зависти: они свои результаты видят на экране, могут их проверить и чуть ли не потрогать руками. А мои теоремы и методы криптографического анализа почти всегда абстрактны, удовольствия от их получения у меня в последнее время возникало все меньше и меньше. Тянуло в фанаты.
Глава 5. Фанат
Я наконец-то дорвался до компьютера! Еще первое знакомство с IBM PC XT привело меня в неописуемый восторг, стало ясно: вот именно то, к чему я привязался надолго, может быть на всю оставшуюся жизнь. Первый (игровой) этап обучения пройден, все чаще стало появляться желание реализовать все свои замыслы на PC. А это, в первую очередь, шифры на новой элементной базе, им было отдано почти десять лет жизни, появилась уверенность, какое-то подсознательное чувство, что на этом пути можно находить элегантные и очень надежные криптографические решения. С помощью PC легко сделать ключом случайную подстановку в шифре типа «Ангстрем–3», а тогда все мыслимые подходы к анализу такого шифра становятся невероятно трудоемкими, глухими, а все положительные качества – скорость и простота реализации – сохраняются. Такой регистр сдвига с неизвестной подстановкой можно использовать и для многих других криптографических целей, например, в качестве генератора случайных чисел или для функции хеширования.
Разные напыщенные начальники всегда вызывали у меня чувство неприязни, гораздо приятнее иметь дело со специалистами, людьми, отличающимися профессионализмом, преданностью своей профессии, умом, талантом, настойчивостью. А тут самому пришлось стать пусть небольшим, но начальничком, у которого в подчинении свыше 20 человек. В условиях Спецуправления 8 Главного управления КГБ это значит только и делай, что руководи, давай указания, проверяй, ругайся, разделяй и властвуй. Ну уж нет, эта суета не по мне, я сам в такие начальники никогда не лез. Но должность маленького начальничка дала две неоценимые по тем временам вещи: свой, истинно персональный компьютер и отдельный кабинет, в котором кроме меня был еще один настоящий начальник, а я — его зам. Никакой кучи народа в комнате, никто не претендует на твой компьютер, начальник (настоящий) очень любит разделять и властвовать и избавил меня от этой напасти. Я остался наедине с PC, с самым что ни на есть персональным компьютером, в спокойной и почти уединенной обстановке, сам себе режиссер. Никакая сила уже не могла оттянуть меня от моей любимой игрушки.
Сначала я погрузился в язык Assembly. Какими-то правдами и неправдами был добыт оригинал книги Питера Нортона «Программирование на языке ассемблера» с кучей примеров. Толстенная книга, но когда наглядно видишь на экране, что все запрограммировал верно, результат совпал, появляется азарт. Методика одна и та же, что в математике, что в программировании: от простейших вещей ко все более и более сложным, стараясь не перескакивать через этапы и все досконально понять. Но программирование интереснее тем, что результат конкретен и нагляден, его можно чуть ли не потрогать руками, тогда как в математике теоремы абстрактные, в них очень легко упустить какую-то цепочку при доказательстве и не заметить, что движешься в неверном направлении. В программировании уход в сторону, какие-то непонятные «глюки» выявляются гораздо быстрее, этот процесс эмоционально более интересен.
Как изменилась жизнь! Вместо скучного досиживания до 6 вечера дежурный офицер чуть ли не насильно отгонял меня от компьютера в 9 вечера, когда объект закрывался. У меня был суперсовременный по тем временам Laptop с плазменным экраном, первое подобие нынешних Notebook, только без автономного питания, но размером почти такой же, чуть побольше. Его можно было даже засунуть в сумку – невероятно для тех времен, когда еще свежи были в памяти тапочки, надеваемые на сапоги в комнате, где стояло советское чудо вычислительной техники – «Рута–110». Поражали возможности: жесткий диск – 40 Мб, это же огромная величина! Сколько программ можно на него записать! 286 процессор – насколько более быстрый, по сравнению с IBM PC XT. Сколько же на нем всего напахать можно! Да здесь какой угодно шифратор сделать можно, не связываясь ни с каким заводом, все в твоих руках.
Заработали первые ассемблеровские программы: оказывается сравнительно легко сделать свои прерывания в DOS, программировать ввод-вывод, лазить по оперативной памяти. Наигравшись вдоволь с Assembly, я занялся его старшим братом – языком С, тогда еще без всяких плюсов.
Математик любит искать во всем логику, закономерности, разумность. Если ее не хватает в реальной жизни, то компьютер, операционная система, языки программирования дополняют этот дефицит, служат своего рода отдушиной, тем сказочным миром, который помогает легче переносить уродливость мира реального. Следовательно, чем более иррациональным будет повседневное бытие, тем больше будет тяга к компьютеру, к его удивительно логичному и разумному поведению, осмысленным действиям, внутренней логике, виртуальной действительности. Там нет тупых и невежественных генералов, очередей за мясом, совхозов и овощебаз, общественной работы и субботников, там только четкие и понятные критерии, TRUE и FALSE, единица и ноль. А специалист по компьютерам, хороший программист всегда будет востребован, при любом правителе, любой идеологии, любых начальниках. Отсюда уже недалеко и до свободы, до реальной свободы, когда пропадает этот инстинктивный трепет перед важными надутыми начальниками, не освоившими толком даже компьютерных игр.
Сидящий напротив мой начальник все время гадал: сколько нужно времени, чтобы я «сломался», ну или хотя бы мне надоел компьютер: месяц? полгода? год? Своего рода приложение к теме «Экстракт». Но все его прогнозы оказались с «глюками», компьютер засасывал меня все больше и больше. После того, как были запрограммированы и отлажены алгоритмы, реализующие шифры на новой элементной базе, захотелось сделать к ним удобный интерфейс. Ну а это уже такой простор, просто вселенная! И еще, конечно же, хотелось, чтобы мой компьютерный фанатизм принес кому-то реальную пользу, чтобы моими программами пользовались, чтобы вся эта огромная работа не пропала даром. А вот это уже в системе Спецуправления 8 ГУ КГБ СССР сделать было намного сложнее, ибо там с незапамятных времен действовали негласные правила: не высовывайся! будь как все! не проявляй лишней инициативы, она наказуема! Короче, в триаде чиновник-офицер-специалист можно было спорить только о том, что поставить на первое место: чиновника или офицера. В дальнейшем сама жизнь присудила золотую медаль (с зеленью) чиновнику, а все недовольные таким раскладом специалисты попросту разбежались кто куда. Тогда же, в конце 80–х годов, у меня еще была какая-то наивная вера в справедливость, в то, что эта система способна адекватно воспринимать те компьютерные программы и усилия по их внедрению, которые стали моим призванием, всем смыслом жизни. Как говорил Александр Солженицын, тоже, кстати, имевший отношение к криптографии, «Бодался теленок с дубом».