"Кpиптогpафия от папиpуса до компьютеpа"

              Жельников Владимиp     -М., ABF, 1996

ВВЕДЕНИЕ

         "Сограждане!" - начал он взволнованным голосом, но так как
речь его была секретная, то весьма естественно, что никто ее не
слыхал.
                  М. Салтыков-Щедрин.
             "История одного города "

Решительно нет никакой возможности понять пути развития человеческого общества в отрыве от его жгучего стремления к тайнам. Политики и военные, священники и торговцы, писатели и ученые, шарлатаны и аферисты тысячелетиями развивали науку о секретах, доводя их создание до совершенства, служили тайнам, насыщали свои потребности в них. Без тайн не может быть не только государства, но даже малой общности людей - без них нельзя выиграть сражение или выгодно. продать товар, одолеть своих политических противников в жестокой борьбе за власть или сохранить первенство в технологии. Тайны составляют основу науки, техники и политики любой человеческой формации, являясь цементом государственности.
     История хранит так много секретов, что просто удивительно, до чего людям они необходимы. Служба безопасности пытается делить их на ряд уровней: от для служебного пользования до совершенно секретно и сугубо доверительно. Американский физик Ричард Фейнман шутил, что при работе над созданием атомной бомбы ему наряду с документами, имеющими пометку ingest after reading, то есть буквально съесть после прочтения, попадались иногда бумаги и со штампом уничтожить до прочтения. Сколь ни высоконаучна теория, лежащая в основе такой классификации, она сводится к заурядной дискриминации групп людей, нарушая их естественные права. Если финансовые хищения юридически можно делить на мелкие и крупные, то степень секретности классифицировать абсурдно. Доклад Хрущева на XX съезде партии о культе личности Сталина представлялся секретным лишь для партаппарата, но не для большинства обывателей, прекрасно знавших положение в обществе.
     Секрет для каждого конкретного человека либо есть, либо его нет. Более того, вскрытие тайны аналитически не только не составляет преступления, а являет торжество человеческого разума и должно приветствоваться, если делается открыто, из лучших побуждений. Французы говорят: "Удел богов - создавать тайны, а королей - раскрывать". Действительно, покажите специалистам лишь один узел сложного устройства, и они реконструируют полный его вид, назначение и характеристики. Если биолога спросить, чем питаются черти, то ответ будет однозначным: "Рога и копыта - явные признаки травоядных!"
     Эта книга познакомит читателей с одним из величайших видов тайн - наукой о шифрах или криптологией. Изобретенная тысячелетия назад письменность обладает свойством вседоступности, которое, в зависимости от получателя сообщения, можно рассматривать как полезное, или как вредное. Мы обычно рады получить письмо от знакомых, но бываем не в восторге, заметив, что конверт вскрыт и с его содержимым кто-то ознакомился. Потому параллельно письменности, развивается секретное письмо, сиречь по-гречески криптография. Она предназначена спрятать смысл письма от просто грамотных людей и сделать его доступным лишь определенным адресатам. Поскольку компьютер революционно расширил в последние годы сферу письменности, то почти одновременно возникла потребность столь же большого развития криптографии. Насколько актуально ее использование сейчас - судите сами.
     От кого же придется защищать свои данные? Пословица гласит: "От своего вора не убережешься". Если верить газетным публикациям, то российская внешняя разведка готова отечественным структурам продавать технологические секреты, выведанные за рубежом. На практике это может выглядеть таким образом. Россиянин ведет свое дело в США, а наша разведка, выкрав там его секреты, продаст их в России совместной с американцами фирме. Теория честного жулика, который в своем доме не ворует, в данном случае порочна. Наши разведчики и их шпионы мирно договариваются, какими секретами, похищенными в своих странах, они согласны обменяться и как поделить вырученные от этого деньги. Стремление государственных секретных служб ввести свои правила шифрования частных и коммерческих данных означает ни что иное, как желание Старшего Брата выведать их.
     Автору неизвестны случаи, котда служба внешней российской разведки оказала значимую помощь стратегическим разработкам. Люди постарше вспомнят, как во время своего визита в США Хрущев на банкете в Калифорнии целовался с неким режиссером, смущая этим российских телезрителей. Так вот, брат этого режиссера, "секретный" физик Бруно Понтекорво в разгар холодной войны 1950 года бежал в Россию из американского атомного центра Лос-Аламос, прихватив элементы технологии производства ядерного оружия. (Сейчас известно, что технологии создания водородной бомбы тоже были украдены СССР из США и произвели большое впечатление на Сахарова, но не ускорили собственных разработок.) Но большинство разведчиков невысоко оценивают вклад шпионажа России в создание ею атомной и водородной бомб, так как приближенные формулы расчетов из СССР оказались удобнее и точнее американских. Кроме того, наш метод обогащения урана по разности плотностей соединений U235 и U238 был проще и эффективнее метода собачников из Лос-Аламоса, производящего обогащение урана за счет разницы в скоростях диффузии изотопов. В годы холодной войны объем краж технологий дошел до абсурда - американские и "корейские" самолеты, обладая идентичными системами СВОИ-ЧУЖОЙ, не могли отличить друг друга по изображениям на экранах радиолокаторов.

Другого рода случай произошел в начале 60-х, когда хрущевская оттепель упразднила "железный занавес", отделявший соцлагерь от буржуазного мира. Тогда разведки беспокоил вопрос о состоянии разработок жидкого ракетного топлива у врагов. Поэтому КГБ устроило международную "научную" конференцию по ракетному топливу, строго-настрого запретив своим специалистам приводить конкретные факты о достижениях. Однако спецы из ЦРУ подло провели наших, заявив: "Не будем задавать вопросов, но сами ответим на любые". По характеру заданных на радостях вопросов они многое узнали и о направлениях российских исследований, и об их состоянии, сократив тем самым свое отставание в создании мощных баллистических ракет на пару лет. Теперь, если на одну чашу весов положить "подарки" разведки, а на другую сумму секретов, уплывших за кордон из-за двойной игры или промахов, то неизбежно последует грустный вывод, что научный и экономический шпионажи аморальны, принося крупный ущерб даже стране, их применяющей. И пока существуют разведки, будет угроза раскрытия конфиденциальных данных.

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

Несомненные предвестники апокалипсиса, как взрыв Чернобыля, высыхание Арала, озоновые дыры и братоубийственные войны затмевают в нашем сознании важность сохранности личных тайн, давно грозящую перерасти в проблему, последствия которой могут стать катастрофическими уже в ближайшем будущем. Трогательно наивные люди, верящие, будто неприкосновенность содержания их писем, телеграмм и телефонных разговоров охраняется Конституцией, должны понять: она лишь дает право на такую защиту, но охранять сама не может. У московского международного почтамта нередко можно найти валяющиеся на тротуаре вскрытые письма, так и не дошедшие до получателя. Известная американская киноактриса, ознакомившись со своим досье в ФБР, воскликнула: "Боже, так я всю жизнь купалась в стеклянной ванне на людном перекрестке!" Поэтому когда США в 1994 году пытались принять за стандарт шифрования Clipper, позволяющий правительству читать любые частные шифровки, то более 50000 американцев направили по электронной почте в Вашингтон протесты.

Впрочем, порой некомпетентные сотрудники, отвечающие за безопасность, страшнее шпионов. Примером этого является известное дело Prestel, имевшее место в начале 80-х годов, когда был взломан "электронный почтовый ящик" герцога Эдинбургского. Администратор, отвечающий за работу системы британской электронной почты Prestel, по халатности оставил на экране дисплея свой пароль доступа к системе, и он стал известен злоумышленникам. Другой казус, вполне объяснимый низкой компетентностью служб безопасности произошел, когда бельгийский премьер-министр Вифред Мартене обнаружил, что посторонние через компьютерную сеть имеют доступ к государственным секретам в личных файлах членов кабинета министров. Несколько месяцев электронная почта Мартенса, включая секретную информацию об убийстве британского солдата террористами из Ирландской Республиканской Армии в Остенде, была доступна любопытным. Один из взломщиков для саморекламы показал газетному репортеру, как просто ворваться в компьютер Мартенса, получив доступ к девяти свежим письмам и шифру. Более того, в течение часовой демонстрации, он "столкнулся" с другим вором, грабившим тот же самый компьютер.

Кроме этой проблемы, есть и не менее важная сейчас, пусть не для личности, но для страны - сохранность данных исследований, разработок и стратегической управляющей информации в компьютерных системах. От этого напрямую зависит безопасность общества. Например, злоумышленное нарушение работы программ управления ядерных реакторов Игналинской АЭС в 1992 году по серьезности возможных последствий приравнивается к Чернобыльской катастрофе. Основная опасность "дьяволов компьютерной преступности" состоит в том, что им, как правило, успешно удается скрыть свое существование и следы деятельности. Можно ли чувствовать опасность, если ЭВМ находится дома, а доступ к ней ограничен паролем? Однако известен случай, когда копирование данных с такого компьютера сделал ребенок, не подозревавший ничего плохого и рассчитывавший, запустив данную ему другом дискету, поиграть в новую оч-чень интересную игру.

Статистика экономических преступлений западного мира демонстрирует их перемещение в область электронной обработки данных. При этом лидирующее положение занимают махинации в банках, которые сводятся к изменению данных с целью получения финансовой выгоды. Новизна компьютерных преступлений состоит в том, что информация, представляющая активы фирм, теперь хранится не на бумаге в видимом и легко доступном человеческому восприятию виде, а в неосязаемой и считываемой только машинами форме на электронных устройствах хранения. Раскрывается лишь малая толика компьютерных преступлений, так как финансовые компании предпочитают о них умалчивать, чтобы не потерять престижа. Удивительно поэтому было заявление Сити банка, что за 1994 год выявлено около ста попыток электронных краж из России и половина из них окончилась удачно, нанеся ущерб на десятки миллионов долларов. В связи с этим из прессы стали известны имена таких петербуржцев, как Владимир Левин и супруги Корольковы (Похоже, что это были рядовые исполнители.).

Эксперты считают, что около 70% финансовых преступлений в банках совершают свои сотрудники, связанные с обработкой данных на вычислительной технике. Цена каждого подобного проникновения составляет в США от десятков тысяч до миллиона долларов и, по оценке криминалистов, убытки от незаконного проникновения в финансовые автоматизированные системы оцениваются минимум в десятки миллионов долларов ежегодно. Кто знает, чем был вызван "черный понедельник", 10 октября 1987 года, когда компьютеры многих бирж и банков Уолл-стрита внезапно стали распродавать акции, которые в то время следовало бы придержать?

За примерами легкости потрошения закрытых для посторонних компьютеров далеко ходить не надо. Для демонстрации своих возможностей хакеры неоднократно взламывали секретные системы на глазах изумленных экспертов. Термин хакер (По-русски hacker ближе всего к словам трудяга, поденщик, наемный рабочий. Хакерами еще порой называют журналистов, пишущих скандальные статьи по заказу.) стал впервые использоваться в Массачусетском технологическом институте в начале семидесятых годов, применительно к молодым программистам и проектировщикам аппаратных средств ЭВМ, которые в гаражах и подвалах мастерили первые персональные компьютеры и даже пытались продавать их. Позднее газетчики стали называть хакерами компьютерных преступников всех родов и мастей.

Чтобы понять истоки нынешнего компьютерного разбоя, нужно осмыслить социальный климат 60-х на Западе. То поколение молодежи вырастало в мирное время, прочувствовав на себе массу социальных несправедливостей. С вовлечением США во Вьетнамскую войну и призывом на нее студенты нашли первую причину для протеста, и университетские городки заполнили демонстранты. Расстрелу манифестантов в Беркли молодежь противопоставила не прямое насилие, а лояльные формы неповиновения, в виде демонстративного сожжения призывных документов и разрушения данных в компьютерах Министерства обороны.

Другой аспект современного мира волновал молодежь не меньше: почему миллионы людей живут в бесконечной бедности. Казалось простым и логичным обвинить в этой бедности государство и тех, кто побогаче. Молодое поколение хотело изменить все сразу вызвав хаос, переходящий в анархию. В итоге это привело ее к лозунгу "Грабь награбленное" и породило сложные нравственные проблемы. Но все хорошее в жизни, утверждают скептики, либо незаконно, либо аморально. Мелкое пакостничество хакеров хотя занятие совсем не из порядочных, но есть масса куда более порочных и по-человечески менее привлекательных. Стремление политиков к власти, а бизнесменов к деньгам, например.

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

Человек, назвавшийся Мануэлем Вайлариалом, заказал по телефону в США компьютер и сообщил продавцу, что Билл Майер придет отобрать для него товар днем позже. Продавец магазина стал подозрительным, заметив чрезмерное волнение юноши, представившегося Майером. Поскольку юноша не смог вполне доказать свои полномочия, то продавец предложил ему, чтобы Вайлариал пришел и засвидетельствовал себя лично. После ухода парня продавец вызвал полицию и Майера, известного также как хакер по кличке "Петр 1", арестовали меньше, чем за день. Он был обвинен в попытке использовать чужую кредитную карточку и полицейские конфисковали у него сотни дискет, пытаясь их "обыскать". "Мы распечатывали содержимое лишь одного файла в течение трех часов подряд," - посетовал полицейский журналистам. Этот файл содержал по крайней мере 10000 фамилий, с номерами кредитных карточек, датами их истечения, адресами, номерами телефонов и водительских удостоверений.

Вскоре стал известен другой инцидент. Парень зарезервировал по телефону в гостинице место, дав номер своей кредитной карточки. Лишь когда он съехал, дежурный администратор гостиницы заметил, что кредит в $500 за номер был сделан по его собственной карточке. Прочтя вскоре в газете о "Петре 1", администратор вспомнил, будто в день заказа молодым человеком гостиничного номера был сбой в системе их компьютера и хотел узнать в полиции - не связано ли это с "Петром 1". Увы, полиция не знала. Должностные лица гостиницы тем не менее утверждали: их ограбил хакер, потому что нанятый ими антихакер доказал оформление кредита через телефонный модем, а не с терминала в гостинице, как это принято. Полиции точно так же не удалось связать дело "Петра 1" с 9 компьютерными кражами в Вашингтонском университете. Полиция нашла невероятным, чтобы хакеры могли взломать систему университета. Они, может, и хотели бы, однако в полиции не представляли себе, как можно было это сделать.

Дело доходило до того, что подростки в США играли - кто больше взломает компьютеров государственных учреждений. Тринадцать юных хакеров были обвинены во взломе компьютера университета штата Вашингтон и причинении дорогостоящего повреждения файловой системе. Один из них, учащийся школы 14 лет из Нью-Йорка, кроме того подозревался в блокировании компьютера ВВС Пентагона. Хакер по кличке "Зод" подобрал пароль, который давал студентам университета легальный доступ к системе и захватил над ней контроль, загрузив в компьютер собственную программу, через которую и другие могли бы незаконно войти туда. Благодаря ему толпа из полусотни хакеров, ворвалась в систему университета, видоизменяя и удаляя файлы пользователей. "Зод" был выслежен через телефонную сеть администратором системы. Аресты и обыски были произведены сразу в 17 местах, где полиция конфисковала на $50000 компьютеров и оборудования. Большинство хакеров проникают в системы из чистого любопытства и удовлетворения от отгадывания паролей. "Зод" из их числа, но последствия его действий оказались плачевными.

Действия хакеров нередко дискредитировали государственные службы безопасности. Образцами беззащитности компьютерных систем от хакеров служат и бесплатное предоставление младшему американскому школьнику свободного доступа к военной вычислительной сети, лишь бы только он перестал блокировать работу ее узлового процессора, и доказательство возможности коррекции орбиты спутника НАСА, сделанное любителями из клуба ССС ( ССС (ChaosComputerClub) - клуб европейских хакеров.) в 1986 году. Тогда же расследование полиции Амстердама, в сотрудничестве с бригадой разведки и географического отдела науки Свободного университета привело к аресту двух хакеров. Они, вторгаясь в компьютерные системы, нанесли ущерб более чем на сто тысяч голландских гульденов. 25-летний компьютерный инженер по кличке Fidelio и 21-летний студент по кличке Wave, были первыми хакерами, которых арестовали в Нидерландах. Из операционной системы UNIX своего компьютера они были способны получить доступ к другим ЭВМ в США, Скандинавии, Испании и Италии, где крали пароли, программы и закрытые технические данные.

Убытки от компьютерной преступности оценить трудно, но один миллион долларов, украденный с помощью ЭВМ Джерри Шнайдером при выставлении счетов за оплату телефонных разговоров в 60-х годах, давным-давно стократно превзойден и вычеркнут из книги рекордов Гиннесса. Приведем еще несколько коротких примеров. В 1987 году вскрыта многомиллионная кража из компьютера фирмы Фольксвагенверк. Зафиксирована чуть не закончившаяся успехом попытка выкрасть хакерами 15,2 миллионов долларов государственного лотерейного фонда штата Пенсильвания. Трое боль- ных раком скончались из-за модификации программы радиологической облучающей установки, задавшей им в 100 раз более высокие дозы облучения.

Если события в дальних странах представляются как мягкий ландшафт, прикрытый дымкой, то происходящее на родине ослепляет от близости контрастами ярких красок. Поэтому про Россию очень сложно писать непредвзято. В бывшем СССР обстановка много сложнее, чем на Западе. Хотя наша компьютерная преступность родилась лишь в конце семидесятых годов, но попав на благодатную российскую почву, где нет ограничивающих ее законов, быстро разрослась в лавину, грозящую смести зачатки информационных отраслей экономики. В 1991 году из Внешэкономбанка с помощью компьютера похищено $125000. Лишь в сентябре 1994 года в ОПЕРУ Сбербанка Москвы выявлено больше чем на сто миллиардов рублей фальшивых электронных авизо и арестовано три хакера. Неизвестные хакеры годом ранее пытались похитить по компьютерной сети Центробанка 68 миллиардов рублей. Всего по данным ЦБ России ежеквартально выявляется фиктивных электронных платежей на десятки миллиардов рублей.

Усиление зависимости деловых и научных кругов от ЭВМ наряду с озабоченностью общественности, что обработка информации затрагивает личные интересы граждан, привела к возрастанию внимания к проблемам защиты конфиденциальных данных в компьютерах от незаконного доступа. Нельзя сказать, чтобы такими проблемами раньше никто не занимался. КГБ имел специальную службу, защищающую партийную и дипломатическую связь от ознакомления с ее секретами непричастных (8 управление КГБ занималось шифрами.). В армии вопросами секретной связи ведало ГРУ - Главное разведывательное управление, теснейшим образом связанное с КГБ, специализирующееся на разведке и отлично финансируемое. Однако эти учреждения всегда ставили перед собой и противоположную задачу - добиться, чтобы никто из граждан России не смог защитить свои данные от их взора. Общество по сей день не только лишено малейших познаний в криптографии, но и редкие публикации, появлявшиеся в печати до распада СССР, представляли грубую дезинформацию. Из сообщений в прессе и по телевизору можно сделать вывод, что, обладая абсолютной монополией в области засекречивания, государственная криптографическая служба России стремится и впредь ее сохранять.

На Западе у фирм факсы и телефоны оснащены криптографическим оборудованием, а как быть нашим коммерсантам? Отечественные сред- ства засекречивания могут расколоться при первой же атаке, вследствие того что меньшая часть их не имеет теоретической основы, а большая сделана в лабораториях тех же спецслужб. Вспомните - шла иракская война, когда появилось сообщение, будто французы кодовым сигналом отключили бортовые компьютеры самолетов "Мираж" армии Хусейна. Можно ли быть уверенным в том, что спецслужбы нс оставили себе "ключ от черного входа" к шифрам? Но кто в России кроме ФАПСИ, Федерального агентства правительственной связи и информации, пришедшего на смену 8 управлению КГБ, способен провести экспертизу средств защиты данных? Может быть, стоит приобретать такие средства за рубежом? Однако почти все правительства проводят политику запрета доступа к секретам криптографических служб и систем защищенной связи Контроль за экспортом в США ограничивает развитие внутренних и международных криптографических служб. Билль сената S266 от 1991 года требует чтобы американское криптографическое оборудование содержало ловушки, известные лишь АНБ ( (NSA - National Security Agency) - Агентство национальной безопасности США, занимающееся шифрами. Оно больше и лучше финансируется, чем ЦРУ и ФБР вместе взятые.) , а чиновники могли прочесть любые шифрованньк сообщения, а это подрывает общественное доверие к технике из США. Там в 1992 году ФБР предложило конгрессу закон, облегчающий подслушивание телефонных сообщений, и это вызвало резкое возмущение общественности. Однако наибольшее вторжение в личные секреты Белый Дом осуществил в 1993 году, пытаясь утвердить в качестве государственного стандарта криптографическую микросхему Clipper для употребления при засекречивании в телефонах, факсах и электронной почте. Компания AT&T ставит микросхему Clipper во все свои изделия, обеспечивающие конфиденциальность. Вместе с тем, что каждый пользователь может установить свой секретный ключ, правительство США будет иметь возможность свободно читать их сообщения, так как имеет ключи oт "черного входа" в Clipper.

Далее, лишь квалифицированные пользователи способны качественно эксплуатировать сложную шифровальную технику. Давным-давно ходил анекдот, как неизвестный доброжелатель посоветовал специалистам фирмы "Хагелин", производящей криптографическое оборудование, сделать ревизии своих изделий, поставленных одной азиатской стра- не. Оказалось, что там, в установленном силами местных умельцев шифрующем блоке, телеграфные сигналы шли помимо его и лишь перепутанные соединения создавали видимость шифра. Вызывает серьезную озабоченность качество используемых, но не апробированных научной общественностью методик шифрования. Стандарт США по засекречиванию, именуемый далее DES, выдержал критику, а чего стоит стойкость к взлому неаттестованных шифров, например, применяемых в таких широко распространенных базах данных, как Paradox или Access, никто кроме криптографов не знает.

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

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

Непосредственным поводом к написанию этой книги послужило сообщение о незаконном изъятии московскими властями в 1991 году у фирмы МММ коммерческой документации. Невольно подумалось, что стало бы делать следствие с изъятыми шифровками? Жизнь не принимает сослагательного наклонения - ее требования конкретно и жестки. Видимо, по этой причине шифровальная техника стала широко внедряться. Сейчас аппарат турой засекречивания оборудованы не только резиденция Патриарха Московского и Всея Руси Алексия II, РТСБ и МЕНАТЕП, но и масса небольших коммерческих контор. Похоже, перехват их корреспонденции не грозит превратиться в сенсации на страницах газет.

Хотя традиционно криптография применялась исключительно вооруженными силами и дипломатическими службами, но сейчас она позволяет выполнять деловые операции путем передачи информации по сетям связи с использованием методов идентификации и аутентификации (идентификация и аутентификация - доказательства авторств и подлинности сообщения) , цифровой подписи, выдачи разрешений на транзакции с регистрацией и их нотариальным заверением, отметки даты, времени суток и многое другое. Эти новые приложения превращают криптографию в технику двойного использования - для военных и гражданских целей. Шифрование в гражданском секторе ведется для проведения международных банковских операций, электронного обмена информацией, обмена электронной почтой и коммерческих сделок по сетям связи более чем 1000 коммерческих организаций в России и не менее чем 600 банков уже используют для этого специальные криптографические устройства. В основе такого разграничения применений лежит разделение сфер использования криптографии для сохранения секретности информации и для ее аутентификации. Это разграничение явно выражено в новейших криптографических системах с открытым ключом. Криптография необходима частному коммерческому сектору экономики России для прогрессивного развития и применение ее не должно зависеть лишь от интересов ФАПСИ. Это относится к использованию криптографических алгоритмов, их прикладных применений, общих методов управления ключами и их распределения. Газета "Московский комсомолец" в 1992 году опубликовала статью с утверждением, что шифры, созданные коммерческими специалистами, ФАПСИ расколет за обеденный перерыв. Автор верит: после того, как не знающие шифрования коммерческие специалисты прочтут эту книгу, в ФАПСИ обеды станут гораздо продолжительнее. Ему непонятна гордость засекреченных академиков неведомыми достижениями, когда лишенное элементарных познаний в области шифрования общество беззащитно от растущей компьютерной преступности. В этом смысле Россия, перефразируя Марка Твена, напоминает рыцаря, надевшего на голову мощный шлем, но выступающего по полю битвы голым, без доспехов и щита.

ПРЕДМЕТ КРИПТОЛОГИИ

Описание предмета криптологии начнем с доуточнения обиходного понятия информация. Иностранному термину информация достаточно близко отвечает русское слово смысл. Очевидно, что одну и ту же информацию можно передать разными сообщениями, например, на разных языках, а также письмом, телеграфом или факсом. С другой стороны, одно и то же сообщение разными людьми понимается по-разному. Например, при сообщении о победе "Спартака" иной футбольный болельщик обрадуется, а другой может и огорчиться Значит, можно сделать вывод, что информация людьми извлекается из сообщения с помощью ключа, правила, придающего сообщению конкретный смысл. Для обычных сообщений такие правила дают здравый смысл и знание языка.

Иногда же, ключом владеет лишь узкая группа лиц, знающая специальные термины или жаргон. Например, на блатном языке начала века сизюмаp пено означало число 75. Жаргон преферансистов хорошо иллюстрирует анекдот. Кассир спрашивает у мужчины, снимающего крупную сумму денег со счета: "Гарнитурчик собираетесь прикупить?", тот со вздохом отвечает: "Прикупил вчера, на мизере". У программистов на персональных компьютерах можно услышать массу специфических терминов: старая мама, кривой винт, косые флопы, полуось, огрызок. О'Генри в "Королях и капусте" привел пример, как написанная на нью-йоркском жаргоне телеграмма: "...главный с кисейным товаром держит курс на соль..." - была не понята туземными чиновниками, сколько ни ломали себе они над ней голову. Но ее смысл, что президент Анчурии бежал с любовницей к океану, сразу же разгадал американец Билли Кьоу, который "...как то ухитрился понять даже приказ улетучиться, произнесенный на классическом китайском языке и подтвержденный дулом мушкета..."

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

Язык сообщения

Исходное незнание языка сообщения обычно делает невозможным восприятие его смысла. Мужчина, привыкший к скромной символике на отечественных сигаретах, так и не смог правильно прочесть название их нового сорта: "ПОКТОБ ?" На пачке под красивым княжеским гербом была не английская, а русская надпись РОСТОВ. Мало кто сможет понять запись мана дерутумо, сделанную по-нганасански, ведь знающих этот язык во всем мире вряд ли больше тысячи. И уж совсем невероятной кажется возможность прочтения надписи на забытом языке. В Большом энциклопедическом словаре написано: "Расшифровка Ф. Шампольоном иероглифического текста Розеттского камня положила начало чтению древнеегипетских иероглифов". В этом высказывании все верно. Однако можно ли расшифровать письмена, которые не были зашифрованы? Паскаль в своих "Мыслях" высказался: "Языки суть шифры, в которых не буквы заменены буквами, а слова словами, так что неизвестный язык есть легко разгадываемый шифр". Но криптологи и языковеды не поддерживают это мнение. Поэтому далее употребление слова расшифровка будет относиться лишь к прочтению сообщений на известных языках, сделанных с помощью шифра, то есть сисгемы изменения текста письма, чтобы сделать смысл его непонятным для непосвященных, не знающих ключа.

Стоит сделать небольшое, но важное замечание Иногда необходимо русский текст напечатать на пишущей машинке с латинским алфавитом. Для этого можно воспользоваться соответствием русских бую латинским принятым для написания международных телеграмм. Например, SHESTOE POCHTOVOE OTDELENIE GORODA IAROSLAVLIA. Заметим, буква Э передается так же как и буква Е:

Тем не менее написанный так текст останется русским, просто изменится его кодировка, о чек будет рассказано ниже.

Язык существенно влияет на структуру текста и его понимание. Однако, даже определившись языком сообщения, бывает подчас трудно решить сколько букв будет составлять алфавит: латинский насчитывает 24-25 букв, а русский 31-32. Неоднозначность возникает потому, что при письме часть букв заменяют другими, сходными по звучания или написанию. Обычно русскую букву Е в письме заменяют на букву Е, а букву Й на И. Каждый язык имеет свой специфический алфавит, но, увы не единственный. Так, хотя болгарский и русский алфавиты, происшедшие от кириллицы, почти одинаковы, но в болгарском нет букв Е, Ы, Э. Поэтому, набирая попеременно то русский, то болгарский тексты, обычно держатся лишь русского алфавита, включающего в себя болгарский.

Сложнее всего дело с алфавитом обстоит в Европе на территории эксреспублики Югославии, где для сербохорватского языка давно используются сразу две основные системы письменности. Одна из них, вуковица, названная по имени Вуко Кароджича, является подвидом кириллицы и употребляется главным образом сербами, другая же, гаевица, представляет подвид латиницы и используется хорватами. Соответствие между буквами вуковицы и гаевицы неоднозначно, поскольку сербской букве, обозначающей звук ДЬ, отвечают две, или даже три хорватские. Но это еще не все. Есть, как минимум, два варианта сербохорватского произношения: екавский и экавский, которые различно отображаются на письме. Из этого примера хорошо видно, что справиться с неопределенностью языка сообщения без его знания вовсе непросто. По этому поводу Герман Вейль удачно привел двустишие Готфрида Келлера: "Что это значит - каждый знает, кто во сне верхом скакал без коня." По этой причине язык сообщений криптологи считают заранее известным и алфавит его фиксированным. Интересно заметить, во время Второй мировой войны сделать свои шифровки нечитаемыми для японцев американцы смогли довольно простым путем: они набирали криптографов из небольшого индейского племени Навахо и те вели секретную связь только на своем родном языке.

Тайнопись

Начиная с давних времен, люди обменивались информацией, посылая друг другу письма. Древним новгородцам приходилось сворачивать свои берестяные грамотки текстом наружу - только так они могли перевозиться и храниться, не разворачиваясь самопроизвольно от изменения влажности. Это походило на современные почтовые карточки, где текст тоже открыт для посторонних взоров. Пересылка берестяных грамот была широко распространена, но имела серьезный изъян, содержимое посланий не было защищено ни от своекорыстных интересов, ни от неуемного любопытства иных людей. Поэтому со временем послания стали свертывать особо, так, чтобы текст оказывался внутри. Когда же и это казалось недостаточным, то письмо запечатывали восковой, а в позднейшее время сургучной личной печатью. Печати всегда были не столько в моде, сколько в повседневном обиходе. Они обычно выполнялись в виде перстней с рельефными изображениями, и Эрмитаж в античном отделе хранит их множество. Печати, придуманы по уверениям некоторых историков китайцами, хотя древние камеи Вавилона, Египта, Греции и Рима ничем от печатей не отличаются. Воск прежде, а сургуч и поныне помогают поддерживать секреты почтовой переписки.

Точных дат и бесспорных сведений о секретном письме в древности сохранилось очень мало и в этой книге многие факты даны через художественный анализ. Однако вместе с шифрами были, само собой разумеется, и попытки сокрытия текста. В древней Греции для этого однажды обрили раба, написали на его голове, и, когда волосы отросли, отправили с поручением к адресату. Отзвук этой истории можно встретить в "Гиперболоиде инженера Гарина" Алексея Толстого, где текст нанесли на спину мальчика. Если же гонец был надежен и даже под пытками не выдал бы послания, то его изложение могло быть изустным. Боярин Иван Фрязин, в 1469 году выступая сватом Великого князя Иоанна к Софье (Софья - племянница и наследница последнего византийского императора Костантина Палеолога, принесшая России свой герб в виде двуглавого орла как приданое.), имел грамоту следующего содержания: "Сиксту, Первосвятителю Римскому, Иоанн, Великий князь Белой Руси, кланяется и просит верить его послам".

Опишем кратко, но не будем дальше рассматривать сообщения симпатические, латентные или скрытые. Они могут быть сделаны специальными техническими средствами, как передача остронаправленным лучом, надпись бесцветными чернилами, проявляющаяся лишь после специального физического или химического воздействия. Именно скрытые сообщения принято называть тайнописью, но не шифры. Популярные исторические книжки сообщали, что российские революционеры в тюрьмах использовали в качестве симпатических чернил даже обычное молоко - и это правда. При нагревании на огне или горячим утюгом такие записи становились отчетливо видны. (Дейл Карнеги полагал, что для "проявления" такой тайнописи достаточно было погрузить письмо в горячий чай. Здесь он не прав, что читателям просто проверить на кухне.) Литератор Куканов в своей повести о Ленине "У истоков грядущего" рассуждал так: "Молоко в роли чернил - не самый хитрый способ тайнописи, но порой, чем проще уловка, тем она надежнее".

Заглянем же теперь в документ под номером 99312 из архива российской охранки: "Переписка химией состоит в следующем. Пишут на шероховатой, не глянцевой бумаге. Пишут сначала обыкновенными чернилами какой-нибудь безразличный текст, то есть что-либо совершенно безобидное, ни слова о делах. Когда это письмо написано, то берут совершенно чистое мягкое перо и пишут между строками, написанными чернилами, уже то, что хотят сказать о конспиративных делах. Это конспиративное письмо пишут химическими чернилами, то есть раствором какой-нибудь кислоты...". Была приведена выдержка из письма, сделанного химией революционерами партии РСДРП, которое было отправлено в Россию редакцией газеты "Правды" из Вены. Выявить и прочесть эту тайнопись Департаменту полиции не составляло никакого труда, ведь именно в России были разработаны и развиты способы чтения скрытых и стертых текстов с помощью фотографии и подбора освещения, применяемые и поныне. Интересно, зачем долгие годы упорно распространялась легенда о трудности прочтения "молочной" тайнописи?

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

"Мне принесли большой гладкий чистый штамп военной цензуры. Я натер его вазелином, затем, как следует вытер платком, пока он не перестал оставлять следы на бумаге. Затем, я плотно прижал его к шпионоупорной бумаге, не давая соскользнуть в сторону.

- Можете ли вы обнаружить здесь запись? - спросил я.

Они испытали бумагу в отраженном и поляризованном свете и сказали:

- Здесь ничего нет.

- Тогда давайте осветим ультрафиолетовыми лучами.

Мы взяли ее в кабинку и положили перед моим черным окошечком. На бумаге яркими голубыми буквами, как будто к ней приложили штамп, намазанный чернилами, светились слова: Секретных надписей нет.

Сокрытие текста достигло своих вершин после Второй мировой войны, когда распространились сверхминиатюрные фотографии, называемые микроточками. Одна микроточка размером с обычную точку текста могла содержать сотни страниц документов и найти ее в книге среднего формата было много сложнее, чем пресловутую иголку в стоге сена. Адвокат Рудольфа Абеля, оказавшегося в американской каторжной тюрьме по обвинению в незаконном въезде в США (Обвинение Абелю (Вильям Фишер) в шпионаже не предъявили потому, что за шпионах в США неизбежна смертная казнь, а его попытались обменять на американского шпиона, схваченного впоследствии в СССР. В 1962 году Абель, отсидев в каторожной тюрьме 5 лет из 30, был обменян на пилота-шпиона Пауэрса, сбитого в советском воздушном пространстве.) , хотел продать его конфискованные картины с аукциона, чтобы улучшить положение своего подзащитного хотя бы материально. Однако этого не удалось сделать, так как картины, написанные маслом с применением непрозрачных для рентгеновских лучей. красок, при поиске микроточек непременно были бы разрушены, а сам поиск занял бы годы кропотливой работы ЦРУ. Поэтому в тюрьме Абелю пришлось подрабатывать, рисуя лишь прозрачные акварели. Сейчас нет технических проблем записать текст так мелко, что его вообще нельзя будет прочесть оптическими средствами, а придется рассматривать в электронный микроскоп. Такая технология используется при создании компьютерных микросхем сверхбольшой интеграции. На одном квадратном миллиметре их поверхности можно записать все книги, которые когда-либо были напечатаны человечеством.

Чтобы не сложилось впечатление, что симпатические сообщения бывают лишь у революционеров и шпионов, напомним ряд примеров из области компьютерных скрытых текстов. Наиболее ранняя идея их создания относится к предложению форматировать диск под размер секторов отличный от принятого DOS. Когда же все убедились, что такого рода сокрытие действует на хакеров как красная тряпка на быка, появились более глубокие приемы, где форматирование осуществляла специальная программа, напрямую обращающаяся к накопителю на гибких дисках. В ответ немедленно были созданы программы, которые могли читать любое форматирование. Для сокрытия информации на дискетах широко используются их инженерные дорожки, доступные для чтения, но не воспринимаемые дисковыми операционными системами, а также так называемые короткие зоны и неустойчивые биты (Weak bits - слабые, неустойчивые биты, которые специально записаны на уровне, промежуточном между 0 и 1). Вспомните сообщения о вирусах, которые прячутся в сбойных блоках - это тоже тайнопись своего рода. Кроме того, программой редакции диска можно очень просто дописать информацию в свободной части хвостового кластера файла. Только стоит ли? Уж слишком просто вскрывать. Симпатические сообщения имеют тот недостаток, что их скрытность обусловлена лишь состоянием развития техники, которая стремительно совершенствуется. Прибегая к симпатическим сообщениям, невольно приходится вступать в бесконечное состязание меча и щита, которому нет конца - на каждый щит найдется и поражающий его меч. Любой способ создания симпатического текста будет вскоре разрушен, и к этому нужно быть готовым. А что это за секретность без гарантий стойкости?

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

Дискуссия о тайнописи в неожиданном аспекте прозвучала, когда правительство США попыталось недавно ограничить или вообще запретить свободное применение криптографии. Однако, возражали оппоненты, полный ее запрет не повлечет за собой прекращение секретной связи. Во многих каналах коммерческой связи поток помех значительно превышает долю шифруемой секретной информации. Поэтому шифрованные секретные биты станут прятать в обычных сообщениях, имитируя небольшое увеличение шума. Приводился пример: в одном цифровом снимке Kodak Photo содержится около 18 мегабайт информации, и умело произведенное сокрытие в нем мегабайта шифровки практически не ухудшит качества изображения. Прятать шифровки очень просто потому, что они ничем не отличимы от обычного шума или помех в каналах связи. Если обычная тайнопись легко читается, то тайнопись шифрованного сообщения, замаскированного под шум или сбои, найти невозможно. Интересный вариант тайнописной шифровки был использован при печати на ЭВМ контрактов с клиентами в одной из московских компаний. За счет малозаметных искажений очертаний отдельных символов текста в него вносилась шифрованная информация об условиях составления контракта. Эта тайнопись выглядела как обычные незначительные дефекты печати и обеспечивала очень высокую степень защиты подлинности документа. В связи с указом Ельцина об аттестации шифрованной связи. пытающимся фактически предельно ограничить ее применение, можно предположить, что ФАПСИ теперь придется не только взламывать шифры, но и отыскивать их во тьме помех дрянных каналов связи, предоставляемых коммерсантам.

Коды и их назначение

К шифрам не относятся и коды - системы условных обозначений или названий, применяемых при передаче информации в дипломатии, коммерции и военном деле. Кодирование часто применяется для повышения качества передачи. Хорошо известны и широко используются коды, исправляющие ошибки при передаче сообщений по каналам связи или хранении данных в памяти ЭВМ. Так, код Хемминга хорошо себя зарекомендовал себя в аппаратуре оперативной памяти ЭВМ СМ-4. Другой многочисленный класс кодов представлен средствами сжатия данных, наподобие программ архивации ARC, ARJ, ICE, ZIP и сжатия дисков на IBM PC. Употребление этих кодов вызвано не секретностью, а стремлением сэкономить на стоимости передачи или хранения сообщения. Файлы текстов, изображений и программ содержат информацию с сильно отличающимися свойствами и программы их кодирования должны быть разными. Если архиватор хорошо сжимает текст, вовсе не значит, что он так же хорош для сжатия изображений или других данных.

Для текстовых файлов чаще других употребляется кодировка Хаффмена, заключающаяся в том, что символы текста заменяются цепочками бит разной длины. Чем чаще символ, тем короче обозначающая его цепочка. Рассмотрим пример кодирования Хаффмена текста МАМА МЫЛА РАМЫ с такой таблицей кодирования:

СИМВОЛЧИСЛО В ТЕКСТЕКОД
А4 00
М4 01
пробел2100
Ы2 101
Р1 110
Л1 111

Получим сообщение: 0100010010001101111001001100001101

Легко теперь подсчитать, что поскольку исходный текст состоит из 14 символов, то при кодировке ASCII он занимает 112 бит, в то время как кодированный по Хаффмену лишь 34 бита. При кодировании Лемпела и Зива, представляющим собой развитие метода Хаффмена, кодируются не символы, а часто встречаемые последовательности бит вроде слов и отдельных фраз. Текстовые файлы сжимаются в 2-3 раза, но очень плохо, всего лишь на 10-15% сжимаются программы. Нередко используют готовые кодовые таблицы, так как статистические свойства языка сообщения обычно хорошо известны и довольно устойчивы.

Несколько особняком стоит сжатие звуковой информации, расширяющее мультимедийные возможности аппаратуры и программ. Кодирование Лемпела и Зива сжимает объем звуковой информации всего лишь на 10%. Несомненно, что для более эффективного ее уплотнения нужны специальные алгоритмы, учитывающие физическую природу звука. Практически все алгоритмы кодирования звуковой информации используют два основных приема: кодирование пауз между отдельными звуками и дельта-модуляцию. При записи человеческого голоса важнее кодирование пауз, так как не только фразы, но и слова разделены достаточно длительными перерывами. Эффективность такого кодирования может быть очень высока, но платить за нее приходится потерей четкости высоких коротких звуков, например, С и Ц. Это легко наблюдать при передаче естественной речи по голосовому модему. А вот дельта-модуляция чаще применяется для качественной записи музыки и очень; похожа на замену представления чисел в формате фиксированной точки на формат с плавающей запятой. Потери от нее выражаются в некоторой приглушенности звуков, но мало искажаются тона.

Однако самая большая работа по кодированию ведется над изображениями, скажем, при передаче факсов. Если бы образ стандартного машинописного листа формата А4 не был бы сжат, то его передача даже при низком разрешении заняла около часа. В самых распространенных факсах, принадлежащих группе III по классификации Международного консультативного комитета по телеграфии и телефонии, использованы фиксированные таблицы кодировки. Похожую схему кодирования дает хорошо известный формат представления графических файлов PCX. В нем очередной байт кода может означать либо счетчик повторений, если он начинается битами 11, либо байтом точек исходного изображения. Число повторений задается младшими 6 битами байта повторения, то есть имеет значение до 63. Изображение чистого листа бумаги при этом будет сжато больше чем в 30 раз. Более сложные схемы сжатия дают форматы обмена и хранения графической информации GIF и TIF. Они кодируют уже не строки точек изображения, а полоски строк и тем самым достигают большего сжатия. Следует предостеречь читателей от попыток сжатия любой информации с помощью программ. оперирующих с изображениями. Ряд алгоритмы эффективного сжатия изображений, вроде JPEG могут искажать информацию, что почти незаметш в изображениях, но фатально для программ и числовых данных. Именно за счет некоторой "чистки" исходного сообщения JPEG удается достигать сжатия в 100 раз и больше. Без сжимающего объем сообщения кодирования невозможно было создать и приобретающий все большую популярность видеотелефон. Для использования в нем МККТТ( (MKKTT - международный консультативный комитет по телеграфии и телефонии.) рекомендовал стандарт Н.261 - первую систему сжатия изображения.

Порой возникают затруднения в пересылке программ, ключей, шифротекста и других бинарных файлов по системам связи, допускающим лишь текстовые сообщения, например, в почте UNIX. Для этого файлы превращают в текст формата RADIX-50. Шифровку разбивают на группы по 3 байта из которых формируют 4 группы по 6 бит. Каждую группу из 6 бит, принимающую значения от 0 до 63, превращают в печатный символ ASCII по следующей таблице:

значение012-1112-3738-63
символы+/0-9A-Za-z

Это увеличивает длину бинарного сообщения лишь на треть, в то время как привычная для программистов шестнадцатеричная запись удваивает его. Так, слово МОСКВА дает код AuMY886U. Если длина сообщения не кратна 3, то при кодировании в конец его добавляют нули. Точную длину сообщения приходится приписывать в конце. Вот как выгладит открытый пароль Филиппа Циммермана, переданный по Интернет в коде RADIX-64:

-----BEGIN PGP MESSAGE-----
Version: 2.6
iQBVAgUALeF27VUFZvpNDE7hAQFBFAH/Y
OQ52xOCH5yKSG/HgSV+N52HSm21zFEw
Ocu5LDhYxmOILr7Ab/KdxVA6LMIou2wKtyo.
ZVbYWXPCvhNXGDg7 4Mw==
=wstv
-----END PGP MESSAGE-----

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

Молчит придурок адъютант, молчит штабная свита,,
В свои блокноты странный текст все пишут деловито.
От смеха давятся они, читая с постной миной:
"Не вздумай с Бэнгзом танцевать -
распутней нет мужчины!"

Первый коммерческий код для уменьшения длины и стоимости телеграмм ввел в 1845 году Френсис Смит, компаньон Морзе. В конце XIX века Клаузен первым предложил для этой цели код АВС, a Маркони несколько позже первый многоязычный код. Сейчас аналогичных кодов тьма-тьмущая и все они представляют собой замену отдельных слов или фраз группами цифр или букв. Традиционно связисты, а не только шпионы, для этого обычно используют пятизначные группы букв или цифр, так как группы проще записывать. Широко применяется по настоящее время в связи и "Международный свод сигналов", который последний раз был пересмотрен в 1969 году.

Хотя криптологи различают шифры и коды, потому что для практических работ это разные системы, но коды представляют собой шифр простой замены слов. Обычно кодовые таблицы состоят из словаря, где каждому слову присвоен кодовый эквивалент. Фактически требуются две кодовые таблицы. Для кодирования применяется таблица алфавитно упорядоченная по словам, а для декодирования алфавитно упорядочивают коды - иначе поиск в таблице становится необычайно трудоемким. Для применяющегося в коммерции телеграфного кода Маркони на английском языке начала этих таблиц выглядят так:

/tr> Abandoned
Таблица кодированияТаблица декодирования
VANOL A, an ABABA It is hoped
LANEX Abandon-ing-s ABACA Assignment
STUGH ABBCO Shipped
TBYNT Abate-ing-s ACAYT As to
RIZLB Abated ACDZR Terminated

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

Коды часто похожи на шифры и это обстоятельство породило массу курьезных случаев. До революции был сорван шахматный турнир по переписке Петербург-Москва, так как непонятные жандармам почтовые карточки со знаками записи ходов перехватывались до тех пор, пока не попали начальнику, наложившему резолюцию: "Шахматы-с!" Не исключено, что среди репрессированных в советское время было немало любителей игры на гитаре, пытавшихся вести запись своих произведений необычным для музыкантов цифровым методом. Любопытно, каким образом могло НКВД отреагировать на срочную телеграмму за рубеж такого содержания: SER VAL MET LYS ARG ARG PHE LEU. Удалось бы доказать подозреваемому в шпионаже, что в телеграмме дан ряд аминокислот в сердечной мышце свиньи? Да и обнаруженный при аресте в записной книжке Н. И. Вавилова текст K3C7AO+3G5 вряд ли был бы воспринят следователем за формулу строения цветка. Интересно упомянуть о телефонном коде, применяемом некоторыми зарубежными фирмами. Так, встретив, номер телефона технической службы (1)206-DID-DEMA, не надо смущаться - это телефон корпорации Aldus в Сиэтле. Кодовая таблица соответствия букв цифрам здесь такая:

1 2 3456789
АВСDEFGHIJKLMNOPRSTUVWXY
Поэтому номер телефона корпорации 343-3362. Хотя, увидев на рекламном щите телефон предвари- 1 тельных заказов ночного клуба GUE-STS-ONLY, не пытайтесь набирать 483-787-6659, а просто переведите с английского: "только для приглашенных". Эта запись в рекламе означает, что заказы принимаются по телефону, указанному в пригласительном или членском билете.

Надеюсь, читатели поймут сообщение "Женя Дмитрий Ульяна Борис Ольга Роберт Игорь Света", принятое по плохо работавшему телефону. Хотя моряки говорили бы при этом так: "Живете Добро Ухо Буки Он Рцы Иже Слово" или "Juliet Delta Uniform Bravo Oscar Romeo India Sierra". Такое кодирование называется акрокодом (Akro - по-гречески край. первые буквы слов или строк.) . А телеграфное сообщение: "Железная дорога уведомлена. Буду обмер работ исполнять сам" представляет собой особый код, вводящий неосведомленного получателя в заблуждение. Если читать только первые буквы слов. то получится скрытое сообщение "ЖДУ Борис". Одна армейская газета в начале шестидесятых годов к революционному празднику опубликовала стихотворение, начинающееся словами "Хвала тебе..." и последующим официозным содержанием. И что же? Редактор был немедленно уволен, тираж газеты изъят из читалок и библиотек, а вот автора найти не удалось. Первые буквы строк стихов складывались нелестную для главы государства Хрущева фразу. Никите Сергеевичу не повезло и с инициалами - акрокодом имени и отчества. Произнесенные по-английски его инициалы NS на слух сильно напоминают слово an ass - осел. Поэтому для именования этого политика в прессе, употреблялось лишь режущее отечественные уши фамильярное обращение - Никита Хрущев.

Несомненно, что коды могут служить и для сокрытия смысла сообщений. Вспомним, в 1936 году сообщение "Над всей Испанией ясное небо" отнюдь не предвещало безоблачной погоды, а послужило кодовым сигналом начала гражданской войны. Однако область применения кодирования для сокрытия смысла ограничена одиночными сообщениями. Румынская разведка сигуранца могла читать в двадцатые годы радиограммы РККА лишь потому, что кодовые таблицы не менялись, пока не протирались до дыр. Краткое кодированное сообщение, не имея ключа в виде кодовых таблиц, вскрыть очень трудно, а то и невозможно. Практическое использование кодов стратегической авиацией США иллюстрируют кадры кинофильма "Доктор Стренджлав", когда пилот стратегического бомбардировщика, приняв радиограмму из группы цифр, достал секретную кодовую таблицу из сейфа и нашел там содержание приказа: ядерный удар по СССР.

Криптография и криптоанализ

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

Шифpование Пеpедача Дешифpование
ТЕКСТлисток --> листок
КЛЮЧ конвеpт ==> конвеpт
Отпpавитель Канал связи Получатель

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

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

 использован эффективный криптографический алгоритм;

 соблюдены секретность и целостность ключа.

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

Шифрование и расшифровывание, выполняемые криптографами, а также разработка и вскрытие шифров криптоаналитиками составляют предмет науки криптологии (от греческих слов криптос - тайный и логос - мысль) . В этой науке преобразование шифровки в открытый текст (сообщение на оригинальном языке, порой называемое "клер") может быть выполнено в зависимости от того, известен или нет ключ. Условно ее можно разделить на криптографию и криптоанализ. Криптография связана с шифрованием и расшифровыванием конфиденциальных данных в каналах коммуникаций. Она также применяется для того, чтобы исключить возможность искажения информации или подтвердить ее происхождение. Криптоанализ занимается в основном вскрытием шифровок без знания ключа и, порой, примененной системы шифрования. Эта процедура еще называется взломкой шифра. Итак, криптографы стремятся обеспечить секретность, а криптоаналитики ее сломать.

Однако терминология еще не устоялась даже за рубежом, где криптоаналитики называют себя то взломщиками кодов (breaker), то нападающими (attacker), а взломщики компьютерных систем нарекли себя воришками (sneaker). Вряд ли правильно выделять взлом шифров в отдельную дисциплину. Совершенствуя схему шифрования, неизбежно приходится рассматривать и пути ее взлома, а конструируя устройство засекречивания данных, необходимо предусмотреть в нем блок контроля качества. А ну как произошел сбой, и незащищенные данные попадут в открытую сеть коммуникаций! Поэтому часто говорят о криптографах, которые занимаются задачами шифрования, расшифровывания и анализа. Тем более, что ряд атак на шифры представляет собой обычное расшифровывание с подбором ключа путем анализа расшифрованного сообщения на близость связному тексту. Далее криптоанализ будет рассматриваться, как область криптологии, проверяющей и доказывающей устойчивость шифров как теоретически, так и практически. Возможность компьютера производить миллионы операций в секунду очень усложнила и криптографию, и криптоанализ. Поэтому в дальнейшем машинные шифры будем называть криптографическими системами. Криптографические системы становятся год от года все изощреннее и требуется для их вскрытия все более совершенная техника криптоанализа.

Наше изложение будет в основном ограничено рамками классической криптографии с симметричными ключами, когда ключ отправителя сообщения должен совпадать с ключом получателя. Обмен секретными ключами в ряде случаев представляет проблему. Поэтому в последние годы ведутся интенсивные исследования в направлении шифровальных систем с открытым ключом. (у таких систем ключ для шифрования открытый, а для расшифрования секретный. Поэтому их еще называют двухключевыми системами или системами с несимметричными ключами.) Хотя системы с открытыми ключами быстро развивайтся, целый ряд преимуществ традиционных систем позволяет им надежно удерживать ведущее место. Например, ряд алгоритмов с открытыми ключами, наподобие "укладки ранца", повел себя при опробовании на сверхбыстродействующей ЭВМ Cray несолидно, расколовшись уже через час испытаний. Другие же алгоритмы принципиально ненадежны в классическом понимании с самого начала, никто всерьез не может гарантировать их стойкость при стремительно развивающихся вычислительных методах высшей арифметики и, кроме того, чрезвычайно медлительны. Тем не менее, их роль в таких областях, как пересылка ключей и цифровая подпись уникальна. Поэтому им будет уделено определенное внимание, хотя, далее с практической точки зрения будут рассматриваться в основном лишь два классических алгоритма шифрования: замены и перестановки. В шифре перестановки все буквы открытого текста остаются без изменений, но перемещаются с их нормальной позиции. Анаграмма (анаграмма - перестановка букв в слове или фразе.) - это шифр перестановки. В шифре замены, наоборот, позиции букв в шифровке остаются теми же, что и у открытого текста, но символы заменяются. Комбинации этих двух типов образуют все многообразие практически используемых классических шифров.

К необходимым аксессуарам криптотрафической техники кроме алгоритмов шифрования и расшифрования принадлежат секретные ключи. Их роль такая же, как и у ключей от сейфа. А вот изготавливаются и хранятся криптографические ключи куда более тщательно, чем стальные аналоги. Заботу об их выпуске обычно берут на себя криптографические службы, лишь в этом случае гарантируя стойкость от взлома своих систем шифрования. Какие ухищрения только не предпринимаются, чтобы сделать ключи недоступными, а факт их чтения известным! Ключи хранят в криптографических блокнотах, которые всегда представляли собой крепость для посторонних. Во-первых, они открываются с предосторожностями, чтобы ключи не исчезли физически вместе с открывшим их человеком. Во-вторых, в блокноте находишь подобие отрывного календаря с прошитыми насквозь страницами, разделенными непрозрачными для любого подсматривания листами. Чтобы прочесть очередной ключ, нужно вырвать лист разделителя, а это не может впоследствии остаться незамеченным хозяином блокнота. Более того, как только страница с ключом открыта для чтения, то ее текст начинает бледнеть и через некоторое время пропадает бесследно. Но главное еще впереди - нередко в блокноты вносят не сами ключи, а их шифровки, сделанные по ключу, который шифровальщик хранит лишь в памяти. Ухищрениям в хранении ключей нет конца. У разведчика Абеля американскими спецслужбами был обнаружен криптографический блокнот размером с почтовую марку. Позднее, неподалеку от дома, где Абель жил, найдена монета, развинчивающаяся на две половинки, с тайником внутри. Очень возможно, что она служила контейнером для этого миниатюрного криптографического блокнота. Доставку ключей осуществляют специальные курьерские службы, к сотрудникам которых Петр 1 выдвинул лишь два требования: чтобы они сколь можно меньше знали вне пределов своей компетенции и были очень довольны оплатой своего труда. На этом закончим знакомство с сюжетом и персонажами дальнейшего действия и перейдем к рассмотрению истории криптографии.

ИСТОРИЯ КРИПТОЛОГИИ

Смотрите же, что смертным сделал я.
Число им изобрел и буквы научил соединять...
Эсхил. "Прикованный Прометей "

В этой главе попробуем кратко изложить как криптология появилась и выросла до размера науки. При отсутствии в нашей стране открытых исследований по истории шифрования, изложение этого вопроса оказалось довольно сложной задачей. Наподобие золотоносной россыпи крупицы сведений о шифрах оказались рассеянными в сотнях книг и статей. Среди них солидные воспоминания руководителя американской криптографической службы ВМФ и газетное сообщение на несколько строк о работе в Дели завербованного агента. Последовательное хронологическое рассмотрение этих фактов имеет перед собой задачу постепенного погружения читателя в сферу криптографии. Без истории невозможно понять концептуальную схему этой науки, модель постановки проблем и их решения, методов исследования и их эволюции. Тем не менее описание истории криптологии нельзя считать описанием ее предмета - проблемы в этой главе скорее ставятся, чем решаются, и к их разбору мы приступим позже.

Появление шифров

Ряд систем шифрования дошел до нас из глубокой древности. Скорее всего они появились одновременно с письменностью в 4 тысячелетии до нашей эры. Методы секретной переписки были изобретены независимо во многих древних обществах, таких как Египет, Шумер и Китай, но детальное состояние криптологии в них неизвестно. Криптограммы выискиваются даже в древние времена, хотя из-за применяемого в древнем мире идеографического письма в виде стилизованных картинок были примитивны. Шумеры, по-видимому, пользовались тайнописью. Археологами найдены глиняные клинописные таблички, где первая запись замазывалась слоем глины, на котором делалась вторая запись. Происхождение таких странных таблиц могло быть вызвано и тайнописью, и утилизацией. Оттого что число знаков идеографического письма было более тысячи, то запоминание их представляло собой трудную задачу - тут не до шифрования. Тем не менее, коды, появившиеся вместе со словарями, были хорошо извест- ны в Вавилоне и Ассирии, а древние египтяне применяли по меньшей мере 3 системы шифрования. С развитием фонетического письма письменность резко упростилась. В древнем семитском алфавите во 2-м тысячелетии до нашей эры было всего около 30 знаков. Ими обозначались согласные звуки, а также некоторые гласные и слоги. Упрощение письма стимулировало развитие криптографии.

Даже в Библии можно найти примеры шифровок, хотя мало кто это замечает. В книге пророка Иеремии (25,26) читаем: "...а царь Сессаха выпьет после них." Такого царя или царства не было - неужели ошибка писца? Нет, просто порой священные иудейские тексты шифровались простой заменой. Вместо первой буквы алфавита писалась последняя, вместо второй - предпоследняя и так далее. Этот древний метод шифрования назывался атбаш. Читая по нему слово СЕССАХ, на языке оригинала получаем слово ВАВИЛОН, и смысл библейского текста может быть принят даже не верящим слепо в истинность писания.

Несомненно, что Прометей, давший людям числа с буквами и оценивший, кстати сказать, их выше огня, может считаться одним из первых криптологов. Но еще Демокрит полагал: "...все искусства, ни какое-либо другое не следует возводить ни к Афине, ни к другому божеству: все искусства порождены с течением времени потребностями и обстоятельствами". Именно поэтому криптология не могла найти хорошую среду обитания вплоть до Римской империи. Так, по свидетельству Геродота в древнем Египте роль шифра обычно играл специально созданный жрецами язык. Там параллельно существовали три алфавита: письменный, священный и загадочный. Первый из них отображал обычный разговорный язык, второй мог использоваться для изложения религиозных текстов, а третий применялся предсказателями или для сокрытия смысла сообщений. В древней Греции - тех же щей, да пожиже влей - бытовали десятки весьма отличных друг от друга диалектов. Диоген Лаэртский так объяснял одну из причин угасания философии пифагорийцев: "...записана она была по-дорийски, а так как это наречие малопонятное, то казалось, что и учения, на нем излагаемые, не подлинны и искажены..."

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

Совсем другое дело, когда государство растет, начинают уважаться права и свободы граждан, в нем фактически нет единой и твердой власти, когда идут захватнические войны и процветает торговля. Поэтому положение меняется в эпоху расцвета Рима, который первоначально представлял собой лишь небольшую античную гражданскую общину, далее непомерно разросся, подчинив себе сначала Италию, а затем и все Средиземноморье. Чтобы управлять наместниками в многочисленных провинциях шифрованная связь для римских органов власти стала жизненно необходимой. Многим, наверное, известен шифр замены, связанный с именем Юлия Цезаря.

Вот что об этом сообщает Гай Светоний: "Существуют и его письма к Цицерону и письма к близким о домашних делах: в них, если нужно было сообщить что-нибудь негласно, он пользовался тайнописью, то есть менял буквы так, чтобы из них не складывалось ни одного слова. Чтобы разобрать и прочитать их, нужно читать всякий раз четвертую букву вместо первой, например, D вместо А и так далее". Это означает, что каждая буква шифровки заменялась четвертой по счету от нее в алфавите: А-В-С-D, или D вместо А. Послание сенату VENI VIDI VICI, то есть ПРИШЕЛ УВИДЕЛ ПОБЕДИЛ, сделанное Цезарем после однодневной войны с понтийским царем Фарнаком, выглядело бы шифровкой SBKF SFAF SFZF.

Зачем обрашщъся к столь древней истории? Монтень в своих философских опытах утверждает: "Невежество бывает двоякого рода: одно, безграмотное, предшествует науке; другое, чванное, сле-ет за нею". Поэтому не нужно смеяться над пpостотой и наивностью первых шифров - опыты пионеров всегда неуклюжи. Однако вовсе не до смеха, когда, стараясь защитить свой труд, современные программисты воспроизводят пороки Гая Юлия - это свидетельствует о глубоких пробелах в нашем образовании.

Поэтому удивительно было познакомиться с использованием упомянутого шифра Цезаря в компьютерном справочнике, содержащим десятки тысяч адресов организаций и предприятий. При проверке стойкости шифра вскрытие нескольких мегабайт собираемой по крупицам в течение ряда лет информации заняло менее часа и от покупки справочника пришлось отказаться. Судите сами: неискушенные пользователи вроде бухгалтеров и финансистов стали бы думать, будто занесённая ими справочник информация надежно защищена, в то время как она легко доступна любому хакеру (и авторам справочника). Вообще-то, разработчиков ненадежных систем шифрования стоит подозревать в лукавстве: что умышленно сделано лишь подобие секретности, чтобы иметь доступ к информации клиентов. Попытки объяснить необходимость надежного шифрования и достаточно частой смены ключей были встречены в фирме изготовившей упомянутый справочник с наивным простодушием: "Если вы хотите свой пароль, отличный от нашего, то назовите его и мы в течение недели поставим его за отдельную плату".

Принципиально иной шифр, более древний, связан с перестановкой букв сообщения по определенному, известному отправителю и получателю правилу. Древние рассказывали: какой-то хитрец из спартанцев обнаружил, что если полоску пергаента намотать спиралью на палочку и написать на нем вдоль палочки текст сообщения, то, после снятия полоски буквы на ней расположатся хаотично. Это то же самое, будто буквы писать не подряд, а через условленное число по кольцу до тех пор, пока весь текст не будет исчерпан. Сообщение ВЫСТУПАЙТЕ при окружности палочки в 3 буквы даст шифровку ВУТЫПЕСАТЙ. Текст ее не понятен, не так ли?

Для прочтения шифровки нужно не только знать систему засекречивания, но и обладать ключом в виде палочки, принятого диаметра. Зная тип шифра, но не имея ключа, расшифровать сообщение было сложно. Этот шифр именовался скитала по названию стержня, на который наматывались свитки папируса, что указывает на его происхождение. Он был весьма популярен в Спарте и много раз совеpшенствовался в позднейшие времена. О его важном значении и большом распространении говорит свидетельство Плутарха в "Сравнительных жизнеописаниях", когда историк сообщает о жизни греческого полководца Алкивиада: "Однако Лисандр обратил внимание на эти слова не раньше, чем получил из дома скиталу с приказанием отделаться от Алкивиада..."

Упомянем, что греческий писатель и историк Полибий изобрел за два века до нашей эры так называемый полибианский квадрат размером 5х5, заполненный алфавитом в случайном порядке. Для шифрования на квадрате находили букву текста и вставляли в шифровку нижнюю от нее в том же столбце. Если буква была в нижней строке, то брали верхнюю из того же столбца.

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

Приборы для шифрования тоже существовали с древних времен. Спарта, наиболее воинственная из греческих государств, имела хорошо проработанную систему секретной военной связи еще в V веке до нашей эры. С помощью скитала, первого известного криптографического устройства, спартанские эфоры (эфоры - члены коллегиального правительства Спарты.) шифровали послания, используя метод простой перестановки. Ленивые и оттого юбретательные римляне в IV веке до нашей эры, чтобы упростить процедуру шифрования, стали применять шифрующие диски. Каждый из 2 дисков, помещенных на общую ось, содержал на ободе алфавит в случайной последовательности. Найдя на одном диске букву текста, с другого диска считывали соответствующую ей букву шифра. Такие приборы, порождающие шифр простой замены. использовались вплоть до эпохи Возрождения. Для связи греки и римляне использовали код на основе полибианского квадрата с естественным заполнением алфавитом. Буква кодировалась номером строки и столбца, соответствующим ей в квадрате. Сигнал подавался ночью факелами, а днем флагами.

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

Становление науки криптологии

Мы истину, похожую на ложь,
Должны хранить сомкнутыми устами,
Иначе срам безвинно наживешь...
Данте. "Божественная комедия "

После падения Римской империи от вторжения варваров в Европе пошли столетия упадка, которые историки образно назвали Темными веками. Все лучшие достижения цивилизации, а вместе с ними и криптология, были утрачены. По свидетельству святого Джерома "весь мир погрузился в руины". Лишь к концу средневековья применение криптографии начинает возрождаться. Например, книга "Экватор Планет", вышедшая в 1390 году и приписываемая Джефри Чосеру, содержит отдельные шифрованные главы.

Эволюция общественной жизни к концу XIV столетия, приведшая к культуре Возрождения, кризису городских коммун, обострению политического противостояния отдельных групп людей, регрессу в развитии общества из-за войн, выдвинула новые факторы усиления позиций криптографии. Появившаяся интеллектуальная элита в виде гуманистов приходит на службу могущественным меценатам, все более отдаляясь от простого народа. В сфере коммуникаций это проявляется тем, что главенствующим языком сообщений становится античная латынь, которая отходит от живого языка даже в Италии. Древние опыты шифрования восстанавливаются и развиваются целой плеядой крупных ученых. Наряду с традиционными применениями криптографии в политике и военном деле возникают неожиданно близкие к нашему времени задачи ее применения для охраны интеллектуальной собственности от преследований инквизицией или заимствования другими учеными. Слова Вергилия из 16 песни "Ада" "Божественной комедии" Данте, приведенные в эпиграфе этой главы, сколь нельзя более верно описывают точку, вокруг которой стала кристаллизовываться средневековая криптология.

В ручных шифрах того времени часто используются таблицы, которые дают простые шифрующие процедуры перестановки букв в сообщении. Ключом в них служат размер таблицы, фраза, задающая перестановку или специальная особенность таблиц. Простая перестановка без ключа - один из самых простых методов шифрования, родственный шифру скитала. Например, сообщение НЕЯСНОЕ СТАНОВИТСЯ ЕЩЕ БОЛЕЕ НЕПОНЯТНЫМ записывается в таблицу по столбцам. Для таблицы из 5 строк и 7 столбцов это выглядит так:

Н О Н С Б НЯ
Е Е О Я О ЕТ
Я С В Е Л ПН
С Т И Щ Е ОЫ
Н А Т Е Е НМ

После того, как открытый текст записан колонками, для образования шифровки он считывается по строкам. Если его записывать группами по 5 букв, то получится: НОНСБ НЯЕЕО ЯОЕТЯ СВЕЛП НСТИЩ ЕОЫНА ТЕЕНМ. Для использования этого шифра отправителю и получателю нужно договориться об общем ключе в виде размера таблицы. Объединение букв в группы не входит в ключ шифра и используется лишь для удобства записи несмыслового текста.

Более практический метод шифрования, называемый одиночной перестановкой по ключу очень похож на предыдущий. Он отличается лишь тем, что колонки таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы. Использовав в виде ключа слово ЛУНАТИК, получим такую таблицу.

Л У Н А Т ИК
4 7 5 1 6 2З
Н О Н С Б НЯ
Е Е О Я О ЕТ
Я С В Е Л ПН
С Т И Щ Е ОЫ
Н А Т Е Е НМ

до перестановки

А И К Л Н ТУ
1 2 З 4 5 67
С Н Я Н Н БО
Я Е Т Е О ОЕ
Е П Н Я В ЛС
Щ О Ы С И ЕТ
Е Н М Н Т ЕА

после перестановки

В верхней строке ее записан ключ, а номера под ключом определены по естественному порядку соответствующих букв ключа в алфавите. Если в ключе встретились бы одинаковые буквы, они бы нумеровались слева направо. Получается шифровка: СНЯНН БОЯЕТ ЕООЕЕ ПНЯВЛ СЩОЫС ИЕТЕН МНТЕА. Для дополнительной скрытности можно повторно шифровать сообщение, которое уже было зашифровано. Этот способ известен под названием двойная перестановка. Для этого размер второй таблицы подбирают так, чтобы длины ее строк и столбцов были другие, чем в первой таблице. Лучше всего, если они будут взаимно простыми. Кроме того, в первой таблице можно переставлять столбцы, а во второй строки. Наконец, можно заполнять таблицу зигзагом, змейкой, по спирали или каким-то другим способом. Такие способы заполнения таблицы если и не усиливают стойкость шифра, то делают процесс шифрования гораздо более занимательным.

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

2 4 1 3
4 П P И Е
1 3 Ж A Ю
2 Ш Е С
3 Т О Г О

исходная таблица

1 2 3 4
4 И П Е Р
1 A 3 Ю Ж
2 Е С Ш
3 Г Т О О

перестановка столбцов

1 2 3 4
1 A 3 Ю Ж
2 Е С Ш
3 Г Т О О
4 И П Е Р

перестановка строк

Получается шифровка АЗЮЖЕ СШГТООИПЕР. Ключом к этому шифру служат номера столбцов 2413 и номера строк 4123 исходной таблицы. Число вариантов двойной перестановки тоже велико: для таблицы 3х3 их 36, для 4 х 4 их 576, а для 5 х 5 их уже 14400. Однако двойная перестановка очень слабый вид шифра, легко читаемый при любом размере таблицы шифрования.

Выдающимся английским философом и изобретателем Роджером Бэконом, предвосхитившим многие позднейшие открытия (наиболее значительное из его изобретений - очки, которые он предложил в 1268 году), был найден состав черного пороха. Так почему же традиционно считают его изобретателем Бертольда Шварца, по преданиям казненного императором Венцеславом на пороховой бочке? Карамзин по этому поводу писал: "Нет сомнения, что и монах Рогер Бакон за 100 лет до Бартольда Шварца умел составлять порох: ибо ясно говорит в своем творении de nulitate Magiae о свойстве и силе оного". Дело в том, что средневековые ученые, сделав открытие, отнюдь не всегда спешили его опубликовать в письмах коллегам, как это было тогда принято при отсутствии периодических научных изданий. Нередко ту часть открытия, которую теперь называют know how, они шифровали анаграммой, переставляя буквы сообщения по известному только им ключу. Например, названия древней и современной столиц Японии в русском написании тоже представляют собой анаграмму: КИОТО - ТОКИО.

В упомянутом труде Бэкона состав пороха был приведен в виде зашифрованной анаграммы, которую до появления сверхбыстродействующих ЭВМ не удавалось вскрыть, и слава открытия поэтому приписывалась Шварцу. Гораздо более сложная проблема возникает с приписываемым Галилео Галилею открытием спутников Юпитера. Долгое время приведенная им анаграмма читалась так: "Высочайшую планету двойною наблюдал", но в 1960-х годах с применением компьютеров при расшифровке был получен иной вариант прочтения: "Привет вам, близнецы, Марса порождение!" Конечно, от- крытие Фобоса и Деймоса на слабеньком телескопе за два с половиной столетия до американца Асафа Холла - событие мало реальное, но кто знает? Описал же Свифт в "Путешествиях Гулливера" спутники Марса за полтораста лет до астрономов с поразительной точностью! Может быть Свифт знал результаты Галилея, которые сейчас неизвестны? Шифры перестановки чрезвычайно коварны в том смысле, что могут дать несколько вариантов осмысленного прочтения, если не знать точного значения ключа.

Какие же шифры применялись еще средневековыми учеными? На известной гравюре Дюрера "Меланхолия" позади грустящего ангела изображен магический квадрат, заполненный цифрами. Магическими квадратами называются квадратные таблицы со вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты широко применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. Считалось, что созданные с их помощью шифровки охраняет не только ключ, но и магическая сила. Вот пример магического квадрата и его шифровки:

16 3 2 13
5 1011 8
9 6 7 12
4 1514 1
О И Р Т
З Ш Е Ю
Ж А С
Е Г О П

Полученная из ПРИЕЗЖАЮ ШЕСТОГО, шифровка ОИРТЗШЕЮ ЖАСЕГОП представляется довольно основательной. На первый взгляд кажется, будто магических квадратов очень мало. Тем не менее их число очень быстро возрастает с увеличением размера квадрата. Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000. Поэтому магические квадраты больших размеров могли быть хорошей основой для надежной системы шифрования того времени, потому что ручной перебор всех вариантов ключа для этого шифра был немыслим.

Широкое развитие торговли в средние века потребовало специфических шифров, предельно простых и удобных, которыми могли бы пользоваться купцы для передачи, например, даты приезда или цены товара. Это были простые шифры замены цифр на буквы, основанные на ключевом слове. Собственно, это коды. а не шифры - вспомните обозначение месяцев на банках консервов, но код, примененный единожды с неизвестной таблицей кодирования, схож по свойствам с шифром. Торговцы заранее договаривались об использовать общее ключевое слово, буквы которого соответствовали бы цифрам. Например, для ключа РЕСПУБЛИКА цифра 0 означает букву Р, цифра 1 означает Е, 2 - С, 3-Н и так далее. Поэтому получив от корреспондента сообщение ПРИБЫВАЮ ЕЛРПАС, они его читали как ПРИБЫВАЮ 16/03/92. Простота и удобство этой системы шифрования позволили ей дожить до начала этого века без всяких изменений.

Другой шифр, обычно называемый шифром Гронсфельда, состоит в модификации шифра Цезаря числовым ключом. Для этого под сообщением пишут ключ. Если ключ короче сообщения, то его повторяют циклически. Шифровку получают будто в шифре Цезаря, но отсчитывая необязательно только третью букву по алфавиту, а ту, которая сдвинута на соответствующую цифру ключа. Так, применяя в качестве ключа группу из трех начальных цифр числа "пи", а именно 314, получаем шифровку:

сообщение СОВЕРШЕННО СЕКРЕТНО
ключ 3143143143143143143
шифровка ФПЖИСЬИОССАХИЛФИУСС

Чтобы зашифровать первую букву сообщения С используя первую цифру ключа 3, отсчитывается третья по порядку от С в алфавите буква С-Т-У-Ф и получается буква шифровки Ф. Разновидность этого шифра была применена в резидентном англорусском словаре, составленном студентами МВТУ, и взломка его доставила слушателям лекций по программированию не меньше удовольствия, чем разгадывание кроссворда. Шифр Гронсфелвда имеет массу модификаций, претендующих на его улучшение, от курьезных, вроде записи текста шифровки буквами другого алфавита, до нешуточных, как двойное шифрование разными ключами. Кроме этих шифров, зачастую использовался шифр простой замены, заключающийся в замене каждой буквы сообщения на соответствующую ей букву шифра. Такой шифр, популярный среди школьников, является простым кодом и вскрытие его возможно при длине шифровки всего в 20-30 букв, а при длинах текста свыше 100 символов представляет собой очень простую, но весьма увлекательную задачу приведенную ниже. А сейчас рассмотрим рождение шифра сложной замены (шифры сложной замены называют многоалфавитными, так как для шифрования каждого символа исходного сообщения применяется свой шифр простой замены. Шифр Гронсфельда тоже многоалфавитный шифр - в нем 10 вариантов замены.), который используется по сей день.

Архитекторы и исследователи Италии эпохи Возрождения считают, что один из самых важных этапов ренессансной архитектуры связан с именем Леона Батиста Альберти, написавшем десять книг о зодчестве, построившим палаццо Ручеллаи, церковь Иль Джезу и ряд других замечательных произведений зодчества средневековой Италии. Будучи теоретиком искусства, он обобщил опыт гуманистической науки в изучении античного наследия, написав ряд трактатов: "О статуе", "О живописи", "О зодчестве". С другой стороны, криптологи всего мира почитают его отцом своей науки. Главным достижением Альберти в криптологии было изобретение многоалфавитной замены, сделавших шифровку очень устойчивой к вскрытию. Кроме самого шифра он еще подробно описал устройства из вращающихся колес для его реализации. Этот шифр можно описать таблицей шифрования, иногда называемой таблицей Виженера, по имени Блеза Виженера, дипломата XVI века, который развивал и совершенствовал криптографические системы:

АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
ААБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
Б_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
ВЯ_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮ
ГЮЯ_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭ
.......
ЯВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_АБ
_БВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_А

Каждая строка в этой таблице соответствует одному шифру замены вроде шифра Юлия Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифровку получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Этот очень распространенный вид шифра сохранился до наших дней. Например, используя ключ АГАВА, из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем сле- дующую шифровку:

сообщение: ПРИЕЗЖАЮ ШЕСТОГО
ключ: АГАВААГАВААГАВАА
шифровка: ПНИГЗЖЮЮЮАЕОТМГО

В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять почаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Для ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание. Итак, помимо ряда строений в античной манере, являющихся шедеврами архитектуры итальянского Возрождения, Альберти еще ввел в практику криптографии многоалфавитные шифры замены. Его книга "Трактат о шифре", написанная в 1466 году, представляла собой первый в мире научный труд по криптологии, если не считать арабских рукописей, с которыми Европа в это время вряд ли была хорошо знакома.

Многие историки считают Иоганна Трисемуса, аббата из Германии, вторым отцом современной криптологии. В 1508 году Трисемус написал "Полиграфию", первую печатную работу по криптологии. В ней он первым систематически описал применение шифрующих таблиц, заполненных алфавитом в случайном порядке. Для получения такого шифра обычно использовались ключевое слово или фраза и таблица, которая для русского языка может иметь размер 5 х 6. Ключевое слово вписывалось в таблицу по строкам, а повторяющиеся буквы отбрасывались. Таблица дозаполнялась не вошедшими в нее буквами алфавита по порядку. Поскольку ключевое слово легко хранить в памяти, то такой подход упрощал процессы шифрования и дешифрования. Для ключа РЕСПУБЛИКА таблица будет иметь следующий вид:

Р

Е

С

П

У

Б

Л

И

К

А

В

Г

Д

Ж

3

М

Н

О

Т

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я

Для описанного выше шифра Полибия с данной таблицей сообщение ОТПЛЫВАЕМ давало шифровку ШЩАДСНМИЦ. Такие табличные шифры называются монограммными, так как шифрование ведется по одной букве. Трисемус первым заметил, что можно шифровать по две буквы за раз. Такие шифры были названы биграммными. Наиболее известный шифр биграммами называется Playfair. Он применялся Великобританией в Первую мировую войну. Опишем его на примере той же самой таблицы. Открытый текст разбивался на пары букв (биграммы) и текст шифровки строился из него по следующим двум очень простым правилам.

1. Если обе буквы биграммы исходного текста принадлежали одной колонке таблицы, то буквами шифра считались буквы, которые лежали под ними. Так биграмма УН давала текст шифровки ВЧ. Если буква открытого текста находилась в нижнем ряду, то для шифра бралась соответствующая буква из верхнего ряда и биграмма ОЯ давала шифр ШБ. (Биграмма из одной буквы или пары одинаковых букв тоже подчинялась этому правилу и текст ЕЕ давал шифр ИИ).

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

Если обе буквы биграммы открытого текста лежали в разных рядах и колонках, то вместо них брались такие две буквы, чтобы вся четверка их представляла прямоугольник. При этом последовательность букв в шифре была зеркальной исходной паре. Например, СТ шифровалось как РХ, а ТБ шифровалось как ШР. При шифровании фразы ПУСТЬ КОНСУЛЫ БУДУТ БДИТЕЛЬНЫ по биграммам получается такая шифровка:

ПУ СТ ЬК ОН СУ ЛЫ БУ ДУ ТБ ДИ ТЕ ЛЬ НЫ
УБ РХ ЫИ ДО ПБ КЩ РБ HP ШР ЖЛ ФР ИЩ ЗЮ

Шифрование биграммами резко усилило стойкость шифров к вскрытию. При всем при том, что "Полиграфия" была довольно доступной печатной книгой, описанные в ней идеи получили признание лишь тремя веками позже. Скорее всего это вызвано плохой известностью среди криптографов Трисемуса, который слыл богословом, библиофилом и основателем архивного дела.
Среди шифров средневековья встречается много курьезов. Леонардо да Винчи шифровал большинство своих личных записей. Самый простой вид шифра которым он пользовался, это обратное написание текста так, что прочесть его можно лишь в отражении зеркала. Однако Леонардо иногда использовал шифры и посерьезнее, поэтому далеко не все его заметки и записи расшифрованы и изучены. Люди, умеющие писать левой рукой справа налево зеркальный текст, нередки. Изумительно, но встречаются люди, которые умеют даже произносить фразы "наоборот" и понимать их на слух. Поистине, человеческим способностям нет и не будет предела!
В средние века появляются профессиональные и даже потомственные криптографы, вроде семейства Ардженти, служившего у папы Римского.

Многие выдающиеся математики, начиная с тех времен, стали привлекаться к криптографической службе. В России великому Леонарду Эйлеру при Анне Иоанновне кроме математики приходилось заниматься еще и криптографией, и астрологией. Именно ему историки приписывают знаменитый гороскоп Ивана VI.
Во Франции таким математиком был Франсуа Виет, основатель современной элементарной алгебры, его теорему о корнях и коэффициентах квадратных уравнений до сих пор изучают в школе. Описывая времена Генриха IV, даже видные литераторы, Мериме и Цвейг, делают явный промах: увлеченно повествуя, как перехватываются и читаются тайные послания, они забывают главное, что искусство криптографии тогда было необычайно высоко развито и сообщения зашифрованные Франсуа Вистом, сеньором Биготьерским, вскрыть никто из современников не мог. В то же самое время он легко читал все шифровки испанского двора, а это, говорят, вызвало жалобу Филиппа II папе Римскому на использование французами черной магии или нечистой силы.
Тем не менее папы Римские сами не чуждались услуг криптографов и выдающийся итальянский математик Джероламо Кардано, имя которого дошло до нас благодаря изобретенному им шарнирному механизму и первой публикации о методе решения уравнений третьей степени, состоял у них на службе. Его перу принадлежит несколько книг по криптографии и описание метода трафаретов, который будет рассмотрен ниже. Если учесть род занятий Кардано, становится понятным, почему, выведя гороскоп Христа, он остался недоступным инквизиции, сжегшей Бруно и судившей Галилея за куда меньшую ересь: эка, невидаль, что Земля вертится! Жизнь и смерть Джероламо полны легенд. Больше всего современников в Кардано поражал дар предвидения, благодаря которому он безмятежно перенес казнь своего сына и потерю крупного состояния. Вероятно, хотя бы отчасти его мистический талант знать будущее объясняется принадлежностью к криптографической службе, знающей все, что можно узнать. Но вот, предсказав продолжительность своей жизни в 75 лет, он в назначенный год покончил самоубийством, оставив записку: "Если и неверно, то неплохо придумано".
Увлечение теорией магических квадратов привело Кардано к открытию нового класса шифров перестановок, названных решетками или трафаретами. Они представляют собой квадратные таблицы, где четверть ячеек прорезана так, что при четырех поворотах они покрывают весь квадрат. Вписывание в прорезанные ячейки текста и повороты решетки продолжаются до тех пор, пока весь квадрат не будет заполнен. Например, на рисунке ниже показан процесс шифровки решеткой 4 х 4. Черными квадратами обозначены непрорезанные ячейки, а повороты осуществляются по часовой стрелке на указанный ниже угол:
**П* З*** *** *Т** ЗТП
***Р *Ж** **Ш* О*** ОЖШР
*И** ***А Е*** **Г* ЕИГА
Е*** **Ю* *C** ***О ЕСЮО
         
0' 90' 180' 270' шифp

В результате получается шифровка ЗТП ОЖШРЕИГАЕСЮО. Число подобных решеток быстро растет с их размером. Так, решетка 2 х 2 единственна, решеток 4 х 4 уже 256, а решеток размером 6 х 6 свыше ста тысяч. Несмотря на кажущуюся сложность, шифры типа решеток довольно просто вскрываются и не могут использоваться в виде самостоятельного шифра. Однако они очень удобны и еще долго использовались в практике для усиления шифров замены. Один мой знакомый, остановившись при чтении рукописи книги на этом месте, попытался высказать сомнение в том, что шифры подобного рода легко вскрываются. Поскольку это глубоко ошибочное и обидное для криптологов мнение широко распространилось из популярных математических книг или иных источников дезинформации, то в следующей главе специально приведен пример вскрытия шифровки, сделанной этой решеткой.

В Англии XVII века возглавлял криптографическую службу математик Джон Валлис, основавший исчисление бесконечно малых, но получивший научное признание и профессуру в Оксфорде не за химерические бесконечно малые, а за редкостные успехи в расшифровке. В Германии же лучшим криптографом тогда был Лейбниц, основатель Берлинской академии наук, языковед и математик, один из создателей дифференциального исчисления, к имени которого мы еще вернемся позже в связи с развитием криптографии в России. Одно время его высокий покровитель, ганноверский курфюрст Георг 1, став королем Англии, хотел пригласить Лейбница на британскую криптографическую службу, но Валлис был там незаменим и утечка континентальных "мозгов" на запад не состоялась. Лейбницу не подфартило стать главным криптографом Англии может быть и потому, что Ньютон, оспаривающий его авторство в дифференциальном исчислении, единолично заправлял в Королевском научном обществе и изо всех сил преследовал менее именитого иностранного конкурента. Другой раз Лейбницу не повезло с приглашением в Петербург для организации русской криптографической службы. Неожиданная его болезнь и смерть расстроили планы Петра 1, активно вербовавшего нужных России ученых. Человеком, сумевшим завершить развитие криптографии в отдельную научную дисциплину, стал по-видимому однофамилец Роджера Бэкона - Френсис Бэкон. Будучи лордом-канцлером при короле Якове 1, он хорошо знал потребности государства в надежных шифрах, и его первая талантливая работа, относящаяся к 1580 году, в дальнейшем получила блестящее практическое развитие. В частности, именно он впервые предложил двоичное кодирование букв латинского алфавита - то же самое, которое используется сейчас в компьютерах.

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

Криптография была известна и применялась во многих слоях общества Британии. Лондонец Самуэль Пепис (1633-1703) всемирно известен своим дневником, по которому историки пишут труды о переходе от Пуританства к Реставрации. Искусствоведы включили это произведение в мировую сокровищницу литературы. Пепис окончил Кембридж благодаря кузену отца - адмиралу Монтегю и имел много друзей: ученого Исаака Ньютона, архитектора Кристофера Рена, поэта и драматурга Джона Драйдена. Пепис был лично свидетелем таких незабываемых для Англии событий, как возвращение короля Чарльза II в Англию, большая чума 1664 года, пожар Лондона 1666 года, революция 1688 года. Интересно, что его мемуары были зашифрованы по системе криптолога Томаса Шелтона и дополнительно собственным шифром Пеписа, поскольку содержали много скандальных фактов о великих современниках. Вместе с его личными книгами и бумагами дневник после смерти писателя попал в Кембридж, где сразу же привлек внимание исследовелей. Первый успех в его расшифровке был получен лишь в 1822 году, а полностью она завершена в 1899 году. Таким образом, к XVIII веку ипкриптография окончательно сложилась в виде самостоятельной науки. Однако несмотря на наличие профессиональных криптологов, находящихся на государственной службе, и постоянного использования шифров в дипломатии и военном деле, криптология еще не вышла из младенческого возраста и ею могли заниматься лишь избранные, одаренные одиночки.

Криптология в Новое время

Новое время привнесло новые достижения в криптографию. Постоянно расширяющееся применение шифров выдвинуло новое требование к ним - легкость массового использования, а старое требование - устойчивость к взлому не только осталось, но и было усилено. Поэтому 1854 год, когда англичанин Чарльз Уитстон разработал новую шифровку биграммами, которую называют двойной квадрат, открыл новый этап в криптографии. Название шифр получил по аналогии с полибианским квадратом. В отличие от полибиаиского, двойной квадрат использует сразу две таблицы, расположенные по горизонтали, а шифрование идет биграммами, как в шифре Playfair. Эти, казалось бы и не столь уж значительные изменения привели к появлению на свет новой криптографической системы ручного шифрования. Она оказалась так надежна и удобна, что применялась немцами даже в годы Второй мировой войны. По отзыву ее создателя, шифрование двойным квадратом предельно просто и его "можно доверить даже дипломатам". Приведем пример использования шифра двойной квадрат для русских текстов. Имеются две таблицы со случайно расположенными в них алфавитами:
Ч   В Ы П
О К : Д У
Г Ш 3 Э Ф
Л Ъ Х А ,
Ю Р Ж Щ Н
Ц Б И Т Ь
. С Я М Е
         
Е Л Ц : П
. Х Ъ А Н
Ш Д Э К С
Ы   Б Ф У
Я Т И Ч Г
М О , Ж Ь
В Щ 3 Ю Р

Для шифрования сообщение разбивают на биграммы. Первая буква биграммы находится в левой таблице, а вторая в правой. Затем, мысленно в таблице строится прямоугольник так, чтобы буквы биграммы лежали в его противоположных вершинах. Другие две вершины этого прямоугольника дают буквы шифровки. Предположим, что шифруется биграмма текста ОЖ. Буква О находится в колонке 1 строки 2 левой таблицы. Буква Ж находится в колонке 4 строки 6 правой таблицы. Значит, прямоугольник образован строками 2 и 6, а также колонками 1 левой и 4 правой таблиц. Следовательно, шифровке соответствуют буквы, лежащие в колонке 1 строки 6 левой таблицы Ц и в колонке 4 строки 2 правой таблицы А - биграмма АЦ. Так парами букв шифруется все сообщение:

Сообщение: ПР ИЕ ЗЖ АЮ Ш ЕС ТО ГО  
Шифровка : ПЕ МБ КИ ФМ ЕШ РФ ЖБ ДЦ ЩП

Если обе буквы биграммы сообщения лежат в одной строке, то и буквы шифровки берутся из этой же строки. Первая буква биграммы шифровки берется из левой таблицы в столбце, соответствующем второй букве биграммы сообщения. Вторая же буква биграммы шифровки берется из правой таблицы в столбце, соответствующем первой букве биграммы сообщения. Так, по приведенным выше таблицам биграмма сообщения ТО превращается в биграмму шифровки ЖБ. Несомненно, что шифрование биграммами дает весьма устойчивый к вскрытию и простой шифр, а это было в то время крупным успехом. Взлом шифровки двойного квадрата требует больших усилий и длины сообщения более тридцати строк.
     Во второй половине XIX века появляется множество работ по вскрытию сложных шифров замены для конкретных условий, при использовании повторяющегося короткого ключа, при шифровке нескольких сообщений одним ключом. Тогда же в Англии и США стали выходить периодические издания, посвященные вопросам криптоанализа, где профессионалы и любители, обмениваясь опытом, предлагали новые типы шифров и анализировали их стойкость ко взлому. Возможно, одного из самых больших успехов XX века криптоаналитика добилась, когда Британская морская разведка в начале 1917 года передала правительству США текст секретной расшифрованной телеграммы (телеграмма была перехвачена с трансатлантического кабеля.) , известной как послание Циммермана, бывшего министром иностранных дел Германии. В ней немецкому послу в Мексике предлагалось заключить союз, чтобы Мексика захватила американские штаты Техас, Нью-Мехико и Аризону. Эта телеграмма, произвела эффект взрыва и, считают сейчас историки, стала главным поводом для вступления США в Первую мировую войну против Германии, обеспечив ее разгром. Так криптография впервые серьезно заявила о своей исключительно большой значимости в современном мире.
     XIX век с расширением связных коммуникаций занялся автоматизацией процесса шифрования. Появился телеграф, нужно шифровать и его. Любопытно, что цифровое шифрующее колесо было изобретено госсекретарем Томасом Джефферсоном в 1790 году, ставшим потом третьим президентом США. Похожие шифрующие устройства применялись армией США и после Второй мировой войны. Принцип работы таких машин, очень похожих на арифмометры, заключается в многоалфавитной замене текста сообщения по длинному ключу. Длина периода ключа определялась наименьшим общим кратным периодов оборотов шифрующих колес. При 4 колесах и периодах их оборотов 13, 15, 17 и 19 получалась большая длина периода ключа 62985, очень затрудняющая расшифровку коротких сообщений. Гораздо более примитивный прибор, цилиндр Базери, был предложен Этьеном Базери в 1891 году. Он состоял из 20 дисков со случайно нанесенным по ободу алфавитом. Перед началом шифрования диски помешались на общую ось в порядке, определяемым ключом. Набрав первые 20 букв текста в ряд на цилиндрах их поворачивали вместе и считывали в другом ряду шифрованное сообщение. Процесс повторялся, пока все сообщение не было зашифровано. Однако первая практически используемая криптографическая машина была предложена Жильбером Вернамом лишь в 1917 году. Применение машин в криптографии расширялось, что привело к созданию частных фирм, занимающихся их серийным выпуском. Шифровальная аппаратура создавалась в Германии, Японии, США и ряде других развитых стран.

Предшественницей современных криптографических машин была роторная машина, изобретенная Эдвардом Хеберном в 1917 году и названная впоследствии Энигмой (Слово enigma переводится как загадка. Промышленные образцы этой машины изготовляла фирма Siemens.). Независимая промышленная ее версия создана чуть позже берлинским инженером Артуром Кирхом (некоторые источники называют его Артуром Шербиусом). Она сначала Представляла собой 4 вращающихся на одной оси барабана, обеспечивающих более миллиона вариантов шифра простой замены, определяемого текущим положением барабанов. На каждой стороне барабана по окружности располагалось 25 электрических контактов, столько же, сколько букв в алфавите. Контакты с обеих сторон барабана соединялись попарно случайным образом 25 проводами, формировавшими замену символов. Колеса складывались вместе и их контакты, касаясь друг друга, обеспечивали прохождение электрических импульсов сквозь весь пакет колес. Перед началом работы барабаны поворачивались так, чтобы устанавливалось заданное кодовое слово - ключ, а при нажатии клавиши и кодировании очередного символа правый барабан поворачивался на один шаг. После того, как он делал оборот, на один шаг поворачивался следующий барабан - будто бы в счетчике электроэнергии. Таким образом, получался ключ заведомо гораздо более длинный, чем текст сообщения.
     Например, в первом правом барабане провод от контакта, соответствующего букве U, присоединен к контакту буквы F на другой его стороне. Если же барабан поворачивался на один шаг, то этот же провод соответствовал замене следующей за U буквы V на следующую за F букву G. Так как барабаны соприкасались контактами, то электрический импульс от нажатой клавиши с буквой исходного текста прежде чем достигал выхода претерпевал 4 замены: по одной в каждом барабане. Для затруднения расшифрования барабаны день ото дня переставлялись местами или менялись. Дальнейшее усовершенствование этой машины сделало движение барабанов хаотичным, а число их увеличилось сначала до 5, а потом до 6. Все устройство могло поместиться в портфеле и было так просто, что обслуживалось обычными связистами.

Казалось бы, сделано все для невозможности вскрытия шифровок Энигмы. И все же английские криптографические службы в Блетчли Парке (уединенное поместье в 80 километрах севернее Лондона, отведенное британским криптологам.) почти всю войну читали немецкие шифры. Это стало возможным лишь благодаря польской разведке, которая к злополучному 1939 году смогла получить чертежи Энигмы и разобраться в ее устройстве. После нападения гитлеровцев на Польшу чертежи немецкой шифровальной машины были переданы Англии. Довольно быстро британские криптоаналитики установили, что для взлома шифра, нужно знать распайку проводов в шифрующих колесах. Началась охота британских спецслужб за образцами Энигмы. Первый удалось выкрасть прямо с завода на юго-востоке Германии, второй сняли со сбитого в небе Норвегии немецкого бомбардировщика, третий был найден во время боев за Францию у немецких военных связистов, взятых в плен. Остальные Энигмы сняты водолазами с немецких подводных лодок, за которыми специально стали охотиться и топить на малых глубинах.
     Взлом шифров Энигмы шел тяжело до тех пор, пока в 1942 году не вступили в строй несколько ЭВМ, специально созданных для этого Аланом Тьюрингом. Это была первая в мире довольно быстродействующая ЭВМ под названием "Колосс", специализированная для взлома шифров. После этого английские криптоаналитики могли меньше чем за день могли расколоть любую шифровку Энигмы, полученную добытыми ранее колесами, методично перебирая все возможные ключи. Немцы рассчитывали на сложность своего шифра, исходя из его ручной дешифровки, в то время как англичане стали его ломать, используя ЭВМ. Отметим, что сами немцы допускали возможность взлома шифра Энигмы. Еще в 1930 году ведущий немецкий криптоаналитик Георг Шредер продемонстрировал такую возможность, едко заметив при этом: "Энигма - дерьмо!" Однако она постоянно усложнялась и были периоды, когда в Блетчли Парке с ней не могли справиться. Перед шифровками Энигмы, которые исходили не от войск, а из немецких криптографических центров, "Колосс" тоже был бессилен.
     Высокое развитие криптографической техники стран западных союзников в значительной степени предопределило ход многих боевых операций во время Второй мировой войны. Англия, хоть и несла на море большие потери, но практически подавляла любые организованные действия немецкого флота, перехватывая и читая приказы гроссадмиралов Редера и Деница. В книгах воспоминаний английских криптографов страницы сплошь усеяны фразами "...мы знали...", за которыми стоит колоссальный труд тысяч человек.
     США тоже "знало" о многих намерениях японской армии, и вот почему. Все началось еще до войны, с объявления о задержке отправления почти на час океанского лайнера, следующего из Токио в США. Никто не заметил, что обычную портовую суету усугубили несколько американцев, которые со скоростью биржевых новостей о финансовом крахе, скатившись по трапу разъехались на такси. Корабль вышел в море, лишь когда один из этих господ спешно возвратился на борт, бережно прижимая к груди большой сверток. Тем не менее, неприятности этого рейса только начинались. Команда была недоукомплектована стюардами и некому было доставлять обеды в каюты по требованиям пассажиров. Энергетическая установка барахлила и свет то мигал, то временами светил тускло. Кроме того, чтобы обойти опасные циклоны стороной, лайнер, петляя в океане, опоздал на несколько дней в порт назначения на западном побережье США. Было бы кощунственно отнять у небес право авторства на уникально длинную цепочку досадных невезений с безупречным до этого рейса кораблем, но придется.

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

Теперь оценим, стоила ли игра свеч. Японский флот перед войной значительно превосходил флот союзников по числу авианосцев, что давало ему преимущества в ведении операций на море. 7 декабря 1941 года японцы внезапно нанесли удар по основным базам США и Великобритании в бассейне Тихого океана. США потеряли все линейные корабли, 6 легких крейсеров, эсминец, множество легких судов и 272 самолета. Однако, к этому времени американские криптографы уже научились ломать коды сверхсекретной шифровальной машины. Поэтому первым реваншем за разгром в Перл Харборе стало потопление японского флота у атолла Мидуэй, которое обеспечили американские криптоаналитики, взламывая ро-код радиопереговоров генштаба Токио и оперативно указывая точные координаты целей. В июне 1942 года японцы решили десантом захватить атолл Мидуэй. Всего за 3 дня сражений 3-6 июня японские ВМС лишились своего превосходства в авианосцах, а в 1944 году американцы уже в 10 раз превосходили японцев по авиации и авианосцам. Высшим своим достижением американские криптологи считают операцию 1943 года по перехвату и уничтожению единственного самолета с адмиралом Ямамото (Ямамото лично руководил операцией в Перл Харборе.), прозванного "командующим-людоедом".
     Свою искушенность в технике криптографии скрывали все воюющие стороны. Японская пословица гласит: "Искусство заключается в том, чтобы скрыть искусство". Если ей руководствоваться, то криптографию можно признать одним из наивысших искусств. Англичане усиленно распространяли слухи о разветвленности своей агентурной сети и колоссальных успехах радиолокации, американцы же на страницах своих многочисленных газет уверяли доверчивых читателей в том, что чуть не каждую квадратную милю Тихого океана у них патрулирует отдельный самолет. Тем не менее именно расшифровка радиограмм противника давала главную часть информации для оперативных планов. Разгром большого отряда кораблей германских ВМС у Крита стал возможен лишь благодаря данным ULTRA (кодовым словом ULTRA союзники обозначали немецкие сообщения, полученные взламыванием шифров Энигмы.) , переданным британской эскадре. Чтобы скрыть столь секретный источник информации, каким является ломка шифров, англичане решили "выбить клин клином". Они отправили своему несуществующему агенту благодарность за бесценную информацию об этом отряде кораблей, зашифровав радиограмму уж очень просто. Так и получилось: радиограмма была перехвачена, ее шифр сломан, и немцы введены в заблуждение.

Дезинформация о роли криптографии в войнах настолько всеобъемлющая, что приходится сомневаться и в правдивости воспоминаний ветеранов, которым, казалось бы, нечего терять, но есть чем похвалиться. Немногого стоит сообщение о вскрытии немецкими криптографами русских шифров армии Иосипа Броз Тито, сделанное в мемуарах руководителя зарубежной разведки германского рейха Вальтера Шелленберга. Вслед за этим сомнительным утверждением он приписал: "В шифровках сообщалось о намечающемся десанте англо-американских войск во взаимодействии с югославскими партизанами на побережье Адриатики. Несомненно, что этой дезинформацией нас пытались ввести в заблуждение..." Так чем же была вызвана слабость шифра Москвы - огрехом или коварным расчетом? Освоив искусство двуликого Януса, люди потеряли правду, точнее, перестали ее отличать от вымысла, который на правду стал похож их стараниями. Даже узнав о том, что англичане читали почти все его секретные приказы из ставки в Лориенте и лучше него знали обстановку на море, старый Дениц на вопрос, не чувствовал ли он, что противник читает его мысли, подумав, ответил: "Да нет, ничего такого не было".
     Дезинформация и недоверие были широко распространены даже между союзниками. Англичане передавали союзному советскому командованию читаемые ими примитивные полицейские шифры, выдавая их за предел своих возможностей в расшифровке. В ответ на это советская сторона лицемерно восторгалась англичанами, сожалея, что столь нужной криптографической службы у нее совсем нет, так как она запрещена по Гаагской конвенции вместе с химическим оружием. Это отнюдь не способствовало совместным действиям из-за взаимного недоверия. Не желая раскрыть суть операции ULTRA по расшифровке немецких сообщений, англичане так и не открыли Советам источник сведений о готовящемся нападении Германии на СССР, что вызвало подозрение в провокации (Советское правительство допускало, что англичане желают втянуть СССР в войну с Германией лишь для того, чтобы отвлечь от себя немецкие войска и ссылаются на мнимую угрозу. Кроме того, было известно о планах Лондона оккупировать Баку с целью опередить в этом Берлин.), на что англичане были мастера. Дело доходило до абсурда: дезинформированный о возможностях своей криптографической службы, в конце войны американский шпион похитил для нее японскую шифровальную машину. Он так и не понял, почему машина тайно и спешно была возвращена на место, а сам он впал в немилость, не получив наград. Точно так же были строго наказаны немецкие солдаты, захватившие при оккупации одной из стран Европы мешки с шифрованной секретной дипломатической перепиской. Японские шифры кроме американцев вскрыли еще и в Берлине, читая шифрованную корреспонденцию посланника Окамото из Швейцарии, так и в Москве.
     Завершает историю этого этапа криптографии человек, вдохнувший в нее новую жизнь, математик Элвуд Шеннон, который во время Второй мировой войны, исследуя математическими методами надежность шифрования, придал криптологии цивильный вид, спрятав ее за пазухой общей теории информации. Согласно ей случайная последовательность символов не несет никакого смысла. Связь же информатики с криптологией состоит в том, что найденные статистические свойства шифровки, ключа и сообщения можно привлечь для расшифровки, нахождения конкретного содержания сообщения. Его работа опубликована лишь в 1949 году, так как была засекречена. Поэтому приоритет в ряде результатов принадлежит Винеру и Колмогорову, опубликовавших их несколько раньше.

Создание цифровых ЭВМ заставило полностью изменить взгляды на шифры и их расшифровывание. Американцы утверждают, что их война с Ливией - следствие машинной расшифровки радиообмена террористов (израильский разведчик, повздоривший с руководством, утверждал в скандальной статье, что компрометирующие Ливию шифровки исходили из Тель-Авива, чтобы руками США разрешить свои проблемы. Кому можно верить, если дело касается разведки?) . Тем не менее роль ручных шифров, по-видимому, останется довольно высокой еще очень долго. Действительно, кому придет в голову пользоваться сложной техникой, чтобы передать пару строк текста или два-три числа? Недаром в романе английского разведчика Грэма Грина "Наш человек в Гаване" любитель кроссвордов представлен криптоаналитиком, вскрывающим донесения главного героя, зашифрованные вручную. Однако на последних страницах книги шеф разведки, перепутав аппараты, дает указания своему повару по телефону с засекречиванием, и тот слышит лишь подобие птичьего щебета.

Криптология в России

Странные русские письмена встречаются, начиная с самой древности. Однако по этому поводу много разных мнений: одна часть лингвистов считает их остатками древней системы письменности - чертами и резами, вытесненной кириллическим алфавитом, другая часть - культовыми или календарными знаками и лишь немногие настоящими шифрами. Действительно, почему бы запись на бересте или на еще не обожженном сосуде не мог сделать ребенок, незнающий грамоты, но стремящийся подражать взрослым? Но надписи на украше- ниях, колоколах, оружии или деревянных идолах несомненно принадлежат взрослым и осмысленны. Кроме того, есть двуязычные тексты выполненные резами и буквицей. Поэтому древние системы письменности хоть и слабо, но известны. Даже древние записи музыки выполненные крюками хоть и неоднозначно, но читаются. Чаще всего за шифры принимаются руны венедов, содержащие около 16 символов, которых явно недостаточно для передачи всех славянских звуков. Интересно заметить близость славянских рунических знаков фракийским, редкие письменные памятники которых относятся к первому тысячелетию до нашей эры. Если принять активно развиваемую в последнее время гипотезу происхождения славян от фракийцев, возводящую их к Спартаку и союзникам древней Трои, то имеем записи на забытой системе письменности (о древности этой системы говорит малое число букв алфавита, когда гласные звуки на письме не отображались, как в финикийском и ряде других древних языков Малой Азии.) , но не шифры.
     Бесспорно, тем не менее, что уже с XIV века в Новгороде существовала техника тайного письма, продолжение которой можно найти в шифровках русских дипломатических документов позднейших времен. Это были шифры простой замены, даже скорее коды, потому что кроме букв встречаются символы странных очертаний. В шифровке князя Барятинского, которую Н.М. Сперанский обнаружил на форзаце книги начала XVII века, имеются такие знаки:

буква сообщения АЕКПРСТЯ
знак кода ГЭ=+Х"ШЮ

Следует заметить, что соответствие букв знакам этого кода было многозначным: буква С могла передаваться вроде ^ и наподобие S. В средние века на Руси складывается и тарабарский язык, на котором общались афони и проходимцы. Фраза ВОЗЬМИ СУМУ звучала по-тарабарски как ТАРА-ВОБАРА-ЗЬМИ ТАРА-СУ-БАРА-МУ. Он дожил до начала этого века оставив о себе в память слово тарабарщина, синоним чего-то непонятного. Из этих примеров видно, что уровень развития криптографии на Руси в это время безнадежно отставал от европейского.
     Однако через торговые связи Новгорода с Германией на Руси очень скоро становились известны все важнейшие открытия, вроде бумаги и пороха. С основанием московской Патриаршей библиотеки, хорошо известной даже в Европе по богатству содержащейся в ней светской литературы и включающей даже переводы эротических арабских новелл, создается реальная возможность заимствования передовых западных шифровальных систем. Необходимость улучшения состояния государевой службы шифрования входящей в Посольский приказ особенно стала чувствоваться в конце XVII века, когда усилиями русской дипломатической службы расширяются международные связи Москвы. Заключая с Польшей в 1667 году Андрусовское перемирие, видный русский дипломат Ордин-Нащокин одновременно учредил и постоянную почтовую связь России с Европой. Это давало возможность развития шифрованной переписки.
     Коренным образом положение меняется с приходом к власти Петра 1, который в 1712 году встречался с Лейбницем, чтобы уговорить его разработать проекты развития образования и государственного устройства в России. Крупный европейский криптограф придавал в своих проектах развитию шифрования большое значение, и в Петербурге появилась цифирная палата, задачами которой было развитие и использование систем шифрования. Видимо, Петр 1 не очень-то следовал своему почтовому указу 1698 года, повелевающему "отнюдь ничьей грамотки не распечатывать и не смотреть...", так как вся иностранная почта доставлялась в посольский приказ для вскрытия и досмотра. Название цифирной палата получила, возможно, по старой алфавитной системе записи чисел. Выделение цифр, да и имен собственных в тексте раньше делалось с помощью титла - специального знака, проставляемого над строкой. Шифры приходилось выделять в сообщении так же, как и цифры, титловать их. Поэтому вполне понятно название шифра цифирью, то есть текстом, требующим специального прочтения. Впрочем, еще считают слово цифирный в названии палаты калькой или буквальным заимствованием французского слова chiffre, означающего шифр и цифру.
     Наиболее быстро применение криптографии развивалось в дипломатической службе обновленного Российского государства, а военные были более консервативны, но и в их среде во время войны 1812 года замечается знание и употребление шифров. Исследователи творчества Пушкина находят шифровки, периодически появляющиеся в его записных книжках. Десятая глава "Евгения Онегина" отчасти была сожжена поэтом, а остатки дошли до нас в виде фрагментов, большей частью зашифрованных. Окончательная расшифровка их была завершена лишь в 1910 году, хотя разбиение шифрованного текста на строфы уточнялось и позднее.
     Гораздо более интересно использование шифров в письмах Грибоедова к своей жене из Персии. Уже в советское время некоторых его биографов смутил тот факт, что в отдельных письмах из Персии жене нарушается характерный стиль и замечательный писатель не похож сам на себя. При исследовании, сделанном криптоаналитиками, оказалось, что эти письма содержали дипломатические послания Александра Сергеевича. Они были сделаны через накладываемый на лист бумаги трафарет, в котором были вырезаны отдельные окошки под буквы. Написав донесение через трафарет, Грибоедов дописывал разбросанные по листу буквы в связный текст так, чтобы он содержал письмо жене и отправлял его с обычной почтой. Российские секретные службы перехватывали это письмо, или, как принято говорить, перлюстрировали, расшифровали, а затем доставляли адресату. Повидимому, жена его не догадывалась о двойном назначении этих посланий. Отметим большое остроумие примененного шифра и хорошую надежность; имея отдельное письмо, вскрыть шифр практически невозможно, а переписывание текста от руки разрушало шифровку, поскольку буквы неизбежно сдвигались по месту расположения.
     Цифирное дело в России развивалось и шифры стали употребляться не только для зарубежной, но и внутренней переписки. Известно, что сенатор, тайный советник Тапильский, посланный из Петербурга Александром II в Москву к митрополиту Филарету с просьбой составить царский манифест 1861 года об освобождении крестьян, имел личный шифр для почтовых отправлений. Деликатность миссии сенатора заключалась лишь в том, что царь считал нежелательным разглашение факта поручения духовному лицу светского дела. С выстрелами в царя Каракозова наступил, новый период деятельности российской криптографической службы. Началось состязание охранки с революционерами: кто быстрее - жандармы переловят террористов или террористы убьют царя. Сейчас историки наперебой предлагают имена: Азеф, Гапон, Дегаев, Малиновский, Окладский, Романов, Тихомиров (перечислены фамилии агентов царской охранки.) - вот кто предавал охранке имена революционеров и их планы. Однако, начиная с семидесятых годов XIX века и до революции, правительственные криптоаналитики читали все без исключения перехватываемые шифровки революционеров.

Конечно, без агентов не обойтись, но, владея техникой вскрытия шифров, можно получить информации много больше, чем ее давали несколько сотен агентов охранки. Документальных подтверждений этому множество, например: "3.01.1910. Начальнику Санкт-Петербургского губернского жандармского управления. Департамент полиции... препровождает при сем Вашему Превосходительству ключ к шифру и разбор шифрованной записки, отобранной по обыску у Якова Свердлова..." В своих мемуарах генерал П.П. Заварин писал о криптологе Зыбине, что простые шифры он разбирал с первого взгляда, а сложные приводили его в состояние, подобное аффекту, которое длилось, пока ему не удавалось расшифровать документ. Сам Зыбин говорил, что "за всю свою жизнь не расшифровал только одного письма по делу австрийского шпиона, но это было давно, теперь я и с ним не провалился бы!" Историкам, изучающим российское революционное движение, нужно исходить из предположения, что почти все письма подпольщиков перехватывались, а значит, и читались в цифирной палате. Но единственный раз в мемуарах уральского рабочего довелось прочесть предположение, что жандармы знали многое из писем, даже если те были шифрованные.

Можно было бы многое рассказать о роли криптографических служб в русско-японской и Первой мировой войнах, но, как говорят аборигены Севера, теперь наш разговор уйдет на другую сторону реки. Не выдержав потрясений двух революций 1917 года, государственная криптографическая служба России надолго прекратила свое существование и потребовались долгие годы на ее воссоздание. Если судить о состоянии отечественной криптографии по воспоминаниям начальника румынской контрразведки, то в двадцатые годы все шифровки наших военных читались, да и у дипломатов дела шли ненамного лучше.

В Правительственной криптографической школе Британии, созданной при Адмиралтействе в 1919 году, главой секции, работавшей против России, служил некто Эрнест Феттерлейн, пожилой человек, получивший от сослуживцев игривое прозвище Фетти. Он бежал из Советов, спрятавшись на борту шведского судна. В России перед революцией Феттерлейн занимал пост ведущего криптолога, имел ранг адмирала и лично награжден царем перстнем с огромным рубином за выполнение деликатных поручений. Слабосильные советские шифровальные системы Фетти ломал играючи. Так, читая его расшифровки секретной дипломатической переписки Советов, англичане с удивлением узнали, что неблагодарная Москва (Британия первой из западных стран дипломатически признала советскую Россию.) поддерживает оппозицию в Индии, бывшей тогда британской колонией, и финансирует экстремистов в рабочем движении Англии.
     Правительство Ллойд Джорджа решило опубликовать его расшифровки в печати, чтобы заставить Советы прекратить вмешательство во внутренние дела Британии, хотя настаивало, чтобы газеты не раскрывали источника информации. Но в 1921 году "Таймс", нарушив обещания правительству, напечатала сенсационную статью с полными текстами расшифрованных телеграмм, где содержались факты получения денег от Советов газетой "Дейли Геральд" и грубое оскорбление главы британского правительства, допущенное Лениным в инструкции для Красина, возглавлявшего торговую делегацию: "Эта свинья Ллойд Джордж пойдет на обман без тени стыда или сомнения. Не верьте ни единому его слову и в три раза больше дурачьте его". В результате Каменев был выслан из Британии за контрабанду драгоценных камней и подкуп прессы, а отношения между странами стали предельно напряженными.

Слабость своих шифровальных систем Советы осознавали. Михаил Фрунзе информировал Москву: "Из представленного мне сегодня бывшим начальником врангелевской радиостанции Ямченко доклада устанавливается, что решительно все наши шифры вследствие их несложности расшифровываются врагами. Вся наша радиосвязь является великолепнейшим средством ориентирования противника". Если белогвардейцы не могли сами прочесть шифровку Советов быстро, то обращались в Лондон к Фетти и тот сходу ломал шифр. Когда в 1923 году Москва ввела новые шифры, которые считала более стойкими, то Фетти понадобилось всего лишь несколько дней, чтобы прочесть их скандальное содержание. Результатом этого стал ультиматум Керзона с требованием прекратить враждебные против Британии действия Москвы. Ультиматум дословно воспроизводил тексты шифрованных дипломатических телеграмм. Поэтому в конце 1923 года Советы снова сменили скомпрометированные дипломатические шифры. Чтобы сломать их в этот раз, стареющему Фетти уже понадобилось два года.
     Агентурные шифры России были тогда слабее дипломатических. Завербованный в парижском центре белогвардейского движения агент жаловался на слабость и неудобство применяемых шифров. Больше всего пунктуального офицера русской армии раздражало то, что шифровки наносились тайнописью меж строк обычных посланий, а Москва нередко забывала специальным образом пометить письмо, содержащее тайнопись, и оно уничтожалось без прочтения. Более того, проявленный дрянным составом тайнописный текст исчезал порой так быстро, что не удавалось успеть его скопировать. Любопытное веское доказательство того, что шифровки третьего Коминтерна читались англичанами, привела газета "Новости разведки и контрразведки". Оказывается, англичане знали о существовании в Лондоне его подпольной радиостанции, но не прекращали ее работу!

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

Все было будто обычно: перехватив радиограмму, связисты опознали почерк радиста ставки главнокомандующего противника, а по характеру передачи допустили, что она содержит очень важный приказ. Криптологи знали, что речь может идти о крупном наступлении и предположили, что в конце документа находится подпись единственного человека, который мог издать этот приказ - Адольфа Гитлера. Дальше идет уже техника взламывания шифра: через известный участок текста вскрывается ключ, а ключом расшифровывается весь остальной текст. Можно было сомневаться в правильности сообщения Кузнецова: нет ли там дезинформации, игры контрразведки противника, но не доверять подлинности приказа войскам уже не приходилось. "Этому наступлению, - говорилось Гитлером в оперативном документе номер 6, - придается решающее значение. Оно должно завершиться быстрым и решающим успехом..." Для проведения операции, получившей наименование Цитадель, на флангах Курского выступа были сосредоточены 50 отборных дивизий, 10000 орудий, 2700 танков и свыше 2000 самолетов. Дешифровка приказа установила, что наступление начнется утром, и в 2 часа 20 минут началась артиллерийская контрподготовка. Из-за больших потерь ВВС, понесенных в сражении под Курском, Германия вынуждена была впредь полностью отказаться от действий своей авиации по объектам нашего глубокого тыла.
     Несмотря на решающую роль атаки криптографов в победе под Курском, о ней до сих пор говорили лишь в очень туманных выражениях. Так, маршал Василевский в своей статье "Историческое сражение", написанной к 25-летию Победы для газеты "Правда" от 4.7.1968 года, скромно отметил роль неких "важнейших разведывательных данных". Другой участник подготовки битвы под Курском, маршал Жуков, в своих мемуарах привел блестящий пример того, как можно делиться воспоминаниями, ничего по сути дела не рассказывая: "Стало известно, что сведения, полученные в тот день от захваченного пленного солдата 168-й пехотной дивизии, о переходе противника в наступление на рассвете 5 июля, подтверждаются..." Вот так! Просто стало известно...
     Имя нашего героя Курской битвы еще ни разу не упоминалось в печати, и автор не решается первым его назвать. Однако другого человека, тоже вложившего немало своих сил в эту победу, давно знает весь мир. Это - Джон Кернкросс. С 1942 по 1944 год он в Блетчли Парке был куратором проекта ULTRA и редактором перехваченных документов.

А в 1981 году госпожа Тэтчер, выступая в британском парламенте, признала, что он был также и советским разведчиком. Кернкросс особенно гордился тем, что шифры люфтваффе, которые он передал советскому командованию, позволили перед курской битвой разбомбить большинство немецких самолетов на земле.
     После войны службы криптографии России окрепли, получив необходимые технику и теорию. При всем том несоизмеримо возросла и сложность решаемых ею задач. Именно в это время начинают употребляться исключительно машинные шифры многоалфавитной замены осложненные перестановкой с ключами очень большой длины, которые отвечали самым высоким требованиям секретности. Шифры недавних союзников были настолько крепким орешком, что расколоть их не представлялось возможным, если только шифровальщиком не допускались грубые ошибки. Американцы привозили свои дипломатические шифровки из здания посольства на Садовом кольце в Центральный телеграф, где их сдавали почти как обычные международные телеграммы. Аналогично поступали и наши дипломаты в Вашингтоне. Единственное отличие от обычных телеграмм состояло в том, что шифровки доставлялись на телеграф в виде перфолент, готовых к передаче, ведь набить без ошибки шифрованный текст - трудоемкая и ненадежная процедура.
     Разведка активно вела охоту за криптографами противника: их склоняли к измене, запугивали, соблазняли. Так, из материалов следствия по делу Абеля стало известно, что шифровальщик посольства США в Москве был завербован КГБ, попавшись на шантаж. Другой американский криптограф, после ряда лет сотрудничества с советскими спецслужбами по идеологическим причинам, остаток жизни доживал в СССР. Третий, офицер ВМФ США, передал секретнейшие криптографические ключи. О нем поставлен популярный художественный фильм "Шпион, выдавший ключ", имевшийся у отечественных видеопиратов в прокате. Однако ЦРУ тоже не сидело сложа руки и переманило шифровальщика ГРУ в Канаде на свою сторону. Даже американскому президенту пришлось признать, что "сведения о шифрах представляются настолько же важными, как ключи от сейфа..."
     Криптография становилась важной подотраслью информатики. Только Агентство национальной безопасности США тратило на нее около 15 миллиардов долларов в год, содержав штат из 65 тысяч строго засекреченных специалистов (Обстановка секретности вокруг АНБ настолько велика, что его английскую аббревиатуру NSA шутники переводят как "No Such Agency" иди "Нет такого агентства".). И хотя данные о численности персонала и расходах КГБ на криптографию отсутствуют, но они должны быть сопоставимы. Ручное расшифровывание отошло в область преданий и единственным способом атаки стал подбор ключа на ЭВМ. Это вызывало особый интерес к быстродействующим машинам и созданию сверхмощных вычислительных сетей. В списке первоочередных задач страны начала семидесятых годов значилась программа АИСТ объединения всех мощных ЭВМ СССР в единую сеть, предложенная 8 управлением КГБ. К сожалению, эта интересная программа, которая могла вывести СССР в лидеры компьютерных коммуникаций, так и не стала задачей страны: победили ведомства, отстаивающие свои курятники, смогли же они незадолго до этого "свалить" Хрущева, покусившегося на их вотчины и предложившего совнархозы.
     Очевидно, основную задачу российская криптографическая служба видела и видит больше в защите своих шифров, чем взломе шифров потенциального противника. Увеличивающееся отставание отечественной электроники не оставляет надежд на силовой подход к взлому шифров подбором ключа, а усиливать свои шифры в любом слу- чае необходимо. Настораживают частые визиты американских подводных лодок в наши территориальные воды. Как правило, это указывает на то, что рядом с подводными кабелями связи оставлены устройства записывающие радиоизлучение, информацию с которых нужно периодически снимать. Эти операции опасны и очень дорого стоят, почему же США идут на них, неужели читают шифры? Скорее всего, даже имея сверхбыстродействующие ЭВМ, противник не в состоянии читать правительственные шифровки. Но многие каналы в кабеле бывают засекречены слабыми военными шифрами, используемыми в нижних звеньях управления войсками. Это дает шанс перехватчику получить информацию, по которой можно судить о состоянии дел абонентов, что вполне окупает затраты. Возможно, что и чеченские террористы тоже успешно использовали слабость шифров армейских подразделений.
     Напомним, что по неосторожности приказ Гитлера о приостановке наступления под Дюнкерком в мае 1940 года был продублирован по незащищенному каналу связи и перехвачен англичанами. Тогда группа союзных армий была зажата в тиски, а подвижные войска фашистов вышли на рубеж в 20 км от Дюнкерка - последнего порта, оставшегося в распоряжении союзников. С занятием его союзные армии были бы уничтожены, но англичане с 27 мая начали поспешно выводить свои войска из Франции и в ночь на 3 июля эвакуация была закончена. Всего удалось эвакуировать 338 тысяч человек, треть из которых составляли французы и бельгийцы. К этому времени бельгий- ская армия капитулировала и немцы возобновили наступление, но уже было поздно. Долгое время "чудо под Дюнкерком" приписывалось доблести солдат и таланту генералов, пока, наконец, историки не оголили истину вполне - отсутствие шифра спасло армии!
     Область криптографии росла: сначала правительственная связь, а затем военная и спутниковая. Любопытный эпизод российской криптографии, связанный с разработкой аппаратуры засекречивания телефонных разговоров в условиях ГУЛАГа, описан в романе Солженицына "В круге первом". Однако там нет ни одного персонажа криптографа и похоже, что создавалась не система закрытия телефонных разговоров, а так называемая вокодерная (от voice coder или кодировка речи, но не шифрование!) система параметрического уплотнения речевых сигналов, которая, впрочем, тоже может шифроваться. С тридцатых годов правительственная связь использовала телефонию с перевернутым и сдвинутым спектром речевого сигнала. Уровень секретности этих систем был так низок, что некоторые люди разбирали речь в бульканье и взвизгах, слышимых в трубке. Настоящее же засекречивание телефонной связи было создано лишь во время хрущевской оттепели: по крайней мере Гагарин в космическом полете ей уже пользовался. Насколько государственное засекречивание речевых сигналов ненадежно, говорит следующий факт. Когда был сбит корейский лайнер над Охотским морем, уже через неделю США представило в ООН дешифровку переговоров пилотов, ставшую вещественным доказательством агрессивных действий СССР. На этом стоит завершить экскурсию по истории криптографии. Если у читателей возникли вопросы, то бесполезно их адресовать к автору книги: попробуйте обратиться в архивы органов безопасности - там наверняка знают много больше.
     Чтобы у читателя не возникло иллюзий, будто сильная криптографическая служба с большими затратами на нее способна решить все проблемы разведки, следует привести ряд ее тяжелых поражений. Криптологи Британии, добившиеся колоссальных успехов в мировых войнах, между ними, в тридцатые годы, не смогли сломать ни одной шифровки потенциальных противников. Поэтому в 1938 году во внутреннем меморандуме руководитель Интеллеженс Сервис отметил, что подчиненная ему криптографическая служба "была совершенно непригодной для тех целей, ради которых она создавалась". А так ли уж важно читать шифровки противника? Например, чтение всего радиообмена армии Роммеля не спасло союзников от сокрушительных поражений в Африке. Более того, именно взломка кодов больше всего содействовала неудачам. Раз из пустыни Роммель доложил Берлину о своем отчаянном положении. Когда же воодушевленная этим известием британская армия попыталась окружить его, то была разбита. Оказалось, что состояние немецких войск было великолепное. Похоже, Роммель пытался привлечь внимание генштаба к своим проблемам, преувеличивая их до гротеска. При Кассерине он еще раз разбил англичан, так как они из шифровки знали приказ немецкого генштаба выступать ему в одном направлении, а он пошел в другом, потому что лучше видел сложившуюся ситуацию. Американцы же за день потеряли половину бронетанковой дивизии из-за того, что Роммель начал наступление на два месяца раньше указанного ему генштабом в шифровке срока. Читать шифровки врага - не значит читать его мысли! Проницательный и независимый немец Роммель хорошо доказал этот тезис на деле.
     Код в шифре тоже представляет трудную задачу для понимания замыслов противника. Британские разведслужбы, читая шифрованные приказы немцев, знали, что примерно с 9 по 13 августа 1940 года Германия проведет операцию "День орла", в которой будет задействовано люфтваффе.

Однако смысл этой операции не был понятен до тех пор, пока она не началась. Пагубны как недоверие, так и слепая вера во всесилие криптографических служб. Так наступление под Арденнами стало гибельным для союзников, считавших, что через радиоперехват они полностью контролируют ситуацию. Но Гитлер, взяв руководство этой операцией на себя, запретил все радиопередачи и приказы войскам доставлялись лишь фельдъегерями. Не получая информации, союзные войска были спокойны, хотя "радиомолчание" противника практически всегда свидетельствует о передислокациях его частей. Из-за радиомолчания несколько дней авиация и артиллерия американцев наносила удары по острову Кыска, откуда гарнизон японцев был давно эвакуирован. То же самое произошло и при захвате ими острова Миндоро.
     Еще нужно заметить, что добившись больших успехов в ломке шифров Энигмы, англичане настолько запустили совершенствование своих методов шифрования, что немцы не имели проблем со взломом их. По заявлению пленного немецкого криптоаналитика, они не читали всю английскую переписку лишь потому, что не хватало переводчиков, с серьезной языковой практикой. Теперь подсчитано, что союзникам это стоило 50000 жизней моряков, потому что шифры для караванов судов были особенно слабы.

ЭЛЕМЕНТЫ КРИПТОАНАЛИЗА

     - А теперь, друзья мои,- сказал Гленарван, -
     будем продолжать расшифровку.
          Жюль Берн. "Дети капитана Гранта "

Несмотря на то, что задача вскрытия шифров в этой книге не ставилась, но без описаний общих подходов к этой проблеме нельзя ни понять эволюцию криптографии, ни дать понятия устойчивости шифров. Поэтому хотя бы кратко изложим подходы к раскалыванию ряда простых шифров, что даст общую картину приемов, используемых в этой области. Существует пропасть между ручными и машинными способами шифровки. Ручные шифры весьма разнообразны и могут быть самыми неожиданными. Кроме того, закрываемые ими сообщения предельно кратки. По этой причине их вскрытие гораздо более эффективно выполняется людьми. Машинные шифры более стереотипны, вычислительно предельно сложны и предназначены для закрытия сообщений очень большой длины. Естественно, что вручную их расколоть даже и не надо пытаться. Однако и здесь криптоаналитики играют главную роль, выступая в роли полководцев криптографической атаки, хотя само сражение ведут лишь технические и программные средства. Недооценка этой особенности обусловила поражение шифров криптографической машины Энигмы во время Второй мировой войны.
     Всегда считаются известными тип шифра и язык сообщения. Их могут подсказать алфавит и статистические свойства шифровки. Однако обычно информация о языке и типе шифра становится известной из агентурных источников. Положение несколько напоминает взлом сейфа: если "медвежатник" и не знает заранее конструкции вскрываемого сейфа, что представляется маловероятным, то он быстро определит ее по внешнему виду, фирменному знаку. Поэтому неизвестным является только ключ, который предстоит вскрыть. Трудность заключается в том, что точно так же, как и не все болезни лечатся одним и тем же лекарством, а для каждой имеются свои специфические средства, так отдельные виды шифров вскрываются только своими приемами.
     При традиционном криптоанализе систем шифрования возможность их раскрытия зависит, в значительной мере, от квалификации взломщика. Криптоаналитик должен хорошо владеть методами дискретной математики, теории чисел, теории сложности, абстрактной алгебры, статистики, алгоритмического анализа и прочих родственных криптографии математических дисциплин, а также иметь развитую интуицию, чтобы найти метод, ведущий к вскрытию шифра, предполагая, что он существует. Процесс криптоанализа всякий раз начинается с самого начала при подходе к новой системе и опыт, полученный при раскрытии одной системы шифрования, редко когда может быть применен для раскрытия другой. Успех криптоанализа определяется алгоритмом шифрования - сложность вскрытия шифра зависит лишь от его конструкции. Это значит, что существует очень мало общих принципов криптоанализа, которые можно было бы практически использовать для раскрытия любых шифров и автоматический криптоанализ эффективен применительно к очень ограниченному классу алгоритмов.
     Поэтому практически стойкость шифров к взлому принимается за меру криптографической стойкости их алгоритмов. Чем продолжительнее шифр не поддается раскрытию, тем больше причин считать его стойким. Однако стойкость шифра необязательно значит, что он является безопасным. Это означает лишь, что метод его взлома еще не найден любителями или не опубликован профессионалами. Как пример можно привести шифры, где кроме ключа шифрования имеется еще главный ключ, который называют ключом от черного входа. Такие шифры могут быть стойкими, но они не безопасны, так как обладатель главного ключа может читать любые шифровки. Следовательно, процесс криптоанализа может быть очень длительным по причине того, что криптоаналитику мало помогает успешное раскрытие других систем шифрования и ему неизвестна другая мера криптографической стойкости шифра, кроме продолжительности его сопротивления к взлому. Даже если взломщик не может прочесть сообщение, все равно нужно быть осторожным. В этом случае он может получить много информации, зная отправителя, получателя, время и длину сообщения.

Характеристики сообщений

До этого места, говоря об информации, мы ограничивались в ее определении призывами к здравому смыслу. Теперь же попробуем описать ее строже, так как использование слова информация приводит порой к недоразумениям и многозначности. Письмо, телеграмма, выступление по радио несут информацию и являются сообщениями. Однако надлежит отличать сообщения от извещений. Понять разницу между ними позволит следующий анекдот. Однажды Пьер попросил свою невесту Мари, чтобы она бросила вечером из окна монету, когда родители уйдут в кино и можно будет провести время наедине. Родители ушли, и Мари бросила монету. Через полчаса ожидания она, выглянув на улицу, увидела Пьера, обшаривающего тротуар. Таков сюжет, а теперь перейдем к размышлениям. Зачем Пьер занимался поиском? Скупость отвергнем сразу же - монета не купюра, да и драгоценное время уходит. Скорее всего, что бросок монеты Мари приняла за извещение: наступил момент времени, когда ушли родители. А Пьер, искушенный в информатике любовных посланий, отнесся к этому событию как к сообщению: если брошена монета, то родители ушли, а если обручальное кольцо, то ему предлагают утешиться аперитивом в ближайшем бистро. Извещения несут в себе информацию лишь о времени наступления известного заранее события. Ими являются сигнал точного времени, свисток футбольного судьи, выстрел стартового пистолета. А вот сообщения существуют вне времени, например, картина Рубенса, текст инъективы Цицерона против Саллюстия, опера Чайковского "Пиковая дама", лозунг Ленина "Вся власть Советам" или зажженная надпись STOP на переходе.
     Сообщения, как бы сложны они не были, можно представить себе в виде последовательности знаков. Эти знаки берутся из заранее фиксированного набора, например, русского алфавита или палитры цветов (красный, желтый, зеленый). Разные знаки могут встречаются в сообщениях с разной частотой. Поэтому количество информации, передаваемой разными знаками может быть разным. В том смысле, который предложил Шеннон, количество информации определяется средним числом возможных вопросов с ответами ДА и НЕТ для того, чтобы угадать следующий символ сообщения. Если буквы в тексте следуют независимо друг от друга, то среднее количество информации в сообщении приходящееся на один знак, равно:

H= См. PiLd(Pi)
где Pi - частота появления символа i, a Ld- двоичный логарифм. Отметим три особенности такого определения информации.

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

2. В нем предполагается независимость вероятности появления знаков от их предыстории.

3. Заранее известна знаковая система, в которой передается сообщение, то есть язык, способ кодирования.

В каких единицах выражается значение количества информации по Шеннону? Точнее всего ответ на этот вопрос дает теорема кодирования, утверждающая, что любое сообщение можно закодировать символами 0 и 1 так, что полученная длина сообщения будет сколь угодно близка сверху к Н. Эта теорема позволяет назвать и единицу информации - бит.
     Каждый, кто использовал, работая на персональном компьютере, архиваторы, знает, как лихо они ужимают текстовые файлы, ничего при этом не теряя. Их работа лучшим образом демонстрирует теорему кодирования в действии. Так как для русского текста, переданного лишь прописными буквами, Н=4.43, то это означает, что в принципе в русском алфавите можно было бы обойтись лишь 22 буквами или на 45% сократить длину файлов в формате ASCII. Таким образом, сообщения языка занимают места больше, чем это необходимо. Это явление называют избыточностью языка. Благодаря ему искажения отдельных символов сообщения зачастую не разрушают содержания, что случилось бы при отсутствии избыточности. Заметьте, у компьютера наиболее часто встречаемые символы ETOANIRSHDLU (даны в порядке убывания частот в английском языке) вынесены в центр клавиатуры, чтобы при наборе текстов движение пальцев было бы минимальным. Это расположение клавиш было предложено изобретателем линотипа Оттомаром Мергенталером, который использовал избыточность языка для облегчения работы.
     Утверждение, что вероятность появления символа в связном тексте не зависит от его предыстории, неверно и статистически, и лингвистически. Уже давно литераторы заметили, что обычно за согласной буквой следует гласная, а за гласной согласная. Поэтому в конце XIX века петербургский математик Марков предложил текст рассматривать как цепочку символов, где вероятность появления буквы зависит от предыдущей и только от нее. Таким образом, он стал рассматривать не вероятности Pj появления в сообщении знака i, а вероятности Pij появления знака j при условии, что перед ним стоит знак i. Теория марковских цепей оказалась чрезвычайно продуктивной для криптографии, и к отдельным ее применениям мы будем возвращаться позже. Пока же достаточно отметить, что первое свое опробование она имела при анализе текстов "Евгения Онегина" самим Андреем Андреевичем Марковым. Объем информации в одном символе марковской цепи определяется следующей формулой:
     H= См. Pi(См. Pij*Ld(Pij))

В этом случае нет противоречия с требованием независимости знаков, так как знаком здесь считается не отдельный символ, а биграмма. В приложении приведена таблица вероятности встречи биграмм в русском техническом тексте по программированию. Вероятности их представлены десятью классами от 0 до 9 в порядке возрастания и образуют по средним значениям геометрическую прогрессию. Справа в этой таблице даны вероятности встречи отдельных символов. Так, из нее следует, что биграмма АЙ встречается довольно часто (класс 7), а биграмма ЙА почти совсем не попадается (класс 0). Среднее количество информации, приходящееся на один символ, определяемое по этой таблице равно 3.5 бит, что эквивалентно примерно II буквам в русском алфавите или возможности сжатия текстов примерно на 57% при их оптимальном кодировании.

Описанное свойство зависимости буквы в тексте от предыдущей называется марковостью первого порядка, а независимость букв друг от друга марковостью нулевого порядка. Естественно, что можно рассматривать также и марковости высших порядков, например второго, когда буква зависит от двух предыдущих. Для того, чтобы оценить порядок марковости в связном тексте, проведем случайное моделирование, используя сначала вероятности отдельных букв, потом биграмм, триграмм и так далее. Примеры марковского синтеза текстов разных порядков марковости от 0 до 4 приведены в следующей таблице:
     0     ПАВЛНТ И ОАБУТ ЕИИЕТК ЖМЕ КСВИДАИВ
     1     МОЙ ОГЛЬ ТАМАНУ ЧТЕТОГАНЕ СТА СЛИНА
     2     КРУЖБЫ И ОТЧАЕТОНЕИСТАК ПЕХ ЭТОГО 3
     3     В ДЕПАРЫ ЧТО НАСТЯМИ РАСПРОИСХОДИН
     4     ПОНЯЛ О ГЛУБОКОЙ СИСТЕМ И ДЕЛЕ ВОДЫ

Из нее видно, что увеличение порядка марковости повышает схожесть отрывка случайного текста с естественным. Повышение порядка марковости позволяет доуточнить объем информации в сообщениях, но это очень скользкая тема есть масса разных точек зрения на нее. Действительно, вводя понятие шенноновской информации, мы похоронили понятие смысла, который связывает символы в слога, слога в слова, слова в предложения, а предложения в сообщение. Практически нет разницы, как сказать ребенку: "Нужно есть кашу!" или "Надо есть кашу!", а вот шенноновский подход эти сообщения считает различными. Поэтому оценка объема информации, содержащейся в сообщении и полученной по приведенным формулам, явно завышена. А ведь в жизни нередко бывает, что за целый день так и не узнаешь ничего нового!
     Теперь рассмотрим одно приложение знаний свойств естественного текста сообщения для нужд криптографии. Требуется по отрезку текста решить, что он из себя представляет, осмысленное сообщение или последовательность случайных символов. Ряд шифров приходится на ЭВМ вскрывать перебором ключей, а вручную просмотреть свыше тысячи фрагментов вдень просто не под силу, да и скорость мала. Поэтому нужно эту задачу реализовать на ЭВМ. Пусть предстоит перебрать примерно миллиард ключей на машине со скоростью тысяча ключей в секунду, на что уйдет около 10 дней. В этом случае мы рискуем впасть в две крайности. Если будем чрезмерно осторожны в оценках, то часть несмысловых текстов будет воспринята как сообщения и передана человеку. Эта ошибка обычно называется "ложная тревога" или ошибка первого рода. При количестве таких ошибок свыше 1000 в день человек устанет и может начать проверять тексты невнимательно. Значит, допускается не более одной ошибки такого рода на сто тысяч проверок. Далее, если подойти к проверке поверхностно, то можно пропустить смысловой текст и по окончании полного перебора его опять придется повторить. Чтобы не рисковать необходимостью повторения всей работы, ошибки второго рода или "пропуски сообщения" допустимы лишь одном случае из ста или тысячи.
     Самый простой критерий, который приходит в голову, связан с использованием алфавита сообщения. Если учитывать, что в нем могут встретиться лишь знаки препинания, цифры, заглавные и малые русские буквы, то в тексте сообщения встретится не больше половины набора кодовой таблицы ASCII. Следовательно, встретив в тексте недопустимый символ можно уверенно говорить о том, что он несмысловой - ошибки второго рода почти исключены при нормально работающем канале связи. Для того, чтобы снизить вероятность "ложных тревог" до принятой выше величины, требуется, чтобы текст состоял не менее чем из двадцати трех символов. Дело усложняется, если используемый код букв не избыточен, как представление в ASCII русского текста, а содержит ровно столько символов, сколько их в алфавите. Тогда приходится вести оценку по вероятностям встречи символов. Чтобы обеспечить принятые вероятности ошибок первого и второго рода при оценке максимального правдоподобия, необходимо анализировать уже около сотни символов, а анализ вероятностей биграмм лишь несколько снижает эту величину. Таким образом, короткие сообщения при большой длине ключа вообще невозможно расшифровать однозначно, так как появляющиеся случайные тексты могут совпадать с осмысленными фразами. Аналогичную задачу приходится решать и при контроле качества шифрования. В этом случае, правда, вероятность ложной тревоги можно повысить, приняв ее не свыше одной тысячной, при той же самой вероятности пропуска сообщения. А это позволит ограничиться для проверки лишь 20-30 символами.

Испытания шифров

Начинают взлом шифров обыкновенно со статистических испытаний текста шифровки, что дает общие данные об их стойкости на начальном этапе анализа. Так как цель криптографии состоит в том, чтобы преобразовать открытый текст в шифровку, смысл которой недоступен незаконному получателю информации, то можно в идеале представить шифровальную систему, как "черный ящик", вход и выход которого взаимонезависимы, так как для установления ключа, согласующего входной текст с шифром, потребуется перебор всех допустимых вариантов. Если пространство поиска ключа очень велико и невозможно с помощью имеющихся вычислительных средств проверить каждый ключ за ограниченное разумное время, то шифр является вычислительно безопасным. Надлежит сделать следующие важные замечания.
     1. Текст и шифр лишь кажутся независимыми, по-
     тому что имеются детерминированные алгорит-
     мы, отображающие их друг в друге - шифрова-
     ния и расшифрования. Однако, предположив
     независимость текста и его шифровки, пытаются
     ее опровергнуть, беря пары выборок {текст,
     шифр} и вычисляя их статистику. Так можно
     заменить криптографическую стойкость шифра
     на статистическую безопасность и считать, что
     шифр статистически безопасен, если пары вы-
     борок {текст, шифр} статистически независимы.
     Одно из испытаний заключается в установлении
     статистической связи изменения шифровки при
     изменении символов и бит в исходном тексте
     или ключе. Это испытание дает меру "эффекта
     размножения" ошибок в шифре, который счита-
     ется хорошим лишь в том случае, если малей- шие изменения исходного текста или ключа вле-
     кут большие изменения шифровки. Смысл такого
     рода тестов состоит в том, что безопасная система
     обязательно безопасна и статистически.

     2. Статистические испытания являются единствен-
     ной стратегией испытаний больших криптогра-
     фических систем с секретным ключом, постро-
     енных в виде чередующихся слоев блоков заме-
     ны и перестановок, как блоки вносящие нели-
     нейность в системах Lucifer и DES. Это объяс-
     няется трудностью составления уравнений, свя-
     зывающих вход и выход системы, которые мож-
     но было бы решать другими методами. В крип-
     тографических системах, не имеющих таких бло-
     ков, например, в системах RSA и ЭльГамаля,
     уравнения, связывающие вход и выход, являют-
     ся частью самой криптографической системы,
     поэтому легче сосредоточить внимание на ана-
     лизе этих уравнений.

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

Важное значение для статистических испытаний имеет случайность текста шифровки конечной длины. Практическую меру случайности такой последовательности ввели Лемпел и Зив, авторы общеупотребимого алгоритма сжатия данных, применяемого во всех архиваторах IBM PC. Она указывает, на сколько можно сжать последовательность при использовании алгоритма Лемпела-Зива. Практически, если текст шифровки сжимается одним из архиваторов больше, чем на 10%, то шифровальная система очевидно не состоятельна. Если сжатие шифра оказалось меньше этой величины, то... все может быть. Отметим, что алгоритмам архивирования удается сжимать даже случайные последовательности символов, хотя сжатие в этом случае не превышает единиц процентов. Столь пространное описание статистического подхода к криптоанализу дано потому, что в этой главе ему будет уделено мало внимания, а вскрытие шифров будет показано лишь с точки зрения аналитического подхода. Итак, рассмотрим наиболее употребительные виды атак на некоторые известные уже шифры.

Вскрытие шифров перестановки

Сначала возьмем тот пример шифровки двойной перестановки, что изложен выше. Пусть имеется шифровка АЗЮЖЕ СШГГООИПЕР, которая так укладывается в таблицу 4 х 4:
  1 2 3 4
1 A З Ю Ж
2 E   С Ш
3 Г T О О
4 И П E P

Рассматривая маловероятные сочетания букв, легко найти истинную последовательность столбцов. Так, сочетание ГТ в 3 строке шифровки указывает на то, что после 1 столбца вряд ли следует 2 столбец. Рассчитаем статистически, какой столбец скорее всего следует за 1. Для этого воспользуемся таблицей логарифмов вероятностей биграмм русского текста, приведенной в приложении. Вероятность следования одного столбца за другим равна произведению вероятностей биграмм в строках этих столбцов. Поскольку в таблице даны логарифмы биграмм, то их достаточно суммировать, а потом выбрать сочетание столбцов с максимальной вероятностью. Для вероятностей следования за первым столбцом 2, 3 и 4 имеем выражения:
     р (1-2) =р(A3)   р(Е )   р(ГТ) р(ИП)=7+9+0+5=21
     р (1-3) =р(АЮ) р(ЕС) р(ГО) р(ИЕ)=6+8+8+8=30
     р (1-4 )=р(АЖ) р(ЕШ) р(ГО) р(ЯР)=7+5+8+7=27

В нашем случае наиболее вероятно, что после столбца 1 следует столбец 3. Для такой небольшой таблицы шифрования, которую имеем, можно перебрать все варианты перестановок - их всего лишь 24. В случае большого числа столбцов целесообразно оценить вероятности пар сочетаний разных столбцов и решить оптимизационную задачу, которая укажет перестановку столбцов, дающую фрагменты естественного текста с большей вероятностью. В нашем случае наилучший результат достигается при расстановке столбцов (2413), что примерно вдвое по вероятностной оценке достовернее ближайшей к ней по вероятности расстановки (4132). После того, как столбцы шифровки расставлены, не составит труда правильно расставить и ее строки по смыслу фрагментов текста:
  2 4 1 3
1 З Ж A Ю
2   Ш E С
3 T О Г О
4 П P И E

Текст в ней уже читается и, расставив строки в порядке (4123), получим расшифровку ПРИЕЗЖАЮ ШЕСТОГО.

Теперь обратимся к приведенному выше примеру шифра решетки:
3 Т П  
О Ж Ш Р
Е И Г А
Е С Ю О

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

Предположение 1. Предположим, что наиболее частая биграмма в русском языке СТ входит в одно из слов текста. Так как Т расположена в решетке выше С, это значит, что между ними произошел поворот решетки таким образом:
  **** *Т**
  **** ****
  **** ****
  *С** ****
     
  0' 90'

С учетом того, что эти буквы принадлежат различным прорезям решетки, получаем такой вид разгаданных частей таблиц:
  **?? *Т** **П* ??** **??
  **?? О*** ***Р ??** **??
  Е*** **?? ??** ***А ***
  *С** **?? ??** **Ю* * **
           
  0' 90' 180' 270'  

Проверим правильность этого предположения чтением, заменяя еще не ясные буквы точками: ..ЕСТО..ПР....АЮ. Это очень похоже на фрагменты текста. Пометив в решетке клетку буквы С цифрой 1, обозначим с учетом поворота клетку буквы Т цифрой 2.

Предположение 2. При составлении решеток прорези обычно размещают так, чтобы их было по одной в каждой колонке и каждом столбце, что гарантирует хаотичное и равномерное заполнение квадрата буквами. В этом случае имеется всего два варианта: 1234 и 123'4', изображенных на следующем макете решетки:
  * * 3' 4
  * * 3 4'
  2 * * *
  * 1 * *

Второй вариант 123'4' не подходит, так как не покрывает весь квадрат при поворотах, и остается 1234, что дает ШЕСТОГОПРИЕЗЖАЮ. Сообщение уже ясно, хотя расшифровка начата с неправильного поворота решетки. С учетом этого замечания получим сообщение: ПРИЕЗЖАЮ ШЕСТОГО.
     Реальные шифры этого типа вскрываются еще проще. При поворотах происходят заметные смещения решетки по месту, которые весьма помогают при анализе выделить буквы, относящиеся к одному повороту. Выделив буквы, смещенные в одном направлении, получают прорезанные клетки трафарета. Если же текст сообщения имеет достаточно большую длину, то задача вскрытия шифра решетки резко упрощается из-за этой особенности. Использование ЭВМ для реконструкции решетки по вероятностям чередования букв в тексте позволяет полностью автоматизировать этот увлекательный процесс логического анализа. Однако наилучшая атака на этот шифр получается, если отгадывать вероятное слово текста, как ПРИБУДУ, ПРИЕДУ, ПРИБЫВАЮ, ПРИЛЕТАЮ, ПРИЛЕЧУ и тому подобное, так как обычно лексика сообщения примерно известна.

Вскрытие шифра простой замены

Разберем пример В. Никонова, опубликованный в журнале 9 "Наука и жизнь" за 1981 год, заменив использованные автором графические символы шифровки на привычные русские буквы. Итак, на доске объявлений некого учреждения, название которого популярный журнал не сообщил, появилась следующая надпись:
     ТБПО ЩИЧЧЖ ЛНИЬЕЭФЭЕЭВЬ ЭКМНИО ИЩЩСКИЬОЭ
     СФБИТЬЛИЬШ ТБПОЧЩЬП ЛНОЭЧЖ Ь ЧЛЭПЛКПЕПООЭ
     ЛЭНЛКИВИЫП ФЭБСТПООЖП ЬН ЩИЧЧЖ ЧЧСУЖ

Несомненно, что это шифр. Каков же его тип? Это не может быть шифр перестановки, так как в шифровке четко проглядываются слова с регулярными окончаниями чж, иыи, оэ. Частоты встречи различных знаков шифровки явно неодинаковы. Знаки ч, и, э встречаются раз по десять, тогда как У, Ю и М лишь по одному разу, что не бывает в многоалфавитных шифрах, имеющих близкие вероятности знаков.
     Естественно предположить, что применен шифр простой замены. Читатели помнят, как герой рассказа Эдгара По "Золотой жук" Легран, анализируя записку о кладе, оставленном пиратами, обнаружил, что в ней наиболее часто, 7 раз, встречалось сочетание трех символов. Для английского языка это мог быть лишь определенный артикль THE (Хемингуэй иногда не реже, чем THE, использовал союз AND, что отвечало литературной задаче описать монотонность будней). У Лермонтова же наиболее часто используемое слово очень коротко - Я.
     С чего следует начать расшифровывание? Несомненно, с установления отправителя и получателя сообщения. Вспомним рассуждения Холмса из "Пляшущих человечков", который сразу же отождествил смешную надпись с шифровкой. Что в этой надписи могло напугать героиню, угроза? Представим, что она прочла текст: "Готовься к смерти". Не правда ли, такое неприятное сообщение слишком абстрактно, чтобы заставить ужаснуться спокойного волевого человека: кто должен готовиться и к чьей смерти? Поэтому решил Холмс, героиню напугало собственное имя и начал расшифровку отождествлением слова "Илей" с первыми четырьмя человечками. Зачастую, кроме имени получателя сообщения содержат еще и имя отправителя, как это принято в телеграммах: "Приезжаю шестого. Мама." У нашей шифровки была приписка: "Граждане, ознакомившиеся, запомнившие и исполнившие, принимаются ежедневно и без ограничений. Местком." Из нее ясен отправитель - местком. Поэтому шифрованный текст может не содержать его названия. Получатель все же должен быть доуточнен, как обращение: "всем садоводам..." или "члены кружка...". Однако это - слишком легкий путь. и предположим, что не удалось конкретизировать получателя, чтобы, используя его имя, вскрыть шифр.

Предположение 1. Внимательно просматривая шифровку, можно обнаружить интересное удвоение знака Ч в конце последнего слова и начале последнего: щиччх ЧЧСУХ. Кажется, что этот знак весьма похож на употребление буквы С в русском тексте, как МАССА ССЫЛОК или ЛАССО ССУЧИЛ. Например, для буквы В не удается подобрать хороший пример, чтобы она удваивалась в конце слов, а для буквы Н - в начале. Отметим, что удвоение С в конце характерно для заимствованных существительных, где перед ним стоит чаще всего буква А. Значит, буква шифровки Ч соответствует в тексте С, а И соответствует русской букве А.

Предположение 2. Другое удвоение, знака о, встречается только в конце слов и типично для русской буквы Н. Поэтому сочетания знаков на концах слов шифровки ОЭ и ооэ, скорее всего отвечают русским окончаниям в сообщении НО и ННО. Если это так, то последнее слово шифровки ЧЧСУЖ, начинающееся с СС и состоящее из пяти букв может быть лишь одним из двух слов - ССУДЕ или ССУДЫ, что легко проверить по словарю. Другие варианты прочтения ССУДА, ССОРА и тому подобные отпадают, так как буквы А иО уже разгаданы.

Предположение 3. Знак шифровки ж, стоящий в конце слова ЧЧСУЖ встречается довольно редко, если учесть, что слово щиччж повторяется, а одинаковое окончание последнего и предпоследнего слов представляет собой обычное согласование слов в предложении. Это означает, что знаку ж скорее отвечает буква Ы, чем более часто встречаемая в русских текстах Е, а последнее слово - ССУДЫ. Окончание сообщения ?АССЫ ССУДЫ теперь нетрудно отгадать как КАССЫ ССУДЫ, что весьма близко к осмысленному тексту. Из отгадан- ных букв пятое слово шифровки складывается как АККУ?А?НО, что несомненно означает АККУРАТНО, а седьмое слово ??НОСЫ из контекста можно понять как ВЗНОСЫ. Итак, отгадывание идет вроде бы успешно, что подтверждается частичной расшифровкой:
     ???Н КАССЫ ВЗА??0?0?0?? 0??ЗАН АККУРАТ-
     НО У??А??ВАТ? ???НСК?? ВЗНОСЫ ?
     СВО?ВР???ННО ВОЗВРА?АТ? ?0?У??ННЫ? ?3
     КАССЫ ССУДЫ

Теперь дальнейшая расшифровка не представляет особого труда и выполняется быстро, угадыванием отдельных слов и подстановкой выясненных букв в шифровку. В итоге получаем сообщение:
     ЧЛЕН КАССЫ ВЗАИМОПОМОЩИ ОБЯЗАН
     АККУРАТНО УПЛАЧИВАТЬ ЧЛЕНСКИЕ
     ВЗНОСЫ И СВОЕВРЕМЕННО ВОЗВРАЩАТЬ
     ПОЛУЧЕННЫЕ ИЗ КАССЫ ССУДЫ

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

Лучше всего на него ответить словами Архимеда из послания к Эратосфену: "Хотя это всем вышеприведенным рассуждением и не доказано, но все же производит впечатление, что окончательный вывод верен".
     По ряду свидетельств, опытные криптоаналитики читают такие шифровки "с листа", потратив на это минуту-другую, что свидетельствует о профессиональном видении структуры текста в кажущейся мешанине букв. В этом они сильно превосходят ЭВМ, которая удовлетворительно читает шифр простой замены лишь при достаточно большой длине сообщения больше сотни символов. Однако и здесь ЭВМ может серьезно помочь в раскалывании шифра, например, разделив буквы на гласные и согласные. Так как гласные и согласные имеют тенденцию чередоваться, то можно по матрице чередований символов разделить их на эти классы (для этого на ЭВМ криптоаналитики традиционно используют так называемое сингулярное разложение матрицы переходных вероятностей.) . Кроме того, можно программно оценить вероятности принадлежности символов шифра разным буквам выписать их столбцами по убыванию вероятности, что даст другую технику вскрытия этого шифра. Применение распознавания, основанного на оценке лишь вероятностей отдельных символов в тексте и биграмм, за 10 этапов обучения дало по приведенной шифровке следующий текст:
     ЧРЕН КАССЫ ВЗАИМОПОМОБИ ОДЯЭАН АККУЛАТНО
     УПРАЧИВАТЬ ЧРЕНСКИЕ ВЫНОСЫ И СВОЕВЛЕМЕННО
     ВОЗВЛАБАТЬ ПОРУЧЕННЫЕ ИЗ КАССЫ ССУШ

Получился довольно хорошо читаемый текст, хотя и за время, превысившее ручную расшифровку (эксперимент производился в 1991 году на машине IBM PC XT 6 MHz - как это было давно!)

После корректировки написания по словарю русского языка в Word 6.0 он приобрел такой вид:
     ЧЛЕН КАССЫ ВЗАИМОПОМОЩИ ОБЯЗАН АККУРАТНО
     УПРОЧИВАТЬ ЧЛЕНСКИЕ ВЫНОСЫ И СВОЕВРЕМЕННО
     ВОЗВРАЩАТЬ ПОРУЧЕННЫЕ ИЗ КАССЫ ССУДЫ

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

Взлом многоалфавитных шифров

Шифр Гронсфельда вскрывается довольно легко, если учесть следующее обстоятельство: так как цифр всего 10, то имеется лишь 10 вариантов прочтения каждой буквы. Выпишем их столбцами так, что одной строке соответствуют буквы одного значения ключа. Номер варианта будет определяться цифрой ключа от 0 до 9. При этом получим таблицу, правильно выбрав по одной букве из каждой колонки которой можно получить исходный текст:
Ключ ???????????????????
вариант 0 ФПЖИСЬИОССАХИЛФИУСС
вариант 1 УОЕЗРЫЗНРР ФЗКУЗТРР
вариант 2 ТНДЖПЪЖМППЯУЖЙТЖСПП
вариант 3 СМГЕОЩЕЛООЮТЕИСЕРОО
вариант 4 РЛВДНШДКННЭСДЗРДПНН
вариант 5 ПКБГМЧГЙММЬРГЖПГОММ
вариант 6 ОЙАВЛЦВИЛЛЫПВЕОВНЛЛ
вариант 7 НИ БКХБЗККЪОБДНБМКК
вариант 8 МЗЯАЙФАЖЙЙЩНАГМАЛЙЙ
вариант 9 ЛЖЮ ИУ ЕИИШМ ВЛ КИИ
сообщение ???????????????????

Предположение 1. Если прочесть исходный текст напрямую не удалось, то попробуем немного порассуждать. Самый частый символ текста - пробел, а разбиение фразы на слова порой может оказать большую помощь в расшифровке, как это уже было в случае вскрытия шифра решетки. Так как длина шифровки равна 19 символам, то она состоит из двух или трех слов, разделенных пробелами. Хорошее положение для пробела дает лишь вариант 1, а другие варианты, 7 и 9 или их сочетания маловероятны. Поэтому будем считать, что текст шифровки разбивается на два слова: ФПХИСЫЮСС ХИЛФИУСС. Из этого следует, что в 11 позиции текста стоит пробел и в той же позиции ключа находится цифра 1.

Предположение 2. У выделенных слов шифровки одинаковое окончание ее, и, весьма вероятно, что период ключа делит 9 - длину второго слова вместе с пробелом. Будем считать, что в этом случае одинаковые окончания слов (Одинаковые окончания часто появляются из-за согласования слов в предложениях на русском языке. Это хорошо видно в поговорках: одИН в поле не воИН, наняЛСЯ - продаЛСЯ.) текста попали на одинаковые участки ключа и дали одинаковые символы шифровки. На первый взгляд может показаться, что это слишком маловероятно, чтобы встречаться в практике. Однако таких находок, помогающих расшифровке, всегда бывает предостаточно в сообщениях большой длины и, порой, приходится жалеть скорее об их обилии, чем отсутствии. Если нет никаких идей о длине ключа, не беда - ее можно подобрать вслепую. Итак, есть два выбора для периода ключа: 3 и 9. Попробуем период длины 3:
ключ ?1??1??1??1??1??1??
вариант 0 Ф ЖИ ЬИ СС ХИ ФИ СС
вариант 1 УОЕЗРЫЗНРР ФЗКУЗТРР
вариант 2 Т ДЖ ЪЖ ПП УЖ ТЖ ПП
вариант 3 С ГЕ ЩЕ ОО ТЕ СЕ ОО
вариант 4 Р БД ШД НН СД РД НН
вариант 5 П БГ ЧГ ММ РГ ПГ ММ
вариант 6 О АВ ЦБ ЛЛ ПВ ОВ ЛЛ
вариант 7 Н Б ХБ КК ОБ НБ КК
вариант 8 М ЯА ФА ЙЙ НА МА ЙЙ
вариант 9 Л Ю У ИИ МЛ ИИ
сообщение ?о??р??н?? ??к??т??

Таблица существенно поредела, но остается все-таки сложной для непосредственного прочтения (Криптоаналитики вряд ли сочтут прямое чтение ее сложным, так как достаточно перебрать лишь 100 вариантов для двух оставшихся цифр ключа вручную за несколько минут.). Поэтому попробуем подобрать символ ключа, стоящий в первой позиции, перебрав 10 вариантов. Так как ключ длиной 3 циклически повторяется, то этот же символ стоит в 4, 7, 10, 13, 16 и 19 позициях ключа. Вероятность варианта для первой цифры ключа равна произведению вероятностей биграмм, состоящих из символа по этому варианту расшифровки и следующего за ним, уже известного символа. Если Li - буква текста, стоящая на месте i, то вероятность одного из 10 вариантов:
     р (L1L2) p(L4L5) р(L7L8) p(L10L11) p(L13L14) p(L16L17)

Для вычисления вероятности биграмм воспользуемся таблицей из приложения. Поскольку в ней даны логарифмы вероятностей биграмм, то их достаточно суммировать. В результате для вариантов от 0 до 3 имеем такие численные значения вероятностей:
     р(0)=р(ФО)р(ИР)р(ИН)р(С )р(ИК)р(ИТ)=43
     р(1)=р(УО)р(ЗР)р(ЗН)р(Р )р(ЗК)р(ЗТ)=23
     р(2)=р(ТО)р(ЖР)р(ЖН)р(П )р(ЖК)р(ЖТ)=27
     р(3)=р(СО)р(ЕР)р(ЕН)р(О )р(ЕК)р(ЕТ)=50

В результате для первой цифры ключа получается наиболее вероятным 3 вариант расшифровки. Это дает следующую таблицу:
ключ 31?31?31?31?31?31?3
вариант 0     Ж Ь С Х Ф С
вариант 1 ОЕ РЫ HP Ф КУ ТР
вариант 2     Д Ъ П У Т П
вариант 3 С ГЕ ЩЕ ОО ТЕ С ОО
вариант 4     в т н с р н
вариант 5     Б Ч М Р П М
вариант 6     А Ц Л П О Л
вариант 7      Х К О Н К
вариант 8     Я Ф Й Н М Й
вариант 9     Ю У И М Л И
сообщение СО?ЕР?ЕН?0 ?ЕК?РТ?0

Теперь сообщение читается совсем просто. Достаточно выбрать одну из 10 строк с вариантом для 3 цифры ключа. В результате получим ключ и текст сообщения:
сообщение: СОВЕРШЕННО СЕКРЕТНО
ключ:      3143143143143143143

В принципе есть возможность чтения шифра Гронсфельда напрямую, анализом таблицы возможных замен, даже если ключ длинный. При достаточно большой длине текста в таблице будут несложно прочитываемые участки. Использование ЭВМ для подключения к криптографической атаке на этот шифр априорных знаний о чередовании русских букв в тексте обычно позволяет без труда читать подобные шифровки.
     При многоалфавитной замене с длинным ключом использованный для взлома шифра Гронсфельда прием уже не подходит. Однако известно, что шифры русских революционеров цифирная палата легко читала. Как же это удавалось сделать - черная магия? Все гораздо проще. Приведем короткий пример: перехвачена шифровка, вероятным автором которой является Троцкий. Известно также, что аналогичные шифровки делались методом сложной замены и в качестве ключа использовались тексты революционных песен, а иногда стихотворения Пушкина, Лермонтова и Некрасова. Так как отправитель Троцкий, то естественно предположить, что сообщение оканчивается подписью ТРОЦКИЙ с предыдущим пробелом. Подставив ее в шифровку вместо ключа, получим кусок настоящего ключа.
Шифровка ДДЯ Л ЫСЫ ШНМРКЮЮЩДБЬИЬМЫМТАНЭХЦК
Сообщение ????????????????????????? ТРОЦКИЙ
Ключ ?????????????????????????НАС ЗЛОБ

Не напоминает ли фрагмент НАС ЗЛОБ какойто известный текст? Не правда ли, очень похоже на слова, переведенной Кржижановским песни польского восстания 1863 года, называемой "Варшавянкой"? Теперь, подставив разгаданный ключ в виде текста песни: ВИХРИ ВРАЖДЕБНЫЕ ВЕЮТ НАД НАМИ ТЕМНЫЕ СИЛЫ НАС ЗЛОБ, можно вскpыть само сообщение:
     ОБЫВАТЕЛИ СПАЛИ НЕ ЗНАЯ ЧТО МЕНЯЕТСЯ
         ВЛАСТЬ ТРОЦКИЙ

Такая расшифровка вряд ли заняла бы вместе с составлением сопроводительной записки более часа времени. Ну, а предположим, что отправитель неизвестен? И это не беда, хотя потребует больше времени. Несложно перебрать несколько возможных имен, а в случае неудачи придется подставлять в разные места часто употребляемые слова текста и ключа - ТОВАРИЩ, ВЛАСТЬ, ВОССТАНИЕ. Отгадав одно из двух - текст или ключ, сразу получим второе.
     Вот как немцы описали вскрытие ручных шифров советской группы шпионов "Красная Капелла", полностью уничтожить которую Мюллер, Канарис и Шелленберг не смогли, несмотря на многие аресты ее участников с начала и до конца войны: "Тем временем математический отдел разведки и служба расшифровки Главного командования вермахта лихорадочно работала над найденным в особняке наполовину обуглившимся обрывком зашифрованного текста радиопередачи. Они пришли к выводу, что ключ к шифру находится в тексте какой-то французской книги (Язык сообщения и тип шифра стали известны после того, как арестованная бельгийская консьержка на допросах сообщила о пристрастии агентов "Красной Капеллы" к чтению французских романов, часть названий которых она вспомнила.). Из крошечного обрывка сожженного листка бумаги специалисты после кропотливых исследований сумели реконструировать слово ПРОКТОР. Теперь, следовало выяснить, в каких книгах встречается это ключевое слово. Через три месяца мы разыскали эту книгу. Тогда специалисты отдела расшифровки Главного командования вермахта принялись за работу, чтобы раскусить шифр. Они смогли расшифровать обнаруженные в Брюсселе и перехваченные заново радиопередачи."
     Еще один короткий пример вскрытия многоалфавитного шифра замены приведем из-за его занимательной истории. Писатель Эдгар По считал себя непревзойденным криптоаналитиком. Ему принадлежит дерзкое высказывание: "...можно смело утверждать, что человеческий гений не в силах составить шифр, раскрыть который оказалось бы не под силу человеческому гению". Поэтому в 1839 году он бросил вызов читателям Журнала "Alexander's Weekly Messenger", утверждая, что расколет любой их шифр замены. Некто Калп в 1840 году прислал ему такой текст шифровки:
     GE JEASGDXV, ZIJ GL MW, LAAM, XZY. . .

Эдгар По, предполагавший, что будет предложен шифр простой замены, счел пример Калпа "мешаниной случайных букв". Однако в 1975 году слушатели лекций по криптологии Винкель и Листер расшифровали его, предположив многоалфавитную замену вместо простой. Скорее всего они начали с первых двух слов, увидев в них искаженное имя получателя ALEXANDER как ALXANDER:
Шифpовка GE JEASGDXV
Сообщение MR ALXANDER
Ключ UN JTDSTATE

Полученная частная расшифровка была очень похожа на фразу UNITED STATES и, повторяя ее циклически, они вскрыли весь текст шифровки. Стало ясно, что даже если бы дилетант По и знал о многоалфавитных шифрах, то взламывание текста-шифровки Калпа представляло собой серьезную задачу: одна буква в шифровке была пропущена, а 15 искажены скорее всего по вине наборщика. Этот пример показывает, что ошибки в шифровании способны озадачить не только криптоаналитика, но и легального получателя сообщения, обладающего ключом. Ведь из-за пропущенной пятой буквы текста шифровки весь ее остаток был нечитаемым!

Вскрытие машинного шифра

Машинные шифры в принципе много сложнее ручных и их раскалывание скорее напоминает не подбор отмычки к сейфу, а высверливание его механизма. Тем не менее, если силу прикладывать неразумно, то вряд ли можно будет добиться успеха. Рассмотрим лишь простенький древний машинный шифр.
     Одна из первых систем шифрования опробовалась в начале XX века на телеграфе. Она основывалась на том, что каждый символ кодировался 5 импульсами тока, а это вполне соответствует пяти битам представления этого кода в ЭВМ. Смысл шифра состоял в перестановке этих импульсов или, соответственно, бит по сложному закону с большим периодом. В частности от двоичного счетчика с n разрядами поступало n сигналов на релейные схемы, меняющие местами 2 бита. Так как n было велико, то такие перестановки пар бит, называемые математиками транспозициями, могли в принципе дать любую перестановку бит внутри кода символа. Однако если все биты равны нулю или единице, то, как их не переставляй, их совокупность не изменится. Если не все биты равны между собой, то может произойти замена символа. Число вариантов замены зависит от числа нулевых бит в коде символа:
     число нулевых бит          0 1   2   3 4 5
     число единичных битp;  5 4   3   2 1 0
     число вариантов             1 5 10 10 5 1

Предположим, что буква А кодируется 00000, Б как 00001 и так далее до Я - 11111. В этом случае букве А при любых перестановках бит будет соответствовать только она сама. Букве Б могут соответствовать уже 5 вариантов: Б(00001), В(00010), Д(00100), И(01000), Р(10000). Поэтому, написав под каждой буквой шифровки все буквы сообщения, которые возможно ей соответствуют, получим таблицу, содержащую все варианты прочтения шифровки. Для того, чтобы облегчить чтение, варианты расшифровки каждой буквы в таблице расположены сверху вниз в порядке убывания их вероятности, что выполнено на ЭВМ с учетом априорной информации о чередовании букв в тексте на естественном языке. В верхней строке таблицы дан исходный текст сообщения, а во второй - шифровка, полученная случайной перестановкой бит у каждой буквы. Далее приведены альтернативные варианты прочтения букв. Причем, чем ниже приведен вариант, тем менее он правдоподобен, а варианты с вероятностью прочтения ниже 0.05 отброшены. Программа на ЭВМ попыталась найти и наиболее вероятное прочтение шифровки используя для этого данные о вероятностях биграмм текста на русском языке. Предложенный ей вариант прочтения букв выделен жирными символами:

ЖИЛИ БЫЛИ СТАРИК СО СТАРУХОЙ текст
МДЩВ БЮХД ЕСАВРЖ ЕЛ ЕКАДЦНЬТ шифр
СИНИ ВыхИ СТАВИЕ Сл СТАВОЛьг 1
Мров бчЛв мк брм мО мк блзОИ 2
...дальше нет вариантов...
СИНИ ВЫЛИ СТАВИЕ СО СТАВОЛОЙ прочтение

Несмотря на немного смешной вид полученного текста, он довольно-таки близок к оригиналу: отгадано 19 букв из 28! Некоторое улучшение отгадывания может быть достигнуто переходом к оценке вероятностей не по биграммам, а по триграммам - трехбуквенным сочетаниям и даже полному словарю слов. Применение в программе полного словаря дало вариант расшифровки: ЖИЛИ БЫЛИ СТАРИК СО СТАРУХОЙ. Однако вряд ли кто лучше человека сможет выбрать окончательный вариант прочтения. Из этого примера следует важный вывод, что избыточность языка позволяет читать сообщение даже при большой неоднозначности прочтения каждой отдельно взятой буквы. В приведенном примере на одну букву в среднем приходится 7 вариантов ее прочтения. Практически, если число вариантов прочтения каждой буквы не больше 7, то текст обычно прочесть удается.
     Попробуем теперь сделать выводы из рассмотренных примеров: что помогает и что мешает раскалыванию шифров. Помогает криптографической атаке на шифр в основном то обстоятельство, что буквы и слова в тексте взаимосвязаны. Так, например, было несложно отгадать слово АККУ?А?НО и даже по фрагменту НАС ЗЛОБ определить песню, откуда он взят. Такая внутренняя зависимость участков текста друг от друга - свойство естественного языка и от него никуда не денешься. Хотя были и есть языки с гораздо меньшей зависимостью, чем у русского языка, но не заставишь же их использовать для того, чтобы решить проблемы шифрования. Другой помощник криптоаналитика - малое число вариантов соответствия текста шифровке при незнании ключа. Так в шифре Гронсфельда букве шифровки могут соответствовать лишь 10 букв из текста, а в шифре перестановки бит и того меньше, в среднем 7. Способствует вскрытию шифра и малая длина ключа - вряд ли так легко мы разделались бы с шифром Гронсфельда, если длина ключа превышала длину сообщения. И, в конце концов, почему же так просто был вскрыт многоалфавитный шифр замены? Ведь у него и число вариантов для отгадывания было велико, и ключ длинный. Причина успеха его взлома заключается в сильной зависимости ключа, текста и шифровки меж собой. Шифровка известна всегда. Поэтому сначала, мы угадали кусок текста и сразу же за это в награду получили кусок ключа. По этому куску ключа удалось восстановить весь ключ целиком.

Итак, во-первых, если кусок-ключа можно было получить, отгадав лишь очень большую часть текста или перебрав множество вариантов, то этот номер не прошел бы. Во-вторых, это не дело, когда по малому участку ключа удается угадать весь ключ. Будь ключ представлен не осмысленным текстом, а случайным, то этого не удалось бы. Во всех современных системах шифрования открытый текст обязательно сжимается перед шифрованием. Сжимать шифрованный текст слишком поздно, так как шифровки почти несжимаемы. Кроме экономии места под хранение и времени передачи, сжатие еще и повышает стойкость шифра. Многие атаки на шифр осуществляются поиском фрагмента открытого текста в шифровке. Если отрытый текст перед шифрованием был сжат, то эти атаки затруднены и потери времени на сжатие окупаются.
     Теперь давайте пофантазируем, как составить нераскрываемый шифр. Если мы возьмем за основу многоалфавитный шифр замены, то это будет неплохой выбор, он многовариантен и к нему так просто не подступишься. Однако ключ для шифровки должен быть очень хорош: бесконечной длины и, конечно же, несмысловой. Можно схитрить и составить ключ из текста, беря из него лишь каждую третью букву, ведь по фрагменту ДНВТДМИН никогда не скажешь, что он взят из той же "Варшавянки". Еще лучше, если сообщение зашифровано дважды разными ключами и шифрами разных типов. Далее, скверно, когда символы всегда находятся в том же месте в шифровке, что и в сообщении - на подпись, заголовок или другой известный фрагмент текста может начаться атака. Поэтому вместе с заменой применим простой шифр двойной перестановки - пусть взломщики поищут, где теперь находится подпись. Таким способом, комбинируя шифр перестановки с многоалфавигным шифром замены при хорошем ключе, можно получить вполне приемлемый ручной шифр, вскрыть который будет очень непросто или вообще невозможно.

Но сменим галоп нашего рассуждения на шаг, чтобы предостеречь читателя от одной широко распространенной ошибки. Насколько осложнится вскрытие сообщения, если его зашифровать несколько раз одним ключом? Ответ естественный, хотя для многих и неожиданный, взломка сложнее вряд ли станет. Во времена Второй мировой войны английским криптографам не давал покоя простой, но заковыристый немецкий полицейский шифр. Из-за краткости сообщений его чтение удавалось далеко не всегда и, как правило, с большими трудностями. Немецкие криптографы об этом не знали, решив улучшить шифр, как бы удвоив примененный ключ. Так вот, после такого "усложнения" вскрытие шифровок стало легким и приятным. В известном автору аналогичном случае, имевшем место некогда в известной фирме, текст был зашифрован дважды. Шифровка криптоаналитиком была восстановлена из свободных кластеров на рабочей дискете, а в директории остались следы от двойного шифрования и длины двух файлов типа ВАК того же сообщения. Из этих следов и сопоставления длин шифровки с длинами файлов стало ясно, что текст зашифрован дважды. По заголовку файла была определена программа шифрования. Так как во второй раз был зашифрован и текст сообщения, и заголовок файла шифровки, содержание которого отчасти известно, то найти второй ключ удалось просто подбором, потому что он был всего из 5 букв по имени владельца. Первый ключ был угадан после этого сразу же, так как стало ясно пристрастие автора файла к собственному имени. Вследствие этого, примите за правило никогда не шифровать одно сообщение дважды одним и тем же ключом, чтобы не усложнять себе жизнь лишней работой. Применение нескольких разных ключей порой оправдано, если не из-за увеличения стойкости шифра, то хотя бы как свидетельство о согласии нескольких отправителей шифровки или одновременном присутствии нужных получателей сообщения.
     Лучшие известные криптографические системы, преимущественно принадлежащие правительствам, практически невозможно вскрыть. Однако все государства теми или иными путями пытаются сдержать и даже запретить свободное использование криптографии, как вызывающее головную боль у их секретных служб. В то время, как ЦРУ в США призывает фирмы шире использовать шифрование, то АНБ пытается ограничить длину ключа 40 битами. В последнем случае возможен даже прямой перебор ключей, если использовать достаточно мощную ЭВМ. По оценкам специалистов, раскалывание шифра алгоритма RC-4 с ключом из 40 бит, широко используемого в сети Internet, потребует около 100 MIPS (MIPS - million instructions per second - миллион операций в секунду.) лет. Раньше считалось, что меньше, чем за 6 месяцев работы суперкомпьютера, такой шифр вскрыт не будет. Эта оценка была проверена практически и оказалось, что 120 рабочих станций с двумя суперкомпьютерами параллельного действия взломали ключ за, 8 дней. Цена такого раскалывания достаточно высока и превышает $10000, что впрочем сильно зависит от эффективности алгоритма атаки. Поэтому проблемы криптоанализа еще долгое время будут весьма актуальны.

ОСНОВЫ КЛАССИЧЕСКОЙ КРИПТОГРАФИИ

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

Шифры замены

Теперь посмотрим, как обычно практически выполняется шифрование заменой с помощью ЭВМ. Самый простой и эффективный способ сделать текст нечитаемым - спрятать его, смешав с последовательностью случайных чисел, заданной ключом, с помощью операции XOR( Операция XOR выполняет следующие действия: (О XOR 0)-0, (О XOR 1)=1, (1 XOR 0)=1, (1 XOR 1)=0. ). При этом информация сообщения прячется в шуме - самом информативном, по определению Шеннона, сигнале. Все правильно, песчинку лучше прятать на пляже, рыбу в море, а информацию в шуме.

Есть и другие обоснования выбора случайных чисел для шифрования заменой. Можно исходить из того, что криптоаналитик попытается снизить неопределенность чтения шифровки, зная статистические свойства нашей последовательности. А как только человеку становится известным чье-то намерение, то его поведение соответственно меняется. Поэтому если криптоаналитик знает наше намерение использовать последовательность, где 1 встречается с вероятностью р, а 0 с вероятностью 1-р, то, зная теорию игр, он тоже с вероятностью р будет предполагать наличие 1. Вероятность его успехов будет равна:
     Р(Р)=Р-Р+(1-Р)-(1-Р)

Эта функция достигает минимума при р=0.5, что выпадает при случайном выборе из 0 и 1 с равновероятными исходами. Далее, если биты в случайной последовательности с одинаковой вероятностью принимают значения 0 и 1, то биты в шифровке будут обладать тем же свойством. Докажем это. Пусть вероятность нулевого бита в тексте равна р, а единичного соответственно 1-р. Нулевой бит в шифровке появляется, когда соответствующие биты последовательности и текста оба равны либо О, либо 1. Значит, вероятность появления нулевого бита в шифре равна:
     Р=0.5-р+0.5-(1-р)=0.5

Более того, если биты в используемой для шифрования случайной последовательности статистически независимы друг от друга, то и в шифровке они становятся такими же. Текст превращается во что угодно, то есть в шум. Из-за специфики операции XOR процедура шифрования совпадает с процедурой расшифрования. Например, обозначив через t вектор бит сообщения, у вектор случайной последовательности и s шифровки, получаем t=s XOR у и s=t XOR у. Приведем пример программной реализации этого шифра на языке QuickBasic, называемого далее просто шифром замены. Такие шифры образуют подмножество многоалфавитных шифров замены, которые мы рассматривали выше.

'пример шифрования заменой
     DECLARE SUB CodeAndPrint (Password!, Map%())
     DEFINT I-N: CLS
     DIM Map (40) : CONST Password = -231.157
     ' сообщение
     FOR i = 1 TO 40
     Map(i) = ASC ("A")
     NEXT
     FOR i = 1 TO 40
     PRINT CHR$ (Map (i) ) ;
     NEXT
     PRINT
     'шифровка
     CALL CodeAndPrint (Password, Map())
     ' расшифровка
     CALL CodeAndPrint ( Password, Map ( ) )
     END
     SUB CodeAndPrint (Password, Map())
     x = RND (Password)
     FOR i = 1 TO 40
     Map(i) = INT(32 * RND) XOR Map(i)
     NEXT
     FOR i = 1 TO 40
     PRINT CHR$ (Map (i) ) ;
     NEXT
     PRINT
     END SUB

В результате работы программы появляются три строки, представляющие собой: верхняя - исходный текст, средняя - шифрованный, а нижняя - расшифровку:
     АААААААААААААААААААААААААААААААААААААААА
     ЦСТЙЙШАШЬЦБНЫЩЛЮЫБЮЛРШБТОЙУФИИЪЪТЯЭЗЦЯЗС
     АААААААААААААААААААААААААААААААААААААААА

У машинного многоалфавитного шифра замены с помощью операции XOR есть ряд очень слабых мест, которые нужно знать и учитывать использовании этого шифра. Серьезную неприятность может доставить обратимость этого шифра, так как для расшифровки применяется то же самое преобразование, что и для зашифровки. В том случае, если одно и то же сообщение должно быть послано нескольким адресатам и шифруется одним и тем же шифром может произойти так, что длина сообщения изменится из-за сбоя или ошибки. В этом случае будет получено 2 сообщения разной длины. Так, если имеем две шифровки s' и s", которые отличаются тем, что исходный текст сообщения оказался сдвинутым на один символ:
     S'(i)=T(i)+Y(i);S"(i+1)=T(i+1)+Y(i)
     где t - текст, а у - ключ, то, находя их сумму, получим сумму текста со сдвигом:
     S(i)=S'(i)+S"(i+1)=T(i)+T(i+1).
     Исходный текст можно получить, подобрав S0, которое неизвестно, в выражении:
     T(n)=S0+S1+S2+...+Sn
     Следующий пример демонстрирует эту технику. Пусть по двум шифровкам, полученным из текста, сдвинутого на один символ, образована следующая их сумма:
     ЗВГЮШВЪСЮШТБПРЩВЦТЮТТБПРГВТЬ    S(i)
     Подбором S0 получаем текст исходного сообщения:

  ГЕИЕЭЯШИЕЭОПЮНЕЗЭОЛЭОПЮНРТЛХ S0=29
  ДЖИЖЮ ЩЙЖЮПРЯОХИЮПМЮПРЯОСУМЭ S0=30
  ЕЭКЭЯАЪКЗЯРС ПЗЙЯРНЯРС ПТФНИ S0=31
  ЖИЛИ БЫЛИ СТАРИК СО СТАРУХОЙ S0=32

Подобные коллизии нередко возникали лет тридцать назад, так как основным носителем информации была перфолента, а при ее заправке в считывающее устройство запросто можно было ошибиться при рассылке циркулярной телеграммы адресованной в несколько мест, но шифруемой одним ключом. Сейчас такие "подарки" для крип- тоаналитиков почти исключены, так как криптографы стали держаться правила ни при каком случае не использовать ключ дважды. При такой ошибке шифровальщика шифр замены на основе XOR легко вскрыть, даже не прибегая к отгадыванию и анализу. Число вариантов прочтения шифровки не превышает число символов в алфавите - это не подбор ключей.
     Другая неприятность с машинным многоалфавитным шифром замены может возникнуть, если в сообщении встречаются большие участки пробелов или нулевых символов. Допустим, например, что линия связи недозагружена, но в то время, когда нет сообщений, аппаратура шифрования не выключается. Поэтому когда сообщений нет и t=0, шифровка будет представлять собой "чистую" последовательность ключа. Если в это время с помощью специальной аппаратуры перехватить шифровку, представляющую собой ключ s=y, то можно наложить на нее текст своего сообщения s'=s+t=t+y и передать искаженную шифровку по каналу связи. Получатель, расшифровав ее:
         s'+y=s+t+y=t+y+y=t

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

Шифры перестановки

Из-за отмеченных особенностей шифр замены в чистом его виде никогда не применяется, а всегда употребляется вместе с перестановкой, например, бит внутри байта. Если после замены символы сообщения превращались во что угодно, но сохраняли в шифровке свое исходное местоположение, то после перестановки они там и расположены еще и где угодно, что надежно защищает шифровку от атак криптологов. Потому что перестановку можно рассматривать как умножение вектора сообщения на матрицу перестановки бит Р с элементами 0 и 1 и размером в длину сообщения в битах. Рассмотрим два случая.
     1. Перестановка может делаться до наложения на
     сообщение случайной последовательности, то
     есть s'=Pt+y. В случае, если текст в сообщении
     отсутствует t=0 и идут нули или пробелы, то
     s'=y, а в канал связи попадает чистый ключ.
     2. Перестановка может делаться и после наложе-
     ния на сообщение случайной последовательно-
     сти, то есть s"=P(t+y). В случае, если текст в со-
     общении отсутствует t=0 и идут нули или пробе-
     лы, как s"=Py, а в канал связи попадает ключ,
     шифрованный перестановкой.

Поэтому обычно предпочтение отдается второй схеме, когда в отсутствие текста шифровка представляет собой не чистый ключ, а осложненный перестановкой. Хотя и в том, и в другом случае наложение на шифровку своего текста для введения получателя в заблуждение ничего не дает. Однако перестановки необходимы и для того, чтобы атака на ключ стала неэффективной. Если передача идет побайтно, то достаточно лишь переставлять биты внутри байта, чтобы с вероятностью 0.97 исказить его и сделать перехват ключа описанным способом невозможным.
     Перестановка может выполняться отдельными битами или группами бит как байты, что программно куда удобнее, хотя и не перемешивает биты полностью. Перестановку можно было бы произвести и побитно, но это был бы очень дорогой процесс. Временная сложность перестановки связана с квадратом числа переставляемых элементов, поэтому перестановка бит была бы в 64 раза дороже перестановки байт. Вычислительных способов перестановок существует множество, на любой вкус. Например, в программах широко применяется перестановка по номерам N от 0 до L-1 на основе рекуррентного выражения:
         N(i+1)=(K-Ni+M) MOD L
при выполнении следующих 4 условий:

     1) К и М берутся из интервала [1, L-1],
     2) М взаимно просто с L,
     3) К-1 делится на любой простой делитель L,
     4) К-1 делится на 4, если L делится на 4.

Для хорошего запутывания в этом случае приходится делать перестановку несколько раз, меняя случайным образом К и М. Часть криптографов рекомендует для перестановки использовать такие же последовательности, как и у генераторов ключей, описанных ниже, хотя с этими генераторами существует проблема в том, что они переставляют 2**n-1 элементов, а на ЭВМ приходится иметь дело с группами длиной 2**n.

Интересна схема перестановки, напоминающая тасовку колоды карт. Так, если S=A+B+C представляет собой исходный блок текста, переставляемый побайтно, то результатом такой перестановки будет S'=C+B+A, где разбиение на фрагменты А, В и С делается случайным образом. После нескольких тасовок исходный текст оказывается основательно перепутанным. Эта тасовка в состоянии после многократного повторения осуществить любую перестановку. Однако число тасовок при этом должно быть очень велико, и для быстрого получения качественной перестановки лучше употреблять перестановку пар:

     FOR i = 0 ТО N
     SWAP arr(i), arr(N*RND)
     NEXT

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

     ' программа шифрования перестановкой
     DEFINT I-N: DEFSTR S
     RANDOMIZE 1379: CLS

'задание текста и перестановки
     s = "Вверху синева и внизу откос"
     l = LEN(s$): PRINT s
     s$ = ""
     FOR i=1 TO 2*l: s$=s$+CHR$(l*RND):NEXT

     ' шифровка
     FOR i = 2 TO LEN(s$) STEP 2
     n = ASC(MID$(s$, i-1, 1))
     m = ASC(MID$(s$, i, 1))
     IF n > m THEN SWAP n, m
     s=RIGHT$ (s,l-m)+MID$ (s,n+1,m-n)+LEFT$ (s,n)
     NEXT
     PRINT s

     ' расшифровка
     FOR i = LEN(s$) TO 1 STEP -2
     n = ASC(MID$(s$, 1-1, 1))
     m = ASC(MID$(s$, i, 1))
     IF n > m THEN SWAP n, m
     s=RIGHT$ (s,n) +MID$ (s, l-m+1,m-n) +LEFT$ (s, l- m)
     NEXT
     PRINT s
     END

После ее выполнения на экране дисплея появляются три строки: верхняя с исходным текстом, средняя - шифрованная перестановкой, а нижняя - результат расшифровки. Например:

     Вверху синева и внизу откос
     рву еиаонуа етв с иинВковсх
     Вверху синева и внизу откос

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

Шифры взбивания и стандарт DES

Казалось бы, что предел возможностей сокрытия сообщения уже достигнут, ан нет. Результат можно ощутимо улучшить, если вместо перестановки использовать линейное преобразование:
         s=L*t
где L - невырожденная матрица случайного линейного преобразования бит, или, что то же самое, детерминант L не равен нулю. И хотя расшифровывание в этом случае придется осуществлять решением систем линейных уравнений, но каждый бит шифровки начинает уже зависеть от каждого бита текста. Шифры на основе этого преобразования называют скрамблерами или взбивалками за то, что они взбивают текст сообщения, как повара омлет. К сожалению, доля невырожденных матриц с увеличением их размера стремительно убывает. Детерминант матрицы L, как и ее элементы, может быть равен либо 0, либо 1. Если det(L)=0, то матрица вырождена. Поскольку известно, что для матрицы, составленной из квадратных подматриц А, В, С и D, имеем:
     │А В│
    
│   │ =det(A)det(B)-det(C)-det(D)
     │C D│

и, обозначив через Pn вероятность равенства единице детерминанта случайной матрицы размером 2**n, получаем следующее рекуррентное выражение: P(n+1)=2*Pn*Рn*(1-Pn*Pn). Так как P1=0.5, то увеличение n влечет быстрое убывание невырожденных матриц среди случайных.
     Для того, чтобы матрица L была невырожденной, случайной и при расшифровании не нужно было производить много вычислений, американскими криптографами был предложен алгоритм, легший в основу стандартного криптографического преобразования DES. Суть его одного шага можно описать следующей схемой.
     Входной блок данных делится пополам на левую L' и правую R' части. После этого формируется выходной массив так, что его левая часть L" представлена правой частью R' входного, а правая R" формируется как сумма L' и R' операцией XOR. Далее, выходной массив шифруется перестановкой с заменой. Можно убедиться, что все проведенные операции могут быть обращены и расшифровывание осуществляется за число операций, линейно зависящее от размера блока. В то же самое время, после нескольких таких взбиваний можно считать, что каждый бит выходного блока шифровки может зависеть от каждого бита сообщения.
     Система шифрования DES была разработана IBM под именем Lucifer и предложена со своими корректировками Национальным Бюро Стандартов США в 1976 году как стандарт шифрования. В ней применен ключ из 56 бит. Следует отметить, что в стандарте DES применены перестановки лишь специального типа, что наводило критиков этого стандарта на мысль, что АНБ хорошо знало их теорию и могло для взлома воспользоваться заранее известными слабыми местами. Однако принцип этого шифрования прошел самую широкую апробацию и ему посвящено множество публикаций. Нарекания вызывали лишь выбранные короткими длины блока в 64 бита и ключа в 56 бит, что недостаточно для таких задач, как национальная безопасность. Свое развитие DES получил в ГОСТ 28147-89, который увеличил длину ключа до 256 бит и допустил произвольные перестановки. В заключение приведем программу, демонстрирующую эффект взбивания на блоке в 64 байта. С увеличением числа взбиваний порча единственного бита в шифровке делает нечитаемой половину текста, что обусловлено побайтовой перестановкой. Если бы перестановка была побитовая, то весь текст от ошибки в единственном бите перестал бы читаться.

     '------программа шифрования взбиванием
     DEFINT I-N: DEFSTR S
     RANDOMIZE 231
     CLS:LOCATE 1, 1
     Lot = 5
     s$ = ""
     FOR i=1 TO 64:s$=s$+CHR$(65+25*RND):NEXT
     PRINT s$; " - text": sav = s$
     s$ = ""
     FOR i=1 TO 192: s$=s$+CHR$(255*RND): NEXT
     '---------------------шифрование
     FOR i = 0 TO Lot
     sc=MID$(ss,1+I*32,32)
     l=2^i:sl="": r=""
     FOR j = 1 TO 32
     kg=ASC(MID$(sc, j, 1))
     kl=ASC(MID$(s$, j, 1))
     kr=ASC(MID$(s$, j+32,1))
     sl = sl+ CHR$(kl XOR kr)
     sr = sr+ CHR$(kr XOR kg)
     NEXT
     s$=sr+RIGHT$(sl,l)+LEFT$(sl,32-l)
     NEXT
     '----------------------порча бита
     ss=CHR$(ASC(s$) XOR 4)+RIGHT$(s$,63)
     '-----------------печать шифровки

     FOR i =1 TO 64
     k = ASC(MID$(s$, i, 1))
     DEF SEG=47114: POKE 2*i-2, k: DEF SEG
     NEXT
     LOCATE 2, 65: PRINT " - code"
     '---------------расшифровывание
     FOR i = Lot TO 0 STEP -1
     sc=MID$(s$, 1+i*32, 32): l=2^i
     s$=RIGHT$ (s$ ,32-
     l)+MID$ (s$, 33,l)+LEFT$ (s$, 32)
     sl = "": sr = ""
     FOR j = 1 TO 32
     kg = ASC(MID$(sc, j, 1))
     kl = ASC(MID$(ss, j, 1))
     kr = ASC(MID$(ss, j+32, 1))
     sl = sl+ CHR$(kl XOR kr XOR kg)
     sr = sr+ CHR$(kr XOR kg)
     NEXT
     ss = sl+sr
     NEXT
     FOR i =1 TO 64
     k = ASC(MID$(s$, i, 1))
     DEF SEG=47124: POKE 2*i-2,k: DEF SEG
     NEXT
     LOCATE 3, 65: PRINT " - text"
     n = 0
     FOR i =1 TO 64
     IF MID$ (s$, i, 1) =MID$(sav, i,1) THEN
     LOCATE 4, i: PRINT "+";: n = n+I
     ELSE
     LOCATE 4, i: PRINT "-";
     END IF
     NEXT
     LOCATE 6, 1: PRINT 64 - n; "errors"
     END

Шифр DES принят федеральным стандартом США, и хорош в использовании для многих коммерческих приложений. Однако правительства сами никогда не используют шифры, предлагаемые коммерсантам, чтобы закрыть свои данные, так как они недостаточно стойки от атак аналитиков. Например, 16-кратный DES был взломан Шамиром, применявшим дифференциальный криптоанализ, и Матсуи, использовавшим линейный криптоанализ. Наиболее серьезную практическую атаку на DES осуществил Мишель Винер, который разработал и опробовал микросхему, проверяющую в секунду 50 миллионов ключей DES. ЭВМ, стоящая миллион долларов и содержащая несколько десятков тысяч таких микросхем, способна перебрать все ключи DES за 7 часов. АБН и ФАПСИ тратят на вычислительную технику такие деньги, что могут построить ЭВМ, взламывающую шифровку DES за секунду. Это означает, что DES нельзя пользоваться для серьезных приложений. Для того, чтобы испортить правительственным криптоаналитикам сон, коммерсанты применяют так называемый "тройной DES", шифруя сообщение трижды двумя разными ключами, что увеличивает реальную длину ключа до 112 бит. Однако такой метод медленнее обычного DES метода в три раза.

Шифр Энигмы

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

     1. Пять барабанов могли обеспечить лишь около
     ста миллионов ключей, что позволяло их за день
     перебрать на ЭВМ. Если использовать не 25 ла-
     тинских символов, а 256 кодов ASCII и увели-
     чить число барабанов, то сложность раскалыва-
     ния шифра существенно возрастет.
     2. Набор барабанов был ограничен и менялся ред-
     ко, что вызвало охоту англичан за их экземпля-
     рами в подводных лодках. ЭВМ может для каж-
     дой шифровки использовать индивидуальные
     барабаны, генерируемые по ключу, а это опять-
     таки резко усложняет вскрытие шифра.
     3. Наконец, можно сделать движение барабанов
     хаотичным по случайной последовательности,
     тоже вырабатываемой по ключу.

Подсчитаем число ключей такого шифра, реализованного программно. Пусть длина периода программного генератора случайных чисел равна 2**24. Восемь барабанов, генерируемые с помощью этого генератора, дадут вместе 2**192 вариантов ключа, а если учесть еще варианты псевдослучайной последовательности, управляющей движением барабанов, то получится внушительная цифра в 2**216 вариантов ключа. Таким образом, довольно просто получить устойчивый шифр даже при использовании программного генератора случайных чисел с периодом малой для криптографии длины. И хотя несомненно, что криптоаналитики наработали массу "домашних заготовок" для атак на такой шифр, но еще князь Владимирко Галицкий знал о том, что "в наше время чудес не бывает", и вскрытие шифра Энигмы будет дорого стоить. Поэтому приведем программу, реализующую описанный подход.

     '----------имитация Энигмы
     DEFINT I-N: DEFSTR S
     CLS : RANDOM12E 231
     DIM s(4, 32) AS STRING * 1
     ns = 4

     ss = "ААААААААААААААААААААААААААААА'
     PRINT ss
     '-----------ШИФРОВАНИЕ
     x = RND(-231)
     FOR i=0 TO ns
     FOR j=0 TO 32:set(i,j) = CHR$(j):NEXT
     FOR j=0 TO 32:SWAP s(i,j),s(i,32*RND):
     NEXT
     NEXT
     s=""
     FOR i = 1 TO LEN(ss) 'шифрование символа
     k=ASC (MID$ (ss ,i ,1)): IF k>32 THEN k=k-128
     FOR j = 0 TO ns:k=ASC(set(j, k)):NEXT
     IF k < 32 THEN k = k+ 128
     PRINT CHR$ (k); : s = s + CHR$ (k)
     k = ns * RND 'поворот колес
     FOR j=0 TO 31:SWAP s(k,j),s(k,j+1):NEXT
     FOR j=0 TO 32
     s(k,j)=CHR$((ASC(set(k, j)) + 32) MOD 33)
     NEXT
     NEXT
     PRINT
     '----------РАСШИФРОВЫВАНИЕ
     x = RND(-231)
     FOR i=0 TO ns
     FOR j=0 TO 32:s(i,j)=CHR$(j):NEXT
     FOR j=0 TO 32:SWAP s(i,j),s(i,32*RND):NEXT
     FOR j=0 TO 32
     IF ASC (set (i, j)) < 64 THEN
     m =j:n=ASC(s(i, j))
     DO
     k=ASC(s(i,n)):s(i,n)=CHR$(m OR 64)
     m=n: n=k
     LOOP UNTIL m = j
     END IF
     NEXT j
     FOR j=0 TO 32
     s(i,j)=CHR$(ASC(s(i,j)) AND 63)
     NEXT
     NEXT i
     ss = s
     FOR i = 1 TO LEN(ss)
     k=ASC(MID$(ss,i ,1)): IF k>32 THEN k=k-128
     FOR j=ns TO 0 STEP -1
     k=ASC(s(j,k))
     NEXT
     IF k<32 THEN k=k+128
     PRINT CHR$ (k) ;
     k = ns * RND 'поворот колес
     FOR j = 0 TO 31: SWAP s(k,j),s(k,j+1):NEXT
     FOR j = 0 TO 32
     s(k,j)=CHR$((ASC(s(k,j))+32) MOD 33)
     NEXT
     NEXT i
     END
     После работы программы на экране появятся три строки, изображающие: верхняя - исходный текст из букв А, средняя - шифровку и нижняя - расшифрованный текст:
     ААААААААААААААААААААААААААААА
     ВА ЖЖЬИХйЙЩСЛЦВФЭШЬРСОТСЗТЫОБ
     ААААААААААААААААААААААААААААА

Отметим, что для упрощения текста программы ключ задается лишь из 3 бит числом 231 и используются лишь 5 барабанов.
     На самом деле систем шифрования побольше, чем описано. Но практически употребляется лишь похожий на DES алгоритм IDEA ( IDEA - Improved Proposed Encryption Standard - улучшенный стандарт шифрования.) , отличающийся применением ключа длиной 128 бит и смещением операций разных алгебраических групп для блоков длиной 64 бита. Алгоритм IDEA разработан в Цюрихе Джеймсом Мэсси и опубликован в 1990 году. Он выдержал множество атак на него в отличие от алгоритмов FEAL, REDOC-11 и LOKI. IDEA выдержал атаки криптографов многих развитых стран, как Англии, Германии и Израиля. Он считается более стойким, чем традиционный DES, и представляет основу программы шифрования PGP, применяемой пользователями Интернет. Разработчик PGP, Фил Циммерман, сейчас подвергнут в США уголовному преследованию за экспорт криптостойких шифров. Примечательно, что алгоритмы, входящие в PGP, как IDEA и RSA, АНБ ранее объявляло не стойкими криптографически, но, тем не менее, завело дело "Правительство США против Филиппа Циммермана". Приравняв Фила к торговцам оружием и наркотикам, АНБ фактически созналось в очередной лжи - похоже, что PGP с IDEA и RSA оказалась слишком "крепким орешком" для правительственных чиновников.

ШИФРЫ С ОТКРЫТЫМ КЛЮЧОМ

Развитие криптографии в XX веке было стремительным, но неравномерным. Анализ истории ее развития как специфической области человеческой деятельности выделяет три основных периода.

     I. Начальный, имевший дело лишь с ручными шифрами, начавшийся в седой древности, закончился лишь в конце тридцатых годов XX века. Криптография за это время прошла длинный путь от магического искусства древних жрецов до будничной прикладной профес- сии чиновников секретных ведомств.
     II. Следующий период отмечен созданием и широким внедрением в практику сначала механи- ческих, потом электромеханических и, наконец, электронных устройств шифрования, соз- данием сетей засекреченной связи. Его началом можно считать применение телеграфных шифровальных машин, использующих длинный однора- зовый ключ. Длится он по наши дни. Однако к середине семидесятых годов было достигнуто положение, когда повышение стойкости шифров отошло на второй план. С развитием разветвленных коммерческих сетей связи, электронной почты и глобальных информационных систем самой главными стали проблемы распределения секретных ключей и подтверждения автор- ства. К ним теперь привлечено внимание широкого круга криптологов.
     III. Началом третьего периода развития криптологии обычно считают 1976 год, когда американ- ские математики Диффи и Хеллман предложили принципиально новый вид организации за- секреченной связи без предварительного снабжения абонентов секретными ключами, так называемое шифрование с открытым ключом. В результате стали появляться криптографические системы, основанные на подходе, сформулированном еще в сороковых годах Шенноном. Он предложил строить шифр таким способом, чтобы его раскрытие было эквивалентно решению математической задачи, требующей выполнения объемов вычислений, превосходящих воз- можности современных ЭВМ. Новый период развития криптографии характеризуется появлением полностью автоматизированных систем шифрованной связи, в которых каждый пользователь имеет свой индивидуальный пароль для подтверждения подлинности, хранит его, к примеру на магнитной карте, и предъявляет при входе в систему, а весь остальной процесс проведения секретной связи происходит автоматически.

В традиционных криптосистемах одним и тем же секретным ключом осуществляется как шифрование, так и дешифрование сообщения. Это предполагает, что отправитель и получатель сообщения получили идентичные копии ключа курьером. Этот прием почти неприменим для коммерческих фирм и абсолютно недоступен частным лицам из-за своей дороговизны.
     При шифровании с открытым ключом для шифрования и расшифровывания используются разные ключи, и знание одного из них не дает практической возможности определить второй. Поэтому ключ для шифрования может быть сделан общедоступным без потери стойкости шифра, если ключ для расшифровывания сохраняется в секрете, например, генерируется и хранится только получателем информации. Несмотря на подозрительность (кому верят криптоаналитики?) и консерватизм (лучшее - для криптографов - враг хорошего!) новые идеи стали быстро реализовываться на практике. Шифруют и сейчас традиционными методами, но рассылка ключей и цифровая подпись стали выполняться уже по-новому. Сейчас два метода шифрования с открытым ключом получили признание и закреплены в стандартах. Национальный институт стандартов и технологий США NIST (бывший ANSI) принял стандарт MD 20899, основанный на алгоритме ЭльГамаля, а на основе алгоритма RSA приняты стандарты ISO/IEC/DIS 9594-8 международной организацией по стандартизации и Х.509 международным комитетом по связи.

Шифр Ривеста-Шамира-Алдемана

Первой и наиболее известной криптографической системой с открытым ключом была предложенная в 1978 году так называемая система RSA. Ее название происходит от первых букв фамилий авторов Rivest, Shamir и Aldeman, которые придумали ее во время совместных исследований в Массачусетском технологическом институте в 1977 году. Она основана на трудности разложения очень больших целых чисел на простые сомножители. Международная сеть электронного перечисления платежей SWIFT уже требует от банковских учреждений, пользующихся ее услугами, применения именно этой криптографической системы. Алгоритм ее работает так:

     1. Отправитель выбирает два очень больших простых числа Р и Q и вычисляет два произведе- ния N=PQ и M=(P-1)(Q-1).
     2. Затем он выбирает случайное целое число D, взаимно простое с М, и вычисляет Е, удовлетворяющее условию DE = 1 MOD М.
     3. После этого он публикует D и N как свой открытый ключ шифрования, сохраняя Е как закрытый ключ.
     4. Если S - сообщение, длина которого, определяемая по значению выражаемого им целого числа, должна быть в интервале (1, N), то оно превращается в шифровку возведением в степень D по модулю N и отправляется получателю S'=(S**D) MOD N.
     5. Получатель сообщения расшифровывает его, возводя в степень Е по модулю N, так как
         S = (S'**E) MOD N = (S**(D*E)) MOD N.

Таким образом, открытым ключом служит пара чисел N и D, а секретным ключом число Е. Смысл этой системы шифрования становится прозрачным, если упомянуть про малую теорему Ферма, которая утверждает, что при простом числе Р и любом целом числе К, которое меньше Р, справедливо тождество К**(P-1)=1 MOD Р. Эта теорема позволяет определять, является ли какое-либо число простым или же составным.
     Приведем простой пример на малых простых числах Р=211 и Q=223. В этом случае N=47053 и М=46620. Выберем открытый ключ шифрования D=16813 и вычислим секретный ключ расшифровывания Е= 19837. Теперь, взяв за сообщение название метода RSA, переведем его в число. Для этого будем считать букву R равной 18, S равной 19, А равной 1 по порядковому номеру их положения в английском алфавите. На представление каждой буквы отведем по 5 бит числа, представляющего открытый текст. В этом случае слову RSA соответствует следующее число:
         S=((1*32)+19)*32+18=1650
С помощью открытого ключа получаем шифровку:
         S'=(S**D) MOD N=1650**16813 MOD 47053=3071
Получатель расшифровывает ее с помощью секретного ключа:
         S = (S'**E) MOD N=3071**19837 MOD 47053=1650

Авторы RSA в примере из своей первой публикации использовали
D=9007 и
N=11438162575788886766923577997614661201021829672124236256256184
     29357069352457338978305971235639587050589890751475992900268795
     43541.
     Приняв за исходный открытый текст фразу из "Юлия Цезаря" Шекспира: ITS ALL GREEK TO ME, представленную целым числом S=920190001121200071805051100201501305, они получили такую шифровку
S'=199935131497805100452317122740260647423204017058391463103703
     717406259716089489275043992096267258267501289355446135382376
     9748026.

Зачем приведены эти длинные наборы цифр, взятые из книги американского математика Мартина Гарднера, читатель узнает ниже.
     Криптостойкость системы RSA основана на том, что М не может быть просто вычислена без знания простых сомножителей Р и Q, а нахождение этих сомножителей из N считалась трудно разрешимой задачей. Однако недавние работы по разложению больших чисел на сомножители показали, что для этого могут быть использованы разные и даже совершенно неожиданные средства. Сначала авторы RSA предлагали выбрать простые числа Р и Q случайно, по 50 десятичных знаков каждое. Считалось, что такие большие числа очень трудно разложить на простые сомножители при криптоанализе. Райвест полагал, что разложение на простые множители числа из почти что 130 десятичных цифр, приведенного в их публикации, потребует более 40 квадриллионов лет машинного времени. Но математики Ленстра из фирмы Bellcore и Манасси из фирмы DEC разложили число из 155 десятичных цифр на простые сомножители всего за 6 недель, соединив для этого 1000 ЭВМ, находящихся в разных странах мира. Выбранное число, называемое девятым числом Ферма, с 1983 года на- ходилось в списке чисел, разложение которых считалось наиболее желательным. Это число взято потому, что оно считалось неразложимым при существующей вычислительной технике и достаточно большим для того, чтобы его можно считать безопасным для формирования N в RSA. Как заявил Ленстра, ведущий в Bellcore исследования по электронной защите информации и разложению больших чисел, их целью было показать разработчикам и пользователям криптографических систем, с какими угрозами они могут встретиться и насколько осторожны должны быть при выборе алгоритмов шифрования. По мнению Ленстра и Манасси, их работа компрометирует и создает большую угрозу применениям криптографических систем RSA.

Следует учесть, что работа по совершенствованию методов и техники разложения больших чисел только началась и будет продолжена. Те же Ленстра и Манасси в 1991 году нашли делитель тринадцатого числа Ферма, которое состоит примерно из 2500 десятичных разрядов. Теперь разработчикам криптографических алгоритмов с открытым ключом на базе RSA приходится как чумы избегать применения разложимых чисел длиной менее 200 десятичных разрядов. Самые последние публикации предлагают для этого применять числа в 250 и даже 300 десятичных разрядов. А так как для щифрования каждого блока информации приходится соответствующее число возводить в колоссально большую степень по модулю N, то для современных компьютеров это задача на грани возможного. Поэтому для практической реализации шифрования RSA радиоэлектроники начали разрабатывать специальные процессоры, которые позволили бы выполнять операции RSA достаточно быстро. Лучшими из серийно выпускаемых кристаллов являются процессоры фирмы CYLINK, которые позволяют выполнять возведение в степень целого числа из 307 десятичных знаков за доли секунды. Отметим, что чрезвычайно слабое быстродействие криптографических систем на основе RSA лишь ограничивает область их применения, но вовсе не перечеркивает их ценность.

Шифр ЭльГамаля

Криптографы постоянно вели поиски более эффективных систем открытого шифрования, и в 1985 году ЭльГамаль предложил следующую схему на основе возведения в степень по модулю большого простого числа. Для этого задается большое простое число Р. Сообщения представляются целыми числами S из интервала (1, Р). Оригинальный протокол передачи сообщения S выглядит в варианте Шамира, одного из авторов RSA, так:

     1. Отправитель А и получатель В знают лишь Р. А генерирует случайное число Х из интервала (1,Р) и В тоже генерирует случайное число Y из того же интервала.
     2. А шифрует сообщение S1=S**X MOD Р и посылает В.
     3. В шифрует его своим ключом S2=S1**Y MOD Р и посылает S2 к А.
     4. А "снимает" свой ключ S3=S2**(-X) MOD Р и возвращает S3 к В.
     5. Получатель В расшифровывает сообщение:
     S=S3**(-Y) MOD Р.

Этот протокол можно применить, например, для таких неожиданных целей, как игра в очко или блэкджек по телефону. Крупье шифрует карты своим ключом и передает их игроку. Игрок выбирает наугад одну из карт, шифрует карты своим ключом и возвращает их крупье. Крупье "снимает" с выбранной карты свой ключ и отсылает ее игроку. "Сняв" с этой карты свой ключ игрок узнает ее номинал и принимает решение: спасовать, тянуть еще или раскрываться. Теперь, хотя колода находится у крупье, но он не может ее раскрыть, так как карты зашифрованы ключом игрока. Крупье выбирает свою карту аналогично игроку. (Аналогичный алгоритм для игры в карты можно реализовать и на основе шифрования заменой операцией XOR. Однако им нельзя распространять ключи из-за легкого перехвата и взлома.)

В системе ЭльГамаля большая степень защиты, чем у алгоритма RSA достигается с тем же по размеру N, что позволяет почти на порядок увеличить скорость шифрования и расшифрования. Криптостойкость системы ЭльГамаля основана на том, что можно легко вычислить степень целого числа, то есть произвести умножение его самого на себя любое число раз так же, как и при операциях с обычными числами. Однако трудно найти показатель степени, в которую нужно возвести заданное число, чтобы получить другое, тоже заданное. В общем случае эта задача дискретного логарифмирования кажется более трудной, чем разложение больших чисел на простые сомножители, на основании чего можно предположить, что сложности вскрытия систем RSA и ЭльГамаля будут сходными. С точки зрения практической реализации, как программным, так и аппаратным способом ощутимой разницы между этими двумя стандартами нет. Однако в криптостойкости они заметно различаются. Если рассматривать задачу разложения произвольного целого числа длиной в 512 бит на простые множители и задачу логарифмирования целых чисел по 512 бит, вторая задача, по оценкам математиков, несравненно сложнее первой. Однако есть одна особенность. Если в системе, построенной с помощью алгоритма RSA, криптоаналитику удалось разложить открытый ключ N одного из абонентов на два простых числа, то возможность злоупотреблений ограничивается только этим конкретным пользователем. В случае же системы, построенной с помощью алгоритма ЭльГамаля, угрозе раскрытия подвергнутся все абоненты криптографической сети. Кроме того, упомянутые выше Ленстра и Манасси не только поколебали стойкость RSA, разложив девятое число Ферма на простые множители за неприлично короткое время, но и, как было замечено некоторыми экспертами, указали "брешь" в способе ЭльГамаля. Дело в том, что подход, применявшийся при разложении на множители девятого числа Ферма, позволяет существенно усовершенствовать методы дискретного логарифмирования для отдельных специальных простых чисел. То есть тот, кто предлагает простое Р для алгоритма ЭльГамаля, имеет возможность выбрать специальное простое, для которого задача дис- кретного логарифмирования будет вполне по силам обычным ЭВМ. Следует заметить, что этот недостаток алгоритма ЭльГамаля не фатален. Достаточно предусмотреть процедуру, гарантирующую случайность выбора простого Р в этой системе, и тогда только что высказанное возражение теряет силу. Стоит отметить, что чисел специального вида, ослабляющих метод ЭльГамаля, очень мало и случайным их выбором можно пренебречь.

Открытое распределение ключей

Пока преимущества методов шифрования с открытым ключом не были очевидны. Однако на их основе легко решать задачу выработки общего секретного ключа для сеанса связи любой пары пользователей информационной системы. Еще в 1976 году Диффи и Хеллман предложили для этого протокол открытого распределения ключей. Он подразумевает независимое генерирование каждым из пары связывающихся пользователей своего случайного числа, преобразование его посредством некоторой процедуры, обмен преобразованными числами по открытому каналу связи и вычисление общего секретного ключа на основе информации, полученной в процессе связи от партнера. Каждый такой ключ существует только в течение одного сеанса связи или даже части его.
     Таким образом, открытое распределение ключей позволяет каждой паре пользователей системы самим выработать свой общий секретный ключ, упрощая тем процедуру распределения секретных ключей. Хотя все не так просто - отсутствие у абонентов перед сеансом связи заблаговременно распределенного общего секретного ключа в принципе не дает им возможности удостовериться в подлинности друг друга при помощи обмена сообщениями по открытому каналу. Например, пересылать ключи можно и по описанному выше алгоритму ЭльГамаля в модификации Шамира, но как убедиться в том, что имеешь дело с партнером, а не перехватчиком? Для подтверждения подлинности каждый из участников секретной сети все же должен иметь собственный секретный ключ, известный только ему и отличающий его от всех других абонентов. В этом случае алгоритмом Диффи-Хеллмана будет обеспечена такая процедура предъявления пароля, что его многократное использование не снижало надежности доказательства подлинности владельца. В результате две функции общего секретного ключа, обычно доставляемого по секретному каналу, как защита информации в канале связи от третьей стороны и подтверждение подлинности каждого из абонентов партнеру, разделяются. Алгоритм открытого распределения ключей Диффи-Хеллмана выглядит так:

     1. Пусть имеются два абонента открытой сети А и В, знающие пару открытых ключей Р и D. Кроме того, у А есть секретный ключ Х из интервала (1, N), а у В есть секретный ключ Y из того же интервала.
     2. Абонент А посылает В шифровку своего ключа Z'=D**X MOD Р, а абонент В посылает А шифровку своего ключа Z"=D**Y MOD P.
     3. После этого общий ключ Z они вычисляют как
     Z=Z'**Y =Z''**X.

При помощи специальных приемов время формирования общего ключа в системе Диффи-Хеллмана может быть сокращено в 5 раз по сравнению с системой ЭльГамаля в модификации Шамира, и в 30 раз по сравнению с RSA при том же уровне стойкости. Это, с точки зрения большинства практических приложений, оказывается заметным преимуществом, так как шифрование и расшифровывание по алгоритму RSA примерно в тысячу раз медленнее классических алгоритмов типа DES. Отметим, что для многих применений криптографических систем с открытым ключом время вычислений при криптографических преобразованиях не имеет большого значения. Например, при идентификации пользователей по кредитным карточкам не будет разницы потребует ли она одну микросекунду или одну секунду. То же относится и к выбору общего ключа шифрования для другой, более быстродействующей, но не обладающей способностью обмена ключами криптографической системы.

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

Из практически действующих сетей связи, использующих систему открытого распределения ключей, наиболее серьезно защищенной является телефонная государственная сеть США на основе аппаратов STU-III. Она начала функционировать в 1987 году и содержит сейчас более 150 тысяч абонентов. В России аналогичная сеть, называемая еще АТС-1 или "вертушкой", тоже надежно защищена, но абонентов там в сотни раз меньше. От этого многие данные передаются по не вполне закрытым сетям вроде ИСКРА-2, доступным для взлома хакерами. К началу восьмидесятых годов криптологи пришли к пониманию преимущества так называемых гибридных систем, в которых процедуры шифрования с открытым ключом используются лишь для передачи ключей и цифровой подписи, а информация, которую нужно передать, защищается классическим алгоритмом типа DES, ключ для которого передан с помощью шифрования с открытым ключом. Первым серийным устройством данного типа был Datacryptor фирмы Racal- Milgo, выпущенный в 1979 году. Аппарат управления ключами шифрования Datacryptor предназначен в основном для правительственных сетей связи и аттестован на соответствие английскому стандарту защиты не секретной, но важной информации. В нем предусмотрены сигнализация о нарушениях криптографических требований и извещения об ошибках. В этом аппарате используется алгоритм установления шифрованной связи при помощи выработки и передачи общего секретного ключа по алгоритму RSA. В дальнейшем аппаратов подобного типа для защиты информации было выпущено очень много. Другие примеры использования новых криптографических идей демонстрируют многие коммерческие сети, особенно банковские, как SWIFT. Кроме того, система цифровой подписи RSA применяется в аппаратуре проверки соблюдения договора об ограничении ядерных испытаний, разработанной Sandia Laboratories в 1982 году, сети BPMIS и других системах. В России ряд фирм тоже занимается гибридными схемами, как Телекрипт, использующей быстродействующий алгоритм ГОСТ 28147-89 для шифрования данных и генерации имитоприставок (Имитоприставка - шифрованная контрольная сумма по исходному тексту, позволяющая с любой наперед заданной вероятностью судить об отсутствии в нем искажений.) и алгоритм RSA для управления ключевой информацией и получения цифровых подписей.

Цифровая подпись

Действующие в России системы передачи данных в большинстве своем имеют недостаток, который заключается в том, что они не дают возможности проверки подлинности и авторства пересылаемых документов. С их помощью в настоящее время невозможно заключение юридически признаваемых сделок и пересылка юридически подтверждаемых документов, вроде платежных поручений. Это часто сводит на нет их преимущества по сравнению с почтовой пересьшкой. Как правило, все полученные через компьютерную связь документы копируются из памяти машины на бумажный носитель, подписываются физическими лицами и удостоверяются печатями юридических лиц. Единственное исключение представляет плата КРИПТОН, так как достоверность платежных документов, зашифрованных с ее помощью, признана арбитражным судом. В ней и ряде других шифросистем цифровая подпись сообщения образуется с помощью секретного ключа. Проще всего зашифровать сообщение этим ключом, но оно ведь может быть очень длинным. Поэтому для экономии шифруется лишь контрольная сумма, сделанная по сообщению, называемая имитоприставкой. Например, в PGP длина ее 128 бит, что обеспечивает качественный "отпечаток пальцев", который подделать практически невозможно, так как вероятность подделки меньше 10**(-38). Вместе с тем, что очень важно, восстановить оригинальное сообщение по цифровой подписи невозможно.
     Решение проблемы авторства документа может быть достигнуто лишь с использованием электронной цифровой подписи - средства, позволяющего на основе криптографических методов надежно установить авторство и подлинность документа. Это средство позволяет заменить при безбумажном документообороте традиционные печать и подпись. Электронная цифровая подпись зависит от текста документа, требующего заверения, секретного ключа, доступного только заверяющему, и несекретного общедоступного ключа. Преобра- зование, используемое для выработки цифровой подписи, является криптографической функцией от указанных величин. Оно выбирается таким образом, чтобы при отсутствии у злоумышленника секретного ключа сделать невозможным подделку цифровой подписи, незаметное изменение документа, а также дать возможность любому лицу при наличии у него общедоступного ключа, документа и цифровой подписи удостовериться в подлинности документа и соответствующей цифровой подписи. Только секретный ключ гарантирует невозможность подделки злоумышленником документа и цифровой подписи от имени заверяющего. Каждый пользователь системы цифровой подписи должен обеспечивать сохранение в тайне своей секретный ключ. Общедоступный несекретный ключ используется для проверки подлинности документа и цифровой подписи, а также предупреждении мошенничества со стороны заверяющего в виде отказа его от подписи документа.

Цифровая подпись не имеет ничего общего с последовательностью символов, соответствующих изображениям печати или подписи, приписанной к документу. Если бы это было так, то, перехватив один раз эту последовательность, злоумышленник мог бы впредь приписывать ее к произвольному документу от чужого имени. При построении цифровой подписи вместо обычной связи между печатью или рукописной подписью и листом бумаги выступает сложная математическая зависимость между документом, секретным и общедоступным ключами, а также цифровой подписью. Невозможность подделки электронной подписи опирается не на отсутствие специалиста, который может повторить рукописную подпись и обычную печать, а на большой объем необходимых математических вычислений. В современной криптографии есть примеры описанных выше функций, для которых сложность подделки цифровой подписи при отсутствии секретной информации заверяющего такова, что самая мощная из существующих сверхбыстродействующих ЭВМ не сможет осуществить необходимые вычисления и за десятки лет.

Другое приложение цифровая подпись находит при снабжении абонентов криптографической информационной сети ключами. Простейший способ выделить группу пользователей сети - снабдить их общим секретным ключом. Недостатком такого подхода является то, что компрометация пароля у одного из членов группы ведет к краху всей системы подтверждения подлинности. Простейший вариант усиления системы - снабжение пользователей индивидуальными секретными паролями. Однако при таком варианте возникает проблема надежного хранения большого количества секретных паролей, а это приемлемо лишь для крупных абонентских пунктов. К тому же пользователи не могут непосредственно представляться друг другу, минуя центр. Чтобы обеспечить возможность непосредственного представления пользователей друг другу, процедура проверки пароля должна быть общедоступной. В то же время алгоритм должен быть устроен так, чтобы подделать пароль на основании известной процедуры проверки было невозможно. Для использования цифровых подписей при обмене ключами требуется общедоступный каталог секретной сети, где хранятся процедуры проверки подписи всех абонентов. Для системы RSA этот каталог содержит имена-идентификаторы абонентов ID с парой чисел (N, D). Для системы ЭльГамаля в каталоге против каждого имени ID записываются простое число Р и целые числа N и Y. Подлинность каталога с подписями может быть обеспечена путем подписывания каждой записи в каталоге или всего каталога сразу центром и выдачей в таком виде их абоненту. При установлении связи абоненты обмениваются этими подписанными сообщениями и на этом основании проверяют пол- номочия друг друга: просят партнера подписать случайное сообщение. Для системы ЭльГамаля общий объем ключевой информации в сети может быть сокращен за счет использования всеми одних и тех же чисел Р и N. Для системы RSA общим можно сделать только число N, а числа D должны бытЬ у всех различными.
     Из-за перестановочности операции умножения в алгоритме RSA не имеет значения, будет ли опубликовано D или Е, для него функции шифрования и расшифровывания одинаковы. Это позволяет реализовать процедуру получения цифровой подписи сменой Е и D. Если отправитель хочет, чтобы получатели его сообщений могли удостовериться, что эти сообщения действительно исходят от него, то он посылает шифровку S' вместе с подписью R, вычисленной как:
          S = R**E MOD N      Для разрешения споров между отправителем и получателем информации, связанных с возможностью искажения ключа проверки подписи [S', R], достоверная копия этого ключа выдается третьей стороне арбитру и применяется им при возникновении конфликта. Каждый может расшифровать сообщение S', но так как ключ Е известен только отправителю, то никто другой кроме него не мог бы послать шифрованное сообщение или подтвердить подпись как:
          S = R**D MOD N
     Для того, чтобы обеспечить подобную процедуру подтверждения подлинности отправителя сообщения, ЭльГамаль предложил следующий простой протокол:

     1. Отправитель А и получатель В знают Р и случайное число N из интервала (1, Р). А генерирует случайные числа Х и Y из того же интервала. Х нужно хранить в секрете, а Y должно быть взаимно простым с Р-1.
     2. Далее А вычисляет Q=N**X MOD Р и R=N**Y MOD Р, решает относительно S уравнение T=X*R+Y*S MOD (Р-1) и передает В документ с подписью
     [Q, R, S, Т].
     3. Получатель проверяет подпись, контролируя тождество
     А**S =(В**R)*R**T MOD Р.

В этой системе секретным ключом для подписывания сообщений является число X, а открытым ключом для проверки достоверности подписи число Q.
     Особенностью этих протоколов, как нетрудно видеть, является наличие у абонента секретного ключа, служащего цифровой подписью идентификатора, который не позволяет абоненту самому сменить свой идентификатор или выработать подпись для другого идентификатора, а также то, что он предъявляет контролеру не сам секретный элемент, а некоторое значение функции, вычисляемое с помощью секретного ключа из случайного запроса, тем самым доказывая, что обладает секретом, путем его косвенной демонстрации при вычислениях. Именно отсюда происходит рассматриваемое ниже название "доказательство при нулевом знании", то есть абонент доказывает, что обладает секретом, на раскрывая самого секрета. Как вырожденный случай алгоритма цифровой подписи можно рассматривать шифрование и расшифровывай ие передаваемой информации на общем секретном ключе абонентов, изготовленном и распространенном заранее, как это применяется в классических криптографических системах.
     Теперь вернемся к длинным числам, которые были приведены выше в описании метода RSA. Авторы этого метода в своей публикации привели и цифровую подпись, которая предлагала $100 первому, взломавшему их шифр. Пока еще не было сообщений о его вскрытии и, может, ктонибудь из читателей захочет попробовать и свои силы в расшифровке?

Доказательство при нулевом знании

На основании описанных алгоритмов шифрования, распределения ключей и электронной подписи можно организовывать более сложные протоколы взаимодействия пользователей криптографической сети, реализующие подтверждение подлинности и доказательство при нулевом знании. Так называемые системы "доказательства при нулевом знании" не являются собственно криптографическими системами. Они служат для передачи сообщений типа "Я знаю эту информацию" без раскрытия самого сообщения.
     Общая идея этих протоколов заключается в том, что обладатель секретного ключа доказывает, что он может вычислять некоторую функцию, зависящую как от секретного ключа, так и аргументов, задаваемых проверяющим. Проверяющий, даже зная эти аргументы, не может по данному ему значению функции восстановить секретный ключ. При этом функция должна быть такой, чтобы проверяющий мог удостовериться в правильности ее вычисления, например, представляла цифровую подпись выбранных им аргументов. Действие такой системы рассмотрим на приведенном ниже алгоритме, где подтверждение подлинности при использовании алгоритма RSA организовано следующим образом:

     1. Доказывающий А и контролер В оба знают идентификатор I и открытый ключ (N, Е), но А кроме того знает еще, секретное число S=I**D MOD N, сформированное по секретному ключу D. Сначала А генерирует случайное число Х и вычисляет Y=X**E MOD N. Затем он отсылает [I, Y] к В.
     2. После этого В генерирует и передает А случайное число V.
     3. Затем А вычисляет и передает В число
     W=X*(Y**V) MOD N. 4. Контролер В проверяет принадлежность идентификатора I к А, контролируя тождество
     W**E=Y*(I**V) MOD P.

Случайный запрос обычно представлен вектором, координаты которого принимают значения 0 или 1, но он может быть любым вектором, координаты которого вычисляются по модулю числа Е.
     На этом можно подвести итоги краткого рассмотрения криптографических систем с открытым ключом. Их изобретение, похоже, лишь добавило головную боль криптографам по следующим веским причинам:

     1. Вместо одного ключа стало два и то обстоятельство, что только один из них секретен, лишь усугубляет проблему. А ну как по ошибке в открытый каталог будет помещен не общедоступный, а секретный ключ? Чтобы исключить такого рода казусы нужна полностью автоматизированная система, плохо контролируемая в своих действиях человеком-наблюдателем.
     2. Как неоднократно упоминалось выше, и секретные ключи, и их рассылку по закрытому каналу (топ-топ-топ курьеры!) отменить нельзя. Свойство же обладания одним секретным ключом для всех абонентов тоже сомнительно - в принципе нет большой разницы между переправкой единственного ключа или тысячи, если только они представлены информационно, а не физически.
     3. Наконец, принципиальная возможность криптоаналитической атаки на шифровку несимметричных систем, содержащую несмысловую информацию в виде ключа, указывает слабое место гибридных систем. Итак, приобретя новые возможности, криптографы получили еще и несколько новых источников угроз.
     4. Системы шифрования с открытым ключом не решают всех проблем, которые стоят перед критографами. Например, нечестному пользователю ничего не стоит под своей настоящей подписью поставить фальшивую дату. Для финансовых документов это может быть катастрофой. Поэтому цифровая подпись с датой обязательно должна заверяться третьим лицом, как нотариусом. Без его участия цифровая подпись недействительна.
    

Классификация криптографических систем

Предыдущее рассмотрение шифров разных типов позволяет сделать несколько выводов. Крайне желательно, чтобы как можно меньший объем информации шел по закрытому каналу, требующему больших затрат на поддержание и являющемуся наименее надежным участком. Однако совсем обойтись без него нельзя. Количество переданной по нему информации связано со сложностью вскрытия шифровок следующим образом. Предполагается, что злоумышленникам и любопытным досконально известны используемые процедуры шифрования и расшифровывания, а также статистические свойства сообщения. Обычно считают, что это им известно даже лучше, чем отправителю с получателем, но неизвестен секретный ключ. Его будем рассматривать как число, например, набор нулей и единиц, которые означают определенные действия над сообщением. Сложность подбора ключа зависит лишь от объема информации, которую он занимает. Одним битом можно передать лишь два ключа, двумя - четыре, тремя - восемь и так далее. Специально отметим, что речь здесь идет об информации, а не физической длине ключа, которая может быть довольно большой. Следовательно, чем больше информации в ключе, тем сложнее его подобрать.
     Нет невзламываемых шифров. Все системы шифрования просто делают взламывание шифровок или заведомо дороже содержащейся в сообщении информации, или затягивают расшифровывание на неприемлемо большой срок по времени. При разработке шифра устанавливают приемлемые цену или время взламывания и дальше уже не обращают внимания на очень богатых или терпеливых взломщиков. Необходимую сложность ключа в классических криптографических системах вычислить нетрудно, если знать технические возможности источника угрозы и плату за ошибку в оценке надежности шифра. Например, любопытствующий не переберет вручную и сотни ключей - устанет, а больших неприятностей от него ждать не приходится. Поэтому тысяча вариантов ключей достаточна, что эквивалентно информационной длине ключа 10 бит или ключевому слову из 3-5 букв. Если же информация представляется стратегической и устареет не быстрее чем за 5 лет, а источник угрозы - крупная фирма, которая может нанять криптоаналитиков и получить доступ к сверхбыстродействующей ЭВМ, то и ключ нужен посложнее. Можно допустить, что они обеспечат проверку миллиона ключей в секунду. Тогда, если оставить противнику один шанс из миллиона, то число ключей должно быть записано с 22 десятичными разрядами, что примерно соответствует 70 битам или ключевому слову из 30-35 букв. Таким образом, число необходимых ключей можно записать в виде формулы:

     N=[время жизни шифра]/[скорость подбора ключей]/[шанс взлома]

Время жизни шифра вряд ли целесообразно задавать больше 25 лет. В Британии секретнейшие правительственные решения по истечении этого срока публикуют для историков. А вот скорость подбора ключей всегда вызывает споры. Например, публикация американского стандарта шифрования DES вызвала у ряда криптографов призывы его бойкотировать, так как они утверждали, что за 20 миллионов долларов можно создать ЭВМ, перебирающую миллион ключей в секунду и раскалывающую шифр скорее чем за сутки. Правда, представители национального бюро стандартов возражали, что на создание такой сверхбыстродействующей ЭВМ уйдет 5 лет, а это время - приемлемый срок жизни стандарта и шифров. Последняя величина в формуле, выражающая риск от взлома шифра за указанный срок, весьма индивидуальна и обычно имеет величину от одной тысячной до одной миллионной в зависимости от области его применения.
     После общего рассмотрения принципов действия криптографических систем попытаемся дать строгое определение сложности их разрушения. Трудность вскрытия шифра опирается на понятие алгебраической сложности. При определенных условиях, а именно при совершенстве типа шифра и современном состоянии криптографии, можно утверждать, что сложность зависит лишь от случайной последовательности, которая представима как ряд чисел. Самая простая последовательность чисел - повторение одного и того же числа, как 0, 0, 0,... - фактически оставляет исходный текст открытыми. Более сложную, но не менее естественную последовательность, представляет натуральный ряд 1, 2, 3,... Однако если его использовать для шифрования, то даже ребенок по 3-4 последовательным членам догадается, какое значение будет следующим. Несомненно, что любую последовательность чисел можно представить как функцию от натурального ряда F1, F2, F3,... потому что аргумент можно рассматривать как простую нумерацию. Сложностью или порядком функции F назовем минимально необходимое число п последовательных членов ряда, которое необходимо, чтобы реконструировать ряд целиком. При этом можно считать, что закон F формирования ряда известен, а значения F, принадлежат множеству {0,1}. В этом случае максимальное возможное число ключей, которые придется перебрать, чтобы гарантировано вскрыть шифр, равно 2**n, так как длина периода F, не превышает этой величины.
     Когда рассматриваем вскрытие шифра, то предполагаем, что существует программа универсальной ЭВМ, которая имитирует собой криптографическую машину, и некоторые начальные данные в виде секретного ключа, по которым программа может восстановить точный текст сообщения, подбирая все возможные ключи (Этот способ взлома шифров восходит к Шеннону и обычно называется "полным перебором ключей".) . Криптографы считают, что программа шифрования общедоступна и секрета не представляет, значит, сложность вскрытия шифра зависит лишь от количества секретных ключей. У такого определения сложности раскалывания шифра есть уязвимое место. Согласно известной теореме Гёделя проблема криптографической атаки на шифр не имеет универсального решения. А это означает: всегда есть надежда, что кому-нибудь придет в голову остроумная идея, позволяющая неожиданно просто прочесть нераскрываемые до этого шифры. Следовательно, несмотря на прогресс в создании устойчивых шифров, криптографы буквально ходят по краю пропасти, зажмурив глаза, а криптоаналитики пытаются их туда столкнуть. Нужно сказать, что практика криптологии и не отрицает этого. Действительно, ряд теоретических открытий дал пути для чтения некоторых типов шифров, раньше казавшихся нераскрываемыми. Тем не менее, больше похожа на реальную ситуацию другая схема, считающая, что теоретики если и смогут основательно упростить подбор ключа, то все равно останется так много переборов, что их выполнение за ограниченное время на современной технике будет невозможно. Иными словами, раскрытие очень длинного ключа методом полного перебора в реальных условиях невозможно, однако не исключена возможность создания принципиально нового метода результативной атаки на шифр.
     Теперь подведем итоги. Известны два основных типа шифров, комбинации которых образуют классические криптографические системы. Главная идея, положенная в основу их конструирования, состоит в комбинации функций, преобразующих исходные сообщения в текст шифровки, то есть превращающих эти исходные сообщения с помощью секретных ключей в нечитаемый вид. Но непосредственное применение функций сразу ко всему сообщению реализуется очень редко. Все практически применяемые криптографические методы связаны с разбиением сообщения на большое число частей фиксированного размера, каждая из которых шифруется отдельно, если не независимо. Это существенно упрощает задачу шифрования, так как сообщения обычно имеют различную длину. Поэтому можно выделить четыре основных метода шифрования: потоковый, блочный, с открытым ключом и сверточный. Их различия заключаются в следующем:

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

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

     1. Нужно определить, над какими объектами исходного текста производятся криптографические преобразования: над отдельными битами, байтами или блоками. Например, в шифре Энигмы операции производятся побайтно, в то время как DES оперирует одновременно со множеством бит, .называемым блоком. Свойство системы использовать блоки бит назовем блочностью.
     2. Функции шифрования могут зависеть от знаков сообщения. В системах, обладающих свойством зависимости функции шифрования от знаков сообщения, будет наблюдаться размножение ошибок: если при передаче исказится хоть один бит шифровки, то после расшифровывания текст будет содержать некоторое количество ошибок. Зависимость функции шифрования от знаков сообщения назовем сверточностыо.
     3. Шифрование отдельных знаков сообщения может зависеть от их положения в тексте. В приведенном только что примере сверточного шифрования, различные знаки сообщения шифруются с учетом их положения. Поэтому потеря при передаче любой части текста шифровки приведет к неправильному расшифрованию всех последующих частей сообщения. Независимость знаков шифра от их положения в исходном тексте назовем транзитивностью.
     4. Системы шифрования могут быть как симметричные, с одним ключом, так и асимметричными, с разными ключами для шифрования и расшифровывания. Основное различие между ними состоит в том, что в асимметричной системе знание одного ключа недостаточно для раскрытия соответствующего ему второго ключа.
    
Типы систем Блочность Сверточность Транзитивность Симметричность
Потоковые

-

-

-

+

Блочные

+

-

+

-

С открытым ключом

+

-

+

+

Сверточные

+

+

+

+

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

Потоковые шифры широко используются в военных и других системах, близких к ним по назначению, для шифрования данных и преобразованных в цифровую форму речевых сигналов. До недавнего времени эти применения преобладали для данного метода шифрования. Это объясняется, в частности, относительной простотой конструиро- вания и реализации генераторов хороших шифрующих последовательностей. Но главным фактором, конечно, было отсутствие размножения ошибок в потоковом шифре. Так как для передачи данных и речевых сообщений в стратегической связи используются каналы недостаточно высокого качества, то любая криптографическая система, увеличивающая и без того нередкие ошибки, неприменима. Кроме указанных приложений потоковые шифры используются и в системах шифрования каналов передачи данных, где их непрерывное действие препятствует эффективному криптоанализу.
     Единственным стандартным методом потокового шифрования является вариант, употребленный в стандарте шифрования данных DES. Первый такой алгоритм был реализован фирмой Harris Semiconductor в ее криптографическом процессоре на микросхеме HS3447 Cipher 1. Хотя алгоритм остается секретным, известно, что в этом кристалле применено потоковое шифрование. Другим примером использования потокового шифрования можно назвать алгоритм В152 фирмы British Telecom, реализованный в приборах В-CRYPT этой фирмы. Этот алгоритм также является секретным. В настоящее время в России нашли широкое применение устройства потокового шифрования STEN для защиты банковских коммуникаций SWIFT. За рубежом можно купить массу всевозможных устройств потокового шифрования от $1000 как Mesa 432 фирмы Western DataCom, позволяющих поддерживать асинхронный протокол модемов V. 32 на скоростях до 19.2 килобит/с, и до аппаратов Secure Х.25 фирмы Cylink, поддерживающих синхронный протокол узлов Х.25 на скорости 64 килобит/с, но стоящих свыше $5000.
     Главное свойство блочного шифрования состоит в том, что каждый бит блока текста шифровки является функцией почти всех бит соответствующего блока открытого текста, и никакие два блока открытого текста не могут быть представлены одним и тем же блоком текста шифровки. Основное преимущество простого блочного шифрования состоит в том, что в хорошо сконструированной системе небольшие изменения открытого текста или ключа вызывают большие и непредсказуемые изменения в тексте шифра. Однако употребление простейших блочных шифров связано с серьезными недостатками. Первый из них состоит в том, что если ко всем блокам применить один и тот же ключ, то даже при сравнительно большой длине блока, как в DES, возможен криптоанализ "со словарем". Ясно, что блок небольшого размера, как в стандарте DES, может даже повториться в сообщении вследствие большой избыточности открытого текста. Это может привести к тому, что идентичные блоки открытого текста в сообщении будут представлены идентичными блоками текста шифровки, что дает криптоаналитику шанс в угадывании текста и атаке на ключ. Другой потенциальный недостаток этого шифра связан с размножением ошибок внутри блока. Результатом изменения одного бита в принятом блоке шифровки будет неправильное расшифровывание всего блока. Вследствие отмеченных недостатков простейшие блочные шифры не употребляются для шифрования длинных сообщений. Но в финансовых учреждениях, где сообщения часто состоят всего из одного или двух блоков, блочные шифры типа DES широко применяются в простейшем варианте. Поскольку использование этого варианта связано с необходимостью частой смены ключа шифрования, то вероятность шифрования двух идентичных блоков открытого текста на одном и том же ключе очень мала.

Возможно образование смешанных систем потокового и блочного шифрования c использованием лучших свойств каждого из этих шифров. В таких системах потоковое шифрование комбинируется с перестановками бит в блоках. Открытый текст сначала шифруется, как при обычном потоковом шифровании, затем полученный текст шифровки разбивается на блоки фиксированного размера и в каждом блоке дополнительно производится перестановка под управлением ключа. В результате получается шифр, не размножающий ошибки, но обладающий дополнительным свойством, которого нет у примитивного потокового шифра замены на основе операции XOR, состоящим в том, что перехватчик не знает, какому биту открытого текста соответствует бит текста шифровки. Благодаря этому зашифрованное сообщение становится гораздо более сложным для раскрытия.
     Криптографическая система с открытым ключом, как уже видели, представляет собой систему блочного шифрования, оперирующей с блоками большой длины. Это обусловлено тем, что криптоаналитик, знающий открытый ключ шифрования, мог бы предварительно вычислить и составить таблицу соответствия блоков открытого текста и шифровки. Если длина блоков мала, то число возможных блоков будет не слишком большим и может быть составлена полная таблица, дающая возможность моментального расшифрования любого шифрованного сообщения с использованием известного открытого ключа. Ни один алгоритм шифрования с открытым ключом не может быть применен для каналов с большой скоростью. Это значит, что использование таких систем для блочного шифрования ограничено лишь распределением ключей, аутентификацией и формированием цифровой подписи.
     Системы шифрования на основе свертки встречаются в различных практических вариантах. Применение крийтографических систем блочного шифрования в сочетании со сверткой дает ряд важных преимуществ. Первое и самое значительное, это возможность использования их для обнаружения манипуляций с сообщениями, производимых активными перехватчиками. При этом используется факт размножения ошибок, а также способность этих систем генерировать код аутентификации сообщений. Другое преимущество состоит в том, что такие шифры, в отличие от блочных, могут не требовать начальной синхронизации. Это значит, что если какая-то часть сообщения была пропущена при приеме, то оставшаяся часть его все равно может быть расшифрована. Таким системам свойственны и определенные недостатки. Основной из них - это размножение ошибок. Один ошибочный бит при передаче вызовет блок ошибок в расшифрованном тексте. При этом требование увеличения зависимости одного знака текста шифровки от как можно более длинного его предыдущего участка, повышает криптографическую стойкость, но противоречит требованию надежности, связанному с размножением ошибок. Другой недостаток состоит в том, что разработка и реализация систем шифрования с обратной связью оказываются более трудными, чем систем потокового шифрования. Впрочем, размножение ошибок может быть и положительным свойством, если важно, чтобы данные принимались точно и даже одна ошибка в них недопустима. Так как сплошной поток ошибок может быть обнаружен несравненно легче, чем одиночный сбой, то в данном случае размножение ошибок уже не является недостатком шифра.
     На этом можно было бы и закончить рассмотрение сверточных шифров, однако стоит упомянуть особый вид сверточного шифрования, представляющий большой практический интерес. В простейшем случае имеем код со скоростью х. Это означает, что каждый бит сообщения Ti на выходе схемы кодирования заменяется на два бита, например, Ti+T(i-1) и Ti+T(i-1)+T(i-2). Декодирование этого кода довольно сложно и осуществляется обычно методом динамического программирования, при этом достаточно сохранять в памяти лишь 4 варианта возможных входных последовательностей. В процессе декодирования сохраняются лишь те варианты, которые лучше согласованы с входными данными. Для сверточных кодов со скоростью k/n на k входных бит приходится п выходных комбинаций этих бит. Есть возможность случайным образом управлять этими комбинациями, что и приводит к особому виду шифрования. Его свойства следующие:

     1. Декодирование этого шифра сложно, но может быть выполнено в реальном времени с минимальной задержкой.
     2. Есть возможность создания шифров, устраняющих ошибки.
     3. Можно управлять размножением ошибок. Например, выбор выходных комбинаций бит
     Ti+T(i-1) и Ti+T(i-2) в коде со скоростью х
     при двух искажениях в трех последовательных битах приводит к тому, что ошибки начнут катастрофически размножаться.

Таким образом, существует возможность реализации в одном алгоритме целого набора шифров, резко различающихся по своим свойствам. К недостаткам таких шифров относятся увеличение объема сообщения с преобразованием его в шифровку и сложность схемы декодирования при больших значениях n. Однако эти недостатки не настолько серьезны, чтобы исключить возможность применения указанной схемы в связных коммуникациях или аппаратуре ЭВМ.
     Первый вывод, который можно сделать из проведенного анализа, состоит в том, что в большинстве практических криптографических систем применяются алгоритмы или потокового шифрования, или шифрования со сверткой. Большинство криптографических систем потокового шифрования использует оригинальные алгоритмы для коммерческого сектора или секретные правительственные алгоритмы. Такое положение, очевидно, сохранится еще в ближайшие годы. Возможно также, что большинство систем шифрования со сверткой будет основано на применении алгоритмов блочного шифрования в специальном варианте, в частности, наиболее известного алгоритма блочного шифрования DES. О других методах шифрования можно сказать, что несмотря на быстрый рост публикаций по криптографическим системам с открытым ключом, они еще не полностью выдержали испытание временем, хотя обойтись без них сейчас уже невозможно. Поэтому для потенциальных пользователей криптографии приходится выбирать между системами потокового шифрования и системами шифрования со сверткой, основанными на применении алгоритмов блочного шифрования типа DES. Однако существуют определенные области применения, например, финансовые операции, где вполне возможно использование методов простейшего блочного шифрования. Выбор криптографического алгоритма в значительной мере зависит от его назначения. Некоторые данные, которыми можно руководствоваться при выборе типа криптографических систем, приведены в таблице.
Типы систем Размножение ошибок Аутентификация Алгоритм Скорость
Потоковые

нет

нет

нет типовых большая
Блочные

есть

нет

DES и аналоги большая
С открытым ключом

есть

есть

RSA, ЭльГамаля очень низкая
Сверточные

есть

есть

Делаются на основе блочных большая

К характеристикам, влияющим на выбор типа криптографической системы, в первую очередь относится требуемая скорость шифрования. Например, при очень низкой скорости вполне возможно применение криптографической системы RSA. Системы блочного шифрования в программном варианте тоже относятся к низкоскоростным, но в аппаратном варианте, например, по алгоритму DES, могут работать почти с любыми скоростями. Если требуются очень высокие скорости, то лучшей может быть система потокового шифрования с высоким быстродействием как в программном, так и в аппаратном вариантах. Если же требуется аутентификация, то должны применяться системы со сверткой текста шифровки или открытым клю- чом. И, наконец, если имеющийся канал связи относится к каналам, подверженным ошибкам, которые не должны размножаться криптографической системой, то выбору системы потокового шифрования нет альтернативы.

ПСЕВДОСЛУЧАЙНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ ЧИСЕЛ

Секретные ключи представляют собой основу криптографических преобразований, для которых, следуя правилу Керкхофа, стойкость хорошей шифровальной системы определяется лишь секретностью ключа. Однако в практике создание, распределение и хранение ключей редко были сложными технически, хотя и дорогими задачами. Основная проблема классической криптографии долгое время заключалась в трудности генерирования непредсказуемых двоичных последовательностей большой длины с применением короткого случайного ключа. Для ее решения широко используются генераторы двоичных псевдослучайных последовательностей. Существенный прогресс в разработке и анализе этих генераторов был достигнут лишь к началу шестидесятых годов. Поэтому в данной главе рассмотрены правила получения ключей и генерации на их основе длинных псевдослучайных последовательностей, используемых криптографическими системами для преобразования сообщения в шифровку.
     Получаемые программно из ключа, случайные или псевдослучайные ряды чисел называются на жаргоне отечественных криптографов гаммой, по названию у - буквы греческого алфавита, которой в математических записях обозначаются случайные величины. Интересно отметить, что в книге "Незнакомцы на мосту", написанной адвокатом разведчика Абеля, приводится термин гамма, который специалисты ЦРУ пометили комментарием - "музыкальное упражнение?", то есть в пятидесятые годы они не знали его смысла. Получение и размножение реализаций настоящих случайных рядов опасно, сложно и накладно. Физическое моделирование случайности с помощью таких физических явлений, как радиоактивное излучение, дробовой шум в электронной лампе или туннельный пробой полупроводникового стабилитрона не дают настоящих случайных процессов. Хотя известны случаи удачных применений их в генерации ключей, например, в российском криптографическом устройстве КРИПТОН. Поэтому вместо физических процессов для генерации гаммы применяют программы для ЭВМ, которые хотя и называются генераторами случайных чисел, но на самом деле выдающие детерминированные числовые ряды, которые только кажутся случайными по своим свойствам. От них требуется, чтобы, даже зная закон формирования, но не зная ключа в виде начальных условий, никто не смог бы отличить числовой ряд от случайного, как будто он получен бросанием идеальных игральных костей. Можно сформулировать три основных требования к криптографически стойкому генератору псевдослучайной последовательности или гаммы:

     1. Период гаммы должен быть достаточно большим для шифрования сообщений различной длины.
     2. Гамма должна быть трудно предсказуемой. Это значит, что если известны тип генератора и кусок гаммы, то невозможно предсказать следующий за этим куском бит гаммы с вероятностью выше х. Если криптоаналитику станет известна какая-то часть гаммы, он все же не сможет определить биты, предшествующие ей или следующие за ней.
     3. Генерирование гаммы не должно быть связано с большими техническими и организационными трудностями.

Самая важная характеристика генератора псевдослучайных чисел - информационная длина периода, после которого числа либо начнут просто повторяться, либо их можно будет предсказывать. Эта длина фактически определяет возможное число ключей системы и зависит от алгоритма получения псевдослучайных чисел. Требуемую длину периода определяет степень секретности данных. Чем длиннее ключ, тем труднее его подобрать. Однако не только длина ключа гарантирует его стойкость к взлому. В том случае, если содержание шифрованного сообщения жизненно важно для государства и им заинтересуется национальная служба безопасности, то заранее нужно быть готовым к неудаче в столь неравном состязании. Люди из спецслужб легко найдут требуемый ключ своими специфическими неджентльменскими методами, далекими от математики и криптографии. Скорее всего, ключ им даст сам владелец на блюдечке с голубой каемкой и будет этому искренне рад.
     Вторая проблема состоит в следующем: на основании чего можно сделать заключение, что гамма конкретного генератора является непредсказуемой? Пока в мире нет еще универсальных и практически проверяемых критериев, позволяющих утверждать это. Неизвестна и общая теория криптоанализа, которая могла бы быть применена для такого доказательства, за исключением все возрастающего количества конкретных способов анализа, выработанных для различных практических целей. Интуитивно случайность воспринимается как непредсказуемость. Чтобы гамма считалось случайной, как минимум необходимо, чтобы ее период был очень большим, а различные комбинации бит определенной длины равномерно распределялись по всей ее длине. Итак, второе требование к ряду заключается в подтверждаемом статистически подобии его свойств настоящей случайной выборки. Каждый порядок элементов гаммы должен быть так же случаен, как и любой другой. Это требование статистики можно толковать и как сложность закона формирования ряда псевдослучайных чисел. Практически, если по достаточно длинной реализации этот закон вскрыть не удается ни на статистическом уровне, ни аналитически, то этим нужно удовлетвориться. Чем длиннее требуемая длина ряда, тем жестче к нему требования. Теперь подробнее расскажем, как вскрывались скрытые закономерности в последовательностях чисел. С древнейших времен люди наблюдали и изучали периодически повторяющиеся процессы, как фазы Луны, движения планет, чередования времен года, но не все такие цикличности выражены явно. Например, солнечные пятна, наблюдаемые невооруженным глазом с начала нашей эры и в телескопы с начала XVII века, дают пример скрытой периодичности в II лет, впервые обнаруженной Генрихом Швабе лишь в 1843 году. А вот среднегодовые температуры и изменение климата Земли связаны с циклами в 19 лет. Работы Винера и Хинчина поставили анализ периодичностей с головы на ноги. Ими предложено оценивать спектр случайных колебаний значений элементов гаммы как преобразование Фурье функции автокорреляции. При этом шумоподобному равномерному спектру гаммы без скрытых периодичностей соответствует автокорреляционная функция в виде одиночного выброса в нуле, то есть так называемая дельта-функция. Этот результат можно интерпретировать как непохожесть последовательности на себя при любом ее сдвиге.
     И, наконец, последнее третье требование связано с возможностью практической реализации генератора в виде программы или электронного устройства, быстродействием, необходимым для применения в современных коммуникациях, а также удобством его практического использования.

Простейшие алгоритмы генерации

Заслуга конструирования длинных псевдослучайных рядов с хорошими статистическими свойствами полностью принадлежит криптографии. Не следует думать, что они нужны лишь криптографам - картирование Венеры стало возможным, когда длина периода случайного ряда импульсов превысила 10**40. Фотографирование этой планеты нельзя было сделать потому, что она всегда закрыта плотным слоем облаков. Локация же ее с Земли затруднена обилием помех и высокими требованиями к разрешению. Поэтому зондирование выполнялось случайной последовательностью импульсов указанного периода. После 300 зондирований, на что ушло более полгода, была получена карта, где различимы объекты размером около километра, а по высоте разрешение получено такое, какое достигнуто не везде на Земле. Генераторы псевдослучайных чисел используются очень широко в сотнях программных приложений от конструирования ядерных реакторов и радиолокационных систем раннего обнаружения до поисков нефти и многоканальной связи. Генерация псевдослучайных последовательностей давно занимала математиков. Одним из первых было предложение получать их как значения дробной части многочлена первой степени:
         Yn = Ent (a*n+b)
     Если n пробегает значения натурального ряда чисел, то поведение Yn выглядит весьма хаотичным. Еще Карл Якоби доказал, что при рациональном коэффициенте а множество {Yn} конечно, а при иррациональном бесконечно и всюду плотно в интервале от 0 до 1. Для многочленов больших степеней такая задача была решена лишь в 1916 году выдающимся математиком нашего века Германом Вейлем. Кроме того, он установил критерий равномерности распределения любой функции от натурального ряда чисел. Небезынтересно привести его в краткой формулировке.

КРИТЕРИЙ ВЕЙЛЯ. Чтобы ряд х1, х2, x3, ... был распределен равномерно в интервале от 0 до 1, необходимо и достаточно, чтобы для любой интегрируемой по Риману функции f(x) было справедливо соотношение P{=Mf(x)}=1.

Это соотношение выражает свойство, называемое эргодичностью и заключающееся в том, что среднее по реализациям псевдослучайных чисел равно среднему по всему их множеству с вероятностью 1. Таким образом, Вейль доказал, что эргодичность гарантирует отсутствие экзотичности в поведении последовательности Xn.
     Однако эти результаты далеки от практики получения псевдослучайных рядов чисел. Дело в том, что теорема Якоби относится к действительным числам х и у, которые не могут быть использованы при вычислениях, потому что иррациональные действительные числа требуют для своей записи бесконечного числа знаков. Попытки замены настоящего иррационального числа его приближением на ЭВМ для генерации псевдослучайной последовательности опасны, так как получаемые последовательности оканчиваются циклами с коротким периодом. Завершают доказательство непригодности полиномиальных и других функциональных преобразований натурального ряда чисел для получения псевдослучайных последовательностей результаты Пуанкаре. В частности он установил, что непрерывное отображение Т области U числового пространства в себя обязательно приводит к короткой цикличности траекторий Tn(х) для всюду плотного в U множества точек, если учитывать попадание траекторий точек в их сколь угодно малые окрестности или ряды чисел, созданные таким методом, отягчены периодичностями.

Несмотря на непригодность для криптографии простых последовательностей чисел, рассмотрим все же самые распространенные из них. Наиболее древний вычислительный способ генерации псевдослучайных чисел на ЭВМ принадлежит Джону фон Нейману и относится к 1946 году. Этот способ базировался на том, что каждое последующее случайное число образуется возведением предыдущего в квадрат и отбрасыванием цифр с обоих концов. Способ Неймана оказался ненадежным и очень быстро от него отказались. Из простейших процедур, имитирующих случайные числа, наиболее употребляем так называемый конгруэнтный способ, приписываемый Д.Х. Лемеру:

         G(n+1)=KGn+C MOD M

В нем каждое последующее псевдослучайное число G(n+1) получается из предыдущего Gn умножением его на К, сложением с С и взятием остатка от деления на М. Весь фокус здесь в том, чтобы подобрать хорошие значения К, С и М, на что были потрачены десятилетия работы математиков. Подбор почти иррациональных К ничего не дает. Например, выбрав закон генерации последовательности G(N+1) = Ent (sqr(2)*Gn) на IBM PC при формате представления чисел с плавающей запятой IEEE в 4 байта, получим псевдослучайные ряды, обязательно заканчивающиеся циклами с периодами длиной всего лишь 1225 и 147 в зависимости от начального заполнения. Разумнее вычисления вести в целых числах. Для них было установлено, что при С=0 и М=2**N наибольший период М/4 достигается при K=3+8*i или K=5+8*i и нечетном начальном числе. При достаточно больших К ряд производит впечатление случайного. Насколько это верно читатель может выяснить самостоятельно следующей программой:
     '----------проверка случайности ряда чисел
     DEFINT A-Z: SCREEN 2: CLS
     n = 1
     DO
     nold = n: n = FnRnd% (n)
     PSET (nold/64,CVL(MKI$(n)+MKI$(0) )\512)
     LOOP UNTIL n = 1
     END
     '----генерация ряда чисел с периодом 16384
     DEF FnRnd% (n) =CVI(LEFT$(MKL$(1381&*n) ,2))

В ней случайность ряда проверяется отображением на экране дисплея пар его чисел (Gn+1, Gn) в прямоугольнике размером 128 х 512. Это простой и удобный способ проверки случайности рядов чисел, так как на глаз заметны малейшие закономерности в получаемом орнаменте. Из опытов с этой программой можно убедиться, что как ни экспериментируй с подбором К, все равно закономерности видны и чисто случайного рада чисел не получишь. Вспомните ехидное предложение Додо "становиться строго в беспорядке" из "Алисы в стране чудес". Результат можно несколько улучшить. Если С нечетно и K=1+4*i, то период ряда равен М. После долгих поисков К исследователи остановились на значениях 69069 и 71365. Кроме значений М=2**N широко используются выборы простых М, например, простого числа М=2**31-1, известного со времен Эйлера (Это число "плохо" тем, что в двоичной записи содержит лишь единицы. Однако оно может использоваться, если вычисления выполняются в десятичной арифметике.)
     Однако обратимся к фактам. В 1948 году фон Нейман предложил генератор псевдослучайных чисел, который через год подвергся резкой критике. В 1972 году в пакете прикладных программ IBM 360 на языке Фортран появилась программа RANDU, а в 1977-м Форсайт показал, что тройки ее последовательных значений лежат на 15 параллельных плоскостях. В 1979 году Скраг опубликовал компактный алгоритм генерации псевдослучайных чисел, а через год Плаке доказал его статистическую неудовлетворительность. Этому списку нет конца: более месяца работы автор потерял из-за некомпетентно сделанного генератора случайных чисел в системе М86 ЕС 1840, который использовался для моделирования сложных процессов. В журнале "Наука и жизнь" за октябрь 1986 года М. Максимов поместил статью-предупреждение под названием "Случайны ли случайные числа?", где совершенно справедливо отметил негодность используемых генераторов. По его данным, генератор FRAN у БК-0010 имеет длину периода всего лишь 2**15, а бьет рекорды бессмыслицы генератор Бейсика ДВК, который имеет период лишь 8192 и последовательные тройки его "случайных" чисел, функционально связанные уравнением Gn-6*G(n+1)+9*G(n+2), равны целым числам. Не иначе, как от отчаяния, рад исследователей одновременно использует два и даже три разных генератора, смешивая их значения. Если разные генераторы независимы, то сумма их последовательностей обладает дисперсией, равной сумме дисперсий отдельных последовательностей. Иначе говоря, случайность рядов возрастает при их суммировании. Это дает слабую надежду на возможность конструирования генератора с приемлемыми для криптографии свойствами: случайностью и большой длиной периода.
     Заметим, что некоторые "запутывания" последовательностей псевдослучайных чисел лишь ухудшают их статистические свойства. Далеко не всегда сложность формирования рада порождает случайность распределения. Например, генератор случайных чисел из игровой программы неизвестного происхождения для программируемого калькулятора использовал в качестве случайных чисел первые цифры последовательности {83**K}. Легко доказывается, что такой генератор будет на 14% чаще давать цифру 7, чем 8. В литературе приводится громадное количество формул для генерации случайных рядов, и автору довелось испытать их не один десяток, но, не то чтобы хорошей, а даже удовлетворительной по статистическим свойствам найти не удалось. Сдается, что часть подобных способов генерации случайных рядов предложена в качестве шутки криптографами, желающими упростить себе работу. Однако в системах программирования обычно используют все же конгруэнтные генераторы по алгоритму, предложенному Национальным бюро стандартов США, который, имея длину периода 2**24, обеспечивает очень неплохие статистические свойства. К сожалению, длина его периода для криптографии слишком мала и, кроме того, было доказано, что последовательности, генерируемые конгруэнтными генераторами, не являются криптографически стойкими. Если дана часть такой последовательности достаточной длины, то ее параметры могут быть восстановлены.
     Интересный класс генераторов случайных чисел неоднократно предлагался многими специалистами целочисленной арифметике, в частности Джорджем Марсалиа и Арифом Зейманом. Генераторы этого типа основаны на использовании последовательностей Фибоначчи. Классический пример такой последовательности {0, 1, 1, 2, 3, 5, 8, 13, 21, 34...}. За исключением первых двух ее членов, каждый последующий член равен сумме двух предшествующих. Если брать только последнюю цифру каждого числа в последовательности, то получится последовательность чисел {0, 1, 1, 2, 5, 8, 3, 1, 4, 5, 9, 4...} Если эта последовательность применяется для начального заполнения массива большой длины, то, используя этот массив, можно создать генератор случайных чисел Фибоначчи с запаздыванием, где складываются не соседние, а удаленные числа. Марсалиа и Зейман предложили ввести в схему Фибоначчи "бит переноса", который может иметь начальное значение 0 или 1. Построенный на этой основе генератор "сложения с переносом" приобретает интересные свойства, на их основании можно создавать последовательности, период которых значительно больше, чем у применяемых в настоящее время конгруэнтных генераторов. По образному выражению Марсалиа, генераторы этого класса можно рассматривать как усилители случайности. "Вы берете случайное за- полнение длиной в несколько тысяч бит и генерируете длинные последовательности случайных чисел". Однако большой период сам по себе еще не является достаточным условием. Слабые места гамм бывает трудно обнаружить и аналитику требуется применять утонченные методы анализа последовательностей, чтобы выделить определенные закономерности, которые скрыты в большом массиве цифр.
     Последнее, на чем следует остановить внимание, это особенности использования стандартных генераторов случайных чисел в различных языках программирования, если уж ими пришлось воспользоваться. Так отметим, что известный в Бейсике оператор RANDOMIZE (Он такой же, как и во всех других языках программирования. например. Pascal или C++.) , применяемый для начальной установки генератора случайных чисел, может ошарашить пользователя. Ибо после выполнения:

     RANDOMIZE 231
     х = RND
     RANDOMIZE 231
     у = RND

необязательно получится х=у, потому что оператор RANDOMIZE переустанавливает не всё случайное число из 3 байт, а лишь его часть из 2 байт. Точная установка может быть произведена функцией RND, как x=RND(-231). Не нужно думать, что эта проблема встречается лишь при программировании на Бейсике. Паскаль и Си всех фирм дают те же результаты. А вот увеличение периода последовательности сделать несколько сложнее. Для этого можно использовать функцию:

     FUNCTION Rand (х, у)
     х = RND (-х)
     у = RND (-у): IF у = О THEN у = RND (-у)
     Rand = (х+у) MOD 1
     END FUNCTION

Период такой функции равен 2**24-(2**24-1), но вот свойства его ряда не обязаны при любых исходных х и у быть такими же хорошими, как у RND.
     При создании с помощью встроенного генератора случайных чисел объектов, имеющих число состояний большее, чем у генератора, его приходится использовать несколько раз, переустанавливая по заранее заданному ключу. Например, следующий фрагмент программы:

     FOR i = 1 ТО 5
     х = RND (-gamma (i))
     FOR j = 0 TO 32
     SWAP map (j), map (32 * RND)
     NEXT: NEXT

производит случайную перестановку 33 элементов массива map, которая может быть сделана примерно 2**118 способами, и при длине периода генератора в 2**24, его нужно запустить не менее 5 раз, чтобы реализовать все варианты перестановки.

Рекуррентные двоичные последовательности

Изложим теперь способ построения последовательностей случайных чисел с гарантировано хорошими для криптографии свойствами. Читатели, не интересующиеся практикой криптографии или стохастического моделирования, могут спокойно опустить эту подглавку и перейти к следующей. Для тех, кто решит все-таки изучить ее, сделаем несколько замечаний. Автор не рассчитывал на серьезную математическую подготовку читателей - в подавляющем большинстве институтов и университетов страны курс теории конечных полей если и читается, то лишь факультативно. Поэтому систематичности и строгости изложения ожидать не приходится. Цель - освоение принципов программной реализации хороших рядов псевдослучайных чисел, что достигается приведением аналогов и разбором конкретных примеров. Тем не менее, программисты по-видимому будут удовлетворены приведенной детальностью изложения, а ценители математической строгости могут уточнить неясные для себя вопросы, обратившись к книге "Современная прикладная алгебра" Г. Биркгоф и Т. Барти (Москва, "Мир", 1976) или же анналам математики Бурбаки.
     По определению сложности закона генерации ряда чисел, если сложность последовательности {Gi} равна m, то любые m+1 последовательные ее значения зависимы. Если же эта зависимость представима линейной, то получается рекуррентное соотношение следующего вида:

         C0*Gi+C1*G(i-1)+...+Cm*G(i-m)=0

При этом C0 и Cm обязаны быть неравными нулю. По начальным данным Go, Gi, ... Gm-1 длины m строится бесконечная последовательность. Каждый ее последующий член определяется из m предыдущих. Последовательности такого вида легко реализуются на ЭВМ. Особенно простой вид их реализации получается когда все с, и д, принимают лишь значения 0 и 1, что соответствует значениям отдельных бит. На множестве таких чисел определены алгебраические операции сложения и умножения, то есть имеется поле из двух элементов. Поля указанного типа с конечным числом элементов называются по фамилии их первооткрывателя Эвариста Галуа и для поля с n элементами обозначаются как GF(n), где GF - аббревиатура от слов Galois Field (поле Галуа). Они существуют, лишь когда n равно простому числу, и тогда называются простыми, или степени простого числа, и тогда называются расширениями соответствующего простого поля. Так, поле из 2 элементов GF(2) - простое поле порядка 2, a GF(4) - его расширение. При вычислениях на ЭВМ используются поля Галуа из элементов {0, 1}, обозначаемые GF(2**N) и соответствующие строкам данных длиной в N бит. Таблицы арифметических операций в GF(2) будут следующими:
  + 0 1 * 0 1
  0 0 1 0 0 0
  1 1 0 1 0 1

На ЭВМ такому сложению соответствует операция XOR, уже известная нам по машинному шифру ручной замены, а умножению - операция AND. Это поле обладает замечательным свойством - операция вычитания в нем тождественна операции сложения и в записях не употребляется. Поля бит, как байт или слово, можно представить векторами, каждая компонента которых принимает значения из GF(2). Такие вектора удобно рассматривать как многочлены. Байт, например, можно представить многочленом седьмой степени, каждый член которого соответствует одному ненулевому биту в байте:

         (10010101 )=x**7+x**4+x**2+1

Представление битовых полей данных в ЭВМ многочленами упрощает рассмотрение операции их сдвига. Сдвигу данных влево на один бит соответствует умножение многочлена на х, а вправо - деление на х.
     Совокупность всех многочленов степени меньше n представляет собой векторное пространство размерности n над GF(2), так как многочлены можно складывать, вычитать или умножать на константу.
     Теперь, фиксировав неразрешимый над GF(2) многочлен f(x) степени n+1, рассмотрим остатки от деления на него других многочленов. Их множество совпадает с множеством многочленов степени не больше n. Например, f(x)=x**2+x+1 над GF(2) неприводим, потому что f(0)=1 и f(1)=1. Для него остатками будут элементы {0, 1, х, х+1}. На множестве этих остатков можно задать арифметические операции сложения и умножения, рассматривая остатки от деления на многочлен f(x). Легко проверить, что определенные таким образом сложение и умножение обладают всеми необходимыми свойствами обычных арифметических операций: коммутативностью, ассоциативностью и дистрибутивностью. Результат сложения или умножения над двумя элементами из приведенного множества тоже ему принадлежит. И, наконец, в множестве определены О и 1 так, что для произвольного элемента х имеем 0+х=х и 1*х=х. Таким образом, получено GF(4) - расширение поля GF(2) присоединением к нему остатков от деления произвольных многочленов на неприводимый над ним многочлен х**2+х+1. Выбирая разные неприводимые многочлены, можно получать разные расширения GF(2).
     Из школьного курса математики известно, что над полем комплексных чисел любой многочлен разложим на линейные множители или, что то же самое, имеет столько корней, какова его степень. Однако это не так для других полей - в полях действительных или рациональных чисел многочлен х**2+х+1 корней не имеет и не может быть разложен на линейные множители. Аналогично, в поле GF(2) многочлен х**2+х+1 тоже не имеет корней, что просто проверить непосредственно: 1*1+1+1=1 и 0*0+0+1 =1. Тем не менее у f(x)=x**2+x+1 в поле Галуа GF(4) существует корень х, соответствующий многочлену х из таблиц выше, так как f(x)= х**2 +х+1 по модулю f(x).
     Элементы поля Галуа GF(2**N) относительно умножения образуют абелеву группу, то есть на этом множестве для любых его элементов х, у и z выполняются аксиомы:
         x*y=y*x*x*(y*z)=(x*y)*zx*1=1*xx*1/x=1/x*x=1

Если рассмотреть степени произвольного элемента х из GF(2**N), то обнаружим, что они образуют абелеву подгруппу. Такие подгруппы принято именовать циклическими. Число элементов этой подгруппы называют порядком элемента х. Из такого определения порядка следует, что если многочлен р(х) принадлежит GF(2**N) и имеет порядок k, то р(х)**K=1. Разберем теперь несколько важных свойств, касающихся порядка элементов в GF(2 ), изложенных в виде теорем.

ТЕОРЕМА 1. Если f(x) - неприводимый многочлен над GF(2), то выполняется равенство f(x**2)=f(x)**2.

Это равенство доказывается тем, что все попарные произведения в f(x)**2 равны нулю над GF(2). Например, (х**2+х+1)**2=х**4+x**2+1.

ТЕОРЕМА 2. Если неприводимый многочлен f(x) над GF(2**N) имеет порядок k, то k делит 2**N-1.

Это следует из теоремы Лагранжа, утверждающей, что число элементов группы G делится на число элементов любой своей подгруппы Н. Подгруппа Н расслаивает группу G на смежные классы элементов, не пересекающиеся меж собой. Так, элементы х и у считаются принадлежащими одному классу по подгруппе Н, если у/х принадлежит Н. Поскольку классы не пересекаются и содержат одинаковое число элементов, то число элементов группы делится на число элементов в подгруппе. Из теоремы 2 вытекает важное следствие, что если 2**N-1 простое число, то мультипликативная группа GF(2**N) циклическая и порядок любого ее неединичного элемента тоже равен 2**N-1.

ТЕОРЕМА 3. Любой многочлен р(х) из GF(2**N) удовлетворяет уравнению х**k=х, где К=2**N.

Порядок ненулевого р(х) делит 2**N-1 и имеем х**(K-1)=1, а так как для р(х)=0 имеем уравнение х=0, то в результате любой р(х) удовлетворяет уравнению х**K=х.
     Отметим особое положение уравнения х**K=х, где К=2**N , поскольку его корни порождают все элементы поля GF(2 ). Так как уравнение х**(K-1)-х=0 имеет корнем х=0, то, разделив его на х, получаем уравнение х**(K-1)-1=0, все корни которого ненулевые. Производная уравнения имеет вид (x**k-x)=2*N*x**(n-1)-1=1, и у нее нет общих корней с исходным уравнением. Следовательно, в этом уравнении все корни различны, и так как их число равно 2**n, то они совпадают со всеми элементами поля GF(2).

ТЕОРЕМА 4. Многочлен х**k-1 делит х**M-1 в том и только в том случае, если k делит M.

Это вытекает из того факта, что если все корни х**k-1 являются также и корнями х**m-1, то m должно делиться на k.
     Теперь обратимся к использованию полиномов в практике вычислений на ЭВМ, широко распространено и легко реализуется программно. Рассмотрим электронную схему деления данных в поле из N бит на полином:
         f(x) = C0+C1*x+...+ Cn*х**N

На схеме биты показаны квадратными клетками. Шаг процедуры деления состоит в сдвиге данных влево на один бит и дозаписи освобождающегося крайнего правого бита суммой значений бит по модулю 2, умноженных на соответствующие коэффициенты многочлена f(x), то есть не все ячейки сдвига соединены с относящимися к ним сумматорами. В результате последовательного выполнения отдельных шагов деления исходных данных а(х), справа в данные дозаписывается последовательность s(x), которая выражается формулой:

         s(x)=a(x)/f(x)=S0+S1*x+S2*x**2+...

справедливость которой просто проверить, приравнивая коэффициенты при х в уравнении s(x)*f(x)=a(x). Таким образом, получена связь между линейными рекуррентными последовательностями, делением многочленов над GF(2) и алгоритмом реализации деления на ЭВМ. Например, пусть имеем над GF(2) рекуррентное соотношение Gi+G(i-1)+G(i-3)=0. Многочлен, который ему отвечает, равен 1+х+х**3. Это неприводимый многочлен над GF(2), который порождает расширение GF(8). Мультипликативная группа в GF(8) имеет 7 элементов и циклична в силу простоты числа 7. Электронная схема этого рекуррентного генератора представляется так:
    3     2          1
------>------+++-------┐
│                LT-          │
│ ---T----T--+--┐      │
L--+--+----+-----<------

Он будет генерировать следующие последовательности при разных начальных данных (периоды в скобках):
000 => (0)
001 => (0011101)
010 => (0100111)
O11 => (0111010)
100 => (1001110)
101 => (1010011)
110 => (1101001)
111 => (1110100)

Рассмотрим теперь программную процедуру, реализующую деление на примитивный неприводимый многочлен х**3+х+1 в поле Галуа GF(8), представленную короткой программой на языке Бейсик. Переменные в ней рассматриваются как целые числа.

     'программа деления на многочлен х**З+х+1
     DEFINT A-Z
     n = 1
     DO
     m = О

     '-----------расчет бита переноса
     IF n AND 2^2 THEN m = m+1
     IF n AND 2^0 THEN m = m + 1
     n = 2 * (n AND (2^2-1)) OR (m AND 1)
     LOOP UNTIL n = 1
     END

В этой программе сдвиг влево заменен операцией умножения на 2, а бит переноса рассчитывается тестированием бит, соответствующих ненулевым коэффициентам многочлена. В соответствии с теорией период такого генератора составляет 7 и включает в себя все ненулевые числа из 3 бит. Из этой программы видно, что реализация процедуры деления многочленов на ЭВМ или, что то же самое, генерации рекуррентных последовательностей проста.
     Особый интерес для генерации длинных последовательностей представляют элементы GF(2**N), имеющие порядок равный 2**N-1. Они называются примитивными, потому что, возводя их в степень, можно получить весь набор ненулевых элементов поля Галуа. Если 2**N-1 простое число, то все элементы мультипликативной группы (кроме 1, конечно!) примитивны. Однако такие числа, называемые простыми числами Мерсенна, расположены редко. Они с давних пор слыли чемпионами среди простых чисел по своему размеру. Во время Эйлера наибольшим простым числом было:

     2**31-1 =2147483647,

или пятое, а через сто лет в 1883 году русский самоучка Первушин нашел уже шестое число Мерсенна, равное:

     2**61-1 =2305843009213693951.

Самое большое известное сейчас простое число - так называемое 32-е число Мерсенна, найденное лишь в 1992 году. Его запись содержит 227832 десятичные цифры или примерно сто страниц текста.
     Нахождение неприводимых многочленов для генерации гаммы представляет сложную вычислительную задачу. Неприводимые многочлены, с помощью которых фактически строятся поля Галуа для криптографии, по своей роли напоминают простые числа в натуральном ряду. Нахождение их, как и простых чисел, производится подбором и требует больших затрат вычислительных мощностей сверхбыстродействующих ЭВМ. Поэтому в открытых публикациях данные о неприводимых многочленах очень больших степеней просто отсутствуют. Отметим, что всегда с(n)=с(0)=1, так как используется неприводимый многочлен степени п. Сложность програ1ммной реализации генератора существенно зависит от числа ненулевых коэффициентов неприводимого многочлена f(x): чем их меньше, тем проще и быстрее программа. Заметим, что в этом случае и криптоаналитикам проще жить: известно, что у них есть секретные теоремы, касающиеся трехчленов. Поэтому практически применяются многочлены с довольно большим числом ненулевых членов. Четного числа ненулевых членов быть не может, так как в этом случае корнем будет х=1 и многочлен можно разделить на х+1, а это доказывает приводимость.

Последовательности максимальной длины

Естественно, что желательно получить как можно более длинный период последовательности от многочлена заданной степени. Ответ на вопрос, каков максимальный период, получаемый от последовательности, мы уже имеем - не больше 2**N-1 в GF(2^). Можно было бы и поверить в существование примитивных многочленов, порождающих такие последовательности. Тем не менее, желательно иметь процедуру, позволяющую находить такие многочлены пусть не практически, то хоть теоретически, если они только существуют. Поэтому приведем теорему:

ТЕОРЕМА 5. Если многочлен f(x) степени n делит многочлен х**k-1 лишь при k>2**n-1, то период его любой ненулевой последовательности равен 2**n-1.

Пусть f(x) делит многочлен х**k-1 при k=2**n-1, тогда длина периода любой, порожденной им ненулевой последовательности делит 2**N-1. Если 2**N-1 простое число, то последовательность максимального периода обеспечена. Иначе допустим, что длина периода некоторой последовательности равна k<2**N-l. В этом случае f(x) делит многочлен х**N-1 вопреки условию, следовательно, всегда выполняется строгое равенство k=2**N-1.
     Например, многочлен х**4+х+1 делит х*15+1, но не делит ни один многочлен х**K-1 при k<15, то есть является многочленом максимального периода 15. Этому многочлену соответствует рекуррентное соотношение:
         Gi+G(i-1)+G(i-4)=0

При разных его начальных значениях генерируется такие последовательности:
     0001=>(000111101011001), 0010=> (001000111101011),
     0011=> (001111010110010) и т. д.
     Все они в соответствии с теорией имеют длину периода 15 и отличаются друг от друга лишь сдвигом. Из этого вытекает очень важное для криптографии свойство последовательностей максимального периода, что их одиночный период состоит из всех разных неповторяющихся ненулевых блоков длины n, что гарантирует хорошие статистические качества получаемых псевдослучайных чисел. В частности, такие последовательности не имеют скрытой периодичности, на чем следует остановиться несколько подробнее. Иногда последовательности такого вида с максимальным периодом называют последовательностями Де Брюйна в честь исследователя, подробно описавшего в открытой научной печати их свойства.

ТЕОРЕМА 6. Если S - последовательность максимального периода, то она имеет равномерный спектр.

Если S - последовательность максимального периода, то она состоит из 2**(N-1)-1 нулей и 2**(N-1) единиц. Последовательность {(Si*Si+j)} при любом j>0 представляет собой сдвиг исходной последовательности, а при j=0 состоит Из 2**N-1 единиц. Таким образом, автокорреляционная функция R равна: 2**N-1 при j=0 и 0 при j>0. А, поскольку Rj представляет собой дельта-функцию, то ее спектр равномерный и последовательность этим похожа на случайный белый шум.
     Теперь мы знаем, что грех искать лучший материал для псевдослучайных последовательностей, чем рекуррентные последовательности описанного вида. Они обладают исключительным набором свойств: предельно большая длина периода, отсутствие скрытых периодичностей, статистическая равномерность, что делает их незаменимыми в криптографии. Однако читатель, искушенный в математике, скорее будет огорчен, чем обрадован предыдущим изложением. И вот почему: мы рассуждали о замечательных свойствах последовательностей, существование которых не доказано. Придется лишь поверить в существование неприводимых многочленов любой степени и, значит, соответствующих им последовательностей, потому что это дается в самом красивом и, наверное, самом сложном из разделов чистой математики теории Галуа. Вот что о ее авторе сообщает Большой энциклопедический словарь:

ГАЛУА (Galois) Эварист (1811-32), франц. математик. Тр. по теории алгебр, ур-ний положили начало развитию современной алгебры. С идеями Г. связаны такие ее важнейшие понятия, как группа, поле и др. Науч. наследие Г. - небольшое число весьма кратко написанных работ, из-за новизны идей не понятых при жизни Г. Опубл. в 1846 Ж. Лиувиллем.

Нельзя не отметить, что теория Галуа представляет собой жемчужину современной математики. Согласно преданию, Эварист Галуа в ночь на 30 мая 1832 года перед дуэлью вместе с письмом другу написал на 41 странице работу, обессмертившую его имя и получившую название теории Галуа. Одна бессонная ночь двадцатилетнего французского гения навеки обрекла миллионы студентов на хроническую бессонницу перед экзаменом по этому предмету, и многие из них будут сетовать на черствость подруги Эвариста, оставившей его в ночь перед дуэлью безутешным, хотя стрелялся он из-за нее. Злые языки утверждают, что разработанная им теория представляет собой акт мести системе высшего образования за то, что его дважды срезали на вступительном экзамене по математике в Политехнической школе. Для нас важно лишь то, что этот гениальный юноша создал теорию, доказывающую существование многочленов, дающих последовательности максимального периода сколь угодно большой степени. Таким образом, в существование их поверить можно. А вот нахождение таких многочленов до сих пор покрыто мраком. Без сомнения, криптографические службы высокоразвитых стран работали и работают над поиском многочленов как можно более высокой степени, но свои последние результаты они почти не освещают в открытой печати. Хуже всего дела идут в России, где не было ни одной открытой публикации отечественных полиномов высокой степени пригодных для помехоустойчивого кодирования и криптографии и колоссальные средства налогоплательщиков оказались, по образному выражению Балоуна из "Бравого солдата Швейка", в сортире. Поэтому приведем старые и открытые данные из демократических стран. В следующей таблице приведены номера 4 бит, которые можно использовать при генерации последовательностей максимальной длины для случайных чисел длиной 8, 16, 24 и 32 бита, то есть для целого числа байт в памяти ЭВМ. Эти биты задают коэффициенты неприводимых многочленов ненулевой степени над GF(2).
  n   биты переноca  
  8 1 2 3 8
  16 0 2 11 16
  24 0 1 6 24
  32 0 1 21 32

Известен неприводимый многочлен x**61+x**3+1, a по многочленам больших степеней в литературе данных найти не удалось. Поэтому естественно возникает вопрос: как ведут себя последовательности, порожденные произведением взаимно простых многочленов. Ответ на него дает следующая теорема, доказательство которой мы опустим, так как оно в нашем контексте неинтересно.

ТЕОРЕМА 7. Если f(x) и h(x) - взаимно простые многочлены, то тогда многочлен f(x)*h(x) порождает последовательности, являющихся суммами последовательностей для f(x) и h(x).

Итак, период последовательности от f(x)*h(x) равен произведению периодов соответствующих последовательностей f(x) и h(x). Однако причин для радости мало, так как сюда же входят и последовательности периода 1 для нулевых данных. Приведем пример. Многочлены f(x)=x**3+x+1 и h(x)=x**2+x+1 неприводимы и взаимно просты. В зависимости от начальных данных многочлен f(x) имеет одну последовательность периода 1 и 7 последовательностей периода 7. Многочлен h(x) имеет одну последовательность периода 1 и 3 последовательности длины 3, а многочлен f(x)*h(x) имеет такой спектр периодов:
  Период число последовательностей
  1*1=1 1*1=1
  1*3=3 1*3=3
  1*7=7 1*7=7
  3*7=21 3*7=21

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

взаи

мная

прос

тота

пери

одов      
      17 18 20 21 22 23 25 28 29 31
17 2 17 - + + + + + + + + +
18 6 18 + - - - - + + - + +
20 2 20 + - - + - + - - + +
21 1 21 + - + - + + + - + +
22 0 22 + - - + - + + - + +
23 4 23 + + + + + - + + + +
25 2 25 + + - + + + - + + +
28 2 28 + - - - - + + - + +
29 1 29 + + + + + + + + - +
31 2 31 + + + + + + + + + -

В таблице знаком "+" указана взаимная простота периодов этих рядов, а знаком "-" наличие общих делителей. Так, если взять 3 генератора с длинами чисел 28, 29 и 31 бит, то при одновременной их работе период будет длиной около 10**26 , что вполне устроит достаточно серьезную криптографическую систему. Начальное заполнение всех рядов должно быть при этом опять таки ненулевым. Такие реализации генераторов гаммы выглядят некрасиво. Однако они гораздо более стойки криптологически, так как в их многочленах много коэффициентов, которые при взламывании шифра криптоаналитиком ему придется подбирать. Кроме того, вовсе не обязательно просто складывать эти последовательности, но можно одной последовательностью шифровать другую. Так, если у' и у" - гаммы с разными периодами, а Г" и Г" шифры типа DES, образуемые ими, то гамма у=Г"у'+Г'у" будет очень длинной и весьма стойкой к взлому.

Анализ псевдослучайных последовательностей

Пусть известен участок ключа {g1, g2, ... G(2n+2)), полученного с помощью рекуррентного соотношения длиной n. Здесь Gi и другие переменные рассматриваются как биты, то есть над полем GF(2). В этом случае есть возможность восстановить весь ключ, реконструировав рекуррентное соотношение. Рекуррентное соотношение:

         Cn*Gi + C(n-1)G(i+1) + ... + C0*G(i+n) = О

выполняется при i=1, 2, ... n+1. Поэтому имеем систему из n+1 линейных уравнений с n+1 неизвестными, при решении которой получаем коэффициенты использованного рекуррентного соотношения Ci, позволяющие продлить известный участок ключа вперед или назад на любую длину. Фактически неизвестных коэффициентов только n-1, так как Co=Cn=1. Есть ряд алгоритмов решения этой системы, но и обычный метод исключения переменных тоже хорош, так как при вычислениях в конечных полях ошибок округления нет, а полученная система линейных уравнений не вырождена. Допустим имеется участок гаммы ...10101111... из 8 бит. Степень больше 4 мы реконструировать не сможем, а меньшая недопустима, так как подряд встречаются 4 единицы. Поэтому, составив систему из 4 уравнений:

         С4+С2=1 C3+С1=1 C4+C2+C1=l C3+C2+C1=1

и решая ее, получаем С4=1, C3=1, C2=0 и C1=0, что отвечает многочлену х**4+х**3+1. Таким образом, получаем еще один довод в пользу дополнительного усиления шифра многоалфавитной замены дополнительной перестановкой, потому что иначе участок последовательности можно попытаться вскрыть, отгадывая текст исходного сообщения. Для длины рекуррентного соотношения n=60 и кодировании символов группами по 5 бит достаточно отгадать 24 символа, чтобы свести задачу к подбору перестановки. На первый взгляд кажется, что невозможно отгадать столь длинный участок текста. Однако большую помощь в этом может оказать ориентировочное знание содержания исходного сообщения, в котором могут встречаться устойчивые словосочетания большой длины, напри- мер, "государства среднеазиатского региона". Эта область достаточно сложна и деликатна, чтобы углубляться в нее дальше. Отметим лишь достоинство блочных шифров, заключающееся в том, что желающим их расколоть криптоаналитикам при достаточной длине блока ничего не остается, как вести атаку прямым подбором ключа, так как надежда отгадать кусок исходного текста большой длины весьма химерична. Кроме того, так как избыточность исходного текста существенно ослабляет шифр, то нужно перед шифрованием преобразовать его, используя оптимальный код, уменьшающий избыточность. Естественно, что для этого непригодны стандартные программы сжатия и архивации как ARC, ZIP и им подобные, так как создают в файле заголовок с множеством полей, содержимое которых легко предсказать. Необходимо пользоваться собственным сжатием, согласованным с программой шифрования, как это сделано в системе PCSecure.

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

Для проверки криптографической стойкости последовательностей гаммы применяются различные методы криптоанализа. При этом считается, что раскрытие гаммы равносильно раскрытию шифра методом криптоанализа с известным открытым текстом. Одним из таких методов является метод анализа корреляционных свойств гаммы, предложенный Зигентхальтером. Во многих генераторах окончательно сформированная гамма получается посредством суммирования по модулю 2 нескольких выходных последовательностей. При этом между гаммой и каждой из суммируемых последовательностей может существовать определенная статистическая зависимость. Зигентхальтер разработал общий критерий идентификации ключа, используемый для анализа гаммы по методу "разделяй и властвуй". Его анализ выделяет отдельные последовательности в гамме полным перебором. Это показывает, что разработчику криптографической системы и криптоаналитику необходимо обращать внимание на статистические зависимости различных составных частей генератора гаммы.

Другой, алгебраический метод, предложенный Зенгом, Янгом и Рао, использует скрытые линейности генераторов гаммы. Он, как и пример выше, основан на точной оценке непротиворечивости системы линейных алгебраических уравнений со случайными коэффициентами. Этот метод пытается по отрезку гаммы выделить подключ из общего ключа и составить систему линейных уравнений такую, что коэффициенты матрицы зависят только от под ключа. Если подключ выделен правильно, то соответствующая система уравнений с большой вероятностью будет удовлетворять требованию нспротиворечивости. Далее по оставшейся части последовательности можно найти весь ключ. Для определения подключа применим метод полного перебора подключей. При этом непротиворечивость системы линейных уравнений служит критерием идентификации ключа. Успешный результат этого метода означает, что лишь подключ определяет стойкость, а остальная часть ключа избыточна. Так как оба рассмотренных метода анализа требуют применения полного перебора для поиска ключа, их можно считать способами обнаружения избыточности ключей генераторов гаммы, а не практическими алгоритмами раскрытия текста шифра.
     Чтобы сбить с толку криптоаналитиков. многие генераторы гаммы основаны на комбинации двух или более генераторов с использованием нелинейных логических функций. Один из наиболее простых способов комбинации двух сдвиговых регистров с линейными обратными связями состоит в применении переключателя с отношением переключаемых разрядов 2:1 и носит имя генератора Джеффи. Слабое место такого генератора связано с тем, что такая система может быть легко раскрыта методом криптоанализа с использованием так называемых линейных синдромов. При современном состоянии техники сдвиговых регистров с линейными обратными связями выходная последовательность может быть раскрыта по перехваченному сегменту гаммы длиной в строку текста. Известен еще один генератор этого типа - генератор Дженнинга - тоже использующий переключатель для объединения двух регистров с линейными обратными связями. И он довольно несложно вскрывается криптоаналитиками. Таким образом, хотя множество возможных нелинейных комбинаций последовательностей, образующих гамму, очень большое, вклад их в криптографическую стойкость системы в целом незначителен и необходимо применять перестановки, как это сделано в DES.
     Следует иметь в виду, что большая линейная сложность генераторов на сдвиговых регистрах является лишь одним из требований, которым они должны удовлетворять. Известно много хороших методов, гарантирующих большой нижний предел этой сложности. Многие из опубликованных в последнее время результатов исследований по криптографии необоснованно обращают внимание только на проблемы большого периода генерируемых последовательностей и большой линейной сложности генераторов. Криптологи же считают, что обнаружение и устранение статистических и скрытых систематических зависимостей, особенно линейных, имеет важнейшее значение при проектировании конкретной криптографической системы, так как любые зависимости в гамме приводят к избыточности ключа.
     Теперь приведу вольный пересказ старой газетной статьи. Шпион несколько раз прикурил, фотографируя спрятанным в зажигалке фотоаппаратом открытую шифровальную машину с разных сторон. Затем, введя ключ из одних пробелов, он несколько сот раз нажал букву А. Полученная перфолента шифровки была после внимательного рассматривания туго свернута в рулон и небрежно отброшена, но в конце концов незаметно очутилась в его кармане. Теперь вопрос: почему шпиона заинтересовала шифровка дурацкого текста из одной повторяющейся буквы? Надеюсь, что читатели смогут теперь ответить на этот вопрос точно и обстоятельно.

ОБЩИЕ ПРОБЛЕМЫ ЗАЩИТЫ ИНФОРМАЦИИ


         Верьте брахману больше, чем
         змее, а змее больше чем шлюхе,
         а шлюхе больше, чем афганцу...

             Редьярд Киплинг. "Ким "

Потребность в защите информации возникает в связи с необходимостью обеспечить секретность исследований в стратегических областях, правильно распределять информацию о промышленных разработках и регулировать информацию о личности в современном обществе. Начало восьмидесятых годов рассматривается как начальный пункт, когда социальные протесты в демократических странах помогли сплестись глобальной сети хакеров. Политический флирт на почве нарушения прав человека породил тьму организаций хакеров в массе стран мира почти одновременно. Менее чем за год эти группы узнали прелесть сотрудничества. Их члены свободно обменивались идеями через национальные границы, часто по украденным паролям, дающим бесплатный доступ к телефонной сети. Несколько причин, объединившись вместе, сделали международный компьютерный разбой легким и действенным: новые технологии, создавшие более мощные и дешевые компьютеры, развитие коммуникаций для связи и международный характер стандартов, установленных транснациональными корпорациями.
     Проблемы защиты данных наиболее остро проявляются при использовании ЭВМ для обработки и хранения информации секретного и частного характера. В этой главе на элементарном уровне будут разобраны возможные угрозы данным в ЭВМ, уровни защиты данных в комплексе мер по обеспечению их секретности и оценки эффективности разных средств защиты. Материал, изложенный здесь необходим для ознакомления всем пользователям ЭВМ, программистам и администраторам, отвечающим за функционирование вычислительных систем для того, чтобы оценить возможный реальный ущерб от несанкционированного доступа к их конфиденциальным данным и принять адекватные меры по их защите. Без установления общего комплекса мер по защите данных их шифрование будет пустым занятием. Рассмотрим сначала, какие же угрозы могут возникнуть для информации, хранящейся в компьютере и какие убытки могут воз- никнуть от несанкционированного ее использования любопытными и злоумышленниками.

Угрозы данным

В принципе есть лишь два вида угрозы: раскрытие и видоизменение данных. Раскрытие данных предполагает, что кому-то случайно или после целенаправленных действий стал известен смысл информации. Этот вид нарушения встречается наиболее часто. Последствия могут быть самые разные. Если похищен текст книги справочника, на которую потрачены месяцы работы десятков людей, то для коллектива авторов это катастрофа и потери могут выражаться в тысячах долларов. Однако если книга уже издана, то достаточно лишь слегка пожурить похитителя и рассказать о случившемся в отделе новостей газеты или TV, похититель может сделать книге великолепную рекламу. Очень важную информацию, тщательно оберегаемую от раскрытия, представляют сведения о людях: истории болезни, письма, состояния счетов в банках. Однако, по мнению большого числа специалистов, угрозы личности с введением компьютеров остались на том же уровне и в том же состоянии, что и до обширного использования ЭВМ.

Рассмотрим виды потерь, возникающие от раскрытия информации. Обычно данные о людях наиболее важны для них самих, но, как бы это не описывали в шпионских фильмах, мало что значат для похитителей. Иногда личные данные могут использоваться для компрометации не только отдельных людей, но целых организаций, например, если выяснится скрываемая прежняя судимость за растрату директора коммерческого банка. Но тот, кто компрометирует, не имея твердой моральной основы для этого, в большинстве случаев теряет больше самого компрометируемого. Лишь малая кучка профессиональных негодяев из адвокатов и журналистов, которым уже нет дела до своего морального облика, наживается, занимаясь компрометацией. Тем не менее информация о людях ценна сама по себе, основной убыток от ее разглашения - личное несчастье человека. Другое дело - раскрытие стратегической управляющей информации. Если вскрыт долгосрочный план развития производства или анализ конъюнктуры на рынке, то потери для держателя этой информации будут невелики, но для конкурентов такие сведения очень важны. Думается, что хотя несанкционированное чтение данных бывает довольно часто, но редко когда приносит существенный вред, так как часто делается без злого умысла - случайно или из любопытства.
     Искажения информации представляют существенно большую опасность. Во многих организациях жизненно важные данные хранятся в файлах: инвентарные описи, графики работ, списки заказов. Если такие данные будут искажены или стерты, то работа надолго парализуется. Самое опасное в этом то, что в примитивных криптографических системах необходимые для этого искажения могут быть сделаны и без знания ключа. Поэтому серьезные шифры должны гарантировать не только устойчивость их раскрытия, но и невозможность незаметной модификации одиночного бита. Владение ключом открывает полный доступ к данным - тогда можно скомпрометировать бухгалтерскую или конструкторскую систему, чуть исказив десяток-другой чисел, или удалить сведения о реальном движении товара, чтобы счет за него не был выставлен. Похоже, что наиболее уязвима для искажения информация экономического характера, где потери могут быть чрезвычайно велики. Самое первое компьютерное преступление в нашей стране было именно этого типа и принесло прямые убытки в десятки тысяч рублей, когда в конце семидесятых, один из прибалтийских банков обнаружил у себя недостачу наличных денег. Руководителям крупных научных и программных проектов следует помнить, что большую опасность для их данных представляют не конкуренты, а собственные сотрудники. По различнейшим причинам они могут уничтожить или исказить окончательный проект. Совсем неожиданный случай произошел в фирме IBM, которая привезла в Австралию заказанную ей программную систему. После предварительного успешного опробования состоялась демонстрация, на которой система оказалась неработоспособной. Расследование выяснило, что один программист во время опробования нашел в своей программе ошибку и тайно внес исправления в тщательно охраняемую копию системы. Он не знал, что ошибка уже корректировалась другими программами и получившаяся во время демонстрации двойная коррекция чуть не обошлась IBM в миллион долларов. Таким образом, критические данные обязательно должны храниться в шифрованном виде или хотя бы подтверждаться имитоприставкой иди цифровой подписью, чтобы исключить искажения.

Уровни защиты данных

Данные, к которым несанкционированный доступ может быть осуществлен, находятся под защитой. Для того, чтобы достичь их нужно последовательно пройти четыре препятствия, четыре уровня защиты. Рассмотрим их подробнее, в реалиях нашего общества.
     Первая преграда, встающая на пути человека, пытающегося осуществить несанкционированный доступ к информации, чисто правовая. Этот аспект защиты информации связан с соблюдением этических и юридических норм при передаче и обработке информации. В то же самое время законы, которые бы встали на защиту информации, находящейся в компьютере, у нас в стране только еще разрабатываются. Может преследоваться незаконное использование секретных данных или информации, составляющей объект авторского права, но никак не копирование чужих файлов. Поэтому этический момент в соблюдении защиты имеет чрезвычайно большое значение. Однако если в телехронике будет опубликовано состояние счетов наиболее состоятельных клиентов банка из правительства, которые стали известными после вскрытия пароля и копирования файлов неким хакером, то, думаете, кто-нибудь осудит его поступки кроме, может быть, пострадавших? Многие годы нам внушали, что информация - нематериальный объект, следовательно, цены у него нет. Кроме того, при копировании исходный файл не пропадает, так где прямой ущерб? В начале восьмидесятых годов был характерный случай: отделение банка хотело подать в суд на своего программиста, кото- рый, повздорив с руководством, стер с магнитных лент важные данные. В возбуждении дела было отказано - нет материального ущерба, вот если бы хоть одна лента была похищена, то другое дело.
     Государство слишком долго уверяло программистов, что их труд ничего не стоит. Нельзя ожидать, что годами практикуемая система ценностей будет быстро сменена вместе с правилами игры. Итак, первого барьера нет. Тем не менее, очень важно, чтобы среди людей, имеющих доступ к ЭВМ, был здоровый этический климат - ясно объясните им, что означает несанкционированное копирование Ваших данных!
     Большое препятствие организации борьбы с современным хакерством чинит международное разделение. Когда произошел взлом Сити-банка, то жертва находилась в США, сеть коммуникаций была финской, хакер жил в России и был арестован в Шотландии. Хакерство часто переходит национальные границы. Это международное измерение создает большие юридические препятствия эффективному противодействию хакерам. Внутренний компьютерный разбой не имеет таких проблем и с юридической точки зрения ничем не отличим от обычной преступности. Но если место компьютерного преступления за рубежом или подозреваемые действовали из другой страны, то традиционные концепции суверенитета строго ограничивают применимость национального уголовного права и юрисдикции.
     Второй барьер, препятствующий неправомочному использованию информации, административный. Руководители всех рангов с учетом правовых норм и социальных аспектов определяют, кто и какую информацию может собирать и хранить, устанавливают способы доступа к ней и ее распространения, права и обязанности лиц, их ответственность и процедуры выдачи разрешений на использование данных. Хотя многие решения руководства определяются внешними факторами, как политика, законы или постановления местных органов власти, но большинство проблем решается внутри организации именно так, как этого хочет администрация. Можно, например, приказом установить порядок обработки информации и списки допущенных к ней лиц, ввести системы защиты от подсматривания и сигнализацию, назначить сторожей и ответственных за безопасность. И до тех пор, пока не будут осуществлены действенные меры административной защиты ЭВМ, прочие меры будут, безусловно, неэффективны. Практическое осуществление административных мер связано главным образом с ограничением доступа людей к ЭВМ и обрабатываемой ей информации. "Не пущать!" - такая должна быть цель этих мер. Пусть организационные меры защиты информации по сравнению с этическими кажутся пресными и скучными, а по сравнению с программными и тех- ническими лишенными конкретности и малоэффективными. Однако они представляют собой мощный барьер на пути незаконного использования информации и основу для других уровней - скопировать данные из компьютера в банке существенно сложнее, чем если бы он находился в учебном институте.
     Из-за важности второго барьера защиты остановимся на проблемах его реализации несколько подробнее. Одна из основных причин, по которой трудно проводить в жизнь эффективные административные меры заключается в общественном мнении, что защита информации - новая и необычная задача. Однако защита данных была всегда и во все времена, только осуществлялась иначе, когда не было ЭВМ. Теперь общество превратилось в индустрию информации - в США на нее приходится больше половины общей суммы заработной платы. Быстрота и исполнительность ЭВМ дали почву для возникновения ситуаций, которых не могло быть раньше. Копирование комплекта геологических карт района с указанием разведанных запасов золота раньше занимало недели работы, а теперь может быть сделано за минуту. Другая проблема при введении организационных мер защиты состоит в том, что их реализация создает неудобства для пользователей и, если хлопот много, то эффективность мер будет нулевой - дверь перестанут запирать, список паролей повесят на стену и так далее. При этом стоит помнить, что любые административные меры защиты вызывают у сотрудников ощущение ограничения их гражданских прав и необходимости выполнять дополнительную работу за ту же плату. Поэтому прежде чем приказывать, пробудите в подчиненных желание следовать этим приказам, иначе в отношениях с ними могут возникнуть проблемы. Нужно четко отдавать себе отчет в том, большинство организационных мер защиты основано на физическом преимуществе - нарушителя нужно найти и наказать. Практически все руководители считают, что виновных без персональной ответственности не найти, и это действительно так. Распределяя ответственность, сразу же подумайте о системе проверок выполнения мер защиты, которые должны быть неожиданными и предельно простыми.

Третий уровень защиты - аппаратно-программный. Он состоит в процедуре идентификации пользователя, открывающей доступ к данным и программным средствам. Аппаратная защита может быть выполнена в виде кодовой карточки, обмена вопросами и ответами с дежурным, ключами, жетонами. Эффективность ее вызывает сильные сомнения. Конечно, есть где-то в России машины со съемными винчестерами, которые по окончании работы запирают в сейф... А та защита, которая встречается, как запирание клавиатуры на ключ или пароли при загрузке не выдерживает подчас самых простых атак. Во-первых, обычно из 10 ключей, блокирующих клавиатуру ЭВМ, минимум 5 совпадают и, имея связку из 3 отмычек, можно открыть клавиатуру почти любой ЭВМ. Кроме того, автору лишь раз довелось видеть, как употребили ключ - секретарь вставила его в ЭВМ, чтобы было на что повесить амулет. Во-вторых, можно загрузить в ЭВМ с диска А: свою операционную систему, которая скопирует жесткий диск физически. Иногда даже это действие лишнее - популярный в начале девяностых годов администратор диска, запрашивавщий пароль при загрузке, раскалывался, если с дискеты загружали DOS фирмы Digital Research. Некоторые компьютеры, как фирмы Hewlett Packard, имеют вполне надежные замки, блокирующие работу ЭВМ, например, Fort Lock. Дисковод А: при этом может быть либо отключен в BIOS от участия в загрузке, либо тоже блокирован хорошим замком.
     В современной литературе по аппаратной защите чего только нет: индивидуальные карточки, пароли, идентификация подписи и голоса - но все это или дорого, или довольно ненадежно. Не доводилось читать или слышать, что такая защита смогла предупредить несанкционированный доступ к данным ЭВМ. Кроме того, слабое место аппаратной защиты - люди. Они не очень-то уважают хитрые железки, создающие им неудобства в работе. Поэтому индивидуальный ключ в виде заглушки с кодированной микросхемой, который должен охранять данные и программы конструкторской системы AUTOCAD от злоумышленников, обычно вставляется один раз и навсегда. А когда автору в системе коллективного пользования RSX нужно было получить несанкционированный доступ к системным ресурсам, то он попросил оператора установить свою задачу. Отказать в такой пустяковой услуге оператор не могла, хотя установленная привилегированная задача открыла черный вход к сердцу системы - диспетчеру памяти.

Последний, четвертый уровень защиты - криптографический. В нашем контексте он представляют собой шифрование данных с целью скрыть и смысл. До тех пор, пока пользователь не идентифицирован по ключу, смысл данных ему недоступен. Данные в этом случае рассматриваются как сообщения, и для защиты их смысла используется классическая техника шифрования. Криптография предполагает наличие трех компонентов: данных, ключа и криптографического преобразования. При шифровании исходными данными будет сообщение, а результирующими - шифровка. При расшифрований они меняются местами. Считается, что криптографическое преобразование известно всем, но, не зная ключа, с помощью которого пользователь закрыл смысл сообщения от любопытных глаз, требуется потратить невообразимо много усилий на восстановление текста сообщения. (Следует еще раз повторить, что нет абсолютно устойчивого от вскрытия шифрования. Качество шифра определяется лишь деньгами, которые нужно выложить за его вскрытие от $10 и до $1000000.) Такое требование удовлетворяется рядом современных криптографических систем, например, созданных по "Стандарту шифрования данных Национального бюро стандартов США" DES и ГОСТ 28147-89. Так как ряд данных критичен к некоторым их искажениям, которые нельзя обнаружить из контекста, то обычно используются лишь такие способы шифрования, которые чувствительны к искажению любого символа. Они гарантируют не только высокую секретность, но и эффективное обнаружение любых искажений или ошибок.
     Прежде, чем оценивать меры противодействия доступу к данным без установленных санкций, подведем итоги рассмотрения уровней защиты. Надежду на правовую защиту данных в компьютере не разделяют не только сами юристы, но и яркие оптимисты. Верхом абсурда было давнее утверждение в статье "Известий" о том, что программист, виновный в двухдневной остановке главного конвейера ВАЗа, понесет юридическую ответственность. Его тогда могли лишить работы и квартиры, вышвырнуть детей из школы или детсада, отправить на непрерывные армейские сборы, но осудить не смогли бы. В лучшем положении те лица, чьи данные находятся под защитой авторского права, введенного прощальным указом Горбачева в состав "Основ гражданского законодательства..." для уже мифического СССР (Есть уже новый проект "Основ гражданского законодательства".). Хотя лучшим их положение пока можно считать лишь теоретически. Много надежнее этическая защита. Тот, кто применял TechHelp, конечно же, запомнил обращение к пользователям: "Вы же не хотите, чтобы дети Дана Роллинза копались в помойках, собирая картофельные очистки". Возбудите в своих сотрудниках такие же чувства и безопасность данных от доступа с их стороны будет гарантирована.
     Проект Уголовного Кодекса, находившийся весной 1995 года на рассмотрении в Государственной Думе, содержал пять статей, касающихся компьютерных преступлений. Ряд их положений настолько спорен, что вызвал оживленную дискуссию в прессе - за распространение вируса предусматривается отсидка от 3 до 7 лет. Если учесть, что одно инфицирование поражает в среднем 25 компьютеров, то, буквально толкуя этот пункт закона, после известного автору случая появления вируса в Думе, в лагеря надо отправить около 25 законодателей из 3 комитетов на общий срок в 100 лет. Остается лишь надеяться, что новый состав Думы приведет в соответствие с практикой нужные, но наспех и непрофессионально сделанные правовые нормы. Наши депутаты хорошо еще, если наслышаны о консенсусе, а компьютерная безопасность, как и любая ботаника, вне их жизненных интересов. Указы Президента в январе 1995 года о защите информации в сетях и компьютерах неконкретны и до реализации их в виде законов еще далеко. К концу 1995 года ФАПСИ, чувствуя, что теряет не только авторитет, но и пастбище, провело через Президента указ об аттестации систем засекречивания. Сейчас автор затрудняется дать ему оценку иную, чем выражение заботы Старшего Брата о судьбе компьютерного сообщества, которое не хочет попасть в 1984 год Оруэлла. Во время путча 1991 года телефоны почти не работали, так как секретные службы не справлялись с обработкой сообщений, содержащих высказывания против правительства. Точно так же сейчас им доставляют головную боль цифровые шифрованные коммуникации и сотовая связь. Конечно, заманчиво запретить шифрование вообще.
     Административные меры много лучше правовых. Главное, что могут руководители, это практически доказать, что они сделали все возможное со своей стороны для защиты данных и сделают еще больше, чтобы найти нарушителя и наказать его. Меры по защите аппаратуры ЭВМ экзотичны для нашей страны, так что об их эффективности довольно трудно судить ввиду их малой распространенности. Последняя надежда - криптографическая защита, дает абсолютную защиту данных, если ею пользоваться умело при поддержке ряда необходи мых административных мер.

Противодействие угрозам

Все ли читатели хранят дома деньги в сейфе? Было бы неразумно покупать сейф для того, чтобы хранить суммы не существенно превышающие среднестатистическую зарплату. Поэтому когда у меня дома был несгораемый шкаф, то в нем прятались лишь лекарства и патроны, и не от грабителей, а от детей. Далее, зачем грабителям тратить большие деньги, чтобы проникнуть в такой сейф? Таким образом, мы подошли к мысли о соответствии размера ущерба от вероятного взлома величине потерь от реализации мер защиты. Конечно, на защиту нет смысла тратить больше, чем стоят данные. Каков же реальный объем потерь от несанкционированного доступа? Это в первую очередь зависит от специфики данных и самой организации хранителя. Отмечено также, что профессиональные программисты гораздо выше оценивают возможный ущерб от несанкционированного доступа к данным, чем люди далекие от ЭВМ. Это хорошо согласуется с теорией приписывания в психологии, по которой люди оценивают мотивацию и поведение других людей, приписывая им свои знания и возможности. Следовательно, хороший программист может натворить много бед, а от плохого большого вреда не увидишь. В оценке возможного ущерба профессиональные программисты оказываются более точными, чем даже финансисты. А вот возможность доступа к данным могут оценить лишь специалисты другого рода, те, кому приходилось проходить сквозь стены и вскрывать шифры. Теперь, наконец, рассмотрим меры по защите данных, оценивая их по эффективности для разных видов угроз.

Сначала обратимся к законодательству. Оно необходимо, скорее всего лишь для того, чтобы руководители при реализации своих мер компьютерной безопасности не превратились в гангстеров. Однако законы очень дорого стоят обществу. Если съезд народных посланников дня два пообсуждает, как правильно назвать закон об охране информации, а потом еще раз пять возвращается к его чтениям, дополнениям и изменениям, то с носа каждого жителя России, включая младенцев и престарелых, балерин и бомжей, отвалится не меньше чем один доллар. Американцы, любящие все подсчитывать, установили, что только принятие закона 1974 года им обошлось единовременно 30 миллионов долларов, но еще более крупная сумма должна ежегодно тратиться на его поддержание. А ведь таких правовых актов было несколько! Поэтому неизбежные вложения в законодательство дороги, а отдача от них будет небольшая еще в течение долгого времени. Рассмотрим теперь административный барьер. Охранник - необходимый элемент защиты организаций, но он может защитить лишь саму ЭВМ, а не данные, находящиеся в ней, даже если охранника посадить за компьютер. Несмотря на то, что охранники могут сильно отфильтровать поток нежелательных посетителей, но полностью остановить смогут, лишь не пропуская вообще никою, например, ночью. Проведенный в шестидесятых годах эксперимент по проникновению людей на территории закрытых объектов города Москва показал, что пройти удалось всюду. Интересно, что проникшие просили не наказывать охрану, так как проходили, взывая к самым благородным человеческим чувствам. Однако без охранников в России никак нельзя - обойдется дороже. Дверь на замке - эффективное средство защиты от любопытных, но не более того. Конечно, лучше всего кодовый замок - не нужно носить с собой ключа и больше шансов, что дверь будут захлопывать, а не держать открытой. Стены служат лишь для защиты от любопытных, так как железобетонная стена проламывается профессионалом не более чем за 10 минут (Любопытные заметили, что в закрытых для посетителей помещениях фирмы IBM стены имеют необычно большую 114 США толщину в 33 сантиметра.). Сигнализация - эффективное средство против кражи самой ЭВМ, но, увы, нет сигнализации против хищения данных. Кража данных осуществляется обычно у всех на виду.

Полицейские, охранники и их собаки представляют собой активную защиту, а устройства обнаружения и сигнализации пассивны и профилактические. Самые старые технические средства состояли из замков на дверях и решетках на окнах. Начиная с 60-х, увеличение краж и международный компьютерный разбой стимулировали изобретение многочисленных, гораздо более сложных устройств безопасности. Системы предупреждения стали все более автоматизированными, особенно в отношении датчиков и связи. Миниатюризация в электронике привела к разработке охранного оборудования меньшего по размерам, более надежного, легче устанавливаемого и поддерживаемого. Большие комплексы зданий используют телевизионный контроль залов, стоек и лифтов. В последнее время телевизионный контроль вытесняется оптоволоконным. Оптический кабель передает изображение надежнее телевизионных систем и более качественно.
     Больше всего постороннего, проникшего к компьютеру, будут беспокоить системы, вызывающие тревогу, когда они обнаружат его присутствие. Тревога бывает слышимая: звонок, гудок, сирена или видимая, типа мигалок. Некоторые системы не обнаруживают себя, но тайно передают сигнал к полицейской станции или хозяину по пейджеру. Система защиты может обнаружить злоумышленников несколькими способами. Сигнализация объемной защиты обнаруживает движение в пределах охраняемой области, используя фотоэлектрические, инфракрасные, ультразвуковые, микроволновые и другие устройства. Фотоэлектрические системы посылают невидимый луч света с передатчика на приемник. Если луч прерван злоумышленником, то вызывается тревога. Обычно такие лучи хорошо видны, если осмотреть помещение, куда хочешь войти, не глазами, а через прибор ночного видения или такой же прицел. Иногда фотоэлектрические устройства по их характерному виду легко заметить в узких проходах для людей, турникетах, как в метро. Однако они могут быть хорошо замаскированы, так как многие пластмассы пропускают невидимый инфракрасный свет. Инфракрасные датчики, основаны на том, что все стены объектов и мебель, а также человеческие существа испускают определенное количество инфракрасной тепловой энергии. Ее величина остается относительно постоянной, изменяясь очень медленно во времени. Инфракрасная система обнаруживает лишь внезапные резкие изменения теплового фона. Если злоумышленник войдет в защищенную область, то маленькое, но внезапное, изменение теплового фона поднимет тревогу. Такого рода устройства ничем себя не обнаруживают, л внешним видом они бывают уж очень разными, Однако они ненадежны - срабатывают от включившегося калорифера или порыва воздуха из от- крытой форточки и так далее. Из-за инерционности таких систем иногда грабителям удается их отключить. Ультразвуковые датчики обнаруживают изменения в частоте волн, излучаемых ими же. Эти сигнальные системы производят ультразвуковые волны с частотами выше слышимых человеческим ухом. Частота этих волн изменяется слегка от эффекта Доплера, когда они отражаются от перемещающегося объекта. Ультразвуковая сигнализация вызывает тревогу, если обнаруживает такие изменения частоты.
     Практически этим системам охранники не очень верят, так как они срабатывают от легкого движения занавески, а люди часто забывают, уходя, закрыть форточки. Известен случай, когда такая система срабатывала, а вместо грабителей охрана ловила мышей. Работу этих датчиков можно подавить акустической сиреной, конечно, кроме сирены грабителю понадобится, естественно, еще и защита ушей от нее. Подобный тип систем, микроволновых, работают тем же самым путем, но излучают электромагнитные волны вместо ультразвуковых. Вызвав ложную тревогу с дюжину раз, грабитель легко может добиться того, что охранники сами отключат систему к дьяволу. Системы ненадежны, но люди еще ненадежнее.
     Предприниматели, боящиеся промышленного шпионажа, и правительственные учреждения, где хотят обеспечить национальную безопасность, используют порой персональные идентификаторы сотрудников, чтобы ограничивать доступ лиц. Имеются системы контроля доступа, которые распознают форму ладони руки (игравшие в компьютерные игры знают, что отрубив руку у охранника и засунув ее в датчик, такую систему можно пройти). В России подобные системы пока не ставились. Имеются также устройства наблюдения, чтобы просматривать помещения. Зарубежные отели, например, начали ставить оптоволоконные системы просматривания в каждом помещении. Но конечно же одна из самых хороших охран - собаки. Это очень бестолковые создания, с которыми грабителям невозможно договориться. (Собаководы знают, что кобелька несложно выманить куда угодно подстилкой из-под сучки во время течки или парализовать собаку ультразвуковой сиреной.)

Ряд средств защиты данных специфичны для ЭВМ. Удаленность помещения с ЭВМ может, например, предупредить подсматривание изображения на дисплее специальными техническими средствами. Так, с 10 метров подсматривать трудно, а дальше 50 метров современными средствами невозможно. Кроме того, удаленность помещения затрудняет проникновение в него посторонних. Если работает одновременно три и больше дисплеев одного типа, то прямое подсматривание очень сложно из-за взаимных помех. Сходный эффект могут, видимо, дать простые генераторы шума или случайных импульсов, имитирующие видеосигнал дисплея. Экранирование помещения делает невозможным подсматривание изображения на терми- нале электронными средствами. Однако это дорогая и хлопотливая мера защиты.
     Воровство сообщений гораздо дешевле взлома шифров, поэтому очень широко применяется. Подслушивающие устройства, на жаргоне называемые жучками, дешевы и могут быть установлены за несколько секунд. Начиная с $20, они имеют неплохое качество. Продают их не на штуки а упаковками по 5-10 сразу. Можно держать пари, что этот расход ничто по сравнению с вознаграждением от выяснения планов работ, стратегий маркетинга и технологии изделия. По данным служб безопасности, сейчас идет настоящая эпидемия подслушивания. Телефон, параллельный модему, конечно, является самым удобным местом, чтобы установить подслушивающее устройство. Но это не означает что подслушивание будет ограничено лишь беседами по телефону. Многие современные телефоны имеют микрофоны, которые всегда работают, даже когда трубка повешена. Это дает возможность нарушителям вести постоянное прослушивание всех бесед в той комнате, где телефон, и перехватывать все данные, передаваемые по модему. Жучок может стоять внутри компьютера и даже в подставке под клавиатурой. Вообще число мест, где можно найти жучки, ограничено только воображением атакующей стороны.
     Службы безопасности используют специальные приемники поиска, чтобы найти жучки. Если в помещении имеется излучение радиочастоты, приемник показывает ее на маленьком мониторе. Тогда, прослеживая максимум излучения, находят его источник, жучок. Для жучков, вделанных в стены. также используют нелинейный датчик перехода, который может обнаружить электронные изделия под слоем штукатурки или бетона. Этот датчик, как радиолокатор, посылает в стены, пол или мебель импульс, который вызывает колебания в электронных изделиях. По этим колебаниям жучки и будут обнаружены. Заметим, что КГБ не ставил тысячи жучков в новом здании американского посольства - ни одного не было найдено. Просто в строительный раствор попала крупная партия бра- кованных радиодеталей. Посольство поэтому стало жесткой кроватью для спецслужб США. Всякий раз, когда их люди с датчиками принимались искать жучки, то они, расковыряв стену, находили там негодную электронную штучку. Обнаружение жучков от этого стало много труднее, чем поиск иглы в стоге сена. Для обнаружения жучка, работающего в телефонной линии вне офиса, службы безопасности используют телефонный анализатор. Он выполняет множество измерений параметров телефонной линии между собой и офисом. Сопротивление, напряжение и баланс лишь немногие из них. Если жучок находится в линии, то он обычно отражает посланный анализатором импульс как у радара, и можно точно указать, где в линии жучок был поставлен. Перехват в телефонной линии не только незаконен, но чрезвычайно труден, так как потребляет значительное время. От этого, лишь факсы и телефоны ключевых исполнителей обычно единственно подходят для такого подслушивания. Если же это прослушивание идет на самой АТС или за ней, то обнаружить его практически невозможно, хотя и подслушивать стало тоже много труднее.

Раньше, все что нужно было сделать, это взять пару зажимов и наушники, поместить их на правильные контакты и слушать беседу абонентов. Сейчас цифровая передача сигнала делает эту задачу очень трудной - беседы преобразуются в несвязный поток цифр и складываются вместе снова в звуки в другом конце линии (Широко распространенное в прежние годы и справедливое тогда мнение, что многие телефонные разговоры прослушиваются. сейчас неверно. Теперь это сложно и дорого сделать. Щелчки в трубке, подключения посторонних абонентов и другие помехи обычно вызываются просто сбоями аппаратуры АТС.) Стоимость поиска жучков настолько велика, что приводить ее нет смысла. Руководитель крупной компании, хорошо известный читателям по прессе и рекламе, узнав сумму гонорара за очистку своего офиса от жучков даже перекрестился и... отказался.
     И все же обнаружение жучка легче, чем того урода, что ожучковал офис. Предложите службе безопасности, чтобы радиосигналы были прослежены до того места, где находится регистратор сигналов жучка. После того, как найдено записывающее устройство, пусть непрерывно следят за ним, пока хакер не прибудет, чтобы сменить записанную пленку на новую. Сильный ход - вывести жучок из строя и ждать, когда негодяй возвратится, чтобы заменить его. Очень просто выполнить и следующий трюк. Обнаружив жучок, рядом с ним ставят генератор радиопомех. Однако не включают его сразу на всю мощность, а повышают ее ежедневно чуть не с нуля. Порой у шпионов от этого складывается впечатление, что садятся батареи или происходит что-то неладное в самом жучке.
     Теперь рассмотрим аппаратные средства защиты. Они весьма дороги и в России мало распространены. Возможно применение съемных жестких дисков или дисков Бернулли, так как затраты на их покупку могут быть хоть отчасти оправданы облегчением ряда операций по хранению и перемещению данных. Аппаратура, использующая ключи в виде магнитных и электронных карточек, недавно начала широко распространяться в России. Магнитные карты появились довольно давно. Они представляют из себя пластиковую карточку стандартного размера, спереди на которой напечатан типографским способом текст, а сзади приклеены от одной до трех магнитных полосок. На каждой из этих полос может храниться до строки текста. Сейчас они активно вытесняются электронными карточками, такими же по виду, но хранящими информацию на встроенной микросхеме или микропроцессоре. Емкость их памяти гораздо больше. Различные типы карт производятся многими фирмами: Bull, Motorola, Philips, Shiumbeiger и др. Электронные карточки имеют массу применений:

     => в виде денег, когда карточка используется как
     дебетная или кредитная;
     => как удостоверение личности при расчетах по
     банковскому счету для хранения данных клиен-
     та и установления процедур аутентификации;
     => как ключ шифрования или криптографический
     процессор; как электронный документ - про-
     пуск на предприятие, водительское удостовере-
     ние, медицинская карта, накладная для грузов;
     => как электронный ключ для систем охранной
     сигнализации доступа в помещения и к обору-
     дованию.
     Информация в памяти карточек хранится в зашифрованном виде для чего обычно используется DES алгоритм, но встречается и RSA, дающий больше возможностей. Базой для вычисления пароля берется уникальный серийный номер карточки. Повторные попытки несанкционированного доступа к информации на карте обычно приводят к стиранию ее кода. Примером наиболее распространенной карточки для идентификации доступа к компьютеру является IBM Personal Security Card с устройством считывания и идентификации подписи IBM-4754. Кроме того, что это устройство считывает карты, оно еще требует подписи ее владельца, регистрируя не только очертание подписи, но и особенности нажима пера. Это делает процедуру идентификации настолько надежной, что она была принята швейцарскими банками. Несмотря на все свои достоинства, обычные ключи, карточки и пароли для загрузки системы чрезвычайно мало эффективны. Они часто передаются другим людям и их очень просто обойти. Более того, они создают иллюзию недоступности данных, что совершенно недопустимо. В принципе, можно сделать надежную аппаратуру с паролем на входе, но для этого нужно перепрограммировать микросхему BIOS или применить специальную плату SecureBoard, которая хоть и дает безопасность при загрузке, но, к сожалению, конфликтует со многими программными приложениями и играми.
     Криптографическая защита представляется наиболее дешевой и эффективной из всех рассматриваемых. Секретный диск, создаваемый средствами криптографии, представляется весьма надежным от проникновения в него устройством. Хотя перед вводом пароля следует убедиться, что имеешь дело с оригинальной программой, а не шутихой из предыдущего абзаца. К сожалению, все известные криптографические программные средства предусматривают только задание пароля, а не обмен паролями между пользователем и системой - так называемое "рукопожатие". Военные давно уже выработали правило рукопожатия и в ответ на пароль требовали отзыв, чтобы убедиться, что часовой настоящий, а не диверсант, пытающийся лишь выведать пароль. Криптографическое преобразование файлов является единственным средством, гарантирующим абсолютную защиту от вскрытия его содержимого при условиях, которые будут описаны ниже. Кроме криптографических программ часто используются специальные программы для смывания с дисков и файлов информации, которая должна быть уничтожена. Смывание диска и файлов означает прописывание их содержимого какой-то несекретной информацией, например, нулями, для того, чтобы содержащиеся в них данные исчезли физически. Ведь обычное удаление файлов убирает данные только логически, и, если на их место не была записана другая информация, то данные можно восстановить. Сходный результат дает запись в файл другого файла, большего по размеру, а затем стирание его, хотя эта операция менее надежна и данные иногда все-таки могут быть восстановлены специальными программами. Особенно удобно смывание незанятых областей диска по окончании работы над данными, которые были закодированы. Однако эта операция может занять несколько минут, что иногда раздражает медлительностью.
     Из всего сказанного можно понять центральное место криптографии в защите данных на ЭВМ, которая, не требуя больших затрат, обеспечивает абсолютную их защиту. Вместе с тем нужно учитывать, что лишь административные меры могут защитить саму криптографию, ее ключи и людей от возможного обмана или угроз применения физической силы. Конечно, есть опасность перестараться в реализации мер защиты. Но трудность защиты состоит в том, что не только источники потенциальной угрозы плохо известны, но и подавляющее большинство компьютерных преступлений остается неизвестным для потерпевших. К сожалению, безопасность данных нельзя ни доказать, ни, тем более, принять на веру.

БЕЗОПАСНОСТЬ ПЕРСОНАЛЬНОЙ ЭВМ

В этой главе описаны наиболее распространенные программы криптографических преобразований на IBM PC в операционной системе MS-DOS. Несмотря на то, что принципы работы с ними априорно ясны и хорошо описаны, все же стоит повторить для многих пользователей то, что известно немногим. Поэтому искушенным в практике криптографии пользователям стоит ее прочитать лишь в том случае, если их самолюбие нуждается в моральной поддержке. Однако общий уровень состояния дел таков, что, почти наверное, материалы этой главы станут путеводителем для рядового программиста.

Защита компонентов операционных систем

Разберем сначала возможность криптографической защиты операционной системы ЭВМ, представляющей собой специальную программу, обеспечивающую нормальное функционирование как аппаратных, так и программных ресурсов. Естественно, ее защита представляется крайне важной и имеющей далекие последствия. В связи с этим криптографическая защита операционной системы актуальна и сама по себе и обеспечивает поддержку более общей задачи защиты программ и данных. Различие между программами и данными, принадлежащими операционной системе, для криптографии несущественно, поскольку программы представляют собой те же данные специфического вида.
     Защиту операционной системы можно условно представить как процедуру аналогичную охране с помощью установки замков на двери. Так, открыв замок входной двери некоторого дома, можно получить лишь доступ к лифту и дверям квартир, но не в сами квартиры, каждую из которых закрывает свой замок. Далее, вероятно, что некоторые комнаты квартир охраняются своими замками, а в комнатах могут находиться сейфы. Таким образом, мы имеем дело с иерархией ключей. Это позволяет изолировать друг от друга защищаемые области и нарушение одной из них не ведет автоматически к нарушению других. Фактически областями защиты являются области данных на различных устройствах. Приведем их:

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

     2. Таблица расположения файлов (FAT) и директории - гораздо более серьезные объекты для криптографической защиты. Без их помощи доступ к данным весьма затруднен, но возможен. Можно организовать поиск нужной информации по всему диску по ее характерным признакам - файл типа ЕХЕ искать по его префиксу MZ, а числовые данные банковских счетов в коде ASCII по группам цифр 000, так как более вероятными представляется поступление и снятие "круглых" сумм. Если начальный кластер данных найден, то велика вероятность в следующем кластере найти их продолжение. И если не в следующем, то по крайней мере в последующих. Нарушать этот порядок, хаотично разбрасывая кластеры по диску, пользователи не решатся - иначе слишком замедлится обмен данными. Итак, FAT и директории представляются ключами от номеров гостиницы - хорошо бы их держать подальше от нежелательных интересантов, но это совсем неэффективно при серьезных намерениях нарушителей.

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

     Еще раз отметим, что атака на удаленные файлы очень результативна. Недаром ей широко пользуются службы налоговых и валютных контролей, проверяющих компьютеры фирм. Если сообщение зашифровано и стерто, то оно обычно еще не стерто с жесткого диска. Операционные системы обычно просто помечают, что место, которое занимало сообщение, впоследствии может быть использовано под запись на него другой информации. Можно восстановить стертый файл программами UNERASE или UNDELETE, если на его место еще не было других записей. Проблема усугубляется тем, что сообщения создаются текстовыми редакторами, которые периодически сохраняют его содержимое во временных файлах, которые хотя автоматически стираются по завершении редактирования, но их содержимое остается на диске. Классической стала реальная история, как молоденькая замужняя американка имела любовную связь на стороне. Она набрала в текстовом редакторе любовнику письмо и, после распечатки, стер- ла файл. Увлечение быстро закончилось разочарованием, а вот следы от временных файлов остались на дискете. Годом позже дискета вдруг стала нечитаемой, и жена попросила мужа восстановить ее. Муж использовал мощную коммерческую программу спасения сбойных дискет, восстановившую все файлы, в том числе и стертые. Проверяя качество восстановления, он наткнулся на старое любовное письмо жены, что породило цепь трагических событий.
     Налицо противоречие - без закрытия данных на уровне файлов хорошей защиты не организовать, а закрытие потребует больших вычислительных расходов. Поэтому следует минимизировать потери, расшифровывая лишь те данные, которые требуются для работы. Например, секретные области диска могут создаваться директориями, при входе в которые запрашивается пароль, служащий для расшифровки как директории, так и всех содержащихся там данных. Однако аналогичный подход влечет собой и неприятности:
      переход в такую директорию займет много
     времени;
      при авариях и сбоях данные будут оставаться
     незащищенными.

Таким образом, защита самой операционной системы, выглядит ненадежной и проблематичной за двумя следующими исключениями. Обычно доступ к аппаратным ресурсам операционная система осуществляет, используя специальные программные компоненты, называемые драйверами устройств, которые могут великолепно справляться с криптографическими преобразованиями. Следовательно, во-первых, имеется возможность засекретить телекоммуникационные каналы и, во-вторых, создать секретный псевдодиск, представляющий собой обычный файл, данные на котором хранятся в шифрованном виде. Проблема шифрования телекоммуникационных каналов близка к задаче шифрования файлов лишь с тем отличием, что при наличии многих абонентов требуется великое множество ключей. Так, наличие 10 абонентов, имеющих связь друг с другом, требует как минимум 90 ключей.
     Шифрование на изолированном компьютере в сочетании с административными мерами способно решить абсолютно все проблемы, связанные с засекречиванием данных. Единственной гипотетической угрозой при этом останется использование телефонных коммуникаций. Известно, что ряд коммуникационных программ, как осуществления банковских платежек, дает удаленному абоненту доступ к данным на диске. Такие программы мотут читать и модифицировать отдельные данные, как список паролей или свои секретные блоки. Это открывает широкие возможности для недобросовестных банковских программистов и хакеров. Поэтому следует принять за правило перед сеансом модемной связи закрывать все секретные диски и файлы, а также контролировать отсутствие изменений в системных областях, что просто сделать, например, антивирусной программой MSAV из MS-DOS версии 6 и выше.

Защита баз данных

Совсем другая задача возникает при использовании криптографических преобразований в базах данных, где вряд ли имеет смысл шифровать все поля. Так, шифрование всех данных в БД лечебного центра потребует много затрат и может помешать срочному получению справки о переносимости конкретным больным тех или иных лекарственных препаратов. По-видимому, достаточно хранить в шифрованном виде лишь файл соответствий фамилий больных номерам больничных электронных "карт", которые могут быть открытыми не только для лечащего персонала, но и студентов-медиков. Здесь налицо конфликт между стремлением обеспечить анонимность больных и сложностью получения лечащим врачом оперативной информации о пациенте в экстренных случаях. Сдается, что секретность в случаях, когда речь идет о жизни или смерти человека, отступает на второй план. В ряде медицинских экспертных систем США о пациенте можно получить полную информацию после того, как запрашивающий эту информацию пройдет специальную процедуру регистрации, позволяющую установить его личность. Если потом обнаружится, что необходимости в получении таких данных не было, то на получившего ее можно будет подать в суд и потребовать его возместить ущерб.
     Несколько иначе дело обстоит у финансистов, где разглашение точных данных об отдельно взятом клиенте недопустимо и ведет к потере престижа фирмы. Однако жизненно необходимо знать статистические данные о клиентах и проведенных операциях. Поэтому ряд систем отказывают в выдаче сведений, если они обобщают данные меньше, чем для определенного числа клиентов, скажем, трех человек. Это очень слабая защита, легко разрушаемая хакерами логически. Например, в банке хранятся данные о профессии и состоянии счета клиентов, а нас интересует вопрос получении льготного кредита конкретным человеком, местным политиком. Задаем каверзные вопросы:
     >Сколько местных политиков получило
     льготные кредиты? Ответ: 5
     >Сколько местных политиков пользуется
     услугами банка? Ответ: 5

Отсюда несомненно следует, что интересующий нас человек пользовался льготным кредитом данного банка. Ряд систем программирования, как PROLOG, позволили бы блокировать ответ на второй вопрос, поняв, что ответ на него раскрывает не статистические, а личные данные. Однако это тема для отдельного разговора вне рамок этой книги. Таким образом, криптография сейчас охраняет или все, или ничего. Никак не получается давать лишь часть сведений, сохраняя все остальные в тайне, потому что данные обычно тесно семантически взаимосвязаны меж собой и открытие казалось бы несущественной детали порой проливает свет на целую бездну фактов. Тем не менее, во многих СУБД криптография широко используется хотя бы для того, чтобы уберечь данные или их часть от искажения. Криптографическое преобразование гарантирует их сохранность от лиц не владеющих ключом.
     Чтобы предостеречь программистов от использования встроенных в базы данных средств шифрования, упомянем лишь один интересный факт. Есть компания, называемая AccessData, в штате Юта США с телефоном 1-800-658-5199. Она всего за $185 продает пакет программ для персональных ЭВМ, взламывающий встроенные схемы шифрования WordPerfect, Word, Lotus 1-2-3, Excel, Quattro Pro, Paradox и Oracle. Программы шифрования похожи на лекарства. Пилюля, полученная от шарлатана, обычно выглядит точно так же, как целительное снадобье.

Программы архивации файлов

Ряд программ обслуживания архивов файлов позволяет использовать криптографическую технику. Наиболее известны из них программы ZIP и ARJ. Среди традиционных средств поддержки архивов как добавление, удаление, обновление, распечатка и извлечение файлов, в них входят операции "взбивания" файлов с паролем при их помещении в архив и извлечении. Задание пароля осуществляется ключом -s<пароль> (S-от английского слова scramble, что означает смешивать, взбивать, соединять. В программе ARJ используется ключ G - garble - подтасовывать, искажать.). Так, например, создание секретного архива всех файлов из директории может быть выполнено утилитой PKZIP при помощи пароля Trivia так:

         >PKZIP -sTrivia archive *.*

К особенностям работы с программами архивации нужно отнести неудовлетворительное задание пароля, который отображается на экране и может быть подсмотрен как визуально, так и техническими средствами перехвата излучения мониторов компьютеров. Кроме того, шифрование захватывает область данных архива, которая легко реконструируется, как длина исходного файла, его название и ряд резервных нулевых байт. Из-за этого, несмотря на серьезное вообще-то взбивание текста с паролем, возникают серьезные опасения в возможности криптографической атаки на ключ. Поэтому данные способы засекречивания сообщений устойчивы лишь от любопытных, но не от хакеров и тем более от государственных криптографических служб. Известно множество "ломалок" для шифрованных архивов, которые подбирают ключ, контролируя контрольную сумму. Эффективность их очень невелика, так как по контрольной сумме ключ вскрывается уж очень неоднозначно, а примененный способ тотального опробования ключей годится лишь для сверхбыстродействующих ЭВМ. Однако периодически приходится ломать архивы, ключи к которым пользователи забыли или ввели с ошибкой. Обычно они смутно помнят ключ, который вроде бы вводили. Простенькая программа модификации этого ключа, учитывающая ошибки при наборе, позволяет примерно в половине случаев подобрать ключ за пару часов работы даже слабенькой персональной ЭВМ.

Программы шифрования файлов и дисков

Программ, обеспечивающих шифрование на уровне файлов, сейчас великое множество для DES и для RSA алгоритмов, так как большинство из них распространяется бесплатно. Так, английская фирма Lattice специализируется на выпуске пакетов прикладных программ SecretDisk для криптографической защиты индивидуальных файлов. Остановимся лишь на трех популярных, хотя и давно извест- ных программах.
     Программа PC Secure из пакета PC Tools позволяет шифровать отдельные файлы и целые директории. PCSecure обладает рядом привлекательных свойств, которые сделали ее первым широко извест- ным средством криптографической защиты данных. После загрузки программы на экране дисплея появляется меню, позволяющее выбрать нужные режимы и команды. Вход в разделы меню достигается нажатием клавиши Alt. На рисунке ниже указан подраздел меню для работы с файлами [File].
PCSecure File Options Help(F1)
  Encrypt File  
  Decrypt File  
  About  
  eXit  

Для шифрования файлов выбирают "Encrypt File", а для расшифровывания "Decrypt File".
     В диалоге можно выбрать файл или директорию для шифрования или расшифровывания. Для этого курсор устанавливают в списке файлов на нужный объект и нажимают Enter. Если выбранный объект представляет собой директорию (его имя заключено в квадратные скобки, как [BLACKOUT]), то PCSecure входит в нее и отображает в списке файлов на экране ее содержимое. Чтобы выбрать все файлы директории для шифрования или расшифрования, необходимо набрать Alt-D. Спецификацию файлов можно ввести и вручную с клавиатуры. При этом допускаются обозначения драйвера, пути и джокеров в виде символов "?" и "*" (Джокер (карточный термин, карта изображающая шута) - символ, который заменяется произвольной одной буквой или цифрой (?). или же группой символов произвольной длины (*).). Клавишей табуляции можно переключать высвеченные режимы. Клавиша Enter выбирает только высвеченный режим.
     При задании ключа шифрования в PCSecure используется специальное диалоговое окно. В качестве ключа можно ввести от 5 до 32 любых печатных символов. Ключ вводится дважды для проверки правильности его набора, не отображаясь на экране. Нажатием клавиши F9 можно переключаться между набором текстового и шестнадцатеричного ключа. При шестнадцатеричном ключе, он должен состоять из 16 знаков (0-9, A-F).
     PCSecure при шифровании и расшифровывании предупреждает пользователя, если:

      не прошел автотест метода DES;
      наборы ключа отличаются друг от друга;
      длина ключа меньше 5 символов;
      расшифруется файл не зашифрованный в
     PCSecure.

Перед началом шифрования необходимо проверить и переустановить необходимые режимы работы. Они сохраняются в файле шифровки и используются при расшифровывании, подавляя текущее значение режимов. Для переустановки режимов выбирается подраздел меню "Options". Его ввод на экране дисплея приведен ниже.
PCSecure File Options Нelp(FI)
  Full DES Encryption  
  Quick Encryption  
  Compression  
  One Key  
  Hidden  
  Read-Only  
  Delete Original File  
  Expert Mode  
  Save Preferences  

В верхнем подразделе меню установки режимов можно установить сжатие файлов кодированием и метод шифрования DES, рекомендованный правительством США. Это подменю позволяет сменить режимы, используемые PCSecure при зашифровке или расшифровке файлов. Можно выбрать режимы сжатия и метода DES вместе или порознь. Отказываться от обоих этих режимов не рекомендуется, так как это ухудшает устойчивость шифра к вскрытию. В PCSecure при установке режима сжатия на экране появляются имя последнего преобразованного файла, его размер до и после сжатия, а также процент сжатия. В PCSecure есть возможность использования одного ключа на весь сеанс работы. Если этот режим выключен, то PCSecure будет запрашивать ключ каждый раз, когда производится криптографическое преобразование очередного файла. В меню можно выбрать установку режима, при котором шифровке присваиваются атрибуты файла "только на чтение" и "спрятанный".
     В меню можно выбрать режим, когда при шифровании файлу шифровки дается то же самое имя, которое было у исходного. В этом случае шифровка записывается прямо на место исходного файла, уничтожая находящуюся в нем информацию. Так как файл шифровки всегда несколько больше по размеру исходного файла, то достигает- ся полное уничтожение оригинала и высокая секретность. Если же этот режим выключен, то PCSecure установит расширение имени файла шифровки SEC и использует то же самое имя, какое имел исходный файл. Таким образом, одновременное шифрование файлов PROG1.С и PROGI.PRJ становится невозможным, так как они получают имя PROG1.SEC, но оригиналы при этом сохраняются на диске. Если шифровка идет без удаления исходного файла, то новый файл с шифровкой получает расширение SEC. При расшифровке его PCSecure пытается создать файл с исходным именем. Если такой файл уже существует, то появляется запрос на его перепись. Запрос дает возможность снять программу, чтобы изменить имя файла.
     Важной и сомнительной особенностью является возможность выбора режима "черного входа". Если он установлен, то расшифровывание файлов можно производить с помощью привилегированного ключа (backdoor key - ключ от черного входа) даже в том случае, если индивидуальный ключ утерян. Для достижения максимальной секретности от режима "черного входа" необходимо отказываться. Выбранные в меню режимы можно сохранить, и тогда они будут использоваться по умолчанию при последующих шифрованиях. Наиболее секретный метод зашифровки файлов в PCSecure обеспечивается установкой экспертного режима, удаления оригинала, сжатия и метода DES шифрования. Самый быстрый режим шифрования достигается включением режимов быстрого шифрования и сжатия.
     Другой пример: Diskreet - программа из комплекта Norton Utilites, которая позволяет шифровать файлы или устанавливать логический драйвер, данные на котором всегда хранятся в шифрован- ном виде на жестком диске. Программа Diskreet предлагает два вида засекречивания данных. Вопервых, она может создать секретный диск, который авторы называют "NDisk". Доступ к данным на этом диске не может быть осуществлен без пароля. Секретный диск оформляется в виде файла заданного размера в корневой директории с именем SECRET. Читать содержимое этого файла можно обычным способом, однако данные на нем подвергаются шифрованию. Заметим, что в файле могут быть обнаружены фрагменты связного нешифрованного текста. Они уже были на диске в момент создания этого файла и оказались на его пустых местах. В заполненном до отказа секретном диске ничего прочесть не удастся. Поэтому перед созданием секретного диска нужно смыть все данные с пустых кластеров, чтобы на него не попали ненужные данные. Во-вторых, Diskreet позволяет вести шифрование отдельных файлов так, чтобы сделать недоступным их содержимое. После вызова Diskreet выберите из меню режим [Files], если предполагается шифрование файлов или же [Disks], если предстоит работа с секретным диском.
     Вызов программы Diskreet осуществляется набором ее имени с последующим указанием ключей, необходимых для установки нужных режимов ее работы в виде команды DISKREET [ключи]. Употребимы следующие ключи:
/ЕNCRYPT:файл Шифрование файла
/DECRYPT:файл Расшифровывание файла
/PASSWORD:пароль Пароль для работы с файлом
/SHOW[:бyквa_дискa] Открытие секретного диска
/HIDE[:бyквa_диска] Закрытие секретного диска
/CLOSE Закрытие всех дисков
/ON Подключение драйвера
/OFF Отключение драйвера

После вызова Diskreet на экране появляется меню, показанное на рисунке ниже:
     File Disk Options Quit! F1=Help
         Diskreet
Diskreet is a security program which can either
encrypt files or can set up logical drives
which are always encrypted.
Files Encrypt/Decrypt files Disks Create/Modify encrypted drives Quit Quit the Diskreet program

Press Alt or F10 to activate menu Diskreet

В разделе [Files] можно проводить криптографические преобразования файлов и менять режимы работы с ними. Шифровка файлов выбирается установкой [Files] в меню Diskreet и последующим нажатием Е. Можно в шифрование войти и сразу, набрав Alt-E. После этого на экране появляется диалоговое окно указанного ниже вида.

     File Disk Options Quit! F1=Help
         Select files to encrypt
             File name: *.*_____
     Directory: C:\SECURE\
Files Dir Drives
     
image.cfg .. A:
diskreet.exe T B:
diskreet.ini   C:
diskreet.sys    
     
  OK Cancel
     
Encrypt a file    

Выберите файл, который хотите шифровать, набрав его имя. При этом можно использовать джокеры, например, *.ТХТ зашифрует все файлы в текущей директории с расширением ТХТ. Кроме того, имена можно помечать, перейдя нажатием табуляции в список файлов текущей директории слева. Можно также менять драйверы или директории табулированием меж их списками и высвечиванием тех драйверов и директорий, которые нужны. После выбора файлов, которые следует шифровать, необходимо ввести имя выходного файла, где будут записаны шифрованные данные. В этом случае имя выходного файла должно отличаться от имен шифруемых файлов. Если имя выходного файла не указано, то для файла, который шифруется, и файла шифровки дается одно и то же имя. Помните, что после работы с DISKREET. нужно не забыть удалить и смыть с диска нешиф- рованные оригиналы файлов! Расшифровка файла выбирается установкой [Files] в меню Diskreet и последующим нажатием клавиши D. Вид появившегося окна схож с окном, в котором осуществляется зашифровка, и выбор имени файла такой же. В том же разделе меню можно установить режимы шифрования файлов. Для этого выбирается [Files] в меню Diskreet, и последующим нажатием О переходят к выбору конкретных режимов:
     File Disk Options Quit! F1=Help
       File Encryption Options
         Encryption Method
     (x)Fast proprietary method
     ( )DES (more secure but slower)
     [x]Wipe/Delete original files after encryption
     [ ]Set Encrypted file to Hidden
     [ ]Set Encrypted file to Read-Only
     [x]Use same password for entire session

          Save OK Cancel

File encryption/decryption options

В этом окне можно выбирать индивидуальные режимы, используя нажатия клавиш со стрелками вверх и вниз, с последующим нажатием клавиши пробела, чтобы выбрать или отменить установленный режим. Допускается два метода шифрования: упрощенный и DES-метод. DES является правительственным стандартом шифрования в США, он несколько медленнее, но обеспечивает повышенную секретность. Можно выбрать режимы удаления информации из исходных файлов после шифрования, устанавливать шифровкам атрибуты файлов "только на чтение" и "спрятанные", а также использовать единый пароль на всю сессию работы. Длина пароля в Diskreet допускается от 6 до 40 символов.
     В разделе меню [Disks] можно просматривать дискеты, закрывать все секретные диски, изменять их размер, удалять и менять пароли. На экране дисплея окно раздела представляется в таком виде:

File Disk Options Quit! F1=Help

         Search floppies... Alt-S
         Close all Alt-C
         Adjust size...
         Delete...
         change disk Password...

File encryption/decryption options

Для просмотра дискет можно в меню Diskreet высветить [Disks] с последующим нажатием Alt-S или F9-D-S. Эта команда выбирается, когда нужно просмотреть дискеты для секретного диска. Можно также выбрать нужный диск входом в список драйверов и высвечиванием того драйвера, который нужно просмотреть. Этот раздел доступен лишь в том случае, если драйвер Diskreet.Sys установлен в файле Config.Sys.
     Закрытие всех дисков производится в меню Diskreet высвечиванием [Disks] и последующим нажатием Alt-C или F9-D-C. После того, как секретный диск закрыт, никто не сможет иметь доступ к его содержимому до тех пор, пока не введет правильный пароль. Эта команда позволяет закрыть все секретные диски как жесткие, так и гибкие. Иначе секретные диски будут доступны всем после их открытия, пока ЭВМ не будет выключена или система перегружена.
     Изменение размеров диска позволяет расширить или сжать секретный диск. Эту команду можно выполнить, выбрав из меню Diskreet высвечиванием [Disks] с последующим нажатием Alt-S или F9-D-A. При появлении диалогового окна изменения размеров диска, можно сделать ключами со стрелками, выбрав расширение его размеров [Expand) или сжатие [Shrink], а также нажав клавиши Е или S. Используя ключи со стрелками вверх и вниз, курсором выбирается позиция с новым размером диска и нажимается пробел, чтобы установить этот выбор. Если нужен специфический размер диска, которого нет в таблице, то необходимо ввести его в килобайтах.
     Команда удаления диска позволяет удалить имеющийся секретный диск. Можно ее выбрать из меню Diskreet высвечиванием [Disks] с последующим нажатием F9-D-D. Когда покажется диалоговое окно удаления диска, то курсором нужно выбрать удаляемый секретный диск. Диск будет удален, и пространство, занятое им, будет перезаписано несмысловой информацией, чтобы предупредить последующее восстановление. Смена пароля диска производится в режиме диалога высвечиванием [Disks], и последующим нажатием F9-D-P, чтобы выбрать смену дискового пароля. Дисковый пароль необходим, чтобы открыть секретный диск, изменить его имя, размер, пароль или установки по умолчанию. Убедитесь, что пароль набран правильно. Хорошенько запомните используемый пароль! Если он будет забыт, то нет способа восстановить шифрованные данные (Правильнее сказать, взлом шифровки без ключа возможен, но для DiskReet стоит несколько сотен тысяч долларов США и требует применения сверхбыстродействующих ЭВМ.).
     В следующем разделе меню [Options] можно установить необходимые для работы Diskreet режимы и параметры. Окно этого раздела имеет следующий вид.

     Disk Options Quit! F1=Help
     System settings...
     startup Disks...
     Auto-close timeouts...
     Keyboard & screen lock...
     Security...
     Change main password...

File encryption/decryption options

Установка системных режимов Diskreet выполняется в режиме диалога высвечиванием [Disks] и последующим нажатием Alt-S или Alt-O-S. Изменение режимов управления диском изменяет одновременно и существующий файл Config.Sys. Однако новые режимы Diskreet не начнут выполняться, пока система не будет перегружена.
     Установку загружаемого диска можно выбрать в окне меню высвечиванием [Disks], и последующим нажатием Alt-O-D. Эта команда позволит выбрать секретный диск, который будет автоматически открываться при включении или перегрузке компьютера. При появлении диалогового окна установки загружаемого диска нужно, используя клавиши со стрелками, высветить букву драйвера нужного секретного диска и нажать Е, чтобы изменить значения по умолчанию. Появившееся меню позволит выбрать режим задания пароля - при включении компьютера и перегрузке системы или же при первом обращении к секретному диску.
     Установку задержки для автоматического закрытия можно выбрать в диалоге высвечиванием [Disks] и последующим нажатием F9-O-A. После этого система будет автоматически закрывать все открытые секретные диски, если с ними не велось никакой работы более определенного отрезка времени. Нажмите пробел, чтобы выбрать или отменить эту команду. Затем можно ввести желаемую величину задержки в минутах. Этот режим полезен, если периодически приходится покидать компьютер, оставляя его без присмотра. Если это было задано при установке, то механизм автоматического закрытия секретных дисков сработает, когда к ним не было доступа больше определенного периода времени. Это тоже удобная особенность Diskreet. позволяющая отходить от компьютера, не беспокоясь за хранимые в нем данные. Максимальный размер задержки закрытия секретного диска по умолчанию устанавливается в 59 минут, что, несомненно, недопустимо велико. Однако задержка меньше чем в 5 минут часто срабатывает и раздражает перенаборами пароля.
     Быстрое закрытие диска и гашение экрана по нажатию специальных клавиш устанавливается набором Alt-O-К. Этот выбор обеспечивает защиту секретного диска от несанкционированного доступа. В отсутствие пользователя посторонние могут читать экран или попытаться с клавиатуры осуществить доступ к открытому секретному диску. Быстрое закрытие диска позволяет в любое время, набрав заданную комбинацию клавиш моментально закрыть все открытые секретные диски так, что любая попытка доступа к ним потребует набора пароля. Гашение экрана позволяет при наборе заданной комбинации клавиш моментально гасить изображение на экране, защищая его от просмотра посторонними. Для быстрого закрытия диска и гашения экрана служат следующие комбинации клавиш, выбираемые при установке Diskreet:
      две клавиши SHIFT
      две клавиши SHIFT и клавиша CTRL
      левая клавиша SHIFT и клавиша CTRL
      правая клавиша SHIFT и клавиша CTRL
      две клавиши SHIFT и клавиша ALT
      левая клавиша SHIFT и клавиша ALT
      правая клавиша SHIFT и клавиша ALT
      клавиша CTRL и клавиша ALT
     Режим секретности можно изменить в диалоге высвечиванием [Disks] и последующим нажатием F9-0, а, используя клавишу со стрелкой вверх, высветить режим секретности. В этом диалоге можно определить судьбу областей диска при создании, удалении или изменении размеров секретного диска. Клавишами со стрелками выбирается требуемый режим, а пробелом он устанавливается. Наиболее предпочтителен режим очистки, который удаляет все лишние и неиспользуемые данные из области занимаемой секретным диском.
     Изменение главного пароля можно сделать в диалоге высвечиванием [Disks] и последующим нажатием F9-0-C. Главный пароль требуется, чтобы получить доступ к следующим процедурам:
      сменить величину задержки для автоматического закрытия диска;
      сменить пароль открытия диска;
      сменить клавиши закрытия диска;
      сменить сам главный пароль.
     Убедитесь, что главный пароль тоже запомнили и набрали правильно. Если не можете запомнить главный пароль, проще удалить файл Diskreet.ini с жесткого диска. В этом случае Diskreet будет принимать за главный пароль нажатие клавиши Enter. Если решили, не надеясь на свою память, записать пароль, то защитите его так, как стали бы защищать хранимые с его помощью данные, например, положите в свой бумажник или заприте в сейф. Сохраняйте данные вашего закрытого диска! После потери сетевого питания или системного сбоя проверяйте состояние файлов, которые в это время шифровались или закрытых дисков, с которыми велась работа. Может случиться так, что секретные данные стали после сбоя общедоступными или были повреждены.
     Если Diskreet работает в среде Windows, то становятся недоступными быстрое закрытие и закрытие по тайм-ауту. Необходимо заметить, что идеология Windows противоречит концепции секретности, так как ряд встроенных в эту систему механизмов, вроде OLE, может приводить к практически не отслеживаемой передаче прав. При работе Diskreet под сетью тоже будьте бдительны - есть возможности проникновения посторонних на открытый хозяином секретный диск, удаленного подсматривания паролей и несанкционированного копирования секретной информации. Правильнее всего перед началом работы с Diskreet выгрузиться из сети и все работы по шифрованию вести только на изолированной машине.
     Теперь коротко опишем популярную в Интернет программу шифрования PGP. PGP использует для шифрования быстрый традиционный алгоритм шифрования, а ключ для него шифруется по медленному алгоритму с открытым ключом. Конечно же, для повышения надежности шифрования используется лишь аналог DES, называемый IDEA. Ключ IDEA длиной в 128 бит, на первый взгляд кажется коротким. Но как считают специалисты. он по стойкости эквивалентен ключу RSA 3100 бит, в то время как обычно используется ключ из 1024 бит. Таким образом, в цепочке шифрования самым слабым звеном PGP является система шифрования с открытым ключом, к тому же очень медленная, но от которой отказаться трудно из-за возможности открытого распределения ключей.
     Шифрование файла по открытому ключу можно выполнить следующей командой PGP с UNIXподобным синтаксисом:

     рgр -е имя_файла идентификатор_ключа

Например, чтобы зашифровать сообщение в файле private.txt для Мери Энн, достаточно набрать команду:
         рgр -е private.txt "Mary Ann"
     После этого программа PGP найдет открытый ключ с идентификатором Mary Ann и зашифрует им файл private.txt, в результате получится файл шифровки private.pgp. Отметим, что идентификатор не чувствителен к регистру символов и допустимыми будут также формы написания "mary аnn" "MARY ANN". Перед шифрованием PGP сожмет исходный файл сообщения с помощью достаточно широко распространенной программы архивации ZIP. Если сообщение циркулярное и его нужно послать нескольким адресатам, достаточно в командной строке перечислить идентификаторы получателей:
     рgр -е private.txt "Mary Ann" "Clinton" "Eltsin"

Это позволит получить файл шифровки private.pgp, который смогут прочесть только Мери Энн, Билл Клинтон, Борис Ельцин и больше никто. Число абонентов, которых можно указать в команде, неограниченно. Если нужно и зашифровать, и подписать сообщение, это можно сделать командой:
         рgр -es private.txt "Mary Ann"

В этом случае цифровая подпись "встраивается" в файл шифровки private.pgp. Так же, как было указано выше, выполняется и циркулярное шифрование с подписью:

рgр -es private.txt "Mary Ann" "Clinton" "Eltsin"

Расшифровка полученного сообщения или проверка цифровой подписи выполняется еще проще. командой:

рgр private

Если расширение файла, как в приведенном примере, опущено, то предполагается стандартное расширение PGP. При расшифровывании, которое выполняется полностью автоматически, PGP одновременно проверяет встроенную цифровую подпись и сообщает о ее правильности.
     Самой примечательной стороной PGP для пользователей, является хороший интерфейс в управлении ключами. Именно управление ключами со времен Юлия Цезаря вызывало ночные кошмары криптографов. Мало того, что секретные ключи тяжело распространять, неавтоматизированное их хранение вызывает тошноту. Чтобы расшифровать сообщение, криптографу обычно приходится расшифровывать сначала файл ключей и, взяв оттуда нужный ключ, лишь потом приступать к расшифровке сообщения. Эта проблема элегантно решена в PGP. Чтобы сгенерировать пару своих собственных ключей из открытого и закрытого, набирают команду:

PGP -kg

После этого PGP показывает меню, из которого надо выбрать желаемую длину ключа. Длина ключей делится на уровни:
 слабый коммерческий;
 сильный коммерческий;
 "военный"

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

Пара ключей, открытый и секретный, образуются из случайных чисел, получаемых точным измерением временных интервалов между нажатиями кнопок клавиатуры. PGP просит набрать случайный текст, но учитывает не значения символов, а интервалы между их нажатиями. Генерация ключей может занять значительное время в несколько секунд и даже минут при длинном ключе и слабенькой ЭВМ. PGP использует криптографически стойкий генератор случайных чисел для того, чтобы создать ключи на время сеанса криптосвязи. Исходный файл для этого находится в специальной директории для файлов PGP, определяемой переменной оборудования SET PGPPATH=C:\PGP, и называется "randseed.bin". Если этот файл не существует, он автоматически создается из настоящих случайных чисел, определяемых интервалами между нажатиями клавиш. Кроме этих случайных чисел для формирования исходного файла используются, похоже, и другие случайные величины, например, дата и время. Этот файл служит начальным заполнением стандартного генератора случайных чисел и шифруется, чтобы уменьшить риск от вскрытия нападающим по нему ключей. Риск вскрытия ключей в PGP и так невелик, потому что файл randseed.bin обновляется непосредственно до и после каждой сессии шифрования. Если вы не доверяете алгоритмам, получающим случайные числа алгоритмически, поймите, что те же самые алгоритмы используются и в шифровании, чтобы закрыть сообщение. Еще раз подчеркнем, что PGP использует настоящие случайные числа, чтобы сформировать свои ключи.
     PGP хранит ключи в двух файлах: для отрытых и для секретных ключей, называемых "связками". Иногда бывает нужно приобщить к своей связке новый ключ. Для этого достаточно набрать команду:
         рgр -ka файл_ключей
     Расширение файла ключей по умолчанию принимается PGP. Если этот ключ уже есть в связке, то PGP не добавляет новый и не заменяет им старый. Все ключи из файла ключей будут добавлены в связку, кроме дубликатов. А удалить ключ из связки можно командой:
         рgр -kr идентификатор
     Если удаляемому ключу соответствует несколько идентификаторов, то пользователь предупреждается об этом и запрашивается подтверждение на удаление таких ключей. Просмотр содержимого связки ключей выполняется командой:
         pgp-kv
     В результате печатается список ключей в связке по их идентификаторам. Аналогично выполняется подтверждение авторства ключей по их цифровой подписи командой:
         pgp -kv
     Для того, чтобы получить справку по командам PGP, достаточно ввести:
         pgp -h
     При работе с PGP надо помнить, что в шифросистеме с открытыми ключами последние никак не защищаются от копирования. Более того, чем шире открытые ключи распространены, тем лучше. Однако, очень важно защищать личные ключи от искажений и подделок. Это самая слабая сторона шифросистем с открытым ключом. Предположим, что по электронной почте нужно послать компаньону сообщение. Для этого из электронной доски объявлений, BBS, выполняющей роль криптоцентра, получается открытый ключ компаньона. Этим ключом шифруется конфиденциальное сообщение и отсылается адресату. Однако открытый ключ компаньона в BBS мог быть подменен хакером на фиктивный. Перехватив, дешифровав и уничтожив шифровку сообщения, хакер может свое собственное сообщение зашифровать открытым ключом компаньона и послать ему от вашего имени. Избежать этого можно только с помощью криптоцентра, которому можно доверять и выполняющему роль нотариуса, удостоверяющего истинность подписей и их даты. В любом случае открытый ключ можно использовать только в том случае, если достоверно известна его подлинность. Нужно различать доверие к ключу и доверие к владельцу ключа. Ключ может быть верен, а его хозяин - хакер. Доверие необязательно переносимо. Если я верю другу, а тот верит своей жене, то это вовсе не значит, что я ей доверяю. Лучше всего хранить свои связки ключей на дискете, которая не только физически защищена от записи во время криптосвязи, но и прятать ее в сейф между сеансами.

Шифрующие ЭВМ

Электронные шифраторы всегда представляют собой ЭВМ, а ряд из них ничем другим кроме шифрования не занимается. Так, очень популярна отечественная профессиональная шифровальная система РК-1240, которая, несмотря на малые размеры - она исполнена в дипломате, - позволяет шифровать и расшифровывать тексты при передаче их в виде писем, телеграмм, телефонограмм, телексов и факсов. Вес ее довольно велик - около 10 килограмм. Предназначена она преимущественно для стационарного использования с питанием от сети, хотя и предусмотрена возможность питания от батарей. Внешне она напоминает пишущую машинку со встроенным слева телефоном. Вместо обычного монитора на электроннолучевой трубке в ней применен встроенный дисплей на одну строку.
     Среди малых по размерам шифрующих устройств выделяются отечественные "Криптоцентр" и "Анкрипт". Они представлены компьютерами класса palm-top и размером не больше авторучки. Система "Криптоцентр" выполнена на базе компьютера фирмы Hewlett Packard модели HP-100LX. Она поддерживает двухуровневую ключевую систему с главным паролем и рабочими, выполняет шифрование, расшифровывание информации и оформление цифровой подписи. Используя шифрование открытым ключом, с ее помощью можно заниматься рассылкой ключей или генерацией их для других криптографических систем. Передавать зашифрованный ею текст можно практически по любым каналам связи: почте, телеграфу, модему. факсу или диктовать по телефону голосом. Для контроля доступа к шифратору в файле ведется учет регистрируемых пользователей.
     Шифратор "Анкрипт" - самый маленький. Однако это простая в работе и эффективная шифровальных система. В ней предусмотрены:
     - экстренное стирание информации и ключей
         при попытке захвата;
     - индивидуальный пароль каждого пользователя;
     - защита от съема информации техническими средствами.
     Массу различных зарубежных криптографических систем можно купить в магазинах, торгующих средствами безопасности. Хотя в этом случае можно приобрести как высококачественное устройство, так и примитивный, нестойкий от атак криптоаналитиков продукт, да еще не адаптированный к российским линиям связи. Цена на эти изделия колеблется в широких пределах. Простенькие телефонные скрамблеры стоят от $150, а совершенные профессиональные многофункциональные шифраторы в несколько тысяч долларов не редкость.

БЕЗОПАСНОСТЬ СЕТЕВЫХ СИСТЕМ

     Если кто-нибудь захочет разместить ответственные
     приложения на сервере и спросит меня, достаточно ли
     это надежно, я только разведу руками.
                  Джо Тумнинаро.

Сейчас самую большую угрозу безопасности компьютерных систем представляют сами компьютеры в руках преступников или злых шутников. Эта проблема стала заметно проявлять себя лишь в последние десять лет, благодаря революции в микроэлектронике и широкому распространению коммуникаций персональных компьютеров. Число пользователей сети Internet сейчас больше, чем жителей в любом городе мира. Поэтому как в любом крупном городе, там есть свои хулиганы, воры и бандиты. Сухая статистика говорит, что в 1993 году лишь незаконное использование кредитных карточек с помощью компьютеров в сетях данных нанесло банкам ущерб в 864 миллиона долларов. Для того, чтобы обезопасить себя от преступных действий, компьютерные сети применяют специальные меры защиты. Проблема безопасности работы в сети начнет становиться еще более важной, по мере того, как фирмы будут идти по пути уменьшения размеров вычислительных систем, перенося свои прикладные задачи с больших центральных компьютеров на сети рабочих станций. Эти мощные системы еще более уязвимы, чем те сети, которые существуют сейчас.
     В этой главе приведены результаты анализа основных угроз безопасности сетей в распределенных системах обработки информации, основные объекты и направления атак, возможные каналы проникновения и получения незаконного доступа к информации, а также главные методы и средства защиты. Внимание будет сосредоточено вокруг защиты наиболее распространенных в России сетевых операционных систем, вроде Novell Netware 3.12, отмечены их достоинства и недостатки. Уязвимые места и бреши в подсистеме защиты будут кратко проанализированы и предложены меры по ее совершенствованию, а также варианты реализации мер по обеспечению безопасности, позволяющие перекрыть не только указанные, но и ряд Других возможных сходных каналов проникновения в систему и доступа к критической информации.

Проблемы безопасности сетей

Главных проблем безопасности в сети не так уж и много. Вот их самый краткий, но вполне достаточный перечень:

=> Как предотвратить проникновение в сеть и манипуляции с данными?
=> Как предотвратить разглашение информации в сети?
=> Какие места системы безопасности сети менее всего устойчивы?
=> Какова модель предполагаемого нарушителя?

Проблема предотвращения несанкционированного доступа, безусловно, самая важная, хотя не единственная. Ей посвящено чуть не все содержание этой главы. Необходимо заметить: администраторами сетей почти всегда правильно оценивается значение программных средств контроля и криптографической техники, но мало кто из них уделяет достаточное внимание мониторингу работы пользователей. Большинство взломов систем происходит из-за того, что администратору сети поручают несвойственную ему дополнительную обязанность следить за строгим соблюдением пользователями правил работы, которую в большинстве случаев он выполнить не в состоянии. Поэтому в действительно секретной сети кроме администратора нужен еще и офицер безопасности, внимательно следящий за действиями пользователей и непрерывно ведущий мониторинг.
     Разглашение информации слишком часто встречается в практике работы сетей потому, что люди постоянно находятся под прессом обстоятельств и не всегда осознают последствия кажущихся им мелкими действий. Но, скажите, какой толк вкладывать большие деньги в шифрующие сетевые карты, если администратор, временами уезжая на рыбалку, будет просить присмотреть за системой своего друга из другой фирмы, передав ему эквивалент супервизора, или пользователи будут уходить на обед, не выгрузившись из системы? Основой противодействия разглашению информации должна служить строгая регламентация всех действий пользователей и персонала, обеспечиваемая главным образом административными, а уже потом техническими и программными средствами. Наиболее надежной является такая организация системы при которой пользователь сознает ответственность за те или иные свои действия. Достаточно указать ему, что, уйдя со станции, не выгрузившись, он будет нести ту же самую ответственность, как если бы ушел, не заперев сейф. В то же время программы обеспечения секретности должны помочь ему не забывать про рутинные обязанности.
     Нужно защищать все компоненты системы: оборудование, программы, данные и персонал. Система защиты должна быть многоуровневой и строиться по уровням секретности. Для надежной защиты необходимо распределить функции между этими уровнями так, чтобы осуществлялось необходимое дублирование функций защиты и происходила компенсация недостатков одного уровня другим. Криптографическая защита должна быть применена на всех верхних уровнях, однако ее применение должно соответствовать предполагаемым угрозам. Так как совокупные затраты на защиту велики, то усиливать надо в первую очередь слабые ее элементы. Как у цепочки прочность защиты определяется лишь самым слабым звеном.
     Что движет хакерами? Причины для хакерства могут быть различные. Кроме иррационального поведения со стороны хакера, имеются четыре основных повода: персональная месть, самореклама, попытка вызвать разрушающий основы общества хаос или нажива. При мести хакерство основано на социальном или персональном заказе отмщения за реальную или воображаемую обиду. Некоторые лично мотивированные случаи хакерства побуждены идеализмом - жертва выбирается в этих случаях так, чтобы хакер был уверен, что ее наказание даст абстрактную пользу людям. Разрушение сетей правительственных и крупных коммерческих компаний чаще всего относится к этому типу. Анархически настроенные молодые люди были наиболее видными проводниками таких действий до последнего времени, так как считали хакерство достойным ответом на безнравственные законы и действия правительств. Другой тип хакерства можно назвать пропагандистским, потому что он преследует получение гласности для освещения специфической точки зрения хакеров или для саморекламы. Действительно, приписка в вирусе: "Sofia. Dark Adventure.", эквивалентна визитной карточке, так как достаточно просмотреть файлы регистрации софийских BBS, чтобы найти автора. Чисто политическое хакерство неизвестно, так как оно вряд ли может вызывать значимые изменения политики и больше смахивает на пропагандистский демарш (Примером тому может служить вирус "производства КНР", призывающий заклеймить позором убийц площади Тяньаньмынь. Хотя был случай уничтожения файлов Пентагона с именами призывников на вьетнамскую войну, но это, вроде бы. сделал не хакер, а системный администратор.) . А хакерство ради наживы - это то, чем рано или поздно кончают неудачники в личной или деловой сфере. Публикации сообщают, что покинувшие Россию профессиональные программисты, не навдя работы, нередко принимают предложения преступных группировок, которые используют их как хакеров для грабежа банков. Эти "золотые воротнички" практически неуловимы, так как обычная операция хорошо планируется и длится всего несколько минут, а связь ведется из номера отеля, снятого на вымышленное лицо.
     Вопреки популярному изображению, хакеры не всегда молодые мальчики. Социологи США нашли, что треть арестованных за преступления хакеров были женщины, в то время, как лишь седьмая часть, были до 21 года. Изучение показало также, что половина хакеров имеет возраст между 25 и 30 годами. Ответчики по компьютерным преступлениям вписываются в три категории: пираты, хакеры и крекеры (взломщики). Пираты главным образом нарушают авторское право, создавая незаконные версии программ и данных. Хакеры получают неправомочный доступ к компьютерам других пользователей и файлам в них. Однако они, как правило, не повреждают и не копируют файлы, удовлетворяясь сознанием своей власти над системами. Крекеры - наиболее серьезные нарушители. Они позволяют себе все. Сотрудники служб компьютерной безопасности и антихакеры делят всех нарушителей на четыре группы по отношению к жертве:

* не знающие фирму посторонние;
* знающие фирму посторонние и бывшие сотрудники;
* служащие непрограммисты;
* служащие программисты.

Не стоит недооценивать возможности непрофессионалов по совершению компьютерных преступлений. Как метко написано в руководстве для офицеров морской пехоты США о рядовых: "Они невежественны, но очень сметливы". Нелояльные сотрудники, имеющие доступ к компьютерам, играют главную роль в большинстве финансовых преступлений. Это скорее организационная, чем техническая проблема. Если хорошо отобранным наемным служащим хорошо платят, мало вероятно, что они представят угрозу безопасности. Технология может играть здесь лишь вспомогательную роль. Статистика приводит очень печальные данные, утверждая, что лишь четверть сотрудников банка вполне лояльна, четверть, безусловно, настроена к фирме враждебно и не имеет моральных ограничителей, лояльность же оставшейся половины зависит исключительно от обстоятельств. Процедуры безопасности могут обеспечивать проверку паролей и строгий контроль доступа к ценным общим данным, но взломщика, хорошо знающего внутреннее устройство системы, практически невозможно остановить.

Уровни безопасности сетевых систем

Достаточно детально удалось ознакомиться лишь с шестью сетевыми операционными системами клиент-сервер, применяющихся на машинах IBM PC в России: UNIX, NetWare, VINES, LAN Server, LAN Manager и Windows NT. Конечно, такой выбор имеет сильное ограничение, но нельзя объять необъятное и пришлось ограничиться лишь наиболее динамично развивающимся направлением. Из этих систем лишь VINES обладала встроенной системой шифрования данных на сервере и была достаточно надежна к проникновению. Хотя компании, продающие LAN Server и NetWare, заверяли в существовании утилит шифрования данных на сервере, тем не менее, этого автору своими глазами увидеть не удалось ни в этих фирмах, ни где-то еще. Несколько больше дефектов по сравнению с другими сетевыми ОС в безопасности системы можно обнаружить у NetWare, хотя это явно связано с ее широкой популярностью и предельной изученностью. Из многолетних поисков идеальной системы автор сделал для себя вывод, что если какую-то систему долго и упорно ругают, то это означает лишь, что жива еще курилка и неплохо себя чувствует. Еще одно положительное свойство NetWare - передача пароля со станции на сервер в хорошо зашифрованном виде, что затрудняет его расшифровку при перехвате пакетов. Все указанные системы способны обеспечить приемлемый уровень безопасности данных при надлежащей эксплуатации.
     Обычно безопасность компьютерных систем классифицируется в соответствии с критериями Национального центра компьютерной защиты США, названными "оранжевой книгой". Они позволяют оценивать системы по относительному уровню безопасности и определяют четыре уровня защиты А, В, С и D в порядке убывания надежности. Так как фактически уровней безопасности больше, то буквы модифицируются цифрами от 1 до 3. Например, классификация А1 обозначает наиболее безопасные системы, С2 - достаточную безопасность и D - минимальную. Опишем кратко свойства систем разных уровней, рассматривая их сверху вниз.

     Уровень А. Уровень А1 является высшим в защите систем. Он отличается от уровня ВЗ лишь надежным распределением и дополнительными гарантиями безопасности.
     Уровень В. Уровень В1 отличается от С2 тем, что доступ к данным контролируется не только правами передающего пользователя, но и принимающего. То есть нельзя передать права на доступ к данным лицу, которое не имеет на это прав. В классе В1 реализуется стратегия защиты данных и утилиты защиты четко отделены от других программ. Уровень В2 улучшает защиту уровня В1 тем, что пользуется математическим описанием функций защиты и реализует правило наименьших привилегий, в соответствии с которым для выполнения предоставленных пользователю прав он должен обладать наименьшими возможными привилегиями наименьшее возможное время. На этом уровне в защиту вовлекаются все объекты системы и в первую очередь аппаратные средства. Уровень ВЗ расширяет уровень В2 тем, что гарантии защиты более строгие. Требуется выделенный администратор защиты системы, а также процедуры восстановления после сбоя и оповещения администратора о нарушении защиты.
     Уровень С. На уровне С1 система обеспечивает так называемую дискреционную защиту. Это означает, что все пользователи, совместно обрабатывая данные, имеют одинаковые права. Это предупреждает неумышленную порчу данных друг друга, но не спасает от вторжения хакера. В таких системах каждый пользователь имеет свой пароль и может защищать свои данные, определяя, кому он доверяет доступ к ним. Считают, что простые UNIX системы имеют уровень С1. На уровне С2 система несколько строже, так как обеспечивает контролируемый доступ. Это означает, что права доступа к данным могут быть переданы лишь отчасти: кому-то только чтение, а кому-то еще и сетевыми. Важный элемент защиты таких систем - защита данных в памяти и на диске даже от подглядывания посторонними.
     Уровень D. На уровне D к системе не предъявляется специальных требований и может не проводиться сертификация. Таким образом, уровень D - системы, не соответствующие более высоким классам защиты, или незащищенные. К таким системам относится, например, MS DOS.

Эта классификация иерархическая в том смысле, что системы высоких уровней секретности обеспечены всеми механизмами защиты более низких уровней. Хотя эта классификация используется в основном для военных систем, она неизбежно распространяется и на гражданские и коммерческие системы. Эта классификация уже была применена к операционной системе UNIX, которая сейчас является обязательной для большинства военных и правительственных проектов в США. Есть еще ряд классификаций секретности, но они мало что добавляют к уже сказанному.
     Операционные системы для одноуровневых локальных сетей абсолютно все от LANtastic и Personal NetWare до Windows for Workgroup не отвечают даже намекам на безопасность. Более того, даже целесообразность применения на них криптографической защиты в виде NDisk из NU вызывает серьезное сомнение. Изрядное потрясение автор испытал, когда увидел, как просто проникнуть на чужой секретный диск в NWLite и пришел к грустному убеждению, что нельзя такого рода секретные диски держать под одноранговой сетью. Из этих систем особняком выделяется отечественный SECRET DOS, называемый еще SDOS, который представляет собой комплекс средств обеспечения безопасности компьютерных систем, построенных на базе IBM PC и операционной системы MS-DOS. SDOS может использоваться как на автономных компьютерах, так и на ЭВМ в составе локальных вычислительных сетей. Эта система предназначена для защиты информации от несанкционированного доступа и противодействия попыткам нарушения нормального режима работы вычислительной сиртемы. В целом она не дотягивает до уровня С1 и имеет следующие отличительные особенности не только рекламного характера:
      частичная аппаратная поддержка механизма идентификации;
      неплохое разграничение доступа для пользователей и групп;
      автоматическое стирание остаточной информации;
      малые требуемые ресурсы - около 4 килобайта RAM.
     Применение SDOS под одноранговой сетью может существенно усилить ее секретность, хотя, как и любое решение, не снимает всех проблем. К несомненному достоинству SDOS можно отнести и то, что пользователи охотно расстаются с ней, когда она разваливается от сбоев и не требуют ее восстановления.
     Следует отметить, что ряд фирм выпускает по-настоящему секретные сетевые программно-аппаратные средства, великолепно защищенные криптографически. Так, фирма Harris выпускает защищенную локальную вычислительную сеть LAN/SX и программные средства управления, формирующие защищенную вычислительную среду SX для многопроцессорных ЭВМ NightHawk этой же фирмы. Цена аппаратных и программных средств сетевого центра обеспечения безопасности примерно $25000, контроллеров индивидуальной криптографической защиты $5000, а программных средств $2500 за рабочее место. Число чисто программных решений значительно больше. Корпорация OpenVision продает продукт OpenVSecure на основе технологии Kerberus, обеспечивающий защиту сетей, по цене около $300 за станцию и $3000 за сервер. Фирма CyberSafe, выделившаяся из широко известной компании Open Computing Security Group, тоже на основе технологии Kerberus выпускает для широкого спектра платформ систему Challenger по ценам от $100 для станций и до $5000 для расширенных серверов. Компания Axent Technologies продает системы защиты для разных платформ под общим названием OmniGuard по ценам от $400 за станцию и до $4000 за сервер. За действительно безопасную систему нужно выложить несколько сотен тысяч долларов, поэтому неудивительно, что купившие их фирмы обычно не могут свести концы с концами по завершению финансового года.
     Теперь на примере NetWare кратко опишем использование функций обеспечения секретности. Защита информации в NetWare 3.11 организована по перекрывающимся уровням: файлы - директории - пользователи - группы. Администратор может сгенерировать систему защиты настолько сложной, насколько требуют конкретные условия. Хотя вряд ли она способна превысить уровень С2 в стандартной поставке, но и это очень неплохо. Очень важно, что конкретный пользователь может быть ограничен в работе по времени, к доступным ему рабочим станциям занимаемой дисковой памятью и числом попыток регистрации. У автора из практики сложилось мнение, что число попыток регистрации больше 2 вредно. Статистика показывает, что в 97% случаях пользователи входят в систему с первой же попытки набора пароля, в 2% со второй, а дальнейший перенабор пароля мало чем помогает. В то же самое время блокировать дальнейшие попытки набора. нужно на срок не менее часа - обеденного перерыва. Для оставшегося 1% удобнее всего предусмотреть эквиваленты для разового использования, выдавать их разиням и уничтожать в конце дня, меняя пароль. NetWare 3.11 хороша также и тем, что разумно проверяет пароль пользователя, защищая от ввода уже побывавшие в употреблении. Длина пароля может быть установлена в зависимости от требований секретности. Для повышенной секретности длина пароля не должна быть короче 12 символов, когда пользователь вынужден задавать пароли не словом, а хотя бы фразой. Принципиально слабое место NetWare - атрибут, запрещающий копирование файлов. Он не выдерживает даже такой атаки, как применение DiskEdit из нортоновских утилит. Поэтому нужно помнить, что любая информация, предоставляемая пользователю лишь на просмотр, может быть им скопирована.
     Несмотря на то, что безопасность систем обосновывается лишь теоретически, но проверяется она только практически. Хотите узнать, насколько прочно висит полка - просто потяните за нее. И нет лучшего способа аттестации безопасности системы, чем пригласить пару хакеров взломать ее, не уведомляя предварительно персонал сети. Такая практика стала широко распространяться в США, например, компанией Price Waterhouse. Штурм длится от 2 до 8 недель при солидном гонораре. Наемные хакеры в результате предоставляют конфиденциальный доклад с оценкой уровня доступности информации и рекомендациями по улучшению защиты. Доказать безопасность системы таким приемом все же нельзя, но хотя бы можно ее опровергнуть при явных просчетах, а это уже немало.

Источники угроз в сетях

Еще в недавнем прошлом компьютеры были доступны только большим организациям. Доступ к системам имели лишь небольшие привилегированные группы экспертов, которым хорошо платили за их лояльность. Самый тяжелый вид преступления, возможный в те дни, был случайно брошенный взгляд на размер чужой зарплаты в файле платежной ведомости. Проблемы коммерческой и личной безопасности обсуждались редко. Но в последние годы сочетание роста мощности компьютеров и вычислительных сетей, сделало компьютеры в сетях уязвимыми.
     Несомненно, что все беды возникают из-за несоответствия требований к сети характеристикам самой сети. Дефекты проектирования безопасности сети возрастают от быстро изменяющегося характера коммуникаций компьютеров. Раньше большинство компьютеров были изолированы друг от друга. Но когда сети позволили компьютерам обмениваться информацией, то теперь фактически все большие системы доступны из самых удаленных мест. Разработчики сетей, стремящиеся поддержать безопасность, стоят перед беспокоящим их парадоксом: открыто обсуждая дефекты сетей, они делают потенциально более известными "дупла" в них нарушителям и облегчают им несанкционированный доступ. Однако замалчивание дыр в системах гораздо хуже, так как создает опасную иллюзию благополучия.
     Рассмотрим это на примере нашумевшей во всем мире программы червя (Червь - вид вируса, который распространяется по линиям коммуникаций, а не через дискеты.) Роберта Морриса, первокурсника университета в Корнелле. Он хотел проверить возможность копирования программ с компьютера на компьютер в сети Arpanet. От ошибки алгоритма скорость размножения червя была гигантской, и встало больше 6000 компьютеров в США. Неожиданностью для Морриса было то, что червь поражал компьютеры военной секретной сети Milnet, а он проводил с ним эксперимент в несекретной сети Arpanet. Оказалось, что соединение этих сетей держалось в секрете и стало полной неожиданностью для студента. Для того, чтобы узнать - был ли компьютер уже заражен, Моррис проверял наличие на нем червя. Если компьютер еще не был заражен, то червь копировал себя в него. Однако Моррис рассудил, что эксперт легко может предотвратить инфекцию, заведя пустой файл с именем червя. Чтобы обойти это, Моррис решил с вероятностью 5% копировать червя в новую машину независимо от ответа, а его программа из-за ошибки делала это с вероятностью 95%. Когда же его червь попал в высокоскоростную Milnet, то он стал размножаться катастрофически быстро и машины встали.
     Для систем под машины DEC и SUN этот инцидент доказал, что безопасность сетей ими игнорировались, а рекламируемые надежность и безопасность UNIX были фикцией. Эксперты этих фирм, которые до того высокомерно объясняли неискушенным пользователям, почему их системы безопасны, после случая с Моррисом стали давать подробные интервью, почему это оказалось возможным. В программах UNIX оказались "дупла". Пересылка почты используется, чтобы передать сообщения по сети. Однако разработчик пересылки почты UNIX, оставил в ней "черный вход", через который любая программа пересылалась по почте подобно текстовому сообщению. Об этом многие администраторы сетей знали, и Моррис элегантно использовал это "дупло" для пересылки червя. Червь Морриса задействовал и программу указателя, позволяющую узнать имя последнего зарегистрированного пользователя на удаленной машине UNIX. "Дупло" в указателе тоже было известно и позволяло влазить в другие системы, если посылалось сообщение длиннее 512 байт. За счет этих ошибок червь Морриса тоже получал доступ к другим компьютерам. Третий дефект UNIX состоял в том, что список пользователей не был зашифрован и, прочтя его на компьютере жертвы, червь по именам пробовал подобрать пароли.
     Теперь сделаем выводы. "Это был несчастный случай, лишь ждущий своего часа, чтобы произойти. Мы заслужили его. Мы нуждались в чем-нибудь вроде этого, чтобы заставить нас задуматься, так как не уделяли достаточно внимания защите", - так заявил Джеффри Гудфеллоу, эксперт по коммуникациям. Проблемы в UNIX с возможностью несанкционированного доступа были известны месяцы, если не годы, но администраторы сетей не информировались о них и это оставило их системы беззащитными. Отметим, что хакеры в Англии узнали о черве в Arpanet по крайней мере на 12 часов прежде, чем средства массовой информации официально сообщили о нем и, не надеясь на государственные службы, сами начали патрулировать межсетевые шлюзы, чтобы давить червей. Они защитили британские сети компьютеров от вторжения червя Морриса, хотя и не дождались потом благодарности или подтверждения своей заслуги. Таким образом, отсутствие гласности и отказ от шифрования, что бы разом решило все проблемы, привели к этой знаменитой катастрофе.

Виды угроз и противодействие им

Угрозы компьютерам в сети по типам можно разделить на три группы: нелояльность, вторжение и проникновение. Под нелояльностью подразумеваются несанкционированные действия легальных пользователей. Вторжение означает проникновение в систему нелегала, укравшего или взломавшего пароль. Проникновение же относится не к людям, а наносящим компьютеру вред программам: червям, вирусам и троянским коням.
     Самый распространенный тип угроз - нелояльность, которая порой принимает катастрофические формы. Уволенные служащие иногда пытаются разрушить систему и оборудование. Известен случай, когда уволенный служащий в сердцах воткнул центральную жилу сетевого кабеля в электрическую розетку, чем вывел из строя с полусотню компьютеров. В другом происшествии из окна небоскреба в реку был выброшен файловый сервер. Даже законопослушные в обычном смысле пользователи часто нарушают правила работы в сетях. Это выражается в неправомочном использовании чужого компьютера, просмотре, копировании или модификации чужих файлов, а также преднамеренном саботаже чужих программ или крушении системы. Наиболее серьезный вид нелояльности можно ожидать от программистов, чьи программы, установленные в защищенной системе имеют, неописанные функции и режимы, так называемые "закладки", или алгоритм работы которых не соответствует описанному в документации. Многие читатели наслышаны о программистах, которые, некорректно выполняя округление в банковских системах, пересылали "сэкономленные" так средства на доступные им счета. В России, где валютные расчеты в ведутся не в центах, а в долларах, такой прием может быть применен преступниками даже в небольших банках с несколькими тысячами валютных счетов. Этот вид нарушений очень трудно выявить, разве что при детальном бухгалтерском анализе вручную или с помощью независимой системы.

Однако в большинстве случаев действия нарушителей происходят по формуле "хвать - бежать", то есть служащие банков и финансовых компаний могут заняться и прямым воровством. Особенно это характерно для "карманных" банков, где небольшое количество счетов позволяет легко контролировать сведение баланса вручную. Для предупреждения таких нарушений требуется сохранять сведения о транзакциях на независимом носителе в виде копий системы и оперативный семантический анализ данных о перемещении денег. Приведем пример. Кассир семнадцати лет облапошил Вестминстерский банк на миллион фунтов с помощью домашнего компьютера. После того, как юноша по сети коммуникаций взломал систему банка, он 1200 раз перевел по 10 фунтов на собственный счет, зная, что большие суммы переводов были под контролем. Потом аппетит юноши разыгрался, и он по компьютеру оформил кредит в 984252 фунта на счет своего друга, на чем и попался. Суд, разбиравший это дело, обвинил банк в слабом обеспечении своей безопасности и отказался присудить компенсацию в 15000 фунтов, чтобы возместить ущерб от действий хакера.

Особенный вид банковских компьютерных преступлений, который очень распространен на Западе, составляют "запуски змея", который наши средства массовой информации почему-то окрестили "пирамидой". Для его реализации нужен доступ к большому числу кредитных счетов, с которых можно снять не только деньги, что там лежат, но и "навар" в виде кредита в несколько процентов. Широко распространенное мнение, что российские счета или электронные карточки исключительно дебитовые и с них лишнего цента не снимешь, не совсем верно. Практически всегда для солидного счета допускается небольшой кредит, отрицательный остаток или "красное сальдо". Например, если клиент захочет снять наличными свои деньги со счета, на котором находится $492, то ему могут выдать и $500, лишь бы не возиться с мелочью, если, конечно, он счета при этом не закрывает. "Запуск змея" состоит в том, что преступники с помощью ЭВМ вкладывают деньги на допускающие кредит счета и снимают их оттуда вместе с кредитом. Так как сумма растет довольно медленно, требуется специальная программа, оптимизирующая движение денег, и несколько дней непрерывной работы. После того, как "змей" поднимется на достаточную высоту, ему обрезают удерживающую нитку, и, попросту, грабители смываются.

Это очень сложный вид компьютерных преступлений, требующий от исполнителей большого профессионализма в знании банковских и коммуникационных систем. С другой стороны, он редко раскрывается, так как многие банки теряют помалу и предпочитают сохранять факт хищения в тайне, чтобы не отпугнуть вкладчиков. В Англии полиции удалось "срезать" один из змеев только лишь благодаря тому, что у грабителей отказал компьютер и, пока они несколько дней восстанавливали данные, удалось напасть на их след.
     Вторжение всегда связано с кражей или взломом пароля другого пользователя. Прямое вторжение извне в компьютерные системы гораздо труднее осуществить, чем обычно полагают, читая газетные сообщения о хакерах. Многие случаи такого рода были обычно основаны на отличном знании внутреннего устройства системы. Удавшиеся попытки проникновения, не основанные на таком знании, являются результатом редкостной случайной удачи или некомпетентности персонала системы. Пример чистой случайности приведен в старом видеофильме "Военные игры", где было показано, как компьютер набирал в случайном порядке телефонные номера и пытался подобрать пароль, чтобы войти в сеть Пентагона. Изображенный в фильме случай был, бесспорно, невероятен, но когда тысячи школьников в США, просмотрев видеокассету, стали пробовать сделать то же самое, то это одновременно в тысячи раз подняло их шансы на успех. Как результат произошел ряд незаконных вторжений, а полиции и ФБР лишь за один день пришлось арестовать 5 молодых людей, 40 компьютеров и 23000 дискет в 14 городах США, чтобы остановить волну молодежного хакерства. Однако это, утверждал агент ФБР, была "лишь верхушка айсберга".
     Вторжение из-за некомпетентности персонала в сеть NASA произошло, когда космическая администрация открыла вход в свою закрытую систему всем желающим на правах гостей. Она намеревалась этим сделать бесплатную рекламу Шаттлу, чтобы получить государственные субсидии и пренебрегла от этого безопасностью. Тогда же безработный Рикки Уиттман, пытаясь убить время, с домашнего компьютера вошел в сеть НАСА, чтобы взглянуть на рекламу корабля Шаттл, и начал играться, нажимая различные клавиши. Случайно нащупав "дупло", он получил права полного доступа (Про случайность говорили газеты и адвокаты. На самом деле Уиттман, очевидно, был достаточно опытным хакером, взломавшим даже компьютер Федеральной резервной системы США.) . После этого он не раз по вечерам входил в главный компьютер НАСА, чтобы получить больше знаний об этой системе и раздобыть полномочий, пока однажды по экрану его монитора не побежали сообщения: "Убирайся немедленно, придурок! Отключи телефон, идиот!" Эти рекомендации ему было слишком поздно выполнять. Вся секретная служба НАСА уже была на его хвосте. Более 200 человек, 300 часов круглосуточно отслеживая телефонные звонки, засекли его квартиру в провинциальном городе Колорадо, аж на четвертом этаже старенького дома, где Уиттман использовал допотопный IBM XT компьютер. Судом Уиттман был признан хакером, эквивалентным 115 пользователям НАСА, зарегистрированным в 68 пунктах космической сети с правами доступа, превышающими обсерваторию в Мюнхене. Уиттман ис кренне выражал сожаление о том, что сделал. Он попытался защищаться тем, что сеть НАСА сделана некомпетентно, иначе этого бы не случилось. Эксперт, вызванный судом, опроверг доводы Уиттмана: "Никакая система безопасности не безопасна абсолютно. Если вор взломает замок на двери дома, разве домовладельца нужно осуждать за то, что не поставил более надежного замка?"

Однако самую большую угрозу безопасности всех компьютерных систем представляет косвенное проникновение или наносящие вред программы. Вирусы и черви нередко используются хакерами для того, чтобы перехватывать чужие пароли. Для обеспечения секретности сетевой системы необходима тщательная антивирусная гигиена. Троянские кони ведут себя по-другому. Они обычно имитируют программу шифрования, не производя закрытия текста качественно или оставляя хакеру ключи от "черного входа". Программа лишь продолжает волю своего земного создателя и тот, хотя бы морально, ответственен за все беды, вызванные ею, являются эти неприятности преднамеренными или случайными. Например, известны случаи, когда два безобидных вируса, скрещиваясь, давали мутанта убийцу. Автора вируса найти обычно невозможно, а тот может беспрепятственно портить систему, разрушая данные, либо захватывая ресурсы. Такую атаку бывает очень тяжело обнаружить и в конце концов еще тяжелее предотвратить. В 1990 году неизвестный хакер несколько раз входил в компьютеры Леверморской лаборатории США, разрабатывающей системы для звездных войн, но не проникал в ее секретную часть, которая была программно изолирована. Позже тот же хакер, так и оставшийся неизвестным, все же ворвался в секретную часть сети через Internet.
     Это стало возможным, лишь потому, что сеть в то время была поражена вирусом. Служба безопасности лаборатории считала, что инфицирование вызвано не хакером, просто он им воспользовался для проникновения. Обычно, как только обнаружен и уничтожен один вирус, тут же разрабатывается другой, приносящий еще больший вред. Создание таких программ всегда будет привлекать людей определенной психики, и продажа антивирусов уже выросла до размеров целой отрасли.
     Многие компании относятся к проблеме вирусов очень серьезно. Ожидается, что американские компании потратят около 2 миллиардов долларов в 1995 году на защиту данных ЭВМ. Поэтому, все программы сетевых систем должны быть лицензионно чистые и с надежным авторством. Покупая такие программы, следуйте правилу шпионов, которые никогда не садятся в первое подвернувшееся им такси.
     Как упоминалось выше, можно выделить четыре основных подхода к безопасности компьютерных систем, называемых условно правовым, административным, криптографическим и программно-техническим. Шифрование данных - основа безопасности в компьютерах, используемых военными и службами безопасности. Напомним, что Arpanet связывавшая компьютеры исследовательских центров и военных баз США, не шифровалась, что вызвало ее крах от червя Морриса.
     Административный подход представлен, как правило, бывшими специалистами по обеспечению безопасности информации из органов государственной безопасности, Вооруженных Сил или режимных служб оборонных предприятий. Для него характерно решение проблем защиты преимущественно административными методами и средствами. Такой подход позволяет достаточно надежно защитить компьютерную систему, потому что преступления совершают отнюдь не компьютеры, но люди. Более того, в основе любой системы безопасности лежит угроза применения физической силы, хотя бы в виде "находят, задерживают и преследуют по суду". Однако административному подходу присущи и серьезные недостатки:

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

Программно-техническое направление представлено наиболее широко. Разработки программных средств в области защиты информации выполняются квалифицированными программистами, знающими уязвимые места системных программных средств. Сильной стороной этого направления является, как правило, хорошая реализация. Существенным недостатком будет, как правило, отсутст- вие системного подхода к вопросам защиты информации, что ведет к фрагментарности предлагаемой защиты. Можно, например, установить прекрасные устройства авторизации доступа, встроенные в клавиатуру, но, работая в практически ничем не защищенном MS-DOS, не получить от их установки никаких дополнительных гарантий безопасности. Трудно ли взломщику сменить клавиатуру?
     Криптографический подход развивается бывшими и действующими работниками бывшего 8 управления КГБ, ГРУ, а ныне ФАПСИ. Это вполне понятно. Единственной организацией, профессионально занимавшейся вопросами криптографической защиты в стране, был КГБ. Сильная сторона применения криптографии - способность закрытия конфиденциальной информации с определенными гарантиями для ее владельца. Однако и это направление также имеет свои недостатки:

      сложности распределения зашифрованной информации между несколькими пользователями;
      большие накладные расходы от снижения скорости.
    

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

Атаки на сетевые системы

В результате многих проведенных исследований были определены основные уязвимые места в сетевых системах. Ими, как правило, являются аппаратура, файловый сервер, пароли и среда передачи данных. Если файловый сервер может быть защищен организационными мерами, то среда передачи данных так не может быть защищена. Основная опасность для сети - в "дырах", которые позволяют злоумышленникам получать незаконный вход в компьютеры сетей. Имеется широкий общественный интерес к тому, чтобы сети компьютеров, используемые для каждодневных действий, были защищены от нападений хакеров. Например, система управления воздушным движением могла бы быть повреждена, если кто-то собьет коды в ЭВМ, ослепив диспетчеров, руководящих полетами. Два эпизода в США с нападениями хакеров затронули военные компьютеры с крупными секретами: в корпорации Mitre, компании с контрактами Пентагона, и в Arpanet, сети министерства обороны США. Незаконный доступ к системам компьютера может компрометировать секретность данных многих людей. Так. компания TRW заявила, что пароль, обеспечивающий доступ к 90 миллионам кредитных счетов в файлах, был украден - легко себе представить чувства владельцев этих счетов!
     Дефекты в системе безопасности компьютеров также использовались, чтобы уничтожать данные.

Хакер получив доступ по телефону на компьютер офиса фирмы REP в Калифорнии разрушил там файлы и вызвал крах системы. Четырьмя днями позже опять кто-то опять проник в тот же компьютер, разрушил сотни писем и отправляющуюся почту. В Австралии неизвестный хакер, квалификация которого была оценена как эксперт, атаковал компьютер телефонной компании (Хакеров, атакующих компьютеры АТС, обычно называют фрекерами от phone breaker - взломщик телефонов. Как правило, они причиняют вред лишь из-за неоплаты телефонных звонков и в России практически не работают из-за отвратительного качества связи.). Его нападение отрезало тысячи телефонных линий и компьютеров, включая самые большие банки и биржи страны, которые простаивали в течение полного дня. Специалисты считают, что существующие сетевые операционные системы имеют фундаментальные дефекты в системах обеспечения безопасности, которые игнорируются, пока не произойдет шумный инцидент с проникновением хакера. Некоторые дефекты существуют в каждой системе, но еще в недавнем прошлом продавцы систем не хотели признавать это.
     Ходжа Насредин, когда ему нужно было спрятать свои деньги от воров, сначала хотел их закопать. Однако подумав, что будь вором он сам, то быстро бы нашел клад. Видимо, нет лучшего способа оценить безопасность системы, как представить себя в роли ее крекера. Поэтому изложение этого раздела состоит в основном из фольклора и кулинарных рецептов. Ряд видов атак, входящих во все теоретические руководства, опущены как практически не встречающиеся, а технологические советы и угрозы расписаны подробно.

Атака на аппаратуру

Имеется много сведений о встраивании в компьютеры (и даже калькуляторы!) передатчиков, что вполне возможно, но мало разумно из-за низкой информативности и легкой обнаружаемости службами безопасности. Скорее всего их встраивают сами секретные службы, чтобы такими находками оправдать расходы на свое содержание. Вместе с тем, известны варианты BIOS клавиатуры, сохраняющие в шифрованном виде с тысячу символов, введенных после включения компьютера и даже передающих их радиоизлучением. Известно так же, что все сверхбыстродействующие ЭВМ имеют секретные блоки двойного назначения - как для диагностики технического состояния, так и ограничения сферы применения ЭВМ условиями поставки. Эти блоки хорошо защищены от взлома - попытка отечественных служб вскрыть аналогичное устройство фирмы Барроуз провалилась, окончившись "последним серьезным предупреждением". Озадачивает сообщение, что за несколько недель перед началом войны с Ираком, американские спецслужбы вставили вирус в сеть иракских компьютеров противовоздушной обороны. Сообщали, что вирус был разработан АНБ и предназначен калечить главный компьютер сети иракских ПВО. Эта секретная акция началась, когда шпионы узнали, что сделанный французами принтер, ввозился контрабандой через Иорданию в Багдад. Агенты в Аммане заменили микросхему в принтере другой, которая содержала вирус. Нападая на иракский компьютер через принтер, вирус был способен избегать обнаружения процедурами безопасности. Когда вирус попадал в систему, то компьютер выдавал ложную информацию о целях. В результате иракская сторона вынуждена была оставить без ответа бомбовые удары по своей территории. Хотя такое сообщение выглядит фантастично и появилось на свет 1 апреля, но с сетевым принтером PostScript это предположительно возможно. Так или иначе, сеть иракских ПВО фактически не работала. Хотя результативнее была бы атака, вызывающая сбои не очень редко, чтобы скомпрометировать данные, но и не очень часто, чтобы не быть обнаруженной. Тем не менее, аппаратуру для сети с повышенной секретностью нельзя покупать по заказу или на имя фирмы, что позволит гарантированно избежать подвоха. Гораздо разумнее будет покупать ее вдруг за наличные или через законспирированного партнера.
     В верхней памяти ЭВМ, относящейся не к ней самой, а таким устройствам, как контроллер винчестера или дисплея есть участки, которые допускают не только чтение, но и запись. Нередко непрофессионально написанные программы (обычно программы на языке Си с неопределенным указателем) пишут туда черт-те что, выводя этим самым из строя аппаратуру. Характерный пример - винчестер перестает грузиться, но идеально работает, если загрузка произведена с дискеты. Поэтому есть ряд программ, как Rescue из нортоновских утилит, которые позволяют сохранять и восстанавливать содержимое этой памяти в случае ее модификации. Многие такие утилиты контролируют неизменность памяти с помощью контрольных сумм, а это в ряде случаев может выявить изменение конфигурации ЭВМ при установке в нее шпионских устройств. Однако доступ ко многим устройствам происходит через порты, а найти или блокировать очень сложно.

Атака на файловый сервер

Обычно файловый сервер хорошо защищен административно. Тем не менее, защиты консоли паролем явно недостаточно. Было бы лучше блокировать клавиатуру еще и специальным ключом, как это сделано в ряде моделей Hewlett Packard. В одной из финансовых организаций после перегрузки сети от сервера вообще отсоединяли монитор с клавиатурой и выгружали модуль MONITOR. Такая предосторожность там не казалась чрезмерной и, наверное, это правильно.
     Другая проблема серверов - черви, вирусы и троянские кони. Обычно червь стремится инфицировать как можно больше других машин. Он лишь воспроизводит себя и ничего больше. Если система терпит крах или перегружается, что бывает не так уж и редко, процедура загрузки системы уничтожает червя и его следы. Однако коммуникационное общение снова восстанавливает его с инфицированных машин. Поэтому администраторы инфицированной сети могут договориться об одновременной перегрузке своих систем, закрыв временно до выяснения обстановки шлюзы. Это, самый легкий и простои способ избавиться от червя.
     Чтобы не инфицировать одну машину дважды черви, прежде чем заразить ее проверяют свое наличие там вызовом файла, через который они размножаются. Следовательно, самая простая защита от червя - создание файла с его же именем. Этот прием известен как "презерватив". В некоторых системах достаточно вместо файла завести поддиректорию с тем же именем. Однако некоторые "зловредные" черви, как у Морриса, пытаются обойти это условие. Тем не менее, червь не проникнет в сеть, если атрибуты файла с его именем не допускают удаления и перезаписи.
     Червяки необязательно вредны. Фольклор имеет первое свидетельство о появлении червя на Arpanet аж в 1970 году. Тогда ее атаковал червь, названный вьюном, чья единственная цель состояла в том, чтобы копировать себя с машины на машину. Когда он инфицировал компьютер, то выдавал сообщение: "Я - вьюн. Поймайте меня, если можете!" Легенды сообщают, что один администратор, инфицированный вьюном, рассердился и быстро написал программу червя киллера, которая пролезла через весь Arpanet, перебила вьюнов и "умерла". Несколькими годами позже, в корпорации Ксерокс разработали специальные виды червей. Шок и Хупп написали червя глашатая, который патрулировал сеть, ища плохо работающие компьютеры. Они даже описали червя вампира, который был предназначен, чтобы запускать сложные программы ночью, когда пользователи спят. Лишь только люди возвращались к терминалам, то программа вампир шла спать, чтобы возвратиться и начать работать следующим вечером. Аналогичный червь был написан в СССР для DECnet, чтобы контролировать активность узлов. Так как он имел низший приоритет, то активизировался, лишь когда машина простаивала и фиксировал это. Без червя не удалось бы решить такую важную для математики и криптографии задачу, как нахождение множителя 13-го числа Ферма. Для этого в фирме NeXT использовали простые рабочие станции. Червь, названный ZiUa, инфицировал около 100 рабочих станций этой фирмы, объединенных в сеть, эквивалентную по производительности суперЭВМ. Червь использовал свободное машинное время. Задача поиска простого числа была разбита на отдельные сегменты и распределена между всеми рабочими станциями.
     Каждая из этих станций сообщала своему червю о решении своей части задачи и полученном результате. Главное преимущество такого подхода состояло в том, что работа, производимая червем практически ничего не стоила, так как использовалось свободное машинное время. Когда пользователь оставлял свою рабочую станцию больше чем на 10 минут, то червь Zilla переключал станцию на решение заданной ему задачи. При возвращении пользователя, как только он нажимал клавишу на своей станции, червь Zilla просил дать ему несколько секунд для выключения.
     В отличие от червей вирусы не являются самостоятельной программой, а представляют собой как бы "наросты" на программе-хозяине, которые заражают другие программы и распространяются они преимущественно через копии программ на дискетах. Часть из них почти безвредны - один из ранних вирусов заявлял: "Хочу ЧУЧУ!" и блокировал компьютер до тех пор, пока пользователь не набирал "ЧУЧУ". Вирусные инфекции компьютеров имеют давнюю историю. СССР официально заявил в конце 1988 года, что так называемые вирусы компьютера вторглись в системы по крайней мере пяти государственных учреждений, но советские ученые разработали путь выявлять известные вирусы и предотвращать наносимый ими ущерб. В августе 1988 года вирус инфицировал 80 компьютеров в Академии наук прежде, чем это было распознано. Появление вируса связывалось с занятиями групп советских и иностранных школьников, посещавших компьютерный класс. СССР утверждал, что разработана защитная система "Щит PC", которая оградит советские компьютеры от любых вирусов. По утверждениям официальных лиц, эта защитная система не имела аналогов в мире, а принцип ее работы является государственной тайной. (Хороший пример того, что собственно составляет тайну в России.)

В большинстве случаев вирусы пишутся начинающими программистами и содержат в своих текстах грубые ошибки, облегчающие дезинфекцию. Внимание к вирусам возникает спорадически, так в канун юбилея Микеланджело появился вирус, названный его именем, который в день торжества 6 марта 1992 года мог бы остановить десятки тысяч компьютеров по всему миру, уничтожив данные на их жестких дисках. Возможно, что благодаря широкой огласке в прессе, вирус Микеланджело поразил тогда лишь несколько сотен PC в США. Наиболее часто заражение вирусами наносится через игры. В Корнуэльском университете два студента написали вирус, который разрушил данные компьютеров аж в Калифорнии и Японии. Они инфицировали игры Obnoxious, трехмерный Tetris и Tetricycle. Вирус сначала появился в университете Стенфорда и распространился оттуда по всей стране. Вирус может быть как обычный, так и специально настроенный на проникновение в конкретную компьютерную систему и запущенный туда издалека.
     "Вирусы - вызов для рынка, - сообщил Джон Эдварде, директор маркетинга компании Novell, которая заразила несколько тысяч своих пользователей вирусом Stone-111 через распространяемую по подписке техническую энциклопедию. - Но мы будем поддерживать на высоком уровне нашу бдительность". В письме заказчикам компания сообщала, что Stone-111 вирус не будет распространяться по сетям и инфицировать другие файл-серверы. Stone-111 - "бутовый" вирус, который работает, проникая в специальную область на дискете, и тогда копирование ее в другой компьютер инфицирует как другой компьютер, так и другие дискеты. МакАфии, президент антивирусной компании, сообщил, что этот вирус может иногда калечить систему. Stone-111 сначала появился в Европе за три месяца до попадания в Новелл. Этот вирус - представитель класса программ известных как Stealth вирусы, потому что они хорошо прячут свое местоположение и их трудно выделить. Сейчас Novell применяет новые технологии установки программного обеспечения, чтобы сделать более трудным вторжение вирусов. В 1992 году компания лицензировала специальное программное обеспечение с цифровой подписью, которое сделало трудным для вирусов процесс распространения необнаруженными.
     Тем не менее опасность поражения вирусами при соответствующей гигиене невелика. Похоже, что фирмы, занятые продажей антивирусных программ в печати преувеличивают эту проблему. Более половины сетевых систем вообще никогда не подвергались инфекции, а вероятность поражения вирусом незащищенного изолированного компьютера менее 1% за год. Далее, даже в случае заражения лишь несколько процентов вирусов способны причинить ощутимый вред. Однако хотя проблема вирусов стоит далеко не на первом месте, она все же существует. Так фирма Rockwell International сообщала, что лишь одна атака вируса на ее сеть из 600 компьютеров с 9 файл-серверами обошлась ей в $44000. Разговоры о чудесных аппаратных средствах против вирусов несодержательны, так как исследователи давно уже доказали, что компьютерный вирус может распространяться в любой операционной системе, независимо от того, защищено ли ее ядро аппаратно или нет.
     Сканирование компьютера и дискет сейчас стало неэффективным из-за появления полиморфных вирусов типа Stealth, которые используют шифрование своих кодов, и вероятность обнаружения вирусов таким путем не превышает 50%. Однако случай с вирусом Сатанинский Жук, запущенным в феврале 1993 года хакером по кличке Hacker4Life в rocучреждения США, показывает, что трагедий и в этом случае не будет - вирусологи за уикэнд справились с ним. Вообще-то, надежда на антивирусы и вакцины очень слабая - нужна гигиена внешних общений. Администраторов систем, полагающихся на мощные антивирусы и практикующих рискованные эксперименты с запуском программ сомнительного происхождения, можно сравнить с человеком, не боящимся приласкать бешеную собаку лишь на том основании, что в детстве ему сделали прививки.
     Кардинально, раз и навсегда можно решить проблему борьбы с вирусами и несанкционированным копированием данных большого объема, если лишить рабочие возможности общаться с внешним миром - отключить гибкие диски и все порты. Будет еще лучше, если на них будут отсутствовать и винчестеры, а загрузка происходить с BOOT ROM. Отключение гибкого диска в этом случае осуществляется довольно просто даже логически в процедуре загрузки, и супервизор может оставить привилегированным пользователям возможность обмена с дискетами.
     Наиболее опасны при внедрении в систему программы типа троянского коня, потому что это почти всегда свидетельствует о нападении хакеров. Например, сети NASA, SPANet и CERN имели прекрасную репутацию, чистое прошлое и неплохие гарантии безопасности. Единственный их недостаток заключался в том, что они почили на лаврах и ослабили бдительность. Когда немецкие хакеры напали летом 1987 года на эти сети то, чтобы остаться незамеченными, они запустили троянского коня. Три хакера были арестованы в Берлине, Гамбурге и Ганновере и обвинены в шпионаже на СССР. Они вторглись в научные и военные компьютеры, получили пароли, механизмы доступа, программы и передали эти данные КГБ. Сообщали, что они за это получили около ста тысяч марок ФРГ. Немецкая контрразведка заявила, что ожидала подобное, но удивлена, как это случилось так скоро и с такими большими результатами. Западная пресса тогда была занята оценкой - серьезнее ли ущерб от хакеров, чем от секретаря Вилли Брандта, купленного КГБ. Это были: Маркус Гесс из Гамбурга, Карл Кох из Ганновера по кличке Вилли Хакер и Дирк Бзежинский из Берлина. Они использовали данный им КГБ идентификатор и соответствующий ему пароль. Карл Кох вероятно покончил жизнь самоубийством в 1989 году - его тело было найдено сожженным бензином в лесу под Ганновером. Он страдал от мании, считая, что инопланетяне хотят убить его.
     В другом случае дискета, содержащая троянского коня, была отправлена по почте пользователям компьютеров по крайней мере четырех европейских стран. Программа угрожала разрушить данные на компьютере, если пользователь не внесет плату за лицензию фиктивной компании в Панаме. Дискета была отправлена по почте от "PC Cyborg" подписчикам журналов по торговле персональными компьютерами, очевидно, используя списки их рассылки. Диск профессионально упаковывался и сопровождался брошюрой, которая описывала его как "Помощь Вашему Диску". Но будучи установленной в компьютере пользователя, дискета изменяла несколько системных файлов и записывала свои секретные программы, которые позже уничтожали данные с винчестера. Соглашение лицензирования, которое сопровождало дискету, содержало угрожающую информацию: "В случае Вашего нарушения этой лицензии, PC Cyborg сохраняет право выполнить любое законное действие, чтобы возместить ущерб любым неоплаченным долгам корпорации и использовать механизмы программы, гарантирующие завершение Вашего использования этих программ, которые будут неблагоприятно затрагивать другие программы на Вашем компьютере." Когда троянский конь инфицировал компьютер, то помещал на экране сообщение, предлагающее во избежание неприятностей послать $387 по адресу в Панаме.

Не нужно думать, что троянские кони - всегда сложные программы. Так, на компьютере с установленным драйвером ANSI троянским конем может стать даже текстовый файл с содержимым всего в одну строку:

ESC[13;"WIPEINFO С: /S /BATCH",-13;^

Будучи скопирован на экран, этот файл вызовет перепрограммирование нажатия клавиши Enter на смывание всех данных с диска С. Поэтому нужно быть очень осторожным с файлами практически любого расширения, а не только СОМ и ЕХЕ. Как пример можно привести уж очень специфический вирус, живущий в текстовых файлах Word for Windows. В ранних версиях он был довольно безобидным лишь, заявляя время от времени о своем существовании, а теперь приобрел еще и наклонности террориста.

Атака на пароль

Воровство паролей доступа к компьютеру, конечно же преступление. Однако большинство людей и особенно деловых настолько небрежны с ключами, что доказать потом именно воровство, а не передачу, невозможно. Потеряв $82000 из-за незаконных обращений по телефону вследствие кражи пароля, одна компания США "просто" сменила все 800 своих телефонных номеров и переопределила тысячи паролей доступа пользователей.
     Определенные типы связанного с компьютерами мошенничества, типа вхождения в базы данных платежной ведомости или банковских счетов, при подборе хакером пароля могут быть блокированы созданием ложных клиентов или призраков. Если кто-то войдет в систему под идентификатором призрака, то это означает, что либо произошли грубая ошибка, либо вмешательство хакера. Не поленитесь в любой системе сделать длинный ряд таких призраков: BOOKKEEPER, CHIEF, DIRECTOR, ENGINEER, GUEST, MANAGER, MASTER, PRESIDENT, SYSTEM и, конечно же, SUPERVISOR. В процедуры загрузки призраков вставьте оповещение по тревоге, блокировку клавиатуры и выгрузку врага с выдачей ему сообщения: "Sorry! Backup in process now. Please, call us 20 min late." Останется лишь обратиться к службе безопасности, чтобы дальше нежелательным визитером занялись они, это уже их дело.
     Подбор паролей ведется хакером строго закономерно. В одном из 20 случаев пользователь вместо пароля вводит: свое имя, название своей компании, свои инициалы, год рождения, номер служебного или домашнего телефона, номер своей автомашины и прочую ерунду. У ряда пользователей есть особенность набирать в виде пароля славянское имя на английском регистре. Пользователи, имеющие хобби, вводят пароли из интересующей их области - названия вокальных групп, пород собак и спортивные термины. Пользователи системы всегда будут предлагать пароли, которые легки для запоминания. Например, если "Белый ветер" - название фирмы пользователя, то хакер мог бы пробовать WHITE, WIND, WHITEWIND или WWIND как пароли. Если хакеру известно. что бухгалтер в "Белом ветре" Иван Углов, то он вводил бы IVAN, VANYA, UGLOV или IVANUGLOV как пароли. При анализе списка пароля наблюдались такие общеизвестные факты: четверть паролей были женские или мужские имена, страны, исторические лица, города или блюда (это в Италии) и лишь каждый двадцатый пароль был такого характера, чтобы его нелегко было разгадать. Вспомните заводской пароль BIOS фирмы AMI конечно же AMI, а у Norton Utilites - бесспорно NORTON! Этот список можно было и продолжать, но боюсь, что побьют программисты, так как подобные пароли рассчитаны лишь на неопытных пользователей.
     Если ничто не помогает, хакер может воспользоваться 240 стандартными паролями, адаптированными к условиям России. Обнаружив такое имя, администратор системы должен заставить пользователя сменить его. Список этих паролей, которых любой администратор систем должен избегать как СПИДа, дан в приложении. Теперь сделаем выводы. Охрану коммуникаций обсудим позже, а вот правила для выбора пароля должны быть следующие:

 Пароль должен быть неожиданным, а лучше - случайным.
 Если пароль придумывает пользователь, то пусть он хотя бы будет длинным - не менее 12 символов.
 В больших организациях при уходе служащего в отпуск не ленитесь блокировать его доступ в систему до возвращения.
 Когда чувствуют хоть малейшую опасность, изменяют все пароли, а не только пароли, вовлеченные в инцидент.
 Убедите пользователей не использовать один и тот же пароль в нескольких системах одновременно! Хакеры могут коварно воспользоваться этим.
 Заводите пароли призраки, являющиеся западнями для хакеров.

Считается, что алфавитно-цифровой ключ должен состоять как минимум из 7 знаков, то есть около 20 бит информации, иначе вскрытие шифра предельно просто. Класс символов, составляющих ключ должен быть как можно более представительным, включая в себя буквы, цифры, знаки препинания и псевдографику. Так, если в ключ из 6 символов входят только прописные русские буквы, образующие осмысленное слово, то вряд ли число ключей будет больше 20000 и перебор прост. Если же орфографическая правильность и постоянство регистра не требуется, то, счет допустимых ключей пойдет уже на миллионы. В принципе, можно использовать отрывки из книг, беря каждую третью букву, начиная с определенного места или комбинируя два слова как ГОРОДрапз.

Хорошие результаты дает использование двух типов ключей: текущего, для входа в систему или шифрования текста, и основного, для шифрования ключей и паролей. Основной ключ, которым шифруют ключи, должен быть очень надежен и используется на протяжении определенного времени - от одного месяца до года. Им шифруют текущий ключ из 30-40 случайных байт. Текущим ключом шифруют сообщение и посылают эту шифровку получателю вместе с шифровкой текущего ключа, сделанной по основному ключу. Такая техника длительное время употреблялась в отечественной криптографии. Она также необходима при пересылке и хранении ключей, потому что даже надежному курьеру или самой защищенной системе вряд ли стоит доверять открытый текст ключей и паролей. Ключ для шифрования ключей еще называют главным или master key. Основной ключ в классических системах шифрования вскрыть из шифровки практически невозможно, так как в сообщении отсутствует избыточность, которая является основной помощницей криптоаналитика. Все рассказанное не снимает вопроса о получении основных ключей - крайне желательно, чтобы все символы в них были бы независимыми. Ключи лучше всего получать с помощью той же системы засекречивания случайным набором с клавиатуры сначала файла ASCII, а затем максимально длинного ключа. Фрагмент шифровки и будет представлять собой хороший ключ, если у нее выбросить стандартный заголовок, специфичный для каждой системы.
     Наиболее опасна атака на пароль супервизора. Большинство сетевиков наслышано о программе, основанной на "дупле" в Novell 3.11, когда за счет посылки сообщения с адресом станции супервизора, пославшему его пользователю назначается эквивалент супервизора. Хотя в Novell 3.12 и 4.01 эта ошибка исправлена, но по последним сообщениям теоретически есть обходные ходы. Собственно говоря, заплата (patch) для этой дыры в энциклопедии Novell появилась давно, однако, видимо, дыра пошире, чем ее увидел некий голландский студент. Утилита SETSPASS позволяет сменить пароль супервизора в NetWare 3.11 на любой введенный, но для этого надо знать серийный номер пакета инсталляции системы. А вот номер пакета тоже можно поменять на любой утилитой SERNO. Не стоило бы писать об этом, если не два крутых обстоятельства. Во-первых, по статистике получается так, что в Novell 3.11 сейчас работает около четверти всех сетевых пользователей. Во-вторых, большая часть администраторов работает под именем SUPERVISOR, что абсолютно недопустимо, так как это имя известно абсолютно всем. Естественно, что лучшей защитой от будущих невзгод в этом случае является назначение супервизором себе эквивалента с неизвестным именем, а в процедуру регистрации супервизора надо встроить механизм обнаружения наглеца и закрытия или смывания всех секретных данных.
     Бороться с незаконным использованием чужих паролей в сети можно и с помощью устройств идентификации, среди которых особенно привлекательны системы идентификации по "почерку" работы пользователей на клавиатуре. Такого рода приборы предлагаются фирмами Electronic Signature Lock и International Bioaccess Systems по цене около $500. Данный подход исключителен по скрытности и непрерывности действия. Он не требует в отличие от других методов никаких настораживающих хакеров действий и великолепно распознает стиль работы людей за клавиатурой от стиля программ, подбирающих пароли. Другая процедура идентификации может быть реализована, когда, регистрируясь в сети, пользователи дают о себе дополнительную информацию, а система при каждом их входе требует ввести ее фрагменты. Например, пользователь может быть запрошен о своем годе рождения или адресе места жительства.
     Очень сильная атака на ключ - подделка его. Опасность подделки очень серьезна хотя бы потому, что ее обычно тяжело заметить. Для классических одноключевых криптосистем подделка ключа встречается очень редко - автору довелось лишь раз видеть хакерскую подделку, заменяющую все символы вводимого ключа на пробелы. Однако для систем с отрытым ключом, знать открытый ключ мало, надо еще быть уверенным в его авторстве. Поэтому, открытый ключ всегда должен быть заверен цифровой подписью или распространяться точно так же, как и секретные ключи.

Атака перехватом и навязыванием пакета

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

 невозможность технологии "клиент-сервер", так как информация хранится на сетевом диске в зашифрованном виде, то СУБД не может оперировать с ней;

 система остается незащищенной от воздействий на нее с целью дезорганизации, так как заголовки пакетов не шифруются;

 трудность коллективной обработки зашифрованной информации из-за совместного использования общего ключа.

Для предупреждения ознакомления перехватчика с содержимым пакетов достаточно шифровать только их, оставляя данные на сервере в нешифрованном виде. Это можно выполнять программно, специальными драйверами сетевых карт из энциклопедии Новелла, или же аппаратно, специальными сетевыми картами, среди которых наиболее известны предлагаемые фирмой 3COM. Если сеть не перегружена и к скорости ее особых требований не предъявляется, то программное шифрование представляет собой довольно приемлемое решение. Если же скорость обмена в сети должна быть высока, или одиночный абонент удален, или требуется повышенная секретность, то альтернативы шифрующим сетевым картам, которые стоят на порядок дороже обычных, просто нет. Среди отечественных средств технической защиты от перехвата пакетов стоит упомянуть систему защиты "Снег-ХВС", представляющую собой шифратор стоимостью около $350 на одно рабочее место. Из зарубежных средств стоит выделить криптографический сетевой адаптер IBM-4755, входящий в систему TSS (Transaction Security System), предназначенный в основном для платформ ES/9000, AS/400 и RS/6000. Впрочем, его можно использовать и для персональной ЭВМ, но цена прямо-таки кусается.
     Атаки на рабочую станцию через перехват пакетов просты тем, что в подавляющем большинстве сетей пользователь загружается на ближайший откликнувшийся сервер. Если в сеть с прозрачным протоколом внедрился перехватчик, то он может имитировать стандартные действия сервера:

1. Запрос имени.
2. Запрос пароля.
3. Имитация сбоя или неверно набранного пароля.
4. Отключение от сети.

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

Атаки на канал телефонной связи

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

1. Главное правило зашиты линий связи гласит: имейте как можно меньше линий, насколько это возможно. Частные линии или прямые связи - часто жизнеспособная замена для общих телефонных линий.
2. Код идентификации или имя пользователя желательно передавать автоматически модемом, чтобы исключить его ручной набор. Если сделать его очень длинным, то и подбор его тоже будет невозможен.
3. Если нужно иметь телефонные линии для компьютера, лучше использовать обратный вызов по отдельной линии, не принимающей звонки. 4. Если обнаружен хакер, вызывающий определенный номер, нужно сразу же изменить номер и поставить наблюдение.
5. Если линии не используются по ночам или в воскресенья, они должны быть отключены. Хакеры обычно делают их черное дело в это время.

Есть метод компьютерной охоты, называемый сканированием. Предположим, хакеру надо проникнуть в систему банка. Тогда по Желтым Страницам находится номера секретаря, отдела кредитов и прочее. По ним определяются первые три цифры префикса района, которые задают АТС, и нужно лишь проверить оставшиеся четыре цифры от 0000 до 9999. Имеется масса программ, чтобы не делать это вручную. Ряд номеров зарезервирован телефонной службой для технических средств и чаще других в различных АТС используются номера: ХХХ-ОООО, ХХХ-0002, ХХХ-0009, ХХХ-0019, ХХХ-0083 и ХХХ-0092. Хакер не должен набирать все номера подряд - однажды при поиске компьютерной системы банка три подряд идущие номера принадлежали службе его безопасности и, если бы там сидели не гориллы, а профессионалы, то заподозрили бы неладное. Результатом сканирования будет список телефонов, с которыми была установлена цифровая связь, но большинство из них - факсы. Если же подряд ответили несколько номеров, то это верный признак, что они принадлежат одной компьютерной системе.
     Порой система не будет делать ничего, но молчать, как партизан на допросе. Тогда хакер попробует менять паритет, длину данных и биты остановки, варьировать скорость и протокол обмена, послать ряд символов , или других, изменить терминальную эмуляцию, набирать ATTACH, CONNECT, HELLO, LOG, LOGIN или что еще. В большинстве случаев после этого и у молчаливых развязывается язык. Наконец, хакер нашел компьютер. Он не смутится от неласковых выражений типа Private only, Shut up - это закрытые системы обычно так выражаются. Осталось определить тип системы, что несложно сделать по следующей таблице, куда попадает большинство систем.
Приглашение Система Вход Гости Регистр Log
Name: Password: BBS имя пароль + - 3
Mail only! E-mail пароль - - 1
login: UNIX пароль + + 0
є VM/CMS LOGON имя + - 5
>Username: VMS пароль + - 0

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

 BBS - это доска электронных объявлений. Вход в нее предельно прост. Обычно достаточно назвать ей свои данные, чтобы стать пользователем или гостем. Неправильный набор имени, как правило, воспринимается ею как новый пользователь. Если же в регистрации отказано, то по "голосовому" телефону, указываемому в заставке, можно выяснить - почему. Или это платная система, или же приватная, что, с точки зрения денежных затрат на проникновение в нее, одно и то же.
 E-mail - это станция пересылки электронной почты. Проще всего попасть в нее, узнав сеть, на которую она работает, и стать ее членом, или "приобщиться" к ней.
 UNIX - самая популярная сеть пользователей DEC и SUN. Есть ряд ее принципиально разных модификаций. Похоже, что наиболее устойчивая к взлому в России и СНГ принадлежит компании Bull.
 VM/CMS - сеть компании IBM. Преимущественно используется инофирмами с мэйнфреймами для деловых связей с западными партнерами.
 VMS - еще одна сеть компании DEC, очень устойчивая к взлому.

В этом списке нет сердцевины - тех сетевых систем, рассмотрению которых посвящена эта глава. Не стоит на это сетовать - их тьма-тьмущая, и они поэтому безлики. Автору довелось видеть систему электронной почты под MS-DOS, настолько детально передававшей особенности среды UNIX, что в первые минуты ни малейшего сомнения в этом не возникло.
     Теперь, когда ясен синтаксис пароля доступа, самое время применить "грубую силу", чтобы взломать систему. Я понимаю, что у многих в этом месте зачешутся руки попробовать сказанное практически. Однако неужели можно верить хоть кому-то в вопросах шпионажа? У системных администраторов есть масса отработанных приемов выявления хакеров, которыми они не любят делиться. Подбор паролей непременно оставит след от неудачных попыток. Все, конечно, бывает, но после нескольких неудавшихся наборов пароля внимательный администратор заставит пользователя перерегистрироваться на другое имя, а сообщение, что было 100 неудачных попыток входа с прошлого сеанса, как правило, привлечет внимание любой службы безопасности и начнется охота...
     Классический случай выявления атаки на канал связи описала газета "Файненшл Таймс" в статье о немецком хакере, который проник в сеть министерства обороны США. Решающую роль в расследовании сыграл программист Клиффорд Столл, которому поручили устранить ошибку в ведении счетов за пользование компьютером. Он обнаружил, что неизвестный Hunter не оплатил машинное время на 75 центов. Вскоре Джо Свентек, эксперт по компьютерам, тоже не оплатил счета, хотя было точно известно, что в этот момент он находился в Великобритании. Столл заподозрил, что хакер, узнав идентификатор и пароль Свентека, пользуется его счетом. В конце недели, когда все уехали на уик-энд, Столл подключил 50 терминалов и принтеров к линиям коммуникаций. Ночь он провел на полу, но на утро получил распечатку трехчасового сеанса связи хакера с системой.
     Для входа в эту сеть хакер Хесс из Ганновера узнал номер телефона, по которому пользователь может получить доступ к компьютеру лаборатории в Беркли, из справочника и набрал его через модем. Система ответила, выведя на экран компьютера приглашение: LOGIN. Хесс в ответ, не мудрствуя лукаво, напечатал: Guest. В качестве пароля он тоже набрал совершенно очевидное: Guest, а когда система отвергла этот пароль, он сделал вторую попытку, набрав столь же очевидное: Visitor. И эта попытка удалась! Аналогичную тактику Хесс использовал и для проникновения в другие системы. Для этого требовалось только терпение и упорство: Хесс методично проверял комбинации имени пользователя и пароля. Один из удивительных успехов ожидал его при попытке проникнуть в сеть данных армии США в Пентагоне Optimi. Введя имя Anonymous и пароль Guest, он получил доступ к 29 документам по ядерному оружию, в том числе такому, как "План армии США в области защиты от ядерного, химического и биологического оружия". Этого никто не заметил, если не считать Столла, который тогда уже постоянно отслеживал действия Хесса и уведомил ЦРУ. Столлу самому пришлось выступить в роли хакера, когда фирма Mitre отказалась поверить, что в ее систему мог проникнуть посторонний. Столл взял и сам взломал систему Mitre, причем процедура входа оказалась необычайно простой: имя для регистрации было Mitre, а пароль не потребовался!
     Получив доступ к системе сначала в качестве гостя, Хесс воспользовался ошибкой в одной из программ для того, чтобы получить статус супервизора, что дало полный контроль над системой. Затем он использовал свои права супервизора, чтобы при- своить счет временно отсутствовавшего Джо Свентека, и создал для себя фиктивный счет под именем Hunter. Вдобавок он запустил программу троянского коня, которая крала имена и пароли всех пользователей. Просмотрев файлы, Хесс обнаружил номера телефонов для подключения ко многим крупным сетям и пароли для входа в них, небрежно оставленные учеными. Лишь после этого Хесс смог предпринять атаку на то, что его на самом деле интересовало: на военные системы США. Однако Столл уже отслеживал и распечатывал все его действия. Через Беркли Хесс проник в компьютер космического отделения командования систем вооружений ВВС США в Лос-Анджелесе. В считанные мгновения он произвел себя в полковники, создав счет на имя "полковника Абренса", и взял полный контроль над операционной системой. Немец Хесс оказался слишком педантичным: он слишком часто пользовался одними и теми же путями и идентификаторами пользователя: Hunter, Свентек, а иногда Бенсон и Хеджес по названию марок сигарет. Решающий этап охоты начался, когда Столл изменил заголовки файлов Минэнерго США так, чтобы они напоминали документы СОИ. Хесс, очарованный этой фальшивкой, допустил роковой промах: он оставался подключенным к сети слишком долго и власти смогли проследить канал до самой его квартиры и арестовать его (Столл не смог долго сохранять титул антихакера, так как сам вскоре был уличен в незаконном доступе на DockMaster, узел Arpanet, используемый АНБ, и лишился работы.)

Угроза проникновения в компьютерную систему извне никогда не может быть полностью устранена, особенно если не исключена нелояльность служащих. Однако формальные процедуры доступа к системе, которые открывают доступ только после обратного вызова удаленного терминала, сделали многое для уменьшения риска вторжения. Все более популярной становится техника защиты коммуникаций от хакеров и других более зловещих нарушителей систем как обратный вызов, при котором законный пользователь обращается к системе, с которой он желает соединиться, указывая свой идентификатор и, возможно, пароль. После этого он разъединяется и ждет систему, чтобы она установила с ним связь по заранее указанному номеру. Нарушитель при этом не может определить обратный номер, который тщательно защищен, и, даже введя правильные имя и пароль, не сможет проникнуть в систему, которая поддерживает связь лишь с зарегистрированными номерами телефонов. Недостаток этого метода - жесткая привязка абонентов сети к их телефонам.
     Абсолютно надежная защита канала связи выполняется с помощью шифрования, тем более, что доступная для этого аппаратура имеется в продаже. Отечественное устройство типа КРИПТОН является специализированным шифратором, применяемым для IBM PC. Оно реализует российский стандарт шифрования ГОСТ 28147-89 и довольно удобно в работе. Скорость его шифрования перекрывает все возможности СОМ портов любого типа. Цена его около $300. Другой пример устройства для шифрования коммуникаций дает отечественный переносной телефонный скрамблер РК-145 с питанием от батарей, которых хватает на 150 часов непрерывной работы. Похож на него, но более надежен, профессиональный цифровой скрамблер РК-1235, использующий до 10**7 секретных ключей.
     Оба этих скрамблера могут поместиться в дипломат средних размеров. Меньше по размеру телефонный скрамблер СТ, напоминающий удлиненную коробку, которую ставят рядом с телефоном и кладут на нее телефонную трубку. Английская фирма MLC International выпускает шифратор данных Ciphermaster, предназначенный для защи- ты в каналах связи от хакеров, который обеспечивает три уровня шифрования. Шифрование в направлениях приема и передачи осуществляется на разных ключах, изменяемых автоматически через различные интервалы времени. Фирма США Newbridge Microsystems выпускает шифрпроцессор, работающий по принципу системы с открытым ключом шифрования. Процессор ориентирован на использование в системах связи. Он позволяет реализовать протоколы генерирования, хранения и распределения ключей шифрования, аутентификации и режимы блочного или потокового шифрования данных. Он имеет самотестирование и защищен от катастрофических ошибок шифрования. К недостаткам этого метода нужно отнести лишь необходимость оснащения всех абонентов шифраторами, что при развитой сети влечет существенные расходы. Применение скрамблеров может также несколько снизить скорость передачи данных, поскольку шифрованные данные практически неуплотняемые и коммуникационный протокол V42 с уплотнением неэффективен.
     Системы эффективно защищают себя от проникновения обратным запросом в предположении, что хакер не может связаться с модемом компьютера при обратном запросе, если только он не может включиться непосредственно в телефонную линию. Однако это предположение не всегда истинно. Ряд телефонных станций, к сожалению, оставляет много возможностей для хитрого нарушителя связаться при обратном запросе с глупым модемом как законному пользователю. Некоторые телефонные-станции осуществляют контроль вызова так, что соединение управляется исключительно вызывающим телефоном. Это означает, что если хакер сигналами имитировал законного пользователя и не повесил трубку, то соединение с ним не будет разорвано, даже если модем сети свою трубку повесил. Редкий модем может определить - было ли разорвано соединение, когда сам модем повесил трубку. Если та же самая линия используется и для набора номера законного пользователя, то нет никаких стандартных способов определить, что нарушитель все еще висит на линии. Это означает, что модем сети, повесив трубку, снова ее снимет, наберет номер и будет ждать тон ответа. Если ха- кер настолько любезен, что, не вешая трубки, пошлет в линию сначала тон приглашения от своего модема, а после того, как прослушает набор номера, выдаст тон ожидания, то легко сделает связь и сможет проникнуть в систему. Хорошо защищают системы с обратным вызовом старые типы АТС (их в России большинство), где повешенная трубка на любом конце линии обеспечит разрыв соединения. Система с обратным вызовом, использующая отдельную линию для получения запроса и отдельную для вызова еще лучше, при условии, что хакер не может соединиться с модемом, который работает лишь на вызов, или телефонная линия относится к такому типа, что вообще не может принимать поступающие звонки. К сожалению, чем современней техника, тем больше риск хакерства.
     Можно еще настроить модем так, чтобы определенный код добавлялся к вызову номера, открывая доступ к системе. Это позволяет использовать еще один способ, кроме паролей, чтобы отсечь посторонние звонки. Для этого нужен модем вроде Courier, поддерживающий команду АТ%Т. Такая команда проверяет тональный набор, который идет в модем. Цифры набора разделяются нулями, то есть паузами, так как нуль не соответствует никакая тональная комбинация. Если принят неправильный код, то модем оборвет связь, послав команду АТН0. Концепция такого кодового доступа могла бы быть следующей. Когда законный пользователь набирает номер телефона сети и модем установит соединение, то пользователь посылает в ответ кодовый набор. Если код набран быстро и правильно, это будет подтверждать законность связи.

     YOU> AT DT 123-4567 @89
     NET> RING
     NBT> ATDT1;
     NET> OK
     NET> АТ%Т
     NET> 8090
     NET> ATA

После того, как модем наберет номер телефона сети 123-4567, символ @ заставит модем ждать ответ. Когда сеть получит звонок и пошлет тоном 1, то модем в ответ наберет код доступа 89. Команда модема сети АТ%Т заставляет контролировать тональный набор в линии, а именно "8090", который является кодом 89, разделенным нулями. В такой системе можно иметь определенный код для каждого отдельного пользователя, делать коды настолько длинными, что их подбор станет невозможным и менять коды при каждом обращении без участия пользователей. Дороговизна модемов пользователей будет компенсирована повышенной секретностью и надежностью связи.

Приложения

Вероятности биграмм в тексте
  АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШПТЬЫЬЭЮЯ Процент
А 278677774777883767826677550000679 71
Б 711016226056357275070541055722035 13
В 805048037167568466660301300820048 38
Г 601165006045448070060012000000004 10
Д 816348107047178465271333400640457 25
Е 556786664778896588933656560011559 73
Ж 600067217050271012130000000020002 8
3 846264116155667150060021002620046 14
И 667668577776885578815777630100679 64
и 003030000036540006600012300000008 11
к 815116527127058076670060100000007 29
л 841218618044167003363003110680786 31
м 757228017044768513161000000730068 32
н 903368119060178005765253000850467 50
о 288886776878876788832567650015259 89
п 700008047036148494562010000453044 28
р 916448608052668426673542420740167 48
с 646257207078668756963515500561387 43
т 827148008064569388460004021780158 60
у 344667653365560677715506360000748 19
ф 600005006002206040354000000100002 4
х 433004003011056053130020001000008 6
ц 506006007000003000040000000500005 6
ч 701008007061062010730001300130004 12
ш 500006007033034030340000000040005 3
щ 600007006000020020040000000040101 3
ъ 000004000000000000000000000000032 1
ы 147357151755621555600705410100018 18
ь 010003071060471006400001610000628 12
э 004001000265210201704300000000001 4
ю 050020120410000003700006170010307 6
я 015256250223650144700443040000649 18
. 789787588386899989877678511218260 138
200 наиболее частых паролей
ДАА ЛВС ADVENTURE AFGAN ALEX
ALEXEY ALIEN ALPHA ANDREI ANDREY
ANN ANTON APPLE BAND BANK
BARON BEAR BEAT BEATLES BEST
BETA BLACK BLUE BOARD BORIS
BOY CAN CASTLE CAT CENTER
CHANCE CHAOS CHERRY CLUB COCKTAIL
COMPUTER CROSS DATA DEATH DECEMBER
DELTA DENIS DEVIL DIMA DMITRIY
DM1 TRY DOG DOOR DRAGON DREAM
EAGLE EAST EASY ELENA EUGENE
EYE FIELD FILTER FINISH FLOWER
FORCE FRIEND FUN GEORGE GIRL
GOLF GREAT GREEN GRAY HAND
HELL HELLO HELP HERO HOCKEY
HORSE HOUSE IGOR ILYA INFO
IRENE IRON JAZZ JOB JULIA
JURY KILLER KIRILL KNIGHT KOSTYA
LAND LARRY LAST LEGAL LENIN
LIGHT LITTLE LONG LORD LOVE
MAD MAGIC MAJOR MARK MARKET
MASTER MEGA METAL MICHAEL MIKE
MISTER MOSCOW MUSIC NATALIA NETWORK
NICE NIGHT NORMAL NORTH OLD
OLEG OMEGA PANEL PARADISE PASSWORD
PAVEL PETER PHILIP PHONE PILOT
PIZZA POLICE PRINCE PROTECT QUEST
RAIN RANGER REAL RED REMOTE
RISK RIVER ROBOT ROMAN ROOM
ROSE RUSLAN RUSSIA SASHA SCHOOL
SECRET SECURE SERGE SERGEI SERGEY
SERVICE SEX SHADOW SHARK SHIT
SHOP SIMPLE SKY SLAVA SMILE
SOUND SOUTH SPY SQUARE STANDARD
STAR STATION STREET SUCCESS SUMMER
SUPER SWEET SYSTEM TARGET TEAM
TIGER TIME TOY TRADE TRUE
UNKNOWN VALENTIN VICTOR VISIT VLAD
VLADIMIR WATER WEST WHITE WILD
WIND WOLF YURI YURIK ZONE

Задачи и упражнения

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

     1. Докажите, что каждая подгруппа циклической группы сама будет циклической.
     2. Будут ли циклическими группы по умножению целых чисел, вычисляемых по модулям 5,6,7,8? Как цикличность связана со значением модуля? 3. Перестановка двух элементов множества называется транспозицией. Как любую перестановку заменить последовательностью транспозиций? Сколько транспозиций понадобится, если переставляется n элементов?
     4. Любая перестановка Р может быть разложена на непересекающиеся циклы элементов, переходящих друг в друга. Так, цикл (х, у, z) означает, что у=Рх, z=Py и x=Pz. Докажите, что существует целое число k, такое, что при любом х из переставляемого множества, выполняется

     (P**k)*x=x

     5. Вычислите максимальное значение k в предыдущей задаче для перестановки множества из 10 элементов.
     6. Найдите условие, при котором для перестановки Р и любого элемента х будет справедливо (Р**2)*х=х. Что означает это свойство перестановки для криптографии?
     7. Для контроля качества шифрования и расшифровывания в текст сообщения включают так называемую сигнатуру, находящуюся в определенном месте, например, в начале. Если сигнатура фиксированная, например - "ENCRYPTION PROG", то не ослабляет ли это шифр? Как повлияет на криптографическую стойкость шифра сигнатура в виде суммы XOR, выполненная по всем символам текста?
     8. Выпишите все невырожденные матрицы 2х2 над GF(2). Какова их доля от общего числа матриц 2х2? Какое число невырожденных матриц над GF(2) размера 16х16?
     9. Проверьте, образуют ли поле остатки от деления на многочлен х**4+х**2+1.
     10. Докажите, что при положительных целых числах k, m и n число k**n-1 тогда и только тогда делится на k**m-1, когда n делится на m.
     11. Докажите, что многочлен х**5+х**4+х**3+1 имеет порядок 13.
     12. Докажите, что многочлен х**4+х+1 примитивен над GF(2).
     13. Сравните мультипликативные группы, порожденные вычетами по неприводимым над GF(2) многочленам х**3+х**2+1 и х**3+х+1.
     14. Т Доказать, что если многочлен р(х)**n примитивен над GF(2), то многочлен р(х)**k примитивен тогда и только тогда, когда число k взаимно просто с 2**n-1. Оцените число примитивных многочленов над GF(2**n).
     15. T Докажите, что любой многочлен р(х), удовлетворяющий уравнению р(х)**L=1, где L=2 , является степенью примитивного.
     16. Вычислите первые десять членов всех последовательностей, удовлетворяющих следующему рекуррентному соотношению Si+S(i-2)+S(i-3).
     17. Проверьте, что для предыдущей задачи последовательность, начинающаяся с 101, может быть образована как сумма двух последовательностей, начинающихся с 110 и с 011.
     18. Запрограммируйте генератор случайных чисел с многочленом х**9+х**4+1 и проверьте длину его периода.
     19. Просчитайте автокорреляционную функцию для ряда псевдослучайных чисел из предыдущей задачи.
     20. Покажите, что многочлен х**4+х**3+х**2+х+1 неприводим над GF(2). Каковы длины его последовательностей?
     21. Напишите программу, генерирующую случайным образом три заглавные русские буквы с кодами 128-159 в альтернативной кодировке ASCII. Сколько таких трехбуквенных сочетаний всего возможно? Сколько сочетаний из первой тысячи можно принять за осмысленные слова из текста? Оцените количество информации, содержащееся в одной букве такого слова.
     22. TYКак изменится вероятность встречи осмысленных сочетаний из трех букв, если буквы выдавать с теми вероятностями, с которыми они встречаются в тексте? Попробуйте применить эту программу для генерации ключей, представляющих осмысленные слова? Насколько при этом увеличится скорость их перебора?
     23. Напишите программу, проверяющую файл на наличие в нем осмысленного текста по критерию, что символ пробела с кодом 32 должен встречаться не реже, чем через 20 позиций строки. Оцените качество этого критерия.
     24. Напишите программу, проверяющую файл на наличие в нем осмысленного текста по критерию, что пары символов ASCII с кодами 13,10 должны встречаться не реже, чем через 82 позиции, чтобы правильно формировались строки.
     25. Оцените качество этого критерия и сравните его с критерием предыдущей задачи.
     26. Биграммы th в английском языке и ст в русском самые частые, что позволяет находить тексты в теле программ ЕХЕ или СОМ. Постройте критерий выделения осмысленного текста по частоте какой-нибудь из этих биграмм и оцените его качество.
     27. Приняв, что слова в русском языке состоят из 7 букв, оцените число слов русского языка по количеству информации, содержащейся в одной букве, приведенной для биграмм. Сравните полученное число с числом слов в большом орфографическом словаре, считая, что там дана лишь двадцатая часть словоформ.
     28. T Попробуйте вскрыть шифровку двойной перестановки ОГО-ТИТ-Р.С-ЕКМСЛ.ИИСЬ-ВЯ. 29. Сколько ключей можно составить из книги среднего объема, если за ключ брать ее текст, начиная с произвольного места? А сколько ключей будет, если текст брать лишь с начала строки?
     30. Придумайте ключевое слово из 10 разных букв (наподобие РЕСПУБЛИКА) для кодирования цифр буквами. Насколько это легко было сделать?
     31. Почему шифровка несмыслового текста считается очень устойчивой к вскрытию подбором ключа? Насколько эффективна шифровка ключей и в каких случаях?
     32. Найдите период последовательности генератора случайных чисел в используемой системе программирования.
     33. Найдите первые пять значений ее автокорреляционной функции по полному периоду.
     34. Как проверить практически примитивность многочлена?
     35. Найдите многочлен, порождающий двоичную последовательность
     ...001101011101001000110111101...
     36. Какая должна быть информационная длина ключа, чтобы шифровку, сделанную им, нельзя было сломать на вашем компьютере за 5 рабочих дней с вероятностью 0.999? Сколько букв смыслового пароля этой длине ключа соответствует?
     37. Какие периоды могут порождаться многочленом х**9+х**2+1, если рассмотреть разложение 2**9-1 на простые множители?
     38. T Ортогональной матрицей называется такая матрица Р, которая при умножении на себя транспонированную дает диагональную Р*Р'=Е. Например, следующая матрица ортогональна:
     111
     O11
     101
     110
     Рассмотрите возможность применения ортого- нальных матриц для шифров взбивания.
     39. T Пусть есть шифр, при котором каждая буква алфавита может переходить по неизвестному ключу в одну из k букв. Насколько увеличится при этом количество информации, приходящейся на одну букву шифровки по сравнению с исходным текстом?
     40. При каких k из предыдущей задачи текст шифровки можно прочесть, если для более-менее уверенного чтения текста человеком ему нужна избыточность хотя бы 20%?
     41. T Рассмотрите алгоритм перестановки, когда случайным образом сначала переставляются соседние элементы массива, затем через 1, потом через 3 и так далее. Любую ли перестановку он может реализовать?
     42. Что означает отличие значения автокорреляционной функции последовательности от 0 при сдвиге k?
     43. Эргодичность числового ряда практики обычно связывают со стремлением автокорреляционной функции к 0 при увеличении сдвига? Приведите примеры числовых рядов из действительных чисел, для которых это не выполняется. Всегда ли это связано с эргодичностью числового ряда?
     44. Проверьте, что рекуррентность X(n+1)=Xn*SQR(k), где k=2,3,5, вычисляемая на калькуляторе или ЭВМ, всегда сходится к коротким циклам. Учтите, что подход к циклу может быть много длиннее самого цикла.
     45. Будет ли шифр побайтного шифрования Sn+1=Tn XOR Yn XOR Sn, где tn - очередной символ исходного текста, Yn - гамма и Sn+1 с Sn - байты шифровки размножать сбои? Будет ли это размножение катастрофическим, то есть продолжающимся до конца текста шифра?
     46. Будет ли шифр из примера 45 катастрофически размножать сбои, если вместо всего байта Sn брать лишь случайные четыре его бита?
     47. Напишите программу генерации случайных чисел по таймеру, прерывая им суммирование единиц по модулю 2. Оцените качество получаемых при этом случайных чисел. Это можно сделать, например, так:
     ON TIMER(I) GOSUB Random
     TIMER ON
     M%=0: DO: M% = M% XOR 1: LOOP
     Random:
     PRINT M%;
     RETURN
     46. Проверьте перемешивание массива тасовкой на случайность, выполняя фиксированное число тасовок.
     47. Прочтите в статистической литературе о критерии хи-квадрат и примените его в программе для распознавания русского текста.
     48. T Какова вероятность того, что в хорошо перетасованной колоде хоть одна из карт окажется на своем прежнем месте? Как эта вероятность зависит от числа карт в колоде? Как можно это применить для оценки качества случайной перестановки?
     49. Напишите программу, имитирующую шифр Энигмы.
     50. T Какова вероятность того, что в перетасованной колоде хотя бы две карты будут следовать в том же порядке, как и в исходной.
     51. T Если считать, что избыточность текста сообщения помогает при вскрытии ключа, то оцените длину сообщения достаточную для вскрытия простой замены символов. При этом объем информации от избыточности сообщения должен превысить объем информации, содержащейся в ключе, заданном перестановкой 32 символов алфавита.

Библиография

1. Albert, Burton, Jr. Codes for Kids (Whitman, 1976)
2. Albert, Burton, Jr. More Codes for Kids
  (Whitman, 1979)
3. B.Beckett. Introduction to cryptology (Blackwell
  Scientific Publications, 1988)
4. Babson, Walt. All Kinds of Codes (Scholastic, 1976)
5. Barker, Wayne G., Manual of Cryptography (1981)
6. Ban-on, John, KGB: The Secret Work of Soviet
  Secret Agents (1973)
7. Brassaid G. Modem Kryptology. Springer-Veriag (1988)
8. Bruce Schneier, "Applied Cryptography: Protocols,
  Algorithms, and Source Code in C", John Wiley &
  Sons (1993)
9. Clark, R.W. The Man Who Broke Purple: A Life
  of the World's Greatest Cryptologist, Colonel
  William F. Friedman (Little, 1977)
10. Banning, Dorothy E., Cryptography and
  Protection (1982)
II. Dulles, Alien A., The Craft of Intelligence (1963)
12. Friedman, W.F., Elements ofCryptanalysis (1976)
13. Gardner, Martin, Codes, Ciphers, and Secret
  Writing (1984)
14. Gleason, Norma. Cryptograms and Spygrams
  (Dover, 1981)
15. Harris, Christopher, et al., Hazardous Waste:
  Confronting the Challenge (1987)
16. Kahn, David, Kahn on Codes (Macrnillan, 1983)
17. Kahn, David. Kahn on Codes: New Secrets of
  Cryptology (Macrnillan, 1983)
18. Kahn, David. The Codebreakers: The Story of
  Secret Writing (Macrnillan, 1967)
19. Konheim, A.G. Cryptography: A Primer (Wiley, 1981)
20. Laflin, John. Codes and Ciphers: Secret Writing
  Through the Ages (Harper, 1964)
21. Landreth, Bill, A Hacker's Guide to Computer
  Security, (Microsoft Press, 1985)
22. Levy, Steven. Hackers: Heroes of the Computer
  Revolution. (Doubleday, 1984)
23. Lysing, Henry. Secret Writing: An Introduction to
  Cryptograms, Ciphers, and Codes (Dover, 1974)
24. Mayer, Carl, and Matyas, Stephen, Cryptography:
  New Dimensions in Computer Security (1982)
25. Parker, Donn B. Crime By Computer. (Charles
  Scribner's Sons, 1976)
26. Pierce, С. C" Crypto-privacy (1988)
27. Sarnoff, Jane and Ruffins, Reynold. The Code and
  Cipher Book (Scribner, 1975)
28. Seberry J., Pieprzyk J., Cryptography. An intro-
  duction to computer security. (Prentice Hall, 1989)
29. Sinkov, Abraham, Cryptanalysis: A Mathematical
  Approach (1980)
30. Smith, L.D. Cryptography: The Science of Secret
  Writing (Dover, 1955)
31. Wmterbotham, Frederick W., The Ultra Secret (1982)
32. Wohlstetter, Roberta, Pearl Harbor: Warning and
  Decision (1962)
33. Wolfe, James R., Secret Writing: The Craft of the
  Cryptographer (1970)
34. Zim, H.S. Codes and Secret Writing (Morrow, 1948)