Наиболее частых паролей
ДАА | ЛВС | 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 |
Анализ псевдослучайных последовательностей
Пусть известен участок ключа {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.
Анализ псевдослучайных последовательностей
Пусть известен участок ключа {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.
Атака на аппаратуру
Имеется много сведений о встраивании в компьютеры (и даже калькуляторы!) передатчиков, что вполне возможно, но мало разумно из-за низкой информативности и легкой обнаружаемости службами безопасности. Скорее всего их встраивают сами секретные службы, чтобы такими находками оправдать расходы на свое содержание. Вместе с тем, известны варианты 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! | пароль | - | - | 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, разделенным нулями. В такой системе можно иметь определенный код для каждого отдельного пользователя, делать коды настолько длинными, что их подбор станет невозможным и менять коды при каждом обращении без участия пользователей. Дороговизна модемов пользователей будет компенсирована повышенной секретностью и надежностью связи.
Атаки на сетевые системы
В результате многих проведенных исследований были определены основные уязвимые места в сетевых системах. Ими, как правило, являются аппаратура, файловый сервер, пароли и среда передачи данных. Если файловый сервер может быть защищен организационными мерами, то среда передачи данных так не может быть защищена. Основная опасность для сети - в "дырах", которые позволяют злоумышленникам получать незаконный вход в компьютеры сетей. Имеется широкий общественный интерес к тому, чтобы сети компьютеров, используемые для каждодневных действий, были защищены от нападений хакеров. Например, система управления воздушным движением могла бы быть повреждена, если кто-то собьет коды в ЭВМ, ослепив диспетчеров, руководящих полетами. Два эпизода в США с нападениями хакеров затронули военные компьютеры с крупными секретами: в корпорации Mitre, компании с контрактами Пентагона, и в Arpanet, сети министерства обороны США. Незаконный доступ к системам компьютера может компрометировать секретность данных многих людей. Так. компания TRW заявила, что пароль, обеспечивающий доступ к 90 миллионам кредитных счетов в файлах, был украден - легко себе представить чувства владельцев этих счетов!
Дефекты в системе безопасности компьютеров также использовались, чтобы уничтожать данные.
Хакер получив доступ по телефону на компьютер офиса фирмы REP в Калифорнии разрушил там файлы и вызвал крах системы. Четырьмя днями позже опять кто-то опять проник в тот же компьютер, разрушил сотни писем и отправляющуюся почту. В Австралии неизвестный хакер, квалификация которого была оценена как эксперт, атаковал компьютер телефонной компании (Хакеров, атакующих компьютеры АТС, обычно называют фрекерами от phone breaker - взломщик телефонов. Как правило, они причиняют вред лишь из-за неоплаты телефонных звонков и в России практически не работают из-за отвратительного качества связи.). Его нападение отрезало тысячи телефонных линий и компьютеров, включая самые большие банки и биржи страны, которые простаивали в течение полного дня. Специалисты считают, что существующие сетевые операционные системы имеют фундаментальные дефекты в системах обеспечения безопасности, которые игнорируются, пока не произойдет шумный инцидент с проникновением хакера. Некоторые дефекты существуют в каждой системе, но еще в недавнем прошлом продавцы систем не хотели признавать это.
Ходжа Насредин, когда ему нужно было спрятать свои деньги от воров, сначала хотел их закопать. Однако подумав, что будь вором он сам, то быстро бы нашел клад. Видимо, нет лучшего способа оценить безопасность системы, как представить себя в роли ее крекера. Поэтому изложение этого раздела состоит в основном из фольклора и кулинарных рецептов. Ряд видов атак, входящих во все теоретические руководства, опущены как практически не встречающиеся, а технологические советы и угрозы расписаны подробно.
БЕЗОПАСНОСТЬ ПЕРСОНАЛЬНОЙ ЭВМ
В этой главе описаны наиболее распространенные программы криптографических преобразований на IBM PC в операционной системе MS-DOS. Несмотря на то, что принципы работы с ними априорно ясны и хорошо описаны, все же стоит повторить для многих пользователей то, что известно немногим. Поэтому искушенным в практике криптографии пользователям стоит ее прочитать лишь в том случае, если их самолюбие нуждается в моральной поддержке. Однако общий уровень состояния дел таков, что, почти наверное, материалы этой главы станут путеводителем для рядового программиста.
БЕЗОПАСНОСТЬ СЕТЕВЫХ СИСТЕМ
Если кто-нибудь захочет разместить ответственные
приложения на сервере и спросит меня, достаточно ли
это надежно, я только разведу руками.
Джо Тумнинаро.
Сейчас самую большую угрозу безопасности компьютерных систем представляют сами компьютеры в руках преступников или злых шутников. Эта проблема стала заметно проявлять себя лишь в последние десять лет, благодаря революции в микроэлектронике и широкому распространению коммуникаций персональных компьютеров. Число пользователей сети Internet сейчас больше, чем жителей в любом городе мира. Поэтому как в любом крупном городе, там есть свои хулиганы, воры и бандиты. Сухая статистика говорит, что в 1993 году лишь незаконное использование кредитных карточек с помощью компьютеров в сетях данных нанесло банкам ущерб в 864 миллиона долларов. Для того, чтобы обезопасить себя от преступных действий, компьютерные сети применяют специальные меры защиты. Проблема безопасности работы в сети начнет становиться еще более важной, по мере того, как фирмы будут идти по пути уменьшения размеров вычислительных систем, перенося свои прикладные задачи с больших центральных компьютеров на сети рабочих станций. Эти мощные системы еще более уязвимы, чем те сети, которые существуют сейчас.
В этой главе приведены результаты анализа основных угроз безопасности сетей в распределенных системах обработки информации, основные объекты и направления атак, возможные каналы проникновения и получения незаконного доступа к информации, а также главные методы и средства защиты. Внимание будет сосредоточено вокруг защиты наиболее распространенных в России сетевых операционных систем, вроде Novell Netware 3.12, отмечены их достоинства и недостатки. Уязвимые места и бреши в подсистеме защиты будут кратко проанализированы и предложены меры по ее совершенствованию, а также варианты реализации мер по обеспечению безопасности, позволяющие перекрыть не только указанные, но и ряд Других возможных сходных каналов проникновения в систему и доступа к критической информации.
Библиография
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) |
Цифровая подпись
Действующие в России системы передачи данных в большинстве своем имеют недостаток, который заключается в том, что они не дают возможности проверки подлинности и авторства пересылаемых документов. С их помощью в настоящее время невозможно заключение юридически признаваемых сделок и пересылка юридически подтверждаемых документов, вроде платежных поручений. Это часто сводит на нет их преимущества по сравнению с почтовой пересьшкой. Как правило, все полученные через компьютерную связь документы копируются из памяти машины на бумажный носитель, подписываются физическими лицами и удостоверяются печатями юридических лиц. Единственное исключение представляет плата КРИПТОН, так как достоверность платежных документов, зашифрованных с ее помощью, признана арбитражным судом. В ней и ряде других шифросистем цифровая подпись сообщения образуется с помощью секретного ключа. Проще всего зашифровать сообщение этим ключом, но оно ведь может быть очень длинным. Поэтому для экономии шифруется лишь контрольная сумма, сделанная по сообщению, называемая имитоприставкой. Например, в 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. Системы шифрования с открытым ключом не решают всех проблем, которые стоят перед критографами. Например, нечестному пользователю ничего не стоит под своей настоящей подписью поставить фальшивую дату. Для финансовых документов это может быть катастрофой. Поэтому цифровая подпись с датой обязательно должна заверяться третьим лицом, как нотариусом. Без его участия цифровая подпись недействительна.
Характеристики сообщений
До этого места, говоря об информации, мы ограничивались в ее определении призывами к здравому смыслу. Теперь же попробуем описать ее строже, так как использование слова информация приводит порой к недоразумениям и многозначности. Письмо, телеграмма, выступление по радио несут информацию и являются сообщениями. Однако надлежит отличать сообщения от извещений. Понять разницу между ними позволит следующий анекдот. Однажды Пьер попросил свою невесту Мари, чтобы она бросила вечером из окна монету, когда родители уйдут в кино и можно будет провести время наедине. Родители ушли, и Мари бросила монету. Через полчаса ожидания она, выглянув на улицу, увидела Пьера, обшаривающего тротуар. Таков сюжет, а теперь перейдем к размышлениям. Зачем Пьер занимался поиском? Скупость отвергнем сразу же - монета не купюра, да и драгоценное время уходит. Скорее всего, что бросок монеты Мари приняла за извещение: наступил момент времени, когда ушли родители. А Пьер, искушенный в информатике любовных посланий, отнесся к этому событию как к сообщению: если брошена монета, то родители ушли, а если обручальное кольцо, то ему предлагают утешиться аперитивом в ближайшем бистро. Извещения несут в себе информацию лишь о времени наступления известного заранее события. Ими являются сигнал точного времени, свисток футбольного судьи, выстрел стартового пистолета. А вот сообщения существуют вне времени, например, картина Рубенса, текст инъективы Цицерона против Саллюстия, опера Чайковского "Пиковая дама", лозунг Ленина "Вся власть Советам" или зажженная надпись 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%, то шифровальная система очевидно не состоятельна. Если сжатие шифра оказалось меньше этой величины, то... все может быть. Отметим, что алгоритмам архивирования удается сжимать даже случайные последовательности символов, хотя сжатие в этом случае не превышает единиц процентов. Столь пространное описание статистического подхода к криптоанализу дано потому, что в этой главе ему будет уделено мало внимания, а вскрытие шифров будет показано лишь с точки зрения аналитического подхода. Итак, рассмотрим наиболее употребительные виды атак на некоторые известные уже шифры.
Источники угроз в сетях
Еще в недавнем прошлом компьютеры были доступны только большим организациям. Доступ к системам имели лишь небольшие привилегированные группы экспертов, которым хорошо платили за их лояльность. Самый тяжелый вид преступления, возможный в те дни, был случайно брошенный взгляд на размер чужой зарплаты в файле платежной ведомости. Проблемы коммерческой и личной безопасности обсуждались редко. Но в последние годы сочетание роста мощности компьютеров и вычислительных сетей, сделало компьютеры в сетях уязвимыми.
Несомненно, что все беды возникают из-за несоответствия требований к сети характеристикам самой сети. Дефекты проектирования безопасности сети возрастают от быстро изменяющегося характера коммуникаций компьютеров. Раньше большинство компьютеров были изолированы друг от друга. Но когда сети позволили компьютерам обмениваться информацией, то теперь фактически все большие системы доступны из самых удаленных мест. Разработчики сетей, стремящиеся поддержать безопасность, стоят перед беспокоящим их парадоксом: открыто обсуждая дефекты сетей, они делают потенциально более известными "дупла" в них нарушителям и облегчают им несанкционированный доступ. Однако замалчивание дыр в системах гораздо хуже, так как создает опасную иллюзию благополучия.
Рассмотрим это на примере нашумевшей во всем мире программы червя (Червь - вид вируса, который распространяется по линиям коммуникаций, а не через дискеты.) Роберта Морриса, первокурсника университета в Корнелле. Он хотел проверить возможность копирования программ с компьютера на компьютер в сети Arpanet. От ошибки алгоритма скорость размножения червя была гигантской, и встало больше 6000 компьютеров в США. Неожиданностью для Морриса было то, что червь поражал компьютеры военной секретной сети Milnet, а он проводил с ним эксперимент в несекретной сети Arpanet. Оказалось, что соединение этих сетей держалось в секрете и стало полной неожиданностью для студента. Для того, чтобы узнать - был ли компьютер уже заражен, Моррис проверял наличие на нем червя. Если компьютер еще не был заражен, то червь копировал себя в него. Однако Моррис рассудил, что эксперт легко может предотвратить инфекцию, заведя пустой файл с именем червя. Чтобы обойти это, Моррис решил с вероятностью 5% копировать червя в новую машину независимо от ответа, а его программа из-за ошибки делала это с вероятностью 95%. Когда же его червь попал в высокоскоростную Milnet, то он стал размножаться катастрофически быстро и машины встали.
Для систем под машины DEC и SUN этот инцидент доказал, что безопасность сетей ими игнорировались, а рекламируемые надежность и безопасность UNIX были фикцией. Эксперты этих фирм, которые до того высокомерно объясняли неискушенным пользователям, почему их системы безопасны, после случая с Моррисом стали давать подробные интервью, почему это оказалось возможным. В программах UNIX оказались "дупла". Пересылка почты используется, чтобы передать сообщения по сети. Однако разработчик пересылки почты UNIX, оставил в ней "черный вход", через который любая программа пересылалась по почте подобно текстовому сообщению. Об этом многие администраторы сетей знали, и Моррис элегантно использовал это "дупло" для пересылки червя. Червь Морриса задействовал и программу указателя, позволяющую узнать имя последнего зарегистрированного пользователя на удаленной машине UNIX. "Дупло" в указателе тоже было известно и позволяло влазить в другие системы, если посылалось сообщение длиннее 512 байт. За счет этих ошибок червь Морриса тоже получал доступ к другим компьютерам. Третий дефект UNIX состоял в том, что список пользователей не был зашифрован и, прочтя его на компьютере жертвы, червь по именам пробовал подобрать пароли.
Теперь сделаем выводы. "Это был несчастный случай, лишь ждущий своего часа, чтобы произойти. Мы заслужили его. Мы нуждались в чем-нибудь вроде этого, чтобы заставить нас задуматься, так как не уделяли достаточно внимания защите", - так заявил Джеффри Гудфеллоу, эксперт по коммуникациям. Проблемы в UNIX с возможностью несанкционированного доступа были известны месяцы, если не годы, но администраторы сетей не информировались о них и это оставило их системы беззащитными. Отметим, что хакеры в Англии узнали о черве в Arpanet по крайней мере на 12 часов прежде, чем средства массовой информации официально сообщили о нем и, не надеясь на государственные службы, сами начали патрулировать межсетевые шлюзы, чтобы давить червей. Они защитили британские сети компьютеров от вторжения червя Морриса, хотя и не дождались потом благодарности или подтверждения своей заслуги. Таким образом, отсутствие гласности и отказ от шифрования, что бы разом решило все проблемы, привели к этой знаменитой катастрофе.
ИСТОРИЯ КРИПТОЛОГИИ
Смотрите же, что смертным сделал я.
Число им изобрел и буквы научил соединять...
Эсхил. "Прикованный Прометей "
В этой главе попробуем кратко изложить как криптология появилась и выросла до размера науки. При отсутствии в нашей стране открытых исследований по истории шифрования, изложение этого вопроса оказалось довольно сложной задачей. Наподобие золотоносной россыпи крупицы сведений о шифрах оказались рассеянными в сотнях книг и статей. Среди них солидные воспоминания руководителя американской криптографической службы ВМФ и газетное сообщение на несколько строк о работе в Дели завербованного агента. Последовательное хронологическое рассмотрение этих фактов имеет перед собой задачу постепенного погружения читателя в сферу криптографии. Без истории невозможно понять концептуальную схему этой науки, модель постановки проблем и их решения, методов исследования и их эволюции. Тем не менее описание истории криптологии нельзя считать описанием ее предмета - проблемы в этой главе скорее ставятся, чем решаются, и к их разбору мы приступим позже.
Язык сообщения
Исходное незнание языка сообщения обычно делает невозможным восприятие его смысла. Мужчина, привыкший к скромной символике на отечественных сигаретах, так и не смог правильно прочесть название их нового сорта: "ПОКТОБ ?" На пачке под красивым княжеским гербом была не английская, а русская надпись РОСТОВ. Мало кто сможет понять запись мана дерутумо, сделанную по-нганасански, ведь знающих этот язык во всем мире вряд ли больше тысячи. И уж совсем невероятной кажется возможность прочтения надписи на забытом языке. В Большом энциклопедическом словаре написано: "Расшифровка Ф. Шампольоном иероглифического текста Розеттского камня положила начало чтению древнеегипетских иероглифов". В этом высказывании все верно. Однако можно ли расшифровать письмена, которые не были зашифрованы? Паскаль в своих "Мыслях" высказался: "Языки суть шифры, в которых не буквы заменены буквами, а слова словами, так что неизвестный язык есть легко разгадываемый шифр". Но криптологи и языковеды не поддерживают это мнение. Поэтому далее употребление слова расшифровка будет относиться лишь к прочтению сообщений на известных языках, сделанных с помощью шифра, то есть сисгемы изменения текста письма, чтобы сделать смысл его непонятным для непосвященных, не знающих ключа.
Стоит сделать небольшое, но важное замечание Иногда необходимо русский текст напечатать на пишущей машинке с латинским алфавитом. Для этого можно воспользоваться соответствием русских бую латинским принятым для написания международных телеграмм. Например, SHESTOE POCHTOVOE OTDELENIE GORODA IAROSLAVLIA. Заметим, буква Э передается так же как и буква Е:
Тем не менее написанный так текст останется русским, просто изменится его кодировка, о чек будет рассказано ниже.
Язык существенно влияет на структуру текста и его понимание. Однако, даже определившись языком сообщения, бывает подчас трудно решить сколько букв будет составлять алфавит: латинский насчитывает 24-25 букв, а русский 31-32. Неоднозначность возникает потому, что при письме часть букв заменяют другими, сходными по звучания или написанию. Обычно русскую букву Е в письме заменяют на букву Е, а букву Й на И. Каждый язык имеет свой специфический алфавит, но, увы не единственный. Так, хотя болгарский и русский алфавиты, происшедшие от кириллицы, почти одинаковы, но в болгарском нет букв Е, Ы, Э. Поэтому, набирая попеременно то русский, то болгарский тексты, обычно держатся лишь русского алфавита, включающего в себя болгарский.
Сложнее всего дело с алфавитом обстоит в Европе на территории эксреспублики Югославии, где для сербохорватского языка давно используются сразу две основные системы письменности. Одна из них, вуковица, названная по имени Вуко Кароджича, является подвидом кириллицы и употребляется главным образом сербами, другая же, гаевица, представляет подвид латиницы и используется хорватами. Соответствие между буквами вуковицы и гаевицы неоднозначно, поскольку сербской букве, обозначающей звук ДЬ, отвечают две, или даже три хорватские. Но это еще не все. Есть, как минимум, два варианта сербохорватского произношения: екавский и экавский, которые различно отображаются на письме. Из этого примера хорошо видно, что справиться с неопределенностью языка сообщения без его знания вовсе непросто. По этому поводу Герман Вейль удачно привел двустишие Готфрида Келлера: "Что это значит - каждый знает, кто во сне верхом скакал без коня." По этой причине язык сообщений криптологи считают заранее известным и алфавит его фиксированным. Интересно заметить, во время Второй мировой войны сделать свои шифровки нечитаемыми для японцев американцы смогли довольно простым путем: они набирали криптографов из небольшого индейского племени Навахо и те вели секретную связь только на своем родном языке.
ЭЛЕМЕНТЫ КРИПТОАНАЛИЗА
- А теперь, друзья мои,- сказал Гленарван, -
будем продолжать расшифровку.
Жюль Берн. "Дети капитана Гранта "
Несмотря на то, что задача вскрытия шифров в этой книге не ставилась, но без описаний общих подходов к этой проблеме нельзя ни понять эволюцию криптографии, ни дать понятия устойчивости шифров. Поэтому хотя бы кратко изложим подходы к раскалыванию ряда простых шифров, что даст общую картину приемов, используемых в этой области. Существует пропасть между ручными и машинными способами шифровки. Ручные шифры весьма разнообразны и могут быть самыми неожиданными. Кроме того, закрываемые ими сообщения предельно кратки. По этой причине их вскрытие гораздо более эффективно выполняется людьми. Машинные шифры более стереотипны, вычислительно предельно сложны и предназначены для закрытия сообщений очень большой длины. Естественно, что вручную их расколоть даже и не надо пытаться. Однако и здесь криптоаналитики играют главную роль, выступая в роли полководцев криптографической атаки, хотя само сражение ведут лишь технические и программные средства. Недооценка этой особенности обусловила поражение шифров криптографической машины Энигмы во время Второй мировой войны.
Всегда считаются известными тип шифра и язык сообщения. Их могут подсказать алфавит и статистические свойства шифровки. Однако обычно информация о языке и типе шифра становится известной из агентурных источников. Положение несколько напоминает взлом сейфа: если "медвежатник" и не знает заранее конструкции вскрываемого сейфа, что представляется маловероятным, то он быстро определит ее по внешнему виду, фирменному знаку. Поэтому неизвестным является только ключ, который предстоит вскрыть. Трудность заключается в том, что точно так же, как и не все болезни лечатся одним и тем же лекарством, а для каждой имеются свои специфические средства, так отдельные виды шифров вскрываются только своими приемами.
При традиционном криптоанализе систем шифрования возможность их раскрытия зависит, в значительной мере, от квалификации взломщика. Криптоаналитик должен хорошо владеть методами дискретной математики, теории чисел, теории сложности, абстрактной алгебры, статистики, алгоритмического анализа и прочих родственных криптографии математических дисциплин, а также иметь развитую интуицию, чтобы найти метод, ведущий к вскрытию шифра, предполагая, что он существует. Процесс криптоанализа всякий раз начинается с самого начала при подходе к новой системе и опыт, полученный при раскрытии одной системы шифрования, редко когда может быть применен для раскрытия другой. Успех криптоанализа определяется алгоритмом шифрования - сложность вскрытия шифра зависит лишь от его конструкции. Это значит, что существует очень мало общих принципов криптоанализа, которые можно было бы практически использовать для раскрытия любых шифров и автоматический криптоанализ эффективен применительно к очень ограниченному классу алгоритмов.
Поэтому практически стойкость шифров к взлому принимается за меру криптографической стойкости их алгоритмов. Чем продолжительнее шифр не поддается раскрытию, тем больше причин считать его стойким. Однако стойкость шифра необязательно значит, что он является безопасным. Это означает лишь, что метод его взлома еще не найден любителями или не опубликован профессионалами. Как пример можно привести шифры, где кроме ключа шифрования имеется еще главный ключ, который называют ключом от черного входа. Такие шифры могут быть стойкими, но они не безопасны, так как обладатель главного ключа может читать любые шифровки. Следовательно, процесс криптоанализа может быть очень длительным по причине того, что криптоаналитику мало помогает успешное раскрытие других систем шифрования и ему неизвестна другая мера криптографической стойкости шифра, кроме продолжительности его сопротивления к взлому. Даже если взломщик не может прочесть сообщение, все равно нужно быть осторожным. В этом случае он может получить много информации, зная отправителя, получателя, время и длину сообщения.
Классификация криптографических систем
Предыдущее рассмотрение шифров разных типов позволяет сделать несколько выводов. Крайне желательно, чтобы как можно меньший объем информации шел по закрытому каналу, требующему больших затрат на поддержание и являющемуся наименее надежным участком. Однако совсем обойтись без него нельзя. Количество переданной по нему информации связано со сложностью вскрытия шифровок следующим образом. Предполагается, что злоумышленникам и любопытным досконально известны используемые процедуры шифрования и расшифровывания, а также статистические свойства сообщения. Обычно считают, что это им известно даже лучше, чем отправителю с получателем, но неизвестен секретный ключ. Его будем рассматривать как число, например, набор нулей и единиц, которые означают определенные действия над сообщением. Сложность подбора ключа зависит лишь от объема информации, которую он занимает. Одним битом можно передать лишь два ключа, двумя - четыре, тремя - восемь и так далее. Специально отметим, что речь здесь идет об информации, а не физической длине ключа, которая может быть довольно большой. Следовательно, чем больше информации в ключе, тем сложнее его подобрать.
Нет невзламываемых шифров. Все системы шифрования просто делают взламывание шифровок или заведомо дороже содержащейся в сообщении информации, или затягивают расшифровывание на неприемлемо большой срок по времени. При разработке шифра устанавливают приемлемые цену или время взламывания и дальше уже не обращают внимания на очень богатых или терпеливых взломщиков. Необходимую сложность ключа в классических криптографических системах вычислить нетрудно, если знать технические возможности источника угрозы и плату за ошибку в оценке надежности шифра. Например, любопытствующий не переберет вручную и сотни ключей - устанет, а больших неприятностей от него ждать не приходится. Поэтому тысяча вариантов ключей достаточна, что эквивалентно информационной длине ключа 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. Однако существуют определенные области применения, например, финансовые операции, где вполне возможно использование методов простейшего блочного шифрования. Выбор криптографического алгоритма в значительной мере зависит от его назначения. Некоторые данные, которыми можно руководствоваться при выборе типа криптографических систем, приведены в таблице.
Типы систем | Размножение ошибок | Аутентификация | Алгоритм | Скорость |
Потоковые |
Коды и их назначение
К шифрам не относятся и коды - системы условных обозначений или названий, применяемых при передаче информации в дипломатии, коммерции и военном деле. Кодирование часто применяется для повышения качества передачи. Хорошо известны и широко используются коды, исправляющие ошибки при передаче сообщений по каналам связи или хранении данных в памяти ЭВМ. Так, код Хемминга хорошо себя зарекомендовал себя в аппаратуре оперативной памяти ЭВМ СМ-4. Другой многочисленный класс кодов представлен средствами сжатия данных, наподобие программ архивации ARC, ARJ, ICE, ZIP и сжатия дисков на IBM PC. Употребление этих кодов вызвано не секретностью, а стремлением сэкономить на стоимости передачи или хранения сообщения. Файлы текстов, изображений и программ содержат информацию с сильно отличающимися свойствами и программы их кодирования должны быть разными. Если архиватор хорошо сжимает текст, вовсе не значит, что он так же хорош для сжатия изображений или других данных.
Для текстовых файлов чаще других употребляется кодировка Хаффмена, заключающаяся в том, что символы текста заменяются цепочками бит разной длины. Чем чаще символ, тем короче обозначающая его цепочка. Рассмотрим пример кодирования Хаффмена текста МАМА МЫЛА РАМЫ с такой таблицей кодирования:
СИМВОЛ | ЧИСЛО В ТЕКСТЕ | КОД |
А | 4 | 00 |
М | 4 | 01 |
пробел | 2 | 100 |
Ы | 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 по следующей таблице:
значение | 0 | 1 | 2-11 | 12-37 | 38-63 |
символы | + | / | 0-9 | A-Z | a-z |
-----BEGIN PGP MESSAGE-----
Version: 2.6
iQBVAgUALeF27VUFZvpNDE7hAQFBFAH/Y
OQ52xOCH5yKSG/HgSV+N52HSm21zFEw
Ocu5LDhYxmOILr7Ab/KdxVA6LMIou2wKtyo.
ZVbYWXPCvhNXGDg7 4Mw==
=wstv
-----END PGP MESSAGE-----
Расчет на недоступность для посторонних смысла кодированного сообщения может окончиться конфузом. Напомним, что в стихотворении "Моральный кодекс" Киплинга описан телеграфист, не подумавший о вседоступности кода и приревновавший в разлуке свою молодую жену. Офицеры штаба заметили кодовую сигнализацию и вот что случилось:
Молчит придурок адъютант, молчит штабная свита,,
В свои блокноты странный текст все пишут деловито.
От смеха давятся они, читая с постной миной:
"Не вздумай с Бэнгзом танцевать -
распутней нет мужчины!"
Первый коммерческий код для уменьшения длины и стоимости телеграмм ввел в 1845 году Френсис Смит, компаньон Морзе. В конце XIX века Клаузен первым предложил для этой цели код АВС, a Маркони несколько позже первый многоязычный код. Сейчас аналогичных кодов тьма-тьмущая и все они представляют собой замену отдельных слов или фраз группами цифр или букв. Традиционно связисты, а не только шпионы, для этого обычно используют пятизначные группы букв или цифр, так как группы проще записывать. Широко применяется по настоящее время в связи и "Международный свод сигналов", который последний раз был пересмотрен в 1969 году.
Хотя криптологи различают шифры и коды, потому что для практических работ это разные системы, но коды представляют собой шифр простой замены слов. Обычно кодовые таблицы состоят из словаря, где каждому слову присвоен кодовый эквивалент. Фактически требуются две кодовые таблицы. Для кодирования применяется таблица алфавитно упорядоченная по словам, а для декодирования алфавитно упорядочивают коды - иначе поиск в таблице становится необычайно трудоемким. Для применяющегося в коммерции телеграфного кода Маркони на английском языке начала этих таблиц выглядят так:
Таблица | кодирования | Таблица | декодирования | /tr>
VANOL | A, an | ABABA | It is hoped |
LANEX | Abandon-ing-s | ABACA | Assignment |
STUGH | AbandonedABBCO | 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 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
АВС | DEF | GHI | JKL | MNO | PRS | TUV | WXY |
Поэтому номер телефона корпорации 343-3362. Хотя, увидев на рекламном щите телефон предвари- 1 тельных заказов ночного клуба GUE-STS-ONLY, не пытайтесь набирать 483-787-6659, а просто переведите с английского: "только для приглашенных". Эта запись в рекламе означает, что заказы принимаются по телефону, указанному в пригласительном или членском билете. [ZEBR_TAG_
Надеюсь, читатели поймут сообщение " Женя Дмитрий Ульяна Борис Ольга Роберт Игорь Света", принятое по плохо работавшему телефону. Хотя моряки говорили бы при этом так: "Живете Добро Ухо Буки Он Рцы Иже Слово" или "Juliet Delta Uniform Bravo Oscar Romeo India Sierra". Такое кодирование называется акрокодом (Akro - по-гречески край. первые буквы слов или строк.) . А телеграфное сообщение: "Железная дорога уведомлена. Буду обмер работ исполнять сам" представляет собой особый код, вводящий неосведомленного получателя в заблуждение. Если читать только первые буквы слов. то получится скрытое сообщение "ЖДУ Борис". Одна армейская газета в начале шестидесятых годов к революционному празднику опубликовала стихотворение, начинающееся словами "Хвала тебе..." и последующим официозным содержанием. И что же? Редактор был немедленно уволен, тираж газеты изъят из читалок и библиотек, а вот автора найти не удалось. Первые буквы строк стихов складывались нелестную для главы государства Хрущева фразу. Никите Сергеевичу не повезло и с инициалами - акрокодом имени и отчества. Произнесенные по-английски его инициалы NS на слух сильно напоминают слово an ass - осел. Поэтому для именования этого политика в прессе, употреблялось лишь режущее отечественные уши фамильярное обращение - Никита Хрущев.
Несомненно, что коды могут служить и для сокрытия смысла сообщений. Вспомним, в 1936 году сообщение "Над всей Испанией ясное небо" отнюдь не предвещало безоблачной погоды, а послужило кодовым сигналом начала гражданской войны. Однако область применения кодирования для сокрытия смысла ограничена одиночными сообщениями. Румынская разведка сигуранца могла читать в двадцатые годы радиограммы РККА лишь потому, что кодовые таблицы не менялись, пока не протирались до дыр. Краткое кодированное сообщение, не имея ключа в виде кодовых таблиц, вскрыть очень трудно, а то и невозможно. Практическое использование кодов стратегической авиацией США иллюстрируют кадры кинофильма "Доктор Стренджлав", когда пилот стратегического бомбардировщика, приняв радиограмму из группы цифр, достал секретную кодовую таблицу из сейфа и нашел там содержание приказа: ядерный удар по СССР.
"Кpиптогpафия от папиpуса до компьютеpа"
Жельников Владимиp -М., ABF, 1996
Криптография и криптоанализ
Дипломатические, военные и промышленные секреты обычно передаются или хранятся не в исходном виде, а после шифрования. В отличие от тайнописи, которая прячет сам факт наличия сообщения, шифровки передаются открыто, а прячется голько смысл. Итак, криптография обеспечивает сокрытие смысла сообщения с помощью шифрования и открытие его расшифровыванием, которые выполняются по специальным криптографическим алгоритмам с помощью ключей у отправителя и по- лучателя. Рассмотрим классическую схему передачи секретных сообщений криптографическим преобразованием, где указаны этапы и участники этого процесса.
Шифpование | Пеpедача | Дешифpование | |
ТЕКСТ | листок | --> | листок |
КЛЮЧ | конвеpт | ==> | конвеpт |
Отпpавитель | Канал связи | Получатель |
Из схемы можно увидеть следующие особенности и отличия от обычных коммуникационных каналов. Отправителем сообщение шифруется с помощью ключа, и полученная шифровка передается по обычному открытому каналу связи получателю, в то время как ключ отправляется ему по закрытому каналу, гарантирующему секретность. Имея ключ и шифровку, получатель выполняет расшифровывание и восстанавливает исходное сообщение. В зависимости от целей засекречивания эта схема может несколько видоизменяться. Так, в компьютерной криптографии обычен случай, когда отправитель и получатель одно и то же лицо. Например, можно зашифровать данные, закрыв их от постороннего доступа при хранении, а потом расшифровать, когда это будет необходимо. В этом случае зачастую роль закрытого канала связи играет память. Тем не менее, налицо все элементы этой схемы.
Криптографические преобразования призваны для достижения двух целей по защиты информации. Во-первых, они обеспечивают недоступность ее для лиц, не имеющих ключа и, во-вторых, поддерживают с требуемой надежностью обнаружение несанкционированных искажений. По сравнению с другими методами защиты информации классическая криптография гарантирует защиту лишь при условиях, что;
использован эффективный криптографический алгоритм;
соблюдены секретность и целостность ключа.
Некриптографические средства не в состоянии дать такую же степень защиты информации и требуют значительно больших затрат. Например, во что обходится подтверждение подлинности документа? Охрана, сейфы, сигнализация, секретные пакеты, индивидуальные печати, фирменные бланки, водяные знаки, факсимиле и личные подписи - вот далеко не полный набор обычных средств, предназначенных для поддержания доверия к секретности информации. В то же самое время, криптографический подход много надежнее и проще, если ключ подошел, то информации можно доверять больше, чем маме или нотариусу.
Шифрование и расшифровывание, выполняемые криптографами, а также разработка и вскрытие шифров криптоаналитиками составляют предмет науки криптологии (от греческих слов криптос - тайный и логос - мысль) . В этой науке преобразование шифровки в открытый текст (сообщение на оригинальном языке, порой называемое "клер") может быть выполнено в зависимости от того, известен или нет ключ. Условно ее можно разделить на криптографию и криптоанализ. Криптография связана с шифрованием и расшифровыванием конфиденциальных данных в каналах коммуникаций. Она также применяется для того, чтобы исключить возможность искажения информации или подтвердить ее происхождение. Криптоанализ занимается в основном вскрытием шифровок без знания ключа и, порой, примененной системы шифрования. Эта процедура еще называется взломкой шифра. Итак, криптографы стремятся обеспечить секретность, а криптоаналитики ее сломать.
Однако терминология еще не устоялась даже за рубежом, где криптоаналитики называют себя то взломщиками кодов (breaker), то нападающими (attacker), а взломщики компьютерных систем нарекли себя воришками (sneaker). Вряд ли правильно выделять взлом шифров в отдельную дисциплину. Совершенствуя схему шифрования, неизбежно приходится рассматривать и пути ее взлома, а конструируя устройство засекречивания данных, необходимо предусмотреть в нем блок контроля качества. А ну как произошел сбой, и незащищенные данные попадут в открытую сеть коммуникаций! Поэтому часто говорят о криптографах, которые занимаются задачами шифрования, расшифровывания и анализа. Тем более, что ряд атак на шифры представляет собой обычное расшифровывание с подбором ключа путем анализа расшифрованного сообщения на близость связному тексту. Далее криптоанализ будет рассматриваться, как область криптологии, проверяющей и доказывающей устойчивость шифров как теоретически, так и практически. Возможность компьютера производить миллионы операций в секунду очень усложнила и криптографию, и криптоанализ. Поэтому в дальнейшем машинные шифры будем называть криптографическими системами. Криптографические системы становятся год от года все изощреннее и требуется для их вскрытия все более совершенная техника криптоанализа.
Наше изложение будет в основном ограничено рамками классической криптографии с симметричными ключами, когда ключ отправителя сообщения должен совпадать с ключом получателя. Обмен секретными ключами в ряде случаев представляет проблему. Поэтому в последние годы ведутся интенсивные исследования в направлении шифровальных систем с открытым ключом. (у таких систем ключ для шифрования открытый, а для расшифрования секретный. Поэтому их еще называют двухключевыми системами или системами с несимметричными ключами.) Хотя системы с открытыми ключами быстро развивайтся, целый ряд преимуществ традиционных систем позволяет им надежно удерживать ведущее место. Например, ряд алгоритмов с открытыми ключами, наподобие "укладки ранца", повел себя при опробовании на сверхбыстродействующей ЭВМ Cray несолидно, расколовшись уже через час испытаний. Другие же алгоритмы принципиально ненадежны в классическом понимании с самого начала, никто всерьез не может гарантировать их стойкость при стремительно развивающихся вычислительных методах высшей арифметики и, кроме того, чрезвычайно медлительны. Тем не менее, их роль в таких областях, как пересылка ключей и цифровая подпись уникальна. Поэтому им будет уделено определенное внимание, хотя, далее с практической точки зрения будут рассматриваться в основном лишь два классических алгоритма шифрования: замены и перестановки. В шифре перестановки все буквы открытого текста остаются без изменений, но перемещаются с их нормальной позиции. Анаграмма (анаграмма - перестановка букв в слове или фразе.) - это шифр перестановки. В шифре замены, наоборот, позиции букв в шифровке остаются теми же, что и у открытого текста, но символы заменяются. Комбинации этих двух типов образуют все многообразие практически используемых классических шифров.
К необходимым аксессуарам криптотрафической техники кроме алгоритмов шифрования и расшифрования принадлежат секретные ключи. Их роль такая же, как и у ключей от сейфа. А вот изготавливаются и хранятся криптографические ключи куда более тщательно, чем стальные аналоги. Заботу об их выпуске обычно берут на себя криптографические службы, лишь в этом случае гарантируя стойкость от взлома своих систем шифрования. Какие ухищрения только не предпринимаются, чтобы сделать ключи недоступными, а факт их чтения известным! Ключи хранят в криптографических блокнотах, которые всегда представляли собой крепость для посторонних. Во-первых, они открываются с предосторожностями, чтобы ключи не исчезли физически вместе с открывшим их человеком. Во-вторых, в блокноте находишь подобие отрывного календаря с прошитыми насквозь страницами, разделенными непрозрачными для любого подсматривания листами. Чтобы прочесть очередной ключ, нужно вырвать лист разделителя, а это не может впоследствии остаться незамеченным хозяином блокнота. Более того, как только страница с ключом открыта для чтения, то ее текст начинает бледнеть и через некоторое время пропадает бесследно. Но главное еще впереди - нередко в блокноты вносят не сами ключи, а их шифровки, сделанные по ключу, который шифровальщик хранит лишь в памяти. Ухищрениям в хранении ключей нет конца. У разведчика Абеля американскими спецслужбами был обнаружен криптографический блокнот размером с почтовую марку. Позднее, неподалеку от дома, где Абель жил, найдена монета, развинчивающаяся на две половинки, с тайником внутри. Очень возможно, что она служила контейнером для этого миниатюрного криптографического блокнота. Доставку ключей осуществляют специальные курьерские службы, к сотрудникам которых Петр 1 выдвинул лишь два требования: чтобы они сколь можно меньше знали вне пределов своей компетенции и были очень довольны оплатой своего труда. На этом закончим знакомство с сюжетом и персонажами дальнейшего действия и перейдем к рассмотрению истории криптографии.
Криптология в Новое время
Новое время привнесло новые достижения в криптографию. Постоянно расширяющееся применение шифров выдвинуло новое требование к ним - легкость массового использования, а старое требование - устойчивость к взлому не только осталось, но и было усилено. Поэтому 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 жизней моряков, потому что шифры для караванов судов были особенно слабы.
ОБЩИЕ ПРОБЛЕМЫ ЗАЩИТЫ ИНФОРМАЦИИ
Верьте брахману больше, чем
змее, а змее больше чем шлюхе,
а шлюхе больше, чем афганцу...
Редьярд Киплинг. "Ким "
Потребность в защите информации возникает в связи с необходимостью обеспечить секретность исследований в стратегических областях, правильно распределять информацию о промышленных разработках и регулировать информацию о личности в современном обществе. Начало восьмидесятых годов рассматривается как начальный пункт, когда социальные протесты в демократических странах помогли сплестись глобальной сети хакеров. Политический флирт на почве нарушения прав человека породил тьму организаций хакеров в массе стран мира почти одновременно. Менее чем за год эти группы узнали прелесть сотрудничества. Их члены свободно обменивались идеями через национальные границы, часто по украденным паролям, дающим бесплатный доступ к телефонной сети. Несколько причин, объединившись вместе, сделали международный компьютерный разбой легким и действенным: новые технологии, создавшие более мощные и дешевые компьютеры, развитие коммуникаций для связи и международный характер стандартов, установленных транснациональными корпорациями.
Проблемы защиты данных наиболее остро проявляются при использовании ЭВМ для обработки и хранения информации секретного и частного характера. В этой главе на элементарном уровне будут разобраны возможные угрозы данным в ЭВМ, уровни защиты данных в комплексе мер по обеспечению их секретности и оценки эффективности разных средств защиты. Материал, изложенный здесь необходим для ознакомления всем пользователям ЭВМ, программистам и администраторам, отвечающим за функционирование вычислительных систем для того, чтобы оценить возможный реальный ущерб от несанкционированного доступа к их конфиденциальным данным и принять адекватные меры по их защите. Без установления общего комплекса мер по защите данных их шифрование будет пустым занятием. Рассмотрим сначала, какие же угрозы могут возникнуть для информации, хранящейся в компьютере и какие убытки могут воз- никнуть от несанкционированного ее использования любопытными и злоумышленниками.
ОСНОВЫ КЛАССИЧЕСКОЙ КРИПТОГРАФИИ
В этой главе будут изложены теоретические основы классической криптографии, приведены описания основных компонентов современных систем шифрования заменой, перестановкой и блочным взбиванием, а также дан анализ устойчивости этих классов шифров к попыткам их взлома. Следует отметить, что криптографические системы, изобретенные любителями и непрофессионалами, всегда крайне непрактичны в применении и нестойки от вскрытия. В частности многие из самоучек видят основу стойкости шифра в секретности системы шифрования. Профессионалы же, напротив, считают систему шифрования общеизвестной и выводят стойкость шифра через стойкость к, взлому секретного ключа.
Открытое распределение ключей
Пока преимущества методов шифрования с открытым ключом не были очевидны. Однако на их основе легко решать задачу выработки общего секретного ключа для сеанса связи любой пары пользователей информационной системы. Еще в 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 для управления ключевой информацией и получения цифровых подписей.
Появление шифров
Ряд систем шифрования дошел до нас из глубокой древности. Скорее всего они появились одновременно с письменностью в 4 тысячелетии до нашей эры. Методы секретной переписки были изобретены независимо во многих древних обществах, таких как Египет, Шумер и Китай, но детальное состояние криптологии в них неизвестно. Криптограммы выискиваются даже в древние времена, хотя из-за применяемого в древнем мире идеографического письма в виде стилизованных картинок были примитивны. Шумеры, по-видимому, пользовались тайнописью. Археологами найдены глиняные клинописные таблички, где первая запись замазывалась слоем глины, на котором делалась вторая запись. Происхождение таких странных таблиц могло быть вызвано и тайнописью, и утилизацией. Оттого что число знаков идеографического письма было более тысячи, то запоминание их представляло собой трудную задачу - тут не до шифрования. Тем не менее, коды, появившиеся вместе со словарями, были хорошо извест- ны в Вавилоне и Ассирии, а древние египтяне применяли по меньшей мере 3 системы шифрования. С развитием фонетического письма письменность резко упростилась. В древнем семитском алфавите во 2-м тысячелетии до нашей эры было всего около 30 знаков. Ими обозначались согласные звуки, а также некоторые гласные и слоги. Упрощение письма стимулировало развитие криптографии.
Даже в Библии можно найти примеры шифровок, хотя мало кто это замечает. В книге пророка Иеремии (25,26) читаем: "...а царь Сессаха выпьет после них." Такого царя или царства не было - неужели ошибка писца? Нет, просто порой священные иудейские тексты шифровались простой заменой. Вместо первой буквы алфавита писалась последняя, вместо второй - предпоследняя и так далее. Этот древний метод шифрования назывался атбаш. Читая по нему слово СЕССАХ, на языке оригинала получаем слово ВАВИЛОН, и смысл библейского текста может быть принят даже не верящим слепо в истинность писания.
Несомненно, что Прометей, давший людям числа с буквами и оценивший, кстати сказать, их выше огня, может считаться одним из первых криптологов. Но еще Демокрит полагал: "...все искусства, ни какое-либо другое не следует возводить ни к Афине, ни к другому божеству: все искусства порождены с течением времени потребностями и обстоятельствами". Именно поэтому криптология не могла найти хорошую среду обитания вплоть до Римской империи. Так, по свидетельству Геродота в древнем Египте роль шифра обычно играл специально созданный жрецами язык. Там параллельно существовали три алфавита: письменный, священный и загадочный. Первый из них отображал обычный разговорный язык, второй мог использоваться для изложения религиозных текстов, а третий применялся предсказателями или для сокрытия смысла сообщений. В древней Греции - тех же щей, да пожиже влей - бытовали десятки весьма отличных друг от друга диалектов. Диоген Лаэртский так объяснял одну из причин угасания философии пифагорийцев: "...записана она была по-дорийски, а так как это наречие малопонятное, то казалось, что и учения, на нем излагаемые, не подлинны и искажены..."
С одной стороны, значительное развитие шифров немыслимо вне крупной страны с широкими языковыми, торговыми и политическими связями между ее частями. С другой стороны, использование шифров предполагает открытое противостояние интересов различных групп людей с одновременным уважением личности и ее прав на свободы в виде собственных секретов, то есть демократическое политическое устройство. При тирании и шифровка, и открытый текст сообщения о заговоре одинаково смертельно опасны для отправителей и получателей. В ряде греческих городов-государств криптографы подвергались бы бичеванию наравне с ворами, поскольку сделали своей профессией надувательство и обман. Если применение женщинами косметики там порой рассматривалось попыткой обмануть глаза и извратить сущность вещей, то кто рискнул бы стать криптографом?
Совсем другое дело, когда государство растет, начинают уважаться права и свободы граждан, в нем фактически нет единой и твердой власти, когда идут захватнические войны и процветает торговля. Поэтому положение меняется в эпоху расцвета Рима, который первоначально представлял собой лишь небольшую античную гражданскую общину, далее непомерно разросся, подчинив себе сначала Италию, а затем и все Средиземноморье. Чтобы управлять наместниками в многочисленных провинциях шифрованная связь для римских органов власти стала жизненно необходимой. Многим, наверное, известен шифр замены, связанный с именем Юлия Цезаря.
Вот что об этом сообщает Гай Светоний: "Существуют и его письма к Цицерону и письма к близким о домашних делах: в них, если нужно было сообщить что-нибудь негласно, он пользовался тайнописью, то есть менял буквы так, чтобы из них не складывалось ни одного слова. Чтобы разобрать и прочитать их, нужно читать всякий раз четвертую букву вместо первой, например, D вместо А и так далее". Это означает, что каждая буква шифровки заменялась четвертой по счету от нее в алфавите: А-В-С-D, или D вместо А. Послание сенату VENI VIDI VICI, то есть ПРИШЕЛ УВИДЕЛ ПОБЕДИЛ, сделанное Цезарем после однодневной войны с понтийским царем Фарнаком, выглядело бы шифровкой SBKF SFAF SFZF.
Зачем обрашщъся к столь древней истории? Монтень в своих философских опытах утверждает: "Невежество бывает двоякого рода: одно, безграмотное, предшествует науке; другое, чванное, сле-ет за нею". Поэтому не нужно смеяться над пpостотой и наивностью первых шифров - опыты пионеров всегда неуклюжи. Однако вовсе не до смеха, когда, стараясь защитить свой труд, современные программисты воспроизводят пороки Гая Юлия - это свидетельствует о глубоких пробелах в нашем образовании.
Поэтому удивительно было познакомиться с использованием упомянутого шифра Цезаря в компьютерном справочнике, содержащим десятки тысяч адресов организаций и предприятий. При проверке стойкости шифра вскрытие нескольких мегабайт собираемой по крупицам в течение ряда лет информации заняло менее часа и от покупки справочника пришлось отказаться. Судите сами: неискушенные пользователи вроде бухгалтеров и финансистов стали бы думать, будто занесённая ими справочник информация надежно защищена, в то время как она легко доступна любому хакеру (и авторам справочника). Вообще-то, разработчиков ненадежных систем шифрования стоит подозревать в лукавстве: что умышленно сделано лишь подобие секретности, чтобы иметь доступ к информации клиентов. Попытки объяснить необходимость надежного шифрования и достаточно частой смены ключей были встречены в фирме изготовившей упомянутый справочник с наивным простодушием: "Если вы хотите свой пароль, отличный от нашего, то назовите его и мы в течение недели поставим его за отдельную плату".
Принципиально иной шифр, более древний, связан с перестановкой букв сообщения по определенному, известному отправителю и получателю правилу. Древние рассказывали: какой-то хитрец из спартанцев обнаружил, что если полоску пергаента намотать спиралью на палочку и написать на нем вдоль палочки текст сообщения, то, после снятия полоски буквы на ней расположатся хаотично. Это то же самое, будто буквы писать не подряд, а через условленное число по кольцу до тех пор, пока весь текст не будет исчерпан. Сообщение ВЫСТУПАЙТЕ при окружности палочки в 3 буквы даст шифровку ВУТЫПЕСАТЙ. Текст ее не понятен, не так ли?
Для прочтения шифровки нужно не только знать систему засекречивания, но и обладать ключом в виде палочки, принятого диаметра. Зная тип шифра, но не имея ключа, расшифровать сообщение было сложно. Этот шифр именовался скитала по названию стержня, на который наматывались свитки папируса, что указывает на его происхождение. Он был весьма популярен в Спарте и много раз совеpшенствовался в позднейшие времена. О его важном значении и большом распространении говорит свидетельство Плутарха в "Сравнительных жизнеописаниях", когда историк сообщает о жизни греческого полководца Алкивиада: "Однако Лисандр обратил внимание на эти слова не раньше, чем получил из дома скиталу с приказанием отделаться от Алкивиада..."
Упомянем, что греческий писатель и историк Полибий изобрел за два века до нашей эры так называемый полибианский квадрат размером 5х5, заполненный алфавитом в случайном порядке. Для шифрования на квадрате находили букву текста и вставляли в шифровку нижнюю от нее в том же столбце. Если буква была в нижней строке, то брали верхнюю из того же столбца.
Такого рода квадраты широко употреблялись в позднейших криптографических системах и будут детально описаны ниже.
Приборы для шифрования тоже существовали с древних времен. Спарта, наиболее воинственная из греческих государств, имела хорошо проработанную систему секретной военной связи еще в V веке до нашей эры. С помощью скитала, первого известного криптографического устройства, спартанские эфоры (эфоры - члены коллегиального правительства Спарты.) шифровали послания, используя метод простой перестановки. Ленивые и оттого юбретательные римляне в IV веке до нашей эры, чтобы упростить процедуру шифрования, стали применять шифрующие диски. Каждый из 2 дисков, помещенных на общую ось, содержал на ободе алфавит в случайной последовательности. Найдя на одном диске букву текста, с другого диска считывали соответствующую ей букву шифра. Такие приборы, порождающие шифр простой замены. использовались вплоть до эпохи Возрождения. Для связи греки и римляне использовали код на основе полибианского квадрата с естественным заполнением алфавитом. Буква кодировалась номером строки и столбца, соответствующим ей в квадрате. Сигнал подавался ночью факелами, а днем флагами.
На основе такого кода легко сделать шифр, обозначив каждый ряд и столбец своим числом флагов. Очень вероятно, что подобные шифры применялись, но исторических свидетельств об этом нет. Окончим рассмотрение шифров древности, поскольку в небольшом числе приведенных примеров заключено все многообразие классических подходов к шифрованию, подобно тому, будто в мельчайшей капле воды отражается весь мир.
Последовательности максимальной длины
Естественно, что желательно получить как можно более длинный период последовательности от многочлена заданной степени. Ответ на вопрос, каков максимальный период, получаемый от последовательности, мы уже имеем - не больше 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
Например, многочлен х**4+х+1 делит х*15+1, но не делит ни один многочлен х**K-1 при k
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 |
ТЕОРЕМА 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 | биты |
ПРЕДМЕТ КРИПТОЛОГИИ
Описание предмета криптологии начнем с доуточнения обиходного понятия информация. Иностранному термину информация достаточно близко отвечает русское слово смысл. Очевидно, что одну и ту же информацию можно передать разными сообщениями, например, на разных языках, а также письмом, телеграфом или факсом. С другой стороны, одно и то же сообщение разными людьми понимается по-разному. Например, при сообщении о победе "Спартака" иной футбольный болельщик обрадуется, а другой может и огорчиться Значит, можно сделать вывод, что информация людьми извлекается из сообщения с помощью ключа, правила, придающего сообщению конкретный смысл. Для обычных сообщений такие правила дают здравый смысл и знание языка.
Иногда же, ключом владеет лишь узкая группа лиц, знающая специальные термины или жаргон. Например, на блатном языке начала века сизюмаp пено означало число 75. Жаргон преферансистов хорошо иллюстрирует анекдот. Кассир спрашивает у мужчины, снимающего крупную сумму денег со счета: "Гарнитурчик собираетесь прикупить?", тот со вздохом отвечает: "Прикупил вчера, на мизере". У программистов на персональных компьютерах можно услышать массу специфических терминов: старая мама, кривой винт, косые флопы, полуось, огрызок. О'Генри в "Королях и капусте" привел пример, как написанная на нью-йоркском жаргоне телеграмма: "...главный с кисейным товаром держит курс на соль..." - была не понята туземными чиновниками, сколько ни ломали себе они над ней голову. Но ее смысл, что президент Анчурии бежал с любовницей к океану, сразу же разгадал американец Билли Кьоу, который "...как то ухитрился понять даже приказ улетучиться, произнесенный на классическом китайском языке и подтвержденный дулом мушкета..."
Особую роль ключ имеет в криптографии, где его знание гарантирует извлечение истинного смысла сообщения. Вспомните смешные фигурки из рассказа "Пляшущие человечки" Конан Дойля. Их рисунок казался детской шалостью, но привел в ужас героиню, которая, зная ключ, прочла адресованную ей шифровку: "Илей готовься к смерти".